@mui/x-charts 8.0.0-alpha.12 → 8.0.0-alpha.13

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 (314) hide show
  1. package/BarChart/BarChart.d.ts +1 -1
  2. package/BarChart/BarChart.js +14 -30
  3. package/BarChart/useBarChartProps.js +3 -18
  4. package/CHANGELOG.md +299 -0
  5. package/ChartContainer/ChartContainer.d.ts +1 -1
  6. package/ChartContainer/ChartContainer.js +15 -7
  7. package/ChartDataProvider/ChartDataProvider.d.ts +2 -2
  8. package/ChartDataProvider/ChartDataProvider.js +4 -3
  9. package/ChartsAxis/ChartsAxis.d.ts +1 -25
  10. package/ChartsAxis/ChartsAxis.js +25 -87
  11. package/ChartsAxis/axisClasses.d.ts +5 -1
  12. package/ChartsLabel/ChartsLabelMark.d.ts +6 -1
  13. package/ChartsLabel/ChartsLabelMark.js +15 -2
  14. package/ChartsLabel/index.d.ts +1 -1
  15. package/ChartsLabel/labelGradientClasses.d.ts +1 -1
  16. package/ChartsLabel/labelMarkClasses.d.ts +1 -1
  17. package/ChartsLabel/labelMarkClasses.js +1 -1
  18. package/ChartsLegend/chartsLegendClasses.d.ts +1 -1
  19. package/ChartsLegend/continuousColorLegendClasses.d.ts +1 -1
  20. package/ChartsLegend/piecewiseColorLegendClasses.d.ts +1 -1
  21. package/ChartsReferenceLine/ChartsXReferenceLine.d.ts +1 -1
  22. package/ChartsReferenceLine/ChartsYReferenceLine.d.ts +1 -1
  23. package/ChartsTooltip/ChartsTooltipTable.js +1 -1
  24. package/ChartsTooltip/chartsTooltipClasses.d.ts +1 -1
  25. package/ChartsXAxis/ChartsXAxis.js +70 -57
  26. package/ChartsYAxis/ChartsYAxis.js +11 -15
  27. package/Gauge/Gauge.js +4 -3
  28. package/Gauge/GaugeContainer.js +7 -5
  29. package/LineChart/LineChart.d.ts +1 -1
  30. package/LineChart/LineChart.js +14 -30
  31. package/LineChart/useLineChartProps.js +2 -17
  32. package/PieChart/PieArcLabelPlot.js +1 -1
  33. package/PieChart/PieArcPlot.js +1 -1
  34. package/PieChart/PieChart.d.ts +1 -1
  35. package/PieChart/PieChart.js +6 -4
  36. package/ScatterChart/ScatterChart.d.ts +1 -1
  37. package/ScatterChart/ScatterChart.js +14 -30
  38. package/ScatterChart/useScatterChartProps.js +2 -17
  39. package/SparkLineChart/SparkLineChart.d.ts +4 -8
  40. package/SparkLineChart/SparkLineChart.js +23 -21
  41. package/constants/index.d.ts +8 -1
  42. package/constants/index.js +13 -6
  43. package/context/AnimationProvider/useSkipAnimation.js +1 -1
  44. package/context/ChartProvider/ChartProvider.types.d.ts +6 -6
  45. package/context/PolarProvider/Polar.types.d.ts +3 -2
  46. package/esm/BarChart/BarChart.d.ts +1 -1
  47. package/esm/BarChart/BarChart.js +14 -30
  48. package/esm/BarChart/useBarChartProps.js +3 -18
  49. package/esm/ChartContainer/ChartContainer.d.ts +1 -1
  50. package/esm/ChartContainer/ChartContainer.js +15 -7
  51. package/esm/ChartDataProvider/ChartDataProvider.d.ts +2 -2
  52. package/esm/ChartDataProvider/ChartDataProvider.js +4 -3
  53. package/esm/ChartsAxis/ChartsAxis.d.ts +1 -25
  54. package/esm/ChartsAxis/ChartsAxis.js +24 -86
  55. package/esm/ChartsAxis/axisClasses.d.ts +5 -1
  56. package/esm/ChartsLabel/ChartsLabelMark.d.ts +6 -1
  57. package/esm/ChartsLabel/ChartsLabelMark.js +15 -2
  58. package/esm/ChartsLabel/index.d.ts +1 -1
  59. package/esm/ChartsLabel/index.js +0 -3
  60. package/esm/ChartsLabel/labelGradientClasses.d.ts +1 -1
  61. package/esm/ChartsLabel/labelMarkClasses.d.ts +1 -1
  62. package/esm/ChartsLabel/labelMarkClasses.js +1 -1
  63. package/esm/ChartsLegend/chartsLegendClasses.d.ts +1 -1
  64. package/esm/ChartsLegend/continuousColorLegendClasses.d.ts +1 -1
  65. package/esm/ChartsLegend/piecewiseColorLegendClasses.d.ts +1 -1
  66. package/esm/ChartsReferenceLine/ChartsXReferenceLine.d.ts +1 -1
  67. package/esm/ChartsReferenceLine/ChartsYReferenceLine.d.ts +1 -1
  68. package/esm/ChartsTooltip/ChartsTooltipTable.js +1 -1
  69. package/esm/ChartsTooltip/chartsTooltipClasses.d.ts +1 -1
  70. package/esm/ChartsXAxis/ChartsXAxis.js +70 -57
  71. package/esm/ChartsYAxis/ChartsYAxis.js +12 -16
  72. package/esm/Gauge/Gauge.js +4 -3
  73. package/esm/Gauge/GaugeContainer.js +7 -5
  74. package/esm/LineChart/LineChart.d.ts +1 -1
  75. package/esm/LineChart/LineChart.js +14 -30
  76. package/esm/LineChart/useLineChartProps.js +2 -17
  77. package/esm/PieChart/PieArcLabelPlot.js +1 -1
  78. package/esm/PieChart/PieArcPlot.js +1 -1
  79. package/esm/PieChart/PieChart.d.ts +1 -1
  80. package/esm/PieChart/PieChart.js +6 -4
  81. package/esm/ScatterChart/ScatterChart.d.ts +1 -1
  82. package/esm/ScatterChart/ScatterChart.js +14 -30
  83. package/esm/ScatterChart/useScatterChartProps.js +2 -17
  84. package/esm/SparkLineChart/SparkLineChart.d.ts +4 -8
  85. package/esm/SparkLineChart/SparkLineChart.js +23 -21
  86. package/esm/constants/index.d.ts +8 -1
  87. package/esm/constants/index.js +12 -5
  88. package/esm/context/AnimationProvider/useSkipAnimation.js +1 -1
  89. package/esm/context/ChartProvider/ChartProvider.types.d.ts +6 -6
  90. package/esm/context/PolarProvider/Polar.types.d.ts +3 -2
  91. package/esm/hooks/useAxis.d.ts +2 -2
  92. package/esm/hooks/useAxis.js +1 -1
  93. package/esm/hooks/useSvgRef.js +1 -1
  94. package/esm/index.js +1 -1
  95. package/esm/internals/defaultizeColor.d.ts +23 -23
  96. package/esm/internals/defaultizeMargin.d.ts +3 -0
  97. package/esm/internals/defaultizeMargin.js +15 -0
  98. package/esm/internals/domUtils.js +1 -0
  99. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.d.ts +1 -1
  100. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.js +52 -31
  101. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +549 -105
  102. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.js +19 -18
  103. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.d.ts +7 -16
  104. package/esm/internals/plugins/corePlugins/useChartSeries/processSeries.d.ts +2 -2
  105. package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.js +2 -3
  106. package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.types.d.ts +3 -3
  107. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.ts +1 -1
  108. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +7 -2
  109. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.d.ts +13 -15
  110. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.js +37 -35
  111. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.d.ts +3 -36
  112. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.js +37 -9
  113. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +1 -1
  114. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +1 -1
  115. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +216 -0
  116. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.js +6 -0
  117. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +15 -14
  118. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts +15 -13
  119. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisLayout.selectors.d.ts +70 -0
  120. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisLayout.selectors.js +4 -0
  121. package/{internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.selectors.d.ts → esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts} +1815 -911
  122. package/{modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.selectors.js → esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js} +4 -6
  123. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +86 -130
  124. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.js +2 -2
  125. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +188 -71
  126. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.js +9 -4
  127. package/esm/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.types.d.ts +2 -2
  128. package/esm/internals/plugins/models/plugin.d.ts +1 -1
  129. package/esm/internals/plugins/models/seriesConfig/seriesProcessor.types.d.ts +1 -1
  130. package/esm/internals/plugins/utils/ChartStore.d.ts +7 -7
  131. package/esm/internals/plugins/utils/selectors.d.ts +1 -0
  132. package/esm/internals/store/useCharts.js +0 -8
  133. package/esm/internals/store/useSelector.d.ts +1 -1
  134. package/esm/internals/store/useSelector.js +4 -1
  135. package/esm/internals/store/useStore.js +1 -1
  136. package/esm/models/axis.d.ts +56 -10
  137. package/esm/models/colorMapping.d.ts +1 -1
  138. package/esm/models/index.d.ts +0 -1
  139. package/esm/models/index.js +0 -1
  140. package/esm/models/seriesType/bar.d.ts +1 -1
  141. package/esm/models/seriesType/config.d.ts +1 -1
  142. package/esm/models/seriesType/line.d.ts +1 -1
  143. package/esm/models/seriesType/pie.d.ts +1 -1
  144. package/esm/models/seriesType/scatter.d.ts +1 -1
  145. package/esm/models/z-axis.d.ts +1 -1
  146. package/hooks/useAxis.d.ts +2 -2
  147. package/hooks/useAxis.js +5 -5
  148. package/hooks/useSvgRef.js +1 -1
  149. package/index.js +1 -1
  150. package/internals/defaultizeColor.d.ts +23 -23
  151. package/internals/defaultizeMargin.d.ts +3 -0
  152. package/internals/defaultizeMargin.js +22 -0
  153. package/internals/domUtils.js +1 -0
  154. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.d.ts +1 -1
  155. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.js +51 -30
  156. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +549 -105
  157. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.js +20 -19
  158. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.d.ts +7 -16
  159. package/internals/plugins/corePlugins/useChartSeries/processSeries.d.ts +2 -2
  160. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.js +2 -3
  161. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.types.d.ts +3 -3
  162. package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.ts +1 -1
  163. package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +7 -2
  164. package/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.d.ts +13 -15
  165. package/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.js +39 -37
  166. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.d.ts +3 -36
  167. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.js +36 -8
  168. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +1 -1
  169. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +4 -4
  170. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +216 -0
  171. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.js +12 -0
  172. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +16 -15
  173. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts +15 -13
  174. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisLayout.selectors.d.ts +70 -0
  175. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisLayout.selectors.js +11 -0
  176. package/{modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.selectors.d.ts → internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts} +1815 -911
  177. package/internals/plugins/featurePlugins/useChartCartesianAxis/{useChartCartesianAxis.selectors.js → useChartCartesianAxisRendering.selectors.js} +10 -13
  178. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +86 -130
  179. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.js +2 -2
  180. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +188 -71
  181. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.js +10 -5
  182. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.types.d.ts +2 -2
  183. package/internals/plugins/models/plugin.d.ts +1 -1
  184. package/internals/plugins/models/seriesConfig/seriesProcessor.types.d.ts +1 -1
  185. package/internals/plugins/utils/ChartStore.d.ts +7 -7
  186. package/internals/plugins/utils/selectors.d.ts +1 -0
  187. package/internals/store/useCharts.js +0 -8
  188. package/internals/store/useSelector.d.ts +1 -1
  189. package/internals/store/useSelector.js +5 -1
  190. package/internals/store/useStore.js +1 -1
  191. package/models/axis.d.ts +56 -10
  192. package/models/colorMapping.d.ts +1 -1
  193. package/models/index.d.ts +0 -1
  194. package/models/index.js +0 -11
  195. package/models/seriesType/bar.d.ts +1 -1
  196. package/models/seriesType/config.d.ts +1 -1
  197. package/models/seriesType/line.d.ts +1 -1
  198. package/models/seriesType/pie.d.ts +1 -1
  199. package/models/seriesType/scatter.d.ts +1 -1
  200. package/models/z-axis.d.ts +1 -1
  201. package/modern/BarChart/BarChart.d.ts +1 -1
  202. package/modern/BarChart/BarChart.js +14 -30
  203. package/modern/BarChart/useBarChartProps.js +3 -18
  204. package/modern/ChartContainer/ChartContainer.d.ts +1 -1
  205. package/modern/ChartContainer/ChartContainer.js +15 -7
  206. package/modern/ChartDataProvider/ChartDataProvider.d.ts +2 -2
  207. package/modern/ChartDataProvider/ChartDataProvider.js +4 -3
  208. package/modern/ChartsAxis/ChartsAxis.d.ts +1 -25
  209. package/modern/ChartsAxis/ChartsAxis.js +24 -86
  210. package/modern/ChartsAxis/axisClasses.d.ts +5 -1
  211. package/modern/ChartsLabel/ChartsLabelMark.d.ts +6 -1
  212. package/modern/ChartsLabel/ChartsLabelMark.js +15 -2
  213. package/modern/ChartsLabel/index.d.ts +1 -1
  214. package/modern/ChartsLabel/index.js +0 -3
  215. package/modern/ChartsLabel/labelGradientClasses.d.ts +1 -1
  216. package/modern/ChartsLabel/labelMarkClasses.d.ts +1 -1
  217. package/modern/ChartsLabel/labelMarkClasses.js +1 -1
  218. package/modern/ChartsLegend/chartsLegendClasses.d.ts +1 -1
  219. package/modern/ChartsLegend/continuousColorLegendClasses.d.ts +1 -1
  220. package/modern/ChartsLegend/piecewiseColorLegendClasses.d.ts +1 -1
  221. package/modern/ChartsReferenceLine/ChartsXReferenceLine.d.ts +1 -1
  222. package/modern/ChartsReferenceLine/ChartsYReferenceLine.d.ts +1 -1
  223. package/modern/ChartsTooltip/ChartsTooltipTable.js +1 -1
  224. package/modern/ChartsTooltip/chartsTooltipClasses.d.ts +1 -1
  225. package/modern/ChartsXAxis/ChartsXAxis.js +70 -57
  226. package/modern/ChartsYAxis/ChartsYAxis.js +12 -16
  227. package/modern/Gauge/Gauge.js +4 -3
  228. package/modern/Gauge/GaugeContainer.js +7 -5
  229. package/modern/LineChart/LineChart.d.ts +1 -1
  230. package/modern/LineChart/LineChart.js +14 -30
  231. package/modern/LineChart/useLineChartProps.js +2 -17
  232. package/modern/PieChart/PieArcLabelPlot.js +1 -1
  233. package/modern/PieChart/PieArcPlot.js +1 -1
  234. package/modern/PieChart/PieChart.d.ts +1 -1
  235. package/modern/PieChart/PieChart.js +6 -4
  236. package/modern/ScatterChart/ScatterChart.d.ts +1 -1
  237. package/modern/ScatterChart/ScatterChart.js +14 -30
  238. package/modern/ScatterChart/useScatterChartProps.js +2 -17
  239. package/modern/SparkLineChart/SparkLineChart.d.ts +4 -8
  240. package/modern/SparkLineChart/SparkLineChart.js +23 -21
  241. package/modern/constants/index.d.ts +8 -1
  242. package/modern/constants/index.js +12 -5
  243. package/modern/context/AnimationProvider/useSkipAnimation.js +1 -1
  244. package/modern/context/ChartProvider/ChartProvider.types.d.ts +6 -6
  245. package/modern/context/PolarProvider/Polar.types.d.ts +3 -2
  246. package/modern/hooks/useAxis.d.ts +2 -2
  247. package/modern/hooks/useAxis.js +1 -1
  248. package/modern/hooks/useSvgRef.js +1 -1
  249. package/modern/index.js +1 -1
  250. package/modern/internals/defaultizeColor.d.ts +23 -23
  251. package/modern/internals/defaultizeMargin.d.ts +3 -0
  252. package/modern/internals/defaultizeMargin.js +15 -0
  253. package/modern/internals/domUtils.js +1 -0
  254. package/modern/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.d.ts +1 -1
  255. package/modern/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.js +52 -31
  256. package/modern/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +549 -105
  257. package/modern/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.js +19 -18
  258. package/modern/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.d.ts +7 -16
  259. package/modern/internals/plugins/corePlugins/useChartSeries/processSeries.d.ts +2 -2
  260. package/modern/internals/plugins/corePlugins/useChartSeries/useChartSeries.js +2 -3
  261. package/modern/internals/plugins/corePlugins/useChartSeries/useChartSeries.types.d.ts +3 -3
  262. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.ts +1 -1
  263. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +7 -2
  264. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.d.ts +13 -15
  265. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.js +37 -35
  266. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.d.ts +3 -36
  267. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.js +37 -9
  268. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +1 -1
  269. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +1 -1
  270. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +216 -0
  271. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.js +6 -0
  272. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +15 -14
  273. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts +15 -13
  274. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisLayout.selectors.d.ts +70 -0
  275. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisLayout.selectors.js +4 -0
  276. package/{esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.selectors.d.ts → modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts} +1815 -911
  277. package/{esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.selectors.js → modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js} +4 -6
  278. package/modern/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +86 -130
  279. package/modern/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.js +2 -2
  280. package/modern/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +188 -71
  281. package/modern/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.js +9 -4
  282. package/modern/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.types.d.ts +2 -2
  283. package/modern/internals/plugins/models/plugin.d.ts +1 -1
  284. package/modern/internals/plugins/models/seriesConfig/seriesProcessor.types.d.ts +1 -1
  285. package/modern/internals/plugins/utils/ChartStore.d.ts +7 -7
  286. package/modern/internals/plugins/utils/selectors.d.ts +1 -0
  287. package/modern/internals/store/useCharts.js +0 -8
  288. package/modern/internals/store/useSelector.d.ts +1 -1
  289. package/modern/internals/store/useSelector.js +4 -1
  290. package/modern/internals/store/useStore.js +1 -1
  291. package/modern/models/axis.d.ts +56 -10
  292. package/modern/models/colorMapping.d.ts +1 -1
  293. package/modern/models/index.d.ts +0 -1
  294. package/modern/models/index.js +0 -1
  295. package/modern/models/seriesType/bar.d.ts +1 -1
  296. package/modern/models/seriesType/config.d.ts +1 -1
  297. package/modern/models/seriesType/line.d.ts +1 -1
  298. package/modern/models/seriesType/pie.d.ts +1 -1
  299. package/modern/models/seriesType/scatter.d.ts +1 -1
  300. package/modern/models/z-axis.d.ts +1 -1
  301. package/package.json +3 -3
  302. package/tsconfig.build.tsbuildinfo +1 -1
  303. package/esm/internals/calculateMargins.d.ts +0 -7
  304. package/esm/internals/calculateMargins.js +0 -25
  305. package/esm/models/layout.d.ts +0 -18
  306. package/esm/models/layout.js +0 -1
  307. package/internals/calculateMargins.d.ts +0 -7
  308. package/internals/calculateMargins.js +0 -33
  309. package/models/layout.d.ts +0 -18
  310. package/models/layout.js +0 -5
  311. package/modern/internals/calculateMargins.d.ts +0 -7
  312. package/modern/internals/calculateMargins.js +0 -25
  313. package/modern/models/layout.d.ts +0 -18
  314. package/modern/models/layout.js +0 -1
