@mui/x-charts 7.0.0-alpha.9 → 7.0.0-beta.1
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 +24 -23
- package/BarChart/BarElement.d.ts +1 -1
- package/BarChart/BarElement.js +6 -3
- package/BarChart/BarPlot.d.ts +8 -1
- package/BarChart/BarPlot.js +19 -5
- package/BarChart/formatter.js +1 -1
- package/CHANGELOG.md +386 -38
- package/ChartContainer/ChartContainer.d.ts +12 -0
- package/ChartContainer/ChartContainer.js +197 -0
- package/ChartContainer/index.d.ts +1 -11
- package/ChartContainer/index.js +9 -63
- 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/ChartsXReferenceLine.js +1 -1
- package/ChartsReferenceLine/ChartsYReferenceLine.js +1 -1
- package/ChartsTooltip/ChartsAxisTooltipContent.js +8 -59
- package/ChartsTooltip/ChartsItemTooltipContent.js +1 -11
- package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +8 -58
- package/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -11
- package/ChartsTooltip/utils.d.ts +3 -1
- package/ChartsTooltip/utils.js +8 -0
- package/ChartsVoronoiHandler/ChartsVoronoiHandler.d.ts +7 -0
- package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +92 -44
- 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 +17 -17
- 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 +36 -29
- package/LineChart/LineElement.d.ts +17 -17
- package/LineChart/LineElement.js +16 -36
- package/LineChart/LineHighlightElement.js +3 -2
- package/LineChart/LinePlot.d.ts +12 -7
- package/LineChart/LinePlot.js +89 -56
- package/LineChart/MarkElement.d.ts +5 -2
- package/LineChart/MarkElement.js +26 -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/PieArcLabelPlot.d.ts +1 -1
- package/PieChart/PieArcLabelPlot.js +1 -1
- package/PieChart/PieArcPlot.d.ts +2 -2
- package/PieChart/PieArcPlot.js +6 -6
- package/PieChart/PieChart.d.ts +1 -1
- package/PieChart/PieChart.js +5 -50
- package/PieChart/PiePlot.d.ts +1 -1
- package/PieChart/PiePlot.js +4 -4
- package/README.md +2 -2
- package/ResponsiveChartContainer/ResponsiveChartContainer.d.ts +16 -0
- package/ResponsiveChartContainer/ResponsiveChartContainer.js +250 -0
- package/ResponsiveChartContainer/index.d.ts +1 -15
- package/ResponsiveChartContainer/index.js +8 -113
- package/ScatterChart/Scatter.d.ts +7 -1
- package/ScatterChart/Scatter.js +18 -23
- package/ScatterChart/ScatterChart.d.ts +8 -2
- package/ScatterChart/ScatterChart.js +12 -22
- package/ScatterChart/ScatterPlot.d.ts +1 -1
- package/ScatterChart/ScatterPlot.js +10 -2
- package/SparkLineChart/SparkLineChart.js +2 -0
- 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 +24 -23
- package/esm/BarChart/BarElement.js +6 -3
- package/esm/BarChart/BarPlot.js +19 -5
- package/esm/BarChart/formatter.js +1 -1
- package/esm/ChartContainer/ChartContainer.js +189 -0
- package/esm/ChartContainer/index.js +1 -61
- package/esm/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +77 -0
- package/esm/ChartsOnAxisClickHandler/index.js +1 -0
- package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +1 -1
- package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +1 -1
- package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +8 -59
- package/esm/ChartsTooltip/ChartsItemTooltipContent.js +1 -11
- package/esm/ChartsTooltip/DefaultChartsAxisTooltipContent.js +9 -58
- package/esm/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -11
- package/esm/ChartsTooltip/utils.js +6 -0
- package/esm/ChartsVoronoiHandler/ChartsVoronoiHandler.js +92 -44
- 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 +36 -29
- package/esm/LineChart/LineElement.js +16 -35
- package/esm/LineChart/LineHighlightElement.js +3 -2
- package/esm/LineChart/LinePlot.js +90 -57
- package/esm/LineChart/MarkElement.js +26 -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/PieArcLabelPlot.js +1 -1
- package/esm/PieChart/PieArcPlot.js +6 -6
- package/esm/PieChart/PieChart.js +5 -50
- package/esm/PieChart/PiePlot.js +4 -4
- package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +245 -0
- package/esm/ResponsiveChartContainer/index.js +1 -115
- package/esm/ScatterChart/Scatter.js +18 -23
- package/esm/ScatterChart/ScatterChart.js +12 -22
- package/esm/ScatterChart/ScatterPlot.js +10 -2
- package/esm/SparkLineChart/SparkLineChart.js +2 -0
- 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/geometry.js +1 -1
- 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 +24 -23
- package/legacy/BarChart/BarElement.js +5 -2
- package/legacy/BarChart/BarPlot.js +18 -4
- package/legacy/BarChart/formatter.js +1 -1
- package/legacy/ChartContainer/ChartContainer.js +187 -0
- package/legacy/ChartContainer/index.js +1 -59
- package/legacy/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +75 -0
- package/legacy/ChartsOnAxisClickHandler/index.js +1 -0
- package/legacy/ChartsReferenceLine/ChartsXReferenceLine.js +1 -1
- package/legacy/ChartsReferenceLine/ChartsYReferenceLine.js +1 -1
- package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +8 -61
- package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +1 -11
- package/legacy/ChartsTooltip/DefaultChartsAxisTooltipContent.js +9 -58
- package/legacy/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -11
- package/legacy/ChartsTooltip/utils.js +6 -0
- package/legacy/ChartsVoronoiHandler/ChartsVoronoiHandler.js +88 -44
- 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 +36 -29
- package/legacy/LineChart/LineElement.js +15 -37
- package/legacy/LineChart/LineHighlightElement.js +3 -2
- package/legacy/LineChart/LinePlot.js +97 -63
- package/legacy/LineChart/MarkElement.js +29 -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/PieArcLabelPlot.js +1 -1
- package/legacy/PieChart/PieArcPlot.js +6 -6
- package/legacy/PieChart/PieChart.js +5 -50
- package/legacy/PieChart/PiePlot.js +4 -4
- package/legacy/ResponsiveChartContainer/ResponsiveChartContainer.js +253 -0
- package/legacy/ResponsiveChartContainer/index.js +1 -123
- package/legacy/ScatterChart/Scatter.js +20 -23
- package/legacy/ScatterChart/ScatterChart.js +12 -22
- package/legacy/ScatterChart/ScatterPlot.js +10 -2
- package/legacy/SparkLineChart/SparkLineChart.js +2 -0
- 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/modern/BarChart/BarChart.js +24 -23
- package/modern/BarChart/BarElement.js +6 -3
- package/modern/BarChart/BarPlot.js +19 -5
- package/modern/BarChart/formatter.js +1 -1
- package/modern/ChartContainer/ChartContainer.js +189 -0
- package/modern/ChartContainer/index.js +1 -61
- package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +75 -0
- package/modern/ChartsOnAxisClickHandler/index.js +1 -0
- package/modern/ChartsReferenceLine/ChartsXReferenceLine.js +1 -1
- package/modern/ChartsReferenceLine/ChartsYReferenceLine.js +1 -1
- package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +8 -59
- package/modern/ChartsTooltip/ChartsItemTooltipContent.js +1 -11
- package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +8 -58
- package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -11
- package/modern/ChartsTooltip/utils.js +6 -0
- package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +92 -44
- 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 +36 -29
- package/modern/LineChart/LineElement.js +16 -35
- package/modern/LineChart/LineHighlightElement.js +3 -2
- package/modern/LineChart/LinePlot.js +89 -56
- package/modern/LineChart/MarkElement.js +26 -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/PieArcLabelPlot.js +1 -1
- package/modern/PieChart/PieArcPlot.js +6 -6
- package/modern/PieChart/PieChart.js +5 -50
- package/modern/PieChart/PiePlot.js +4 -4
- package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +242 -0
- package/modern/ResponsiveChartContainer/index.js +1 -112
- package/modern/ScatterChart/Scatter.js +18 -23
- package/modern/ScatterChart/ScatterChart.js +12 -22
- package/modern/ScatterChart/ScatterPlot.js +10 -2
- package/modern/SparkLineChart/SparkLineChart.js +2 -0
- 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
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.ResponsiveChartContainer = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
|
+
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
|
+
var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
|
|
13
|
+
var _ownerWindow = _interopRequireDefault(require("@mui/utils/ownerWindow"));
|
|
14
|
+
var _styles = require("@mui/material/styles");
|
|
15
|
+
var _ChartContainer = require("../ChartContainer");
|
|
16
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
+
const _excluded = ["width", "height"];
|
|
18
|
+
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); }
|
|
19
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
|
+
const useChartDimensions = (inWidth, inHeight) => {
|
|
21
|
+
const rootRef = React.useRef(null);
|
|
22
|
+
const displayError = React.useRef(false);
|
|
23
|
+
const [width, setWidth] = React.useState(0);
|
|
24
|
+
const [height, setHeight] = React.useState(0);
|
|
25
|
+
|
|
26
|
+
// Adaptation of the `computeSizeAndPublishResizeEvent` from the grid.
|
|
27
|
+
const computeSize = React.useCallback(() => {
|
|
28
|
+
const mainEl = rootRef?.current;
|
|
29
|
+
if (!mainEl) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const win = (0, _ownerWindow.default)(mainEl);
|
|
33
|
+
const computedStyle = win.getComputedStyle(mainEl);
|
|
34
|
+
const newHeight = Math.floor(parseFloat(computedStyle.height)) || 0;
|
|
35
|
+
const newWidth = Math.floor(parseFloat(computedStyle.width)) || 0;
|
|
36
|
+
setWidth(newWidth);
|
|
37
|
+
setHeight(newHeight);
|
|
38
|
+
}, []);
|
|
39
|
+
React.useEffect(() => {
|
|
40
|
+
// Ensure the error detection occurs after the first rendering.
|
|
41
|
+
displayError.current = true;
|
|
42
|
+
}, []);
|
|
43
|
+
(0, _useEnhancedEffect.default)(() => {
|
|
44
|
+
if (inWidth !== undefined && inHeight !== undefined) {
|
|
45
|
+
return () => {};
|
|
46
|
+
}
|
|
47
|
+
computeSize();
|
|
48
|
+
const elementToObserve = rootRef.current;
|
|
49
|
+
if (typeof ResizeObserver === 'undefined') {
|
|
50
|
+
return () => {};
|
|
51
|
+
}
|
|
52
|
+
let animationFrame;
|
|
53
|
+
const observer = new ResizeObserver(() => {
|
|
54
|
+
// See https://github.com/mui/mui-x/issues/8733
|
|
55
|
+
animationFrame = requestAnimationFrame(() => {
|
|
56
|
+
computeSize();
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
if (elementToObserve) {
|
|
60
|
+
observer.observe(elementToObserve);
|
|
61
|
+
}
|
|
62
|
+
return () => {
|
|
63
|
+
if (animationFrame) {
|
|
64
|
+
window.cancelAnimationFrame(animationFrame);
|
|
65
|
+
}
|
|
66
|
+
if (elementToObserve) {
|
|
67
|
+
observer.unobserve(elementToObserve);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
}, [computeSize, inHeight, inWidth]);
|
|
71
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
72
|
+
if (displayError.current && inWidth === undefined && width === 0) {
|
|
73
|
+
console.error(`MUI X Charts: ChartContainer does not have \`width\` prop, and its container has no \`width\` defined.`);
|
|
74
|
+
displayError.current = false;
|
|
75
|
+
}
|
|
76
|
+
if (displayError.current && inHeight === undefined && height === 0) {
|
|
77
|
+
console.error(`MUI X Charts: ChartContainer does not have \`height\` prop, and its container has no \`height\` defined.`);
|
|
78
|
+
displayError.current = false;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return [rootRef, inWidth ?? width, inHeight ?? height];
|
|
82
|
+
};
|
|
83
|
+
const ResizableContainer = (0, _styles.styled)('div', {
|
|
84
|
+
name: 'MuiResponsiveChart',
|
|
85
|
+
slot: 'Container'
|
|
86
|
+
})(({
|
|
87
|
+
ownerState
|
|
88
|
+
}) => ({
|
|
89
|
+
width: ownerState.width ?? '100%',
|
|
90
|
+
height: ownerState.height ?? '100%',
|
|
91
|
+
display: 'flex',
|
|
92
|
+
position: 'relative',
|
|
93
|
+
flexGrow: 1,
|
|
94
|
+
flexDirection: 'column',
|
|
95
|
+
alignItems: 'center',
|
|
96
|
+
justifyContent: 'center',
|
|
97
|
+
overflow: 'hidden',
|
|
98
|
+
'&>svg': {
|
|
99
|
+
width: '100%',
|
|
100
|
+
height: '100%'
|
|
101
|
+
}
|
|
102
|
+
}));
|
|
103
|
+
const ResponsiveChartContainer = exports.ResponsiveChartContainer = /*#__PURE__*/React.forwardRef(function ResponsiveChartContainer(props, ref) {
|
|
104
|
+
const {
|
|
105
|
+
width: inWidth,
|
|
106
|
+
height: inHeight
|
|
107
|
+
} = props,
|
|
108
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
109
|
+
const [containerRef, width, height] = useChartDimensions(inWidth, inHeight);
|
|
110
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ResizableContainer, {
|
|
111
|
+
ref: containerRef,
|
|
112
|
+
ownerState: {
|
|
113
|
+
width: inWidth,
|
|
114
|
+
height: inHeight
|
|
115
|
+
},
|
|
116
|
+
children: width && height ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartContainer.ChartContainer, (0, _extends2.default)({}, other, {
|
|
117
|
+
width: width,
|
|
118
|
+
height: height,
|
|
119
|
+
ref: ref
|
|
120
|
+
})) : null
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
process.env.NODE_ENV !== "production" ? ResponsiveChartContainer.propTypes = {
|
|
124
|
+
// ----------------------------- Warning --------------------------------
|
|
125
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
126
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
127
|
+
// ----------------------------------------------------------------------
|
|
128
|
+
children: _propTypes.default.node,
|
|
129
|
+
className: _propTypes.default.string,
|
|
130
|
+
/**
|
|
131
|
+
* Color palette used to colorize multiple series.
|
|
132
|
+
* @default blueberryTwilightPalette
|
|
133
|
+
*/
|
|
134
|
+
colors: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string), _propTypes.default.func]),
|
|
135
|
+
/**
|
|
136
|
+
* An array of objects that can be used to populate series and axes data using their `dataKey` property.
|
|
137
|
+
*/
|
|
138
|
+
dataset: _propTypes.default.arrayOf(_propTypes.default.object),
|
|
139
|
+
desc: _propTypes.default.string,
|
|
140
|
+
/**
|
|
141
|
+
* If `true`, the charts will not listen to the mouse move event.
|
|
142
|
+
* It might break interactive features, but will improve performance.
|
|
143
|
+
* @default false
|
|
144
|
+
*/
|
|
145
|
+
disableAxisListener: _propTypes.default.bool,
|
|
146
|
+
/**
|
|
147
|
+
* The height of the chart in px. If not defined, it takes the height of the parent element.
|
|
148
|
+
* @default undefined
|
|
149
|
+
*/
|
|
150
|
+
height: _propTypes.default.number,
|
|
151
|
+
/**
|
|
152
|
+
* The margin between the SVG and the drawing area.
|
|
153
|
+
* It's used for leaving some space for extra information such as the x- and y-axis or legend.
|
|
154
|
+
* Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
|
|
155
|
+
* @default object Depends on the charts type.
|
|
156
|
+
*/
|
|
157
|
+
margin: _propTypes.default.shape({
|
|
158
|
+
bottom: _propTypes.default.number,
|
|
159
|
+
left: _propTypes.default.number,
|
|
160
|
+
right: _propTypes.default.number,
|
|
161
|
+
top: _propTypes.default.number
|
|
162
|
+
}),
|
|
163
|
+
/**
|
|
164
|
+
* The array of series to display.
|
|
165
|
+
* Each type of series has its own specificity.
|
|
166
|
+
* Please refer to the appropriate docs page to learn more about it.
|
|
167
|
+
*/
|
|
168
|
+
series: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
|
|
169
|
+
sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
|
|
170
|
+
title: _propTypes.default.string,
|
|
171
|
+
viewBox: _propTypes.default.shape({
|
|
172
|
+
height: _propTypes.default.number,
|
|
173
|
+
width: _propTypes.default.number,
|
|
174
|
+
x: _propTypes.default.number,
|
|
175
|
+
y: _propTypes.default.number
|
|
176
|
+
}),
|
|
177
|
+
/**
|
|
178
|
+
* The width of the chart in px. If not defined, it takes the width of the parent element.
|
|
179
|
+
* @default undefined
|
|
180
|
+
*/
|
|
181
|
+
width: _propTypes.default.number,
|
|
182
|
+
/**
|
|
183
|
+
* The configuration of the x-axes.
|
|
184
|
+
* If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
|
|
185
|
+
*/
|
|
186
|
+
xAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
187
|
+
axisId: _propTypes.default.string,
|
|
188
|
+
classes: _propTypes.default.object,
|
|
189
|
+
data: _propTypes.default.array,
|
|
190
|
+
dataKey: _propTypes.default.string,
|
|
191
|
+
disableLine: _propTypes.default.bool,
|
|
192
|
+
disableTicks: _propTypes.default.bool,
|
|
193
|
+
fill: _propTypes.default.string,
|
|
194
|
+
hideTooltip: _propTypes.default.bool,
|
|
195
|
+
id: _propTypes.default.string,
|
|
196
|
+
label: _propTypes.default.string,
|
|
197
|
+
labelFontSize: _propTypes.default.number,
|
|
198
|
+
labelStyle: _propTypes.default.object,
|
|
199
|
+
max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
200
|
+
min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
201
|
+
position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
|
|
202
|
+
scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
|
|
203
|
+
slotProps: _propTypes.default.object,
|
|
204
|
+
slots: _propTypes.default.object,
|
|
205
|
+
stroke: _propTypes.default.string,
|
|
206
|
+
tickFontSize: _propTypes.default.number,
|
|
207
|
+
tickInterval: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.array, _propTypes.default.func]),
|
|
208
|
+
tickLabelInterval: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.func]),
|
|
209
|
+
tickLabelStyle: _propTypes.default.object,
|
|
210
|
+
tickMaxStep: _propTypes.default.number,
|
|
211
|
+
tickMinStep: _propTypes.default.number,
|
|
212
|
+
tickNumber: _propTypes.default.number,
|
|
213
|
+
tickSize: _propTypes.default.number,
|
|
214
|
+
valueFormatter: _propTypes.default.func
|
|
215
|
+
})),
|
|
216
|
+
/**
|
|
217
|
+
* The configuration of the y-axes.
|
|
218
|
+
* If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
|
|
219
|
+
*/
|
|
220
|
+
yAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
221
|
+
axisId: _propTypes.default.string,
|
|
222
|
+
classes: _propTypes.default.object,
|
|
223
|
+
data: _propTypes.default.array,
|
|
224
|
+
dataKey: _propTypes.default.string,
|
|
225
|
+
disableLine: _propTypes.default.bool,
|
|
226
|
+
disableTicks: _propTypes.default.bool,
|
|
227
|
+
fill: _propTypes.default.string,
|
|
228
|
+
hideTooltip: _propTypes.default.bool,
|
|
229
|
+
id: _propTypes.default.string,
|
|
230
|
+
label: _propTypes.default.string,
|
|
231
|
+
labelFontSize: _propTypes.default.number,
|
|
232
|
+
labelStyle: _propTypes.default.object,
|
|
233
|
+
max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
234
|
+
min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
235
|
+
position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
|
|
236
|
+
scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
|
|
237
|
+
slotProps: _propTypes.default.object,
|
|
238
|
+
slots: _propTypes.default.object,
|
|
239
|
+
stroke: _propTypes.default.string,
|
|
240
|
+
tickFontSize: _propTypes.default.number,
|
|
241
|
+
tickInterval: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.array, _propTypes.default.func]),
|
|
242
|
+
tickLabelInterval: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.func]),
|
|
243
|
+
tickLabelStyle: _propTypes.default.object,
|
|
244
|
+
tickMaxStep: _propTypes.default.number,
|
|
245
|
+
tickMinStep: _propTypes.default.number,
|
|
246
|
+
tickNumber: _propTypes.default.number,
|
|
247
|
+
tickSize: _propTypes.default.number,
|
|
248
|
+
valueFormatter: _propTypes.default.func
|
|
249
|
+
}))
|
|
250
|
+
} : void 0;
|
|
@@ -1,15 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { ChartContainerProps } from '../ChartContainer';
|
|
3
|
-
export interface ResponsiveChartContainerProps extends Omit<ChartContainerProps, 'width' | 'height'> {
|
|
4
|
-
/**
|
|
5
|
-
* The width of the chart in px. If not defined, it takes the width of the parent element.
|
|
6
|
-
* @default undefined
|
|
7
|
-
*/
|
|
8
|
-
width?: number;
|
|
9
|
-
/**
|
|
10
|
-
* The height of the chart in px. If not defined, it takes the height of the parent element.
|
|
11
|
-
* @default undefined
|
|
12
|
-
*/
|
|
13
|
-
height?: number;
|
|
14
|
-
}
|
|
15
|
-
export declare const ResponsiveChartContainer: React.ForwardRefExoticComponent<ResponsiveChartContainerProps & React.RefAttributes<unknown>>;
|
|
1
|
+
export * from './ResponsiveChartContainer';
|
|
@@ -1,121 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
-
const _excluded = ["width", "height"];
|
|
17
|
-
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); }
|
|
18
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
19
|
-
const useChartDimensions = (inWidth, inHeight) => {
|
|
20
|
-
const rootRef = React.useRef(null);
|
|
21
|
-
const displayError = React.useRef(false);
|
|
22
|
-
const [width, setWidth] = React.useState(0);
|
|
23
|
-
const [height, setHeight] = React.useState(0);
|
|
24
|
-
|
|
25
|
-
// Adaptation of the `computeSizeAndPublishResizeEvent` from the grid.
|
|
26
|
-
const computeSize = React.useCallback(() => {
|
|
27
|
-
const mainEl = rootRef?.current;
|
|
28
|
-
if (!mainEl) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
const win = (0, _ownerWindow.default)(mainEl);
|
|
32
|
-
const computedStyle = win.getComputedStyle(mainEl);
|
|
33
|
-
const newHeight = Math.floor(parseFloat(computedStyle.height)) || 0;
|
|
34
|
-
const newWidth = Math.floor(parseFloat(computedStyle.width)) || 0;
|
|
35
|
-
setWidth(newWidth);
|
|
36
|
-
setHeight(newHeight);
|
|
37
|
-
}, []);
|
|
38
|
-
React.useEffect(() => {
|
|
39
|
-
// Ensure the error detection occurs after the first rendering.
|
|
40
|
-
displayError.current = true;
|
|
41
|
-
}, []);
|
|
42
|
-
(0, _useEnhancedEffect.default)(() => {
|
|
43
|
-
if (inWidth !== undefined && inHeight !== undefined) {
|
|
44
|
-
return () => {};
|
|
45
|
-
}
|
|
46
|
-
computeSize();
|
|
47
|
-
const elementToObserve = rootRef.current;
|
|
48
|
-
if (typeof ResizeObserver === 'undefined') {
|
|
49
|
-
return () => {};
|
|
50
|
-
}
|
|
51
|
-
let animationFrame;
|
|
52
|
-
const observer = new ResizeObserver(() => {
|
|
53
|
-
// See https://github.com/mui/mui-x/issues/8733
|
|
54
|
-
animationFrame = requestAnimationFrame(() => {
|
|
55
|
-
computeSize();
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
if (elementToObserve) {
|
|
59
|
-
observer.observe(elementToObserve);
|
|
60
|
-
}
|
|
61
|
-
return () => {
|
|
62
|
-
if (animationFrame) {
|
|
63
|
-
window.cancelAnimationFrame(animationFrame);
|
|
64
|
-
}
|
|
65
|
-
if (elementToObserve) {
|
|
66
|
-
observer.unobserve(elementToObserve);
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
}, [computeSize, inHeight, inWidth]);
|
|
70
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
71
|
-
if (displayError.current && inWidth === undefined && width === 0) {
|
|
72
|
-
console.error(`MUI X Charts: ChartContainer does not have \`width\` prop, and its container has no \`width\` defined.`);
|
|
73
|
-
displayError.current = false;
|
|
74
|
-
}
|
|
75
|
-
if (displayError.current && inHeight === undefined && height === 0) {
|
|
76
|
-
console.error(`MUI X Charts: ChartContainer does not have \`height\` prop, and its container has no \`height\` defined.`);
|
|
77
|
-
displayError.current = false;
|
|
6
|
+
var _ResponsiveChartContainer = require("./ResponsiveChartContainer");
|
|
7
|
+
Object.keys(_ResponsiveChartContainer).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _ResponsiveChartContainer[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _ResponsiveChartContainer[key];
|
|
78
14
|
}
|
|
79
|
-
}
|
|
80
|
-
return [rootRef, inWidth ?? width, inHeight ?? height];
|
|
81
|
-
};
|
|
82
|
-
const ResizableContainer = (0, _styles.styled)('div', {
|
|
83
|
-
name: 'MuiResponsiveChart',
|
|
84
|
-
slot: 'Container'
|
|
85
|
-
})(({
|
|
86
|
-
ownerState
|
|
87
|
-
}) => ({
|
|
88
|
-
width: ownerState.width ?? '100%',
|
|
89
|
-
height: ownerState.height ?? '100%',
|
|
90
|
-
display: 'flex',
|
|
91
|
-
position: 'relative',
|
|
92
|
-
flexGrow: 1,
|
|
93
|
-
flexDirection: 'column',
|
|
94
|
-
alignItems: 'center',
|
|
95
|
-
justifyContent: 'center',
|
|
96
|
-
overflow: 'hidden',
|
|
97
|
-
'&>svg': {
|
|
98
|
-
width: '100%',
|
|
99
|
-
height: '100%'
|
|
100
|
-
}
|
|
101
|
-
}));
|
|
102
|
-
const ResponsiveChartContainer = exports.ResponsiveChartContainer = /*#__PURE__*/React.forwardRef(function ResponsiveChartContainer(props, ref) {
|
|
103
|
-
const {
|
|
104
|
-
width: inWidth,
|
|
105
|
-
height: inHeight
|
|
106
|
-
} = props,
|
|
107
|
-
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
108
|
-
const [containerRef, width, height] = useChartDimensions(inWidth, inHeight);
|
|
109
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ResizableContainer, {
|
|
110
|
-
ref: containerRef,
|
|
111
|
-
ownerState: {
|
|
112
|
-
width: inWidth,
|
|
113
|
-
height: inHeight
|
|
114
|
-
},
|
|
115
|
-
children: width && height ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartContainer.ChartContainer, (0, _extends2.default)({}, other, {
|
|
116
|
-
width: width,
|
|
117
|
-
height: height,
|
|
118
|
-
ref: ref
|
|
119
|
-
})) : null
|
|
120
15
|
});
|
|
121
16
|
});
|
|
@@ -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,26 +102,13 @@ process.env.NODE_ENV !== "production" ? Scatter.propTypes = {
|
|
|
94
102
|
// ----------------------------------------------------------------------
|
|
95
103
|
color: _propTypes.default.string.isRequired,
|
|
96
104
|
markerSize: _propTypes.default.number.isRequired,
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
disableHover: _propTypes.default.bool,
|
|
105
|
-
highlightScope: _propTypes.default.shape({
|
|
106
|
-
faded: _propTypes.default.oneOf(['global', 'none', 'series']),
|
|
107
|
-
highlighted: _propTypes.default.oneOf(['item', 'none', 'series'])
|
|
108
|
-
}),
|
|
109
|
-
id: _propTypes.default.string.isRequired,
|
|
110
|
-
label: _propTypes.default.string,
|
|
111
|
-
markerSize: _propTypes.default.number,
|
|
112
|
-
type: _propTypes.default.oneOf(['scatter']).isRequired,
|
|
113
|
-
valueFormatter: _propTypes.default.func.isRequired,
|
|
114
|
-
xAxisKey: _propTypes.default.string,
|
|
115
|
-
yAxisKey: _propTypes.default.string
|
|
116
|
-
}).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,
|
|
111
|
+
series: _propTypes.default.object.isRequired,
|
|
117
112
|
xScale: _propTypes.default.func.isRequired,
|
|
118
113
|
yScale: _propTypes.default.func.isRequired
|
|
119
114
|
} : void 0;
|
|
@@ -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
|
|
@@ -203,6 +206,12 @@ 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`.
|
|
@@ -230,26 +239,7 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
|
|
|
230
239
|
tickNumber: _propTypes.default.number,
|
|
231
240
|
tickSize: _propTypes.default.number
|
|
232
241
|
}), _propTypes.default.string]),
|
|
233
|
-
series: _propTypes.default.arrayOf(_propTypes.default.
|
|
234
|
-
color: _propTypes.default.string,
|
|
235
|
-
data: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
236
|
-
id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
|
|
237
|
-
x: _propTypes.default.number.isRequired,
|
|
238
|
-
y: _propTypes.default.number.isRequired
|
|
239
|
-
})).isRequired,
|
|
240
|
-
disableHover: _propTypes.default.bool,
|
|
241
|
-
highlightScope: _propTypes.default.shape({
|
|
242
|
-
faded: _propTypes.default.oneOf(['global', 'none', 'series']),
|
|
243
|
-
highlighted: _propTypes.default.oneOf(['item', 'none', 'series'])
|
|
244
|
-
}),
|
|
245
|
-
id: _propTypes.default.string,
|
|
246
|
-
label: _propTypes.default.string,
|
|
247
|
-
markerSize: _propTypes.default.number,
|
|
248
|
-
type: _propTypes.default.oneOf(['scatter']),
|
|
249
|
-
valueFormatter: _propTypes.default.func,
|
|
250
|
-
xAxisKey: _propTypes.default.string,
|
|
251
|
-
yAxisKey: _propTypes.default.string
|
|
252
|
-
})).isRequired,
|
|
242
|
+
series: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
|
|
253
243
|
/**
|
|
254
244
|
* The props used for each component slot.
|
|
255
245
|
* @default {}
|
|
@@ -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 {}
|
|
@@ -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, {
|
|
@@ -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:
|