@mui/x-charts 7.0.0-beta.0 → 7.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/BarChart/BarChart.d.ts +2 -1
  2. package/BarChart/BarChart.js +33 -12
  3. package/BarChart/BarElement.d.ts +20 -13
  4. package/BarChart/BarElement.js +7 -3
  5. package/BarChart/BarPlot.d.ts +11 -6
  6. package/BarChart/BarPlot.js +28 -15
  7. package/BarChart/formatter.js +1 -1
  8. package/CHANGELOG.md +406 -1
  9. package/ChartContainer/ChartContainer.js +6 -4
  10. package/ChartsAxis/ChartsAxis.js +4 -4
  11. package/ChartsLegend/ChartsLegend.d.ts +5 -54
  12. package/ChartsLegend/ChartsLegend.js +2 -307
  13. package/ChartsLegend/DefaultChartsLegend.d.ts +60 -0
  14. package/ChartsLegend/DefaultChartsLegend.js +294 -0
  15. package/ChartsLegend/index.d.ts +1 -0
  16. package/ChartsLegend/index.js +11 -0
  17. package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.d.ts +20 -0
  18. package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +83 -0
  19. package/ChartsOnAxisClickHandler/index.d.ts +1 -0
  20. package/ChartsOnAxisClickHandler/index.js +16 -0
  21. package/ChartsOnAxisClickHandler/package.json +6 -0
  22. package/ChartsReferenceLine/ChartsReferenceLine.js +2 -2
  23. package/ChartsReferenceLine/ChartsXReferenceLine.js +1 -1
  24. package/ChartsReferenceLine/ChartsYReferenceLine.js +1 -1
  25. package/ChartsReferenceLine/common.d.ts +2 -1
  26. package/ChartsTooltip/ChartsAxisTooltipContent.js +6 -5
  27. package/ChartsTooltip/ChartsItemTooltipContent.js +2 -2
  28. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +7 -5
  29. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -1
  30. package/ChartsTooltip/utils.d.ts +4 -1
  31. package/ChartsTooltip/utils.js +15 -0
  32. package/ChartsVoronoiHandler/ChartsVoronoiHandler.d.ts +7 -0
  33. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +92 -44
  34. package/ChartsXAxis/ChartsXAxis.js +13 -9
  35. package/ChartsYAxis/ChartsYAxis.js +1 -1
  36. package/LineChart/AnimatedArea.d.ts +1361 -0
  37. package/LineChart/AnimatedArea.js +111 -0
  38. package/LineChart/AnimatedLine.d.ts +1361 -0
  39. package/LineChart/AnimatedLine.js +113 -0
  40. package/LineChart/AreaElement.d.ts +19 -18
  41. package/LineChart/AreaElement.js +17 -34
  42. package/LineChart/AreaPlot.d.ts +12 -7
  43. package/LineChart/AreaPlot.js +91 -58
  44. package/LineChart/LineChart.d.ts +13 -4
  45. package/LineChart/LineChart.js +45 -14
  46. package/LineChart/LineElement.d.ts +19 -18
  47. package/LineChart/LineElement.js +16 -36
  48. package/LineChart/LineHighlightElement.d.ts +3 -2
  49. package/LineChart/LineHighlightElement.js +5 -3
  50. package/LineChart/LinePlot.d.ts +12 -7
  51. package/LineChart/LinePlot.js +89 -56
  52. package/LineChart/MarkElement.d.ts +8 -4
  53. package/LineChart/MarkElement.js +27 -13
  54. package/LineChart/MarkPlot.d.ts +8 -1
  55. package/LineChart/MarkPlot.js +80 -51
  56. package/LineChart/formatter.js +1 -1
  57. package/LineChart/index.d.ts +2 -0
  58. package/LineChart/index.js +22 -0
  59. package/PieChart/PieArc.d.ts +3 -2
  60. package/PieChart/PieArc.js +1 -0
  61. package/PieChart/PieArcLabel.d.ts +3 -2
  62. package/PieChart/PieArcLabel.js +1 -0
  63. package/PieChart/PieArcLabelPlot.d.ts +1 -1
  64. package/PieChart/PieArcLabelPlot.js +2 -2
  65. package/PieChart/PieArcPlot.d.ts +2 -2
  66. package/PieChart/PieArcPlot.js +7 -7
  67. package/PieChart/PieChart.d.ts +1 -1
  68. package/PieChart/PieChart.js +14 -12
  69. package/PieChart/PiePlot.d.ts +1 -1
  70. package/PieChart/PiePlot.js +4 -4
  71. package/ResponsiveChartContainer/ResponsiveChartContainer.js +6 -4
  72. package/ScatterChart/Scatter.d.ts +7 -1
  73. package/ScatterChart/Scatter.js +17 -3
  74. package/ScatterChart/ScatterChart.d.ts +8 -2
  75. package/ScatterChart/ScatterChart.js +21 -10
  76. package/ScatterChart/ScatterPlot.d.ts +1 -1
  77. package/ScatterChart/ScatterPlot.js +10 -2
  78. package/SparkLineChart/SparkLineChart.d.ts +1 -1
  79. package/SparkLineChart/SparkLineChart.js +7 -4
  80. package/context/CartesianContextProvider.js +8 -6
  81. package/context/DrawingProvider.d.ts +6 -1
  82. package/context/DrawingProvider.js +9 -2
  83. package/context/InteractionProvider.d.ts +3 -3
  84. package/esm/BarChart/BarChart.js +33 -12
  85. package/esm/BarChart/BarElement.js +7 -3
  86. package/esm/BarChart/BarPlot.js +27 -15
  87. package/esm/BarChart/formatter.js +1 -1
  88. package/esm/ChartContainer/ChartContainer.js +6 -4
  89. package/esm/ChartsAxis/ChartsAxis.js +4 -4
  90. package/esm/ChartsLegend/ChartsLegend.js +2 -307
  91. package/esm/ChartsLegend/DefaultChartsLegend.js +286 -0
  92. package/esm/ChartsLegend/index.js +1 -0
  93. package/esm/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +77 -0
  94. package/esm/ChartsOnAxisClickHandler/index.js +1 -0
  95. package/esm/ChartsReferenceLine/ChartsReferenceLine.js +2 -2
  96. package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +1 -1
  97. package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +1 -1
  98. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +6 -5
  99. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +2 -2
  100. package/esm/ChartsTooltip/DefaultChartsAxisTooltipContent.js +8 -5
  101. package/esm/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -1
  102. package/esm/ChartsTooltip/utils.js +12 -0
  103. package/esm/ChartsVoronoiHandler/ChartsVoronoiHandler.js +92 -44
  104. package/esm/ChartsXAxis/ChartsXAxis.js +13 -9
  105. package/esm/ChartsYAxis/ChartsYAxis.js +1 -1
  106. package/esm/LineChart/AnimatedArea.js +103 -0
  107. package/esm/LineChart/AnimatedLine.js +105 -0
  108. package/esm/LineChart/AreaElement.js +16 -33
  109. package/esm/LineChart/AreaPlot.js +92 -59
  110. package/esm/LineChart/LineChart.js +45 -14
  111. package/esm/LineChart/LineElement.js +16 -35
  112. package/esm/LineChart/LineHighlightElement.js +5 -3
  113. package/esm/LineChart/LinePlot.js +90 -57
  114. package/esm/LineChart/MarkElement.js +27 -13
  115. package/esm/LineChart/MarkPlot.js +80 -51
  116. package/esm/LineChart/formatter.js +1 -1
  117. package/esm/LineChart/index.js +2 -0
  118. package/esm/PieChart/PieArc.js +1 -0
  119. package/esm/PieChart/PieArcLabel.js +1 -0
  120. package/esm/PieChart/PieArcLabelPlot.js +2 -2
  121. package/esm/PieChart/PieArcPlot.js +7 -7
  122. package/esm/PieChart/PieChart.js +14 -12
  123. package/esm/PieChart/PiePlot.js +4 -4
  124. package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +6 -4
  125. package/esm/ScatterChart/Scatter.js +17 -3
  126. package/esm/ScatterChart/ScatterChart.js +21 -10
  127. package/esm/ScatterChart/ScatterPlot.js +10 -2
  128. package/esm/SparkLineChart/SparkLineChart.js +7 -4
  129. package/esm/context/CartesianContextProvider.js +8 -6
  130. package/esm/context/DrawingProvider.js +9 -2
  131. package/esm/hooks/useDrawingArea.js +7 -3
  132. package/esm/index.js +1 -0
  133. package/esm/internals/geometry.js +1 -1
  134. package/esm/internals/useAnimatedPath.js +29 -0
  135. package/esm/internals/utils.js +7 -0
  136. package/hooks/useDrawingArea.d.ts +2 -0
  137. package/hooks/useDrawingArea.js +7 -3
  138. package/index.d.ts +1 -0
  139. package/index.js +12 -1
  140. package/internals/defaultizeColor.d.ts +16 -16
  141. package/internals/defaultizeValueFormatter.d.ts +4 -7
  142. package/internals/geometry.js +1 -1
  143. package/internals/stackSeries.d.ts +4 -7
  144. package/internals/useAnimatedPath.d.ts +1 -0
  145. package/internals/useAnimatedPath.js +38 -0
  146. package/internals/utils.d.ts +4 -0
  147. package/internals/utils.js +8 -0
  148. package/legacy/BarChart/BarChart.js +33 -12
  149. package/legacy/BarChart/BarElement.js +6 -2
  150. package/legacy/BarChart/BarPlot.js +28 -14
  151. package/legacy/BarChart/formatter.js +1 -1
  152. package/legacy/ChartContainer/ChartContainer.js +6 -4
  153. package/legacy/ChartsAxis/ChartsAxis.js +4 -4
  154. package/legacy/ChartsLegend/ChartsLegend.js +2 -323
  155. package/legacy/ChartsLegend/DefaultChartsLegend.js +302 -0
  156. package/legacy/ChartsLegend/index.js +1 -0
  157. package/legacy/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +75 -0
  158. package/legacy/ChartsOnAxisClickHandler/index.js +1 -0
  159. package/legacy/ChartsReferenceLine/ChartsReferenceLine.js +2 -2
  160. package/legacy/ChartsReferenceLine/ChartsXReferenceLine.js +1 -1
  161. package/legacy/ChartsReferenceLine/ChartsYReferenceLine.js +1 -1
  162. package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +6 -7
  163. package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +2 -2
  164. package/legacy/ChartsTooltip/DefaultChartsAxisTooltipContent.js +8 -5
  165. package/legacy/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -1
  166. package/legacy/ChartsTooltip/utils.js +12 -0
  167. package/legacy/ChartsVoronoiHandler/ChartsVoronoiHandler.js +88 -44
  168. package/legacy/ChartsXAxis/ChartsXAxis.js +12 -8
  169. package/legacy/ChartsYAxis/ChartsYAxis.js +1 -1
  170. package/legacy/LineChart/AnimatedArea.js +102 -0
  171. package/legacy/LineChart/AnimatedLine.js +104 -0
  172. package/legacy/LineChart/AreaElement.js +15 -35
  173. package/legacy/LineChart/AreaPlot.js +102 -66
  174. package/legacy/LineChart/LineChart.js +45 -14
  175. package/legacy/LineChart/LineElement.js +15 -37
  176. package/legacy/LineChart/LineHighlightElement.js +5 -3
  177. package/legacy/LineChart/LinePlot.js +97 -63
  178. package/legacy/LineChart/MarkElement.js +30 -12
  179. package/legacy/LineChart/MarkPlot.js +83 -53
  180. package/legacy/LineChart/formatter.js +1 -1
  181. package/legacy/LineChart/index.js +2 -0
  182. package/legacy/PieChart/PieArc.js +1 -0
  183. package/legacy/PieChart/PieArcLabel.js +1 -0
  184. package/legacy/PieChart/PieArcLabelPlot.js +2 -2
  185. package/legacy/PieChart/PieArcPlot.js +7 -7
  186. package/legacy/PieChart/PieChart.js +14 -12
  187. package/legacy/PieChart/PiePlot.js +4 -4
  188. package/legacy/ResponsiveChartContainer/ResponsiveChartContainer.js +6 -4
  189. package/legacy/ScatterChart/Scatter.js +19 -3
  190. package/legacy/ScatterChart/ScatterChart.js +21 -10
  191. package/legacy/ScatterChart/ScatterPlot.js +10 -2
  192. package/legacy/SparkLineChart/SparkLineChart.js +8 -5
  193. package/legacy/context/CartesianContextProvider.js +8 -6
  194. package/legacy/context/DrawingProvider.js +11 -2
  195. package/legacy/hooks/useDrawingArea.js +7 -3
  196. package/legacy/index.js +2 -1
  197. package/legacy/internals/geometry.js +1 -1
  198. package/legacy/internals/useAnimatedPath.js +32 -0
  199. package/legacy/internals/utils.js +7 -0
  200. package/models/axis.d.ts +7 -2
  201. package/models/seriesType/common.d.ts +2 -1
  202. package/models/seriesType/config.d.ts +7 -12
  203. package/models/seriesType/line.d.ts +2 -2
  204. package/models/seriesType/pie.d.ts +7 -3
  205. package/models/seriesType/scatter.d.ts +5 -2
  206. package/modern/BarChart/BarChart.js +33 -12
  207. package/modern/BarChart/BarElement.js +7 -3
  208. package/modern/BarChart/BarPlot.js +27 -15
  209. package/modern/BarChart/formatter.js +1 -1
  210. package/modern/ChartContainer/ChartContainer.js +6 -4
  211. package/modern/ChartsAxis/ChartsAxis.js +4 -4
  212. package/modern/ChartsLegend/ChartsLegend.js +2 -307
  213. package/modern/ChartsLegend/DefaultChartsLegend.js +286 -0
  214. package/modern/ChartsLegend/index.js +1 -0
  215. package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +75 -0
  216. package/modern/ChartsOnAxisClickHandler/index.js +1 -0
  217. package/modern/ChartsReferenceLine/ChartsReferenceLine.js +2 -2
  218. package/modern/ChartsReferenceLine/ChartsXReferenceLine.js +1 -1
  219. package/modern/ChartsReferenceLine/ChartsYReferenceLine.js +1 -1
  220. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +6 -5
  221. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +2 -2
  222. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +7 -5
  223. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -1
  224. package/modern/ChartsTooltip/utils.js +12 -0
  225. package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +92 -44
  226. package/modern/ChartsXAxis/ChartsXAxis.js +13 -9
  227. package/modern/ChartsYAxis/ChartsYAxis.js +1 -1
  228. package/modern/LineChart/AnimatedArea.js +103 -0
  229. package/modern/LineChart/AnimatedLine.js +105 -0
  230. package/modern/LineChart/AreaElement.js +16 -33
  231. package/modern/LineChart/AreaPlot.js +91 -58
  232. package/modern/LineChart/LineChart.js +45 -14
  233. package/modern/LineChart/LineElement.js +16 -35
  234. package/modern/LineChart/LineHighlightElement.js +5 -3
  235. package/modern/LineChart/LinePlot.js +89 -56
  236. package/modern/LineChart/MarkElement.js +27 -13
  237. package/modern/LineChart/MarkPlot.js +80 -51
  238. package/modern/LineChart/formatter.js +1 -1
  239. package/modern/LineChart/index.js +2 -0
  240. package/modern/PieChart/PieArc.js +1 -0
  241. package/modern/PieChart/PieArcLabel.js +1 -0
  242. package/modern/PieChart/PieArcLabelPlot.js +2 -2
  243. package/modern/PieChart/PieArcPlot.js +7 -7
  244. package/modern/PieChart/PieChart.js +14 -12
  245. package/modern/PieChart/PiePlot.js +4 -4
  246. package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +6 -4
  247. package/modern/ScatterChart/Scatter.js +17 -3
  248. package/modern/ScatterChart/ScatterChart.js +21 -10
  249. package/modern/ScatterChart/ScatterPlot.js +10 -2
  250. package/modern/SparkLineChart/SparkLineChart.js +7 -4
  251. package/modern/context/CartesianContextProvider.js +8 -6
  252. package/modern/context/DrawingProvider.js +9 -2
  253. package/modern/hooks/useDrawingArea.js +7 -3
  254. package/modern/index.js +2 -1
  255. package/modern/internals/geometry.js +1 -1
  256. package/modern/internals/useAnimatedPath.js +29 -0
  257. package/modern/internals/utils.js +7 -0
  258. package/package.json +6 -5