@@ -1,5 +1,6 @@
1
1
  import type { ScaleBand, ScaleLogarithmic, ScalePower, ScaleTime, ScaleLinear, ScalePoint, ScaleOrdinal, ScaleSequential, ScaleThreshold } from '@mui/x-charts-vendor/d3-scale';
2
2
  import { SxProps } from '@mui/system/styleFunctionSx';
3
+ import { MakeRequired } from '@mui/x-internals/types';
3
4
  import { ChartsAxisClasses } from "../ChartsAxis/axisClasses.js";
4
5
  import type { TickParams } from '../hooks/useTicks';
5
6
  import { ChartsTextProps } from "../ChartsText/index.js";
@@ -104,17 +105,54 @@ export interface ChartsAxisProps extends TickParams {
104
105
  sx?: SxProps;
105
106
  }
106
107
  export interface ChartsYAxisProps extends ChartsAxisProps {
108
+ axis?: 'y';
109
+ }
110
+ export interface ChartsXAxisProps extends ChartsAxisProps {
111
+ axis?: 'x';
107
112
  /**
108
- * Position of the axis.
113
+ * The minimum gap in pixels between two tick labels.
114
+ * If two tick labels are closer than this minimum gap, one of them will be hidden.
115
+ * @default 4
109
116
  */
110
- position?: 'left' | 'right';
117
+ tickLabelMinGap?: number;
111
118
  }
