@mui/x-charts 6.0.0-alpha.9 → 6.18.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 +26 -5
- package/BarChart/BarChart.js +93 -17
- package/BarChart/BarElement.d.ts +1319 -4
- package/BarChart/BarElement.js +10 -10
- package/BarChart/BarPlot.d.ts +17 -1
- package/BarChart/BarPlot.js +152 -66
- package/BarChart/formatter.js +2 -3
- package/BarChart/legend.js +1 -2
- package/CHANGELOG.md +797 -59
- package/ChartContainer/index.js +7 -5
- package/ChartsAxis/ChartsAxis.d.ts +9 -0
- package/ChartsAxis/ChartsAxis.js +33 -7
- package/ChartsAxis/axisClasses.d.ts +3 -3
- package/ChartsAxis/axisClasses.js +1 -2
- package/ChartsAxisHighlight/ChartsAxisHighlight.d.ts +21 -0
- package/ChartsAxisHighlight/ChartsAxisHighlight.js +61 -22
- package/ChartsClipPath/ChartsClipPath.d.ts +5 -0
- package/ChartsClipPath/ChartsClipPath.js +7 -2
- package/ChartsLegend/ChartsLegend.d.ts +45 -24
- package/ChartsLegend/ChartsLegend.js +193 -151
- package/ChartsLegend/chartsLegendClasses.d.ts +1 -1
- package/ChartsLegend/chartsLegendClasses.js +3 -4
- package/ChartsLegend/utils.d.ts +1 -6
- package/ChartsReferenceLine/ChartsReferenceLine.d.ts +10 -0
- package/ChartsReferenceLine/ChartsReferenceLine.js +78 -0
- package/ChartsReferenceLine/ChartsXReferenceLine.d.ts +13 -0
- package/ChartsReferenceLine/ChartsXReferenceLine.js +112 -0
- package/ChartsReferenceLine/ChartsYReferenceLine.d.ts +13 -0
- package/ChartsReferenceLine/ChartsYReferenceLine.js +112 -0
- package/ChartsReferenceLine/chartsReferenceLineClasses.d.ts +15 -0
- package/ChartsReferenceLine/chartsReferenceLineClasses.js +14 -0
- package/ChartsReferenceLine/common.d.ts +41 -0
- package/ChartsReferenceLine/common.js +27 -0
- package/ChartsReferenceLine/index.d.ts +2 -0
- package/ChartsReferenceLine/index.js +27 -0
- package/ChartsReferenceLine/package.json +6 -0
- package/ChartsSurface.d.ts +12 -1
- package/ChartsSurface.js +9 -18
- package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +1 -0
- package/ChartsTooltip/ChartsAxisTooltipContent.js +46 -32
- package/ChartsTooltip/ChartsItemTooltipContent.d.ts +3 -2
- package/ChartsTooltip/ChartsItemTooltipContent.js +18 -9
- package/ChartsTooltip/ChartsTooltip.d.ts +32 -0
- package/ChartsTooltip/ChartsTooltip.js +62 -18
- package/ChartsTooltip/ChartsTooltipTable.d.ts +3 -10
- package/ChartsTooltip/ChartsTooltipTable.js +22 -20
- package/ChartsTooltip/tooltipClasses.js +1 -2
- package/ChartsTooltip/utils.js +2 -2
- package/ChartsXAxis/ChartsXAxis.d.ts +9 -0
- package/ChartsXAxis/ChartsXAxis.js +170 -45
- package/ChartsYAxis/ChartsYAxis.d.ts +9 -0
- package/ChartsYAxis/ChartsYAxis.js +95 -38
- package/LineChart/AreaElement.d.ts +11 -1
- package/LineChart/AreaElement.js +14 -6
- package/LineChart/AreaPlot.d.ts +11 -0
- package/LineChart/AreaPlot.js +27 -8
- package/LineChart/LineChart.d.ts +23 -3
- package/LineChart/LineChart.js +89 -17
- package/LineChart/LineElement.d.ts +11 -1
- package/LineChart/LineElement.js +14 -6
- package/LineChart/LineHighlightElement.d.ts +10 -0
- package/LineChart/LineHighlightElement.js +13 -4
- package/LineChart/LineHighlightPlot.d.ts +10 -0
- package/LineChart/LineHighlightPlot.js +15 -4
- package/LineChart/LinePlot.d.ts +10 -0
- package/LineChart/LinePlot.js +25 -12
- package/LineChart/MarkElement.d.ts +10 -0
- package/LineChart/MarkElement.js +14 -5
- package/LineChart/MarkPlot.d.ts +10 -0
- package/LineChart/MarkPlot.js +42 -10
- package/LineChart/formatter.js +5 -5
- package/LineChart/legend.js +1 -2
- package/PieChart/PieArc.d.ts +11 -13
- package/PieChart/PieArc.js +28 -60
- package/PieChart/PieArcLabel.d.ts +8 -9
- package/PieChart/PieArcLabel.js +46 -38
- package/PieChart/PieArcLabelPlot.d.ts +28 -0
- package/PieChart/PieArcLabelPlot.js +99 -0
- package/PieChart/PieArcPlot.d.ts +35 -0
- package/PieChart/PieArcPlot.js +92 -0
- package/PieChart/PieChart.d.ts +19 -5
- package/PieChart/PieChart.js +95 -18
- package/PieChart/PiePlot.d.ts +15 -9
- package/PieChart/PiePlot.js +77 -55
- package/PieChart/dataTransform/transition.d.ts +4 -0
- package/PieChart/dataTransform/transition.js +136 -0
- package/PieChart/dataTransform/useTransformData.d.ts +15 -0
- package/PieChart/dataTransform/useTransformData.js +67 -0
- package/PieChart/formatter.js +1 -2
- package/PieChart/legend.js +1 -2
- package/README.md +8 -14
- package/ResponsiveChartContainer/index.d.ts +13 -3
- package/ResponsiveChartContainer/index.js +7 -8
- package/ScatterChart/Scatter.d.ts +10 -0
- package/ScatterChart/Scatter.js +12 -2
- package/ScatterChart/ScatterChart.d.ts +16 -3
- package/ScatterChart/ScatterChart.js +77 -16
- package/ScatterChart/ScatterPlot.d.ts +10 -0
- package/ScatterChart/ScatterPlot.js +12 -2
- package/ScatterChart/formatter.js +1 -2
- package/ScatterChart/legend.js +1 -2
- package/SparkLineChart/SparkLineChart.d.ts +12 -3
- package/SparkLineChart/SparkLineChart.js +50 -7
- package/colorPalettes/colorPalettes.js +6 -12
- package/constants.js +5 -8
- package/context/CartesianContextProvider.d.ts +26 -1
- package/context/CartesianContextProvider.js +42 -16
- package/context/DrawingProvider.d.ts +25 -0
- package/context/DrawingProvider.js +18 -6
- package/context/HighlightProvider.d.ts +17 -0
- package/context/HighlightProvider.js +3 -4
- package/context/InteractionProvider.d.ts +6 -0
- package/context/InteractionProvider.js +3 -4
- package/context/SeriesContextProvider.d.ts +5 -0
- package/context/SeriesContextProvider.js +3 -4
- package/esm/BarChart/BarChart.js +90 -13
- package/esm/BarChart/BarElement.js +7 -4
- package/esm/BarChart/BarPlot.js +152 -67
- package/esm/BarChart/formatter.js +1 -1
- package/esm/ChartContainer/index.js +3 -0
- package/esm/ChartsAxis/ChartsAxis.js +32 -5
- package/esm/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
- package/esm/ChartsClipPath/ChartsClipPath.js +5 -0
- package/esm/ChartsLegend/ChartsLegend.js +190 -144
- package/esm/ChartsLegend/chartsLegendClasses.js +1 -1
- package/esm/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
- package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +105 -0
- package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +105 -0
- package/esm/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
- package/esm/ChartsReferenceLine/common.js +20 -0
- package/esm/ChartsReferenceLine/index.js +2 -0
- package/esm/ChartsSurface.js +4 -12
- package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
- package/esm/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
- package/esm/ChartsTooltip/ChartsTooltip.js +59 -14
- package/esm/ChartsTooltip/ChartsTooltipTable.js +17 -10
- package/esm/ChartsXAxis/ChartsXAxis.js +168 -43
- package/esm/ChartsYAxis/ChartsYAxis.js +93 -36
- package/esm/LineChart/AreaElement.js +10 -0
- package/esm/LineChart/AreaPlot.js +26 -6
- package/esm/LineChart/LineChart.js +86 -13
- package/esm/LineChart/LineElement.js +10 -0
- package/esm/LineChart/LineHighlightElement.js +10 -0
- package/esm/LineChart/LineHighlightPlot.js +13 -2
- package/esm/LineChart/LinePlot.js +25 -14
- package/esm/LineChart/MarkElement.js +11 -1
- package/esm/LineChart/MarkPlot.js +40 -8
- package/esm/LineChart/formatter.js +7 -3
- package/esm/PieChart/PieArc.js +26 -58
- package/esm/PieChart/PieArcLabel.js +43 -34
- package/esm/PieChart/PieArcLabelPlot.js +92 -0
- package/esm/PieChart/PieArcPlot.js +84 -0
- package/esm/PieChart/PieChart.js +93 -16
- package/esm/PieChart/PiePlot.js +76 -57
- package/esm/PieChart/dataTransform/transition.js +130 -0
- package/esm/PieChart/dataTransform/useTransformData.js +59 -0
- package/esm/ResponsiveChartContainer/index.js +3 -3
- package/esm/ScatterChart/Scatter.js +10 -0
- package/esm/ScatterChart/ScatterChart.js +74 -12
- package/esm/ScatterChart/ScatterPlot.js +10 -0
- package/esm/SparkLineChart/SparkLineChart.js +47 -3
- package/esm/constants.js +1 -1
- package/esm/context/CartesianContextProvider.js +41 -14
- package/esm/context/DrawingProvider.js +14 -0
- package/esm/hooks/useChartDimensions.js +2 -0
- package/esm/hooks/useMounted.js +16 -0
- package/esm/hooks/useReducedMotion.js +27 -0
- package/esm/hooks/useTicks.js +15 -9
- package/esm/index.js +1 -0
- package/esm/internals/components/AxisSharedComponents.js +15 -70
- package/esm/internals/components/ChartsText.js +77 -0
- package/esm/internals/domUtils.js +113 -0
- package/esm/internals/geometry.js +36 -0
- package/hooks/useAxisEvents.js +2 -2
- package/hooks/useChartDimensions.d.ts +2 -0
- package/hooks/useChartDimensions.js +5 -4
- package/hooks/useDrawingArea.js +2 -2
- package/hooks/useInteractionItemProps.js +2 -2
- package/hooks/useMounted.d.ts +1 -0
- package/hooks/useMounted.js +25 -0
- package/hooks/useReducedMotion.d.ts +8 -0
- package/hooks/useReducedMotion.js +33 -0
- package/hooks/useScale.d.ts +2 -2
- package/hooks/useScale.js +2 -2
- package/hooks/useTicks.d.ts +19 -11
- package/hooks/useTicks.js +19 -14
- package/index.d.ts +1 -0
- package/index.js +12 -1
- package/internals/components/AxisSharedComponents.d.ts +0 -4
- package/internals/components/AxisSharedComponents.js +18 -78
- package/internals/components/ChartsText.d.ts +35 -0
- package/internals/components/ChartsText.js +87 -0
- package/internals/defaultizeColor.d.ts +7 -2
- package/internals/defaultizeValueFormatter.js +1 -2
- package/internals/domUtils.d.ts +13 -0
- package/internals/domUtils.js +122 -0
- package/internals/geometry.d.ts +9 -0
- package/internals/geometry.js +42 -0
- package/internals/isBandScale.d.ts +3 -1
- package/internals/stackSeries.js +2 -4
- package/internals/utils.d.ts +5 -0
- package/legacy/BarChart/BarChart.js +90 -13
- package/legacy/BarChart/BarElement.js +6 -3
- package/legacy/BarChart/BarPlot.js +151 -63
- package/legacy/BarChart/formatter.js +1 -1
- package/legacy/ChartContainer/index.js +3 -0
- package/legacy/ChartsAxis/ChartsAxis.js +32 -5
- package/legacy/ChartsAxisHighlight/ChartsAxisHighlight.js +60 -20
- package/legacy/ChartsClipPath/ChartsClipPath.js +5 -0
- package/legacy/ChartsLegend/ChartsLegend.js +205 -142
- package/legacy/ChartsLegend/chartsLegendClasses.js +1 -1
- package/legacy/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
- package/legacy/ChartsReferenceLine/ChartsXReferenceLine.js +105 -0
- package/legacy/ChartsReferenceLine/ChartsYReferenceLine.js +105 -0
- package/legacy/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
- package/legacy/ChartsReferenceLine/common.js +20 -0
- package/legacy/ChartsReferenceLine/index.js +2 -0
- package/legacy/ChartsSurface.js +3 -12
- package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +22 -10
- package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
- package/legacy/ChartsTooltip/ChartsTooltip.js +62 -14
- package/legacy/ChartsTooltip/ChartsTooltipTable.js +34 -26
- package/legacy/ChartsXAxis/ChartsXAxis.js +176 -50
- package/legacy/ChartsYAxis/ChartsYAxis.js +97 -41
- package/legacy/LineChart/AreaElement.js +10 -0
- package/legacy/LineChart/AreaPlot.js +31 -7
- package/legacy/LineChart/LineChart.js +86 -13
- package/legacy/LineChart/LineElement.js +10 -0
- package/legacy/LineChart/LineHighlightElement.js +10 -0
- package/legacy/LineChart/LineHighlightPlot.js +13 -2
- package/legacy/LineChart/LinePlot.js +29 -12
- package/legacy/LineChart/MarkElement.js +11 -1
- package/legacy/LineChart/MarkPlot.js +39 -8
- package/legacy/LineChart/formatter.js +7 -3
- package/legacy/PieChart/PieArc.js +30 -62
- package/legacy/PieChart/PieArcLabel.js +48 -34
- package/legacy/PieChart/PieArcLabelPlot.js +93 -0
- package/legacy/PieChart/PieArcPlot.js +84 -0
- package/legacy/PieChart/PieChart.js +93 -16
- package/legacy/PieChart/PiePlot.js +76 -59
- package/legacy/PieChart/dataTransform/transition.js +142 -0
- package/legacy/PieChart/dataTransform/useTransformData.js +60 -0
- package/legacy/ResponsiveChartContainer/index.js +3 -3
- package/legacy/ScatterChart/Scatter.js +10 -0
- package/legacy/ScatterChart/ScatterChart.js +74 -12
- package/legacy/ScatterChart/ScatterPlot.js +10 -0
- package/legacy/SparkLineChart/SparkLineChart.js +47 -3
- package/legacy/constants.js +1 -1
- package/legacy/context/CartesianContextProvider.js +41 -14
- package/legacy/context/DrawingProvider.js +14 -0
- package/legacy/hooks/useChartDimensions.js +2 -0
- package/legacy/hooks/useMounted.js +21 -0
- package/legacy/hooks/useReducedMotion.js +27 -0
- package/legacy/hooks/useTicks.js +16 -9
- package/legacy/index.js +2 -1
- package/legacy/internals/components/AxisSharedComponents.js +11 -65
- package/legacy/internals/components/ChartsText.js +79 -0
- package/legacy/internals/domUtils.js +121 -0
- package/legacy/internals/geometry.js +37 -0
- package/models/axis.d.ts +58 -20
- package/models/layout.d.ts +13 -6
- package/models/seriesType/common.d.ts +16 -0
- package/models/seriesType/line.d.ts +8 -3
- package/models/seriesType/pie.d.ts +5 -1
- package/modern/BarChart/BarChart.js +90 -13
- package/modern/BarChart/BarElement.js +7 -4
- package/modern/BarChart/BarPlot.js +149 -65
- package/modern/BarChart/formatter.js +1 -1
- package/modern/ChartContainer/index.js +3 -0
- package/modern/ChartsAxis/ChartsAxis.js +31 -5
- package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
- package/modern/ChartsClipPath/ChartsClipPath.js +5 -0
- package/modern/ChartsLegend/ChartsLegend.js +190 -144
- package/modern/ChartsLegend/chartsLegendClasses.js +1 -1
- package/modern/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
- package/modern/ChartsReferenceLine/ChartsXReferenceLine.js +104 -0
- package/modern/ChartsReferenceLine/ChartsYReferenceLine.js +104 -0
- package/modern/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
- package/modern/ChartsReferenceLine/common.js +20 -0
- package/modern/ChartsReferenceLine/index.js +2 -0
- package/modern/ChartsSurface.js +4 -12
- package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
- package/modern/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
- package/modern/ChartsTooltip/ChartsTooltip.js +58 -14
- package/modern/ChartsTooltip/ChartsTooltipTable.js +17 -10
- package/modern/ChartsXAxis/ChartsXAxis.js +167 -42
- package/modern/ChartsYAxis/ChartsYAxis.js +92 -35
- package/modern/LineChart/AreaElement.js +10 -0
- package/modern/LineChart/AreaPlot.js +25 -6
- package/modern/LineChart/LineChart.js +86 -13
- package/modern/LineChart/LineElement.js +10 -0
- package/modern/LineChart/LineHighlightElement.js +10 -0
- package/modern/LineChart/LineHighlightPlot.js +13 -2
- package/modern/LineChart/LinePlot.js +23 -10
- package/modern/LineChart/MarkElement.js +11 -1
- package/modern/LineChart/MarkPlot.js +40 -8
- package/modern/LineChart/formatter.js +4 -3
- package/modern/PieChart/PieArc.js +26 -57
- package/modern/PieChart/PieArcLabel.js +43 -34
- package/modern/PieChart/PieArcLabelPlot.js +90 -0
- package/modern/PieChart/PieArcPlot.js +83 -0
- package/modern/PieChart/PieChart.js +93 -16
- package/modern/PieChart/PiePlot.js +76 -55
- package/modern/PieChart/dataTransform/transition.js +130 -0
- package/modern/PieChart/dataTransform/useTransformData.js +58 -0
- package/modern/ResponsiveChartContainer/index.js +3 -3
- package/modern/ScatterChart/Scatter.js +10 -0
- package/modern/ScatterChart/ScatterChart.js +74 -12
- package/modern/ScatterChart/ScatterPlot.js +10 -0
- package/modern/SparkLineChart/SparkLineChart.js +47 -3
- package/modern/constants.js +1 -1
- package/modern/context/CartesianContextProvider.js +40 -13
- package/modern/context/DrawingProvider.js +14 -0
- package/modern/hooks/useChartDimensions.js +2 -0
- package/modern/hooks/useMounted.js +16 -0
- package/modern/hooks/useReducedMotion.js +27 -0
- package/modern/hooks/useTicks.js +15 -9
- package/modern/index.js +2 -1
- package/modern/internals/components/AxisSharedComponents.js +15 -70
- package/modern/internals/components/ChartsText.js +77 -0
- package/modern/internals/domUtils.js +113 -0
- package/modern/internals/geometry.js +36 -0
- package/package.json +9 -6
- package/themeAugmentation/components.d.ts +1 -0
- package/themeAugmentation/overrides.d.ts +2 -0
package/esm/hooks/useTicks.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { isBandScale } from '../internals/isBandScale';
|
|
3
|
-
export function
|
|
3
|
+
export function getTickNumber(params) {
|
|
4
4
|
const {
|
|
5
5
|
tickMaxStep,
|
|
6
6
|
tickMinStep,
|
|
@@ -16,8 +16,9 @@ export function getTicksNumber(params) {
|
|
|
16
16
|
function useTicks(options) {
|
|
17
17
|
const {
|
|
18
18
|
scale,
|
|
19
|
-
|
|
20
|
-
valueFormatter
|
|
19
|
+
tickNumber,
|
|
20
|
+
valueFormatter,
|
|
21
|
+
tickInterval
|
|
21
22
|
} = options;
|
|
22
23
|
return React.useMemo(() => {
|
|
23
24
|
// band scale
|
|
@@ -28,7 +29,8 @@ function useTicks(options) {
|
|
|
28
29
|
return [...domain.map(value => {
|
|
29
30
|
var _valueFormatter;
|
|
30
31
|
return {
|
|
31
|
-
|
|
32
|
+
value,
|
|
33
|
+
formattedValue: (_valueFormatter = valueFormatter == null ? void 0 : valueFormatter(value)) != null ? _valueFormatter : `${value}`,
|
|
32
34
|
offset: scale(value) - (scale.step() - scale.bandwidth()) / 2,
|
|
33
35
|
labelOffset: scale.step() / 2
|
|
34
36
|
};
|
|
@@ -40,23 +42,27 @@ function useTicks(options) {
|
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
// scale type = 'point'
|
|
43
|
-
|
|
45
|
+
const filteredDomain = typeof tickInterval === 'function' && domain.filter(tickInterval) || typeof tickInterval === 'object' && tickInterval || domain;
|
|
46
|
+
return filteredDomain.map(value => {
|
|
44
47
|
var _valueFormatter2;
|
|
45
48
|
return {
|
|
46
|
-
|
|
49
|
+
value,
|
|
50
|
+
formattedValue: (_valueFormatter2 = valueFormatter == null ? void 0 : valueFormatter(value)) != null ? _valueFormatter2 : `${value}`,
|
|
47
51
|
offset: scale(value),
|
|
48
52
|
labelOffset: 0
|
|
49
53
|
};
|
|
50
54
|
});
|
|
51
55
|
}
|
|
52
|
-
|
|
56
|
+
const ticks = typeof tickInterval === 'object' ? tickInterval : scale.ticks(tickNumber);
|
|
57
|
+
return ticks.map(value => {
|
|
53
58
|
var _valueFormatter3;
|
|
54
59
|
return {
|
|
55
|
-
|
|
60
|
+
value,
|
|
61
|
+
formattedValue: (_valueFormatter3 = valueFormatter == null ? void 0 : valueFormatter(value)) != null ? _valueFormatter3 : scale.tickFormat(tickNumber)(value),
|
|
56
62
|
offset: scale(value),
|
|
57
63
|
labelOffset: 0
|
|
58
64
|
};
|
|
59
65
|
});
|
|
60
|
-
}, [
|
|
66
|
+
}, [tickNumber, scale, valueFormatter, tickInterval]);
|
|
61
67
|
}
|
|
62
68
|
export default useTicks;
|
package/esm/index.js
CHANGED
|
@@ -5,77 +5,22 @@ export const AxisRoot = styled('g', {
|
|
|
5
5
|
name: 'MuiChartsAxis',
|
|
6
6
|
slot: 'Root',
|
|
7
7
|
overridesResolver: (props, styles) => styles.root
|
|
8
|
-
})({
|
|
9
|
-
[`&.${axisClasses.directionY}`]: {
|
|
10
|
-
[`.${axisClasses.tickLabel}`]: {
|
|
11
|
-
dominantBaseline: 'middle'
|
|
12
|
-
},
|
|
13
|
-
[`.${axisClasses.label}`]: {
|
|
14
|
-
dominantBaseline: 'auto',
|
|
15
|
-
textAnchor: 'middle'
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
[`&.${axisClasses.left}`]: {
|
|
19
|
-
[`.${axisClasses.tickLabel}`]: {
|
|
20
|
-
dominantBaseline: 'central',
|
|
21
|
-
textAnchor: 'end'
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
[`&.${axisClasses.right}`]: {
|
|
25
|
-
[`.${axisClasses.tickLabel}`]: {
|
|
26
|
-
dominantBaseline: 'central',
|
|
27
|
-
textAnchor: 'start'
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
[`&.${axisClasses.bottom}`]: {
|
|
31
|
-
[`.${axisClasses.tickLabel}, .${axisClasses.label}`]: {
|
|
32
|
-
dominantBaseline: 'hanging',
|
|
33
|
-
textAnchor: 'middle'
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
[`&.${axisClasses.top}`]: {
|
|
37
|
-
[`.${axisClasses.tickLabel}, .${axisClasses.label}`]: {
|
|
38
|
-
dominantBaseline: 'baseline',
|
|
39
|
-
textAnchor: 'middle'
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
export const ChartsLine = styled('line', {
|
|
44
|
-
name: 'MuiChartsAxis',
|
|
45
|
-
slot: 'Line',
|
|
46
|
-
overridesResolver: (props, styles) => styles.line
|
|
47
|
-
})(({
|
|
48
|
-
theme
|
|
49
|
-
}) => ({
|
|
50
|
-
stroke: theme.palette.text.primary,
|
|
51
|
-
shapeRendering: 'crispEdges',
|
|
52
|
-
strokeWidth: 1
|
|
53
|
-
}));
|
|
54
|
-
export const ChartsTick = styled('line', {
|
|
55
|
-
name: 'MuiChartsAxis',
|
|
56
|
-
slot: 'Tick',
|
|
57
|
-
overridesResolver: (props, styles) => styles.tick
|
|
58
8
|
})(({
|
|
59
9
|
theme
|
|
60
10
|
}) => ({
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
})
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
overridesResolver: (props, styles) => styles.label
|
|
77
|
-
})(({
|
|
78
|
-
theme
|
|
79
|
-
}) => _extends({}, theme.typography.body1, {
|
|
80
|
-
fill: theme.palette.text.primary
|
|
11
|
+
[`& .${axisClasses.tickLabel}`]: _extends({}, theme.typography.caption, {
|
|
12
|
+
fill: (theme.vars || theme).palette.text.primary
|
|
13
|
+
}),
|
|
14
|
+
[`& .${axisClasses.label}`]: _extends({}, theme.typography.body1, {
|
|
15
|
+
fill: (theme.vars || theme).palette.text.primary
|
|
16
|
+
}),
|
|
17
|
+
[`& .${axisClasses.line}`]: {
|
|
18
|
+
stroke: (theme.vars || theme).palette.text.primary,
|
|
19
|
+
shapeRendering: 'crispEdges',
|
|
20
|
+
strokeWidth: 1
|
|
21
|
+
},
|
|
22
|
+
[`& .${axisClasses.tick}`]: {
|
|
23
|
+
stroke: (theme.vars || theme).palette.text.primary,
|
|
24
|
+
shapeRendering: 'crispEdges'
|
|
25
|
+
}
|
|
81
26
|
}));
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
const _excluded = ["x", "y", "style", "text", "ownerState"],
|
|
4
|
+
_excluded2 = ["angle", "textAnchor", "dominantBaseline"];
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import { getStringSize } from '../domUtils';
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
export function getWordsByLines({
|
|
9
|
+
style,
|
|
10
|
+
needsComputation,
|
|
11
|
+
text
|
|
12
|
+
}) {
|
|
13
|
+
return text.split('\n').map(subText => _extends({
|
|
14
|
+
text: subText
|
|
15
|
+
}, needsComputation ? getStringSize(subText, style) : {
|
|
16
|
+
width: 0,
|
|
17
|
+
height: 0
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
export function ChartsText(props) {
|
|
21
|
+
const {
|
|
22
|
+
x,
|
|
23
|
+
y,
|
|
24
|
+
style: styleProps,
|
|
25
|
+
text
|
|
26
|
+
} = props,
|
|
27
|
+
textProps = _objectWithoutPropertiesLoose(props, _excluded);
|
|
28
|
+
const _ref = styleProps != null ? styleProps : {},
|
|
29
|
+
{
|
|
30
|
+
angle,
|
|
31
|
+
textAnchor,
|
|
32
|
+
dominantBaseline
|
|
33
|
+
} = _ref,
|
|
34
|
+
style = _objectWithoutPropertiesLoose(_ref, _excluded2);
|
|
35
|
+
const wordsByLines = React.useMemo(() => getWordsByLines({
|
|
36
|
+
style,
|
|
37
|
+
needsComputation: text.includes('\n'),
|
|
38
|
+
text
|
|
39
|
+
}), [style, text]);
|
|
40
|
+
let startDy;
|
|
41
|
+
switch (dominantBaseline) {
|
|
42
|
+
case 'hanging':
|
|
43
|
+
startDy = 0;
|
|
44
|
+
break;
|
|
45
|
+
case 'central':
|
|
46
|
+
startDy = (wordsByLines.length - 1) / 2 * -wordsByLines[0].height;
|
|
47
|
+
break;
|
|
48
|
+
default:
|
|
49
|
+
startDy = (wordsByLines.length - 1) * -wordsByLines[0].height;
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
const transforms = [];
|
|
53
|
+
// if (scaleToFit) {
|
|
54
|
+
// const lineWidth = wordsByLines[0].width;
|
|
55
|
+
// transforms.push(`scale(${(isNumber(width as number) ? (width as number) / lineWidth : 1) / lineWidth})`);
|
|
56
|
+
// }
|
|
57
|
+
if (angle) {
|
|
58
|
+
transforms.push(`rotate(${angle}, ${x}, ${y})`);
|
|
59
|
+
}
|
|
60
|
+
if (transforms.length) {
|
|
61
|
+
textProps.transform = transforms.join(' ');
|
|
62
|
+
}
|
|
63
|
+
return /*#__PURE__*/_jsx("text", _extends({}, textProps, {
|
|
64
|
+
x: x,
|
|
65
|
+
y: y,
|
|
66
|
+
textAnchor: textAnchor,
|
|
67
|
+
dominantBaseline: dominantBaseline,
|
|
68
|
+
style: style,
|
|
69
|
+
children: wordsByLines.map((line, index) => /*#__PURE__*/_jsx("tspan", {
|
|
70
|
+
x: x,
|
|
71
|
+
dy: `${index === 0 ? startDy : wordsByLines[0].height}px`,
|
|
72
|
+
dominantBaseline: dominantBaseline // Propagated to fix Safari issue: https://github.com/mui/mui-x/issues/10808
|
|
73
|
+
,
|
|
74
|
+
children: line.text
|
|
75
|
+
}, index))
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
// DOM utils taken from
|
|
3
|
+
// https://github.com/recharts/recharts/blob/master/src/util/DOMUtils.ts
|
|
4
|
+
|
|
5
|
+
const isSsr = () => !(typeof window !== 'undefined' && window.document && window.setTimeout);
|
|
6
|
+
const stringCache = {
|
|
7
|
+
widthCache: {},
|
|
8
|
+
cacheCount: 0
|
|
9
|
+
};
|
|
10
|
+
const MAX_CACHE_NUM = 2000;
|
|
11
|
+
const SPAN_STYLE = {
|
|
12
|
+
position: 'absolute',
|
|
13
|
+
top: '-20000px',
|
|
14
|
+
left: 0,
|
|
15
|
+
padding: 0,
|
|
16
|
+
margin: 0,
|
|
17
|
+
border: 'none',
|
|
18
|
+
whiteSpace: 'pre'
|
|
19
|
+
};
|
|
20
|
+
const STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];
|
|
21
|
+
const MEASUREMENT_SPAN_ID = 'mui_measurement_span';
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
* @param name CSS property name
|
|
26
|
+
* @param value
|
|
27
|
+
* @returns add 'px' for distance properties
|
|
28
|
+
*/
|
|
29
|
+
function autoCompleteStyle(name, value) {
|
|
30
|
+
if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {
|
|
31
|
+
return `${value}px`;
|
|
32
|
+
}
|
|
33
|
+
return value;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
*
|
|
38
|
+
* @param text camelcase css property
|
|
39
|
+
* @returns css property
|
|
40
|
+
*/
|
|
41
|
+
function camelToMiddleLine(text) {
|
|
42
|
+
const strs = text.split('');
|
|
43
|
+
const formatStrs = strs.reduce((result, entry) => {
|
|
44
|
+
if (entry === entry.toUpperCase()) {
|
|
45
|
+
return [...result, '-', entry.toLowerCase()];
|
|
46
|
+
}
|
|
47
|
+
return [...result, entry];
|
|
48
|
+
}, []);
|
|
49
|
+
return formatStrs.join('');
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
*
|
|
54
|
+
* @param style React style object
|
|
55
|
+
* @returns CSS styling string
|
|
56
|
+
*/
|
|
57
|
+
export const getStyleString = style => Object.keys(style).sort().reduce((result, s) => `${result}${camelToMiddleLine(s)}:${autoCompleteStyle(s, style[s])};`, '');
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
*
|
|
61
|
+
* @param text The string to estimate
|
|
62
|
+
* @param style The style applied
|
|
63
|
+
* @returns width and height of the text
|
|
64
|
+
*/
|
|
65
|
+
export const getStringSize = (text, style = {}) => {
|
|
66
|
+
if (text === undefined || text === null || isSsr()) {
|
|
67
|
+
return {
|
|
68
|
+
width: 0,
|
|
69
|
+
height: 0
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
const str = `${text}`;
|
|
73
|
+
const styleString = getStyleString(style);
|
|
74
|
+
const cacheKey = `${str}-${styleString}`;
|
|
75
|
+
if (stringCache.widthCache[cacheKey]) {
|
|
76
|
+
return stringCache.widthCache[cacheKey];
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
let measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);
|
|
80
|
+
if (measurementSpan === null) {
|
|
81
|
+
measurementSpan = document.createElement('span');
|
|
82
|
+
measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);
|
|
83
|
+
measurementSpan.setAttribute('aria-hidden', 'true');
|
|
84
|
+
document.body.appendChild(measurementSpan);
|
|
85
|
+
}
|
|
86
|
+
// Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)
|
|
87
|
+
// https://en.wikipedia.org/wiki/Content_Security_Policy
|
|
88
|
+
const measurementSpanStyle = _extends({}, SPAN_STYLE, style);
|
|
89
|
+
Object.keys(measurementSpanStyle).map(styleKey => {
|
|
90
|
+
measurementSpan.style[camelToMiddleLine(styleKey)] = autoCompleteStyle(styleKey, measurementSpanStyle[styleKey]);
|
|
91
|
+
return styleKey;
|
|
92
|
+
});
|
|
93
|
+
measurementSpan.textContent = str;
|
|
94
|
+
const rect = measurementSpan.getBoundingClientRect();
|
|
95
|
+
const result = {
|
|
96
|
+
width: rect.width,
|
|
97
|
+
height: rect.height
|
|
98
|
+
};
|
|
99
|
+
stringCache.widthCache[cacheKey] = result;
|
|
100
|
+
if (stringCache.cacheCount + 1 > MAX_CACHE_NUM) {
|
|
101
|
+
stringCache.cacheCount = 0;
|
|
102
|
+
stringCache.widthCache = {};
|
|
103
|
+
} else {
|
|
104
|
+
stringCache.cacheCount += 1;
|
|
105
|
+
}
|
|
106
|
+
return result;
|
|
107
|
+
} catch (e) {
|
|
108
|
+
return {
|
|
109
|
+
width: 0,
|
|
110
|
+
height: 0
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const ANGLE_APPROX = 5; // Angle (in deg) for which we approximate the rectangle as perfectly horizontal/vertical
|
|
2
|
+
|
|
3
|
+
let warnedOnce = false;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Return the minimal translation along the x-axis to avoid overflow of a rectangle of a given width, height, and rotation.
|
|
7
|
+
* This assumes that all rectangles have the same height and angle between -90 and 90.
|
|
8
|
+
* Otherwise it would be problematic because you need the height/width of the next rectangle to do the correct computation.
|
|
9
|
+
* @param width the side along the x-axis.
|
|
10
|
+
* @param height the side along the y-axis.
|
|
11
|
+
* @param angle the rotation in degrees.
|
|
12
|
+
*/
|
|
13
|
+
export function getMinXTranslation(width, height, angle = 0) {
|
|
14
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
15
|
+
if (!warnedOnce && angle > 90 && angle < -90) {
|
|
16
|
+
warnedOnce = true;
|
|
17
|
+
console.warn([`MUI X: It seems you applied an angle larger than 90° or smaller than -90° to an axis text.`, `This could cause some text overlapping.`, `If you encounter a use case where it's needed, please open an issue.`].join('\n'));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
const standardAngle = Math.min(Math.abs(angle) % 180, Math.abs(Math.abs(angle) % 180 - 180) % 180); // Map from R to [0, 90]
|
|
21
|
+
|
|
22
|
+
if (standardAngle < ANGLE_APPROX) {
|
|
23
|
+
// It's nearly horizontal
|
|
24
|
+
return width;
|
|
25
|
+
}
|
|
26
|
+
if (standardAngle > 90 - ANGLE_APPROX) {
|
|
27
|
+
// It's nearly vertical
|
|
28
|
+
return height;
|
|
29
|
+
}
|
|
30
|
+
const radAngle = standardAngle * Math.PI / 180;
|
|
31
|
+
const angleSwich = Math.atan2(height, width);
|
|
32
|
+
if (radAngle < angleSwich) {
|
|
33
|
+
return width / Math.cos(radAngle);
|
|
34
|
+
}
|
|
35
|
+
return height / Math.sin(radAngle);
|
|
36
|
+
}
|
package/hooks/useAxisEvents.js
CHANGED
|
@@ -9,8 +9,8 @@ var _InteractionProvider = require("../context/InteractionProvider");
|
|
|
9
9
|
var _CartesianContextProvider = require("../context/CartesianContextProvider");
|
|
10
10
|
var _DrawingProvider = require("../context/DrawingProvider");
|
|
11
11
|
var _isBandScale = require("../internals/isBandScale");
|
|
12
|
-
function _getRequireWildcardCache(
|
|
13
|
-
function _interopRequireWildcard(
|
|
12
|
+
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); }
|
|
13
|
+
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; }
|
|
14
14
|
const useAxisEvents = disableAxisListener => {
|
|
15
15
|
const svgRef = React.useContext(_DrawingProvider.SVGContext);
|
|
16
16
|
const {
|
|
@@ -8,17 +8,18 @@ exports.default = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _constants = require("../constants");
|
|
11
|
-
function _getRequireWildcardCache(
|
|
12
|
-
function _interopRequireWildcard(
|
|
11
|
+
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); }
|
|
12
|
+
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; }
|
|
13
13
|
const useChartDimensions = (width, height, margin) => {
|
|
14
14
|
const defaultizedMargin = (0, _extends2.default)({}, _constants.DEFAULT_MARGINS, margin);
|
|
15
15
|
const drawingArea = React.useMemo(() => ({
|
|
16
16
|
left: defaultizedMargin.left,
|
|
17
17
|
top: defaultizedMargin.top,
|
|
18
|
+
right: defaultizedMargin.right,
|
|
19
|
+
bottom: defaultizedMargin.bottom,
|
|
18
20
|
width: Math.max(0, width - defaultizedMargin.left - defaultizedMargin.right),
|
|
19
21
|
height: Math.max(0, height - defaultizedMargin.top - defaultizedMargin.bottom)
|
|
20
22
|
}), [width, height, defaultizedMargin.top, defaultizedMargin.bottom, defaultizedMargin.left, defaultizedMargin.right]);
|
|
21
23
|
return drawingArea;
|
|
22
24
|
};
|
|
23
|
-
var _default = useChartDimensions;
|
|
24
|
-
exports.default = _default;
|
|
25
|
+
var _default = exports.default = useChartDimensions;
|
package/hooks/useDrawingArea.js
CHANGED
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.useDrawingArea = useDrawingArea;
|
|
7
7
|
var React = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _DrawingProvider = require("../context/DrawingProvider");
|
|
9
|
-
function _getRequireWildcardCache(
|
|
10
|
-
function _interopRequireWildcard(
|
|
9
|
+
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); }
|
|
10
|
+
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; }
|
|
11
11
|
function useDrawingArea() {
|
|
12
12
|
const {
|
|
13
13
|
left,
|
|
@@ -7,8 +7,8 @@ exports.useInteractionItemProps = exports.getIsHighlighted = exports.getIsFaded
|
|
|
7
7
|
var React = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _InteractionProvider = require("../context/InteractionProvider");
|
|
9
9
|
var _HighlightProvider = require("../context/HighlightProvider");
|
|
10
|
-
function _getRequireWildcardCache(
|
|
11
|
-
function _interopRequireWildcard(
|
|
10
|
+
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); }
|
|
11
|
+
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; }
|
|
12
12
|
const useInteractionItemProps = scope => {
|
|
13
13
|
const {
|
|
14
14
|
dispatch: dispatchInteraction
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useMounted(defer?: boolean): boolean;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useMounted = useMounted;
|
|
8
|
+
var React = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
|
|
10
|
+
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); }
|
|
11
|
+
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; }
|
|
12
|
+
function useMounted(defer = false) {
|
|
13
|
+
const [mountedState, setMountedState] = React.useState(false);
|
|
14
|
+
(0, _useEnhancedEffect.default)(() => {
|
|
15
|
+
if (!defer) {
|
|
16
|
+
setMountedState(true);
|
|
17
|
+
}
|
|
18
|
+
}, [defer]);
|
|
19
|
+
React.useEffect(() => {
|
|
20
|
+
if (defer) {
|
|
21
|
+
setMountedState(true);
|
|
22
|
+
}
|
|
23
|
+
}, [defer]);
|
|
24
|
+
return mountedState;
|
|
25
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns `boolean` or `null`, used to automatically
|
|
3
|
+
* set skipAnimations to the value of the user's
|
|
4
|
+
* `prefers-reduced-motion` query.
|
|
5
|
+
*
|
|
6
|
+
* The return value, post-effect, is the value of their prefered setting
|
|
7
|
+
*/
|
|
8
|
+
export declare const useReducedMotion: () => void;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useReducedMotion = void 0;
|
|
7
|
+
var _web = require("@react-spring/web");
|
|
8
|
+
/**
|
|
9
|
+
* Returns `boolean` or `null`, used to automatically
|
|
10
|
+
* set skipAnimations to the value of the user's
|
|
11
|
+
* `prefers-reduced-motion` query.
|
|
12
|
+
*
|
|
13
|
+
* The return value, post-effect, is the value of their prefered setting
|
|
14
|
+
*/
|
|
15
|
+
const useReducedMotion = () => {
|
|
16
|
+
// Taken from: https://github.com/pmndrs/react-spring/blob/02ec877bbfab0df46da0e4a47d5f68d3e731206a/packages/shared/src/hooks/useReducedMotion.ts#L13
|
|
17
|
+
|
|
18
|
+
(0, _web.useIsomorphicLayoutEffect)(() => {
|
|
19
|
+
const mql = window.matchMedia('(prefers-reduced-motion)');
|
|
20
|
+
const handleMediaChange = e => {
|
|
21
|
+
_web.Globals.assign({
|
|
22
|
+
// Modification such the react-spring implementation such that this hook can remove animation but never activate animation.
|
|
23
|
+
skipAnimation: e.matches || undefined
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
handleMediaChange(mql);
|
|
27
|
+
mql.addEventListener('change', handleMediaChange);
|
|
28
|
+
return () => {
|
|
29
|
+
mql.removeEventListener('change', handleMediaChange);
|
|
30
|
+
};
|
|
31
|
+
}, []);
|
|
32
|
+
};
|
|
33
|
+
exports.useReducedMotion = useReducedMotion;
|
package/hooks/useScale.d.ts
CHANGED
|
@@ -6,5 +6,5 @@ import { D3Scale } from '../models/axis';
|
|
|
6
6
|
* @returns (value: any) => number
|
|
7
7
|
*/
|
|
8
8
|
export declare function getValueToPositionMapper(scale: D3Scale): (value: any) => number;
|
|
9
|
-
export declare function useXScale(identifier?: number | string): import("d3-scale").ScaleBand<
|
|
10
|
-
export declare function useYScale(identifier?: number | string): import("d3-scale").ScaleBand<
|
|
9
|
+
export declare function useXScale(identifier?: number | string): import("d3-scale").ScaleBand<string | number | Date> | import("d3-scale").ScalePoint<string | number | Date> | import("d3-scale").ScaleLogarithmic<number, number, never> | import("d3-scale").ScalePower<number, number, never> | import("d3-scale").ScaleTime<number, number, never> | import("d3-scale").ScaleLinear<number, number, never>;
|
|
10
|
+
export declare function useYScale(identifier?: number | string): import("d3-scale").ScaleBand<string | number | Date> | import("d3-scale").ScalePoint<string | number | Date> | import("d3-scale").ScaleLogarithmic<number, number, never> | import("d3-scale").ScalePower<number, number, never> | import("d3-scale").ScaleTime<number, number, never> | import("d3-scale").ScaleLinear<number, number, never>;
|
package/hooks/useScale.js
CHANGED
|
@@ -9,8 +9,8 @@ exports.useYScale = useYScale;
|
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _CartesianContextProvider = require("../context/CartesianContextProvider");
|
|
11
11
|
var _isBandScale = require("../internals/isBandScale");
|
|
12
|
-
function _getRequireWildcardCache(
|
|
13
|
-
function _interopRequireWildcard(
|
|
12
|
+
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); }
|
|
13
|
+
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; }
|
|
14
14
|
/**
|
|
15
15
|
* For a given scale return a function that map value to their position.
|
|
16
16
|
* Usefull when dealing with specific scale such as band.
|
package/hooks/useTicks.d.ts
CHANGED
|
@@ -17,22 +17,30 @@ export interface TickParams {
|
|
|
17
17
|
* Not supported by categorical axis (band, points).
|
|
18
18
|
*/
|
|
19
19
|
tickNumber?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Defines which ticks are displayed. Its value can be:
|
|
22
|
+
* - 'auto' In such case the ticks are computed based on axis scale and other parameters.
|
|
23
|
+
* - a filtering function of the form `(value, index) => boolean` which is available only if the axis has a data property.
|
|
24
|
+
* - an array containing the values where ticks should be displayed.
|
|
25
|
+
* @default 'auto'
|
|
26
|
+
*/
|
|
27
|
+
tickInterval?: 'auto' | ((value: any, index: number) => boolean) | any[];
|
|
20
28
|
}
|
|
21
|
-
export declare function
|
|
29
|
+
export declare function getTickNumber(params: TickParams & {
|
|
22
30
|
range: any[];
|
|
23
31
|
domain: any[];
|
|
24
32
|
}): number;
|
|
33
|
+
export type TickItemType = {
|
|
34
|
+
/**
|
|
35
|
+
* This property is undefined only if it's the tick closing the last band
|
|
36
|
+
*/
|
|
37
|
+
value?: any;
|
|
38
|
+
formattedValue?: string;
|
|
39
|
+
offset: number;
|
|
40
|
+
labelOffset: number;
|
|
41
|
+
};
|
|
25
42
|
declare function useTicks(options: {
|
|
26
43
|
scale: D3Scale;
|
|
27
|
-
ticksNumber?: number;
|
|
28
44
|
valueFormatter?: (value: any) => string;
|
|
29
|
-
}):
|
|
30
|
-
formattedValue: any;
|
|
31
|
-
offset: number;
|
|
32
|
-
labelOffset: number;
|
|
33
|
-
}[] | {
|
|
34
|
-
formattedValue: string;
|
|
35
|
-
offset: any;
|
|
36
|
-
labelOffset: number;
|
|
37
|
-
}[];
|
|
45
|
+
} & Pick<TickParams, 'tickNumber' | 'tickInterval'>): TickItemType[];
|
|
38
46
|
export default useTicks;
|