@mui/x-charts 8.5.3 → 8.7.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 (228) hide show
  1. package/BarChart/AnimatedBarElement.js +3 -1
  2. package/BarChart/BarLabel/BarLabelPlot.d.ts +2 -2
  3. package/BarChart/BarLabel/BarLabelPlot.js +33 -25
  4. package/BarChart/BarPlot.js +59 -183
  5. package/BarChart/barClasses.d.ts +12 -0
  6. package/BarChart/barClasses.js +25 -0
  7. package/BarChart/index.d.ts +3 -1
  8. package/BarChart/index.js +23 -1
  9. package/BarChart/types.d.ts +5 -1
  10. package/BarChart/useBarPlotData.d.ts +8 -0
  11. package/BarChart/useBarPlotData.js +146 -0
  12. package/CHANGELOG.md +210 -0
  13. package/ChartContainer/ChartContainer.d.ts +1 -21
  14. package/ChartContainer/ChartContainer.js +0 -8
  15. package/ChartContainer/index.d.ts +8 -1
  16. package/ChartsLegend/ChartsLegend.js +1 -0
  17. package/ChartsReferenceLine/ChartsReferenceLine.d.ts +1 -1
  18. package/ChartsReferenceLine/ChartsXReferenceLine.d.ts +3 -0
  19. package/ChartsReferenceLine/ChartsXReferenceLine.js +48 -1
  20. package/ChartsReferenceLine/ChartsYReferenceLine.d.ts +3 -0
  21. package/ChartsReferenceLine/ChartsYReferenceLine.js +48 -1
  22. package/ChartsReferenceLine/index.d.ts +3 -1
  23. package/ChartsSurface/ChartsSurface.js +2 -1
  24. package/ChartsTooltip/ChartsTooltipContainer.js +6 -3
  25. package/ChartsTooltip/ChartsTooltipTable.d.ts +1 -1
  26. package/ChartsTooltip/utils.js +18 -29
  27. package/ChartsXAxis/ChartsXAxis.js +4 -108
  28. package/ChartsXAxis/getVisibleLabels.d.ts +14 -0
  29. package/ChartsXAxis/getVisibleLabels.js +71 -0
  30. package/ChartsXAxis/shortenLabels.d.ts +4 -0
  31. package/ChartsXAxis/shortenLabels.js +48 -0
  32. package/ChartsYAxis/ChartsYAxis.js +2 -39
  33. package/ChartsYAxis/shortenLabels.d.ts +4 -0
  34. package/ChartsYAxis/shortenLabels.js +46 -0
  35. package/LineChart/AnimatedArea.js +4 -1
  36. package/LineChart/AnimatedLine.js +4 -1
  37. package/LineChart/AreaPlot.js +5 -115
  38. package/LineChart/CircleMarkElement.js +4 -1
  39. package/LineChart/LinePlot.js +5 -99
  40. package/LineChart/MarkElement.js +4 -1
  41. package/LineChart/MarkPlot.js +1 -0
  42. package/LineChart/useAreaPlotData.d.ts +12 -0
  43. package/LineChart/useAreaPlotData.js +125 -0
  44. package/LineChart/useLinePlotData.d.ts +11 -0
  45. package/LineChart/useLinePlotData.js +108 -0
  46. package/PieChart/PieArc.js +3 -1
  47. package/PieChart/PiePlot.js +6 -0
  48. package/PieChart/index.d.ts +3 -1
  49. package/PieChart/index.js +18 -1
  50. package/PieChart/pieClasses.d.ts +12 -0
  51. package/PieChart/pieClasses.js +24 -0
  52. package/ScatterChart/Scatter.js +22 -48
  53. package/ScatterChart/useScatterPlotData.d.ts +8 -0
  54. package/ScatterChart/useScatterPlotData.js +33 -0
  55. package/Toolbar/ToolbarButton.js +2 -0
  56. package/context/ChartApi.d.ts +22 -0
  57. package/context/ChartApi.js +5 -0
  58. package/context/ChartProvider/ChartContext.js +1 -0
  59. package/context/index.d.ts +2 -1
  60. package/context/useChartApiContext.d.ts +1 -1
  61. package/esm/BarChart/AnimatedBarElement.js +3 -1
  62. package/esm/BarChart/BarLabel/BarLabelPlot.d.ts +2 -2
  63. package/esm/BarChart/BarLabel/BarLabelPlot.js +33 -25
  64. package/esm/BarChart/BarPlot.js +60 -185
  65. package/esm/BarChart/barClasses.d.ts +12 -0
  66. package/esm/BarChart/barClasses.js +15 -0
  67. package/esm/BarChart/index.d.ts +3 -1
  68. package/esm/BarChart/index.js +2 -1
  69. package/esm/BarChart/types.d.ts +5 -1
  70. package/esm/BarChart/useBarPlotData.d.ts +8 -0
  71. package/esm/BarChart/useBarPlotData.js +139 -0
  72. package/esm/ChartContainer/ChartContainer.d.ts +1 -21
  73. package/esm/ChartContainer/ChartContainer.js +0 -8
  74. package/esm/ChartContainer/index.d.ts +8 -1
  75. package/esm/ChartContainer/index.js +6 -1
  76. package/esm/ChartsLegend/ChartsLegend.js +1 -0
  77. package/esm/ChartsReferenceLine/ChartsReferenceLine.d.ts +1 -1
  78. package/esm/ChartsReferenceLine/ChartsXReferenceLine.d.ts +3 -0
  79. package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +47 -0
  80. package/esm/ChartsReferenceLine/ChartsYReferenceLine.d.ts +3 -0
  81. package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +47 -0
  82. package/esm/ChartsReferenceLine/index.d.ts +3 -1
  83. package/esm/ChartsReferenceLine/index.js +2 -1
  84. package/esm/ChartsSurface/ChartsSurface.js +2 -1
  85. package/esm/ChartsTooltip/ChartsTooltipContainer.js +6 -3
  86. package/esm/ChartsTooltip/ChartsTooltipTable.d.ts +1 -1
  87. package/esm/ChartsTooltip/utils.js +18 -29
  88. package/esm/ChartsXAxis/ChartsXAxis.js +2 -106
  89. package/esm/ChartsXAxis/getVisibleLabels.d.ts +14 -0
  90. package/esm/ChartsXAxis/getVisibleLabels.js +67 -0
  91. package/esm/ChartsXAxis/shortenLabels.d.ts +4 -0
  92. package/esm/ChartsXAxis/shortenLabels.js +42 -0
  93. package/esm/ChartsYAxis/ChartsYAxis.js +1 -38
  94. package/esm/ChartsYAxis/shortenLabels.d.ts +4 -0
  95. package/esm/ChartsYAxis/shortenLabels.js +41 -0
  96. package/esm/LineChart/AnimatedArea.js +4 -1
  97. package/esm/LineChart/AnimatedLine.js +4 -1
  98. package/esm/LineChart/AreaPlot.js +5 -115
  99. package/esm/LineChart/CircleMarkElement.js +4 -1
  100. package/esm/LineChart/LinePlot.js +5 -99
  101. package/esm/LineChart/MarkElement.js +4 -1
  102. package/esm/LineChart/MarkPlot.js +1 -0
  103. package/esm/LineChart/useAreaPlotData.d.ts +12 -0
  104. package/esm/LineChart/useAreaPlotData.js +118 -0
  105. package/esm/LineChart/useLinePlotData.d.ts +11 -0
  106. package/esm/LineChart/useLinePlotData.js +101 -0
  107. package/esm/PieChart/PieArc.js +3 -1
  108. package/esm/PieChart/PiePlot.js +6 -0
  109. package/esm/PieChart/index.d.ts +3 -1
  110. package/esm/PieChart/index.js +2 -1
  111. package/esm/PieChart/pieClasses.d.ts +12 -0
  112. package/esm/PieChart/pieClasses.js +15 -0
  113. package/esm/ScatterChart/Scatter.js +23 -49
  114. package/esm/ScatterChart/useScatterPlotData.d.ts +8 -0
  115. package/esm/ScatterChart/useScatterPlotData.js +26 -0
  116. package/esm/Toolbar/ToolbarButton.js +2 -0
  117. package/esm/context/ChartApi.d.ts +22 -0
  118. package/esm/context/ChartApi.js +1 -0
  119. package/esm/context/ChartProvider/ChartContext.js +2 -0
  120. package/esm/context/index.d.ts +2 -1
  121. package/esm/context/useChartApiContext.d.ts +1 -1
  122. package/esm/hooks/useInteractionItemProps.d.ts +14 -9
  123. package/esm/hooks/useInteractionItemProps.js +28 -28
  124. package/esm/index.d.ts +2 -1
  125. package/esm/index.js +2 -2
  126. package/esm/internals/components/NotRendered.d.ts +9 -0
  127. package/esm/internals/components/NotRendered.js +10 -0
  128. package/esm/internals/index.d.ts +6 -0
  129. package/esm/internals/index.js +6 -0
  130. package/esm/internals/plugins/corePlugins/corePlugins.d.ts +3 -2
  131. package/esm/internals/plugins/corePlugins/corePlugins.js +2 -1
  132. package/esm/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.d.ts +1 -1
  133. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.js +1 -1
  134. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +3 -3
  135. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.d.ts +2 -2
  136. package/esm/internals/plugins/corePlugins/useChartId/useChartId.js +2 -0
  137. package/esm/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +1 -1
  138. package/esm/internals/plugins/corePlugins/useChartInteractionListener/index.d.ts +2 -0
  139. package/esm/internals/plugins/corePlugins/useChartInteractionListener/index.js +1 -0
  140. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.d.ts +3 -0
  141. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.js +77 -0
  142. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.d.ts +31 -0
  143. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.js +1 -0
  144. package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +2 -2
  145. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +4 -4
  146. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +44 -33
  147. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +5 -5
  148. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +7 -7
  149. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +5 -5
  150. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +6 -6
  151. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +52 -36
  152. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +5 -5
  153. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +6 -6
  154. package/esm/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.js +47 -30
  155. package/esm/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.d.ts +1 -1
  156. package/esm/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +1 -1
  157. package/esm/internals/store/useCharts.d.ts +1 -1
  158. package/esm/locales/elGR.d.ts +19 -0
  159. package/esm/locales/elGR.js +15 -0
  160. package/esm/locales/enUS.d.ts +3 -0
  161. package/esm/locales/enUS.js +8 -2
  162. package/esm/locales/frFR.d.ts +3 -0
  163. package/esm/locales/frFR.js +7 -0
  164. package/esm/locales/index.d.ts +1 -0
  165. package/esm/locales/index.js +1 -0
  166. package/esm/locales/ptBR.d.ts +3 -0
  167. package/esm/locales/ptBR.js +7 -1
  168. package/esm/locales/ptPT.d.ts +3 -0
  169. package/esm/locales/ptPT.js +7 -1
  170. package/esm/locales/utils/chartsLocaleTextApi.d.ts +17 -0
  171. package/esm/locales/utils/getChartsLocalization.d.ts +3 -0
  172. package/esm/locales/utils/imageMimeTypes.d.ts +2 -0
  173. package/esm/locales/utils/imageMimeTypes.js +5 -0
  174. package/esm/models/slots/chartsBaseSlotProps.d.ts +4 -0
  175. package/hooks/useInteractionItemProps.d.ts +14 -9
  176. package/hooks/useInteractionItemProps.js +29 -28
  177. package/index.d.ts +2 -1
  178. package/index.js +37 -11
  179. package/internals/components/NotRendered.d.ts +9 -0
  180. package/internals/components/NotRendered.js +16 -0
  181. package/internals/index.d.ts +6 -0
  182. package/internals/index.js +56 -0
  183. package/internals/plugins/corePlugins/corePlugins.d.ts +3 -2
  184. package/internals/plugins/corePlugins/corePlugins.js +2 -1
  185. package/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.d.ts +1 -1
  186. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.js +1 -1
  187. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +3 -3
  188. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.d.ts +2 -2
  189. package/internals/plugins/corePlugins/useChartId/useChartId.js +1 -0
  190. package/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +1 -1
  191. package/internals/plugins/corePlugins/useChartInteractionListener/index.d.ts +2 -0
  192. package/internals/plugins/corePlugins/useChartInteractionListener/index.js +12 -0
  193. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.d.ts +3 -0
  194. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.js +84 -0
  195. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.d.ts +31 -0
  196. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.js +5 -0
  197. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +2 -2
  198. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +4 -4
  199. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +44 -33
  200. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +5 -5
  201. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +7 -7
  202. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +5 -5
  203. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +6 -6
  204. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +52 -36
  205. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +5 -5
  206. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +6 -6
  207. package/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.js +46 -30
  208. package/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.d.ts +1 -1
  209. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +1 -1
  210. package/internals/store/useCharts.d.ts +1 -1
  211. package/locales/elGR.d.ts +19 -0
  212. package/locales/elGR.js +21 -0
  213. package/locales/enUS.d.ts +3 -0
  214. package/locales/enUS.js +8 -2
  215. package/locales/frFR.d.ts +3 -0
  216. package/locales/frFR.js +7 -0
  217. package/locales/index.d.ts +1 -0
  218. package/locales/index.js +11 -0
  219. package/locales/ptBR.d.ts +3 -0
  220. package/locales/ptBR.js +7 -1
  221. package/locales/ptPT.d.ts +3 -0
  222. package/locales/ptPT.js +7 -1
  223. package/locales/utils/chartsLocaleTextApi.d.ts +17 -0
  224. package/locales/utils/getChartsLocalization.d.ts +3 -0
  225. package/locales/utils/imageMimeTypes.d.ts +2 -0
  226. package/locales/utils/imageMimeTypes.js +11 -0
  227. package/models/slots/chartsBaseSlotProps.d.ts +4 -0
  228. package/package.json +3 -2
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
@@ -130,12 +132,28 @@ export const useChartVoronoi = ({
130
132
  dataIndex
131
133
  };
132
134
  }