112
- export interface ChartsXAxisProps extends ChartsAxisProps {
119
+ type AxisSideConfig<AxisProps extends ChartsAxisProps> = AxisProps extends ChartsXAxisProps ? {
113
120
  /**
114
121
  * Position of the axis.
122
+ *
123
+ * When set, the space for the axis is reserved, even if the axis is not displayed due to missing data.
124
+ *
125
+ * Set to 'none' to hide the axis.
126
+ *
127
+ * The first axis in the list will always have a default position.
115
128
  */
116
- position?: 'top' | 'bottom';
117
- }
129
+ position?: 'top' | 'bottom' | 'none';
130
+ /**
131
+ * The height of the axis.
132
+ * @default 30
133
+ */
134
+ height?: number;
135
+ } : AxisProps extends ChartsYAxisProps ? {
136
+ /**
137
+ * Position of the axis.
138
+ *
139
+ * When set, the space for the axis is reserved, even if the axis is not displayed due to missing data.
140
+ *
141
+ * Set to 'none' to hide the axis.
142
+ *
143
+ * The first axis in the list will always have a default position.
144
+ */
145
+ position?: 'left' | 'right' | 'none';
146
+ /**
147
+ * The width of the axis.
148
+ * @default 30
149
+ */
150
+ width?: number;
151
+ } : {
152
+ position?: 'top' | 'bottom' | 'left' | 'right' | 'none';
153
+ height?: number;
154
+ width?: number;
155
+ };
118
156
  export interface ChartsRotationAxisProps extends ChartsAxisProps {
119
157
  /**
120
158
  * The start angle (in deg).
@@ -242,7 +280,7 @@ export type AxisValueFormatterContext<S extends ScaleName = ScaleName> = {
242
280
  */
243
281
  scale: AxisScaleConfig[S]['scale'];
244
282
  };
