@mui/x-charts 6.0.0-alpha.0

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 (423) hide show
  1. package/BarChart/BarChart.d.ts +19 -0
  2. package/BarChart/BarChart.js +262 -0
  3. package/BarChart/BarElement.d.ts +21 -0
  4. package/BarChart/BarElement.js +92 -0
  5. package/BarChart/BarPlot.d.ts +2 -0
  6. package/BarChart/BarPlot.js +76 -0
  7. package/BarChart/extremums.d.ts +3 -0
  8. package/BarChart/extremums.js +27 -0
  9. package/BarChart/formatter.d.ts +3 -0
  10. package/BarChart/formatter.js +54 -0
  11. package/BarChart/index.d.ts +2 -0
  12. package/BarChart/index.js +19 -0
  13. package/BarChart/package.json +6 -0
  14. package/CHANGELOG.md +3211 -0
  15. package/ChartContainer/index.d.ts +9 -0
  16. package/ChartContainer/index.js +61 -0
  17. package/ChartContainer/package.json +6 -0
  18. package/ChartsAxis/ChartsAxis.d.ts +33 -0
  19. package/ChartsAxis/ChartsAxis.js +152 -0
  20. package/ChartsAxis/axisClasses.d.ts +29 -0
  21. package/ChartsAxis/axisClasses.js +13 -0
  22. package/ChartsAxis/index.d.ts +2 -0
  23. package/ChartsAxis/index.js +27 -0
  24. package/ChartsAxis/package.json +6 -0
  25. package/ChartsAxisHighlight/ChartsAxisHighlight.d.ts +10 -0
  26. package/ChartsAxisHighlight/ChartsAxisHighlight.js +67 -0
  27. package/ChartsAxisHighlight/index.d.ts +1 -0
  28. package/ChartsAxisHighlight/index.js +16 -0
  29. package/ChartsAxisHighlight/package.json +6 -0
  30. package/ChartsClipPath/ChartsClipPath.d.ts +15 -0
  31. package/ChartsClipPath/ChartsClipPath.js +54 -0
  32. package/ChartsClipPath/index.d.ts +1 -0
  33. package/ChartsClipPath/index.js +16 -0
  34. package/ChartsClipPath/package.json +6 -0
  35. package/ChartsLegend/ChartsLegend.d.ts +44 -0
  36. package/ChartsLegend/ChartsLegend.js +202 -0
  37. package/ChartsLegend/chartsLegendClasses.d.ts +17 -0
  38. package/ChartsLegend/chartsLegendClasses.js +13 -0
  39. package/ChartsLegend/index.d.ts +2 -0
  40. package/ChartsLegend/index.js +27 -0
  41. package/ChartsLegend/package.json +6 -0
  42. package/ChartsLegend/utils.d.ts +14 -0
  43. package/ChartsLegend/utils.js +9 -0
  44. package/ChartsSurface.d.ts +21 -0
  45. package/ChartsSurface.js +58 -0
  46. package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +40 -0
  47. package/ChartsTooltip/ChartsAxisTooltipContent.js +116 -0
  48. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +27 -0
  49. package/ChartsTooltip/ChartsItemTooltipContent.js +70 -0
  50. package/ChartsTooltip/ChartsTooltip.d.ts +32 -0
  51. package/ChartsTooltip/ChartsTooltip.js +104 -0
  52. package/ChartsTooltip/ChartsTooltipTable.d.ts +26 -0
  53. package/ChartsTooltip/ChartsTooltipTable.js +81 -0
  54. package/ChartsTooltip/index.d.ts +1 -0
  55. package/ChartsTooltip/index.js +16 -0
  56. package/ChartsTooltip/package.json +6 -0
  57. package/ChartsTooltip/tooltipClasses.d.ts +13 -0
  58. package/ChartsTooltip/tooltipClasses.js +13 -0
  59. package/ChartsTooltip/utils.d.ts +24 -0
  60. package/ChartsTooltip/utils.js +91 -0
  61. package/ChartsXAxis/ChartsXAxis.d.ts +7 -0
  62. package/ChartsXAxis/ChartsXAxis.js +191 -0
  63. package/ChartsXAxis/index.d.ts +1 -0
  64. package/ChartsXAxis/index.js +16 -0
  65. package/ChartsXAxis/package.json +6 -0
  66. package/ChartsYAxis/ChartsYAxis.d.ts +7 -0
  67. package/ChartsYAxis/ChartsYAxis.js +192 -0
  68. package/ChartsYAxis/index.d.ts +1 -0
  69. package/ChartsYAxis/index.js +16 -0
  70. package/ChartsYAxis/package.json +6 -0
  71. package/LICENSE +21 -0
  72. package/LineChart/AreaElement.d.ts +28 -0
  73. package/LineChart/AreaElement.js +115 -0
  74. package/LineChart/AreaPlot.d.ts +2 -0
  75. package/LineChart/AreaPlot.js +67 -0
  76. package/LineChart/LineChart.d.ts +19 -0
  77. package/LineChart/LineChart.js +266 -0
  78. package/LineChart/LineElement.d.ts +28 -0
  79. package/LineChart/LineElement.js +117 -0
  80. package/LineChart/LinePlot.d.ts +2 -0
  81. package/LineChart/LinePlot.js +67 -0
  82. package/LineChart/MarkElement.d.ts +38 -0
  83. package/LineChart/MarkElement.js +140 -0
  84. package/LineChart/MarkPlot.d.ts +2 -0
  85. package/LineChart/MarkPlot.js +86 -0
  86. package/LineChart/extremums.d.ts +3 -0
  87. package/LineChart/extremums.js +36 -0
  88. package/LineChart/formatter.d.ts +3 -0
  89. package/LineChart/formatter.js +55 -0
  90. package/LineChart/index.d.ts +7 -0
  91. package/LineChart/index.js +75 -0
  92. package/LineChart/package.json +6 -0
  93. package/README.md +5 -0
  94. package/ResponsiveChartContainer/index.d.ts +5 -0
  95. package/ResponsiveChartContainer/index.js +54 -0
  96. package/ResponsiveChartContainer/package.json +6 -0
  97. package/ScatterChart/Scatter.d.ts +15 -0
  98. package/ScatterChart/Scatter.js +114 -0
  99. package/ScatterChart/ScatterChart.d.ts +19 -0
  100. package/ScatterChart/ScatterChart.js +252 -0
  101. package/ScatterChart/ScatterPlot.d.ts +2 -0
  102. package/ScatterChart/ScatterPlot.js +52 -0
  103. package/ScatterChart/extremums.d.ts +3 -0
  104. package/ScatterChart/extremums.js +49 -0
  105. package/ScatterChart/formatter.d.ts +3 -0
  106. package/ScatterChart/formatter.js +19 -0
  107. package/ScatterChart/index.d.ts +3 -0
  108. package/ScatterChart/index.js +26 -0
  109. package/ScatterChart/package.json +6 -0
  110. package/colorPalettes/colorPalettes.d.ts +11 -0
  111. package/colorPalettes/colorPalettes.js +24 -0
  112. package/colorPalettes/index.d.ts +1 -0
  113. package/colorPalettes/index.js +16 -0
  114. package/colorPalettes/package.json +6 -0
  115. package/constants.d.ts +8 -0
  116. package/constants.js +17 -0
  117. package/context/CartesianContextProvider.d.ts +30 -0
  118. package/context/CartesianContextProvider.js +227 -0
  119. package/context/DrawingProvider.d.ts +22 -0
  120. package/context/DrawingProvider.js +64 -0
  121. package/context/HighlightProvider.d.ts +28 -0
  122. package/context/HighlightProvider.js +57 -0
  123. package/context/InteractionProvider.d.ts +34 -0
  124. package/context/InteractionProvider.js +62 -0
  125. package/context/SeriesContextProvider.d.ts +17 -0
  126. package/context/SeriesContextProvider.js +69 -0
  127. package/context/index.d.ts +3 -0
  128. package/context/index.js +19 -0
  129. package/context/package.json +6 -0
  130. package/esm/BarChart/BarChart.js +255 -0
  131. package/esm/BarChart/BarElement.js +80 -0
  132. package/esm/BarChart/BarPlot.js +70 -0
  133. package/esm/BarChart/extremums.js +20 -0
  134. package/esm/BarChart/formatter.js +46 -0
  135. package/esm/BarChart/index.js +2 -0
  136. package/esm/ChartContainer/index.js +53 -0
  137. package/esm/ChartsAxis/ChartsAxis.js +145 -0
  138. package/esm/ChartsAxis/axisClasses.js +5 -0
  139. package/esm/ChartsAxis/index.js +2 -0
  140. package/esm/ChartsAxisHighlight/ChartsAxisHighlight.js +60 -0
  141. package/esm/ChartsAxisHighlight/index.js +1 -0
  142. package/esm/ChartsClipPath/ChartsClipPath.js +46 -0
  143. package/esm/ChartsClipPath/index.js +1 -0
  144. package/esm/ChartsLegend/ChartsLegend.js +189 -0
  145. package/esm/ChartsLegend/chartsLegendClasses.js +5 -0
  146. package/esm/ChartsLegend/index.js +2 -0
  147. package/esm/ChartsLegend/utils.js +3 -0
  148. package/esm/ChartsSurface.js +49 -0
  149. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +108 -0
  150. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +63 -0
  151. package/esm/ChartsTooltip/ChartsTooltip.js +96 -0
  152. package/esm/ChartsTooltip/ChartsTooltipTable.js +69 -0
  153. package/esm/ChartsTooltip/index.js +1 -0
  154. package/esm/ChartsTooltip/tooltipClasses.js +5 -0
  155. package/esm/ChartsTooltip/utils.js +81 -0
  156. package/esm/ChartsXAxis/ChartsXAxis.js +184 -0
  157. package/esm/ChartsXAxis/index.js +1 -0
  158. package/esm/ChartsYAxis/ChartsYAxis.js +185 -0
  159. package/esm/ChartsYAxis/index.js +1 -0
  160. package/esm/LineChart/AreaElement.js +104 -0
  161. package/esm/LineChart/AreaPlot.js +58 -0
  162. package/esm/LineChart/LineChart.js +259 -0
  163. package/esm/LineChart/LineElement.js +106 -0
  164. package/esm/LineChart/LinePlot.js +58 -0
  165. package/esm/LineChart/MarkElement.js +130 -0
  166. package/esm/LineChart/MarkPlot.js +78 -0
  167. package/esm/LineChart/extremums.js +29 -0
  168. package/esm/LineChart/formatter.js +48 -0
  169. package/esm/LineChart/index.js +7 -0
  170. package/esm/ResponsiveChartContainer/index.js +46 -0
  171. package/esm/ScatterChart/Scatter.js +106 -0
  172. package/esm/ScatterChart/ScatterChart.js +245 -0
  173. package/esm/ScatterChart/ScatterPlot.js +44 -0
  174. package/esm/ScatterChart/extremums.js +41 -0
  175. package/esm/ScatterChart/formatter.js +11 -0
  176. package/esm/ScatterChart/index.js +3 -0
  177. package/esm/colorPalettes/colorPalettes.js +9 -0
  178. package/esm/colorPalettes/index.js +1 -0
  179. package/esm/constants.js +8 -0
  180. package/esm/context/CartesianContextProvider.js +221 -0
  181. package/esm/context/DrawingProvider.js +52 -0
  182. package/esm/context/HighlightProvider.js +46 -0
  183. package/esm/context/InteractionProvider.js +51 -0
  184. package/esm/context/SeriesContextProvider.js +60 -0
  185. package/esm/context/index.js +2 -0
  186. package/esm/hooks/useAxisEvents.js +145 -0
  187. package/esm/hooks/useChartDimensions.js +14 -0
  188. package/esm/hooks/useInteractionItemProps.js +68 -0
  189. package/esm/hooks/useScale.js +33 -0
  190. package/esm/hooks/useTicks.js +46 -0
  191. package/esm/index.js +15 -0
  192. package/esm/internals/components/AxisSharedComponents.js +81 -0
  193. package/esm/internals/defaultizeColor.js +7 -0
  194. package/esm/internals/defaultizeValueFormatter.js +11 -0
  195. package/esm/internals/getCurve.js +39 -0
  196. package/esm/internals/stackSeries.js +93 -0
  197. package/esm/internals/utils.js +5 -0
  198. package/esm/models/axis.js +1 -0
  199. package/esm/models/helpers.js +1 -0
  200. package/esm/models/index.js +1 -0
  201. package/esm/models/layout.js +1 -0
  202. package/esm/models/seriesType/bar.js +1 -0
  203. package/esm/models/seriesType/common.js +1 -0
  204. package/esm/models/seriesType/config.js +1 -0
  205. package/esm/models/seriesType/index.js +12 -0
  206. package/esm/models/seriesType/line.js +1 -0
  207. package/esm/models/seriesType/pie.js +1 -0
  208. package/esm/models/seriesType/scatter.js +1 -0
  209. package/esm/themeAugmentation/index.js +3 -0
  210. package/hooks/useAxisEvents.d.ts +1 -0
  211. package/hooks/useAxisEvents.js +154 -0
  212. package/hooks/useChartDimensions.d.ts +8 -0
  213. package/hooks/useChartDimensions.js +24 -0
  214. package/hooks/useInteractionItemProps.d.ts +8 -0
  215. package/hooks/useInteractionItemProps.js +79 -0
  216. package/hooks/useScale.d.ts +13 -0
  217. package/hooks/useScale.js +41 -0
  218. package/hooks/useTicks.d.ts +23 -0
  219. package/hooks/useTicks.js +50 -0
  220. package/index.d.ts +15 -0
  221. package/index.js +177 -0
  222. package/internals/components/AxisSharedComponents.d.ts +6 -0
  223. package/internals/components/AxisSharedComponents.js +93 -0
  224. package/internals/defaultizeColor.d.ts +41 -0
  225. package/internals/defaultizeColor.js +14 -0
  226. package/internals/defaultizeValueFormatter.d.ts +8 -0
  227. package/internals/defaultizeValueFormatter.js +19 -0
  228. package/internals/getCurve.d.ts +2 -0
  229. package/internals/getCurve.js +45 -0
  230. package/internals/stackSeries.d.ts +29 -0
  231. package/internals/stackSeries.js +102 -0
  232. package/internals/utils.d.ts +2 -0
  233. package/internals/utils.js +11 -0
  234. package/legacy/BarChart/BarChart.js +260 -0
  235. package/legacy/BarChart/BarElement.js +78 -0
  236. package/legacy/BarChart/BarPlot.js +65 -0
  237. package/legacy/BarChart/extremums.js +25 -0
  238. package/legacy/BarChart/formatter.js +49 -0
  239. package/legacy/BarChart/index.js +2 -0
  240. package/legacy/ChartContainer/index.js +51 -0
  241. package/legacy/ChartsAxis/ChartsAxis.js +143 -0
  242. package/legacy/ChartsAxis/axisClasses.js +5 -0
  243. package/legacy/ChartsAxis/index.js +2 -0
  244. package/legacy/ChartsAxisHighlight/ChartsAxisHighlight.js +56 -0
  245. package/legacy/ChartsAxisHighlight/index.js +1 -0
  246. package/legacy/ChartsClipPath/ChartsClipPath.js +43 -0
  247. package/legacy/ChartsClipPath/index.js +1 -0
  248. package/legacy/ChartsLegend/ChartsLegend.js +186 -0
  249. package/legacy/ChartsLegend/chartsLegendClasses.js +5 -0
  250. package/legacy/ChartsLegend/index.js +2 -0
  251. package/legacy/ChartsLegend/utils.js +9 -0
  252. package/legacy/ChartsSurface.js +52 -0
  253. package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +106 -0
  254. package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +59 -0
  255. package/legacy/ChartsTooltip/ChartsTooltip.js +92 -0
  256. package/legacy/ChartsTooltip/ChartsTooltipTable.js +73 -0
  257. package/legacy/ChartsTooltip/index.js +1 -0
  258. package/legacy/ChartsTooltip/tooltipClasses.js +5 -0
  259. package/legacy/ChartsTooltip/utils.js +91 -0
  260. package/legacy/ChartsXAxis/ChartsXAxis.js +172 -0
  261. package/legacy/ChartsXAxis/index.js +1 -0
  262. package/legacy/ChartsYAxis/ChartsYAxis.js +173 -0
  263. package/legacy/ChartsYAxis/index.js +1 -0
  264. package/legacy/LineChart/AreaElement.js +102 -0
  265. package/legacy/LineChart/AreaPlot.js +62 -0
  266. package/legacy/LineChart/LineChart.js +265 -0
  267. package/legacy/LineChart/LineElement.js +104 -0
  268. package/legacy/LineChart/LinePlot.js +60 -0
  269. package/legacy/LineChart/MarkElement.js +128 -0
  270. package/legacy/LineChart/MarkPlot.js +75 -0
  271. package/legacy/LineChart/extremums.js +39 -0
  272. package/legacy/LineChart/formatter.js +51 -0
  273. package/legacy/LineChart/index.js +7 -0
  274. package/legacy/ResponsiveChartContainer/index.js +59 -0
  275. package/legacy/ScatterChart/Scatter.js +103 -0
  276. package/legacy/ScatterChart/ScatterChart.js +245 -0
  277. package/legacy/ScatterChart/ScatterPlot.js +39 -0
  278. package/legacy/ScatterChart/extremums.js +39 -0
  279. package/legacy/ScatterChart/formatter.js +12 -0
  280. package/legacy/ScatterChart/index.js +3 -0
  281. package/legacy/colorPalettes/colorPalettes.js +15 -0
  282. package/legacy/colorPalettes/index.js +1 -0
  283. package/legacy/constants.js +8 -0
  284. package/legacy/context/CartesianContextProvider.js +241 -0
  285. package/legacy/context/DrawingProvider.js +51 -0
  286. package/legacy/context/HighlightProvider.js +55 -0
  287. package/legacy/context/InteractionProvider.js +60 -0
  288. package/legacy/context/SeriesContextProvider.js +61 -0
  289. package/legacy/context/index.js +2 -0
  290. package/legacy/hooks/useAxisEvents.js +140 -0
  291. package/legacy/hooks/useChartDimensions.js +16 -0
  292. package/legacy/hooks/useInteractionItemProps.js +66 -0
  293. package/legacy/hooks/useScale.js +37 -0
  294. package/legacy/hooks/useTicks.js +46 -0
  295. package/legacy/index.js +22 -0
  296. package/legacy/internals/components/AxisSharedComponents.js +80 -0
  297. package/legacy/internals/defaultizeColor.js +8 -0
  298. package/legacy/internals/defaultizeValueFormatter.js +11 -0
  299. package/legacy/internals/getCurve.js +39 -0
  300. package/legacy/internals/stackSeries.js +90 -0
  301. package/legacy/internals/utils.js +5 -0
  302. package/legacy/models/axis.js +1 -0
  303. package/legacy/models/helpers.js +1 -0
  304. package/legacy/models/index.js +1 -0
  305. package/legacy/models/layout.js +1 -0
  306. package/legacy/models/seriesType/bar.js +1 -0
  307. package/legacy/models/seriesType/common.js +1 -0
  308. package/legacy/models/seriesType/config.js +1 -0
  309. package/legacy/models/seriesType/index.js +12 -0
  310. package/legacy/models/seriesType/line.js +1 -0
  311. package/legacy/models/seriesType/pie.js +1 -0
  312. package/legacy/models/seriesType/scatter.js +1 -0
  313. package/legacy/themeAugmentation/index.js +3 -0
  314. package/models/axis.d.ts +118 -0
  315. package/models/axis.js +5 -0
  316. package/models/helpers.d.ts +2 -0
  317. package/models/helpers.js +5 -0
  318. package/models/index.d.ts +1 -0
  319. package/models/index.js +16 -0
  320. package/models/layout.d.ts +10 -0
  321. package/models/layout.js +5 -0
  322. package/models/package.json +6 -0
  323. package/models/seriesType/bar.d.ts +18 -0
  324. package/models/seriesType/bar.js +5 -0
  325. package/models/seriesType/common.d.ts +26 -0
  326. package/models/seriesType/common.js +5 -0
  327. package/models/seriesType/config.d.ts +66 -0
  328. package/models/seriesType/config.js +5 -0
  329. package/models/seriesType/index.d.ts +13 -0
  330. package/models/seriesType/index.js +38 -0
  331. package/models/seriesType/line.d.ts +25 -0
  332. package/models/seriesType/line.js +5 -0
  333. package/models/seriesType/pie.d.ts +5 -0
  334. package/models/seriesType/pie.js +5 -0
  335. package/models/seriesType/scatter.d.ts +24 -0
  336. package/models/seriesType/scatter.js +5 -0
  337. package/modern/BarChart/BarChart.js +255 -0
  338. package/modern/BarChart/BarElement.js +80 -0
  339. package/modern/BarChart/BarPlot.js +68 -0
  340. package/modern/BarChart/extremums.js +19 -0
  341. package/modern/BarChart/formatter.js +46 -0
  342. package/modern/BarChart/index.js +2 -0
  343. package/modern/ChartContainer/index.js +53 -0
  344. package/modern/ChartsAxis/ChartsAxis.js +145 -0
  345. package/modern/ChartsAxis/axisClasses.js +5 -0
  346. package/modern/ChartsAxis/index.js +2 -0
  347. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +60 -0
  348. package/modern/ChartsAxisHighlight/index.js +1 -0
  349. package/modern/ChartsClipPath/ChartsClipPath.js +46 -0
  350. package/modern/ChartsClipPath/index.js +1 -0
  351. package/modern/ChartsLegend/ChartsLegend.js +189 -0
  352. package/modern/ChartsLegend/chartsLegendClasses.js +5 -0
  353. package/modern/ChartsLegend/index.js +2 -0
  354. package/modern/ChartsLegend/utils.js +3 -0
  355. package/modern/ChartsSurface.js +49 -0
  356. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +107 -0
  357. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +62 -0
  358. package/modern/ChartsTooltip/ChartsTooltip.js +96 -0
  359. package/modern/ChartsTooltip/ChartsTooltipTable.js +69 -0
  360. package/modern/ChartsTooltip/index.js +1 -0
  361. package/modern/ChartsTooltip/tooltipClasses.js +5 -0
  362. package/modern/ChartsTooltip/utils.js +81 -0
  363. package/modern/ChartsXAxis/ChartsXAxis.js +184 -0
  364. package/modern/ChartsXAxis/index.js +1 -0
  365. package/modern/ChartsYAxis/ChartsYAxis.js +185 -0
  366. package/modern/ChartsYAxis/index.js +1 -0
  367. package/modern/LineChart/AreaElement.js +104 -0
  368. package/modern/LineChart/AreaPlot.js +58 -0
  369. package/modern/LineChart/LineChart.js +259 -0
  370. package/modern/LineChart/LineElement.js +106 -0
  371. package/modern/LineChart/LinePlot.js +58 -0
  372. package/modern/LineChart/MarkElement.js +129 -0
  373. package/modern/LineChart/MarkPlot.js +78 -0
  374. package/modern/LineChart/extremums.js +28 -0
  375. package/modern/LineChart/formatter.js +48 -0
  376. package/modern/LineChart/index.js +7 -0
  377. package/modern/ResponsiveChartContainer/index.js +45 -0
  378. package/modern/ScatterChart/Scatter.js +106 -0
  379. package/modern/ScatterChart/ScatterChart.js +245 -0
  380. package/modern/ScatterChart/ScatterPlot.js +44 -0
  381. package/modern/ScatterChart/extremums.js +41 -0
  382. package/modern/ScatterChart/formatter.js +11 -0
  383. package/modern/ScatterChart/index.js +3 -0
  384. package/modern/colorPalettes/colorPalettes.js +9 -0
  385. package/modern/colorPalettes/index.js +1 -0
  386. package/modern/constants.js +8 -0
  387. package/modern/context/CartesianContextProvider.js +217 -0
  388. package/modern/context/DrawingProvider.js +52 -0
  389. package/modern/context/HighlightProvider.js +46 -0
  390. package/modern/context/InteractionProvider.js +51 -0
  391. package/modern/context/SeriesContextProvider.js +58 -0
  392. package/modern/context/index.js +2 -0
  393. package/modern/hooks/useAxisEvents.js +145 -0
  394. package/modern/hooks/useChartDimensions.js +14 -0
  395. package/modern/hooks/useInteractionItemProps.js +68 -0
  396. package/modern/hooks/useScale.js +33 -0
  397. package/modern/hooks/useTicks.js +40 -0
  398. package/modern/index.js +22 -0
  399. package/modern/internals/components/AxisSharedComponents.js +81 -0
  400. package/modern/internals/defaultizeColor.js +7 -0
  401. package/modern/internals/defaultizeValueFormatter.js +11 -0
  402. package/modern/internals/getCurve.js +39 -0
  403. package/modern/internals/stackSeries.js +93 -0
  404. package/modern/internals/utils.js +5 -0
  405. package/modern/models/axis.js +1 -0
  406. package/modern/models/helpers.js +1 -0
  407. package/modern/models/index.js +1 -0
  408. package/modern/models/layout.js +1 -0
  409. package/modern/models/seriesType/bar.js +1 -0
  410. package/modern/models/seriesType/common.js +1 -0
  411. package/modern/models/seriesType/config.js +1 -0
  412. package/modern/models/seriesType/index.js +12 -0
  413. package/modern/models/seriesType/line.js +1 -0
  414. package/modern/models/seriesType/pie.js +1 -0
  415. package/modern/models/seriesType/scatter.js +1 -0
  416. package/modern/themeAugmentation/index.js +3 -0
  417. package/package.json +57 -0
  418. package/themeAugmentation/components.d.ts +72 -0
  419. package/themeAugmentation/index.d.ts +3 -0
  420. package/themeAugmentation/index.js +38 -0
  421. package/themeAugmentation/overrides.d.ts +29 -0
  422. package/themeAugmentation/package.json +6 -0
  423. package/themeAugmentation/props.d.ts +43 -0