133
- const handleMouseLeave = () => {
134
- instance.cleanInteraction?.();
135
- instance.clearHighlight?.();
136
- };
137
- const handleMouseMove = event => {
138
- const closestPoint = getClosestPoint(event);
135
+
136
+ // Clean the interaction when the mouse leaves the chart.
137
+ const moveEndHandler = instance.addInteractionListener('moveEnd', event => {
138
+ if (!event.detail.activeGestures.pan) {
139
+ instance.cleanInteraction?.();
140
+ instance.clearHighlight?.();
141
+ }
142
+ });
143
+ const panEndHandler = instance.addInteractionListener('panEnd', event => {
144
+ if (!event.detail.activeGestures.move) {
145
+ instance.cleanInteraction?.();
146
+ instance.clearHighlight?.();
147
+ }
148
+ });
149
+ const pressEndHandler = instance.addInteractionListener('quickPressEnd', event => {
150
+ if (!event.detail.activeGestures.move && !event.detail.activeGestures.pan) {
151
+ instance.cleanInteraction?.();
152
+ instance.clearHighlight?.();
153
+ }
154
+ });
155
+ const gestureHandler = event => {
156
+ const closestPoint = getClosestPoint(event.detail.srcEvent);
139
157
  if (closestPoint === 'outside-chart') {
140
158
  instance.cleanInteraction?.();
141
159
  instance.clearHighlight?.();
@@ -160,32 +178,31 @@ export const useChartVoronoi = ({
160
178
  dataIndex
161
179
  });
162
180
  };
163
- const handleMouseClick = event => {
164
- if (!onItemClick) {
165
- return;
166
- }
167
- const closestPoint = getClosestPoint(event);
168
- if (typeof closestPoint === 'string') {
169
- // No point fond for any reason
170
- return;
181
+ const tapHandler = instance.addInteractionListener('tap', event => {
182
+ const closestPoint = getClosestPoint(event.detail.srcEvent);
183
+ if (typeof closestPoint !== 'string' && onItemClick) {
184
+ const {
185
+ seriesId,
186
+ dataIndex
187
+ } = closestPoint;
188
+ onItemClick(event.detail.srcEvent, {
189
+ type: 'scatter',
190
+ seriesId,
191
+ dataIndex
192
+ });
171
193
  }
172
- const {
173
- seriesId,
174
- dataIndex
175
- } = closestPoint;
176
- onItemClick(event, {
177
- type: 'scatter',
178
- seriesId,
179
- dataIndex
180
- });
181
- };
182
- element.addEventListener('pointerleave', handleMouseLeave);
183
- element.addEventListener('pointermove', handleMouseMove);
184
- element.addEventListener('click', handleMouseClick);
194
+ });
195
+ const moveHandler = instance.addInteractionListener('move', gestureHandler);
196
+ const panHandler = instance.addInteractionListener('pan', gestureHandler);
197
+ const pressHandler = instance.addInteractionListener('quickPress', gestureHandler);
185
198
  return () => {
186
- element.removeEventListener('pointerleave', handleMouseLeave);
187
- element.removeEventListener('pointermove', handleMouseMove);
188
- element.removeEventListener('click', handleMouseClick);
199
+ tapHandler.cleanup();
200
+ moveHandler.cleanup();
201
+ moveEndHandler.cleanup();
202
+ panHandler.cleanup();
203
+ panEndHandler.cleanup();
204
+ pressHandler.cleanup();
205
+ pressEndHandler.cleanup();
189
206
  };
190
207
  }, [svgRef, yAxis, xAxis, voronoiMaxRadius, onItemClick, disableVoronoi, drawingArea, instance]);
191
208
 
@@ -1,4 +1,4 @@
1
- export declare const selectorChartsVoronoiIsVoronoiEnabled: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("./useChartVoronoi.types.js").UseChartVoronoiState & Partial<{}> & {
1
+ export declare const selectorChartsVoronoiIsVoronoiEnabled: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & import("./useChartVoronoi.types.js").UseChartVoronoiState & Partial<{}> & {
2
2
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
3
3
  } & {
4
4
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -1,4 +1,4 @@
1
- export declare const selectorChartZAxis: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("./useChartZAxis.types.js").UseChartZAxisState & Partial<{}> & {
1
+ export declare const selectorChartZAxis: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & import("./useChartZAxis.types.js").UseChartZAxisState & Partial<{}> & {
2
2
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
3
3
  } & {
4
4
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -16,7 +16,7 @@ import { ChartSeriesConfig } from "../plugins/models/seriesConfig/index.js";
16
16
  */
17
17
  export declare function useCharts<TSeriesType extends ChartSeriesType, TSignatures extends readonly ChartAnyPluginSignature[]>(inPlugins: ConvertSignaturesIntoPlugins<TSignatures>, props: Partial<UseChartBaseProps<TSignatures>>, seriesConfig: ChartSeriesConfig<TSeriesType>): {
18
18
  contextValue: {
19
- store: ChartStore<readonly [import("../index.js").UseChartIdSignature, import("../index.js").UseChartDimensionsSignature, import("../index.js").UseChartSeriesSignature, import("../plugins/corePlugins/useChartAnimation/index.js").UseChartAnimationSignature, ...TSignatures]> & UseChartInteractionState;
19
+ store: ChartStore<readonly [import("../index.js").UseChartIdSignature, import("../index.js").UseChartDimensionsSignature, import("../index.js").UseChartSeriesSignature, import("../plugins/corePlugins/useChartAnimation/index.js").UseChartAnimationSignature, import("../index.js").UseChartInteractionListenerSignature, ...TSignatures]> & UseChartInteractionState;
20
20
  publicAPI: ChartPublicAPI<TSignatures>;
21
21
  instance: ChartInstance<TSignatures>;
22
22
  svgRef: React.RefObject<SVGSVGElement | null>;
@@ -0,0 +1,19 @@
1
+ import { ChartsLocaleText } from "./utils/chartsLocaleTextApi.js";
2
+ export declare const elGRLocaleText: Partial<ChartsLocaleText>;
3
+ export declare const elGR: {
4
+ components: {
5
+ MuiChartsLocalizationProvider: {
6
+ defaultProps: {
7
+ localeText: {
8
+ loading?: string | undefined;
9
+ noData?: string | undefined;
10
+ zoomIn?: string | undefined;
11
+ zoomOut?: string | undefined;
12
+ toolbarExport?: string | undefined;
13
+ toolbarExportPrint?: string | undefined;
14
+ toolbarExportImage?: ((mimeType: import("./utils/imageMimeTypes.js").ChartImageExportMimeType | (string & {})) => string) | undefined;
15
+ };
16
+ };
17
+ };
18
+ };
19
+ };
@@ -0,0 +1,15 @@
1
+ import { imageMimeTypes } from "./utils/imageMimeTypes.js";
2
+ import { getChartsLocalization } from "./utils/getChartsLocalization.js";
3
+ export const elGRLocaleText = {
4
+ // Overlay
5
+ loading: 'Φόρτωση δεδομένων…',
6
+ noData: 'Δεν υπάρχουν δεδομένα για εμφάνιση',
7
+ // Toolbar
8
+ zoomIn: 'Μεγέθυνση',
9
+ zoomOut: 'Σμίκρυνση',
10
+ toolbarExport: 'Εξαγωγή',
11
+ // Toolbar Export Menu
12
+ toolbarExportPrint: 'Εκτύπωση',
13
+ toolbarExportImage: mimeType => `Εξαγωγή ως ${imageMimeTypes[mimeType] ?? mimeType}`
14
+ };
15
+ export const elGR = getChartsLocalization(elGRLocaleText);
@@ -10,6 +10,9 @@ export declare const enUS: {
10
10
  noData?: string | undefined;
11
11
  zoomIn?: string | undefined;
12
12
  zoomOut?: string | undefined;
13
+ toolbarExport?: string | undefined;
14
+ toolbarExportPrint?: string | undefined;
15
+ toolbarExportImage?: ((mimeType: import("./utils/imageMimeTypes.js").ChartImageExportMimeType | (string & {})) => string) | undefined;
13
16
  };
14
17
  };
15
18
  };
@@ -1,13 +1,19 @@
1
+ import { imageMimeTypes } from "./utils/imageMimeTypes.js";
1
2
  import { getChartsLocalization } from "./utils/getChartsLocalization.js";
2
3
 
3
4
  // This object is not Partial<ChartsLocaleText> because it is the default values
4
5
 
5
6
  export const enUSLocaleText = {
6
- // Overlay
7
+ /* Overlay */
7
8
  loading: 'Loading data…',
8
9
  noData: 'No data to display',
10
+ /* Toolbar */
9
11
  zoomIn: 'Zoom in',
10
- zoomOut: 'Zoom out'
12
+ zoomOut: 'Zoom out',
13
+ toolbarExport: 'Export',
14
+ /* Toolbar Export Menu */
15
+ toolbarExportPrint: 'Print',
16
+ toolbarExportImage: mimeType => `Export as ${imageMimeTypes[mimeType] ?? mimeType}`
11
17
  };
12
18
  export const DEFAULT_LOCALE = enUSLocaleText;
13
19
  export const enUS = getChartsLocalization(enUSLocaleText);
@@ -9,6 +9,9 @@ export declare const frFR: {
9
9
  noData?: string | undefined;
10
10
  zoomIn?: string | undefined;
11
11
  zoomOut?: string | undefined;
12
+ toolbarExport?: string | undefined;
13
+ toolbarExportPrint?: string | undefined;
14
+ toolbarExportImage?: ((mimeType: import("./utils/imageMimeTypes.js").ChartImageExportMimeType | (string & {})) => string) | undefined;
12
15
  };
13
16
  };
14
17
  };
@@ -3,7 +3,14 @@ export const frFRLocalText = {
3
3
  // Overlay
4
4
  loading: 'Chargement…',
5
5
  noData: 'Pas de données'
6
+
7
+ // Toolbar
6
8
  // zoomIn: 'Zoom in',
7
9
  // zoomOut: 'Zoom out',
10
+ // toolbarExport: 'Export',
11
+
12
+ // Toolbar Export Menu
13
+ // toolbarExportPrint: 'Print',
14
+ // toolbarExportImage: mimeType => `Export as ${imageMimeTypes[mimeType] ?? mimeType}`,
8
15
  };
9
16
  export const frFR = getChartsLocalization(frFRLocalText);
@@ -1,4 +1,5 @@
1
1
  export type { ChartsLocaleText } from "./utils/chartsLocaleTextApi.js";
2
+ export * from "./elGR.js";
2
3
  export * from "./enUS.js";
3
4
  export * from "./frFR.js";
4
5
  export * from "./ptBR.js";
@@ -1,3 +1,4 @@
1
+ export * from "./elGR.js";
1
2
  export * from "./enUS.js";
2
3
  export * from "./frFR.js";
3
4
  export * from "./ptBR.js";
@@ -9,6 +9,9 @@ export declare const ptBR: {
9
9
  noData?: string | undefined;
10
10
  zoomIn?: string | undefined;
11
11
  zoomOut?: string | undefined;
12
+ toolbarExport?: string | undefined;
13
+ toolbarExportPrint?: string | undefined;
14
+ toolbarExportImage?: ((mimeType: import("./utils/imageMimeTypes.js").ChartImageExportMimeType | (string & {})) => string) | undefined;
12
15
  };
13
16
  };
14
17
  };
@@ -1,9 +1,15 @@
1
+ import { imageMimeTypes } from "./utils/imageMimeTypes.js";
1
2
  import { getChartsLocalization } from "./utils/getChartsLocalization.js";
2
3
  export const ptBRLocaleText = {
3
4
  // Overlay
4
5
  loading: 'Carregando dados…',
5
6
  noData: 'Sem dados para exibir',
7
+ // Toolbar
6
8
  zoomIn: 'Aumentar zoom',
7
- zoomOut: 'Diminuir zoom'
9
+ zoomOut: 'Diminuir zoom',
10
+ toolbarExport: 'Exportar',
11
+ // Toolbar Export Menu
12
+ toolbarExportPrint: 'Imprimir',
13
+ toolbarExportImage: mimeType => `Exportar como ${imageMimeTypes[mimeType] ?? mimeType}`
8
14
  };
9
15
  export const ptBR = getChartsLocalization(ptBRLocaleText);
@@ -9,6 +9,9 @@ export declare const ptPT: {
9
9
  noData?: string | undefined;
10
10
  zoomIn?: string | undefined;
11
11
  zoomOut?: string | undefined;
12
+ toolbarExport?: string | undefined;
13
+ toolbarExportPrint?: string | undefined;
14
+ toolbarExportImage?: ((mimeType: import("./utils/imageMimeTypes.js").ChartImageExportMimeType | (string & {})) => string) | undefined;
12
15
  };
13
16
  };