@@ -5,7 +5,7 @@ export interface PiePlotSlots extends PieArcPlotSlots, PieArcLabelPlotSlots {
5
5
  }
6
6
  export interface PiePlotSlotProps extends PieArcPlotSlotProps, PieArcLabelPlotSlotProps {
7
7
  }
8
- export interface PiePlotProps extends Pick<PieArcPlotProps, 'skipAnimation' | 'onClick'> {
8
+ export interface PiePlotProps extends Pick<PieArcPlotProps, 'skipAnimation' | 'onItemClick'> {
9
9
  /**
10
10
  * Overridable component slots.
11
11
  * @default {}
@@ -30,7 +30,7 @@ function PiePlot(props) {
30
30
  skipAnimation,
31
31
  slots,
32
32
  slotProps,
33
- onClick
33
+ onItemClick
34
34
  } = props;
35
35
  const seriesData = React.useContext(_SeriesContextProvider.SeriesContext).pie;
36
36
  const {
@@ -78,7 +78,7 @@ function PiePlot(props) {
78
78
  highlightScope: highlightScope,
79
79
  highlighted: highlighted,
80
80
  faded: faded,
81
- onClick: onClick,
81
+ onItemClick: onItemClick,
82
82
  slots: slots,
83
83
  slotProps: slotProps
84
84
  })
@@ -132,9 +132,9 @@ process.env.NODE_ENV !== "production" ? PiePlot.propTypes = {
132
132
  * @param {PieItemIdentifier} pieItemIdentifier The pie item identifier.
133
133
  * @param {DefaultizedPieValueType} item The pie item.
134
134
  */
135
- onClick: _propTypes.default.func,
135
+ onItemClick: _propTypes.default.func,
136
136
  /**
137
- * If `true`, animations are skiped.
137
+ * If `true`, animations are skipped.
138
138
  * @default false
139
139
  */
140
140
  skipAnimation: _propTypes.default.bool,
@@ -184,7 +184,7 @@ process.env.NODE_ENV !== "production" ? ResponsiveChartContainer.propTypes = {
184
184
  * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
185
185
  */
186
186
  xAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
187
- axisId: _propTypes.default.string,
187
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
188
188
  classes: _propTypes.default.object,
189
189
  data: _propTypes.default.array,
190
190
  dataKey: _propTypes.default.string,
@@ -192,13 +192,14 @@ process.env.NODE_ENV !== "production" ? ResponsiveChartContainer.propTypes = {
192
192
  disableTicks: _propTypes.default.bool,
193
193
  fill: _propTypes.default.string,
194
194
  hideTooltip: _propTypes.default.bool,
195
- id: _propTypes.default.string,
195
+ id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
196
196
  label: _propTypes.default.string,
197
197
  labelFontSize: _propTypes.default.number,
198
198
  labelStyle: _propTypes.default.object,
199
199
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
200
200
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
201
201
  position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
202
+ reverse: _propTypes.default.bool,
202
203
  scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
203
204
  slotProps: _propTypes.default.object,
204
205
  slots: _propTypes.default.object,
@@ -218,7 +219,7 @@ process.env.NODE_ENV !== "production" ? ResponsiveChartContainer.propTypes = {
218
219
  * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
219
220
  */
220
221
  yAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
221
- axisId: _propTypes.default.string,
222
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
222
223
  classes: _propTypes.default.object,
223
224
  data: _propTypes.default.array,
224
225
  dataKey: _propTypes.default.string,
@@ -226,13 +227,14 @@ process.env.NODE_ENV !== "production" ? ResponsiveChartContainer.propTypes = {
226
227
  disableTicks: _propTypes.default.bool,
227
228
  fill: _propTypes.default.string,
228
229
  hideTooltip: _propTypes.default.bool,
229
- id: _propTypes.default.string,
230
+ id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
230
231
  label: _propTypes.default.string,
231
232
  labelFontSize: _propTypes.default.number,
232
233
  labelStyle: _propTypes.default.object,
233
234
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
234
235
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
235
236
  position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
237
+ reverse: _propTypes.default.bool,
236
238
  scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
237
239
  slotProps: _propTypes.default.object,
238
240
  slots: _propTypes.default.object,
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { DefaultizedScatterSeriesType } from '../models/seriesType/scatter';
2
+ import { DefaultizedScatterSeriesType, ScatterItemIdentifier } from '../models/seriesType/scatter';
3
3
  import { D3Scale } from '../models/axis';
4
4
  export interface ScatterProps {
5
5
  series: DefaultizedScatterSeriesType;
@@ -7,6 +7,12 @@ export interface ScatterProps {
7
7
  yScale: D3Scale;
8
8
  markerSize: number;
9
9
  color: string;
10
+ /**
11
+ * Callback fired when clicking on a scatter item.
12
+ * @param {MouseEvent} event Mouse event recorded on the `<svg/>` element.
13
+ * @param {ScatterItemIdentifier} scatterItemIdentifier The scatter item identifier.
14
+ */
15
+ onItemClick?: (event: React.MouseEvent<SVGElement, MouseEvent>, scatterItemIdentifier: ScatterItemIdentifier) => void;
10
16
  }
11
17
  /**
12
18
  * Demos:
@@ -30,7 +30,8 @@ function Scatter(props) {
30
30
  xScale,
31
31
  yScale,
32
32
  color,
33
- markerSize
33
+ markerSize,
34
+ onItemClick
34
35
  } = props;
35
36
  const highlightScope = React.useMemo(() => (0, _extends2.default)({
36
37
  highlighted: 'item',
@@ -70,7 +71,8 @@ function Scatter(props) {
70
71
  isHighlighted,
71
72
  isFaded: !isHighlighted && (0, _useInteractionItemProps.getIsFaded)(item, pointCtx, highlightScope),
72
73
  interactionProps: getInteractionItemProps(pointCtx),
73
- id: scatterPoint.id
74
+ id: scatterPoint.id,
75
+ dataIndex: i
74
76
  });
75
77
  }
76
78
  }
@@ -83,7 +85,13 @@ function Scatter(props) {
83
85
  r: (dataPoint.isHighlighted ? 1.2 : 1) * markerSize,
84
86
  transform: `translate(${dataPoint.x}, ${dataPoint.y})`,
85
87
  fill: color,
86
- opacity: dataPoint.isFaded && 0.3 || 1
88
+ opacity: dataPoint.isFaded && 0.3 || 1,
89
+ onClick: onItemClick && (event => onItemClick(event, {
90
+ type: 'scatter',
91
+ seriesId: series.id,
92
+ dataIndex: dataPoint.dataIndex
93
+ })),
94
+ cursor: onItemClick ? 'pointer' : 'unset'
87
95
  }, dataPoint.interactionProps), dataPoint.id))
88
96
  });
89
97
  }
@@ -94,6 +102,12 @@ process.env.NODE_ENV !== "production" ? Scatter.propTypes = {
94
102
  // ----------------------------------------------------------------------
95
103
  color: _propTypes.default.string.isRequired,
96
104
  markerSize: _propTypes.default.number.isRequired,
105
+ /**
106
+ * Callback fired when clicking on a scatter item.
107
+ * @param {MouseEvent} event Mouse event recorded on the `<svg/>` element.
108
+ * @param {ScatterItemIdentifier} scatterItemIdentifier The scatter item identifier.
109
+ */
110
+ onItemClick: _propTypes.default.func,
97
111
  series: _propTypes.default.object.isRequired,
98
112
  xScale: _propTypes.default.func.isRequired,
99
113
  yScale: _propTypes.default.func.isRequired
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { ScatterPlotSlotProps, ScatterPlotSlots } from './ScatterPlot';
2
+ import { ScatterPlotProps, ScatterPlotSlotProps, ScatterPlotSlots } from './ScatterPlot';
3
3
  import { ResponsiveChartContainerProps } from '../ResponsiveChartContainer';
4
4
  import { ChartsAxisProps } from '../ChartsAxis';
5
5
  import { ScatterSeriesType } from '../models/seriesType/scatter';
@@ -13,7 +13,7 @@ export interface ScatterChartSlots extends ChartsAxisSlots, ScatterPlotSlots, Ch
13
13
  }
14
14
  export interface ScatterChartSlotProps extends ChartsAxisSlotProps, ScatterPlotSlotProps, ChartsLegendSlotProps, ChartsTooltipSlotProps {
15
15
  }
16
- export interface ScatterChartProps extends Omit<ResponsiveChartContainerProps, 'series'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'>, ChartsVoronoiHandlerProps {
16
+ export interface ScatterChartProps extends Omit<ResponsiveChartContainerProps, 'series'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'>, Omit<ChartsVoronoiHandlerProps, 'onItemClick'> {
17
17
  series: MakeOptional<ScatterSeriesType, 'type'>[];
18
18
  tooltip?: ChartsTooltipProps;
19
19
  axisHighlight?: ChartsAxisHighlightProps;
@@ -36,6 +36,12 @@ export interface ScatterChartProps extends Omit<ResponsiveChartContainerProps, '
36
36
  * @default {}
37
37
  */
38
38
  slotProps?: ScatterChartSlotProps;
39
+ /**
40
+ * Callback fired when clicking on a scatter item.
41
+ * @param {MouseEvent} event The mouse event recorded on the `<svg/>` element if using Voronoi cells. Or the Mouse event from the scatter element, when `disableVoronoi=true`.
42
+ * @param {ScatterItemIdentifier} scatterItemIdentifier The scatter item identifier.
43
+ */
44
+ onItemClick?: ScatterPlotProps['onItemClick'] | ChartsVoronoiHandlerProps['onItemClick'];
39
45
  }
40
46
  /**
41
47
  * Demos:
@@ -47,6 +47,7 @@ const ScatterChart = exports.ScatterChart = /*#__PURE__*/React.forwardRef(functi
47
47
  leftAxis,
48
48
  rightAxis,
49
49
  bottomAxis,
50
+ onItemClick,
50
51
  children,
51
52
  slots,
52
53
  slotProps
@@ -64,7 +65,8 @@ const ScatterChart = exports.ScatterChart = /*#__PURE__*/React.forwardRef(functi
64
65
  yAxis: yAxis,
65
66
  sx: sx,
66
67
  children: [!disableVoronoi && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsVoronoiHandler.ChartsVoronoiHandler, {
67
- voronoiMaxRadius: voronoiMaxRadius
68
+ voronoiMaxRadius: voronoiMaxRadius,
69
+ onItemClick: onItemClick
68
70
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxis.ChartsAxis, {
69
71
  topAxis: topAxis,
70
72
  leftAxis: leftAxis,
@@ -74,7 +76,8 @@ const ScatterChart = exports.ScatterChart = /*#__PURE__*/React.forwardRef(functi
74
76
  slotProps: slotProps
75
77
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScatterPlot.ScatterPlot, {
76
78
  slots: slots,
77
- slotProps: slotProps
79
+ slotProps: slotProps,
80
+ onItemClick: disableVoronoi ? onItemClick : undefined
78
81
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsLegend.ChartsLegend, (0, _extends2.default)({}, legend, {
79
82
  slots: slots,
80
83
  slotProps: slotProps
@@ -101,7 +104,7 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
101
104
  * @default xAxisIds[0] The id of the first provided axis
102
105
  */
103
106
  bottomAxis: _propTypes.default.oneOfType([_propTypes.default.shape({
104
- axisId: _propTypes.default.string,
107
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
105
108
  classes: _propTypes.default.object,
106
109
  disableLine: _propTypes.default.bool,
107
110
  disableTicks: _propTypes.default.bool,
@@ -156,7 +159,7 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
156
159
  * @default yAxisIds[0] The id of the first provided axis
157
160
  */
158
161
  leftAxis: _propTypes.default.oneOfType([_propTypes.default.shape({
159
- axisId: _propTypes.default.string,
162
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
160
163
  classes: _propTypes.default.object,
161
164
  disableLine: _propTypes.default.bool,
162
165
  disableTicks: _propTypes.default.bool,
@@ -203,13 +206,19 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
203
206
  right: _propTypes.default.number,
204
207
  top: _propTypes.default.number
205
208
  }),
209
+ /**
210
+ * Callback fired when clicking on a scatter item.
211
+ * @param {MouseEvent} event The mouse event recorded on the `<svg/>` element if using Voronoi cells. Or the Mouse event from the scatter element, when `disableVoronoi=true`.
212
+ * @param {ScatterItemIdentifier} scatterItemIdentifier The scatter item identifier.
213
+ */
214
+ onItemClick: _propTypes.default.func,
206
215
  /**
207
216
  * Indicate which axis to display the right of the charts.
208
217
  * Can be a string (the id of the axis) or an object `ChartsYAxisProps`.
209
218
  * @default null
210
219
  */
211
220
  rightAxis: _propTypes.default.oneOfType([_propTypes.default.shape({
212
- axisId: _propTypes.default.string,
221
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
213
222
  classes: _propTypes.default.object,
214
223
  disableLine: _propTypes.default.bool,
215
224
  disableTicks: _propTypes.default.bool,
@@ -257,7 +266,7 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
257
266
  * @default null
258
267
  */
259
268
  topAxis: _propTypes.default.oneOfType([_propTypes.default.shape({
260
- axisId: _propTypes.default.string,
269
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
261
270
  classes: _propTypes.default.object,
262
271
  disableLine: _propTypes.default.bool,
263
272
  disableTicks: _propTypes.default.bool,
@@ -300,7 +309,7 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
300
309
  * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
301
310
  */
302
311
  xAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
303
- axisId: _propTypes.default.string,
312
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
304
313
  classes: _propTypes.default.object,
305
314
  data: _propTypes.default.array,
306
315
  dataKey: _propTypes.default.string,
@@ -308,13 +317,14 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
308
317
  disableTicks: _propTypes.default.bool,
309
318
  fill: _propTypes.default.string,
310
319
  hideTooltip: _propTypes.default.bool,
311
- id: _propTypes.default.string,
320
+ id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
312
321
  label: _propTypes.default.string,
313
322
  labelFontSize: _propTypes.default.number,
314
323
  labelStyle: _propTypes.default.object,
315
324
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
316
325
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
317
326
  position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
327
+ reverse: _propTypes.default.bool,
318
328
  scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
319
329
  slotProps: _propTypes.default.object,
320
330
  slots: _propTypes.default.object,
@@ -334,7 +344,7 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
334
344
  * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
335
345
  */
336
346
  yAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
337
- axisId: _propTypes.default.string,
347
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
338
348
  classes: _propTypes.default.object,
339
349
  data: _propTypes.default.array,
340
350
  dataKey: _propTypes.default.string,
@@ -342,13 +352,14 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
342
352
  disableTicks: _propTypes.default.bool,
343
353
  fill: _propTypes.default.string,
344
354
  hideTooltip: _propTypes.default.bool,
345
- id: _propTypes.default.string,
355
+ id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
346
356
  label: _propTypes.default.string,
347
357
  labelFontSize: _propTypes.default.number,
348
358
  labelStyle: _propTypes.default.object,
349
359
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
350
360
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
351
361
  position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
362
+ reverse: _propTypes.default.bool,
352
363
  scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
353
364
  slotProps: _propTypes.default.object,
354
365
  slots: _propTypes.default.object,
@@ -6,7 +6,7 @@ export interface ScatterPlotSlots {
6
6
  export interface ScatterPlotSlotProps {
7
7
  scatter?: Partial<ScatterProps>;
8
8
  }
9
- export interface ScatterPlotProps {
9
+ export interface ScatterPlotProps extends Pick<ScatterProps, 'onItemClick'> {
10
10
  /**
11
11
  * Overridable component slots.
12
12
  * @default {}
@@ -27,7 +27,8 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
27
27
  function ScatterPlot(props) {
28
28
  const {
29
29
  slots,
30
- slotProps
30
+ slotProps,
31
+ onItemClick
31
32
  } = props;
32
33
  const seriesData = React.useContext(_SeriesContextProvider.SeriesContext).scatter;
33
34
  const axisData = React.useContext(_CartesianContextProvider.CartesianContext);
@@ -63,7 +64,8 @@ function ScatterPlot(props) {
63
64
  yScale: yScale,
64
65
  color: color,
65
66
  markerSize: markerSize ?? 4,
66
- series: series[seriesId]
67
+ series: series[seriesId],
68
+ onItemClick: onItemClick
67
69
  }, slotProps?.scatter), id);
68
70
  })
69
71
  });
@@ -73,6 +75,12 @@ process.env.NODE_ENV !== "production" ? ScatterPlot.propTypes = {
73
75
  // | These PropTypes are generated from the TypeScript type definitions |
74
76
  // | To update them edit the TypeScript types and run "yarn proptypes" |
75
77
  // ----------------------------------------------------------------------
78
+ /**
79
+ * Callback fired when clicking on a scatter item.
80
+ * @param {MouseEvent} event Mouse event recorded on the `<svg/>` element.
81
+ * @param {ScatterItemIdentifier} scatterItemIdentifier The scatter item identifier.
82
+ */
83
+ onItemClick: _propTypes.default.func,
76
84
  /**
77
85
  * The props used for each component slot.
78
86
  * @default {}
@@ -36,7 +36,7 @@ export interface SparkLineChartProps extends Omit<ResponsiveChartContainerProps,
36
36
  * Formatter used by the tooltip.
37
37
  * @param {number} value The value to format.
38
38
  * @returns {string} the formatted value.
39
- * @default (v: number | null) => (v === null ? '' : v.toString())
39
+ * @default (value: number | null) => (value === null ? '' : value.toString())
40
40
  */
41
41
  valueFormatter?: (value: number | null) => string;
42
42
  /**
@@ -50,7 +50,7 @@ const SparkLineChart = exports.SparkLineChart = /*#__PURE__*/React.forwardRef(fu
50
50
  slotProps,
51
51
  data,
52
52
  plotType = 'line',
53
- valueFormatter = v => v === null ? '' : v.toString(),
53
+ valueFormatter = value => value === null ? '' : value.toString(),
54
54
  area,
55
55
  curve = 'linear'
56
56
  } = props;
@@ -94,9 +94,11 @@ const SparkLineChart = exports.SparkLineChart = /*#__PURE__*/React.forwardRef(fu
94
94
  }
95
95
  }), plotType === 'line' && /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
96
96
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_LineChart.AreaPlot, {
97
+ skipAnimation: true,
97
98
  slots: slots,
98
99
  slotProps: slotProps
99
100
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_LineChart.LinePlot, {
101
+ skipAnimation: true,
100
102
  slots: slots,
101
103
  slotProps: slotProps
102
104
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_LineChart.LineHighlightPlot, {
@@ -213,7 +215,7 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
213
215
  * Formatter used by the tooltip.
214
216
  * @param {number} value The value to format.
215
217
  * @returns {string} the formatted value.
216
- * @default (v: number | null) => (v === null ? '' : v.toString())
218
+ * @default (value: number | null) => (value === null ? '' : value.toString())
217
219
  */
218
220
  valueFormatter: _propTypes.default.func,
219
221
  viewBox: _propTypes.default.shape({
@@ -232,7 +234,7 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
232
234
  * Notice it is a single configuration object, not an array of configuration.
233
235
  */
234
236
  xAxis: _propTypes.default.shape({
235
- axisId: _propTypes.default.string,
237
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
236
238
  classes: _propTypes.default.object,
237
239
  data: _propTypes.default.array,
238
240
  dataKey: _propTypes.default.string,
@@ -240,13 +242,14 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
240
242
  disableTicks: _propTypes.default.bool,
241
243
  fill: _propTypes.default.string,
242
244
  hideTooltip: _propTypes.default.bool,
243
- id: _propTypes.default.string,
245
+ id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
244
246
  label: _propTypes.default.string,
245
247
  labelFontSize: _propTypes.default.number,
246
248
  labelStyle: _propTypes.default.object,
247
249
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
248
250
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
249
251
  position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
252
+ reverse: _propTypes.default.bool,
250
253
  scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
251
254
  slotProps: _propTypes.default.object,
252
255
  slots: _propTypes.default.object,
@@ -117,7 +117,7 @@ function CartesianContextProvider(props) {
117
117
  allXAxis.forEach((axis, axisIndex) => {
118
118
  const isDefaultAxis = axisIndex === 0;
119
119
  const [minData, maxData] = getAxisExtremum(axis, xExtremumGetters, isDefaultAxis);
120
- const range = [drawingArea.left, drawingArea.left + drawingArea.width];
120
+ const range = axis.reverse ? [drawingArea.left + drawingArea.width, drawingArea.left] : [drawingArea.left, drawingArea.left + drawingArea.width];
121
121
  if ((0, _axis.isBandScaleConfig)(axis)) {
122
122
  const categoryGapRatio = axis.categoryGapRatio ?? DEFAULT_CATEGORY_GAP_RATIO;
123
123
  const barGapRatio = axis.barGapRatio ?? DEFAULT_BAR_GAP_RATIO;
@@ -166,7 +166,7 @@ function CartesianContextProvider(props) {
166
166
  allYAxis.forEach((axis, axisIndex) => {
167
167
  const isDefaultAxis = axisIndex === 0;
168
168
  const [minData, maxData] = getAxisExtremum(axis, yExtremumGetters, isDefaultAxis);
169
- const range = [drawingArea.top + drawingArea.height, drawingArea.top];
169
+ const range = axis.reverse ? [drawingArea.top, drawingArea.top + drawingArea.height] : [drawingArea.top + drawingArea.height, drawingArea.top];
170
170
  if ((0, _axis.isBandScaleConfig)(axis)) {
171
171
  const categoryGapRatio = axis.categoryGapRatio ?? DEFAULT_CATEGORY_GAP_RATIO;
172
172
  completedYAxis[axis.id] = (0, _extends2.default)({
@@ -235,7 +235,7 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
235
235
  * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
236
236
  */
237
237
  xAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
238
- axisId: _propTypes.default.string,
238
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
239
239
  classes: _propTypes.default.object,
240
240
  data: _propTypes.default.array,
241
241
  dataKey: _propTypes.default.string,
@@ -243,13 +243,14 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
243
243
  disableTicks: _propTypes.default.bool,
244
244
  fill: _propTypes.default.string,
245
245
  hideTooltip: _propTypes.default.bool,
246
- id: _propTypes.default.string,
246
+ id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
247
247
  label: _propTypes.default.string,
248
248
  labelFontSize: _propTypes.default.number,
249
249
  labelStyle: _propTypes.default.object,
250
250
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
251
251
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
252
252
  position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
253
+ reverse: _propTypes.default.bool,
253
254
  scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
254
255
  slotProps: _propTypes.default.object,
255
256
  slots: _propTypes.default.object,
@@ -269,7 +270,7 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
269
270
  * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
270
271
  */
271
272
  yAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
272
- axisId: _propTypes.default.string,
273
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
273
274
  classes: _propTypes.default.object,
274
275
  data: _propTypes.default.array,
275
276
  dataKey: _propTypes.default.string,
@@ -277,13 +278,14 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
277
278
  disableTicks: _propTypes.default.bool,
278
279
  fill: _propTypes.default.string,
279
280
  hideTooltip: _propTypes.default.bool,
280
- id: _propTypes.default.string,
281
+ id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
281
282
  label: _propTypes.default.string,
282
283
  labelFontSize: _propTypes.default.number,
283
284
  labelStyle: _propTypes.default.object,
284
285
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
285
286
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
286
287
  position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
288
+ reverse: _propTypes.default.bool,
287
289
  scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
288
290
  slotProps: _propTypes.default.object,
289
291
  slots: _propTypes.default.object,
@@ -33,7 +33,12 @@ export type DrawingArea = {
33
33
  */
34
34
  height: number;
35
35
  };
36
- export declare const DrawingContext: React.Context<DrawingArea>;
36
+ export declare const DrawingContext: React.Context<DrawingArea & {
37
+ /**
38
+ * A random id used to distinguish each chart on the same page.
39
+ */
40
+ chartId: string;
41
+ }>;
37
42
  export declare const SVGContext: React.Context<React.RefObject<SVGSVGElement>>;
38
43
  /**
39
44
  * API:
@@ -7,8 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.DrawingContext = void 0;
8
8
  exports.DrawingProvider = DrawingProvider;
9
9
  exports.SVGContext = void 0;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
11
  var React = _interopRequireWildcard(require("react"));
11
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
12
14
  var _useChartDimensions = _interopRequireDefault(require("../hooks/useChartDimensions"));
13
15
  var _jsxRuntime = require("react/jsx-runtime");
14
16
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
@@ -23,7 +25,8 @@ const DrawingContext = exports.DrawingContext = /*#__PURE__*/React.createContext
23
25
  bottom: 0,
24
26
  right: 0,
25
27
  height: 300,
26
- width: 400
28
+ width: 400,
29
+ chartId: ''
27
30
  });
28
31
  const SVGContext = exports.SVGContext = /*#__PURE__*/React.createContext({
29
32
  current: null
@@ -43,10 +46,14 @@ function DrawingProvider(props) {
43
46
  children
44
47
  } = props;
45
48
  const drawingArea = (0, _useChartDimensions.default)(width, height, margin);
49
+ const chartId = (0, _useId.default)();
50
+ const value = React.useMemo(() => (0, _extends2.default)({
51
+ chartId: chartId ?? ''
52
+ }, drawingArea), [chartId, drawingArea]);
46
53
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(SVGContext.Provider, {
47
54
  value: svgRef,
48
55
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DrawingContext.Provider, {
49
- value: drawingArea,
56
+ value: value,
50
57
  children: children
51
58
  })
52
59
  });
@@ -6,11 +6,11 @@ export interface InteractionProviderProps {
6
6
  export type ItemInteractionData<T extends ChartSeriesType> = ChartItemIdentifier<T>;
7
7
  export type AxisInteractionData = {
8
8
  x: null | {
9
- value: number | Date;
9
+ value: number | Date | string;
10
10
  index?: number;
11
11
  };
12
12
  y: null | {
13
- value: number | Date;
13
+ value: number | Date | string;
14
14
  index?: number;
15
15
  };
16
16
  };
@@ -19,7 +19,7 @@ type InteractionActions<T extends ChartSeriesType = ChartSeriesType> = {
19
19
  data: ItemInteractionData<T>;
20
20
  } | {
21
21
  type: 'leaveItem';
22
- data: ItemInteractionData<T>;
22
+ data: Partial<ItemInteractionData<T>>;
23
23
  } | {
24
24
  type: 'exitChart';
25
25
  } | {