@@ -0,0 +1,245 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import { ScatterPlot } from './ScatterPlot';
5
+ import { ResponsiveChartContainer } from '../ResponsiveChartContainer';
6
+ import { ChartsAxis } from '../ChartsAxis';
7
+ import { ChartsTooltip } from '../ChartsTooltip';
8
+ import { ChartsLegend } from '../ChartsLegend';
9
+ import { ChartsAxisHighlight } from '../ChartsAxisHighlight';
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ import { jsxs as _jsxs } from "react/jsx-runtime";
12
+ function ScatterChart(props) {
13
+ var xAxis = props.xAxis,
14
+ yAxis = props.yAxis,
15
+ series = props.series,
16
+ tooltip = props.tooltip,
17
+ axisHighlight = props.axisHighlight,
18
+ legend = props.legend,
19
+ width = props.width,
20
+ height = props.height,
21
+ margin = props.margin,
22
+ colors = props.colors,
23
+ sx = props.sx,
24
+ topAxis = props.topAxis,
25
+ leftAxis = props.leftAxis,
26
+ rightAxis = props.rightAxis,
27
+ bottomAxis = props.bottomAxis,
28
+ children = props.children;
29
+ return /*#__PURE__*/_jsxs(ResponsiveChartContainer, {
30
+ series: series.map(function (s) {
31
+ return _extends({
32
+ type: 'scatter'
33
+ }, s);
34
+ }),
35
+ width: width,
36
+ height: height,
37
+ margin: margin,
38
+ colors: colors,
39
+ xAxis: xAxis,
40
+ yAxis: yAxis,
41
+ sx: sx,
42
+ children: [/*#__PURE__*/_jsx(ChartsAxis, {
43
+ topAxis: topAxis,
44
+ leftAxis: leftAxis,
45
+ rightAxis: rightAxis,
46
+ bottomAxis: bottomAxis
47
+ }), /*#__PURE__*/_jsx(ScatterPlot, {}), /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legend)), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({
48
+ x: "none",
49
+ y: "none"
50
+ }, axisHighlight)), /*#__PURE__*/_jsx(ChartsTooltip, _extends({
51
+ trigger: "item"
52
+ }, tooltip)), children]
53
+ });
54
+ }
55
+ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
56
+ // ----------------------------- Warning --------------------------------
57
+ // | These PropTypes are generated from the TypeScript type definitions |
58
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
59
+ // ----------------------------------------------------------------------
60
+ axisHighlight: PropTypes.shape({
61
+ x: PropTypes.oneOf(['band', 'line', 'none']),
62
+ y: PropTypes.oneOf(['line', 'none'])
63
+ }),
64
+ /**
65
+ * Indicate which axis to display the the bottom of the charts.
66
+ * Can be a string (the id of the axis) or an object `ChartsXAxisProps`
67
+ * @default xAxisIds[0] The id of the first provided axis
68
+ */
69
+ bottomAxis: PropTypes.oneOfType([PropTypes.shape({
70
+ axisId: PropTypes.string.isRequired,
71
+ classes: PropTypes.object,
72
+ disableLine: PropTypes.bool,
73
+ disableTicks: PropTypes.bool,
74
+ fill: PropTypes.string,
75
+ label: PropTypes.string,
76
+ labelFontSize: PropTypes.number,
77
+ position: PropTypes.oneOf(['bottom', 'top']),
78
+ stroke: PropTypes.string,
79
+ tickFontSize: PropTypes.number,
80
+ tickSize: PropTypes.number
81
+ }), PropTypes.string]),
82
+ children: PropTypes.node,
83
+ className: PropTypes.string,
84
+ /**
85
+ * Color palette used to colorize multiple series.
86
+ */
87
+ colors: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.func]),
88
+ desc: PropTypes.string,
89
+ disableAxisListener: PropTypes.bool,
90
+ height: PropTypes.number,
91
+ /**
92
+ * Indicate which axis to display the the left of the charts.
93
+ * Can be a string (the id of the axis) or an object `ChartsYAxisProps`
94
+ * @default yAxisIds[0] The id of the first provided axis
95
+ */
96
+ leftAxis: PropTypes.oneOfType([PropTypes.shape({
97
+ axisId: PropTypes.string.isRequired,
98
+ classes: PropTypes.object,
99
+ disableLine: PropTypes.bool,
100
+ disableTicks: PropTypes.bool,
101
+ fill: PropTypes.string,
102
+ label: PropTypes.string,
103
+ labelFontSize: PropTypes.number,
104
+ position: PropTypes.oneOf(['left', 'right']),
105
+ stroke: PropTypes.string,
106
+ tickFontSize: PropTypes.number,
107
+ tickSize: PropTypes.number
108
+ }), PropTypes.string]),
109
+ legend: PropTypes.shape({
110
+ classes: PropTypes.object,
111
+ direction: PropTypes.oneOf(['column', 'row']),
112
+ itemWidth: PropTypes.number,
113
+ markSize: PropTypes.number,
114
+ offset: PropTypes.shape({
115
+ x: PropTypes.number,
116
+ y: PropTypes.number
117
+ }),
118
+ position: PropTypes.shape({
119
+ horizontal: PropTypes.oneOf(['left', 'middle', 'right']).isRequired,
120
+ vertical: PropTypes.oneOf(['bottom', 'middle', 'top']).isRequired
121
+ }),
122
+ spacing: PropTypes.number
123
+ }),
124
+ margin: PropTypes.shape({
125
+ bottom: PropTypes.number,
126
+ left: PropTypes.number,
127
+ right: PropTypes.number,
128
+ top: PropTypes.number
129
+ }),
130
+ /**
131
+ * Indicate which axis to display the the right of the charts.
132
+ * Can be a string (the id of the axis) or an object `ChartsYAxisProps`
133
+ * @default null
134
+ */
135
+ rightAxis: PropTypes.oneOfType([PropTypes.shape({
136
+ axisId: PropTypes.string.isRequired,
137
+ classes: PropTypes.object,
138
+ disableLine: PropTypes.bool,
139
+ disableTicks: PropTypes.bool,
140
+ fill: PropTypes.string,
141
+ label: PropTypes.string,
142
+ labelFontSize: PropTypes.number,
143
+ position: PropTypes.oneOf(['left', 'right']),
144
+ stroke: PropTypes.string,
145
+ tickFontSize: PropTypes.number,
146
+ tickSize: PropTypes.number
147
+ }), PropTypes.string]),
148
+ series: PropTypes.arrayOf(PropTypes.shape({
149
+ color: PropTypes.string,
150
+ data: PropTypes.arrayOf(PropTypes.shape({
151
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
152
+ x: PropTypes.number.isRequired,
153
+ y: PropTypes.number.isRequired
154
+ })).isRequired,
155
+ highlightScope: PropTypes.shape({
156
+ faded: PropTypes.oneOf(['global', 'none', 'series']),
157
+ highlighted: PropTypes.oneOf(['item', 'none', 'series'])
158
+ }),
159
+ id: PropTypes.string,
160
+ label: PropTypes.string,
161
+ markerSize: PropTypes.number,
162
+ type: PropTypes.oneOf(['scatter']),
163
+ valueFormatter: PropTypes.func,
164
+ xAxisKey: PropTypes.string,
165
+ yAxisKey: PropTypes.string
166
+ })).isRequired,
167
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
168
+ title: PropTypes.string,
169
+ tooltip: PropTypes.shape({
170
+ axisContent: PropTypes.elementType,
171
+ classes: PropTypes.object,
172
+ itemContent: PropTypes.elementType,
173
+ trigger: PropTypes.oneOf(['axis', 'item', 'none'])
174
+ }),
175
+ /**
176
+ * Indicate which axis to display the the top of the charts.
177
+ * Can be a string (the id of the axis) or an object `ChartsXAxisProps`
178
+ * @default null
179
+ */
180
+ topAxis: PropTypes.oneOfType([PropTypes.shape({
181
+ axisId: PropTypes.string.isRequired,
182
+ classes: PropTypes.object,
183
+ disableLine: PropTypes.bool,
184
+ disableTicks: PropTypes.bool,
185
+ fill: PropTypes.string,
186
+ label: PropTypes.string,
187
+ labelFontSize: PropTypes.number,
188
+ position: PropTypes.oneOf(['bottom', 'top']),
189
+ stroke: PropTypes.string,
190
+ tickFontSize: PropTypes.number,
191
+ tickSize: PropTypes.number
192
+ }), PropTypes.string]),
193
+ viewBox: PropTypes.shape({
194
+ height: PropTypes.number,
195
+ width: PropTypes.number,
196
+ x: PropTypes.number,
197
+ y: PropTypes.number
198
+ }),
199
+ width: PropTypes.number,
200
+ xAxis: PropTypes.arrayOf(PropTypes.shape({
201
+ axisId: PropTypes.string,
202
+ classes: PropTypes.object,
203
+ data: PropTypes.array,
204
+ disableLine: PropTypes.bool,
205
+ disableTicks: PropTypes.bool,
206
+ fill: PropTypes.string,
207
+ id: PropTypes.string,
208
+ label: PropTypes.string,
209
+ labelFontSize: PropTypes.number,
210
+ max: PropTypes.number,
211
+ maxTicks: PropTypes.number,
212
+ min: PropTypes.number,
213
+ minTicks: PropTypes.number,
214
+ position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
215
+ scaleType: PropTypes.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
216
+ stroke: PropTypes.string,
217
+ tickFontSize: PropTypes.number,
218
+ tickSize: PropTypes.number,
219
+ tickSpacing: PropTypes.number,
220
+ valueFormatter: PropTypes.func
221
+ })),
222
+ yAxis: PropTypes.arrayOf(PropTypes.shape({
223
+ axisId: PropTypes.string,
224
+ classes: PropTypes.object,
225
+ data: PropTypes.array,
226
+ disableLine: PropTypes.bool,
227
+ disableTicks: PropTypes.bool,
228
+ fill: PropTypes.string,
229
+ id: PropTypes.string,
230
+ label: PropTypes.string,
231
+ labelFontSize: PropTypes.number,
232
+ max: PropTypes.number,
233
+ maxTicks: PropTypes.number,
234
+ min: PropTypes.number,
235
+ minTicks: PropTypes.number,
236
+ position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
237
+ scaleType: PropTypes.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
238
+ stroke: PropTypes.string,
239
+ tickFontSize: PropTypes.number,
240
+ tickSize: PropTypes.number,
241
+ tickSpacing: PropTypes.number,
242
+ valueFormatter: PropTypes.func
243
+ }))
244
+ } : void 0;
245
+ export { ScatterChart };
@@ -0,0 +1,39 @@
1
+ import * as React from 'react';
2
+ import { Scatter } from './Scatter';
3
+ import { SeriesContext } from '../context/SeriesContextProvider';
4
+ import { CartesianContext } from '../context/CartesianContextProvider';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ export function ScatterPlot() {
7
+ var seriesData = React.useContext(SeriesContext).scatter;
8
+ var axisData = React.useContext(CartesianContext);
9
+ if (seriesData === undefined) {
10
+ return null;
11
+ }
12
+ var series = seriesData.series,
13
+ seriesOrder = seriesData.seriesOrder;
14
+ var xAxis = axisData.xAxis,
15
+ yAxis = axisData.yAxis,
16
+ xAxisIds = axisData.xAxisIds,
17
+ yAxisIds = axisData.yAxisIds;
18
+ var defaultXAxisId = xAxisIds[0];
19
+ var defaultYAxisId = yAxisIds[0];
20
+ return /*#__PURE__*/_jsx(React.Fragment, {
21
+ children: seriesOrder.map(function (seriesId) {
22
+ var _series$seriesId = series[seriesId],
23
+ id = _series$seriesId.id,
24
+ xAxisKey = _series$seriesId.xAxisKey,
25
+ yAxisKey = _series$seriesId.yAxisKey,
26
+ markerSize = _series$seriesId.markerSize,
27
+ color = _series$seriesId.color;
28
+ var xScale = xAxis[xAxisKey != null ? xAxisKey : defaultXAxisId].scale;
29
+ var yScale = yAxis[yAxisKey != null ? yAxisKey : defaultYAxisId].scale;
30
+ return /*#__PURE__*/_jsx(Scatter, {
31
+ xScale: xScale,
32
+ yScale: yScale,
33
+ color: color,
34
+ markerSize: markerSize != null ? markerSize : 4,
35
+ series: series[seriesId]
36
+ }, id);
37
+ })
38
+ });
39
+ }
@@ -0,0 +1,39 @@
1
+ var mergeMinMax = function mergeMinMax(acc, val) {
2
+ if (acc[0] === null || acc[1] === null) {
3
+ return val;
4
+ }
5
+ if (val[0] === null || val[1] === null) {
6
+ return acc;
7
+ }
8
+ return [Math.min(acc[0], val[0]), Math.max(acc[1], val[1])];
9
+ };
10
+ export var getExtremumX = function getExtremumX(params) {
11
+ var series = params.series,
12
+ axis = params.axis,
13
+ isDefaultAxis = params.isDefaultAxis;
14
+ return Object.keys(series).filter(function (seriesId) {
15
+ return series[seriesId].xAxisKey === axis.id || series[seriesId].xAxisKey === undefined && isDefaultAxis;
16
+ }).reduce(function (acc, seriesId) {
17
+ var seriesMinMax = series[seriesId].data.reduce(function (accSeries, _ref) {
18
+ var x = _ref.x;
19
+ var val = [x, x];
20
+ return mergeMinMax(accSeries, val);
21
+ }, [null, null]);
22
+ return mergeMinMax(acc, seriesMinMax);
23
+ }, [null, null]);
24
+ };
25
+ export var getExtremumY = function getExtremumY(params) {
26
+ var series = params.series,
27
+ axis = params.axis,
28
+ isDefaultAxis = params.isDefaultAxis;
29
+ return Object.keys(series).filter(function (seriesId) {
30
+ return series[seriesId].yAxisKey === axis.id || series[seriesId].yAxisKey === undefined && isDefaultAxis;
31
+ }).reduce(function (acc, seriesId) {
32
+ var seriesMinMax = series[seriesId].data.reduce(function (accSeries, _ref2) {
33
+ var y = _ref2.y;
34
+ var val = [y, y];
35
+ return mergeMinMax(accSeries, val);
36
+ }, [null, null]);
37
+ return mergeMinMax(acc, seriesMinMax);
38
+ }, [null, null]);
39
+ };
@@ -0,0 +1,12 @@
1
+ import defaultizeValueFormatter from '../internals/defaultizeValueFormatter';
2
+ var formatter = function formatter(_ref) {
3
+ var series = _ref.series,
4
+ seriesOrder = _ref.seriesOrder;
5
+ return {
6
+ series: defaultizeValueFormatter(series, function (v) {
7
+ return "(".concat(v.x, ", ").concat(v.y, ")");
8
+ }),
9
+ seriesOrder: seriesOrder
10
+ };
11
+ };
12
+ export default formatter;
@@ -0,0 +1,3 @@
1
+ export { ScatterPlot } from './ScatterPlot';
2
+ export { ScatterChart } from './ScatterChart';
3
+ export { Scatter } from './Scatter';
@@ -0,0 +1,15 @@
1
+ export var blueberryTwilightPaletteLight = ['#02B2AF', '#2E96FF', '#B800D8', '#60009B', '#2731C8', '#03008D'];
2
+ export var blueberryTwilightPaletteDark = ['#02B2AF', '#72CCFF', '#DA00FF', '#9001CB', '#2E96FF', '#3B48E0'];
3
+ export var blueberryTwilightPalette = function blueberryTwilightPalette(mode) {
4
+ return mode === 'dark' ? blueberryTwilightPaletteDark : blueberryTwilightPaletteLight;
5
+ };
6
+ export var mangoFusionPaletteLight = ['#173A5E', '#00A3A0', '#C91B63', '#EF5350', '#FFA726', '#B800D8', '#60009B', '#2E96FF', '#2731C8', '#03008D'];
7
+ export var mangoFusionPaletteDark = ['#41698F', '#19D0CD', '#DE196B', '#FC5F5C', '#FFD771', '#DA00FF', '#9001CB', '#72CCFF', '#2E96FF', '#3B48E0'];
8
+ export var mangoFusionPalette = function mangoFusionPalette(mode) {
9
+ return mode === 'dark' ? mangoFusionPaletteDark : mangoFusionPaletteLight;
10
+ };
11
+ export var cheerfulFiestaPaletteDark = ['#0072E6', '#66B2FF', '#FFB017', '#1F94AD', '#FF3143', '#FF6C63'];
12
+ export var cheerfulFiestaPaletteLight = ['#0059B2', '#2E96FF', '#EA8C00', '#1F94AD', '#C82634', '#FF3143'];
13
+ export var cheerfulFiestaPalette = function cheerfulFiestaPalette(mode) {
14
+ return mode === 'dark' ? cheerfulFiestaPaletteDark : cheerfulFiestaPaletteLight;
15
+ };
@@ -0,0 +1 @@
1
+ export * from './colorPalettes';
@@ -0,0 +1,8 @@
1
+ export var DEFAULT_X_AXIS_KEY = 'DEFAULT_X_AXIS_KEY';
2
+ export var DEFAULT_Y_AXIS_KEY = 'DEFAULT_Y_AXIS_KEY';
3
+ export var DEFAULT_MARGINS = {
4
+ top: 100,
5
+ bottom: 50,
6
+ left: 50,
7
+ right: 50
8
+ };
@@ -0,0 +1,241 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
+ import * as React from 'react';
5
+ import { scaleBand, scalePoint } from 'd3-scale';
6
+ import PropTypes from 'prop-types';
7
+ import { getExtremumX as getBarExtremumX, getExtremumY as getBarExtremumY } from '../BarChart/extremums';
8
+ import { getExtremumX as getScatterExtremumX, getExtremumY as getScatterExtremumY } from '../ScatterChart/extremums';
9
+ import { getExtremumX as getLineExtremumX, getExtremumY as getLineExtremumY } from '../LineChart/extremums';
10
+ import { getScale } from '../hooks/useScale';
11
+ import { DrawingContext } from './DrawingProvider';
12
+ import { SeriesContext } from './SeriesContextProvider';
13
+ import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from '../constants';
14
+ import { getTicksNumber } from '../hooks/useTicks';
15
+ import { jsx as _jsx } from "react/jsx-runtime";
16
+ // TODO: those might be better placed in a distinct file
17
+ var xExtremumGetters = {
18
+ bar: getBarExtremumX,
19
+ scatter: getScatterExtremumX,
20
+ line: getLineExtremumX
21
+ };
22
+ var yExtremumGetters = {
23
+ bar: getBarExtremumY,
24
+ scatter: getScatterExtremumY,
25
+ line: getLineExtremumY
26
+ };
27
+ export var CartesianContext = /*#__PURE__*/React.createContext({
28
+ xAxis: {},
29
+ yAxis: {},
30
+ xAxisIds: [],
31
+ yAxisIds: []
32
+ });
33
+ function CartesianContextProvider(_ref) {
34
+ var xAxis = _ref.xAxis,
35
+ yAxis = _ref.yAxis,
36
+ children = _ref.children;
37
+ var formattedSeries = React.useContext(SeriesContext);
38
+ var drawingArea = React.useContext(DrawingContext);
39
+ var value = React.useMemo(function () {
40
+ var _xAxis$map, _yAxis$map;
41
+ var axisExtremumCallback = function axisExtremumCallback(acc, chartType, axis, getters, isDefaultAxis) {
42
+ var _ref2, _formattedSeries$char;
43
+ var getter = getters[chartType];
44
+ var series = (_ref2 = (_formattedSeries$char = formattedSeries[chartType]) == null ? void 0 : _formattedSeries$char.series) != null ? _ref2 : {};
45
+ var _getter = getter({
46
+ series: series,
47
+ axis: axis,
48
+ isDefaultAxis: isDefaultAxis
49
+ }),
50
+ _getter2 = _slicedToArray(_getter, 2),
51
+ minChartTypeData = _getter2[0],
52
+ maxChartTypeData = _getter2[1];
53
+ var _acc = _slicedToArray(acc, 2),
54
+ minData = _acc[0],
55
+ maxData = _acc[1];
56
+ if (minData === null || maxData === null) {
57
+ return [minChartTypeData, maxChartTypeData];
58
+ }
59
+ if (minChartTypeData === null || maxChartTypeData === null) {
60
+ return [minData, maxData];
61
+ }
62
+ return [Math.min(minChartTypeData, minData), Math.max(maxChartTypeData, maxData)];
63
+ };
64
+ var getAxisExtremum = function getAxisExtremum(axis, getters, isDefaultAxis) {
65
+ var charTypes = Object.keys(getters);
66
+ return charTypes.reduce(function (acc, charType) {
67
+ return axisExtremumCallback(acc, charType, axis, getters, isDefaultAxis);
68
+ }, [null, null]);
69
+ };
70
+ var allXAxis = [].concat(_toConsumableArray((_xAxis$map = xAxis == null ? void 0 : xAxis.map(function (axis, index) {
71
+ return _extends({
72
+ id: "deaultized-x-axis-".concat(index)
73
+ }, axis);
74
+ })) != null ? _xAxis$map : []), _toConsumableArray(xAxis === undefined || xAxis.findIndex(function (_ref3) {
75
+ var id = _ref3.id;
76
+ return id === DEFAULT_X_AXIS_KEY;
77
+ }) === -1 ? [{
78
+ id: DEFAULT_X_AXIS_KEY,
79
+ scaleType: 'linear'
80
+ }] : []));
81
+ var completedXAxis = {};
82
+ allXAxis.forEach(function (axis, axisIndex) {
83
+ var _axis$scaleType, _axis$min, _axis$max, _axis$min2, _axis$max2;
84
+ var isDefaultAxis = axisIndex === 0;
85
+ var _getAxisExtremum = getAxisExtremum(axis, xExtremumGetters, isDefaultAxis),
86
+ _getAxisExtremum2 = _slicedToArray(_getAxisExtremum, 2),
87
+ minData = _getAxisExtremum2[0],
88
+ maxData = _getAxisExtremum2[1];
89
+ var scaleType = (_axis$scaleType = axis.scaleType) != null ? _axis$scaleType : 'linear';
90
+ var range = [drawingArea.left, drawingArea.left + drawingArea.width];
91
+ if (scaleType === 'band') {
92
+ completedXAxis[axis.id] = _extends({}, axis, {
93
+ scaleType: scaleType,
94
+ scale: scaleBand(axis.data, range),
95
+ ticksNumber: axis.data.length
96
+ });
97
+ return;
98
+ }
99
+ if (scaleType === 'point') {
100
+ completedXAxis[axis.id] = _extends({}, axis, {
101
+ scaleType: scaleType,
102
+ scale: scalePoint(axis.data, range),
103
+ ticksNumber: axis.data.length
104
+ });
105
+ return;
106
+ }
107
+ var extremums = [(_axis$min = axis.min) != null ? _axis$min : minData, (_axis$max = axis.max) != null ? _axis$max : maxData];
108
+ var ticksNumber = getTicksNumber(_extends({}, axis, {
109
+ range: range
110
+ }));
111
+ var niceScale = getScale(scaleType, extremums, range).nice(ticksNumber);
112
+ var niceDomain = niceScale.domain();
113
+ var domain = [(_axis$min2 = axis.min) != null ? _axis$min2 : niceDomain[0], (_axis$max2 = axis.max) != null ? _axis$max2 : niceDomain[1]];
114
+ completedXAxis[axis.id] = _extends({}, axis, {
115
+ scaleType: scaleType,
116
+ scale: niceScale.domain(domain),
117
+ ticksNumber: ticksNumber
118
+ });
119
+ });
120
+ var allYAxis = [].concat(_toConsumableArray((_yAxis$map = yAxis == null ? void 0 : yAxis.map(function (axis, index) {
121
+ return _extends({
122
+ id: "deaultized-y-axis-".concat(index)
123
+ }, axis);
124
+ })) != null ? _yAxis$map : []), _toConsumableArray(yAxis === undefined || yAxis.findIndex(function (_ref4) {
125
+ var id = _ref4.id;
126
+ return id === DEFAULT_Y_AXIS_KEY;
127
+ }) === -1 ? [{
128
+ id: DEFAULT_Y_AXIS_KEY,
129
+ scaleType: 'linear'
130
+ }] : []));
131
+ var completedYAxis = {};
132
+ allYAxis.forEach(function (axis, axisIndex) {
133
+ var _axis$scaleType2, _axis$min3, _axis$max3, _axis$min4, _axis$max4;
134
+ var isDefaultAxis = axisIndex === 0;
135
+ var _getAxisExtremum3 = getAxisExtremum(axis, yExtremumGetters, isDefaultAxis),
136
+ _getAxisExtremum4 = _slicedToArray(_getAxisExtremum3, 2),
137
+ minData = _getAxisExtremum4[0],
138
+ maxData = _getAxisExtremum4[1];
139
+ var range = [drawingArea.top + drawingArea.height, drawingArea.top];
140
+ var scaleType = (_axis$scaleType2 = axis.scaleType) != null ? _axis$scaleType2 : 'linear';
141
+ if (scaleType === 'band') {
142
+ completedYAxis[axis.id] = _extends({}, axis, {
143
+ scaleType: scaleType,
144
+ scale: scaleBand(axis.data, range),
145
+ ticksNumber: axis.data.length
146
+ });
147
+ return;
148
+ }
149
+ if (scaleType === 'point') {
150
+ completedYAxis[axis.id] = _extends({}, axis, {
151
+ scaleType: scaleType,
152
+ scale: scalePoint(axis.data, range),
153
+ ticksNumber: axis.data.length
154
+ });
155
+ return;
156
+ }
157
+ var extremums = [(_axis$min3 = axis.min) != null ? _axis$min3 : minData, (_axis$max3 = axis.max) != null ? _axis$max3 : maxData];
158
+ var ticksNumber = getTicksNumber(_extends({}, axis, {
159
+ range: range
160
+ }));
161
+ var niceScale = getScale(scaleType, extremums, range).nice(ticksNumber);
162
+ var niceDomain = niceScale.domain();
163
+ var domain = [(_axis$min4 = axis.min) != null ? _axis$min4 : niceDomain[0], (_axis$max4 = axis.max) != null ? _axis$max4 : niceDomain[1]];
164
+ completedYAxis[axis.id] = _extends({}, axis, {
165
+ scaleType: scaleType,
166
+ scale: niceScale.domain(domain),
167
+ ticksNumber: ticksNumber
168
+ });
169
+ });
170
+ return {
171
+ xAxis: completedXAxis,
172
+ yAxis: completedYAxis,
173
+ xAxisIds: allXAxis.map(function (_ref5) {
174
+ var id = _ref5.id;
175
+ return id;
176
+ }),
177
+ yAxisIds: allYAxis.map(function (_ref6) {
178
+ var id = _ref6.id;
179
+ return id;
180
+ })
181
+ };
182
+ }, [drawingArea.height, drawingArea.left, drawingArea.top, drawingArea.width, formattedSeries, xAxis, yAxis]);
183
+
184
+ // @ts-ignore
185
+ return /*#__PURE__*/_jsx(CartesianContext.Provider, {
186
+ value: value,
187
+ children: children
188
+ });
189
+ }
190
+ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
191
+ // ----------------------------- Warning --------------------------------
192
+ // | These PropTypes are generated from the TypeScript type definitions |
193
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
194
+ // ----------------------------------------------------------------------
195
+ children: PropTypes.node,
196
+ xAxis: PropTypes.arrayOf(PropTypes.shape({
197
+ axisId: PropTypes.string,
198
+ classes: PropTypes.object,
199
+ data: PropTypes.array,
200
+ disableLine: PropTypes.bool,
201
+ disableTicks: PropTypes.bool,
202
+ fill: PropTypes.string,
203
+ id: PropTypes.string,
204
+ label: PropTypes.string,
205
+ labelFontSize: PropTypes.number,
206
+ max: PropTypes.number,
207
+ maxTicks: PropTypes.number,
208
+ min: PropTypes.number,
209
+ minTicks: PropTypes.number,
210
+ position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
211
+ scaleType: PropTypes.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
212
+ stroke: PropTypes.string,
213
+ tickFontSize: PropTypes.number,
214
+ tickSize: PropTypes.number,
215
+ tickSpacing: PropTypes.number,
216
+ valueFormatter: PropTypes.func
217
+ })),
218
+ yAxis: PropTypes.arrayOf(PropTypes.shape({
219
+ axisId: PropTypes.string,
220
+ classes: PropTypes.object,
221
+ data: PropTypes.array,
222
+ disableLine: PropTypes.bool,
223
+ disableTicks: PropTypes.bool,
224
+ fill: PropTypes.string,
225
+ id: PropTypes.string,
226
+ label: PropTypes.string,
227
+ labelFontSize: PropTypes.number,
228
+ max: PropTypes.number,
229
+ maxTicks: PropTypes.number,
230
+ min: PropTypes.number,
231
+ minTicks: PropTypes.number,
232
+ position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
233
+ scaleType: PropTypes.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
234
+ stroke: PropTypes.string,
235
+ tickFontSize: PropTypes.number,
236
+ tickSize: PropTypes.number,
237
+ tickSpacing: PropTypes.number,
238
+ valueFormatter: PropTypes.func
239
+ }))
240
+ } : void 0;
241
+ export { CartesianContextProvider };
@@ -0,0 +1,51 @@
1
+ import * as React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import useChartDimensions from '../hooks/useChartDimensions';
4
+
5
+ /**
6
+ * Defines the area in which it is possible to draw the charts
7
+ */
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ export var DrawingContext = /*#__PURE__*/React.createContext({
10
+ top: 0,
11
+ left: 0,
12
+ height: 300,
13
+ width: 400
14
+ });
15
+ export var SVGContext = /*#__PURE__*/React.createContext({
16
+ current: null
17
+ });
18
+ function DrawingProvider(_ref) {
19
+ var width = _ref.width,
20
+ height = _ref.height,
21
+ margin = _ref.margin,
22
+ svgRef = _ref.svgRef,
23
+ children = _ref.children;
24
+ var drawingArea = useChartDimensions(width, height, margin);
25
+ return /*#__PURE__*/_jsx(SVGContext.Provider, {
26
+ value: svgRef,
27
+ children: /*#__PURE__*/_jsx(DrawingContext.Provider, {
28
+ value: drawingArea,
29
+ children: children
30
+ })
31
+ });
32
+ }
33
+ process.env.NODE_ENV !== "production" ? DrawingProvider.propTypes = {
34
+ // ----------------------------- Warning --------------------------------
35
+ // | These PropTypes are generated from the TypeScript type definitions |
36
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
37
+ // ----------------------------------------------------------------------
38
+ children: PropTypes.node,
39
+ height: PropTypes.number.isRequired,
40
+ margin: PropTypes.shape({
41
+ bottom: PropTypes.number,
42
+ left: PropTypes.number,
43
+ right: PropTypes.number,
44
+ top: PropTypes.number
45
+ }),
46
+ svgRef: PropTypes.shape({
47
+ current: PropTypes.object
48
+ }).isRequired,
49
+ width: PropTypes.number.isRequired
50
+ } : void 0;
51
+ export { DrawingProvider };