14
17
  };
@@ -1,9 +1,15 @@
1
+ import { imageMimeTypes } from "./utils/imageMimeTypes.js";
1
2
  import { getChartsLocalization } from "./utils/getChartsLocalization.js";
2
3
  export const ptPTLocaleText = {
3
4
  // Overlay
4
5
  loading: 'Carregando dados…',
5
6
  noData: 'Sem dados para mostrar',
7
+ // Toolbar
6
8
  zoomIn: 'Aumentar zoom',
7
- zoomOut: 'Diminuir zoom'
9
+ zoomOut: 'Diminuir zoom',
10
+ toolbarExport: 'Exportar',
11
+ // Toolbar Export Menu
12
+ toolbarExportPrint: 'Imprimir',
13
+ toolbarExportImage: mimeType => `Exportar como ${imageMimeTypes[mimeType] ?? mimeType}`
8
14
  };
9
15
  export const ptPT = getChartsLocalization(ptPTLocaleText);
@@ -1,3 +1,4 @@
1
+ import { ChartImageExportMimeType } from "./imageMimeTypes.js";
1
2
  export interface ChartsLocaleText {
2
3
  /**
3
4
  * Title displayed in the overlay if `loading` is `true`.
@@ -15,5 +16,21 @@ export interface ChartsLocaleText {
15
16
  * Tooltip text shown when hovering over the zoom out button.
16
17
  */
17
18
  zoomOut: string;
19
+ /**
20
+ * Text for the export button tooltip in the toolbar.
21
+ */
22
+ toolbarExport: string;
23
+ /**
24
+ * Text for the print button in the toolbar's export menu.
25
+ */
26
+ toolbarExportPrint: string;
27
+ /**
28
+ * Text for an "Export as {image type}" button in the toolbar's export menu.
29
+ * The only format supported in all browsers is 'image/png'.
30
+ *
31
+ * @param {string} mimeType The MIME type of the image to export, e.g., 'image/png'.
32
+ * @returns {string} The localized string for an export image button.
33
+ */
34
+ toolbarExportImage: (mimeType: ChartImageExportMimeType | (string & {})) => string;
18
35
  }
