@mui/x-charts 8.6.0 → 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 (140) hide show
  1. package/BarChart/BarPlot.js +11 -150
  2. package/BarChart/useBarPlotData.d.ts +8 -0
  3. package/BarChart/useBarPlotData.js +146 -0
  4. package/CHANGELOG.md +104 -1
  5. package/ChartContainer/ChartContainer.d.ts +1 -21
  6. package/ChartContainer/ChartContainer.js +0 -8
  7. package/ChartContainer/index.d.ts +8 -1
  8. package/ChartsReferenceLine/ChartsReferenceLine.d.ts +1 -1
  9. package/ChartsReferenceLine/ChartsXReferenceLine.d.ts +3 -0
  10. package/ChartsReferenceLine/ChartsXReferenceLine.js +48 -1
  11. package/ChartsReferenceLine/ChartsYReferenceLine.d.ts +3 -0
  12. package/ChartsReferenceLine/ChartsYReferenceLine.js +48 -1
  13. package/ChartsReferenceLine/index.d.ts +3 -1
  14. package/ChartsSurface/ChartsSurface.js +2 -1
  15. package/ChartsTooltip/ChartsTooltipContainer.js +6 -3
  16. package/ChartsTooltip/ChartsTooltipTable.d.ts +1 -1
  17. package/ChartsTooltip/utils.js +18 -29
  18. package/LineChart/AreaPlot.js +5 -115
  19. package/LineChart/LinePlot.js +5 -99
  20. package/LineChart/useAreaPlotData.d.ts +12 -0
  21. package/LineChart/useAreaPlotData.js +125 -0
  22. package/LineChart/useLinePlotData.d.ts +11 -0
  23. package/LineChart/useLinePlotData.js +108 -0
  24. package/ScatterChart/Scatter.js +22 -48
  25. package/ScatterChart/useScatterPlotData.d.ts +8 -0
  26. package/ScatterChart/useScatterPlotData.js +33 -0
  27. package/context/ChartApi.d.ts +22 -0
  28. package/context/ChartApi.js +5 -0
  29. package/context/ChartProvider/ChartContext.js +1 -0
  30. package/context/index.d.ts +2 -1
  31. package/context/useChartApiContext.d.ts +1 -1
  32. package/esm/BarChart/BarPlot.js +12 -152
  33. package/esm/BarChart/useBarPlotData.d.ts +8 -0
  34. package/esm/BarChart/useBarPlotData.js +139 -0
  35. package/esm/ChartContainer/ChartContainer.d.ts +1 -21
  36. package/esm/ChartContainer/ChartContainer.js +0 -8
  37. package/esm/ChartContainer/index.d.ts +8 -1
  38. package/esm/ChartContainer/index.js +6 -1
  39. package/esm/ChartsReferenceLine/ChartsReferenceLine.d.ts +1 -1
  40. package/esm/ChartsReferenceLine/ChartsXReferenceLine.d.ts +3 -0
  41. package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +47 -0
  42. package/esm/ChartsReferenceLine/ChartsYReferenceLine.d.ts +3 -0
  43. package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +47 -0
  44. package/esm/ChartsReferenceLine/index.d.ts +3 -1
  45. package/esm/ChartsReferenceLine/index.js +2 -1
  46. package/esm/ChartsSurface/ChartsSurface.js +2 -1
  47. package/esm/ChartsTooltip/ChartsTooltipContainer.js +6 -3
  48. package/esm/ChartsTooltip/ChartsTooltipTable.d.ts +1 -1
  49. package/esm/ChartsTooltip/utils.js +18 -29
  50. package/esm/LineChart/AreaPlot.js +5 -115
  51. package/esm/LineChart/LinePlot.js +5 -99
  52. package/esm/LineChart/useAreaPlotData.d.ts +12 -0
  53. package/esm/LineChart/useAreaPlotData.js +118 -0
  54. package/esm/LineChart/useLinePlotData.d.ts +11 -0
  55. package/esm/LineChart/useLinePlotData.js +101 -0
  56. package/esm/ScatterChart/Scatter.js +23 -49
  57. package/esm/ScatterChart/useScatterPlotData.d.ts +8 -0
  58. package/esm/ScatterChart/useScatterPlotData.js +26 -0
  59. package/esm/context/ChartApi.d.ts +22 -0
  60. package/esm/context/ChartApi.js +1 -0
  61. package/esm/context/ChartProvider/ChartContext.js +2 -0
  62. package/esm/context/index.d.ts +2 -1
  63. package/esm/context/useChartApiContext.d.ts +1 -1
  64. package/esm/hooks/useInteractionItemProps.d.ts +14 -9
  65. package/esm/hooks/useInteractionItemProps.js +28 -28
  66. package/esm/index.d.ts +2 -1
  67. package/esm/index.js +2 -2
  68. package/esm/internals/index.d.ts +5 -0
  69. package/esm/internals/index.js +5 -0
  70. package/esm/internals/plugins/corePlugins/corePlugins.d.ts +3 -2
  71. package/esm/internals/plugins/corePlugins/corePlugins.js +2 -1
  72. package/esm/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.d.ts +1 -1
  73. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.js +1 -29
  74. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +3 -3
  75. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.d.ts +0 -6
  76. package/esm/internals/plugins/corePlugins/useChartId/useChartId.js +2 -0
  77. package/esm/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +1 -1
  78. package/esm/internals/plugins/corePlugins/useChartInteractionListener/index.d.ts +2 -0
  79. package/esm/internals/plugins/corePlugins/useChartInteractionListener/index.js +1 -0
  80. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.d.ts +3 -0
  81. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.js +77 -0
  82. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.d.ts +31 -0
  83. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.js +1 -0
  84. package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +2 -2
  85. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +4 -4
  86. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +44 -33
  87. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +5 -5
  88. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +7 -7
  89. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +5 -5
  90. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +6 -6
  91. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +34 -34
  92. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +5 -5
  93. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +6 -6
  94. package/esm/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.js +47 -30
  95. package/esm/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.d.ts +1 -1
  96. package/esm/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +1 -1
  97. package/esm/internals/store/useCharts.d.ts +1 -1
  98. package/esm/locales/elGR.d.ts +19 -0
  99. package/esm/locales/elGR.js +15 -0
  100. package/esm/locales/index.d.ts +1 -0
  101. package/esm/locales/index.js +1 -0
  102. package/hooks/useInteractionItemProps.d.ts +14 -9
  103. package/hooks/useInteractionItemProps.js +29 -28
  104. package/index.d.ts +2 -1
  105. package/index.js +37 -11
  106. package/internals/index.d.ts +5 -0
  107. package/internals/index.js +44 -0
  108. package/internals/plugins/corePlugins/corePlugins.d.ts +3 -2
  109. package/internals/plugins/corePlugins/corePlugins.js +2 -1
  110. package/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.d.ts +1 -1
  111. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.js +1 -29
  112. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +3 -3
  113. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.d.ts +0 -6
  114. package/internals/plugins/corePlugins/useChartId/useChartId.js +1 -0
  115. package/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +1 -1
  116. package/internals/plugins/corePlugins/useChartInteractionListener/index.d.ts +2 -0
  117. package/internals/plugins/corePlugins/useChartInteractionListener/index.js +12 -0
  118. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.d.ts +3 -0
  119. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.js +84 -0
  120. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.d.ts +31 -0
  121. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.js +5 -0
  122. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +2 -2
  123. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +4 -4
  124. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +44 -33
  125. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +5 -5
  126. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +7 -7
  127. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +5 -5
  128. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +6 -6
  129. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +34 -34
  130. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +5 -5
  131. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +6 -6
  132. package/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.js +46 -30
  133. package/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.d.ts +1 -1
  134. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +1 -1
  135. package/internals/store/useCharts.d.ts +1 -1
  136. package/locales/elGR.d.ts +19 -0
  137. package/locales/elGR.js +21 -0
  138. package/locales/index.d.ts +1 -0
  139. package/locales/index.js +11 -0
  140. package/package.json +3 -2
