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

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 (427) hide show
  1. package/README.md +89 -521
  2. package/dist/charts/line/LineChart.d.ts +3 -3
  3. package/dist/charts/line/LineChart.js +1 -1
  4. package/dist/v2/core/data/index.d.ts +3 -0
  5. package/dist/v2/core/data/index.d.ts.map +1 -0
  6. package/dist/v2/core/data/index.js +1 -0
  7. package/dist/v2/core/data/normalize.d.ts +8 -0
  8. package/dist/v2/core/data/normalize.d.ts.map +1 -0
  9. package/dist/v2/core/data/normalize.js +229 -0
  10. package/dist/v2/core/data/normalizeValues.d.ts +16 -0
  11. package/dist/v2/core/data/normalizeValues.d.ts.map +1 -0
  12. package/dist/v2/core/data/normalizeValues.js +96 -0
  13. package/dist/v2/core/data/types.d.ts +161 -0
  14. package/dist/v2/core/data/types.d.ts.map +1 -0
  15. package/dist/v2/core/data/types.js +1 -0
  16. package/dist/v2/core/geometry/areaPath.d.ts +3 -0
  17. package/dist/v2/core/geometry/areaPath.d.ts.map +1 -0
  18. package/dist/v2/core/geometry/areaPath.js +36 -0
  19. package/dist/v2/core/geometry/barRects.d.ts +44 -0
  20. package/dist/v2/core/geometry/barRects.d.ts.map +1 -0
  21. package/dist/v2/core/geometry/barRects.js +201 -0
  22. package/dist/v2/core/geometry/contributionHeatmap.d.ts +49 -0
  23. package/dist/v2/core/geometry/contributionHeatmap.d.ts.map +1 -0
  24. package/dist/v2/core/geometry/contributionHeatmap.js +107 -0
  25. package/dist/v2/core/geometry/horizontalBarRects.d.ts +27 -0
  26. package/dist/v2/core/geometry/horizontalBarRects.d.ts.map +1 -0
  27. package/dist/v2/core/geometry/horizontalBarRects.js +202 -0
  28. package/dist/v2/core/geometry/index.d.ts +12 -0
  29. package/dist/v2/core/geometry/index.d.ts.map +1 -0
  30. package/dist/v2/core/geometry/index.js +11 -0
  31. package/dist/v2/core/geometry/lineDecimation.d.ts +8 -0
  32. package/dist/v2/core/geometry/lineDecimation.d.ts.map +1 -0
  33. package/dist/v2/core/geometry/lineDecimation.js +110 -0
  34. package/dist/v2/core/geometry/linePath.d.ts +5 -0
  35. package/dist/v2/core/geometry/linePath.d.ts.map +1 -0
  36. package/dist/v2/core/geometry/linePath.js +98 -0
  37. package/dist/v2/core/geometry/lineSeries.d.ts +29 -0
  38. package/dist/v2/core/geometry/lineSeries.d.ts.map +1 -0
  39. package/dist/v2/core/geometry/lineSeries.js +51 -0
  40. package/dist/v2/core/geometry/path.d.ts +6 -0
  41. package/dist/v2/core/geometry/path.d.ts.map +1 -0
  42. package/dist/v2/core/geometry/path.js +24 -0
  43. package/dist/v2/core/geometry/pieArcs.d.ts +29 -0
  44. package/dist/v2/core/geometry/pieArcs.d.ts.map +1 -0
  45. package/dist/v2/core/geometry/pieArcs.js +142 -0
  46. package/dist/v2/core/geometry/progressRings.d.ts +30 -0
  47. package/dist/v2/core/geometry/progressRings.d.ts.map +1 -0
  48. package/dist/v2/core/geometry/progressRings.js +104 -0
  49. package/dist/v2/core/geometry/types.d.ts +32 -0
  50. package/dist/v2/core/geometry/types.d.ts.map +1 -0
  51. package/dist/v2/core/geometry/types.js +1 -0
  52. package/dist/v2/core/index.d.ts +6 -0
  53. package/dist/v2/core/index.d.ts.map +1 -0
  54. package/dist/v2/core/index.js +6 -0
  55. package/dist/v2/core/interaction/index.d.ts +5 -0
  56. package/dist/v2/core/interaction/index.d.ts.map +1 -0
  57. package/dist/v2/core/interaction/index.js +2 -0
  58. package/dist/v2/core/interaction/viewport.d.ts +71 -0
  59. package/dist/v2/core/interaction/viewport.d.ts.map +1 -0
  60. package/dist/v2/core/interaction/viewport.js +216 -0
  61. package/dist/v2/core/interaction/viewportTransform.d.ts +17 -0
  62. package/dist/v2/core/interaction/viewportTransform.d.ts.map +1 -0
  63. package/dist/v2/core/interaction/viewportTransform.js +70 -0
  64. package/dist/v2/core/layout/autoPadding.d.ts +3 -0
  65. package/dist/v2/core/layout/autoPadding.d.ts.map +1 -0
  66. package/dist/v2/core/layout/autoPadding.js +33 -0
  67. package/dist/v2/core/layout/chartBox.d.ts +5 -0
  68. package/dist/v2/core/layout/chartBox.d.ts.map +1 -0
  69. package/dist/v2/core/layout/chartBox.js +22 -0
  70. package/dist/v2/core/layout/debugLayout.d.ts +3 -0
  71. package/dist/v2/core/layout/debugLayout.d.ts.map +1 -0
  72. package/dist/v2/core/layout/debugLayout.js +20 -0
  73. package/dist/v2/core/layout/index.d.ts +8 -0
  74. package/dist/v2/core/layout/index.d.ts.map +1 -0
  75. package/dist/v2/core/layout/index.js +6 -0
  76. package/dist/v2/core/layout/labelCollision.d.ts +3 -0
  77. package/dist/v2/core/layout/labelCollision.d.ts.map +1 -0
  78. package/dist/v2/core/layout/labelCollision.js +90 -0
  79. package/dist/v2/core/layout/legendLayout.d.ts +3 -0
  80. package/dist/v2/core/layout/legendLayout.d.ts.map +1 -0
  81. package/dist/v2/core/layout/legendLayout.js +39 -0
  82. package/dist/v2/core/layout/tooltipPlacement.d.ts +3 -0
  83. package/dist/v2/core/layout/tooltipPlacement.d.ts.map +1 -0
  84. package/dist/v2/core/layout/tooltipPlacement.js +76 -0
  85. package/dist/v2/core/layout/types.d.ts +114 -0
  86. package/dist/v2/core/layout/types.d.ts.map +1 -0
  87. package/dist/v2/core/layout/types.js +1 -0
  88. package/dist/v2/core/scales/band.d.ts +15 -0
  89. package/dist/v2/core/scales/band.d.ts.map +1 -0
  90. package/dist/v2/core/scales/band.js +34 -0
  91. package/dist/v2/core/scales/domain.d.ts +6 -0
  92. package/dist/v2/core/scales/domain.d.ts.map +1 -0
  93. package/dist/v2/core/scales/domain.js +109 -0
  94. package/dist/v2/core/scales/index.d.ts +7 -0
  95. package/dist/v2/core/scales/index.d.ts.map +1 -0
  96. package/dist/v2/core/scales/index.js +5 -0
  97. package/dist/v2/core/scales/linear.d.ts +8 -0
  98. package/dist/v2/core/scales/linear.d.ts.map +1 -0
  99. package/dist/v2/core/scales/linear.js +22 -0
  100. package/dist/v2/core/scales/ticks.d.ts +4 -0
  101. package/dist/v2/core/scales/ticks.d.ts.map +1 -0
  102. package/dist/v2/core/scales/ticks.js +111 -0
  103. package/dist/v2/core/scales/time.d.ts +8 -0
  104. package/dist/v2/core/scales/time.d.ts.map +1 -0
  105. package/dist/v2/core/scales/time.js +23 -0
  106. package/dist/v2/core/scales/types.d.ts +46 -0
  107. package/dist/v2/core/scales/types.d.ts.map +1 -0
  108. package/dist/v2/core/scales/types.js +1 -0
  109. package/dist/v2/index.d.ts +1 -0
  110. package/dist/v2/index.js +1 -0
  111. package/dist/v2/react-native/charts/bar/BarChart.d.ts +6 -0
  112. package/dist/v2/react-native/charts/bar/BarChart.d.ts.map +1 -0
  113. package/dist/v2/react-native/charts/bar/BarChart.js +199 -0
  114. package/dist/v2/react-native/charts/bar/BarChartSurface.d.ts +36 -0
  115. package/dist/v2/react-native/charts/bar/BarChartSurface.d.ts.map +1 -0
  116. package/dist/v2/react-native/charts/bar/BarChartSurface.js +134 -0
  117. package/dist/v2/react-native/charts/bar/StackedBarChart.d.ts +4 -0
  118. package/dist/v2/react-native/charts/bar/StackedBarChart.d.ts.map +1 -0
  119. package/dist/v2/react-native/charts/bar/StackedBarChart.js +9 -0
  120. package/dist/v2/react-native/charts/bar/accessibility.d.ts +31 -0
  121. package/dist/v2/react-native/charts/bar/accessibility.d.ts.map +1 -0
  122. package/dist/v2/react-native/charts/bar/accessibility.js +87 -0
  123. package/dist/v2/react-native/charts/bar/interaction.d.ts +18 -0
  124. package/dist/v2/react-native/charts/bar/interaction.d.ts.map +1 -0
  125. package/dist/v2/react-native/charts/bar/interaction.js +62 -0
  126. package/dist/v2/react-native/charts/bar/model.d.ts +3 -0
  127. package/dist/v2/react-native/charts/bar/model.d.ts.map +1 -0
  128. package/dist/v2/react-native/charts/bar/model.js +326 -0
  129. package/dist/v2/react-native/charts/bar/modelUtils.d.ts +27 -0
  130. package/dist/v2/react-native/charts/bar/modelUtils.d.ts.map +1 -0
  131. package/dist/v2/react-native/charts/bar/modelUtils.js +58 -0
  132. package/dist/v2/react-native/charts/bar/options.d.ts +7 -0
  133. package/dist/v2/react-native/charts/bar/options.d.ts.map +1 -0
  134. package/dist/v2/react-native/charts/bar/options.js +49 -0
  135. package/dist/v2/react-native/charts/bar/rendererSafety.d.ts +12 -0
  136. package/dist/v2/react-native/charts/bar/rendererSafety.d.ts.map +1 -0
  137. package/dist/v2/react-native/charts/bar/rendererSafety.js +31 -0
  138. package/dist/v2/react-native/charts/bar/selectionAnimation.d.ts +42 -0
  139. package/dist/v2/react-native/charts/bar/selectionAnimation.d.ts.map +1 -0
  140. package/dist/v2/react-native/charts/bar/selectionAnimation.js +158 -0
  141. package/dist/v2/react-native/charts/bar/stackedCompat.d.ts +55 -0
  142. package/dist/v2/react-native/charts/bar/stackedCompat.d.ts.map +1 -0
  143. package/dist/v2/react-native/charts/bar/stackedCompat.js +105 -0
  144. package/dist/v2/react-native/charts/bar/tooltip.d.ts +11 -0
  145. package/dist/v2/react-native/charts/bar/tooltip.d.ts.map +1 -0
  146. package/dist/v2/react-native/charts/bar/tooltip.js +18 -0
  147. package/dist/v2/react-native/charts/bar/tooltipModel.d.ts +33 -0
  148. package/dist/v2/react-native/charts/bar/tooltipModel.d.ts.map +1 -0
  149. package/dist/v2/react-native/charts/bar/tooltipModel.js +46 -0
  150. package/dist/v2/react-native/charts/bar/tooltipPlacement.d.ts +9 -0
  151. package/dist/v2/react-native/charts/bar/tooltipPlacement.d.ts.map +1 -0
  152. package/dist/v2/react-native/charts/bar/tooltipPlacement.js +9 -0
  153. package/dist/v2/react-native/charts/bar/types.d.ts +211 -0
  154. package/dist/v2/react-native/charts/bar/types.d.ts.map +1 -0
  155. package/dist/v2/react-native/charts/bar/types.js +1 -0
  156. package/dist/v2/react-native/charts/bar/useAnimatedTooltipModel.d.ts +10 -0
  157. package/dist/v2/react-native/charts/bar/useAnimatedTooltipModel.d.ts.map +1 -0
  158. package/dist/v2/react-native/charts/bar/useAnimatedTooltipModel.js +87 -0
  159. package/dist/v2/react-native/charts/bar/viewport.d.ts +20 -0
  160. package/dist/v2/react-native/charts/bar/viewport.d.ts.map +1 -0
  161. package/dist/v2/react-native/charts/bar/viewport.js +47 -0
  162. package/dist/v2/react-native/charts/contribution/ContributionGraph.d.ts +13 -0
  163. package/dist/v2/react-native/charts/contribution/ContributionGraph.d.ts.map +1 -0
  164. package/dist/v2/react-native/charts/contribution/ContributionGraph.js +159 -0
  165. package/dist/v2/react-native/charts/contribution/accessibility.d.ts +25 -0
  166. package/dist/v2/react-native/charts/contribution/accessibility.d.ts.map +1 -0
  167. package/dist/v2/react-native/charts/contribution/accessibility.js +50 -0
  168. package/dist/v2/react-native/charts/contribution/interaction.d.ts +23 -0
  169. package/dist/v2/react-native/charts/contribution/interaction.d.ts.map +1 -0
  170. package/dist/v2/react-native/charts/contribution/interaction.js +75 -0
  171. package/dist/v2/react-native/charts/contribution/model.d.ts +17 -0
  172. package/dist/v2/react-native/charts/contribution/model.d.ts.map +1 -0
  173. package/dist/v2/react-native/charts/contribution/model.js +102 -0
  174. package/dist/v2/react-native/charts/contribution/types.d.ts +71 -0
  175. package/dist/v2/react-native/charts/contribution/types.d.ts.map +1 -0
  176. package/dist/v2/react-native/charts/contribution/types.js +1 -0
  177. package/dist/v2/react-native/charts/line/AreaChart.d.ts +3 -0
  178. package/dist/v2/react-native/charts/line/AreaChart.d.ts.map +1 -0
  179. package/dist/v2/react-native/charts/line/AreaChart.js +3 -0
  180. package/dist/v2/react-native/charts/line/ChartSurface.d.ts +16 -0
  181. package/dist/v2/react-native/charts/line/ChartSurface.d.ts.map +1 -0
  182. package/dist/v2/react-native/charts/line/ChartSurface.js +151 -0
  183. package/dist/v2/react-native/charts/line/LineChart.d.ts +6 -0
  184. package/dist/v2/react-native/charts/line/LineChart.d.ts.map +1 -0
  185. package/dist/v2/react-native/charts/line/LineChart.js +294 -0
  186. package/dist/v2/react-native/charts/line/StickyYAxis.d.ts +15 -0
  187. package/dist/v2/react-native/charts/line/StickyYAxis.d.ts.map +1 -0
  188. package/dist/v2/react-native/charts/line/StickyYAxis.js +26 -0
  189. package/dist/v2/react-native/charts/line/accessibility.d.ts +34 -0
  190. package/dist/v2/react-native/charts/line/accessibility.d.ts.map +1 -0
  191. package/dist/v2/react-native/charts/line/accessibility.js +103 -0
  192. package/dist/v2/react-native/charts/line/axisLabels.d.ts +37 -0
  193. package/dist/v2/react-native/charts/line/axisLabels.d.ts.map +1 -0
  194. package/dist/v2/react-native/charts/line/axisLabels.js +55 -0
  195. package/dist/v2/react-native/charts/line/debugLayout.d.ts +26 -0
  196. package/dist/v2/react-native/charts/line/debugLayout.d.ts.map +1 -0
  197. package/dist/v2/react-native/charts/line/debugLayout.js +77 -0
  198. package/dist/v2/react-native/charts/line/debugOverlay.d.ts +9 -0
  199. package/dist/v2/react-native/charts/line/debugOverlay.d.ts.map +1 -0
  200. package/dist/v2/react-native/charts/line/debugOverlay.js +30 -0
  201. package/dist/v2/react-native/charts/line/defaultTooltip.d.ts +3 -0
  202. package/dist/v2/react-native/charts/line/defaultTooltip.d.ts.map +1 -0
  203. package/dist/v2/react-native/charts/line/defaultTooltip.js +17 -0
  204. package/dist/v2/react-native/charts/line/interaction.d.ts +82 -0
  205. package/dist/v2/react-native/charts/line/interaction.d.ts.map +1 -0
  206. package/dist/v2/react-native/charts/line/interaction.js +94 -0
  207. package/dist/v2/react-native/charts/line/legend.d.ts +35 -0
  208. package/dist/v2/react-native/charts/line/legend.d.ts.map +1 -0
  209. package/dist/v2/react-native/charts/line/legend.js +95 -0
  210. package/dist/v2/react-native/charts/line/markers.d.ts +11 -0
  211. package/dist/v2/react-native/charts/line/markers.d.ts.map +1 -0
  212. package/dist/v2/react-native/charts/line/markers.js +52 -0
  213. package/dist/v2/react-native/charts/line/options.d.ts +172 -0
  214. package/dist/v2/react-native/charts/line/options.d.ts.map +1 -0
  215. package/dist/v2/react-native/charts/line/options.js +168 -0
  216. package/dist/v2/react-native/charts/line/outsidePressSurfaces.d.ts +15 -0
  217. package/dist/v2/react-native/charts/line/outsidePressSurfaces.d.ts.map +1 -0
  218. package/dist/v2/react-native/charts/line/outsidePressSurfaces.js +37 -0
  219. package/dist/v2/react-native/charts/line/overviewProps.d.ts +45 -0
  220. package/dist/v2/react-native/charts/line/overviewProps.d.ts.map +1 -0
  221. package/dist/v2/react-native/charts/line/overviewProps.js +4 -0
  222. package/dist/v2/react-native/charts/line/rangeSelector.d.ts +19 -0
  223. package/dist/v2/react-native/charts/line/rangeSelector.d.ts.map +1 -0
  224. package/dist/v2/react-native/charts/line/rangeSelector.js +185 -0
  225. package/dist/v2/react-native/charts/line/rangeSelectorConfig.d.ts +38 -0
  226. package/dist/v2/react-native/charts/line/rangeSelectorConfig.d.ts.map +1 -0
  227. package/dist/v2/react-native/charts/line/rangeSelectorConfig.js +41 -0
  228. package/dist/v2/react-native/charts/line/referenceLabelPlacement.d.ts +21 -0
  229. package/dist/v2/react-native/charts/line/referenceLabelPlacement.d.ts.map +1 -0
  230. package/dist/v2/react-native/charts/line/referenceLabelPlacement.js +113 -0
  231. package/dist/v2/react-native/charts/line/references.d.ts +62 -0
  232. package/dist/v2/react-native/charts/line/references.d.ts.map +1 -0
  233. package/dist/v2/react-native/charts/line/references.js +156 -0
  234. package/dist/v2/react-native/charts/line/renderer.d.ts +4 -0
  235. package/dist/v2/react-native/charts/line/renderer.d.ts.map +1 -0
  236. package/dist/v2/react-native/charts/line/renderer.js +23 -0
  237. package/dist/v2/react-native/charts/line/responders.d.ts +13 -0
  238. package/dist/v2/react-native/charts/line/responders.d.ts.map +1 -0
  239. package/dist/v2/react-native/charts/line/responders.js +62 -0
  240. package/dist/v2/react-native/charts/line/selection.d.ts +31 -0
  241. package/dist/v2/react-native/charts/line/selection.d.ts.map +1 -0
  242. package/dist/v2/react-native/charts/line/selection.js +26 -0
  243. package/dist/v2/react-native/charts/line/seriesInput.d.ts +4 -0
  244. package/dist/v2/react-native/charts/line/seriesInput.d.ts.map +1 -0
  245. package/dist/v2/react-native/charts/line/seriesInput.js +13 -0
  246. package/dist/v2/react-native/charts/line/seriesStyles.d.ts +20 -0
  247. package/dist/v2/react-native/charts/line/seriesStyles.d.ts.map +1 -0
  248. package/dist/v2/react-native/charts/line/seriesStyles.js +33 -0
  249. package/dist/v2/react-native/charts/line/stickyYAxisLayout.d.ts +6 -0
  250. package/dist/v2/react-native/charts/line/stickyYAxisLayout.d.ts.map +1 -0
  251. package/dist/v2/react-native/charts/line/stickyYAxisLayout.js +2 -0
  252. package/dist/v2/react-native/charts/line/text.d.ts +7 -0
  253. package/dist/v2/react-native/charts/line/text.d.ts.map +1 -0
  254. package/dist/v2/react-native/charts/line/text.js +7 -0
  255. package/dist/v2/react-native/charts/line/thresholdRendering.d.ts +28 -0
  256. package/dist/v2/react-native/charts/line/thresholdRendering.d.ts.map +1 -0
  257. package/dist/v2/react-native/charts/line/thresholdRendering.js +145 -0
  258. package/dist/v2/react-native/charts/line/tooltip.d.ts +70 -0
  259. package/dist/v2/react-native/charts/line/tooltip.d.ts.map +1 -0
  260. package/dist/v2/react-native/charts/line/tooltip.js +87 -0
  261. package/dist/v2/react-native/charts/line/types.d.ts +371 -0
  262. package/dist/v2/react-native/charts/line/types.d.ts.map +1 -0
  263. package/dist/v2/react-native/charts/line/types.js +1 -0
  264. package/dist/v2/react-native/charts/line/useAnimatedTooltipModel.d.ts +13 -0
  265. package/dist/v2/react-native/charts/line/useAnimatedTooltipModel.d.ts.map +1 -0
  266. package/dist/v2/react-native/charts/line/useAnimatedTooltipModel.js +84 -0
  267. package/dist/v2/react-native/charts/line/useAnimatedYAxisLabels.d.ts +5 -0
  268. package/dist/v2/react-native/charts/line/useAnimatedYAxisLabels.d.ts.map +1 -0
  269. package/dist/v2/react-native/charts/line/useAnimatedYAxisLabels.js +141 -0
  270. package/dist/v2/react-native/charts/line/useChartModel.d.ts +103 -0
  271. package/dist/v2/react-native/charts/line/useChartModel.d.ts.map +1 -0
  272. package/dist/v2/react-native/charts/line/useChartModel.js +367 -0
  273. package/dist/v2/react-native/charts/line/useDebugLayout.d.ts +16 -0
  274. package/dist/v2/react-native/charts/line/useDebugLayout.d.ts.map +1 -0
  275. package/dist/v2/react-native/charts/line/useDebugLayout.js +35 -0
  276. package/dist/v2/react-native/charts/line/utils.d.ts +10 -0
  277. package/dist/v2/react-native/charts/line/utils.d.ts.map +1 -0
  278. package/dist/v2/react-native/charts/line/utils.js +40 -0
  279. package/dist/v2/react-native/charts/line/viewportInteraction.d.ts +3 -0
  280. package/dist/v2/react-native/charts/line/viewportInteraction.d.ts.map +1 -0
  281. package/dist/v2/react-native/charts/line/viewportInteraction.js +1 -0
  282. package/dist/v2/react-native/charts/line/viewportPinchZoom.d.ts +2 -0
  283. package/dist/v2/react-native/charts/line/viewportPinchZoom.d.ts.map +1 -0
  284. package/dist/v2/react-native/charts/line/viewportPinchZoom.js +1 -0
  285. package/dist/v2/react-native/charts/line/xLabelCandidates.d.ts +13 -0
  286. package/dist/v2/react-native/charts/line/xLabelCandidates.d.ts.map +1 -0
  287. package/dist/v2/react-native/charts/line/xLabelCandidates.js +23 -0
  288. package/dist/v2/react-native/charts/line/xLabels.d.ts +39 -0
  289. package/dist/v2/react-native/charts/line/xLabels.d.ts.map +1 -0
  290. package/dist/v2/react-native/charts/line/xLabels.js +289 -0
  291. package/dist/v2/react-native/charts/line/xScale.d.ts +6 -0
  292. package/dist/v2/react-native/charts/line/xScale.d.ts.map +1 -0
  293. package/dist/v2/react-native/charts/line/xScale.js +25 -0
  294. package/dist/v2/react-native/charts/line/yAxisModel.d.ts +29 -0
  295. package/dist/v2/react-native/charts/line/yAxisModel.d.ts.map +1 -0
  296. package/dist/v2/react-native/charts/line/yAxisModel.js +39 -0
  297. package/dist/v2/react-native/charts/pie/PieChart.d.ts +7 -0
  298. package/dist/v2/react-native/charts/pie/PieChart.d.ts.map +1 -0
  299. package/dist/v2/react-native/charts/pie/PieChart.js +253 -0
  300. package/dist/v2/react-native/charts/pie/accessibility.d.ts +28 -0
  301. package/dist/v2/react-native/charts/pie/accessibility.d.ts.map +1 -0
  302. package/dist/v2/react-native/charts/pie/accessibility.js +49 -0
  303. package/dist/v2/react-native/charts/pie/activeSlice.d.ts +15 -0
  304. package/dist/v2/react-native/charts/pie/activeSlice.d.ts.map +1 -0
  305. package/dist/v2/react-native/charts/pie/activeSlice.js +26 -0
  306. package/dist/v2/react-native/charts/pie/arcLabels.d.ts +32 -0
  307. package/dist/v2/react-native/charts/pie/arcLabels.d.ts.map +1 -0
  308. package/dist/v2/react-native/charts/pie/arcLabels.js +191 -0
  309. package/dist/v2/react-native/charts/pie/interaction.d.ts +26 -0
  310. package/dist/v2/react-native/charts/pie/interaction.d.ts.map +1 -0
  311. package/dist/v2/react-native/charts/pie/interaction.js +66 -0
  312. package/dist/v2/react-native/charts/pie/model.d.ts +15 -0
  313. package/dist/v2/react-native/charts/pie/model.d.ts.map +1 -0
  314. package/dist/v2/react-native/charts/pie/model.js +157 -0
  315. package/dist/v2/react-native/charts/pie/selectionAnimation.d.ts +33 -0
  316. package/dist/v2/react-native/charts/pie/selectionAnimation.d.ts.map +1 -0
  317. package/dist/v2/react-native/charts/pie/selectionAnimation.js +121 -0
  318. package/dist/v2/react-native/charts/pie/sliceSeparator.d.ts +7 -0
  319. package/dist/v2/react-native/charts/pie/sliceSeparator.d.ts.map +1 -0
  320. package/dist/v2/react-native/charts/pie/sliceSeparator.js +26 -0
  321. package/dist/v2/react-native/charts/pie/slices.d.ts +20 -0
  322. package/dist/v2/react-native/charts/pie/slices.d.ts.map +1 -0
  323. package/dist/v2/react-native/charts/pie/slices.js +54 -0
  324. package/dist/v2/react-native/charts/pie/types.d.ts +165 -0
  325. package/dist/v2/react-native/charts/pie/types.d.ts.map +1 -0
  326. package/dist/v2/react-native/charts/pie/types.js +1 -0
  327. package/dist/v2/react-native/charts/progress/ProgressChart.d.ts +7 -0
  328. package/dist/v2/react-native/charts/progress/ProgressChart.d.ts.map +1 -0
  329. package/dist/v2/react-native/charts/progress/ProgressChart.js +111 -0
  330. package/dist/v2/react-native/charts/progress/accessibility.d.ts +26 -0
  331. package/dist/v2/react-native/charts/progress/accessibility.d.ts.map +1 -0
  332. package/dist/v2/react-native/charts/progress/accessibility.js +71 -0
  333. package/dist/v2/react-native/charts/progress/animation.d.ts +36 -0
  334. package/dist/v2/react-native/charts/progress/animation.d.ts.map +1 -0
  335. package/dist/v2/react-native/charts/progress/animation.js +103 -0
  336. package/dist/v2/react-native/charts/progress/model.d.ts +14 -0
  337. package/dist/v2/react-native/charts/progress/model.d.ts.map +1 -0
  338. package/dist/v2/react-native/charts/progress/model.js +133 -0
  339. package/dist/v2/react-native/charts/progress/types.d.ts +72 -0
  340. package/dist/v2/react-native/charts/progress/types.d.ts.map +1 -0
  341. package/dist/v2/react-native/charts/progress/types.js +1 -0
  342. package/dist/v2/react-native/index.d.ts +24 -0
  343. package/dist/v2/react-native/index.d.ts.map +1 -0
  344. package/dist/v2/react-native/index.js +14 -0
  345. package/dist/v2/react-native/selection/ChartSelectionProvider.d.ts +27 -0
  346. package/dist/v2/react-native/selection/ChartSelectionProvider.d.ts.map +1 -0
  347. package/dist/v2/react-native/selection/ChartSelectionProvider.js +92 -0
  348. package/dist/v2/react-native/selection/index.d.ts +2 -0
  349. package/dist/v2/react-native/selection/index.d.ts.map +1 -0
  350. package/dist/v2/react-native/selection/index.js +1 -0
  351. package/dist/v2/react-native/selection/scope.d.ts +16 -0
  352. package/dist/v2/react-native/selection/scope.d.ts.map +1 -0
  353. package/dist/v2/react-native/selection/scope.js +18 -0
  354. package/dist/v2/react-native/theme/index.d.ts +4 -0
  355. package/dist/v2/react-native/theme/index.d.ts.map +1 -0
  356. package/dist/v2/react-native/theme/index.js +2 -0
  357. package/dist/v2/react-native/theme/presets.d.ts +84 -0
  358. package/dist/v2/react-native/theme/presets.d.ts.map +1 -0
  359. package/dist/v2/react-native/theme/presets.js +298 -0
  360. package/dist/v2/react-native/theme/provider.d.ts +20 -0
  361. package/dist/v2/react-native/theme/provider.d.ts.map +1 -0
  362. package/dist/v2/react-native/theme/provider.js +27 -0
  363. package/dist/v2/react-native/viewport/bounds.d.ts +7 -0
  364. package/dist/v2/react-native/viewport/bounds.d.ts.map +1 -0
  365. package/dist/v2/react-native/viewport/bounds.js +7 -0
  366. package/dist/v2/react-native/viewport/config.d.ts +13 -0
  367. package/dist/v2/react-native/viewport/config.d.ts.map +1 -0
  368. package/dist/v2/react-native/viewport/config.js +64 -0
  369. package/dist/v2/react-native/viewport/pan.d.ts +23 -0
  370. package/dist/v2/react-native/viewport/pan.d.ts.map +1 -0
  371. package/dist/v2/react-native/viewport/pan.js +110 -0
  372. package/dist/v2/react-native/viewport/pinchZoom.d.ts +17 -0
  373. package/dist/v2/react-native/viewport/pinchZoom.d.ts.map +1 -0
  374. package/dist/v2/react-native/viewport/pinchZoom.js +131 -0
  375. package/dist/v2/react-native/viewport/types.d.ts +55 -0
  376. package/dist/v2/react-native/viewport/types.d.ts.map +1 -0
  377. package/dist/v2/react-native/viewport/types.js +1 -0
  378. package/dist/v2/svg-renderer/capabilities.d.ts +3 -0
  379. package/dist/v2/svg-renderer/capabilities.d.ts.map +1 -0
  380. package/dist/v2/svg-renderer/capabilities.js +12 -0
  381. package/dist/v2/svg-renderer/clipPath.d.ts +4 -0
  382. package/dist/v2/svg-renderer/clipPath.d.ts.map +1 -0
  383. package/dist/v2/svg-renderer/clipPath.js +35 -0
  384. package/dist/v2/svg-renderer/defs.d.ts +6 -0
  385. package/dist/v2/svg-renderer/defs.d.ts.map +1 -0
  386. package/dist/v2/svg-renderer/defs.js +18 -0
  387. package/dist/v2/svg-renderer/ensureConsole.d.ts +4 -0
  388. package/dist/v2/svg-renderer/ensureConsole.d.ts.map +1 -0
  389. package/dist/v2/svg-renderer/ensureConsole.js +54 -0
  390. package/dist/v2/svg-renderer/hitRegions.d.ts +3 -0
  391. package/dist/v2/svg-renderer/hitRegions.d.ts.map +1 -0
  392. package/dist/v2/svg-renderer/hitRegions.js +6 -0
  393. package/dist/v2/svg-renderer/index.d.ts +14 -0
  394. package/dist/v2/svg-renderer/index.d.ts.map +1 -0
  395. package/dist/v2/svg-renderer/index.js +13 -0
  396. package/dist/v2/svg-renderer/layerOrder.d.ts +19 -0
  397. package/dist/v2/svg-renderer/layerOrder.d.ts.map +1 -0
  398. package/dist/v2/svg-renderer/layerOrder.js +18 -0
  399. package/dist/v2/svg-renderer/layers.d.ts +3 -0
  400. package/dist/v2/svg-renderer/layers.d.ts.map +1 -0
  401. package/dist/v2/svg-renderer/layers.js +4 -0
  402. package/dist/v2/svg-renderer/primitives.d.ts +12 -0
  403. package/dist/v2/svg-renderer/primitives.d.ts.map +1 -0
  404. package/dist/v2/svg-renderer/primitives.js +13 -0
  405. package/dist/v2/svg-renderer/renderer.d.ts +4 -0
  406. package/dist/v2/svg-renderer/renderer.d.ts.map +1 -0
  407. package/dist/v2/svg-renderer/renderer.js +24 -0
  408. package/dist/v2/svg-renderer/symbolGeometry.d.ts +6 -0
  409. package/dist/v2/svg-renderer/symbolGeometry.d.ts.map +1 -0
  410. package/dist/v2/svg-renderer/symbolGeometry.js +10 -0
  411. package/dist/v2/svg-renderer/symbols.d.ts +3 -0
  412. package/dist/v2/svg-renderer/symbols.d.ts.map +1 -0
  413. package/dist/v2/svg-renderer/symbols.js +23 -0
  414. package/dist/v2/svg-renderer/testIds.d.ts +2 -0
  415. package/dist/v2/svg-renderer/testIds.d.ts.map +1 -0
  416. package/dist/v2/svg-renderer/testIds.js +10 -0
  417. package/dist/v2/svg-renderer/textMeasurement.d.ts +4 -0
  418. package/dist/v2/svg-renderer/textMeasurement.d.ts.map +1 -0
  419. package/dist/v2/svg-renderer/textMeasurement.js +37 -0
  420. package/dist/v2/svg-renderer/types.d.ts +134 -0
  421. package/dist/v2/svg-renderer/types.d.ts.map +1 -0
  422. package/dist/v2/svg-renderer/types.js +1 -0
  423. package/package.json +56 -50
  424. package/v2/index.d.ts +1 -0
  425. package/v2/index.js +1 -0
  426. package/v2/package.json +6 -0
  427. package/scripts/chartkit-codemod.mjs +0 -256
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../src/charts/bar/BarChart.tsx"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,mBAAmB,SAAS,CAAC;AAC7B,OAAO,EACL,+BAA+B,EAC/B,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,QAAQ,GAAI,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5D,OAAO,aAAa,CAAC,KAAK,CAAC,gCA4S5B,CAAC"}
@@ -0,0 +1,199 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, 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 { useChartKitTheme } from "../../theme";
5
+ import { useScopedChartSelection } from "../../selection/ChartSelectionProvider";
6
+ import { getBarChartAccessibilitySummary } from "./accessibility";
7
+ import { BarChartSurface, BarChartTooltipOverlay, StickyBarChartYAxis } from "./BarChartSurface";
8
+ import { buildBarChartSelectEvent, getBarChartBarAtPoint, getBarChartBarKey, getBarChartInteractionConfig, isBarChartInteractionEnabled } from "./interaction";
9
+ import { buildBarChartModel } from "./model";
10
+ import { getBarChartTooltipConfig } from "./options";
11
+ import { getSafeBarChartContentWidth, getSafeBarChartRenderer } from "./rendererSafety";
12
+ import { getBarChartTooltipModel } from "./tooltipModel";
13
+ import { resolveBarChartViewport, resolveBarChartViewportInitialOffset } from "./viewport";
14
+ export { getBarChartAccessibilitySummary, getBarChartDataTable } from "./accessibility";
15
+ export const BarChart = (props) => {
16
+ const generatedChartId = useId().replace(/:/g, "");
17
+ const scopedChartId = props.id ?? generatedChartId;
18
+ const chartKitTheme = useChartKitTheme();
19
+ const renderer = props.renderer ?? chartKitTheme.renderer;
20
+ const scrollViewRef = useRef(null);
21
+ const interactionConfig = useMemo(() => getBarChartInteractionConfig(props.interaction), [props.interaction]);
22
+ const [gestureSelectedBarKey, setGestureSelectedBarKey] = useState(() => getBarChartBarKey(props.defaultSelectedBar));
23
+ const [gestureSelectionPointer, setGestureSelectionPointer] = useState();
24
+ const [scrollOffsetX, setScrollOffsetX] = useState(0);
25
+ const viewport = useMemo(() => resolveBarChartViewport({
26
+ itemCount: props.data.length,
27
+ scrollable: props.scrollable,
28
+ viewportWidth: props.width,
29
+ visiblePoints: props.visiblePoints
30
+ }), [props.data.length, props.scrollable, props.visiblePoints, props.width]);
31
+ const safeContentWidth = getSafeBarChartContentWidth({
32
+ contentWidth: viewport.contentWidth,
33
+ renderer,
34
+ scrollable: viewport.scrollable
35
+ });
36
+ const safeViewport = useMemo(() => ({
37
+ ...viewport,
38
+ contentWidth: safeContentWidth,
39
+ maxOffset: Math.max(0, safeContentWidth - viewport.viewportWidth),
40
+ scrollable: viewport.scrollable && safeContentWidth > viewport.viewportWidth
41
+ }), [safeContentWidth, viewport]);
42
+ const initialScrollOffset = useMemo(() => resolveBarChartViewportInitialOffset({
43
+ initialIndex: props.initialIndex,
44
+ viewport: safeViewport
45
+ }), [props.initialIndex, safeViewport]);
46
+ const model = useMemo(() => buildBarChartModel({
47
+ ...props,
48
+ chartKitTheme,
49
+ width: safeViewport.contentWidth
50
+ }), [chartKitTheme, props, safeViewport.contentWidth]);
51
+ const { bars, boxes, resolvedTheme } = model;
52
+ const safeRenderer = getSafeBarChartRenderer({
53
+ contentWidth: viewport.contentWidth,
54
+ renderer,
55
+ scrollable: viewport.scrollable
56
+ });
57
+ const scrollInitialOffset = safeViewport.scrollable && props.initialIndex === "end"
58
+ ? Math.max(0, initialScrollOffset - boxes.plot.x * 0.66)
59
+ : initialScrollOffset;
60
+ const barRadius = Math.max(0, props.barRadius ?? 5);
61
+ const controlledSelectedBarKey = getBarChartBarKey(props.selectedBar);
62
+ const selectedBarKey = controlledSelectedBarKey ?? gestureSelectedBarKey;
63
+ const clearGestureSelection = useCallback((reason) => {
64
+ setGestureSelectionPointer(undefined);
65
+ if (props.selectedBar === undefined) {
66
+ setGestureSelectedBarKey(undefined);
67
+ }
68
+ interactionConfig.onDeselect?.({ reason });
69
+ }, [interactionConfig, props.selectedBar]);
70
+ const clearSelectionFromScope = useCallback((reason) => {
71
+ if (reason === "scopeChange") {
72
+ if (props.selectedBar === undefined) {
73
+ setGestureSelectedBarKey(undefined);
74
+ }
75
+ return;
76
+ }
77
+ clearGestureSelection(reason);
78
+ }, [clearGestureSelection, props.selectedBar]);
79
+ const scopedSelection = useScopedChartSelection({
80
+ chartId: scopedChartId,
81
+ controlled: props.selectedBar !== undefined,
82
+ hasSelection: selectedBarKey !== undefined,
83
+ onClear: clearSelectionFromScope
84
+ });
85
+ const clearScopedGestureSelection = useCallback((reason) => {
86
+ clearGestureSelection(reason);
87
+ if (reason !== "programmatic") {
88
+ scopedSelection.dismissSelection?.(reason);
89
+ }
90
+ }, [clearGestureSelection, scopedSelection]);
91
+ const selectedBar = bars.find((bar) => bar.key === selectedBarKey);
92
+ const tooltipConfig = useMemo(() => getBarChartTooltipConfig({
93
+ themeTooltip: resolvedTheme.tooltip,
94
+ tooltip: props.tooltip
95
+ }), [props.tooltip, resolvedTheme.tooltip]);
96
+ const tooltipModel = useMemo(() => getBarChartTooltipModel({
97
+ bar: selectedBar,
98
+ boxes,
99
+ config: tooltipConfig,
100
+ pointer: gestureSelectionPointer?.key === selectedBarKey
101
+ ? gestureSelectionPointer
102
+ : undefined
103
+ }), [boxes, gestureSelectionPointer, selectedBar, selectedBarKey, tooltipConfig]);
104
+ const isInteractionEnabled = isBarChartInteractionEnabled(interactionConfig);
105
+ const handleResponderRelease = useCallback((event) => {
106
+ event.preventDefault();
107
+ const { locationX, locationY } = event.nativeEvent;
108
+ const tappedBar = getBarChartBarAtPoint({
109
+ bars,
110
+ locationX,
111
+ locationY
112
+ });
113
+ if (!tappedBar) {
114
+ if (interactionConfig.deselectOnOutsidePress) {
115
+ clearScopedGestureSelection("outsidePress");
116
+ }
117
+ return;
118
+ }
119
+ if (props.selectedBar === undefined) {
120
+ setGestureSelectedBarKey(tappedBar.key);
121
+ }
122
+ setGestureSelectionPointer({
123
+ key: tappedBar.key,
124
+ x: locationX,
125
+ y: locationY
126
+ });
127
+ scopedSelection.selectChart();
128
+ const selectEvent = buildBarChartSelectEvent(tappedBar);
129
+ if (selectEvent) {
130
+ interactionConfig.onSelect?.(selectEvent);
131
+ }
132
+ }, [
133
+ bars,
134
+ clearScopedGestureSelection,
135
+ interactionConfig,
136
+ props.selectedBar,
137
+ scopedSelection
138
+ ]);
139
+ const responderProps = isInteractionEnabled
140
+ ? {
141
+ onStartShouldSetResponderCapture: () => true,
142
+ onStartShouldSetResponder: () => true,
143
+ onResponderGrant: (event) => {
144
+ event.preventDefault();
145
+ },
146
+ onResponderRelease: handleResponderRelease,
147
+ onResponderTerminationRequest: () => true
148
+ }
149
+ : {};
150
+ const accessibilityLabel = props.accessibilityLabel ??
151
+ getBarChartAccessibilitySummary({
152
+ data: props.data,
153
+ formatXLabel: props.formatXLabel,
154
+ formatYLabel: props.formatYLabel,
155
+ series: props.series,
156
+ xKey: props.xKey,
157
+ yKey: props.yKey,
158
+ yKeys: props.yKeys
159
+ });
160
+ const chartSurface = (_jsx(BarChartSurface, { barRadius: barRadius, height: props.height, model: model, responderProps: responderProps, renderBar: props.renderBar, renderer: safeRenderer, selectedBarKey: selectedBarKey, selectionAnimation: props.selectionAnimation, showYAxis: !safeViewport.scrollable, width: safeViewport.contentWidth }));
161
+ const tooltipOverlay = (_jsx(BarChartTooltipOverlay, { height: props.height, model: model, tooltipConfig: tooltipConfig, tooltipModel: tooltipModel, viewportOffsetX: safeViewport.scrollable ? scrollOffsetX : 0, width: props.width, renderer: safeRenderer }));
162
+ useEffect(() => {
163
+ if (!safeViewport.scrollable) {
164
+ const frame = requestAnimationFrame(() => {
165
+ setScrollOffsetX(0);
166
+ });
167
+ return () => {
168
+ cancelAnimationFrame(frame);
169
+ };
170
+ }
171
+ const frame = requestAnimationFrame(() => {
172
+ setScrollOffsetX(scrollInitialOffset);
173
+ scrollViewRef.current?.scrollTo({
174
+ animated: false,
175
+ x: scrollInitialOffset
176
+ });
177
+ });
178
+ return () => {
179
+ cancelAnimationFrame(frame);
180
+ };
181
+ }, [safeViewport.scrollable, scrollInitialOffset]);
182
+ return (_jsx(View, { accessible: true, accessibilityLabel: accessibilityLabel, accessibilityRole: "image", style: { width: props.width, height: props.height }, testID: props.testID, children: safeViewport.scrollable ? (_jsxs(_Fragment, { children: [_jsx(ScrollView, { ref: scrollViewRef, horizontal: true, bounces: false, showsHorizontalScrollIndicator: true, style: [
183
+ styles.scroller,
184
+ { width: props.width, height: props.height }
185
+ ], contentContainerStyle: [
186
+ styles.scrollerContent,
187
+ { width: safeViewport.contentWidth, height: props.height }
188
+ ], onScroll: (event) => {
189
+ setScrollOffsetX(event.nativeEvent.contentOffset.x);
190
+ }, scrollEventThrottle: 16, children: chartSurface }), _jsx(StickyBarChartYAxis, { height: props.height, model: model, renderer: safeRenderer, width: props.width }), tooltipOverlay] })) : (_jsxs(_Fragment, { children: [chartSurface, tooltipOverlay] })) }));
191
+ };
192
+ const styles = StyleSheet.create({
193
+ scroller: {
194
+ overflow: "hidden"
195
+ },
196
+ scrollerContent: {
197
+ flexGrow: 0
198
+ }
199
+ });
@@ -0,0 +1,36 @@
1
+ import type { ReactNode } from "react";
2
+ import type { ViewProps } from "react-native";
3
+ import type { BarChartModel, BarChartRenderer, BarChartRenderBarProps, ResolvedBarChartTooltipConfig } from "./types";
4
+ import type { BarChartTooltipModel } from "./tooltip";
5
+ import type { BarChartSelectionAnimationConfig } from "./types";
6
+ export type BarChartSurfaceProps<TData = unknown> = {
7
+ barRadius: number;
8
+ height: number;
9
+ model: BarChartModel<TData>;
10
+ responderProps: ViewProps;
11
+ renderBar?: ((props: BarChartRenderBarProps<TData>) => ReactNode) | undefined;
12
+ renderer?: BarChartRenderer | undefined;
13
+ selectedBarKey: string | undefined;
14
+ selectionAnimation: boolean | BarChartSelectionAnimationConfig | undefined;
15
+ showYAxis: boolean;
16
+ width: number;
17
+ };
18
+ export declare const BarChartSurface: <TData>({ barRadius, height, model, responderProps, renderBar, selectedBarKey, selectionAnimation, showYAxis, width, renderer: rendererProp }: BarChartSurfaceProps<TData>) => import("react").JSX.Element;
19
+ export type BarChartTooltipOverlayProps<TData = unknown> = {
20
+ height: number;
21
+ model: BarChartModel<TData>;
22
+ tooltipConfig: ResolvedBarChartTooltipConfig;
23
+ tooltipModel: BarChartTooltipModel<TData> | undefined;
24
+ viewportOffsetX: number;
25
+ width: number;
26
+ renderer?: BarChartRenderer | undefined;
27
+ };
28
+ export declare const BarChartTooltipOverlay: <TData>({ height, model, tooltipConfig, tooltipModel, viewportOffsetX, width, renderer: rendererProp }: BarChartTooltipOverlayProps<TData>) => import("react").JSX.Element;
29
+ export type StickyBarChartYAxisProps<TData = unknown> = {
30
+ height: number;
31
+ model: BarChartModel<TData>;
32
+ width: number;
33
+ renderer?: BarChartRenderer | undefined;
34
+ };
35
+ export declare const StickyBarChartYAxis: <TData>({ height, model, width, renderer: rendererProp }: StickyBarChartYAxisProps<TData>) => import("react").JSX.Element;
36
+ //# sourceMappingURL=BarChartSurface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BarChartSurface.d.ts","sourceRoot":"","sources":["../../../src/charts/bar/BarChartSurface.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAgB9C,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,SAAS,CAAC;AAEhE,MAAM,MAAM,oBAAoB,CAAC,KAAK,GAAG,OAAO,IAAI;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,cAAc,EAAE,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,sBAAsB,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IAC9E,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACxC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,kBAAkB,EAAE,OAAO,GAAG,gCAAgC,GAAG,SAAS,CAAC;IAC3E,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AASF,eAAO,MAAM,eAAe,GAAI,KAAK,EAAG,uIAWrC,oBAAoB,CAAC,KAAK,CAAC,gCA+P7B,CAAC;AAEF,MAAM,MAAM,2BAA2B,CAAC,KAAK,GAAG,OAAO,IAAI;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,aAAa,EAAE,6BAA6B,CAAC;IAC7C,YAAY,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IACtD,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,KAAK,EAAG,gGAQ5C,2BAA2B,CAAC,KAAK,CAAC,gCAsCpC,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,KAAK,GAAG,OAAO,IAAI;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,KAAK,EAAG,kDAKzC,wBAAwB,CAAC,KAAK,CAAC,gCA8CjC,CAAC"}
@@ -0,0 +1,134 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Fragment } from "react";
3
+ import { StyleSheet, View } from "react-native";
4
+ import { createSvgTestId } from "../../../svg-renderer/index";
5
+ import { getLineChartRenderer as getBarChartRenderer } from "../line/renderer";
6
+ import { getFontFamilyProps } from "../line/text";
7
+ import { getAnimatedBarSelectionFill, getAnimatedBarSelectionStrokeOpacity, getBarChartSelectionGridOpacity, shouldRenderBarChartGridLines, useBarChartSelectionAnimation } from "./selectionAnimation";
8
+ import { renderDefaultBarChartTooltip } from "./tooltip";
9
+ import { offsetBarChartTooltipForViewport } from "./tooltipPlacement";
10
+ import { useAnimatedBarChartTooltipModel } from "./useAnimatedTooltipModel";
11
+ const RendererLayer = ({ children }) => _jsx(_Fragment, { children: children });
12
+ export const BarChartSurface = ({ barRadius, height, model, responderProps, renderBar, selectedBarKey, selectionAnimation, showYAxis, width, renderer: rendererProp }) => {
13
+ const { bars, boxes, legendItems, orientation, resolvedTheme, showHorizontalGridLines, showXAxisLabels, showYAxisLabels, valueLabels, xLabels, yLabels, yTicks } = model;
14
+ const fontProps = getFontFamilyProps(resolvedTheme.typography.fontFamily);
15
+ const selectionAnimationState = useBarChartSelectionAnimation({
16
+ animation: selectionAnimation,
17
+ selectedBarKey
18
+ });
19
+ const gridStrokeOpacity = getBarChartSelectionGridOpacity({
20
+ selectedBarKey,
21
+ state: selectionAnimationState
22
+ });
23
+ const shouldRenderGridLines = shouldRenderBarChartGridLines({
24
+ selectedBarKey,
25
+ state: selectionAnimationState
26
+ });
27
+ const shouldCoverSelectionGrid = !shouldRenderGridLines;
28
+ const renderer = getBarChartRenderer(rendererProp);
29
+ const Layer = renderer.Layer ?? RendererLayer;
30
+ const Line = renderer.Line;
31
+ const Rect = renderer.Rect;
32
+ const Surface = renderer.Surface;
33
+ const Text = renderer.Text;
34
+ const isInteractive = Object.keys(responderProps).length > 0;
35
+ return (_jsxs(View, { collapsable: false, style: { width, height, position: "relative" }, children: [_jsxs(Surface, { width: width, height: height, children: [_jsxs(Layer, { name: "background", children: [_jsx(Rect, { x: 0, y: 0, width: width, height: height, rx: 8, fill: resolvedTheme.background }), _jsx(Rect, { x: boxes.plot.x, y: boxes.plot.y, width: boxes.plot.width, height: boxes.plot.height, rx: 6, fill: resolvedTheme.plotBackground })] }), _jsxs(Layer, { name: "grid", children: [shouldRenderGridLines &&
36
+ showHorizontalGridLines &&
37
+ orientation === "horizontal"
38
+ ? xLabels.map((label) => (_jsx(Line, { x1: label.x, x2: label.x, y1: boxes.plot.y, y2: boxes.plot.y + boxes.plot.height, stroke: resolvedTheme.grid, strokeOpacity: gridStrokeOpacity, strokeWidth: 1 }, `grid-x-${label.index}`)))
39
+ : null, shouldRenderGridLines &&
40
+ showHorizontalGridLines &&
41
+ orientation === "vertical"
42
+ ? yTicks.map((tick) => {
43
+ const label = yLabels.find((item) => item.key === `tick-${tick}`);
44
+ return label ? (_jsx(Line, { x1: boxes.plot.x, x2: boxes.plot.x + boxes.plot.width, y1: label.y - resolvedTheme.typography.axisLabelSize / 2 + 2, y2: label.y - resolvedTheme.typography.axisLabelSize / 2 + 2, stroke: resolvedTheme.grid, strokeOpacity: gridStrokeOpacity, strokeWidth: 1 }, `grid-y-${tick}`)) : null;
45
+ })
46
+ : null] }), _jsxs(Layer, { name: "data", children: [shouldCoverSelectionGrid ? (_jsx(Rect, { x: boxes.plot.x, y: boxes.plot.y, width: boxes.plot.width, height: boxes.plot.height, rx: 6, fill: resolvedTheme.plotBackground, testID: createSvgTestId("bar-chart-selection-grid-cover") })) : null, bars.map((bar) => {
47
+ const fill = getAnimatedBarSelectionFill({
48
+ backgroundColor: resolvedTheme.plotBackground,
49
+ barKey: bar.key,
50
+ color: bar.color,
51
+ state: selectionAnimationState
52
+ });
53
+ const strokeOpacity = getAnimatedBarSelectionStrokeOpacity({
54
+ barKey: bar.key,
55
+ state: selectionAnimationState
56
+ });
57
+ const radius = Math.min(barRadius, bar.width / 2, bar.height / 2);
58
+ const barNode = renderBar?.({
59
+ bar,
60
+ fill,
61
+ radius,
62
+ selected: selectedBarKey === bar.key,
63
+ strokeColor: resolvedTheme.text,
64
+ strokeOpacity,
65
+ strokeWidth: 1.5,
66
+ theme: resolvedTheme
67
+ });
68
+ return (_jsxs(Fragment, { children: [_jsx(Rect, { x: bar.x, y: bar.y, width: bar.width, height: bar.height, rx: 0, fill: resolvedTheme.plotBackground }), barNode ?? (_jsx(Rect, { x: bar.x, y: bar.y, width: bar.width, height: bar.height, rx: radius, fill: fill, ...(strokeOpacity > 0
69
+ ? {
70
+ stroke: resolvedTheme.text,
71
+ strokeOpacity,
72
+ strokeWidth: 1.5
73
+ }
74
+ : {}), testID: createSvgTestId("bar-chart-bar", bar.seriesKey, bar.dataIndex) }))] }, bar.key));
75
+ })] }), _jsxs(Layer, { name: "axes", children: [showYAxis && showYAxisLabels
76
+ ? yLabels.map((label) => (_jsx(Text, { x: label.x, y: label.y, fill: resolvedTheme.mutedText, fontSize: resolvedTheme.typography.axisLabelSize, textAnchor: "end", ...fontProps, children: label.text }, `label-y-${label.key}`)))
77
+ : null, showXAxisLabels
78
+ ? xLabels.map((label) => (_jsx(Text, { x: label.x, y: label.y, fill: resolvedTheme.mutedText, fontSize: resolvedTheme.typography.axisLabelSize, textAnchor: label.textAnchor, ...fontProps, children: label.text }, `label-x-${label.index}`)))
79
+ : null, valueLabels.map((label) => (_jsx(Text, { x: label.x, y: label.y, fill: label.color, fontSize: resolvedTheme.typography.axisLabelSize, textAnchor: label.textAnchor ?? "middle", ...fontProps, children: label.text }, label.key))), legendItems.map((item) => (_jsx(Rect, { x: item.markerX, y: item.markerY, width: 8, height: 8, rx: 2, fill: item.color }, `legend-marker-${item.key}`))), legendItems.map((item) => (_jsx(Text, { x: item.labelX, y: item.labelY, fill: resolvedTheme.mutedText, fontSize: resolvedTheme.typography.legendLabelSize, textAnchor: "start", ...fontProps, children: item.label }, `legend-label-${item.key}`)))] })] }), isInteractive ? (_jsx(View, { accessible: false, collapsable: false, importantForAccessibility: "no", pointerEvents: "auto", style: styles.interactionOverlay, ...responderProps })) : null] }));
80
+ };
81
+ export const BarChartTooltipOverlay = ({ height, model, tooltipConfig, tooltipModel, viewportOffsetX, width, renderer: rendererProp }) => {
82
+ const animatedTooltipModel = useAnimatedBarChartTooltipModel(tooltipModel, tooltipConfig.positionAnimationDuration);
83
+ const viewportTooltipModel = animatedTooltipModel
84
+ ? offsetBarChartTooltipForViewport({
85
+ leftInset: model.boxes.plot.x + tooltipConfig.edgePadding,
86
+ rightInset: tooltipConfig.edgePadding,
87
+ tooltip: animatedTooltipModel,
88
+ viewportOffsetX,
89
+ viewportWidth: width
90
+ })
91
+ : undefined;
92
+ const renderer = getBarChartRenderer(rendererProp);
93
+ const Layer = renderer.Layer ?? RendererLayer;
94
+ const Surface = renderer.Surface;
95
+ return (_jsx(View, { pointerEvents: "none", style: [styles.tooltipOverlay, { width, height }], children: _jsx(Surface, { width: width, height: height, children: _jsx(Layer, { name: "interaction", children: viewportTooltipModel
96
+ ? renderDefaultBarChartTooltip({
97
+ ...viewportTooltipModel,
98
+ config: tooltipConfig
99
+ }, renderer)
100
+ : null }) }) }));
101
+ };
102
+ export const StickyBarChartYAxis = ({ height, model, width, renderer: rendererProp }) => {
103
+ const { boxes, resolvedTheme, showYAxisLabels, yLabels } = model;
104
+ const fontProps = getFontFamilyProps(resolvedTheme.typography.fontFamily);
105
+ const renderer = getBarChartRenderer(rendererProp);
106
+ const Layer = renderer.Layer ?? RendererLayer;
107
+ const Rect = renderer.Rect;
108
+ const Surface = renderer.Surface;
109
+ const Text = renderer.Text;
110
+ return (_jsx(View, { pointerEvents: "none", style: [styles.stickyYAxis, { width, height }], children: _jsx(Surface, { width: width, height: height, children: _jsxs(Layer, { name: "axes", children: [_jsx(Rect, { x: 0, y: 0, width: Math.max(0, boxes.plot.x), height: boxes.plot.y + boxes.plot.height, fill: resolvedTheme.background }), _jsx(Rect, { x: 0, y: boxes.plot.y + boxes.plot.height, width: Math.max(0, boxes.plot.x), height: Math.max(0, height - (boxes.plot.y + boxes.plot.height)), fill: resolvedTheme.background }), showYAxisLabels
111
+ ? yLabels.map((label) => (_jsx(Text, { x: label.x, y: label.y, fill: resolvedTheme.mutedText, fontSize: resolvedTheme.typography.axisLabelSize, textAnchor: "end", ...fontProps, children: label.text }, `sticky-label-y-${label.key}`)))
112
+ : null] }) }) }));
113
+ };
114
+ const styles = StyleSheet.create({
115
+ stickyYAxis: {
116
+ left: 0,
117
+ position: "absolute",
118
+ top: 0,
119
+ zIndex: 1
120
+ },
121
+ tooltipOverlay: {
122
+ left: 0,
123
+ position: "absolute",
124
+ top: 0,
125
+ zIndex: 2
126
+ },
127
+ interactionOverlay: {
128
+ bottom: 0,
129
+ left: 0,
130
+ position: "absolute",
131
+ right: 0,
132
+ top: 0
133
+ }
134
+ });
@@ -0,0 +1,4 @@
1
+ import { type StackedBarChartProps } from "./stackedCompat";
2
+ export type * from "./stackedCompat";
3
+ export declare const StackedBarChart: (props: StackedBarChartProps) => import("react").JSX.Element;
4
+ //# sourceMappingURL=StackedBarChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StackedBarChart.d.ts","sourceRoot":"","sources":["../../../src/charts/bar/StackedBarChart.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,iBAAiB,CAAC;AAEzB,mBAAmB,iBAAiB,CAAC;AAErC,eAAO,MAAM,eAAe,GAAI,OAAO,oBAAoB,gCAW1D,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useMemo } from "react";
3
+ import { View } from "react-native";
4
+ import { BarChart } from "./BarChart";
5
+ import { buildStackedBarChartCompatProps } from "./stackedCompat";
6
+ export const StackedBarChart = (props) => {
7
+ const { barChartProps, style } = useMemo(() => buildStackedBarChartCompatProps(props), [props]);
8
+ return (_jsx(View, { style: style, children: _jsx(BarChart, { ...barChartProps }) }));
9
+ };
@@ -0,0 +1,31 @@
1
+ import type { ChartXValue } from "../../../core/index";
2
+ import type { BarChartProps } from "./types";
3
+ export type BarChartDataTableColumn = {
4
+ key: string;
5
+ label: string;
6
+ };
7
+ export type BarChartDataTableRow<TData = unknown> = {
8
+ index: number;
9
+ x: ChartXValue;
10
+ xLabel: string;
11
+ values: Record<string, number | null>;
12
+ formattedValues: Record<string, string>;
13
+ raw: TData;
14
+ };
15
+ export type BarChartDataTable<TData = unknown> = {
16
+ columns: BarChartDataTableColumn[];
17
+ rows: Array<BarChartDataTableRow<TData>>;
18
+ };
19
+ type BarChartAccessibilityInput<TData extends Record<string, unknown>> = {
20
+ data: BarChartProps<TData>["data"];
21
+ formatXLabel?: BarChartProps<TData>["formatXLabel"] | undefined;
22
+ formatYLabel?: BarChartProps<TData>["formatYLabel"] | undefined;
23
+ series?: BarChartProps<TData>["series"] | undefined;
24
+ xKey: BarChartProps<TData>["xKey"];
25
+ yKey?: BarChartProps<TData>["yKey"] | undefined;
26
+ yKeys?: BarChartProps<TData>["yKeys"] | undefined;
27
+ };
28
+ export declare const getBarChartDataTable: <TData extends Record<string, unknown>>({ data, formatXLabel, formatYLabel, series, xKey, yKey, yKeys }: BarChartAccessibilityInput<TData>) => BarChartDataTable<TData>;
29
+ export declare const getBarChartAccessibilitySummary: <TData extends Record<string, unknown>>(input: BarChartAccessibilityInput<TData>) => string;
30
+ export {};
31
+ //# sourceMappingURL=accessibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../../../src/charts/bar/accessibility.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,SAAS,CAAC;AAM7D,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,KAAK,GAAG,OAAO,IAAI;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,WAAW,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,GAAG,EAAE,KAAK,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,KAAK,GAAG,OAAO,IAAI;IAC/C,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACnC,IAAI,EAAE,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;CAC1C,CAAC;AAEF,KAAK,0BAA0B,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACvE,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAChE,YAAY,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAChE,MAAM,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IACpD,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAChD,KAAK,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;CACnD,CAAC;AAuEF,eAAO,MAAM,oBAAoB,GAAI,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,iEAQzE,0BAA0B,CAAC,KAAK,CAAC,KAAG,iBAAiB,CAAC,KAAK,CAqC7D,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAC1C,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAErC,OAAO,0BAA0B,CAAC,KAAK,CAAC,WAwCzC,CAAC"}
@@ -0,0 +1,87 @@
1
+ import { normalizeCartesianData } from "../../../core/index";
2
+ import { defaultFormatBarChartXLabel, defaultFormatBarChartYLabel } from "./modelUtils";
3
+ const pluralize = (count, singular, plural = `${singular}s`) => `${count} ${count === 1 ? singular : plural}`;
4
+ const resolveSeriesInput = (yKey, yKeys, series) => {
5
+ if (series && series.length > 0) {
6
+ return series;
7
+ }
8
+ if (yKeys && yKeys.length > 0) {
9
+ return yKeys.map((key) => ({ yKey: key }));
10
+ }
11
+ return yKey ? [{ yKey }] : [];
12
+ };
13
+ const getDefinedPoints = (table) => table.rows.flatMap((row) => table.columns.flatMap((column) => {
14
+ const value = row.values[column.key];
15
+ return typeof value === "number"
16
+ ? [
17
+ {
18
+ formattedValue: row.formattedValues[column.key] ?? String(value),
19
+ raw: row.raw,
20
+ seriesLabel: column.label,
21
+ value,
22
+ xLabel: row.xLabel
23
+ }
24
+ ]
25
+ : [];
26
+ }));
27
+ const getMinPoint = (points) => points.reduce((min, point) => (!min || point.value < min.value ? point : min), undefined);
28
+ const getMaxPoint = (points) => points.reduce((max, point) => (!max || point.value > max.value ? point : max), undefined);
29
+ const getPointLabel = ({ point, seriesCount }) => seriesCount > 1 ? `${point.seriesLabel} in ${point.xLabel}` : point.xLabel;
30
+ export const getBarChartDataTable = ({ data, formatXLabel = defaultFormatBarChartXLabel, formatYLabel = defaultFormatBarChartYLabel, series, xKey, yKey, yKeys }) => {
31
+ const seriesInput = resolveSeriesInput(yKey, yKeys, series);
32
+ const normalized = normalizeCartesianData({
33
+ data,
34
+ xKey,
35
+ series: seriesInput
36
+ });
37
+ return {
38
+ columns: normalized.series.map((item) => ({
39
+ key: item.key,
40
+ label: item.label
41
+ })),
42
+ rows: data.map((row, rowIndex) => {
43
+ const values = {};
44
+ const formattedValues = {};
45
+ normalized.series.forEach((seriesItem) => {
46
+ const value = seriesItem.points[rowIndex]?.value ?? null;
47
+ values[seriesItem.key] = value;
48
+ formattedValues[seriesItem.key] =
49
+ value === null ? "No value" : formatYLabel(value);
50
+ });
51
+ const x = normalized.series[0]?.points[rowIndex]?.x ?? rowIndex;
52
+ return {
53
+ index: rowIndex,
54
+ x,
55
+ xLabel: formatXLabel(x, rowIndex),
56
+ values,
57
+ formattedValues,
58
+ raw: row
59
+ };
60
+ })
61
+ };
62
+ };
63
+ export const getBarChartAccessibilitySummary = (input) => {
64
+ const table = getBarChartDataTable(input);
65
+ if (table.columns.length === 0 || table.rows.length === 0) {
66
+ return "Bar chart with no data.";
67
+ }
68
+ const points = getDefinedPoints(table);
69
+ if (points.length === 0) {
70
+ return `Bar chart with ${pluralize(table.rows.length, "category", "categories")} and no defined values.`;
71
+ }
72
+ const intro = table.columns.length === 1
73
+ ? `Bar chart with ${pluralize(points.length, "bar")}.`
74
+ : `Bar chart with ${pluralize(table.columns.length, "series", "series")} across ${pluralize(table.rows.length, "category", "categories")}.`;
75
+ const minPoint = getMinPoint(points);
76
+ const maxPoint = getMaxPoint(points);
77
+ if (!minPoint || !maxPoint) {
78
+ return intro;
79
+ }
80
+ return `${intro} Highest value is ${getPointLabel({
81
+ point: maxPoint,
82
+ seriesCount: table.columns.length
83
+ })} at ${maxPoint.formattedValue}. Lowest value is ${getPointLabel({
84
+ point: minPoint,
85
+ seriesCount: table.columns.length
86
+ })} at ${minPoint.formattedValue}.`;
87
+ };
@@ -0,0 +1,18 @@
1
+ import type { BarChartBarModel, BarChartDeselectEvent, BarChartInteraction, BarChartSelectEvent, BarChartSelectedBar } from "./types";
2
+ export type ResolvedBarChartInteractionConfig<TData = unknown> = {
3
+ mode: "none" | "tap";
4
+ deselectOnOutsidePress: boolean;
5
+ onSelect?: (event: BarChartSelectEvent<TData>) => void;
6
+ onDeselect?: (event: BarChartDeselectEvent) => void;
7
+ };
8
+ export declare const getBarChartBarKey: (selectedBar: BarChartSelectedBar | undefined) => string | undefined;
9
+ export declare const getBarChartInteractionConfig: <TData>(interaction: BarChartInteraction<TData> | undefined) => ResolvedBarChartInteractionConfig<TData>;
10
+ export declare const isBarChartInteractionEnabled: <TData>(config: ResolvedBarChartInteractionConfig<TData>) => boolean;
11
+ export declare const getBarChartBarAtPoint: <TData>({ bars, hitSlop, locationX, locationY }: {
12
+ bars: Array<BarChartBarModel<TData>>;
13
+ hitSlop?: number;
14
+ locationX: number;
15
+ locationY: number;
16
+ }) => BarChartBarModel<TData> | undefined;
17
+ export declare const buildBarChartSelectEvent: <TData>(bar: BarChartBarModel<TData> | undefined) => BarChartSelectEvent<TData> | undefined;
18
+ //# sourceMappingURL=interaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../../src/charts/bar/interaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,iCAAiC,CAAC,KAAK,GAAG,OAAO,IAAI;IAC/D,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,sBAAsB,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACvD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,aAAa,mBAAmB,GAAG,SAAS,uBAEiC,CAAC;AAEhF,eAAO,MAAM,4BAA4B,GAAI,KAAK,EAChD,aAAa,mBAAmB,CAAC,KAAK,CAAC,GAAG,SAAS,KAClD,iCAAiC,CAAC,KAAK,CAqBzC,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,KAAK,EAChD,QAAQ,iCAAiC,CAAC,KAAK,CAAC,YACvB,CAAC;AAE5B,eAAO,MAAM,qBAAqB,GAAI,KAAK,EAAE,yCAK1C;IACD,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,wCAyBA,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,KAAK,EAC5C,KAAK,gBAAgB,CAAC,KAAK,CAAC,GAAG,SAAS,KACvC,mBAAmB,CAAC,KAAK,CAAC,GAAG,SAoB/B,CAAC"}
@@ -0,0 +1,62 @@
1
+ export const getBarChartBarKey = (selectedBar) => selectedBar ? `${selectedBar.seriesKey}-${selectedBar.dataIndex}` : undefined;
2
+ export const getBarChartInteractionConfig = (interaction) => {
3
+ if (!interaction) {
4
+ return {
5
+ mode: "none",
6
+ deselectOnOutsidePress: false
7
+ };
8
+ }
9
+ if (typeof interaction === "string") {
10
+ return {
11
+ mode: interaction,
12
+ deselectOnOutsidePress: interaction !== "none"
13
+ };
14
+ }
15
+ return {
16
+ mode: interaction.mode ?? "tap",
17
+ deselectOnOutsidePress: interaction.deselectOnOutsidePress ?? true,
18
+ ...(interaction.onSelect ? { onSelect: interaction.onSelect } : {}),
19
+ ...(interaction.onDeselect ? { onDeselect: interaction.onDeselect } : {})
20
+ };
21
+ };
22
+ export const isBarChartInteractionEnabled = (config) => config.mode !== "none";
23
+ export const getBarChartBarAtPoint = ({ bars, hitSlop = 6, locationX, locationY }) => {
24
+ const candidates = bars.filter((bar) => {
25
+ const top = bar.y;
26
+ const bottom = bar.y + bar.height;
27
+ return (locationX >= bar.x - hitSlop &&
28
+ locationX <= bar.x + bar.width + hitSlop &&
29
+ locationY >= top - hitSlop &&
30
+ locationY <= bottom + hitSlop);
31
+ });
32
+ if (candidates.length <= 1) {
33
+ return candidates[0];
34
+ }
35
+ return candidates
36
+ .map((bar) => ({
37
+ bar,
38
+ distance: Math.abs(locationX - (bar.x + bar.width / 2)) +
39
+ Math.abs(locationY - (bar.y + bar.height / 2))
40
+ }))
41
+ .sort((a, b) => a.distance - b.distance)[0]?.bar;
42
+ };
43
+ export const buildBarChartSelectEvent = (bar) => {
44
+ if (!bar) {
45
+ return undefined;
46
+ }
47
+ return {
48
+ color: bar.color,
49
+ dataIndex: bar.dataIndex,
50
+ formattedValue: bar.formattedValue,
51
+ position: {
52
+ x: bar.x + bar.width / 2,
53
+ y: bar.y
54
+ },
55
+ raw: bar.raw,
56
+ seriesKey: bar.seriesKey,
57
+ seriesLabel: bar.seriesLabel,
58
+ value: bar.value,
59
+ x: bar.xValue,
60
+ xLabel: bar.xLabel
61
+ };
62
+ };
@@ -0,0 +1,3 @@
1
+ import type { BarChartModel, BuildBarChartModelOptions } from "./types";
2
+ export declare const buildBarChartModel: <TData extends Record<string, unknown>>({ data, xKey, yKey, yKeys, series, width, height, theme, preset, mode, orientation, yDomain, barWidthRatio, barGapRatio, showValuesOnTopOfBars, showHorizontalGridLines, showXAxisLabels, showYAxisLabels, yTickCount, legend, labelStrategy, formatXLabel, formatYLabel, chartKitTheme }: BuildBarChartModelOptions<TData>) => BarChartModel<TData>;
3
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/charts/bar/model.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAEV,aAAa,EAGb,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AAoEjB,eAAO,MAAM,kBAAkB,GAAI,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,2RAyBvE,yBAAyB,CAAC,KAAK,CAAC,KAAG,aAAa,CAAC,KAAK,CAkUxD,CAAC"}