19
36
  export type ChartsTranslationKeys = keyof ChartsLocaleText;
@@ -13,6 +13,9 @@ export declare const getChartsLocalization: (chartsTranslations: Partial<ChartsL
13
13
  noData?: string | undefined;
14
14
  zoomIn?: string | undefined;
15
15
  zoomOut?: string | undefined;
16
+ toolbarExport?: string | undefined;
17
+ toolbarExportPrint?: string | undefined;
18
+ toolbarExportImage?: ((mimeType: import("./imageMimeTypes.js").ChartImageExportMimeType | (string & {})) => string) | undefined;
16
19
  };
17
20
  };
18
21
  };
@@ -0,0 +1,2 @@
1
+ export declare const imageMimeTypes: Record<string, string | undefined>;
2
+ export type ChartImageExportMimeType = 'image/png' | 'image/jpeg' | 'image/webp';
@@ -0,0 +1,5 @@
1
+ export const imageMimeTypes = {
2
+ 'image/png': 'PNG',
3
+ 'image/jpeg': 'JPEG',
4
+ 'image/webp': 'WebP'
5
+ };
@@ -7,14 +7,18 @@ export type ChartBaseCommonProps<T = HTMLElement> = React.DOMAttributes<T> & {
7
7
  };
8
8
  export type ChartBaseIconProps = ChartBaseCommonProps<SVGSVGElement> & {
9
9
  titleAccess?: string;
10
+ fontSize?: 'small' | 'medium' | 'large' | 'inherit';
10
11
  };
