@mui/x-charts-pro 8.4.0 → 8.5.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/BarChartPro/BarChartPro.d.ts +13 -5
- package/BarChartPro/BarChartPro.js +19 -1
- package/CHANGELOG.md +103 -0
- package/ChartContainerPro/ChartContainerPro.d.ts +0 -1
- package/ChartContainerPro/ChartProApi.d.ts +26 -0
- package/ChartContainerPro/ChartProApi.js +5 -0
- package/ChartContainerPro/index.d.ts +2 -1
- package/ChartContainerPro/index.js +11 -0
- package/ChartDataProviderPro/ChartDataProviderPro.d.ts +11 -1
- package/ChartDataProviderPro/ChartDataProviderPro.js +19 -3
- package/ChartDataProviderPro/useChartDataProviderProProps.d.ts +2 -0
- package/ChartDataProviderPro/useChartDataProviderProProps.js +5 -1
- package/ChartZoomSlider/internals/ChartAxisZoomSlider.d.ts +1 -3
- package/ChartZoomSlider/internals/ChartAxisZoomSlider.js +25 -315
- package/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.d.ts +24 -0
- package/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.js +251 -0
- package/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.d.ts +18 -0
- package/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.js +160 -0
- package/ChartZoomSlider/internals/constants.d.ts +5 -0
- package/ChartZoomSlider/internals/constants.js +11 -0
- package/ChartZoomSlider/internals/zoom-utils.d.ts +4 -0
- package/ChartZoomSlider/internals/zoom-utils.js +48 -0
- package/ChartsToolbarPro/ChartsToolbarPro.d.ts +8 -1
- package/ChartsToolbarPro/ChartsToolbarPro.js +42 -8
- package/ChartsToolbarPro/ChartsToolbarZoomInButton.d.ts +16 -0
- package/ChartsToolbarPro/ChartsToolbarZoomInButton.js +56 -0
- package/ChartsToolbarPro/ChartsToolbarZoomOutButton.d.ts +16 -0
- package/ChartsToolbarPro/ChartsToolbarZoomOutButton.js +56 -0
- package/ChartsToolbarPro/index.d.ts +3 -1
- package/ChartsToolbarPro/index.js +22 -0
- package/FunnelChart/FunnelChart.d.ts +2 -1
- package/FunnelChart/FunnelChart.js +2 -20
- package/FunnelChart/FunnelChart.plugins.d.ts +4 -0
- package/FunnelChart/FunnelChart.plugins.js +9 -0
- package/FunnelChart/funnelSlots.types.d.ts +4 -3
- package/FunnelChart/useFunnelChartProps.d.ts +2 -1
- package/FunnelChart/useFunnelChartProps.js +3 -1
- package/Heatmap/Heatmap.d.ts +17 -4
- package/Heatmap/Heatmap.js +56 -22
- package/Heatmap/Heatmap.plugins.d.ts +2 -1
- package/Heatmap/Heatmap.plugins.js +2 -1
- package/LineChartPro/LineChartPro.d.ts +13 -5
- package/LineChartPro/LineChartPro.js +19 -1
- package/RadarChartPro/RadarChartPro.d.ts +15 -0
- package/RadarChartPro/RadarChartPro.js +202 -0
- package/RadarChartPro/RadarChartPro.plugins.d.ts +4 -0
- package/RadarChartPro/RadarChartPro.plugins.js +9 -0
- package/RadarChartPro/index.d.ts +1 -0
- package/RadarChartPro/index.js +16 -0
- package/ScatterChartPro/ScatterChartPro.d.ts +13 -5
- package/ScatterChartPro/ScatterChartPro.js +19 -1
- package/context/index.d.ts +1 -0
- package/context/index.js +16 -0
- package/context/useChartApiContext.d.ts +9 -0
- package/context/useChartApiContext.js +17 -0
- package/esm/BarChartPro/BarChartPro.d.ts +13 -5
- package/esm/BarChartPro/BarChartPro.js +19 -1
- package/esm/ChartContainerPro/ChartContainerPro.d.ts +0 -1
- package/esm/ChartContainerPro/ChartProApi.d.ts +26 -0
- package/esm/ChartContainerPro/ChartProApi.js +1 -0
- package/esm/ChartContainerPro/index.d.ts +2 -1
- package/esm/ChartContainerPro/index.js +2 -1
- package/esm/ChartDataProviderPro/ChartDataProviderPro.d.ts +11 -1
- package/esm/ChartDataProviderPro/ChartDataProviderPro.js +20 -4
- package/esm/ChartDataProviderPro/useChartDataProviderProProps.d.ts +2 -0
- package/esm/ChartDataProviderPro/useChartDataProviderProProps.js +5 -1
- package/esm/ChartZoomSlider/internals/ChartAxisZoomSlider.d.ts +1 -3
- package/esm/ChartZoomSlider/internals/ChartAxisZoomSlider.js +19 -306
- package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.d.ts +24 -0
- package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.js +243 -0
- package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.d.ts +18 -0
- package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.js +152 -0
- package/esm/ChartZoomSlider/internals/constants.d.ts +5 -0
- package/esm/ChartZoomSlider/internals/constants.js +5 -0
- package/esm/ChartZoomSlider/internals/zoom-utils.d.ts +4 -0
- package/esm/ChartZoomSlider/internals/zoom-utils.js +40 -0
- package/esm/ChartsToolbarPro/ChartsToolbarPro.d.ts +8 -1
- package/esm/ChartsToolbarPro/ChartsToolbarPro.js +42 -9
- package/esm/ChartsToolbarPro/ChartsToolbarZoomInButton.d.ts +16 -0
- package/esm/ChartsToolbarPro/ChartsToolbarZoomInButton.js +50 -0
- package/esm/ChartsToolbarPro/ChartsToolbarZoomOutButton.d.ts +16 -0
- package/esm/ChartsToolbarPro/ChartsToolbarZoomOutButton.js +50 -0
- package/esm/ChartsToolbarPro/index.d.ts +3 -1
- package/esm/ChartsToolbarPro/index.js +3 -1
- package/esm/FunnelChart/FunnelChart.d.ts +2 -1
- package/esm/FunnelChart/FunnelChart.js +2 -20
- package/esm/FunnelChart/FunnelChart.plugins.d.ts +4 -0
- package/esm/FunnelChart/FunnelChart.plugins.js +3 -0
- package/esm/FunnelChart/funnelSlots.types.d.ts +4 -3
- package/esm/FunnelChart/useFunnelChartProps.d.ts +2 -1
- package/esm/FunnelChart/useFunnelChartProps.js +3 -1
- package/esm/Heatmap/Heatmap.d.ts +17 -4
- package/esm/Heatmap/Heatmap.js +56 -22
- package/esm/Heatmap/Heatmap.plugins.d.ts +2 -1
- package/esm/Heatmap/Heatmap.plugins.js +2 -1
- package/esm/LineChartPro/LineChartPro.d.ts +13 -5
- package/esm/LineChartPro/LineChartPro.js +19 -1
- package/esm/RadarChartPro/RadarChartPro.d.ts +15 -0
- package/esm/RadarChartPro/RadarChartPro.js +195 -0
- package/esm/RadarChartPro/RadarChartPro.plugins.d.ts +4 -0
- package/esm/RadarChartPro/RadarChartPro.plugins.js +3 -0
- package/esm/RadarChartPro/index.d.ts +1 -0
- package/esm/RadarChartPro/index.js +1 -0
- package/esm/ScatterChartPro/ScatterChartPro.d.ts +13 -5
- package/esm/ScatterChartPro/ScatterChartPro.js +19 -1
- package/esm/context/index.d.ts +1 -0
- package/esm/context/index.js +1 -0
- package/esm/context/useChartApiContext.d.ts +9 -0
- package/esm/context/useChartApiContext.js +11 -0
- package/esm/hooks/index.d.ts +2 -1
- package/esm/hooks/index.js +2 -1
- package/esm/index.d.ts +2 -1
- package/esm/index.js +2 -1
- package/esm/internals/material/index.d.ts +1 -0
- package/esm/internals/plugins/useChartProZoom/useChartProZoom.js +10 -0
- package/esm/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +358 -0
- package/esm/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +15 -1
- package/esm/internals/plugins/useChartProZoom/useChartProZoom.types.d.ts +7 -0
- package/esm/models/index.d.ts +1 -1
- package/hooks/index.d.ts +2 -1
- package/hooks/index.js +21 -10
- package/index.d.ts +2 -1
- package/index.js +12 -1
- package/internals/material/index.d.ts +1 -0
- package/internals/plugins/useChartProZoom/useChartProZoom.js +10 -0
- package/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +358 -0
- package/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +16 -2
- package/internals/plugins/useChartProZoom/useChartProZoom.types.d.ts +7 -0
- package/models/index.d.ts +1 -1
- package/package.json +5 -5
- package/ChartsToolbarPro/internal/ChartsToolbarZoomInButton.d.ts +0 -13
- package/ChartsToolbarPro/internal/ChartsToolbarZoomInButton.js +0 -36
- package/ChartsToolbarPro/internal/ChartsToolbarZoomOutButton.d.ts +0 -13
- package/ChartsToolbarPro/internal/ChartsToolbarZoomOutButton.js +0 -36
- package/esm/ChartsToolbarPro/internal/ChartsToolbarZoomInButton.d.ts +0 -13
- package/esm/ChartsToolbarPro/internal/ChartsToolbarZoomInButton.js +0 -29
- package/esm/ChartsToolbarPro/internal/ChartsToolbarZoomOutButton.d.ts +0 -13
- package/esm/ChartsToolbarPro/internal/ChartsToolbarZoomOutButton.js +0 -29
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.ChartAxisZoomSliderTrack = ChartAxisZoomSliderTrack;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
|
+
var React = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _internals = require("@mui/x-charts/internals");
|
|
13
|
+
var _styles = require("@mui/material/styles");
|
|
14
|
+
var _rafThrottle = require("@mui/x-internals/rafThrottle");
|
|
15
|
+
var _system = require("@mui/system");
|
|
16
|
+
var _zoomUtils = require("./zoom-utils");
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
+
const _excluded = ["axisId", "axisDirection", "reverse", "onSelectStart", "onSelectEnd"];
|
|
19
|
+
const ZoomSliderTrack = (0, _styles.styled)('rect', {
|
|
20
|
+
shouldForwardProp: prop => (0, _system.shouldForwardProp)(prop) && prop !== 'axisDirection' && prop !== 'isSelecting'
|
|
21
|
+
})(({
|
|
22
|
+
theme
|
|
23
|
+
}) => ({
|
|
24
|
+
fill: theme.palette.mode === 'dark' ? (theme.vars || theme).palette.grey[800] : (theme.vars || theme).palette.grey[300],
|
|
25
|
+
cursor: 'pointer',
|
|
26
|
+
variants: [{
|
|
27
|
+
props: {
|
|
28
|
+
axisDirection: 'x',
|
|
29
|
+
isSelecting: true
|
|
30
|
+
},
|
|
31
|
+
style: {
|
|
32
|
+
cursor: 'ew-resize'
|
|
33
|
+
}
|
|
34
|
+
}, {
|
|
35
|
+
props: {
|
|
36
|
+
axisDirection: 'y',
|
|
37
|
+
isSelecting: true
|
|
38
|
+
},
|
|
39
|
+
style: {
|
|
40
|
+
cursor: 'ns-resize'
|
|
41
|
+
}
|
|
42
|
+
}]
|
|
43
|
+
}));
|
|
44
|
+
function ChartAxisZoomSliderTrack(_ref) {
|
|
45
|
+
let {
|
|
46
|
+
axisId,
|
|
47
|
+
axisDirection,
|
|
48
|
+
onSelectStart,
|
|
49
|
+
onSelectEnd
|
|
50
|
+
} = _ref,
|
|
51
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
52
|
+
const ref = React.useRef(null);
|
|
53
|
+
const {
|
|
54
|
+
instance,
|
|
55
|
+
svgRef
|
|
56
|
+
} = (0, _internals.useChartContext)();
|
|
57
|
+
const store = (0, _internals.useStore)();
|
|
58
|
+
const [isSelecting, setIsSelecting] = React.useState(false);
|
|
59
|
+
const onPointerDown = function onPointerDown(event) {
|
|
60
|
+
const rect = ref.current;
|
|
61
|
+
const element = svgRef.current;
|
|
62
|
+
if (!rect || !element) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const pointerDownPoint = (0, _internals.getSVGPoint)(element, event);
|
|
66
|
+
let zoomFromPointerDown = (0, _zoomUtils.calculateZoomFromPoint)(store.getSnapshot(), axisId, pointerDownPoint);
|
|
67
|
+
if (zoomFromPointerDown === null) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const {
|
|
71
|
+
minStart,
|
|
72
|
+
maxEnd
|
|
73
|
+
} = (0, _internals.selectorChartAxisZoomOptionsLookup)(store.getSnapshot(), axisId);
|
|
74
|
+
|
|
75
|
+
// Ensure the zoomFromPointerDown is within the min and max range
|
|
76
|
+
zoomFromPointerDown = Math.max(Math.min(zoomFromPointerDown, maxEnd), minStart);
|
|
77
|
+
let pointerMoved = false;
|
|
78
|
+
const onPointerMove = (0, _rafThrottle.rafThrottle)(function onPointerMove(pointerMoveEvent) {
|
|
79
|
+
const pointerMovePoint = (0, _internals.getSVGPoint)(element, pointerMoveEvent);
|
|
80
|
+
const zoomFromPointerMove = (0, _zoomUtils.calculateZoomFromPoint)(store.getSnapshot(), axisId, pointerMovePoint);
|
|
81
|
+
if (zoomFromPointerMove === null) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
pointerMoved = true;
|
|
85
|
+
const zoomOptions = (0, _internals.selectorChartAxisZoomOptionsLookup)(store.getSnapshot(), axisId);
|
|
86
|
+
instance.setAxisZoomData(axisId, prevZoomData => {
|
|
87
|
+
if (zoomFromPointerMove > zoomFromPointerDown) {
|
|
88
|
+
const end = (0, _zoomUtils.calculateZoomEnd)(zoomFromPointerMove, (0, _extends2.default)({}, prevZoomData, {
|
|
89
|
+
start: zoomFromPointerDown
|
|
90
|
+
}), zoomOptions);
|
|
91
|
+
|
|
92
|
+
/* If the starting point is too close to the end that minSpan wouldn't be respected, we need to update the
|
|
93
|
+
* start point. */
|
|
94
|
+
const start = (0, _zoomUtils.calculateZoomStart)(zoomFromPointerDown, (0, _extends2.default)({}, prevZoomData, {
|
|
95
|
+
start: zoomFromPointerDown,
|
|
96
|
+
end
|
|
97
|
+
}), zoomOptions);
|
|
98
|
+
return (0, _extends2.default)({}, prevZoomData, {
|
|
99
|
+
start,
|
|
100
|
+
end
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
const start = (0, _zoomUtils.calculateZoomStart)(zoomFromPointerMove, (0, _extends2.default)({}, prevZoomData, {
|
|
104
|
+
end: zoomFromPointerDown
|
|
105
|
+
}), zoomOptions);
|
|
106
|
+
|
|
107
|
+
/* If the starting point is too close to the start that minSpan wouldn't be respected, we need to update the
|
|
108
|
+
* start point. */
|
|
109
|
+
const end = (0, _zoomUtils.calculateZoomEnd)(zoomFromPointerDown, (0, _extends2.default)({}, prevZoomData, {
|
|
110
|
+
start,
|
|
111
|
+
end: zoomFromPointerDown
|
|
112
|
+
}), zoomOptions);
|
|
113
|
+
return (0, _extends2.default)({}, prevZoomData, {
|
|
114
|
+
start,
|
|
115
|
+
end
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
const onPointerUp = function onPointerUp(pointerUpEvent) {
|
|
120
|
+
rect.releasePointerCapture(pointerUpEvent.pointerId);
|
|
121
|
+
rect.removeEventListener('pointermove', onPointerMove);
|
|
122
|
+
document.removeEventListener('pointerup', onPointerUp);
|
|
123
|
+
setIsSelecting(false);
|
|
124
|
+
onSelectEnd?.();
|
|
125
|
+
if (pointerMoved) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// If the pointer didn't move, we still need to respect the zoom constraints (minSpan, etc.)
|
|
130
|
+
// In that case, we assume the start to be the pointerZoom and calculate the end.
|
|
131
|
+
const pointerUpPoint = (0, _internals.getSVGPoint)(element, pointerUpEvent);
|
|
132
|
+
const zoomFromPointerUp = (0, _zoomUtils.calculateZoomFromPoint)(store.getSnapshot(), axisId, pointerUpPoint);
|
|
133
|
+
if (zoomFromPointerUp === null) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const zoomOptions = (0, _internals.selectorChartAxisZoomOptionsLookup)(store.getSnapshot(), axisId);
|
|
137
|
+
instance.setAxisZoomData(axisId, prev => (0, _extends2.default)({}, prev, {
|
|
138
|
+
start: zoomFromPointerUp,
|
|
139
|
+
end: (0, _zoomUtils.calculateZoomEnd)(zoomFromPointerUp, prev, zoomOptions)
|
|
140
|
+
}));
|
|
141
|
+
};
|
|
142
|
+
event.preventDefault();
|
|
143
|
+
event.stopPropagation();
|
|
144
|
+
rect.setPointerCapture(event.pointerId);
|
|
145
|
+
document.addEventListener('pointerup', onPointerUp);
|
|
146
|
+
rect.addEventListener('pointermove', onPointerMove);
|
|
147
|
+
onSelectStart?.();
|
|
148
|
+
setIsSelecting(true);
|
|
149
|
+
instance.setAxisZoomData(axisId, prev => (0, _extends2.default)({}, prev, {
|
|
150
|
+
start: zoomFromPointerDown,
|
|
151
|
+
end: zoomFromPointerDown
|
|
152
|
+
}));
|
|
153
|
+
};
|
|
154
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ZoomSliderTrack, (0, _extends2.default)({
|
|
155
|
+
ref: ref,
|
|
156
|
+
onPointerDown: onPointerDown,
|
|
157
|
+
axisDirection: axisDirection,
|
|
158
|
+
isSelecting: isSelecting
|
|
159
|
+
}, other));
|
|
160
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ZOOM_SLIDER_TRACK_SIZE = exports.ZOOM_SLIDER_THUMB_WIDTH = exports.ZOOM_SLIDER_THUMB_HEIGHT = exports.ZOOM_SLIDER_SIZE = exports.ZOOM_SLIDER_ACTIVE_TRACK_SIZE = void 0;
|
|
7
|
+
const ZOOM_SLIDER_TRACK_SIZE = exports.ZOOM_SLIDER_TRACK_SIZE = 8;
|
|
8
|
+
const ZOOM_SLIDER_ACTIVE_TRACK_SIZE = exports.ZOOM_SLIDER_ACTIVE_TRACK_SIZE = 10;
|
|
9
|
+
const ZOOM_SLIDER_THUMB_HEIGHT = exports.ZOOM_SLIDER_THUMB_HEIGHT = 20;
|
|
10
|
+
const ZOOM_SLIDER_THUMB_WIDTH = exports.ZOOM_SLIDER_THUMB_WIDTH = 10;
|
|
11
|
+
const ZOOM_SLIDER_SIZE = exports.ZOOM_SLIDER_SIZE = Math.max(ZOOM_SLIDER_TRACK_SIZE, ZOOM_SLIDER_ACTIVE_TRACK_SIZE, ZOOM_SLIDER_THUMB_HEIGHT, ZOOM_SLIDER_THUMB_WIDTH);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { AxisId, ChartState, DefaultizedZoomOptions, ZoomData } from '@mui/x-charts/internals';
|
|
2
|
+
export declare function calculateZoomFromPoint(state: ChartState<any>, axisId: AxisId, point: DOMPoint): number | null;
|
|
3
|
+
export declare function calculateZoomStart(newStart: number, currentZoom: ZoomData, options: Pick<DefaultizedZoomOptions, 'minStart' | 'minSpan' | 'maxSpan'>): number;
|
|
4
|
+
export declare function calculateZoomEnd(newEnd: number, currentZoom: ZoomData, options: Pick<DefaultizedZoomOptions, 'maxEnd' | 'minSpan' | 'maxSpan'>): number;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.calculateZoomEnd = calculateZoomEnd;
|
|
7
|
+
exports.calculateZoomFromPoint = calculateZoomFromPoint;
|
|
8
|
+
exports.calculateZoomStart = calculateZoomStart;
|
|
9
|
+
var _internals = require("@mui/x-charts/internals");
|
|
10
|
+
function calculateZoomFromPoint(state, axisId, point) {
|
|
11
|
+
const {
|
|
12
|
+
left,
|
|
13
|
+
top,
|
|
14
|
+
height,
|
|
15
|
+
width
|
|
16
|
+
} = (0, _internals.selectorChartDrawingArea)(state);
|
|
17
|
+
const axis = (0, _internals.selectorChartRawAxis)(state, axisId);
|
|
18
|
+
if (!axis) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
const axisDirection = axis.position === 'right' || axis.position === 'left' ? 'y' : 'x';
|
|
22
|
+
let pointerZoom;
|
|
23
|
+
if (axisDirection === 'x') {
|
|
24
|
+
pointerZoom = (point.x - left) / width * 100;
|
|
25
|
+
} else {
|
|
26
|
+
pointerZoom = (top + height - point.y) / height * 100;
|
|
27
|
+
}
|
|
28
|
+
if (axis.reverse) {
|
|
29
|
+
pointerZoom = 100 - pointerZoom;
|
|
30
|
+
}
|
|
31
|
+
return pointerZoom;
|
|
32
|
+
}
|
|
33
|
+
function calculateZoomStart(newStart, currentZoom, options) {
|
|
34
|
+
const {
|
|
35
|
+
minStart,
|
|
36
|
+
minSpan,
|
|
37
|
+
maxSpan
|
|
38
|
+
} = options;
|
|
39
|
+
return Math.max(minStart, currentZoom.end - maxSpan, Math.min(currentZoom.end - minSpan, newStart));
|
|
40
|
+
}
|
|
41
|
+
function calculateZoomEnd(newEnd, currentZoom, options) {
|
|
42
|
+
const {
|
|
43
|
+
maxEnd,
|
|
44
|
+
minSpan,
|
|
45
|
+
maxSpan
|
|
46
|
+
} = options;
|
|
47
|
+
return Math.min(maxEnd, currentZoom.start + maxSpan, Math.max(currentZoom.start + minSpan, newEnd));
|
|
48
|
+
}
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
+
import { ChartsToolbarProps } from '@mui/x-charts/Toolbar';
|
|
1
2
|
import * as React from 'react';
|
|
2
|
-
|
|
3
|
+
/**
|
|
4
|
+
* The chart toolbar component for the pro package.
|
|
5
|
+
*/
|
|
6
|
+
export declare function ChartsToolbarPro(props: React.PropsWithChildren<ChartsToolbarProps>): React.JSX.Element | null;
|
|
7
|
+
export declare namespace ChartsToolbarPro {
|
|
8
|
+
var propTypes: any;
|
|
9
|
+
}
|
|
@@ -1,31 +1,65 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.ChartsToolbarPro = ChartsToolbarPro;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
10
|
var _Toolbar = require("@mui/x-charts/Toolbar");
|
|
11
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
12
|
var React = _interopRequireWildcard(require("react"));
|
|
10
13
|
var _internals = require("@mui/x-charts/internals");
|
|
14
|
+
var _hooks = require("@mui/x-charts/hooks");
|
|
11
15
|
var _useChartProZoom = require("../internals/plugins/useChartProZoom");
|
|
12
|
-
var _ChartsToolbarZoomInButton = require("./
|
|
13
|
-
var _ChartsToolbarZoomOutButton = require("./
|
|
16
|
+
var _ChartsToolbarZoomInButton = require("./ChartsToolbarZoomInButton");
|
|
17
|
+
var _ChartsToolbarZoomOutButton = require("./ChartsToolbarZoomOutButton");
|
|
14
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
-
|
|
19
|
+
/**
|
|
20
|
+
* The chart toolbar component for the pro package.
|
|
21
|
+
*/
|
|
22
|
+
function ChartsToolbarPro(props) {
|
|
23
|
+
const {
|
|
24
|
+
slots,
|
|
25
|
+
slotProps
|
|
26
|
+
} = (0, _internals.useChartsSlots)();
|
|
16
27
|
const {
|
|
17
28
|
store
|
|
18
29
|
} = (0, _internals.useChartContext)();
|
|
30
|
+
const {
|
|
31
|
+
localeText
|
|
32
|
+
} = (0, _hooks.useChartsLocalization)();
|
|
19
33
|
const isZoomEnabled = (0, _internals.useSelector)(store, _useChartProZoom.selectorChartZoomIsEnabled);
|
|
20
34
|
const children = [];
|
|
21
35
|
if (isZoomEnabled) {
|
|
22
|
-
|
|
23
|
-
|
|
36
|
+
const Tooltip = slots.baseTooltip;
|
|
37
|
+
const ZoomOutIcon = slots.zoomOutIcon;
|
|
38
|
+
const ZoomInIcon = slots.zoomInIcon;
|
|
39
|
+
children.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(Tooltip, (0, _extends2.default)({}, slotProps.baseTooltip, {
|
|
40
|
+
title: localeText.zoomIn,
|
|
41
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsToolbarZoomInButton.ChartsToolbarZoomInButton, {
|
|
42
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ZoomInIcon, (0, _extends2.default)({}, slotProps.zoomInIcon))
|
|
43
|
+
})
|
|
44
|
+
}), "zoom-in"));
|
|
45
|
+
children.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(Tooltip, (0, _extends2.default)({}, slotProps.baseTooltip, {
|
|
46
|
+
title: localeText.zoomOut,
|
|
47
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsToolbarZoomOutButton.ChartsToolbarZoomOutButton, {
|
|
48
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ZoomOutIcon, (0, _extends2.default)({}, slotProps.zoomOutIcon))
|
|
49
|
+
})
|
|
50
|
+
}), "zoom-out"));
|
|
24
51
|
}
|
|
25
52
|
if (children.length === 0) {
|
|
26
53
|
return null;
|
|
27
54
|
}
|
|
28
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Toolbar.Toolbar, {
|
|
55
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Toolbar.Toolbar, (0, _extends2.default)({}, props, {
|
|
29
56
|
children: children
|
|
30
|
-
});
|
|
31
|
-
}
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
process.env.NODE_ENV !== "production" ? ChartsToolbarPro.propTypes = {
|
|
60
|
+
// ----------------------------- Warning --------------------------------
|
|
61
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
62
|
+
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
63
|
+
// ----------------------------------------------------------------------
|
|
64
|
+
className: _propTypes.default.string
|
|
65
|
+
} : void 0;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ChartsSlotProps } from '@mui/x-charts/internals';
|
|
3
|
+
import { RenderProp } from '@mui/x-internals/useComponentRenderer';
|
|
4
|
+
interface ChartsToolbarZoomInButtonProps {
|
|
5
|
+
/**
|
|
6
|
+
* A function to customize the rendering of the component.
|
|
7
|
+
*/
|
|
8
|
+
render?: RenderProp<ChartsSlotProps['baseIconButton']>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The zoom-in button for the chart toolbar.
|
|
12
|
+
*/
|
|
13
|
+
declare const ChartsToolbarZoomInButton: React.ForwardRefExoticComponent<ChartsToolbarZoomInButtonProps & {
|
|
14
|
+
children?: React.ReactNode | undefined;
|
|
15
|
+
} & React.RefAttributes<HTMLButtonElement>>;
|
|
16
|
+
export { ChartsToolbarZoomInButton };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
6
|
+
Object.defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
exports.ChartsToolbarZoomInButton = void 0;
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
12
|
+
var React = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
14
|
+
var _internals = require("@mui/x-charts/internals");
|
|
15
|
+
var _useComponentRenderer = require("@mui/x-internals/useComponentRenderer");
|
|
16
|
+
var _useChartProZoom = require("../internals/plugins/useChartProZoom");
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
+
const _excluded = ["render"];
|
|
19
|
+
/**
|
|
20
|
+
* The zoom-in button for the chart toolbar.
|
|
21
|
+
*/
|
|
22
|
+
const ChartsToolbarZoomInButton = exports.ChartsToolbarZoomInButton = /*#__PURE__*/React.forwardRef(function ChartsToolbarZoomInButton(_ref, ref) {
|
|
23
|
+
let {
|
|
24
|
+
render
|
|
25
|
+
} = _ref,
|
|
26
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
27
|
+
const {
|
|
28
|
+
slots,
|
|
29
|
+
slotProps
|
|
30
|
+
} = (0, _internals.useChartsSlots)();
|
|
31
|
+
const {
|
|
32
|
+
instance,
|
|
33
|
+
store
|
|
34
|
+
} = (0, _internals.useChartContext)();
|
|
35
|
+
const disabled = (0, _internals.useSelector)(store, _useChartProZoom.selectorChartCanZoomIn);
|
|
36
|
+
const element = (0, _useComponentRenderer.useComponentRenderer)(slots.baseIconButton, render, (0, _extends2.default)({}, slotProps?.baseIconButton, {
|
|
37
|
+
onClick: () => instance.zoomIn(),
|
|
38
|
+
disabled
|
|
39
|
+
}, other, {
|
|
40
|
+
ref
|
|
41
|
+
}));
|
|
42
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
|
|
43
|
+
children: element
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
if (process.env.NODE_ENV !== "production") ChartsToolbarZoomInButton.displayName = "ChartsToolbarZoomInButton";
|
|
47
|
+
process.env.NODE_ENV !== "production" ? ChartsToolbarZoomInButton.propTypes = {
|
|
48
|
+
// ----------------------------- Warning --------------------------------
|
|
49
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
50
|
+
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
51
|
+
// ----------------------------------------------------------------------
|
|
52
|
+
/**
|
|
53
|
+
* A function to customize the rendering of the component.
|
|
54
|
+
*/
|
|
55
|
+
render: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.func])
|
|
56
|
+
} : void 0;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ChartsSlotProps } from '@mui/x-charts/internals';
|
|
3
|
+
import { RenderProp } from '@mui/x-internals/useComponentRenderer';
|
|
4
|
+
interface ChartsToolbarZoomOutButtonProps {
|
|
5
|
+
/**
|
|
6
|
+
* A function to customize the rendering of the component.
|
|
7
|
+
*/
|
|
8
|
+
render?: RenderProp<ChartsSlotProps['baseIconButton']>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The zoom-out button for the chart toolbar.
|
|
12
|
+
*/
|
|
13
|
+
declare const ChartsToolbarZoomOutButton: React.ForwardRefExoticComponent<ChartsToolbarZoomOutButtonProps & {
|
|
14
|
+
children?: React.ReactNode | undefined;
|
|
15
|
+
} & React.RefAttributes<HTMLButtonElement>>;
|
|
16
|
+
export { ChartsToolbarZoomOutButton };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
6
|
+
Object.defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
exports.ChartsToolbarZoomOutButton = void 0;
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
12
|
+
var React = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
14
|
+
var _internals = require("@mui/x-charts/internals");
|
|
15
|
+
var _useComponentRenderer = require("@mui/x-internals/useComponentRenderer");
|
|
16
|
+
var _useChartProZoom = require("../internals/plugins/useChartProZoom");
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
+
const _excluded = ["render"];
|
|
19
|
+
/**
|
|
20
|
+
* The zoom-out button for the chart toolbar.
|
|
21
|
+
*/
|
|
22
|
+
const ChartsToolbarZoomOutButton = exports.ChartsToolbarZoomOutButton = /*#__PURE__*/React.forwardRef(function ChartsToolbarZoomOutButton(_ref, ref) {
|
|
23
|
+
let {
|
|
24
|
+
render
|
|
25
|
+
} = _ref,
|
|
26
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
27
|
+
const {
|
|
28
|
+
slots,
|
|
29
|
+
slotProps
|
|
30
|
+
} = (0, _internals.useChartsSlots)();
|
|
31
|
+
const {
|
|
32
|
+
instance,
|
|
33
|
+
store
|
|
34
|
+
} = (0, _internals.useChartContext)();
|
|
35
|
+
const disabled = (0, _internals.useSelector)(store, _useChartProZoom.selectorChartCanZoomOut);
|
|
36
|
+
const element = (0, _useComponentRenderer.useComponentRenderer)(slots.baseIconButton, render, (0, _extends2.default)({}, slotProps?.baseIconButton, {
|
|
37
|
+
onClick: () => instance.zoomOut(),
|
|
38
|
+
disabled
|
|
39
|
+
}, other, {
|
|
40
|
+
ref
|
|
41
|
+
}));
|
|
42
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
|
|
43
|
+
children: element
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
if (process.env.NODE_ENV !== "production") ChartsToolbarZoomOutButton.displayName = "ChartsToolbarZoomOutButton";
|
|
47
|
+
process.env.NODE_ENV !== "production" ? ChartsToolbarZoomOutButton.propTypes = {
|
|
48
|
+
// ----------------------------- Warning --------------------------------
|
|
49
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
50
|
+
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
51
|
+
// ----------------------------------------------------------------------
|
|
52
|
+
/**
|
|
53
|
+
* A function to customize the rendering of the component.
|
|
54
|
+
*/
|
|
55
|
+
render: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.func])
|
|
56
|
+
} : void 0;
|
|
@@ -13,4 +13,26 @@ Object.keys(_ChartsToolbarPro).forEach(function (key) {
|
|
|
13
13
|
return _ChartsToolbarPro[key];
|
|
14
14
|
}
|
|
15
15
|
});
|
|
16
|
+
});
|
|
17
|
+
var _ChartsToolbarZoomInButton = require("./ChartsToolbarZoomInButton");
|
|
18
|
+
Object.keys(_ChartsToolbarZoomInButton).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _ChartsToolbarZoomInButton[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _ChartsToolbarZoomInButton[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _ChartsToolbarZoomOutButton = require("./ChartsToolbarZoomOutButton");
|
|
29
|
+
Object.keys(_ChartsToolbarZoomOutButton).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _ChartsToolbarZoomOutButton[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _ChartsToolbarZoomOutButton[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
16
38
|
});
|
|
@@ -7,7 +7,8 @@ import { FunnelSeriesType } from "./funnel.types.js";
|
|
|
7
7
|
import { ChartContainerProProps } from "../ChartContainerPro/index.js";
|
|
8
8
|
import { FunnelChartSlotExtension } from "./funnelSlots.types.js";
|
|
9
9
|
import { CategoryAxis } from "./categoryAxis.types.js";
|
|
10
|
-
|
|
10
|
+
import { FunnelChartPluginsSignatures } from "./FunnelChart.plugins.js";
|
|
11
|
+
export interface FunnelChartProps extends Omit<ChartContainerProProps<'funnel', FunnelChartPluginsSignatures>, 'series' | 'plugins' | 'zAxis' | 'zoom' | 'onZoomChange' | 'dataset' | 'yAxis' | 'xAxis' | 'rotationAxis' | 'radiusAxis' | 'slots' | 'slotProps'>, Omit<FunnelPlotProps, 'slots' | 'slotProps'>, Omit<ChartsOverlayProps, 'slots' | 'slotProps'>, FunnelChartSlotExtension {
|
|
11
12
|
/**
|
|
12
13
|
* The series to display in the funnel chart.
|
|
13
14
|
* An array of [[FunnelSeriesType]] objects.
|
|
@@ -67,8 +67,7 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
|
|
|
67
67
|
apiRef: _propTypes.default.shape({
|
|
68
68
|
current: _propTypes.default.shape({
|
|
69
69
|
exportAsImage: _propTypes.default.func.isRequired,
|
|
70
|
-
exportAsPrint: _propTypes.default.func.isRequired
|
|
71
|
-
setZoomData: _propTypes.default.func.isRequired
|
|
70
|
+
exportAsPrint: _propTypes.default.func.isRequired
|
|
72
71
|
})
|
|
73
72
|
}),
|
|
74
73
|
/**
|
|
@@ -207,15 +206,6 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
|
|
|
207
206
|
* If you don't provide this prop. It falls back to a randomly generated id.
|
|
208
207
|
*/
|
|
209
208
|
id: _propTypes.default.string,
|
|
210
|
-
/**
|
|
211
|
-
* The list of zoom data related to each axis.
|
|
212
|
-
* Used to initialize the zoom in a specific configuration without controlling it.
|
|
213
|
-
*/
|
|
214
|
-
initialZoom: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
215
|
-
axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
|
|
216
|
-
end: _propTypes.default.number.isRequired,
|
|
217
|
-
start: _propTypes.default.number.isRequired
|
|
218
|
-
})),
|
|
219
209
|
/**
|
|
220
210
|
* If `true`, a loading overlay is displayed.
|
|
221
211
|
* @default false
|
|
@@ -282,13 +272,5 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
|
|
|
282
272
|
/**
|
|
283
273
|
* The width of the chart in px. If not defined, it takes the width of the parent element.
|
|
284
274
|
*/
|
|
285
|
-
width: _propTypes.default.number
|
|
286
|
-
/**
|
|
287
|
-
* The list of zoom data related to each axis.
|
|
288
|
-
*/
|
|
289
|
-
zoomData: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
290
|
-
axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
|
|
291
|
-
end: _propTypes.default.number.isRequired,
|
|
292
|
-
start: _propTypes.default.number.isRequired
|
|
293
|
-
}))
|
|
275
|
+
width: _propTypes.default.number
|
|
294
276
|
} : void 0;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ConvertSignaturesIntoPlugins, UseChartCartesianAxisSignature, UseChartHighlightSignature, UseChartInteractionSignature } from '@mui/x-charts/internals';
|
|
2
|
+
import { UseChartProExportSignature } from "../internals/plugins/useChartProExport/index.js";
|
|
3
|
+
export type FunnelChartPluginsSignatures = [UseChartCartesianAxisSignature, UseChartInteractionSignature, UseChartHighlightSignature, UseChartProExportSignature];
|
|
4
|
+
export declare const FUNNEL_CHART_PLUGINS: ConvertSignaturesIntoPlugins<FunnelChartPluginsSignatures>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FUNNEL_CHART_PLUGINS = void 0;
|
|
7
|
+
var _internals = require("@mui/x-charts/internals");
|
|
8
|
+
var _useChartProExport = require("../internals/plugins/useChartProExport");
|
|
9
|
+
const FUNNEL_CHART_PLUGINS = exports.FUNNEL_CHART_PLUGINS = [_internals.useChartCartesianAxis, _internals.useChartInteraction, _internals.useChartHighlight, _useChartProExport.useChartProExport];
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { ChartsOverlaySlotProps, ChartsOverlaySlots } from '@mui/x-charts/ChartsOverlay';
|
|
2
2
|
import { ChartsTooltipSlotProps, ChartsTooltipSlots } from '@mui/x-charts/ChartsTooltip';
|
|
3
|
-
import { ChartsAxisSlotProps, ChartsAxisSlots } from '@mui/x-charts/internals';
|
|
3
|
+
import { ChartsAxisSlotProps, ChartsAxisSlots, ChartsSlotProps, ChartsSlots } from '@mui/x-charts/internals';
|
|
4
4
|
import { ChartsLegendSlotProps, ChartsLegendSlots } from '@mui/x-charts/ChartsLegend';
|
|
5
|
+
import { ChartsToolbarSlotProps, ChartsToolbarSlots } from '@mui/x-charts/Toolbar';
|
|
5
6
|
import { FunnelPlotSlotProps, FunnelPlotSlots } from "./funnelPlotSlots.types.js";
|
|
6
|
-
export interface FunnelChartSlots extends ChartsAxisSlots, FunnelPlotSlots, ChartsLegendSlots, ChartsTooltipSlots, ChartsOverlaySlots, ChartsAxisSlots {}
|
|
7
|
-
export interface FunnelChartSlotProps extends ChartsAxisSlotProps, FunnelPlotSlotProps, ChartsLegendSlotProps, ChartsTooltipSlotProps, ChartsOverlaySlotProps, ChartsAxisSlotProps {}
|
|
7
|
+
export interface FunnelChartSlots extends ChartsAxisSlots, FunnelPlotSlots, ChartsLegendSlots, ChartsTooltipSlots, ChartsOverlaySlots, ChartsAxisSlots, ChartsToolbarSlots, Partial<ChartsSlots> {}
|
|
8
|
+
export interface FunnelChartSlotProps extends ChartsAxisSlotProps, FunnelPlotSlotProps, ChartsLegendSlotProps, ChartsTooltipSlotProps, ChartsOverlaySlotProps, ChartsAxisSlotProps, ChartsToolbarSlotProps, Partial<ChartsSlotProps> {}
|
|
8
9
|
export interface FunnelChartSlotExtension {
|
|
9
10
|
/**
|
|
10
11
|
* Overridable component slots.
|
|
@@ -3,6 +3,7 @@ import { ChartsAxisProps } from '@mui/x-charts/ChartsAxis';
|
|
|
3
3
|
import { ChartsLegendSlotExtension } from '@mui/x-charts/ChartsLegend';
|
|
4
4
|
import { ChartsWrapperProps } from '@mui/x-charts/internals';
|
|
5
5
|
import { ChartsAxisHighlightProps } from '@mui/x-charts/ChartsAxisHighlight';
|
|
6
|
+
import { FunnelChartPluginsSignatures } from "./FunnelChart.plugins.js";
|
|
6
7
|
import { FunnelPlotProps } from "./FunnelPlot.js";
|
|
7
8
|
import type { FunnelChartProps } from "./FunnelChart.js";
|
|
8
9
|
import { ChartContainerProProps } from "../ChartContainerPro/index.js";
|
|
@@ -14,7 +15,7 @@ import { ChartContainerProProps } from "../ChartContainerPro/index.js";
|
|
|
14
15
|
* @returns An object with props for the children components of FunnelChart
|
|
15
16
|
*/
|
|
16
17
|
export declare const useFunnelChartProps: (props: FunnelChartProps) => {
|
|
17
|
-
chartContainerProps: ChartContainerProProps<"funnel">;
|
|
18
|
+
chartContainerProps: ChartContainerProProps<"funnel", FunnelChartPluginsSignatures>;
|
|
18
19
|
funnelPlotProps: FunnelPlotProps;
|
|
19
20
|
overlayProps: ChartsOverlayProps;
|
|
20
21
|
chartsAxisProps: ChartsAxisProps;
|
|
@@ -12,6 +12,7 @@ var _constants = require("@mui/x-charts/constants");
|
|
|
12
12
|
var _internals = require("@mui/x-charts/internals");
|
|
13
13
|
var _warning = require("@mui/x-internals/warning");
|
|
14
14
|
var _colorPalettes = require("@mui/x-charts/colorPalettes");
|
|
15
|
+
var _FunnelChart = require("./FunnelChart.plugins");
|
|
15
16
|
const _excluded = ["categoryAxis", "series", "width", "height", "margin", "colors", "sx", "children", "slots", "slotProps", "skipAnimation", "loading", "onItemClick", "highlightedItem", "onHighlightChange", "className", "hideLegend", "axisHighlight", "apiRef", "gap"];
|
|
16
17
|
function getCategoryAxisConfig(categoryAxis, series, isHorizontal, direction) {
|
|
17
18
|
const maxSeriesLength = Math.max(...series.map(s => (s.data ?? []).length), 0);
|
|
@@ -119,7 +120,8 @@ const useFunnelChartProps = props => {
|
|
|
119
120
|
highlightedItem,
|
|
120
121
|
onHighlightChange,
|
|
121
122
|
className,
|
|
122
|
-
apiRef
|
|
123
|
+
apiRef,
|
|
124
|
+
plugins: _FunnelChart.FUNNEL_CHART_PLUGINS
|
|
123
125
|
});
|
|
124
126
|
const funnelPlotProps = {
|
|
125
127
|
gap,
|