@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.
- package/BarChart/BarPlot.js +11 -150
- package/BarChart/useBarPlotData.d.ts +8 -0
- package/BarChart/useBarPlotData.js +146 -0
- package/CHANGELOG.md +104 -1
- package/ChartContainer/ChartContainer.d.ts +1 -21
- package/ChartContainer/ChartContainer.js +0 -8
- package/ChartContainer/index.d.ts +8 -1
- package/ChartsReferenceLine/ChartsReferenceLine.d.ts +1 -1
- package/ChartsReferenceLine/ChartsXReferenceLine.d.ts +3 -0
- package/ChartsReferenceLine/ChartsXReferenceLine.js +48 -1
- package/ChartsReferenceLine/ChartsYReferenceLine.d.ts +3 -0
- package/ChartsReferenceLine/ChartsYReferenceLine.js +48 -1
- package/ChartsReferenceLine/index.d.ts +3 -1
- package/ChartsSurface/ChartsSurface.js +2 -1
- package/ChartsTooltip/ChartsTooltipContainer.js +6 -3
- package/ChartsTooltip/ChartsTooltipTable.d.ts +1 -1
- package/ChartsTooltip/utils.js +18 -29
- package/LineChart/AreaPlot.js +5 -115
- package/LineChart/LinePlot.js +5 -99
- package/LineChart/useAreaPlotData.d.ts +12 -0
- package/LineChart/useAreaPlotData.js +125 -0
- package/LineChart/useLinePlotData.d.ts +11 -0
- package/LineChart/useLinePlotData.js +108 -0
- package/ScatterChart/Scatter.js +22 -48
- package/ScatterChart/useScatterPlotData.d.ts +8 -0
- package/ScatterChart/useScatterPlotData.js +33 -0
- package/context/ChartApi.d.ts +22 -0
- package/context/ChartApi.js +5 -0
- package/context/ChartProvider/ChartContext.js +1 -0
- package/context/index.d.ts +2 -1
- package/context/useChartApiContext.d.ts +1 -1
- package/esm/BarChart/BarPlot.js +12 -152
- package/esm/BarChart/useBarPlotData.d.ts +8 -0
- package/esm/BarChart/useBarPlotData.js +139 -0
- package/esm/ChartContainer/ChartContainer.d.ts +1 -21
- package/esm/ChartContainer/ChartContainer.js +0 -8
- package/esm/ChartContainer/index.d.ts +8 -1
- package/esm/ChartContainer/index.js +6 -1
- package/esm/ChartsReferenceLine/ChartsReferenceLine.d.ts +1 -1
- package/esm/ChartsReferenceLine/ChartsXReferenceLine.d.ts +3 -0
- package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +47 -0
- package/esm/ChartsReferenceLine/ChartsYReferenceLine.d.ts +3 -0
- package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +47 -0
- package/esm/ChartsReferenceLine/index.d.ts +3 -1
- package/esm/ChartsReferenceLine/index.js +2 -1
- package/esm/ChartsSurface/ChartsSurface.js +2 -1
- package/esm/ChartsTooltip/ChartsTooltipContainer.js +6 -3
- package/esm/ChartsTooltip/ChartsTooltipTable.d.ts +1 -1
- package/esm/ChartsTooltip/utils.js +18 -29
- package/esm/LineChart/AreaPlot.js +5 -115
- package/esm/LineChart/LinePlot.js +5 -99
- package/esm/LineChart/useAreaPlotData.d.ts +12 -0
- package/esm/LineChart/useAreaPlotData.js +118 -0
- package/esm/LineChart/useLinePlotData.d.ts +11 -0
- package/esm/LineChart/useLinePlotData.js +101 -0
- package/esm/ScatterChart/Scatter.js +23 -49
- package/esm/ScatterChart/useScatterPlotData.d.ts +8 -0
- package/esm/ScatterChart/useScatterPlotData.js +26 -0
- package/esm/context/ChartApi.d.ts +22 -0
- package/esm/context/ChartApi.js +1 -0
- package/esm/context/ChartProvider/ChartContext.js +2 -0
- package/esm/context/index.d.ts +2 -1
- package/esm/context/useChartApiContext.d.ts +1 -1
- package/esm/hooks/useInteractionItemProps.d.ts +14 -9
- package/esm/hooks/useInteractionItemProps.js +28 -28
- package/esm/index.d.ts +2 -1
- package/esm/index.js +2 -2
- package/esm/internals/index.d.ts +5 -0
- package/esm/internals/index.js +5 -0
- package/esm/internals/plugins/corePlugins/corePlugins.d.ts +3 -2
- package/esm/internals/plugins/corePlugins/corePlugins.js +2 -1
- package/esm/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.d.ts +1 -1
- package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.js +1 -29
- package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +3 -3
- package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.d.ts +0 -6
- package/esm/internals/plugins/corePlugins/useChartId/useChartId.js +2 -0
- package/esm/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +1 -1
- package/esm/internals/plugins/corePlugins/useChartInteractionListener/index.d.ts +2 -0
- package/esm/internals/plugins/corePlugins/useChartInteractionListener/index.js +1 -0
- package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.d.ts +3 -0
- package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.js +77 -0
- package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.d.ts +31 -0
- package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.js +1 -0
- package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +2 -2
- package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +4 -4
- package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +44 -33
- package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +5 -5
- package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +7 -7
- package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +5 -5
- package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +6 -6
- package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +34 -34
- package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +5 -5
- package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +6 -6
- package/esm/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.js +47 -30
- package/esm/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.d.ts +1 -1
- package/esm/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +1 -1
- package/esm/internals/store/useCharts.d.ts +1 -1
- package/esm/locales/elGR.d.ts +19 -0
- package/esm/locales/elGR.js +15 -0
- package/esm/locales/index.d.ts +1 -0
- package/esm/locales/index.js +1 -0
- package/hooks/useInteractionItemProps.d.ts +14 -9
- package/hooks/useInteractionItemProps.js +29 -28
- package/index.d.ts +2 -1
- package/index.js +37 -11
- package/internals/index.d.ts +5 -0
- package/internals/index.js +44 -0
- package/internals/plugins/corePlugins/corePlugins.d.ts +3 -2
- package/internals/plugins/corePlugins/corePlugins.js +2 -1
- package/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.d.ts +1 -1
- package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.js +1 -29
- package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +3 -3
- package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.d.ts +0 -6
- package/internals/plugins/corePlugins/useChartId/useChartId.js +1 -0
- package/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +1 -1
- package/internals/plugins/corePlugins/useChartInteractionListener/index.d.ts +2 -0
- package/internals/plugins/corePlugins/useChartInteractionListener/index.js +12 -0
- package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.d.ts +3 -0
- package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.js +84 -0
- package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.d.ts +31 -0
- package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.js +5 -0
- package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +2 -2
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +4 -4
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +44 -33
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +5 -5
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +7 -7
- package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +5 -5
- package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +6 -6
- package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +34 -34
- package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +5 -5
- package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +6 -6
- package/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.js +46 -30
- package/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.d.ts +1 -1
- package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +1 -1
- package/internals/store/useCharts.d.ts +1 -1
- package/locales/elGR.d.ts +19 -0
- package/locales/elGR.js +21 -0
- package/locales/index.d.ts +1 -0
- package/locales/index.js +11 -0
- package/package.json +3 -2
package/esm/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
|
|
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";
|
package/esm/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @mui/x-charts v8.
|
|
2
|
+
* @mui/x-charts v8.7.0
|
|
3
3
|
*
|
|
4
4
|
* @license MIT
|
|
5
5
|
* This source code is licensed under the MIT license found in the
|
|
@@ -30,6 +30,6 @@ export * from "./SparkLineChart/index.js";
|
|
|
30
30
|
export * from "./Gauge/index.js";
|
|
31
31
|
export * from "./RadarChart/index.js";
|
|
32
32
|
export * from "./ChartsSurface/index.js";
|
|
33
|
-
export
|
|
33
|
+
export { ChartContainer } from "./ChartContainer/index.js";
|
|
34
34
|
export * from "./ChartDataProvider/index.js";
|
|
35
35
|
export * from "./Toolbar/index.js";
|
package/esm/internals/index.d.ts
CHANGED
|
@@ -6,8 +6,12 @@ export { useSeries } from "../hooks/useSeries.js";
|
|
|
6
6
|
export { useInteractionItemProps } from "../hooks/useInteractionItemProps.js";
|
|
7
7
|
export { useDrawingArea } from "../hooks/useDrawingArea.js";
|
|
8
8
|
export { useScatterChartProps } from "../ScatterChart/useScatterChartProps.js";
|
|
9
|
+
export { useScatterPlotData } from "../ScatterChart/useScatterPlotData.js";
|
|
9
10
|
export { useLineChartProps } from "../LineChart/useLineChartProps.js";
|
|
11
|
+
export { useAreaPlotData } from "../LineChart/useAreaPlotData.js";
|
|
12
|
+
export { useLinePlotData } from "../LineChart/useLinePlotData.js";
|
|
10
13
|
export { useBarChartProps } from "../BarChart/useBarChartProps.js";
|
|
14
|
+
export { useBarPlotData } from "../BarChart/useBarPlotData.js";
|
|
11
15
|
export { useRadarChartProps } from "../RadarChart/useRadarChartProps.js";
|
|
12
16
|
export * from "../ChartContainer/useChartContainerProps.js";
|
|
13
17
|
export * from "../ChartDataProvider/useChartDataProviderProps.js";
|
|
@@ -15,6 +19,7 @@ export * from "./createSeriesSelectorOfType.js";
|
|
|
15
19
|
export * from "./plugins/corePlugins/useChartId/index.js";
|
|
16
20
|
export * from "./plugins/corePlugins/useChartSeries/index.js";
|
|
17
21
|
export * from "./plugins/corePlugins/useChartDimensions/index.js";
|
|
22
|
+
export * from "./plugins/corePlugins/useChartInteractionListener/index.js";
|
|
18
23
|
export * from "./plugins/featurePlugins/useChartZAxis/index.js";
|
|
19
24
|
export * from "./plugins/featurePlugins/useChartCartesianAxis/index.js";
|
|
20
25
|
export * from "./plugins/featurePlugins/useChartPolarAxis/index.js";
|
package/esm/internals/index.js
CHANGED
|
@@ -9,8 +9,12 @@ export { useSeries } from "../hooks/useSeries.js";
|
|
|
9
9
|
export { useInteractionItemProps } from "../hooks/useInteractionItemProps.js";
|
|
10
10
|
export { useDrawingArea } from "../hooks/useDrawingArea.js";
|
|
11
11
|
export { useScatterChartProps } from "../ScatterChart/useScatterChartProps.js";
|
|
12
|
+
export { useScatterPlotData } from "../ScatterChart/useScatterPlotData.js";
|
|
12
13
|
export { useLineChartProps } from "../LineChart/useLineChartProps.js";
|
|
14
|
+
export { useAreaPlotData } from "../LineChart/useAreaPlotData.js";
|
|
15
|
+
export { useLinePlotData } from "../LineChart/useLinePlotData.js";
|
|
13
16
|
export { useBarChartProps } from "../BarChart/useBarChartProps.js";
|
|
17
|
+
export { useBarPlotData } from "../BarChart/useBarPlotData.js";
|
|
14
18
|
export { useRadarChartProps } from "../RadarChart/useRadarChartProps.js";
|
|
15
19
|
export * from "../ChartContainer/useChartContainerProps.js";
|
|
16
20
|
export * from "../ChartDataProvider/useChartDataProviderProps.js";
|
|
@@ -20,6 +24,7 @@ export * from "./createSeriesSelectorOfType.js";
|
|
|
20
24
|
export * from "./plugins/corePlugins/useChartId/index.js";
|
|
21
25
|
export * from "./plugins/corePlugins/useChartSeries/index.js";
|
|
22
26
|
export * from "./plugins/corePlugins/useChartDimensions/index.js";
|
|
27
|
+
export * from "./plugins/corePlugins/useChartInteractionListener/index.js";
|
|
23
28
|
export * from "./plugins/featurePlugins/useChartZAxis/index.js";
|
|
24
29
|
export * from "./plugins/featurePlugins/useChartCartesianAxis/index.js";
|
|
25
30
|
export * from "./plugins/featurePlugins/useChartPolarAxis/index.js";
|
|
@@ -2,10 +2,11 @@ import { type UseChartAnimationSignature } from "./useChartAnimation/index.js";
|
|
|
2
2
|
import { type UseChartDimensionsSignature } from "./useChartDimensions/index.js";
|
|
3
3
|
import { type UseChartIdSignature, UseChartIdParameters } from "./useChartId/index.js";
|
|
4
4
|
import { type UseChartSeriesSignature } from "./useChartSeries/index.js";
|
|
5
|
+
import { type UseChartInteractionListenerSignature } from "./useChartInteractionListener/index.js";
|
|
5
6
|
/**
|
|
6
7
|
* Internal plugins that create the tools used by the other plugins.
|
|
7
8
|
* These plugins are used by the Charts components.
|
|
8
9
|
*/
|
|
9
|
-
export declare const CHART_CORE_PLUGINS: readonly [import("../models/index.js").ChartPlugin<UseChartIdSignature>, import("../models/index.js").ChartPlugin<UseChartDimensionsSignature>, import("../models/index.js").ChartPlugin<UseChartSeriesSignature>, import("../models/index.js").ChartPlugin<UseChartAnimationSignature>];
|
|
10
|
-
export type ChartCorePluginSignatures = [UseChartIdSignature, UseChartDimensionsSignature, UseChartSeriesSignature, UseChartAnimationSignature];
|
|
10
|
+
export declare const CHART_CORE_PLUGINS: readonly [import("../models/index.js").ChartPlugin<UseChartIdSignature>, import("../models/index.js").ChartPlugin<UseChartDimensionsSignature>, import("../models/index.js").ChartPlugin<UseChartSeriesSignature>, import("../models/index.js").ChartPlugin<UseChartInteractionListenerSignature>, import("../models/index.js").ChartPlugin<UseChartAnimationSignature>];
|
|
11
|
+
export type ChartCorePluginSignatures = [UseChartIdSignature, UseChartDimensionsSignature, UseChartSeriesSignature, UseChartAnimationSignature, UseChartInteractionListenerSignature];
|
|
11
12
|
export interface ChartCorePluginParameters extends UseChartIdParameters {}
|
|
@@ -2,9 +2,10 @@ import { useChartAnimation } from "./useChartAnimation/index.js";
|
|
|
2
2
|
import { useChartDimensions } from "./useChartDimensions/index.js";
|
|
3
3
|
import { useChartId } from "./useChartId/index.js";
|
|
4
4
|
import { useChartSeries } from "./useChartSeries/index.js";
|
|
5
|
+
import { useChartInteractionListener } from "./useChartInteractionListener/index.js";
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Internal plugins that create the tools used by the other plugins.
|
|
8
9
|
* These plugins are used by the Charts components.
|
|
9
10
|
*/
|
|
10
|
-
export const CHART_CORE_PLUGINS = [useChartId, useChartDimensions, useChartSeries, useChartAnimation];
|
|
11
|
+
export const CHART_CORE_PLUGINS = [useChartId, useChartDimensions, useChartSeries, useChartInteractionListener, useChartAnimation];
|
package/esm/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const selectorChartSkipAnimation: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("./useChartAnimation.types.js").UseChartAnimationState & Partial<{}> & {
|
|
1
|
+
export declare const selectorChartSkipAnimation: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("./useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
|
|
2
2
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
3
3
|
} & {
|
|
4
4
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
@@ -8,7 +8,6 @@ import { useSelector } from "../../../store/useSelector.js";
|
|
|
8
8
|
import { DEFAULT_MARGINS } from "../../../../constants/index.js";
|
|
9
9
|
import { selectorChartDrawingArea } from "./useChartDimensions.selectors.js";
|
|
10
10
|
import { defaultizeMargin } from "../../../defaultizeMargin.js";
|
|
11
|
-
import { getSVGPoint } from "../../../getSVGPoint.js";
|
|
12
11
|
const MAX_COMPUTE_RUN = 10;
|
|
13
12
|
export const useChartDimensions = ({
|
|
14
13
|
params,
|
|
@@ -155,38 +154,11 @@ export const useChartDimensions = ({
|
|
|
155
154
|
}
|
|
156
155
|
return isXInside(x) && isYInside(y);
|
|
157
156
|
}, [isXInside, isYInside]);
|
|
158
|
-
const isElementInside = React.useCallback(element => {
|
|
159
|
-
const svgElement = svgRef.current;
|
|
160
|
-
if (!element || !(element instanceof Element) || !svgElement) {
|
|
161
|
-
return false;
|
|
162
|
-
}
|
|
163
|
-
// For element allowed to overflow, wrapping them in <g data-drawing-container /> make them fully part of the drawing area.
|
|
164
|
-
if (element.closest('[data-drawing-container]')) {
|
|
165
|
-
return true;
|
|
166
|
-
}
|
|
167
|
-
const rect = element.getBoundingClientRect();
|
|
168
|
-
const {
|
|
169
|
-
x: left,
|
|
170
|
-
y: top
|
|
171
|
-
} = getSVGPoint(svgElement, {
|
|
172
|
-
clientX: rect.left,
|
|
173
|
-
clientY: rect.top
|
|
174
|
-
});
|
|
175
|
-
const {
|
|
176
|
-
x: right,
|
|
177
|
-
y: bottom
|
|
178
|
-
} = getSVGPoint(svgElement, {
|
|
179
|
-
clientX: rect.right,
|
|
180
|
-
clientY: rect.bottom
|
|
181
|
-
});
|
|
182
|
-
return isXInside(left) && isXInside(right) && isYInside(top) && isYInside(bottom);
|
|
183
|
-
}, [isXInside, isYInside, svgRef]);
|
|
184
157
|
return {
|
|
185
158
|
instance: {
|
|
186
159
|
isPointInside,
|
|
187
160
|
isXInside,
|
|
188
|
-
isYInside
|
|
189
|
-
isElementInside
|
|
161
|
+
isYInside
|
|
190
162
|
}
|
|
191
163
|
};
|
|
192
164
|
};
|
package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { UseChartDimensionsSignature } from "./useChartDimensions.types.js"
|
|
|
3
3
|
import { ChartState } from "../../models/chart.js";
|
|
4
4
|
export declare const selectorChartDimensionsState: ChartRootSelector<UseChartDimensionsSignature>;
|
|
5
5
|
export declare const selectorChartMargin: (state: ChartState<[UseChartDimensionsSignature]>) => import("./useChartDimensions.types.js").ChartMargin;
|
|
6
|
-
export declare const selectorChartDrawingArea: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("./useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & Partial<{}> & {
|
|
6
|
+
export declare const selectorChartDrawingArea: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("./useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
|
|
7
7
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
8
8
|
} & Partial<import("../../../index.js").UseChartCartesianAxisState> & {
|
|
9
9
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
@@ -15,7 +15,7 @@ export declare const selectorChartDrawingArea: import("reselect").Selector<impor
|
|
|
15
15
|
top: number;
|
|
16
16
|
bottom: number;
|
|
17
17
|
}, []>;
|
|
18
|
-
export declare const selectorChartPropsSize: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("./useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & Partial<{}> & {
|
|
18
|
+
export declare const selectorChartPropsSize: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("./useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
|
|
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 selectorChartPropsSize: import("reselect").Selector<import(
|
|
|
23
23
|
width: number | undefined;
|
|
24
24
|
height: number | undefined;
|
|
25
25
|
}, any[]>;
|
|
26
|
-
export declare const selectorChartContainerSize: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("./useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & Partial<{}> & {
|
|
26
|
+
export declare const selectorChartContainerSize: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("./useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
|
|
27
27
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
28
28
|
} & {
|
|
29
29
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
@@ -63,12 +63,6 @@ export interface UseChartDimensionsState {
|
|
|
63
63
|
};
|
|
64
64
|
}
|
|
65
65
|
export interface UseChartDimensionsInstance {
|
|
66
|
-
/**
|
|
67
|
-
* Checks if an element is inside the drawing area.
|
|
68
|
-
* @param {Element | EventTarget | null} element The element to check.
|
|
69
|
-
* @returns {boolean} `true` if the element is inside the drawing area, `false` otherwise.
|
|
70
|
-
*/
|
|
71
|
-
isElementInside: (element: Element | EventTarget | null | undefined) => boolean;
|
|
72
66
|
/**
|
|
73
67
|
* Checks if a point is inside the drawing area.
|
|
74
68
|
* @param {number} x The x coordinate of the point.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @param {ChartState<[UseChartIdSignature]>} state The state of the chart.
|
|
4
4
|
* @returns {string} The id attribute of the chart.
|
|
5
5
|
*/
|
|
6
|
-
export declare const selectorChartId: import("reselect").Selector<import("./useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & Partial<{}> & {
|
|
6
|
+
export declare const selectorChartId: import("reselect").Selector<import("./useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
|
|
7
7
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
8
8
|
} & {
|
|
9
9
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { useChartInteractionListener } from "./useChartInteractionListener.js";
|
|
2
|
+
export type { UseChartInteractionListenerParameters, UseChartInteractionListenerState, UseChartInteractionListenerInstance, UseChartInteractionListenerSignature, ChartInteraction } from "./useChartInteractionListener.types.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useChartInteractionListener } from "./useChartInteractionListener.js";
|
package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { GestureManager, MoveGesture, PanGesture, PinchGesture, PressGesture, TapGesture, TurnWheelGesture } from '@mui/x-internal-gestures/core';
|
|
5
|
+
const preventDefault = event => event.preventDefault();
|
|
6
|
+
export const useChartInteractionListener = ({
|
|
7
|
+
svgRef
|
|
8
|
+
}) => {
|
|
9
|
+
React.useEffect(() => {
|
|
10
|
+
const svg = svgRef.current;
|
|
11
|
+
if (!svg) {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
const gestureManager = new GestureManager({
|
|
15
|
+
gestures: [new PanGesture({
|
|
16
|
+
name: 'pan',
|
|
17
|
+
threshold: 0,
|
|
18
|
+
maxPointers: 1
|
|
19
|
+
}), new MoveGesture({
|
|
20
|
+
name: 'move',
|
|
21
|
+
preventIf: ['pan', 'pinch'] // Prevent move gesture when pan is active
|
|
22
|
+
}), new PinchGesture({
|
|
23
|
+
name: 'pinch',
|
|
24
|
+
threshold: 5,
|
|
25
|
+
preventIf: ['pan']
|
|
26
|
+
}), new TurnWheelGesture({
|
|
27
|
+
name: 'turnWheel',
|
|
28
|
+
sensitivity: 0.01,
|
|
29
|
+
initialDelta: 1
|
|
30
|
+
}), new TapGesture({
|
|
31
|
+
name: 'tap',
|
|
32
|
+
maxDistance: 10,
|
|
33
|
+
preventIf: ['pan', 'pinch']
|
|
34
|
+
}), new PressGesture({
|
|
35
|
+
name: 'quickPress',
|
|
36
|
+
duration: 50,
|
|
37
|
+
maxDistance: 10
|
|
38
|
+
})]
|
|
39
|
+
});
|
|
40
|
+
gestureManager.registerElement(['pan', 'move', 'pinch', 'turnWheel', 'tap', 'quickPress'], svg);
|
|
41
|
+
return () => {
|
|
42
|
+
// Cleanup gesture manager
|
|
43
|
+
gestureManager.destroy();
|
|
44
|
+
};
|
|
45
|
+
}, [svgRef]);
|
|
46
|
+
const addInteractionListener = React.useCallback((interaction, callback, options) => {
|
|
47
|
+
// Forcefully cast the svgRef to any, it is annoying to fix the types.
|
|
48
|
+
const svg = svgRef.current;
|
|
49
|
+
svg?.addEventListener(interaction, callback, options);
|
|
50
|
+
return {
|
|
51
|
+
cleanup: () => svg?.removeEventListener(interaction, callback)
|
|
52
|
+
};
|
|
53
|
+
}, [svgRef]);
|
|
54
|
+
React.useEffect(() => {
|
|
55
|
+
const svg = svgRef.current;
|
|
56
|
+
|
|
57
|
+
// Disable gesture on safari
|
|
58
|
+
// https://use-gesture.netlify.app/docs/gestures/#about-the-pinch-gesture
|
|
59
|
+
svg?.addEventListener('gesturestart', preventDefault);
|
|
60
|
+
svg?.addEventListener('gesturechange', preventDefault);
|
|
61
|
+
svg?.addEventListener('gestureend', preventDefault);
|
|
62
|
+
return () => {
|
|
63
|
+
svg?.removeEventListener('gesturestart', preventDefault);
|
|
64
|
+
svg?.removeEventListener('gesturechange', preventDefault);
|
|
65
|
+
svg?.removeEventListener('gestureend', preventDefault);
|
|
66
|
+
};
|
|
67
|
+
}, [svgRef]);
|
|
68
|
+
return {
|
|
69
|
+
instance: {
|
|
70
|
+
addInteractionListener
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
useChartInteractionListener.params = {};
|
|
75
|
+
useChartInteractionListener.getInitialState = () => {
|
|
76
|
+
return {};
|
|
77
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { MoveEvent, PanEvent, PinchEvent, PressEvent, TapEvent, TurnWheelEvent } from '@mui/x-internal-gestures/core';
|
|
2
|
+
import { ChartPluginSignature } from "../../models/index.js";
|
|
3
|
+
export type ChartInteraction = 'pan' | 'panStart' | 'panEnd' | 'pinch' | 'pinchStart' | 'pinchEnd' | 'move' | 'moveStart' | 'moveEnd' | 'quickPress' | 'quickPressEnd' | 'turnWheel' | 'tap';
|
|
4
|
+
export type InteractionListenerResult = {
|
|
5
|
+
cleanup: () => void;
|
|
6
|
+
};
|
|
7
|
+
export type AddInteractionListener = {
|
|
8
|
+
<CustomData extends Record<string, unknown> = Record<string, unknown>>(interaction: 'pan' | 'panStart' | 'panEnd', callback: (event: PanEvent<CustomData>) => void, options?: boolean | AddEventListenerOptions): InteractionListenerResult;
|
|
9
|
+
<CustomData extends Record<string, unknown> = Record<string, unknown>>(interaction: 'pinch' | 'pinchStart' | 'pinchEnd', callback: (event: PinchEvent<CustomData>) => void, options?: boolean | AddEventListenerOptions): InteractionListenerResult;
|
|
10
|
+
<CustomData extends Record<string, unknown> = Record<string, unknown>>(interaction: 'turnWheel', callback: (event: TurnWheelEvent<CustomData>) => void, options?: boolean | AddEventListenerOptions): InteractionListenerResult;
|
|
11
|
+
<CustomData extends Record<string, unknown> = Record<string, unknown>>(interaction: 'move' | 'moveStart' | 'moveEnd', callback: (event: MoveEvent<CustomData>) => void, options?: boolean | AddEventListenerOptions): InteractionListenerResult;
|
|
12
|
+
<CustomData extends Record<string, unknown> = Record<string, unknown>>(interaction: 'tap', callback: (event: TapEvent<CustomData>) => void, options?: boolean | AddEventListenerOptions): InteractionListenerResult;
|
|
13
|
+
<CustomData extends Record<string, unknown> = Record<string, unknown>>(interaction: 'quickPress' | 'quickPressEnd', callback: (event: PressEvent<CustomData>) => void, options?: boolean | AddEventListenerOptions): InteractionListenerResult;
|
|
14
|
+
};
|
|
15
|
+
export interface UseChartInteractionListenerParameters {}
|
|
16
|
+
export interface UseChartInteractionListenerState {}
|
|
17
|
+
export interface UseChartInteractionListenerInstance {
|
|
18
|
+
/**
|
|
19
|
+
* Adds an interaction listener to the SVG element.
|
|
20
|
+
*
|
|
21
|
+
* @param interaction The interaction to listen to.
|
|
22
|
+
* @param callback The callback to call when the interaction occurs.
|
|
23
|
+
*/
|
|
24
|
+
addInteractionListener: AddInteractionListener;
|
|
25
|
+
}
|
|
26
|
+
export type UseChartInteractionListenerSignature = ChartPluginSignature<{
|
|
27
|
+
params: UseChartInteractionListenerParameters;
|
|
28
|
+
defaultizedParams: UseChartInteractionListenerParameters;
|
|
29
|
+
state: UseChartInteractionListenerState;
|
|
30
|
+
instance: UseChartInteractionListenerInstance;
|
|
31
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ChartRootSelector } from "../../utils/selectors.js";
|
|
2
2
|
import { UseChartSeriesSignature } from "./useChartSeries.types.js";
|
|
3
3
|
export declare const selectorChartSeriesState: ChartRootSelector<UseChartSeriesSignature>;
|
|
4
|
-
export declare const selectorChartSeriesProcessed: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("./useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & Partial<{}> & {
|
|
4
|
+
export declare const selectorChartSeriesProcessed: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("./useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
|
|
5
5
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
6
6
|
} & {
|
|
7
7
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
8
8
|
}, import("./useChartSeries.types.js").ProcessedSeries<keyof import("../../../index.js").ChartsSeriesConfig>, any[]>;
|
|
9
|
-
export declare const selectorChartSeriesConfig: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("./useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & Partial<{}> & {
|
|
9
|
+
export declare const selectorChartSeriesConfig: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("./useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
|
|
10
10
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
11
11
|
} & {
|
|
12
12
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
export declare const selectorChartLeftAxisSize: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
1
|
+
export declare const selectorChartLeftAxisSize: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
2
2
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
3
3
|
} & {
|
|
4
4
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
5
5
|
}, number, []>;
|
|
6
|
-
export declare const selectorChartRightAxisSize: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
6
|
+
export declare const selectorChartRightAxisSize: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
7
7
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
8
8
|
} & {
|
|
9
9
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
10
10
|
}, number, []>;
|
|
11
|
-
export declare const selectorChartTopAxisSize: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
11
|
+
export declare const selectorChartTopAxisSize: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
12
12
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
13
13
|
} & {
|
|
14
14
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
15
15
|
}, number, []>;
|
|
16
|
-
export declare const selectorChartBottomAxisSize: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
16
|
+
export declare const selectorChartBottomAxisSize: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
17
17
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
18
18
|
} & {
|
|
19
19
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
@@ -62,39 +62,52 @@ export const useChartCartesianAxis = ({
|
|
|
62
62
|
const usedYAxis = yAxisIds[0];
|
|
63
63
|
React.useEffect(() => {
|
|
64
64
|
const element = svgRef.current;
|
|
65
|
-
if (!isInteractionEnabled || element
|
|
65
|
+
if (!isInteractionEnabled || !element || params.disableAxisListener) {
|
|
66
66
|
return () => {};
|
|
67
67
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const target = 'targetTouches' in event ? event.targetTouches[0] : event;
|
|
73
|
-
const svgPoint = getSVGPoint(element, target);
|
|
74
|
-
if (!instance.isPointInside(svgPoint.x, svgPoint.y, event.target)) {
|
|
68
|
+
|
|
69
|
+
// Clean the interaction when the mouse leaves the chart.
|
|
70
|
+
const moveEndHandler = instance.addInteractionListener('moveEnd', event => {
|
|
71
|
+
if (!event.detail.activeGestures.pan) {
|
|
75
72
|
instance.cleanInteraction?.();
|
|
76
|
-
return;
|
|
77
73
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (!target) {
|
|
83
|
-
return;
|
|
74
|
+
});
|
|
75
|
+
const panEndHandler = instance.addInteractionListener('panEnd', event => {
|
|
76
|
+
if (!event.detail.activeGestures.move) {
|
|
77
|
+
instance.cleanInteraction?.();
|
|
84
78
|
}
|
|
85
|
-
|
|
86
|
-
|
|
79
|
+
});
|
|
80
|
+
const pressEndHandler = instance.addInteractionListener('quickPressEnd', event => {
|
|
81
|
+
if (!event.detail.activeGestures.move && !event.detail.activeGestures.pan) {
|
|
82
|
+
instance.cleanInteraction?.();
|
|
87
83
|
}
|
|
84
|
+
});
|
|
85
|
+
const gestureHandler = event => {
|
|
86
|
+
const srvEvent = event.detail.srcEvent;
|
|
87
|
+
const target = event.detail.target;
|
|
88
|
+
const svgPoint = getSVGPoint(element, srvEvent);
|
|
89
|
+
|
|
90
|
+
// Release the pointer capture if we are panning, as this would cause the tooltip to
|
|
91
|
+
// be locked to the first "section" it touches.
|
|
92
|
+
if (event.detail.srcEvent.buttons >= 1 && target?.hasPointerCapture(event.detail.srcEvent.pointerId) && !target?.closest('[data-charts-zoom-slider]')) {
|
|
93
|
+
target?.releasePointerCapture(event.detail.srcEvent.pointerId);
|
|
94
|
+
}
|
|
95
|
+
if (!instance.isPointInside(svgPoint.x, svgPoint.y, target)) {
|
|
96
|
+
instance.cleanInteraction?.();
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
instance.setPointerCoordinate?.(svgPoint);
|
|
88
100
|
};
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
element.addEventListener('pointerleave', handleOut);
|
|
101
|
+
const moveHandler = instance.addInteractionListener('move', gestureHandler);
|
|
102
|
+
const panHandler = instance.addInteractionListener('pan', gestureHandler);
|
|
103
|
+
const pressHandler = instance.addInteractionListener('quickPress', gestureHandler);
|
|
93
104
|
return () => {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
105
|
+
moveHandler.cleanup();
|
|
106
|
+
moveEndHandler.cleanup();
|
|
107
|
+
panHandler.cleanup();
|
|
108
|
+
panEndHandler.cleanup();
|
|
109
|
+
pressHandler.cleanup();
|
|
110
|
+
pressEndHandler.cleanup();
|
|
98
111
|
};
|
|
99
112
|
}, [svgRef, store, xAxisWithScale, usedXAxis, yAxisWithScale, usedYAxis, instance, params.disableAxisListener, isInteractionEnabled]);
|
|
100
113
|
React.useEffect(() => {
|
|
@@ -103,11 +116,10 @@ export const useChartCartesianAxis = ({
|
|
|
103
116
|
if (element === null || !onAxisClick) {
|
|
104
117
|
return () => {};
|
|
105
118
|
}
|
|
106
|
-
const
|
|
107
|
-
event.preventDefault();
|
|
119
|
+
const axisClickHandler = instance.addInteractionListener('tap', event => {
|
|
108
120
|
let dataIndex = null;
|
|
109
121
|
let isXAxis = false;
|
|
110
|
-
const svgPoint = getSVGPoint(element, event);
|
|
122
|
+
const svgPoint = getSVGPoint(element, event.detail.srcEvent);
|
|
111
123
|
const xIndex = getAxisIndex(xAxisWithScale[usedXAxis], svgPoint.x);
|
|
112
124
|
isXAxis = xIndex !== -1;
|
|
113
125
|
dataIndex = isXAxis ? xIndex : getAxisIndex(yAxisWithScale[usedYAxis], svgPoint.y);
|
|
@@ -130,17 +142,16 @@ export const useChartCartesianAxis = ({
|
|
|
130
142
|
}
|
|
131
143
|
});
|
|
132
144
|
});
|
|
133
|
-
onAxisClick(event, {
|
|
145
|
+
onAxisClick(event.detail.srcEvent, {
|
|
134
146
|
dataIndex,
|
|
135
147
|
axisValue,
|
|
136
148
|
seriesValues
|
|
137
149
|
});
|
|
138
|
-
};
|
|
139
|
-
element.addEventListener('click', handleMouseClick);
|
|
150
|
+
});
|
|
140
151
|
return () => {
|
|
141
|
-
|
|
152
|
+
axisClickHandler.cleanup();
|
|
142
153
|
};
|
|
143
|
-
}, [params.onAxisClick, processedSeries, svgRef, xAxisWithScale, xAxisIds, yAxisWithScale, yAxisIds, usedXAxis, usedYAxis]);
|
|
154
|
+
}, [params.onAxisClick, processedSeries, svgRef, xAxisWithScale, xAxisIds, yAxisWithScale, yAxisIds, usedXAxis, usedYAxis, instance]);
|
|
144
155
|
return {};
|
|
145
156
|
};
|
|
146
157
|
useChartCartesianAxis.params = {
|
|
@@ -4,17 +4,17 @@ export declare const createZoomMap: (zoom: readonly ZoomData[]) => Map<AxisId, Z
|
|
|
4
4
|
/**
|
|
5
5
|
* Following selectors are not exported because they exist in the MIT chart only to ba able to reuse the Zoom state from the pro.
|
|
6
6
|
*/
|
|
7
|
-
export declare const selectorChartZoomIsInteracting: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
7
|
+
export declare const selectorChartZoomIsInteracting: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
8
8
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
9
9
|
} & {
|
|
10
10
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
11
11
|
}, boolean | undefined, []>;
|
|
12
|
-
export declare const selectorChartZoomMap: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
12
|
+
export declare const selectorChartZoomMap: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
13
13
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
14
14
|
} & {
|
|
15
15
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
16
16
|
}, Map<AxisId, ZoomData> | undefined, []>;
|
|
17
|
-
export declare const selectorChartZoomOptionsLookup: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
17
|
+
export declare const selectorChartZoomOptionsLookup: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
18
18
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
19
19
|
} & {
|
|
20
20
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
@@ -26,12 +26,12 @@ export declare const selectorChartAxisZoomOptionsLookup: import("reselect").Sele
|
|
|
26
26
|
/**
|
|
27
27
|
* The only interesting selectors that merge axis data and zoom if provided.
|
|
28
28
|
*/
|
|
29
|
-
export declare const selectorChartXAxis: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
29
|
+
export declare const selectorChartXAxis: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
30
30
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
31
31
|
} & Partial<{}> & {
|
|
32
32
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
33
33
|
}, import("./computeAxisValue.js").ComputeResult<import("../../../index.js").ChartsXAxisProps>, []>;
|
|
34
|
-
export declare const selectorChartYAxis: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
34
|
+
export declare const selectorChartYAxis: 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("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
35
35
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
36
36
|
} & Partial<{}> & {
|
|
37
37
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|