11
12
  export type ChartBaseButtonProps = ChartBaseCommonProps & {
12
13
  ref?: React.Ref<HTMLButtonElement>;
14
+ id?: string;
13
15
  disabled?: boolean;
14
16
  tabIndex?: number;
15
17
  };
16
18
  export type ChartBaseIconButtonProps = ChartBaseCommonProps & {
17
19
  ref?: React.Ref<HTMLButtonElement>;
20
+ id?: string;
18
21
  disabled?: boolean;
19
22
  tabIndex?: number;
23
+ size?: 'small' | 'medium' | 'large';
20
24
  };
@@ -1,16 +1,21 @@
1
1
  import * as React from 'react';
2
2
  import { SeriesItemIdentifier } from "../models/index.js";
3
+ import { UseChartHighlightSignature } from "../internals/plugins/featurePlugins/useChartHighlight/index.js";
4
+ import { UseChartInteractionSignature } from "../internals/plugins/featurePlugins/useChartInteraction/index.js";
5
+ import { ChartItemIdentifier, ChartSeriesType } from "../models/seriesType/config.js";
6
+ import { ChartInstance } from "../internals/plugins/models/index.js";
3
7
  export declare const useInteractionItemProps: (data: SeriesItemIdentifier, skip?: boolean) => {
4
8
  onPointerEnter?: () => void;
5
9
  onPointerLeave?: () => void;
6
10
  onPointerDown?: (event: React.PointerEvent) => void;
7
11
  };