@@ -80,29 +80,39 @@ const useChartPolarAxis = ({
80
80
 
81
81
  // Use a ref to avoid rerendering on every mousemove event.
82
82
  const mousePosition = React.useRef({
83
- isInChart: false,
84
- x: -1,
85
- y: -1
83
+ isInChart: false
86
84
  });
87
85
  React.useEffect(() => {
88
86
  const element = svgRef.current;
89
87
  if (!isInteractionEnabled || element === null || params.disableAxisListener) {
90
88
  return () => {};
91
89
  }
92
- const handleOut = () => {
93
- mousePosition.current = {
94
- isInChart: false,
95
- x: -1,
96
- y: -1
97
- };
98
- instance.cleanInteraction?.();
99
- };
100
- const handleMove = event => {
101
- const srcEvent = event;
90
+
91
+ // Clean the interaction when the mouse leaves the chart.
92
+ const moveEndHandler = instance.addInteractionListener('moveEnd', event => {
93
+ if (!event.detail.activeGestures.pan) {
94
+ mousePosition.current.isInChart = false;
95
+ instance.cleanInteraction();
96
+ }
97
+ });
98
+ const panEndHandler = instance.addInteractionListener('panEnd', event => {
99
+ if (!event.detail.activeGestures.move) {
100
+ mousePosition.current.isInChart = false;
101
+ instance.cleanInteraction();
102
+ }
103
+ });
104
+ const pressEndHandler = instance.addInteractionListener('quickPressEnd', event => {
105
+ if (!event.detail.activeGestures.move && !event.detail.activeGestures.pan) {
106
+ mousePosition.current.isInChart = false;
107
+ instance.cleanInteraction();
108
+ }
109
+ });
110
+ const gestureHandler = event => {
111
+ const srcEvent = event.detail.srcEvent;
102
112
 
103
113
  // On touch, we want to allow user to interact with the entire svg area in
104
114
  // order to better display the tooltip.
105
- if (event.pointerType === 'touch') {
115
+ if (event.detail.srcEvent.pointerType === 'touch') {
106
116
  const svgRect = element.getBoundingClientRect();
107
117
  if (srcEvent.clientX < svgRect.left || srcEvent.clientX > svgRect.right || srcEvent.clientY < svgRect.top || srcEvent.clientY > svgRect.bottom) {
108
118
  mousePosition.current.isInChart = false;
@@ -120,7 +130,7 @@ const useChartPolarAxis = ({
120
130
  const svgPoint = (0, _getSVGPoint.getSVGPoint)(element, srcEvent);
121
131
 
122
132
  // Test if it's in the drawing area
123
- if (!instance.isPointInside(svgPoint.x, svgPoint.y, event.target)) {
133
+ if (!instance.isPointInside(svgPoint.x, svgPoint.y, event.detail.target)) {
124
134
  if (mousePosition.current.isInChart) {
125
135
  instance?.cleanInteraction();
126
136
  mousePosition.current.isInChart = false;
@@ -141,26 +151,16 @@ const useChartPolarAxis = ({
141
151
  mousePosition.current.isInChart = true;
142
152
  instance.setPointerCoordinate?.(svgPoint);
143
153
  };
144
- const handleDown = event => {
145
- const target = event.currentTarget;
146
- if (!target) {
147
- return;
148
- }
149
- if ('hasPointerCapture' in target && target.hasPointerCapture(event.pointerId)) {
150
- target.releasePointerCapture(event.pointerId);
151
- }
152
- };
153
- element.addEventListener('pointerdown', handleDown);
154
- element.addEventListener('pointermove', handleMove);
155
- element.addEventListener('pointerout', handleOut);
156
- element.addEventListener('pointercancel', handleOut);
157
- element.addEventListener('pointerleave', handleOut);
154
+ const moveHandler = instance.addInteractionListener('move', gestureHandler);
155
+ const panHandler = instance.addInteractionListener('pan', gestureHandler);
156
+ const pressHandler = instance.addInteractionListener('quickPress', gestureHandler);
158
157
  return () => {
159
- element.removeEventListener('pointerdown', handleDown);
160
- element.removeEventListener('pointermove', handleMove);
161
- element.removeEventListener('pointerout', handleOut);
162
- element.removeEventListener('pointercancel', handleOut);
163
- element.removeEventListener('pointerleave', handleOut);
158
+ moveHandler.cleanup();
159
+ moveEndHandler.cleanup();
160
+ panHandler.cleanup();
161
+ panEndHandler.cleanup();
162
+ pressHandler.cleanup();
163
+ pressEndHandler.cleanup();
164
164
  };
165
165
  }, [svgRef, store, center, radiusAxisWithScale, usedRadiusAxisId, rotationAxisWithScale, usedRotationAxisId, instance, params.disableAxisListener, isInteractionEnabled, svg2rotation]);
166
166
  return {
@@ -4,12 +4,12 @@ export declare const selectorChartPolarAxisState: (state: ChartState<[], [UseCha
4
4
  rotation: import("../../../index.js").AxisConfig<import("../../../index.js").ScaleName, any, import("../../../index.js").ChartsRotationAxisProps>[];
5
5
  radius: import("../../../index.js").AxisConfig<"linear", any, import("../../../index.js").ChartsRadiusAxisProps>[];
6
6
  } | undefined;
7
- export declare const selectorChartRawRotationAxis: 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 & Partial<import("./useChartPolarAxis.types.js").UseChartPolarAxisState> & {
7
+ export declare const selectorChartRawRotationAxis: 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 & Partial<import("./useChartPolarAxis.types.js").UseChartPolarAxisState> & {
8
8
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
9
9
  } & {
10
10
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
11
11
  }, import("../../../index.js").AxisConfig<keyof import("../../../index.js").AxisScaleConfig, any, import("../../../index.js").ChartsRotationAxisProps>[] | undefined, []>;
12
- export declare const selectorChartRawRadiusAxis: 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 & Partial<import("./useChartPolarAxis.types.js").UseChartPolarAxisState> & {
12
+ export declare const selectorChartRawRadiusAxis: 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 & Partial<import("./useChartPolarAxis.types.js").UseChartPolarAxisState> & {
13
13
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
14
14
  } & {
15
15
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -17,17 +17,17 @@ export declare const selectorChartRawRadiusAxis: import("reselect").Selector<imp
17
17
  /**
18
18
  * The only interesting selectors that merge axis data and zoom if provided.
19
19
  */
20
- export declare const selectorChartRotationAxis: 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 & Partial<import("./useChartPolarAxis.types.js").UseChartPolarAxisState> & {
20
+ export declare const selectorChartRotationAxis: 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 & Partial<import("./useChartPolarAxis.types.js").UseChartPolarAxisState> & {
21
21
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
22
22
  } & {
23
23
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
24
24
  } & Partial<{}> & Partial<import("../useChartCartesianAxis/index.js").UseChartCartesianAxisState>, import("./computeAxisValue.js").ComputeResult<import("../../../index.js").ChartsRotationAxisProps>, []>;
25
- export declare const selectorChartRadiusAxis: 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 & Partial<import("./useChartPolarAxis.types.js").UseChartPolarAxisState> & {
25
+ export declare const selectorChartRadiusAxis: 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 & Partial<import("./useChartPolarAxis.types.js").UseChartPolarAxisState> & {
26
26
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
27
27
  } & {
28
28
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
29
29
  } & Partial<{}> & Partial<import("../useChartCartesianAxis/index.js").UseChartCartesianAxisState>, import("./computeAxisValue.js").ComputeResult<import("../../../index.js").ChartsRadiusAxisProps>, []>;
30
- export declare const selectorChartPolarCenter: 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 & Partial<{}> & {
30
+ export declare const selectorChartPolarCenter: 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 & Partial<{}> & {
31
31
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
32
32
  } & Partial<import("../useChartCartesianAxis/index.js").UseChartCartesianAxisState> & {
33
33
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -1,21 +1,21 @@
1
1
  import { AxisId } from "../../../../models/axis.js";
2
2
  import type { AxisItemIdentifier } from "../useChartCartesianAxis/useChartCartesianInteraction.selectors.js";
3
- export declare const selectorChartsInteractionRotationAxisIndex: 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 & Partial<import("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState> & {
3
+ export declare const selectorChartsInteractionRotationAxisIndex: 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 & Partial<import("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState> & {
4
4
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
5
5
  } & {
6
6
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
7
7
  } & Partial<{}> & Partial<import("../useChartCartesianAxis/index.js").UseChartCartesianAxisState> & Partial<import("./useChartPolarAxis.types.js").UseChartPolarAxisState>, number | null, [id?: AxisId | undefined]>;
8
- export declare const selectorChartsInteractionRotationAxisIndexes: 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 & Partial<import("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState> & {
8
+ export declare const selectorChartsInteractionRotationAxisIndexes: 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 & Partial<import("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState> & {
9
9
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
10
10
  } & {
11
11
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
12
12
  } & Partial<{}> & Partial<import("../useChartCartesianAxis/index.js").UseChartCartesianAxisState> & Partial<import("./useChartPolarAxis.types.js").UseChartPolarAxisState>, number[] | null, [ids: AxisId[]]>;
13
- export declare const selectorChartsInteractionRotationAxisValue: 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 & Partial<import("./useChartPolarAxis.types.js").UseChartPolarAxisState> & {
13
+ export declare const selectorChartsInteractionRotationAxisValue: 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 & Partial<import("./useChartPolarAxis.types.js").UseChartPolarAxisState> & {
14
14
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
15
15
  } & {
16
16
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
17
17
  } & Partial<{}> & Partial<import("../useChartCartesianAxis/index.js").UseChartCartesianAxisState> & Partial<import("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState>, any, [id?: AxisId | undefined]>;
18
- export declare const selectorChartsInteractionRotationAxisValues: 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 & Partial<import("./useChartPolarAxis.types.js").UseChartPolarAxisState> & {
18
+ export declare const selectorChartsInteractionRotationAxisValues: 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 & Partial<import("./useChartPolarAxis.types.js").UseChartPolarAxisState> & {
19
19
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
20
20
  } & {
21
21
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -23,7 +23,7 @@ export declare const selectorChartsInteractionRotationAxisValues: import("resele
23
23
  /**
24
24
  * Get rotation-axis ids and corresponding data index that should be display in the tooltip.
25
25
  */
26
- export declare const selectorChartsInteractionTooltipRotationAxes: 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 & Partial<import("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState> & {
26
+ export declare const selectorChartsInteractionTooltipRotationAxes: 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 & Partial<import("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState> & {
27
27
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
28
28
  } & {
29
29
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -35,7 +35,7 @@ export declare const selectorChartsInteractionTooltipRadiusAxes: import("reselec
35
35
  /**
36
36
  * Return `true` if the axis tooltip has something to display.
37
37
  */
38
- export declare const selectorChartsInteractionPolarAxisTooltip: 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 & Partial<import("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState> & {
38
+ export declare const selectorChartsInteractionPolarAxisTooltip: 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 & Partial<import("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState> & {
39
39
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
40
40
  } & {
41
41
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
@@ -138,12 +139,28 @@ const useChartVoronoi = ({
138
139
  dataIndex
139
140
  };
140
141
  }
141
- const handleMouseLeave = () => {
142
- instance.cleanInteraction?.();
143
- instance.clearHighlight?.();
144
- };
145
- const handleMouseMove = event => {
146
- const closestPoint = getClosestPoint(event);
142
+
143
+ // Clean the interaction when the mouse leaves the chart.
144
+ const moveEndHandler = instance.addInteractionListener('moveEnd', event => {
145
+ if (!event.detail.activeGestures.pan) {
146
+ instance.cleanInteraction?.();
147
+ instance.clearHighlight?.();
148
+ }
149
+ });
150
+ const panEndHandler = instance.addInteractionListener('panEnd', event => {
151
+ if (!event.detail.activeGestures.move) {
152
+ instance.cleanInteraction?.();
153
+ instance.clearHighlight?.();
154
+ }
155
+ });
156
+ const pressEndHandler = instance.addInteractionListener('quickPressEnd', event => {
157
+ if (!event.detail.activeGestures.move && !event.detail.activeGestures.pan) {
158
+ instance.cleanInteraction?.();
159
+ instance.clearHighlight?.();
160
+ }
161
+ });
162
+ const gestureHandler = event => {
163
+ const closestPoint = getClosestPoint(event.detail.srcEvent);
147
164
  if (closestPoint === 'outside-chart') {
148
165
  instance.cleanInteraction?.();
149
166
  instance.clearHighlight?.();
@@ -168,32 +185,31 @@ const useChartVoronoi = ({
168
185
  dataIndex
169
186
  });
170
187
  };
171
- const handleMouseClick = event => {
172
- if (!onItemClick) {
173
- return;
174
- }
175
- const closestPoint = getClosestPoint(event);
176
- if (typeof closestPoint === 'string') {
177
- // No point fond for any reason
178
- return;
188
+ const tapHandler = instance.addInteractionListener('tap', event => {
189
+ const closestPoint = getClosestPoint(event.detail.srcEvent);
190
+ if (typeof closestPoint !== 'string' && onItemClick) {
191
+ const {
192
+ seriesId,
193
+ dataIndex
194
+ } = closestPoint;
195
+ onItemClick(event.detail.srcEvent, {
196
+ type: 'scatter',
197
+ seriesId,
198
+ dataIndex
199
+ });
179
200
  }
180
- const {
181
- seriesId,
182
- dataIndex
183
- } = closestPoint;
184
- onItemClick(event, {
185
- type: 'scatter',
186
- seriesId,
187
- dataIndex
188
- });
189
- };
190
- element.addEventListener('pointerleave', handleMouseLeave);
191
- element.addEventListener('pointermove', handleMouseMove);
192
- element.addEventListener('click', handleMouseClick);
201
+ });
202
+ const moveHandler = instance.addInteractionListener('move', gestureHandler);
203
+ const panHandler = instance.addInteractionListener('pan', gestureHandler);
204
+ const pressHandler = instance.addInteractionListener('quickPress', gestureHandler);
193
205
  return () => {
194
- element.removeEventListener('pointerleave', handleMouseLeave);
195
- element.removeEventListener('pointermove', handleMouseMove);
196
- element.removeEventListener('click', handleMouseClick);
206
+ tapHandler.cleanup();
207
+ moveHandler.cleanup();
208
+ moveEndHandler.cleanup();
209
+ panHandler.cleanup();
210
+ panEndHandler.cleanup();
211
+ pressHandler.cleanup();
212
+ pressEndHandler.cleanup();
197
213
  };
198
214
  }, [svgRef, yAxis, xAxis, voronoiMaxRadius, onItemClick, disableVoronoi, drawingArea, instance]);
199
215
 
@@ -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,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.elGRLocaleText = exports.elGR = void 0;
7
+ var _imageMimeTypes = require("./utils/imageMimeTypes");
8
+ var _getChartsLocalization = require("./utils/getChartsLocalization");
9
+ const elGRLocaleText = exports.elGRLocaleText = {
10
+ // Overlay
11
+ loading: 'Φόρτωση δεδομένων…',
12
+ noData: 'Δεν υπάρχουν δεδομένα για εμφάνιση',
13
+ // Toolbar
14
+ zoomIn: 'Μεγέθυνση',
15
+ zoomOut: 'Σμίκρυνση',
16
+ toolbarExport: 'Εξαγωγή',
17
+ // Toolbar Export Menu
18
+ toolbarExportPrint: 'Εκτύπωση',
19
+ toolbarExportImage: mimeType => `Εξαγωγή ως ${_imageMimeTypes.imageMimeTypes[mimeType] ?? mimeType}`
20
+ };
21
+ const elGR = exports.elGR = (0, _getChartsLocalization.getChartsLocalization)(elGRLocaleText);
@@ -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";
package/locales/index.js CHANGED
@@ -3,6 +3,17 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _elGR = require("./elGR");
7
+ Object.keys(_elGR).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _elGR[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _elGR[key];
14
+ }
15
+ });
16
+ });
6
17
  var _enUS = require("./enUS");
7
18
  Object.keys(_enUS).forEach(function (key) {
8
19
  if (key === "default" || key === "__esModule") return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-charts",
3
- "version": "8.6.0",
3
+ "version": "8.7.0",
4
4
  "author": "MUI Team",
5
5
  "description": "The community edition of MUI X Charts components.",
6
6
  "main": "./index.js",
@@ -37,7 +37,8 @@
37
37
  "reselect": "^5.1.1",
38
38
  "use-sync-external-store": "^1.5.0",
39
39
  "@mui/x-charts-vendor": "8.5.3",
40
- "@mui/x-internals": "8.6.0"
40
+ "@mui/x-internal-gestures": "0.2.0",
41
+ "@mui/x-internals": "8.7.0"
41
42
  },
42
43
  "peerDependencies": {
43
44
  "@emotion/react": "^11.9.0",