@mui/x-charts-pro 8.13.0 → 8.14.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.js +49 -37
- package/CHANGELOG.md +171 -1
- package/ChartDataProviderPro/ChartDataProviderPro.js +1 -1
- package/FunnelChart/funnelAxisPlugin/computeAxisValue.js +38 -36
- package/Heatmap/Heatmap.js +0 -4
- package/LineChartPro/LineChartPro.js +49 -37
- package/ScatterChartPro/ScatterChartPro.js +49 -37
- package/esm/BarChartPro/BarChartPro.js +49 -37
- package/esm/ChartDataProviderPro/ChartDataProviderPro.js +1 -1
- package/esm/FunnelChart/funnelAxisPlugin/computeAxisValue.js +39 -37
- package/esm/Heatmap/Heatmap.js +0 -4
- package/esm/LineChartPro/LineChartPro.js +49 -37
- package/esm/ScatterChartPro/ScatterChartPro.js +49 -37
- package/esm/index.js +1 -1
- package/esm/internals/plugins/useChartProZoom/ZoomInteractionConfig.selectors.d.ts +2 -6
- package/esm/internals/plugins/useChartProZoom/ZoomInteractionConfig.types.d.ts +5 -1
- package/esm/internals/plugins/useChartProZoom/gestureHooks/usePanOnPressAndDrag.d.ts +8 -0
- package/esm/internals/plugins/useChartProZoom/gestureHooks/usePanOnPressAndDrag.js +73 -0
- package/esm/internals/plugins/useChartProZoom/useChartProZoom.js +2 -0
- package/index.js +1 -1
- package/internals/plugins/useChartProZoom/ZoomInteractionConfig.selectors.d.ts +2 -6
- package/internals/plugins/useChartProZoom/ZoomInteractionConfig.types.d.ts +5 -1
- package/internals/plugins/useChartProZoom/gestureHooks/usePanOnPressAndDrag.d.ts +8 -0
- package/internals/plugins/useChartProZoom/gestureHooks/usePanOnPressAndDrag.js +80 -0
- package/internals/plugins/useChartProZoom/useChartProZoom.js +2 -0
- package/package.json +7 -7
|
@@ -11,7 +11,7 @@ import { defaultSlotsMaterial } from "../internals/material/index.js";
|
|
|
11
11
|
import { DEFAULT_PLUGINS } from "../internals/plugins/allPlugins.js";
|
|
12
12
|
import { useChartDataProviderProProps } from "./useChartDataProviderProProps.js";
|
|
13
13
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
-
const releaseInfo = "
|
|
14
|
+
const releaseInfo = "MTc1OTk2ODAwMDAwMA==";
|
|
15
15
|
const packageIdentifier = 'x-charts-pro';
|
|
16
16
|
/**
|
|
17
17
|
* Orchestrates the data providers for the chart components and hooks.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import { scaleBand } from '@mui/x-charts-vendor/d3-scale';
|
|
3
|
-
import { getAxisExtrema, isBandScaleConfig, getScale, getColorScale, getOrdinalColorScale, getTickNumber, scaleTickNumberByRange, getCartesianAxisTriggerTooltip, isDateData, createDateFormatter, getDefaultTickNumber } from '@mui/x-charts/internals';
|
|
3
|
+
import { getAxisExtrema, isBandScaleConfig, isPointScaleConfig, isContinuousScaleConfig, getScale, getColorScale, getOrdinalColorScale, getTickNumber, scaleTickNumberByRange, getCartesianAxisTriggerTooltip, isDateData, createDateFormatter, getDefaultTickNumber } from '@mui/x-charts/internals';
|
|
4
4
|
export const xRangeGetter = (drawingArea, reverse, removedSpace = 0) => {
|
|
5
5
|
const range = [drawingArea.left, drawingArea.left + drawingArea.width - removedSpace];
|
|
6
6
|
return reverse ? [range[1], range[0]] : [range[0], range[1]];
|
|
@@ -60,47 +60,49 @@ export function computeAxisValue({
|
|
|
60
60
|
completeAxis[axis.id].valueFormatter = axis.valueFormatter ?? dateFormatter;
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
if (axis
|
|
63
|
+
if (isBandScaleConfig(axis)) {
|
|
64
64
|
return;
|
|
65
65
|
}
|
|
66
|
-
if (axis
|
|
66
|
+
if (isPointScaleConfig(axis)) {
|
|
67
67
|
throw new Error('Point scale is not supported in FunnelChart. Please use band scale instead.');
|
|
68
68
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
69
|
+
if (isContinuousScaleConfig(axis)) {
|
|
70
|
+
const isHorizontal = Object.values(formattedSeries.funnel?.series ?? {}).some(s => s.layout === 'horizontal');
|
|
71
|
+
if (isHorizontal ? axisDirection === 'x' : axisDirection === 'y') {
|
|
72
|
+
// For linear scale replacing the band scale, we remove the space needed for gap from the scale range.
|
|
73
|
+
const itemNumber = formattedSeries.funnel?.series[formattedSeries.funnel.seriesOrder[0]].data.length ?? 0;
|
|
74
|
+
const spaceToRemove = gap * (itemNumber - 1);
|
|
75
|
+
range = getRange(drawingArea, axisDirection, axis, spaceToRemove);
|
|
76
|
+
}
|
|
77
|
+
const scaleType = axis.scaleType ?? 'linear';
|
|
78
|
+
const domainLimit = axis.domainLimit ?? 'nice';
|
|
79
|
+
const axisExtremums = [axis.min ?? minData, axis.max ?? maxData];
|
|
80
|
+
if (typeof domainLimit === 'function') {
|
|
81
|
+
const {
|
|
82
|
+
min,
|
|
83
|
+
max
|
|
84
|
+
} = domainLimit(minData, maxData);
|
|
85
|
+
axisExtremums[0] = min;
|
|
86
|
+
axisExtremums[1] = max;
|
|
87
|
+
}
|
|
88
|
+
const rawTickNumber = getTickNumber(axis, axisExtremums, getDefaultTickNumber(Math.abs(range[1] - range[0])));
|
|
89
|
+
const tickNumber = scaleTickNumberByRange(rawTickNumber, range);
|
|
90
|
+
const scale = getScale(scaleType, axisExtremums, range);
|
|
91
|
+
const finalScale = domainLimit === 'nice' ? scale.nice(rawTickNumber) : scale;
|
|
92
|
+
const [minDomain, maxDomain] = finalScale.domain();
|
|
93
|
+
const domain = [axis.min ?? minDomain, axis.max ?? maxDomain];
|
|
94
|
+
completeAxis[axis.id] = _extends({
|
|
95
|
+
offset: 0,
|
|
96
|
+
height: 0,
|
|
97
|
+
triggerTooltip
|
|
98
|
+
}, axis, {
|
|
99
|
+
data,
|
|
100
|
+
scaleType: scaleType,
|
|
101
|
+
scale: finalScale.domain(domain),
|
|
102
|
+
tickNumber,
|
|
103
|
+
colorScale: axis.colorMap && getColorScale(axis.colorMap)
|
|
104
|
+
});
|
|
86
105
|
}
|
|
87
|
-
const rawTickNumber = getTickNumber(axis, axisExtremums, getDefaultTickNumber(Math.abs(range[1] - range[0])));
|
|
88
|
-
const tickNumber = scaleTickNumberByRange(rawTickNumber, range);
|
|
89
|
-
const scale = getScale(scaleType, axisExtremums, range);
|
|
90
|
-
const finalScale = domainLimit === 'nice' ? scale.nice(rawTickNumber) : scale;
|
|
91
|
-
const [minDomain, maxDomain] = finalScale.domain();
|
|
92
|
-
const domain = [axis.min ?? minDomain, axis.max ?? maxDomain];
|
|
93
|
-
completeAxis[axis.id] = _extends({
|
|
94
|
-
offset: 0,
|
|
95
|
-
height: 0,
|
|
96
|
-
triggerTooltip
|
|
97
|
-
}, axis, {
|
|
98
|
-
data,
|
|
99
|
-
scaleType: scaleType,
|
|
100
|
-
scale: finalScale.domain(domain),
|
|
101
|
-
tickNumber,
|
|
102
|
-
colorScale: axis.colorMap && getColorScale(axis.colorMap)
|
|
103
|
-
});
|
|
104
106
|
});
|
|
105
107
|
return {
|
|
106
108
|
axis: completeAxis,
|
package/esm/Heatmap/Heatmap.js
CHANGED
|
@@ -316,8 +316,6 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
316
316
|
ignoreTooltip: PropTypes.bool,
|
|
317
317
|
label: PropTypes.string,
|
|
318
318
|
labelStyle: PropTypes.object,
|
|
319
|
-
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
320
|
-
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
321
319
|
offset: PropTypes.number,
|
|
322
320
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
323
321
|
reverse: PropTypes.bool,
|
|
@@ -377,8 +375,6 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
377
375
|
ignoreTooltip: PropTypes.bool,
|
|
378
376
|
label: PropTypes.string,
|
|
379
377
|
labelStyle: PropTypes.object,
|
|
380
|
-
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
381
|
-
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
382
378
|
offset: PropTypes.number,
|
|
383
379
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
384
380
|
reverse: PropTypes.bool,
|
|
@@ -317,8 +317,6 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
317
317
|
ignoreTooltip: PropTypes.bool,
|
|
318
318
|
label: PropTypes.string,
|
|
319
319
|
labelStyle: PropTypes.object,
|
|
320
|
-
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
321
|
-
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
322
320
|
offset: PropTypes.number,
|
|
323
321
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
324
322
|
reverse: PropTypes.bool,
|
|
@@ -386,8 +384,6 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
386
384
|
ignoreTooltip: PropTypes.bool,
|
|
387
385
|
label: PropTypes.string,
|
|
388
386
|
labelStyle: PropTypes.object,
|
|
389
|
-
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
390
|
-
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
391
387
|
offset: PropTypes.number,
|
|
392
388
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
393
389
|
reverse: PropTypes.bool,
|
|
@@ -445,8 +441,8 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
445
441
|
ignoreTooltip: PropTypes.bool,
|
|
446
442
|
label: PropTypes.string,
|
|
447
443
|
labelStyle: PropTypes.object,
|
|
448
|
-
max: PropTypes.
|
|
449
|
-
min: PropTypes.
|
|
444
|
+
max: PropTypes.number,
|
|
445
|
+
min: PropTypes.number,
|
|
450
446
|
offset: PropTypes.number,
|
|
451
447
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
452
448
|
reverse: PropTypes.bool,
|
|
@@ -505,8 +501,8 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
505
501
|
ignoreTooltip: PropTypes.bool,
|
|
506
502
|
label: PropTypes.string,
|
|
507
503
|
labelStyle: PropTypes.object,
|
|
508
|
-
max: PropTypes.
|
|
509
|
-
min: PropTypes.
|
|
504
|
+
max: PropTypes.number,
|
|
505
|
+
min: PropTypes.number,
|
|
510
506
|
offset: PropTypes.number,
|
|
511
507
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
512
508
|
reverse: PropTypes.bool,
|
|
@@ -564,8 +560,8 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
564
560
|
ignoreTooltip: PropTypes.bool,
|
|
565
561
|
label: PropTypes.string,
|
|
566
562
|
labelStyle: PropTypes.object,
|
|
567
|
-
max: PropTypes.
|
|
568
|
-
min: PropTypes.
|
|
563
|
+
max: PropTypes.number,
|
|
564
|
+
min: PropTypes.number,
|
|
569
565
|
offset: PropTypes.number,
|
|
570
566
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
571
567
|
reverse: PropTypes.bool,
|
|
@@ -623,8 +619,8 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
623
619
|
ignoreTooltip: PropTypes.bool,
|
|
624
620
|
label: PropTypes.string,
|
|
625
621
|
labelStyle: PropTypes.object,
|
|
626
|
-
max: PropTypes.
|
|
627
|
-
min: PropTypes.
|
|
622
|
+
max: PropTypes.number,
|
|
623
|
+
min: PropTypes.number,
|
|
628
624
|
offset: PropTypes.number,
|
|
629
625
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
630
626
|
reverse: PropTypes.bool,
|
|
@@ -682,8 +678,12 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
682
678
|
ignoreTooltip: PropTypes.bool,
|
|
683
679
|
label: PropTypes.string,
|
|
684
680
|
labelStyle: PropTypes.object,
|
|
685
|
-
max: PropTypes.oneOfType([PropTypes.
|
|
686
|
-
|
|
681
|
+
max: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
|
|
682
|
+
valueOf: PropTypes.func.isRequired
|
|
683
|
+
})]),
|
|
684
|
+
min: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
|
|
685
|
+
valueOf: PropTypes.func.isRequired
|
|
686
|
+
})]),
|
|
687
687
|
offset: PropTypes.number,
|
|
688
688
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
689
689
|
reverse: PropTypes.bool,
|
|
@@ -741,8 +741,12 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
741
741
|
ignoreTooltip: PropTypes.bool,
|
|
742
742
|
label: PropTypes.string,
|
|
743
743
|
labelStyle: PropTypes.object,
|
|
744
|
-
max: PropTypes.oneOfType([PropTypes.
|
|
745
|
-
|
|
744
|
+
max: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
|
|
745
|
+
valueOf: PropTypes.func.isRequired
|
|
746
|
+
})]),
|
|
747
|
+
min: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
|
|
748
|
+
valueOf: PropTypes.func.isRequired
|
|
749
|
+
})]),
|
|
746
750
|
offset: PropTypes.number,
|
|
747
751
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
748
752
|
reverse: PropTypes.bool,
|
|
@@ -800,8 +804,8 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
800
804
|
ignoreTooltip: PropTypes.bool,
|
|
801
805
|
label: PropTypes.string,
|
|
802
806
|
labelStyle: PropTypes.object,
|
|
803
|
-
max: PropTypes.
|
|
804
|
-
min: PropTypes.
|
|
807
|
+
max: PropTypes.number,
|
|
808
|
+
min: PropTypes.number,
|
|
805
809
|
offset: PropTypes.number,
|
|
806
810
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
807
811
|
reverse: PropTypes.bool,
|
|
@@ -876,8 +880,6 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
876
880
|
ignoreTooltip: PropTypes.bool,
|
|
877
881
|
label: PropTypes.string,
|
|
878
882
|
labelStyle: PropTypes.object,
|
|
879
|
-
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
880
|
-
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
881
883
|
offset: PropTypes.number,
|
|
882
884
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
883
885
|
reverse: PropTypes.bool,
|
|
@@ -944,8 +946,6 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
944
946
|
ignoreTooltip: PropTypes.bool,
|
|
945
947
|
label: PropTypes.string,
|
|
946
948
|
labelStyle: PropTypes.object,
|
|
947
|
-
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
948
|
-
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
949
949
|
offset: PropTypes.number,
|
|
950
950
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
951
951
|
reverse: PropTypes.bool,
|
|
@@ -1002,8 +1002,8 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
1002
1002
|
ignoreTooltip: PropTypes.bool,
|
|
1003
1003
|
label: PropTypes.string,
|
|
1004
1004
|
labelStyle: PropTypes.object,
|
|
1005
|
-
max: PropTypes.
|
|
1006
|
-
min: PropTypes.
|
|
1005
|
+
max: PropTypes.number,
|
|
1006
|
+
min: PropTypes.number,
|
|
1007
1007
|
offset: PropTypes.number,
|
|
1008
1008
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
1009
1009
|
reverse: PropTypes.bool,
|
|
@@ -1061,8 +1061,8 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
1061
1061
|
ignoreTooltip: PropTypes.bool,
|
|
1062
1062
|
label: PropTypes.string,
|
|
1063
1063
|
labelStyle: PropTypes.object,
|
|
1064
|
-
max: PropTypes.
|
|
1065
|
-
min: PropTypes.
|
|
1064
|
+
max: PropTypes.number,
|
|
1065
|
+
min: PropTypes.number,
|
|
1066
1066
|
offset: PropTypes.number,
|
|
1067
1067
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
1068
1068
|
reverse: PropTypes.bool,
|
|
@@ -1119,8 +1119,8 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
1119
1119
|
ignoreTooltip: PropTypes.bool,
|
|
1120
1120
|
label: PropTypes.string,
|
|
1121
1121
|
labelStyle: PropTypes.object,
|
|
1122
|
-
max: PropTypes.
|
|
1123
|
-
min: PropTypes.
|
|
1122
|
+
max: PropTypes.number,
|
|
1123
|
+
min: PropTypes.number,
|
|
1124
1124
|
offset: PropTypes.number,
|
|
1125
1125
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
1126
1126
|
reverse: PropTypes.bool,
|
|
@@ -1177,8 +1177,8 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
1177
1177
|
ignoreTooltip: PropTypes.bool,
|
|
1178
1178
|
label: PropTypes.string,
|
|
1179
1179
|
labelStyle: PropTypes.object,
|
|
1180
|
-
max: PropTypes.
|
|
1181
|
-
min: PropTypes.
|
|
1180
|
+
max: PropTypes.number,
|
|
1181
|
+
min: PropTypes.number,
|
|
1182
1182
|
offset: PropTypes.number,
|
|
1183
1183
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
1184
1184
|
reverse: PropTypes.bool,
|
|
@@ -1235,8 +1235,12 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
1235
1235
|
ignoreTooltip: PropTypes.bool,
|
|
1236
1236
|
label: PropTypes.string,
|
|
1237
1237
|
labelStyle: PropTypes.object,
|
|
1238
|
-
max: PropTypes.oneOfType([PropTypes.
|
|
1239
|
-
|
|
1238
|
+
max: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
|
|
1239
|
+
valueOf: PropTypes.func.isRequired
|
|
1240
|
+
})]),
|
|
1241
|
+
min: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
|
|
1242
|
+
valueOf: PropTypes.func.isRequired
|
|
1243
|
+
})]),
|
|
1240
1244
|
offset: PropTypes.number,
|
|
1241
1245
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
1242
1246
|
reverse: PropTypes.bool,
|
|
@@ -1293,8 +1297,12 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
1293
1297
|
ignoreTooltip: PropTypes.bool,
|
|
1294
1298
|
label: PropTypes.string,
|
|
1295
1299
|
labelStyle: PropTypes.object,
|
|
1296
|
-
max: PropTypes.oneOfType([PropTypes.
|
|
1297
|
-
|
|
1300
|
+
max: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
|
|
1301
|
+
valueOf: PropTypes.func.isRequired
|
|
1302
|
+
})]),
|
|
1303
|
+
min: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
|
|
1304
|
+
valueOf: PropTypes.func.isRequired
|
|
1305
|
+
})]),
|
|
1298
1306
|
offset: PropTypes.number,
|
|
1299
1307
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
1300
1308
|
reverse: PropTypes.bool,
|
|
@@ -1351,8 +1359,8 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
1351
1359
|
ignoreTooltip: PropTypes.bool,
|
|
1352
1360
|
label: PropTypes.string,
|
|
1353
1361
|
labelStyle: PropTypes.object,
|
|
1354
|
-
max: PropTypes.
|
|
1355
|
-
min: PropTypes.
|
|
1362
|
+
max: PropTypes.number,
|
|
1363
|
+
min: PropTypes.number,
|
|
1356
1364
|
offset: PropTypes.number,
|
|
1357
1365
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
1358
1366
|
reverse: PropTypes.bool,
|
|
@@ -1424,10 +1432,14 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
1424
1432
|
* Configuration for zoom interactions.
|
|
1425
1433
|
*/
|
|
1426
1434
|
zoomInteractionConfig: PropTypes.shape({
|
|
1427
|
-
pan: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['drag']), PropTypes.shape({
|
|
1435
|
+
pan: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['drag', 'pressAndDrag']), PropTypes.shape({
|
|
1428
1436
|
pointerMode: PropTypes.oneOf(['mouse', 'touch']),
|
|
1429
1437
|
requiredKeys: PropTypes.arrayOf(PropTypes.string),
|
|
1430
1438
|
type: PropTypes.oneOf(['drag']).isRequired
|
|
1439
|
+
}), PropTypes.shape({
|
|
1440
|
+
pointerMode: PropTypes.oneOf(['mouse', 'touch']),
|
|
1441
|
+
requiredKeys: PropTypes.arrayOf(PropTypes.string),
|
|
1442
|
+
type: PropTypes.oneOf(['pressAndDrag']).isRequired
|
|
1431
1443
|
})]).isRequired),
|
|
1432
1444
|
zoom: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['pinch', 'tapAndDrag', 'wheel']), PropTypes.shape({
|
|
1433
1445
|
pointerMode: PropTypes.any,
|
|
@@ -299,8 +299,6 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
299
299
|
ignoreTooltip: PropTypes.bool,
|
|
300
300
|
label: PropTypes.string,
|
|
301
301
|
labelStyle: PropTypes.object,
|
|
302
|
-
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
303
|
-
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
304
302
|
offset: PropTypes.number,
|
|
305
303
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
306
304
|
reverse: PropTypes.bool,
|
|
@@ -368,8 +366,6 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
368
366
|
ignoreTooltip: PropTypes.bool,
|
|
369
367
|
label: PropTypes.string,
|
|
370
368
|
labelStyle: PropTypes.object,
|
|
371
|
-
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
372
|
-
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
373
369
|
offset: PropTypes.number,
|
|
374
370
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
375
371
|
reverse: PropTypes.bool,
|
|
@@ -427,8 +423,8 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
427
423
|
ignoreTooltip: PropTypes.bool,
|
|
428
424
|
label: PropTypes.string,
|
|
429
425
|
labelStyle: PropTypes.object,
|
|
430
|
-
max: PropTypes.
|
|
431
|
-
min: PropTypes.
|
|
426
|
+
max: PropTypes.number,
|
|
427
|
+
min: PropTypes.number,
|
|
432
428
|
offset: PropTypes.number,
|
|
433
429
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
434
430
|
reverse: PropTypes.bool,
|
|
@@ -487,8 +483,8 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
487
483
|
ignoreTooltip: PropTypes.bool,
|
|
488
484
|
label: PropTypes.string,
|
|
489
485
|
labelStyle: PropTypes.object,
|
|
490
|
-
max: PropTypes.
|
|
491
|
-
min: PropTypes.
|
|
486
|
+
max: PropTypes.number,
|
|
487
|
+
min: PropTypes.number,
|
|
492
488
|
offset: PropTypes.number,
|
|
493
489
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
494
490
|
reverse: PropTypes.bool,
|
|
@@ -546,8 +542,8 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
546
542
|
ignoreTooltip: PropTypes.bool,
|
|
547
543
|
label: PropTypes.string,
|
|
548
544
|
labelStyle: PropTypes.object,
|
|
549
|
-
max: PropTypes.
|
|
550
|
-
min: PropTypes.
|
|
545
|
+
max: PropTypes.number,
|
|
546
|
+
min: PropTypes.number,
|
|
551
547
|
offset: PropTypes.number,
|
|
552
548
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
553
549
|
reverse: PropTypes.bool,
|
|
@@ -605,8 +601,8 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
605
601
|
ignoreTooltip: PropTypes.bool,
|
|
606
602
|
label: PropTypes.string,
|
|
607
603
|
labelStyle: PropTypes.object,
|
|
608
|
-
max: PropTypes.
|
|
609
|
-
min: PropTypes.
|
|
604
|
+
max: PropTypes.number,
|
|
605
|
+
min: PropTypes.number,
|
|
610
606
|
offset: PropTypes.number,
|
|
611
607
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
612
608
|
reverse: PropTypes.bool,
|
|
@@ -664,8 +660,12 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
664
660
|
ignoreTooltip: PropTypes.bool,
|
|
665
661
|
label: PropTypes.string,
|
|
666
662
|
labelStyle: PropTypes.object,
|
|
667
|
-
max: PropTypes.oneOfType([PropTypes.
|
|
668
|
-
|
|
663
|
+
max: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
|
|
664
|
+
valueOf: PropTypes.func.isRequired
|
|
665
|
+
})]),
|
|
666
|
+
min: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
|
|
667
|
+
valueOf: PropTypes.func.isRequired
|
|
668
|
+
})]),
|
|
669
669
|
offset: PropTypes.number,
|
|
670
670
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
671
671
|
reverse: PropTypes.bool,
|
|
@@ -723,8 +723,12 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
723
723
|
ignoreTooltip: PropTypes.bool,
|
|
724
724
|
label: PropTypes.string,
|
|
725
725
|
labelStyle: PropTypes.object,
|
|
726
|
-
max: PropTypes.oneOfType([PropTypes.
|
|
727
|
-
|
|
726
|
+
max: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
|
|
727
|
+
valueOf: PropTypes.func.isRequired
|
|
728
|
+
})]),
|
|
729
|
+
min: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
|
|
730
|
+
valueOf: PropTypes.func.isRequired
|
|
731
|
+
})]),
|
|
728
732
|
offset: PropTypes.number,
|
|
729
733
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
730
734
|
reverse: PropTypes.bool,
|
|
@@ -782,8 +786,8 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
782
786
|
ignoreTooltip: PropTypes.bool,
|
|
783
787
|
label: PropTypes.string,
|
|
784
788
|
labelStyle: PropTypes.object,
|
|
785
|
-
max: PropTypes.
|
|
786
|
-
min: PropTypes.
|
|
789
|
+
max: PropTypes.number,
|
|
790
|
+
min: PropTypes.number,
|
|
787
791
|
offset: PropTypes.number,
|
|
788
792
|
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
789
793
|
reverse: PropTypes.bool,
|
|
@@ -858,8 +862,6 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
858
862
|
ignoreTooltip: PropTypes.bool,
|
|
859
863
|
label: PropTypes.string,
|
|
860
864
|
labelStyle: PropTypes.object,
|
|
861
|
-
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
862
|
-
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
863
865
|
offset: PropTypes.number,
|
|
864
866
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
865
867
|
reverse: PropTypes.bool,
|
|
@@ -926,8 +928,6 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
926
928
|
ignoreTooltip: PropTypes.bool,
|
|
927
929
|
label: PropTypes.string,
|
|
928
930
|
labelStyle: PropTypes.object,
|
|
929
|
-
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
930
|
-
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
931
931
|
offset: PropTypes.number,
|
|
932
932
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
933
933
|
reverse: PropTypes.bool,
|
|
@@ -984,8 +984,8 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
984
984
|
ignoreTooltip: PropTypes.bool,
|
|
985
985
|
label: PropTypes.string,
|
|
986
986
|
labelStyle: PropTypes.object,
|
|
987
|
-
max: PropTypes.
|
|
988
|
-
min: PropTypes.
|
|
987
|
+
max: PropTypes.number,
|
|
988
|
+
min: PropTypes.number,
|
|
989
989
|
offset: PropTypes.number,
|
|
990
990
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
991
991
|
reverse: PropTypes.bool,
|
|
@@ -1043,8 +1043,8 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
1043
1043
|
ignoreTooltip: PropTypes.bool,
|
|
1044
1044
|
label: PropTypes.string,
|
|
1045
1045
|
labelStyle: PropTypes.object,
|
|
1046
|
-
max: PropTypes.
|
|
1047
|
-
min: PropTypes.
|
|
1046
|
+
max: PropTypes.number,
|
|
1047
|
+
min: PropTypes.number,
|
|
1048
1048
|
offset: PropTypes.number,
|
|
1049
1049
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
1050
1050
|
reverse: PropTypes.bool,
|
|
@@ -1101,8 +1101,8 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
1101
1101
|
ignoreTooltip: PropTypes.bool,
|
|
1102
1102
|
label: PropTypes.string,
|
|
1103
1103
|
labelStyle: PropTypes.object,
|
|
1104
|
-
max: PropTypes.
|
|
1105
|
-
min: PropTypes.
|
|
1104
|
+
max: PropTypes.number,
|
|
1105
|
+
min: PropTypes.number,
|
|
1106
1106
|
offset: PropTypes.number,
|
|
1107
1107
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
1108
1108
|
reverse: PropTypes.bool,
|
|
@@ -1159,8 +1159,8 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
1159
1159
|
ignoreTooltip: PropTypes.bool,
|
|
1160
1160
|
label: PropTypes.string,
|
|
1161
1161
|
labelStyle: PropTypes.object,
|
|
1162
|
-
max: PropTypes.
|
|
1163
|
-
min: PropTypes.
|
|
1162
|
+
max: PropTypes.number,
|
|
1163
|
+
min: PropTypes.number,
|
|
1164
1164
|
offset: PropTypes.number,
|
|
1165
1165
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
1166
1166
|
reverse: PropTypes.bool,
|
|
@@ -1217,8 +1217,12 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
1217
1217
|
ignoreTooltip: PropTypes.bool,
|
|
1218
1218
|
label: PropTypes.string,
|
|
1219
1219
|
labelStyle: PropTypes.object,
|
|
1220
|
-
max: PropTypes.oneOfType([PropTypes.
|
|
1221
|
-
|
|
1220
|
+
max: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
|
|
1221
|
+
valueOf: PropTypes.func.isRequired
|
|
1222
|
+
})]),
|
|
1223
|
+
min: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
|
|
1224
|
+
valueOf: PropTypes.func.isRequired
|
|
1225
|
+
})]),
|
|
1222
1226
|
offset: PropTypes.number,
|
|
1223
1227
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
1224
1228
|
reverse: PropTypes.bool,
|
|
@@ -1275,8 +1279,12 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
1275
1279
|
ignoreTooltip: PropTypes.bool,
|
|
1276
1280
|
label: PropTypes.string,
|
|
1277
1281
|
labelStyle: PropTypes.object,
|
|
1278
|
-
max: PropTypes.oneOfType([PropTypes.
|
|
1279
|
-
|
|
1282
|
+
max: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
|
|
1283
|
+
valueOf: PropTypes.func.isRequired
|
|
1284
|
+
})]),
|
|
1285
|
+
min: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
|
|
1286
|
+
valueOf: PropTypes.func.isRequired
|
|
1287
|
+
})]),
|
|
1280
1288
|
offset: PropTypes.number,
|
|
1281
1289
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
1282
1290
|
reverse: PropTypes.bool,
|
|
@@ -1333,8 +1341,8 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
1333
1341
|
ignoreTooltip: PropTypes.bool,
|
|
1334
1342
|
label: PropTypes.string,
|
|
1335
1343
|
labelStyle: PropTypes.object,
|
|
1336
|
-
max: PropTypes.
|
|
1337
|
-
min: PropTypes.
|
|
1344
|
+
max: PropTypes.number,
|
|
1345
|
+
min: PropTypes.number,
|
|
1338
1346
|
offset: PropTypes.number,
|
|
1339
1347
|
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
1340
1348
|
reverse: PropTypes.bool,
|
|
@@ -1406,10 +1414,14 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
1406
1414
|
* Configuration for zoom interactions.
|
|
1407
1415
|
*/
|
|
1408
1416
|
zoomInteractionConfig: PropTypes.shape({
|
|
1409
|
-
pan: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['drag']), PropTypes.shape({
|
|
1417
|
+
pan: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['drag', 'pressAndDrag']), PropTypes.shape({
|
|
1410
1418
|
pointerMode: PropTypes.oneOf(['mouse', 'touch']),
|
|
1411
1419
|
requiredKeys: PropTypes.arrayOf(PropTypes.string),
|
|
1412
1420
|
type: PropTypes.oneOf(['drag']).isRequired
|
|
1421
|
+
}), PropTypes.shape({
|
|
1422
|
+
pointerMode: PropTypes.oneOf(['mouse', 'touch']),
|
|
1423
|
+
requiredKeys: PropTypes.arrayOf(PropTypes.string),
|
|
1424
|
+
type: PropTypes.oneOf(['pressAndDrag']).isRequired
|
|
1413
1425
|
})]).isRequired),
|
|
1414
1426
|
zoom: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['pinch', 'tapAndDrag', 'wheel']), PropTypes.shape({
|
|
1415
1427
|
pointerMode: PropTypes.any,
|
package/esm/index.js
CHANGED
|
@@ -7,11 +7,7 @@ export declare const selectorZoomInteractionConfig: import("reselect").Selector<
|
|
|
7
7
|
};
|
|
8
8
|
pointerMode?: import("@mui/x-internal-gestures/core").PointerMode[];
|
|
9
9
|
}) | null, [interactionName: "wheel" | "pinch" | "tapAndDrag"]>;
|
|
10
|
-
export declare const selectorPanInteractionConfig: import("reselect").Selector<any, (Omit<{
|
|
11
|
-
type: "drag";
|
|
12
|
-
pointerMode?: import("./ZoomInteractionConfig.types.js").InteractionMode | undefined;
|
|
13
|
-
requiredKeys?: import("@mui/x-internal-gestures/core").KeyboardKey[] | undefined;
|
|
14
|
-
}, "pointerMode"> & {
|
|
10
|
+
export declare const selectorPanInteractionConfig: import("reselect").Selector<any, (Omit<import("./ZoomInteractionConfig.types.js").PanInteraction, "pointerMode"> & {
|
|
15
11
|
mouse: {
|
|
16
12
|
requiredKeys?: import("@mui/x-internal-gestures/core").KeyboardKey[];
|
|
17
13
|
};
|
|
@@ -19,4 +15,4 @@ export declare const selectorPanInteractionConfig: import("reselect").Selector<a
|
|
|
19
15
|
requiredKeys?: import("@mui/x-internal-gestures/core").KeyboardKey[];
|
|
20
16
|
};
|
|
21
17
|
pointerMode?: import("@mui/x-internal-gestures/core").PointerMode[];
|
|
22
|
-
}) | null, [interactionName: "drag"]>;
|
|
18
|
+
}) | null, [interactionName: "drag" | "pressAndDrag"]>;
|
|
@@ -12,6 +12,7 @@ export type ZoomInteractionConfig = {
|
|
|
12
12
|
/**
|
|
13
13
|
* Defines the interactions that trigger panning.
|
|
14
14
|
* - `drag`: Pans the chart when dragged with the mouse.
|
|
15
|
+
* - `pressAndDrag`: Pans the chart by pressing and holding, then dragging. Useful for avoiding conflicts with selection gestures.
|
|
15
16
|
*
|
|
16
17
|
* @default ['drag']
|
|
17
18
|
*/
|
|
@@ -31,7 +32,7 @@ export type DefaultizedZoomInteractionConfig = {
|
|
|
31
32
|
pan: Entry<PanInteraction>;
|
|
32
33
|
};
|
|
33
34
|
export type ZoomInteraction = WheelInteraction | PinchInteraction | TapAndDragInteraction;
|
|
34
|
-
export type PanInteraction = DragInteraction;
|
|
35
|
+
export type PanInteraction = DragInteraction | PressAndDragInteraction;
|
|
35
36
|
export type ZoomInteractionName = ZoomInteraction['type'];
|
|
36
37
|
export type PanInteractionName = PanInteraction['type'];
|
|
37
38
|
export type InteractionMode = Exclude<PointerMode, 'pen'>;
|
|
@@ -75,6 +76,9 @@ export type DragInteraction = Unpack<{
|
|
|
75
76
|
export type TapAndDragInteraction = Unpack<{
|
|
76
77
|
type: 'tapAndDrag';
|
|
77
78
|
} & AllModeProp & AllKeysProp>;
|
|
79
|
+
export type PressAndDragInteraction = Unpack<{
|
|
80
|
+
type: 'pressAndDrag';
|
|
81
|
+
} & AllModeProp & AllKeysProp>;
|
|
78
82
|
export type AnyInteraction = {
|
|
79
83
|
type: string;
|
|
80
84
|
pointerMode?: InteractionMode;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ChartPlugin, ZoomData } from '@mui/x-charts/internals';
|
|
3
|
+
import { UseChartProZoomSignature } from "../useChartProZoom.types.js";
|
|
4
|
+
export declare const usePanOnPressAndDrag: ({
|
|
5
|
+
store,
|
|
6
|
+
instance,
|
|
7
|
+
svgRef
|
|
8
|
+
}: Pick<Parameters<ChartPlugin<UseChartProZoomSignature>>[0], "store" | "instance" | "svgRef">, setZoomDataCallback: React.Dispatch<ZoomData[] | ((prev: ZoomData[]) => ZoomData[])>) => void;
|