8
- export declare const useInteractionAllItemProps: (data: SeriesItemIdentifier[], skip?: boolean) => ({
9
- onPointerEnter?: undefined;
10
- onPointerLeave?: undefined;
11
- onPointerDown?: undefined;
12
- } | {
13
- onPointerEnter: () => void;
14
- onPointerLeave: () => void;
15
- onPointerDown: (event: React.PointerEvent) => void;
16
- })[];
12
+ export declare const useInteractionAllItemProps: (data: SeriesItemIdentifier[], skip?: boolean) => {
13
+ onPointerEnter?: () => void;
14
+ onPointerLeave?: () => void;
15
+ onPointerDown?: (event: React.PointerEvent) => void;
16
+ }[];
17
+ export declare function getInteractionItemProps(instance: ChartInstance<[UseChartInteractionSignature, UseChartHighlightSignature]>, item: ChartItemIdentifier<ChartSeriesType>): {
18
+ onPointerEnter?: () => void;
19
+ onPointerLeave?: () => void;
20
+ onPointerDown?: (event: React.PointerEvent) => void;
21
+ };
@@ -5,14 +5,15 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.getInteractionItemProps = getInteractionItemProps;
8
9
  exports.useInteractionItemProps = exports.useInteractionAllItemProps = void 0;
