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