245
- export type AxisConfig<S extends ScaleName = ScaleName, V = any, AxisProps = ChartsXAxisProps | ChartsYAxisProps> = {
283
+ export type AxisConfig<S extends ScaleName = ScaleName, V = any, AxisProps extends ChartsAxisProps = ChartsXAxisProps | ChartsYAxisProps> = {
246
284
  /**
247
285
  * Id used to identify the axis.
248
286
  */
@@ -260,7 +298,7 @@ export type AxisConfig<S extends ScaleName = ScaleName, V = any, AxisProps = Cha
260
298
  /**
261
299
  * The data used by `'band'` and `'point'` scales.
262
300
  */
263
- data?: V[];
301
+ data?: readonly V[];
264
302
  /**
265
303
  * The key used to retrieve `data` from the `dataset` prop.
266
304
  */
@@ -280,6 +318,13 @@ export type AxisConfig<S extends ScaleName = ScaleName, V = any, AxisProps = Cha
280
318
  * If `true`, Reverse the axis scaleBand.
281
319
  */
282
320
  reverse?: boolean;
321
+ /**
322
+ * The offset of the axis in pixels. It can be used to move the axis from its default position.
323
+ * X-axis: A top axis will move up, and a bottom axis will move down.
324
+ * Y-axis: A left axis will move left, and a right axis will move right.
325
+ * @default 0
326
+ */
327
+ offset?: number;
283
328
  /**
284
329
  * Defines the axis scale domain based on the min/max values of series linked to it.
285
330
  * - 'nice': Rounds the domain at human friendly values.
@@ -290,9 +335,9 @@ export type AxisConfig<S extends ScaleName = ScaleName, V = any, AxisProps = Cha
290
335
  min: number;
291
336
  max: number;
292
337
  });
293
- } & Omit<Partial<AxisProps>, 'axisId'> & Partial<Omit<AxisScaleConfig[S], 'scale'>> & TickParams & AxisConfigExtension;
338
+ } & Omit<Partial<AxisProps>, 'axisId'> & Partial<Omit<AxisScaleConfig[S], 'scale'>> & AxisSideConfig<AxisProps> & TickParams & AxisConfigExtension;
294
339
  export interface AxisConfigExtension {}
295
- export type AxisDefaultized<S extends ScaleName = ScaleName, V = any, AxisProps = ChartsXAxisProps | ChartsYAxisProps> = Omit<AxisConfig<S, V, AxisProps>, 'scaleType'> & AxisScaleConfig[S] & AxisScaleComputedConfig[S] & {
340
+ export type AxisDefaultized<S extends ScaleName = ScaleName, V = any, AxisProps extends ChartsAxisProps = ChartsXAxisProps | ChartsYAxisProps> = MakeRequired<Omit<AxisConfig<S, V, AxisProps>, 'scaleType'>, 'offset'> & AxisScaleConfig[S] & AxisSideConfig<AxisProps> & AxisScaleComputedConfig[S] & {
296
341
  /**
297
342
  * An indication of the expected number of ticks.
298
343
  */
@@ -320,4 +365,5 @@ export interface ChartsAxisData {
320
365
  * The mapping of series ids to their value for this particular axis index.
321
366
  */
322
367
  seriesValues: Record<string, number | null | undefined>;
323
- }
368
+ }
369
+ export {};
@@ -33,7 +33,7 @@ export interface OrdinalColorConfig<Value = number | Date | string> {
33
33
  * The value to map.
34
34
  * If undefined, it will be integers from 0 to the number of colors.
35
35
  */
36
- values?: Value[];
36
+ values?: readonly Value[];
37
37
  /**
38
38
  * The color palette.
39
39
  * Items equal to `values[k]` will get the color of `colors[k]`.
@@ -1,5 +1,4 @@
1
1
  export * from "./seriesType/index.js";
2
- export * from "./layout.js";
3
2
  export * from "./stacking.js";
4
3
  export type { AxisConfig, ChartsYAxisProps, ChartsXAxisProps, ScaleName, ContinuousScaleName, ChartsAxisData } from './axis';
5
4
  export type { PropsFromSlot } from '@mui/x-internals/slots';
@@ -1,5 +1,4 @@
1
1
  export * from "./seriesType/index.js";
2
- export * from "./layout.js";
3
2
  export * from "./stacking.js";
4
3
 
5
4
  // Utils shared across the X packages
@@ -6,7 +6,7 @@ export interface BarSeriesType extends CommonSeriesType<number | null>, Cartesia
6
6
  /**
7
7
  * Data associated to each bar.
8
8
  */
9
- data?: (number | null)[];
9
+ data?: readonly (number | null)[];
10
10
  /**
11
11
  * The key used to retrieve data from the dataset.
12
12
  */
@@ -76,6 +76,6 @@ export type ChartSeriesDefaultized<T extends ChartSeriesType> = ChartsSeriesConf
76
76
  } : ChartsSeriesConfig[T]['series'];
77
77
  export type ChartItemIdentifier<T extends ChartSeriesType> = ChartsSeriesConfig[T]['itemIdentifier'];
78
78
  export type DatasetElementType<T> = {
79
- [key: string]: T;
79
+ [key: string]: Readonly<T>;
80
80
  };
81
81
  export type DatasetType<T = number | string | Date | null | undefined> = DatasetElementType<T>[];
@@ -29,7 +29,7 @@ export interface LineSeriesType extends CommonSeriesType<number | null>, Cartesi
29
29
  /**
30
30
  * Data associated to the line.
31
31
  */
32
- data?: (number | null)[];
32
+ data?: readonly (number | null)[];
33
33
  /**
34
34
  * The key used to retrieve data from the dataset.
35
35
  */
@@ -27,7 +27,7 @@ export type DefaultizedPieValueType = PieValueType & Omit<D3PieArcDatum<any>, 'd
27
27
  export type ChartsPieSorting = 'none' | 'asc' | 'desc' | ((a: number, b: number) => number);
28
28
  export interface PieSeriesType<TData = PieValueType> extends CommonSeriesType<TData> {
29
29
  type: 'pie';
30
- data: TData[];
30
+ data: Readonly<TData[]>;
31
31
  /**
32
32
  * The radius between circle center and the beginning of the arc.
33
33
  * Can be a number (in px) or a string with a percentage such as '50%'.
@@ -11,7 +11,7 @@ export type ScatterValueType = {
11
11
  };
12
12
  export interface ScatterSeriesType extends CommonSeriesType<ScatterValueType | null>, CartesianSeriesType {
13
13
  type: 'scatter';
14
- data?: ScatterValueType[];
14
+ data?: readonly ScatterValueType[];
15
15
  markerSize?: number;
16
16
  /**
17
17
  * The label to display on the tooltip or the legend. It can be a string or a function.
@@ -2,7 +2,7 @@ import type { ScaleOrdinal, ScaleSequential, ScaleThreshold } from '@mui/x-chart
2
2
  import { ContinuousColorConfig, OrdinalColorConfig, PiecewiseColorConfig } from "./colorMapping.js";
3
3
  export interface ZAxisConfig<V = any> {
4
4
  id: string;
5
- data?: V[];
5
+ data?: readonly V[];
6
6
  /**
7
7
  * The key used to retrieve `data` from the `dataset` prop.
8
8
  */
@@ -10,7 +10,7 @@ import { AxisId } from "../models/axis.js";
10
10
  * @returns `{ xAxis, xAxisIds }` - The x-axes and their IDs.
11
11
  */
12
12
  export declare function useXAxes(): {
13
- xAxis: import("../internals").DefaultizedAxisConfig<import("../internals").ChartsAxisProps>;
13
+ xAxis: import("../internals").DefaultizedAxisConfig<import("..").ChartsXAxisProps>;
14
14
  xAxisIds: string[];
15
15
  };
16
16
  /**
@@ -32,7 +32,7 @@ export declare function useYAxes(): {
32
32
  * @param {AxisId | undefined} axisId - If provided returns the x axis with axisId, else returns the values for the default x axis.
33
33
  * @returns The X axis.
34
34
  */
35
- export declare function useXAxis(axisId?: AxisId): import("../internals").AxisDefaultized<keyof import("../internals").AxisScaleConfig, any, import("../internals").ChartsAxisProps>;
35
+ export declare function useXAxis(axisId?: AxisId): import("../internals").AxisDefaultized<keyof import("../internals").AxisScaleConfig, any, import("..").ChartsXAxisProps>;
36
36
  /**
37
37
  * Get the Y axis.
38
38
  * @param {AxisId | undefined} axisId - If provided returns the y axis with axisId, else returns the values for the default y axis.
package/hooks/useAxis.js CHANGED
@@ -8,7 +8,7 @@ exports.useXAxes = useXAxes;
8
8
  exports.useXAxis = useXAxis;
9
9
  exports.useYAxes = useYAxes;
10
10
  exports.useYAxis = useYAxis;
11
- var _useChartCartesianAxis = require("../internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.selectors");
11
+ var _useChartCartesianAxisRendering = require("../internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors");
12
12
  var _useSelector = require("../internals/store/useSelector");
13
13
  var _useStore = require("../internals/store/useStore");
14
14
  /**
@@ -26,7 +26,7 @@ function useXAxes() {
26
26
  const {
27
27
  axis: xAxis,
28
28
  axisIds: xAxisIds
29
- } = (0, _useSelector.useSelector)(store, _useChartCartesianAxis.selectorChartXAxis);
29
+ } = (0, _useSelector.useSelector)(store, _useChartCartesianAxisRendering.selectorChartXAxis);
30
30
  return {
31
31
  xAxis,
32
32
  xAxisIds
@@ -48,7 +48,7 @@ function useYAxes() {
48
48
  const {
49
49
  axis: yAxis,
50
50
  axisIds: yAxisIds
51
- } = (0, _useSelector.useSelector)(store, _useChartCartesianAxis.selectorChartYAxis);
51
+ } = (0, _useSelector.useSelector)(store, _useChartCartesianAxisRendering.selectorChartYAxis);
52
52
  return {
53
53
  yAxis,
54
54
  yAxisIds
@@ -65,7 +65,7 @@ function useXAxis(axisId) {
65
65
  const {
66
66
  axis: xAxis,
67
67
  axisIds: xAxisIds
68
- } = (0, _useSelector.useSelector)(store, _useChartCartesianAxis.selectorChartXAxis);
68
+ } = (0, _useSelector.useSelector)(store, _useChartCartesianAxisRendering.selectorChartXAxis);
69
69
  const id = axisId ?? xAxisIds[0];
70
70
  return xAxis[id];
71
71
  }
@@ -80,7 +80,7 @@ function useYAxis(axisId) {
80
80
  const {
81
81
  axis: yAxis,
82
82
  axisIds: yAxisIds
83
- } = (0, _useSelector.useSelector)(store, _useChartCartesianAxis.selectorChartYAxis);
83
+ } = (0, _useSelector.useSelector)(store, _useChartCartesianAxisRendering.selectorChartYAxis);
84
84
  const id = axisId ?? yAxisIds[0];
85
85
  return yAxis[id];
86
86
  }
@@ -13,7 +13,7 @@ var _ChartProvider = require("../context/ChartProvider");
13
13
  function useSvgRef() {
14
14
  const context = (0, _ChartProvider.useChartContext)();
15
15
  if (!context) {
16
- throw new Error(['MUI X: Could not find the svg ref context.', 'It looks like you rendered your component outside of a ChartsContainer parent component.'].join('\n'));
16
+ throw new Error(['MUI X: Could not find the svg ref context.', 'It looks like you rendered your component outside of a ChartContainer parent component.'].join('\n'));
17
17
  }
18
18
  return context.svgRef;
19
19
  }
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-charts v8.0.0-alpha.12
2
+ * @mui/x-charts v8.0.0-alpha.13
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -1,10 +1,10 @@
1
1
  import { AllSeriesType } from "../models/seriesType/index.js";
2
2
  export declare function defaultizeColor(series: AllSeriesType, seriesIndex: number, colors: string[]): {
3
3
  data: {
4
- value: number;
5
4
  label?: string | ((location: "tooltip" | "legend" | "arc") => string) | undefined;
6
5
  color: string;
7
- labelMarkType?: "line" | "circle" | "square" | undefined;
6
+ labelMarkType?: "line" | "square" | "circle" | import("react").ComponentType<import("..").ChartsLabelCustomMarkProps> | undefined;
7
+ value: number;
8
8
  id?: import("..").PieItemId | undefined;
9
9
  }[];
10
10
  type: "pie";
@@ -46,24 +46,28 @@ export declare function defaultizeColor(series: AllSeriesType, seriesIndex: numb
46
46
  highlightScope?: Partial<import("..").HighlightScope>;
47
47
  labelMarkType?: import("..").ChartsLabelMarkProps["type"];
48
48
  } | {
49
- type: "bar";
50
- data?: (number | null)[];
51
- dataKey?: string;
49
+ type: "scatter";
50
+ data?: readonly import("..").ScatterValueType[];
51
+ markerSize?: number;
52
52
  label?: string | ((location: "tooltip" | "legend") => string);
53
- layout?: "horizontal" | "vertical";
54
- stackOffset?: import("..").StackOffsetType;
53
+ disableHover?: boolean;
54
+ zAxisId?: string;
55
+ datasetKeys?: {
56
+ x: string;
57
+ y: string;
58
+ z?: string;
59
+ id?: string;
60
+ };
55
61
  id?: import(".").SeriesId;
56
62
  color: string;
57
- valueFormatter?: import(".").SeriesValueFormatter<number | null> | undefined;
63
+ valueFormatter?: import(".").SeriesValueFormatter<import("..").ScatterValueType | null> | undefined;
58
64
  highlightScope?: Partial<import("..").HighlightScope>;
59
65
  labelMarkType?: import("..").ChartsLabelMarkProps["type"];
60
66
  xAxisId?: string;
61
67
  yAxisId?: string;
62
- stack?: string;
63
- stackOrder?: import("..").StackOrderType;
64
68
  } | {
65
69
  type: "line";
66
- data?: (number | null)[];
70
+ data?: readonly (number | null)[];
67
71
  dataKey?: string;
68
72
  stack?: string;
69
73
  area?: boolean;
@@ -85,23 +89,19 @@ export declare function defaultizeColor(series: AllSeriesType, seriesIndex: numb
85
89
  yAxisId?: string;
86
90
  stackOrder?: import("..").StackOrderType;
87
91
  } | {
88
- type: "scatter";
89
- data?: import("..").ScatterValueType[];
90
- markerSize?: number;
92
+ type: "bar";
93
+ data?: readonly (number | null)[];
94
+ dataKey?: string;
91
95
  label?: string | ((location: "tooltip" | "legend") => string);
92
- disableHover?: boolean;
93
- zAxisId?: string;
94
- datasetKeys?: {
95
- x: string;
96
- y: string;
97
- z?: string;
98
- id?: string;
99
- };
96
+ layout?: "horizontal" | "vertical";
97
+ stackOffset?: import("..").StackOffsetType;
100
98
  id?: import(".").SeriesId;
101
99
  color: string;
102
- valueFormatter?: import(".").SeriesValueFormatter<import("..").ScatterValueType | null> | undefined;
100
+ valueFormatter?: import(".").SeriesValueFormatter<number | null> | undefined;
103
101
  highlightScope?: Partial<import("..").HighlightScope>;
104
102
  labelMarkType?: import("..").ChartsLabelMarkProps["type"];
105
103
  xAxisId?: string;
106
104
  yAxisId?: string;
105
+ stack?: string;
106
+ stackOrder?: import("..").StackOrderType;
107
107
  };
@@ -0,0 +1,3 @@
1
+ import type { ChartMargin, UseChartDimensionsParameters } from './plugins/corePlugins/useChartDimensions/useChartDimensions.types';
2
+ export declare function defaultizeMargin(input: UseChartDimensionsParameters['margin'], defaultMargin: ChartMargin): ChartMargin;
3
+ export declare function defaultizeMargin(input: UseChartDimensionsParameters['margin'], defaultMargin?: ChartMargin): Partial<ChartMargin> | undefined;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.defaultizeMargin = defaultizeMargin;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ function defaultizeMargin(input, defaultMargin) {
10
+ if (typeof input === 'number') {
11
+ return {
12
+ top: input,
13
+ bottom: input,
14
+ left: input,
15
+ right: input
16
+ };
17
+ }
18
+ if (defaultMargin) {
19
+ return (0, _extends2.default)({}, defaultMargin, input);
20
+ }
21
+ return input;
22
+ }
@@ -67,6 +67,7 @@ function camelToMiddleLine(text) {
67
67
  const getStyleString = style => Object.keys(style).sort().reduce((result, s) => `${result}${camelToMiddleLine(s)}:${autoCompleteStyle(s, style[s])};`, '');
68
68
  exports.getStyleString = getStyleString;
69
69
  let domCleanTimeout;
70
+
70
71
  /**
71
72
  *
72
73
  * @param text The string to estimate
@@ -1,3 +1,3 @@
1
1
  import { ChartPlugin } from "../../models/index.js";
2
- import { UseChartDimensionsSignature } from "./useChartDimensions.types.js";
2
+ import type { UseChartDimensionsSignature } from './useChartDimensions.types';
3
3
  export declare const useChartDimensions: ChartPlugin<UseChartDimensionsSignature>;
@@ -14,6 +14,7 @@ var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedE
14
14
  var _ownerWindow = _interopRequireDefault(require("@mui/utils/ownerWindow"));
15
15
  var _constants = require("../../../../constants");
16
16
  var _useChartDimensions = require("./useChartDimensions.selectors");
17
+ var _defaultizeMargin = require("../../../defaultizeMargin");
17
18
  const MAX_COMPUTE_RUN = 10;
18
19
  const useChartDimensions = ({
19
20
  params,
@@ -39,36 +40,53 @@ const useChartDimensions = ({
39
40
  const newHeight = Math.floor(parseFloat(computedStyle.height)) || 0;
40
41
  const newWidth = Math.floor(parseFloat(computedStyle.width)) || 0;
41
42
  store.update(prev => {
42
- const prevWidth = prev.dimensions.width + prev.dimensions.left + prev.dimensions.right;
43
- const prevHeight = prev.dimensions.height + prev.dimensions.top + prev.dimensions.bottom;
44
- if (prevWidth === newWidth && prevHeight === newHeight) {
43
+ if (prev.dimensions.width === newWidth && prev.dimensions.height === newHeight) {
45
44
  return prev;
46
45
  }
47
46
  return (0, _extends2.default)({}, prev, {
48
- dimensions: (0, _extends2.default)({}, prev.dimensions, {
49
- width: newWidth - prev.dimensions.left - prev.dimensions.right,
50
- height: newHeight - prev.dimensions.top - prev.dimensions.bottom
51
- })
47
+ dimensions: {
48
+ margin: {
49
+ top: params.margin.top,
50
+ right: params.margin.right,
51
+ bottom: params.margin.bottom,
52
+ left: params.margin.left
53
+ },
54
+ width: params.width ?? newWidth,
55
+ height: params.height ?? newHeight,
56
+ propsWidth: params.width,
57
+ propsHeight: params.height
58
+ }
52
59
  });
53
60
  });
54
61
  return {
55
62
  height: newHeight,
56
63
  width: newWidth
57
64
  };
58
- }, [store, svgRef]);
59
- store.update(prev => {
60
- if ((params.width === undefined || prev.dimensions.propsWidth === params.width) && (params.height === undefined || prev.dimensions.propsHeight === params.height)) {
61
- return prev;
62
- }
63
- return (0, _extends2.default)({}, prev, {
64
- dimensions: (0, _extends2.default)({}, prev.dimensions, {
65
- width: params.width === undefined ? prev.dimensions.width : params.width - prev.dimensions.left - prev.dimensions.right,
66
- height: params.height === undefined ? prev.dimensions.height : params.height - prev.dimensions.top - prev.dimensions.bottom,
67
- propsWidth: params.width,
68
- propsHeight: params.height
69
- })
65
+ }, [store, svgRef, params.height, params.width,
66
+ // Margin is an object, so we need to include all the properties to prevent infinite loops.
67
+ params.margin.left, params.margin.right, params.margin.top, params.margin.bottom]);
68
+ React.useEffect(() => {
69
+ store.update(prev => {
70
+ const width = params.width ?? prev.dimensions.width;
71
+ const height = params.height ?? prev.dimensions.height;
72
+ return (0, _extends2.default)({}, prev, {
73
+ dimensions: {
74
+ margin: {
75
+ top: params.margin.top,
76
+ right: params.margin.right,
77
+ bottom: params.margin.bottom,
78
+ left: params.margin.left
79
+ },
80
+ width,
81
+ height,
82
+ propsHeight: params.height,
83
+ propsWidth: params.width
84
+ }
85
+ });
70
86
  });
71
- });
87
+ }, [store, params.height, params.width,
88
+ // Margin is an object, so we need to include all the properties to prevent infinite loops.
89
+ params.margin.left, params.margin.right, params.margin.top, params.margin.bottom]);
72
90
  React.useEffect(() => {
73
91
  // Ensure the error detection occurs after the first rendering.
74
92
  stateRef.current.displayError = true;
@@ -141,7 +159,7 @@ const useChartDimensions = ({
141
159
  if (options?.targetElement && options?.targetElement.closest('[data-drawing-container]')) {
142
160
  return true;
143
161
  }
144
- const drawingArea = (0, _useChartDimensions.selectorChartDimensionsState)(store.value);
162
+ const drawingArea = (0, _useChartDimensions.selectorChartDrawingArea)(store.value);
145
163
  const isInsideX = x >= drawingArea.left - 1 && x <= drawingArea.left + drawingArea.width;
146
164
  const isInsideY = y >= drawingArea.top - 1 && y <= drawingArea.top + drawingArea.height;
147
165
  if (options?.direction === 'x') {
@@ -167,17 +185,20 @@ useChartDimensions.params = {
167
185
  useChartDimensions.getDefaultizedParams = ({
168
186
  params
169
187
  }) => (0, _extends2.default)({}, params, {
170
- margin: params.margin ? (0, _extends2.default)({}, _constants.DEFAULT_MARGINS, params.margin) : _constants.DEFAULT_MARGINS
188
+ margin: (0, _defaultizeMargin.defaultizeMargin)(params.margin, _constants.DEFAULT_MARGINS)
171
189
  });
172
190
  useChartDimensions.getInitialState = ({
173
191
  width,
174
192
  height,
175
193
  margin
176
- }) => ({
177
- dimensions: (0, _extends2.default)({}, margin, {
178
- width: (width ?? 0) - margin.left - margin.right,
179
- height: (height ?? 0) - margin.top - margin.bottom,
180
- propsWidth: width,
181
- propsHeight: height
182
- })
183
- });
194
+ }) => {
195
+ return {
196
+ dimensions: {
197
+ margin,
198
+ width: width ?? 0,
199
+ height: height ?? 0,
200
+ propsWidth: width,
201
+ propsHeight: height
202
+ }
203
+ };
204
+ };