9
10
  var React = _interopRequireWildcard(require("react"));
10
11
  var _ChartProvider = require("../context/ChartProvider");
11
- const onPointerDown = event => {
12
+ function onPointerDown(event) {
12
13
  if ('hasPointerCapture' in event.currentTarget && event.currentTarget.hasPointerCapture(event.pointerId)) {
13
14
  event.currentTarget.releasePointerCapture(event.pointerId);
14
15
  }
15
- };
16
+ }
16
17
  const useInteractionItemProps = (data, skip) => {
17
18
  const {
18
19
  instance
@@ -63,33 +64,33 @@ const useInteractionAllItemProps = (data, skip) => {
63
64
  } = (0, _ChartProvider.useChartContext)();
64
65
  const results = React.useMemo(() => {
65
66
  return data.map(item => {
66
- if (skip) {
67
- return {};
68
- }
69
- const onPointerEnter = () => {
70
- if (!item) {
71
- return;
72
- }
73
- instance.setItemInteraction(item);
74
- instance.setHighlight({
75
- seriesId: item.seriesId,
76
- dataIndex: item.dataIndex
77
- });
78
- };
79
- const onPointerLeave = () => {
80
- if (!item) {
81
- return;
82
- }
83
- instance.removeItemInteraction(item);
84
- instance.clearHighlight();
85
- };
86
- return {
87
- onPointerEnter,
88
- onPointerLeave,
89
- onPointerDown
90
- };
67
+ return skip ? {} : getInteractionItemProps(instance, item);
91
68
  });
92
69
  }, [data, instance, skip]);
93
70
  return results;
94
71
  };
95
- exports.useInteractionAllItemProps = useInteractionAllItemProps;
72
+ exports.useInteractionAllItemProps = useInteractionAllItemProps;
73
+ function getInteractionItemProps(instance, item) {
74
+ function onPointerEnter() {
75
+ if (!item) {
76
+ return;
77
+ }
78
+ instance.setItemInteraction(item);
79
+ instance.setHighlight({
80
+ seriesId: item.seriesId,
81
+ dataIndex: item.dataIndex
82
+ });
83
+ }
84
+ function onPointerLeave() {
85
+ if (!item) {
86
+ return;
87
+ }
88
+ instance.removeItemInteraction(item);
89
+ instance.clearHighlight();
90
+ }
91
+ return {
92
+ onPointerEnter,
93
+ onPointerLeave,
94
+ onPointerDown
95
+ };
96
+ }
package/index.d.ts CHANGED
@@ -23,6 +23,7 @@ export * from "./SparkLineChart/index.js";
23
23
  export * from "./Gauge/index.js";
24
24
  export * from "./RadarChart/index.js";
25
25
  export * from "./ChartsSurface/index.js";
26
- export * from "./ChartContainer/index.js";
26
+ export { ChartContainer } from "./ChartContainer/index.js";
27
+ export type { ChartContainerProps } from "./ChartContainer/index.js";
27
28
  export * from "./ChartDataProvider/index.js";
28
29
  export * from "./Toolbar/index.js";