@mui/x-charts 9.0.0-alpha.4 → 9.0.0-beta.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/BarChart/BarChart.js +19 -28
- package/BarChart/BarChart.mjs +19 -28
- package/BarChart/BarElement.js +3 -5
- package/BarChart/BarElement.mjs +3 -5
- package/BarChart/BarLabel/BarLabelPlot.d.mts +0 -2
- package/BarChart/BarLabel/BarLabelPlot.d.ts +0 -2
- package/BarChart/BarLabel/BarLabelPlot.js +2 -3
- package/BarChart/BarLabel/BarLabelPlot.mjs +2 -3
- package/BarChart/BarPlot.d.mts +2 -12
- package/BarChart/BarPlot.d.ts +2 -12
- package/BarChart/BarPlot.js +4 -18
- package/BarChart/BarPlot.mjs +4 -18
- package/BarChart/BatchBarPlot/BatchBarPlot.js +0 -27
- package/BarChart/BatchBarPlot/BatchBarPlot.mjs +0 -27
- package/BarChart/IndividualBarPlot.d.mts +1 -2
- package/BarChart/IndividualBarPlot.d.ts +1 -2
- package/BarChart/IndividualBarPlot.js +5 -10
- package/BarChart/IndividualBarPlot.mjs +5 -10
- package/BarChart/seriesConfig/bar/descriptionGetter.d.mts +3 -0
- package/BarChart/seriesConfig/bar/descriptionGetter.d.ts +3 -0
- package/BarChart/seriesConfig/bar/descriptionGetter.js +36 -0
- package/BarChart/seriesConfig/bar/descriptionGetter.mjs +30 -0
- package/BarChart/seriesConfig/index.js +5 -1
- package/BarChart/seriesConfig/index.mjs +5 -1
- package/BarChart/useBarChartProps.js +2 -4
- package/BarChart/useBarChartProps.mjs +2 -4
- package/CHANGELOG.md +107 -1
- package/ChartsContainer/ChartsContainer.js +29 -29
- package/ChartsContainer/ChartsContainer.mjs +29 -29
- package/ChartsLayerContainer/ChartsLayerContainer.js +6 -2
- package/ChartsLayerContainer/ChartsLayerContainer.mjs +7 -2
- package/ChartsSvgLayer/ChartsSvgLayer.js +2 -2
- package/ChartsSvgLayer/ChartsSvgLayer.mjs +2 -2
- package/ChartsXAxis/ChartsGroupedXAxisTicks.js +12 -3
- package/ChartsXAxis/ChartsGroupedXAxisTicks.mjs +12 -3
- package/ChartsXAxis/useAxisTicksProps.d.mts +89 -89
- package/ChartsXAxis/useAxisTicksProps.d.ts +89 -89
- package/ChartsYAxis/ChartsGroupedYAxisTicks.js +12 -3
- package/ChartsYAxis/ChartsGroupedYAxisTicks.mjs +12 -3
- package/ChartsYAxis/useAxisTicksProps.d.mts +89 -89
- package/ChartsYAxis/useAxisTicksProps.d.ts +89 -89
- package/Gauge/Gauge.js +0 -4
- package/Gauge/Gauge.mjs +0 -4
- package/Gauge/GaugeContainer.d.mts +1 -1
- package/Gauge/GaugeContainer.d.ts +1 -1
- package/Gauge/GaugeContainer.js +0 -4
- package/Gauge/GaugeContainer.mjs +0 -4
- package/LineChart/AreaElement.js +5 -1
- package/LineChart/AreaElement.mjs +5 -1
- package/LineChart/CircleMarkElement.js +8 -5
- package/LineChart/CircleMarkElement.mjs +8 -5
- package/LineChart/LineChart.js +21 -19
- package/LineChart/LineChart.mjs +21 -19
- package/LineChart/LineElement.js +5 -1
- package/LineChart/LineElement.mjs +5 -1
- package/LineChart/MarkElement.js +7 -4
- package/LineChart/MarkElement.mjs +7 -4
- package/LineChart/seriesConfig/curveEvaluation.d.mts +11 -0
- package/LineChart/seriesConfig/curveEvaluation.d.ts +11 -0
- package/LineChart/seriesConfig/curveEvaluation.js +134 -0
- package/LineChart/seriesConfig/curveEvaluation.mjs +129 -0
- package/LineChart/seriesConfig/descriptionGetter.d.mts +3 -0
- package/LineChart/seriesConfig/descriptionGetter.d.ts +3 -0
- package/LineChart/seriesConfig/descriptionGetter.js +37 -0
- package/LineChart/seriesConfig/descriptionGetter.mjs +31 -0
- package/LineChart/seriesConfig/getItemAtPosition.d.mts +7 -0
- package/LineChart/seriesConfig/getItemAtPosition.d.ts +7 -0
- package/LineChart/seriesConfig/getItemAtPosition.js +356 -0
- package/LineChart/seriesConfig/getItemAtPosition.mjs +351 -0
- package/LineChart/seriesConfig/index.js +4 -0
- package/LineChart/seriesConfig/index.mjs +4 -0
- package/PieChart/PieArc.js +2 -3
- package/PieChart/PieArc.mjs +2 -3
- package/PieChart/seriesConfig/descriptionGetter.d.mts +3 -0
- package/PieChart/seriesConfig/descriptionGetter.d.ts +3 -0
- package/PieChart/seriesConfig/descriptionGetter.js +26 -0
- package/PieChart/seriesConfig/descriptionGetter.mjs +20 -0
- package/PieChart/seriesConfig/index.js +2 -0
- package/PieChart/seriesConfig/index.mjs +2 -0
- package/RadarChart/seriesConfig/descriptionGetter.d.mts +3 -0
- package/RadarChart/seriesConfig/descriptionGetter.d.ts +3 -0
- package/RadarChart/seriesConfig/descriptionGetter.js +37 -0
- package/RadarChart/seriesConfig/descriptionGetter.mjs +31 -0
- package/RadarChart/seriesConfig/index.js +2 -0
- package/RadarChart/seriesConfig/index.mjs +2 -0
- package/ScatterChart/ScatterChart.js +18 -18
- package/ScatterChart/ScatterChart.mjs +18 -18
- package/ScatterChart/seriesConfig/descriptionGetter.d.mts +3 -0
- package/ScatterChart/seriesConfig/descriptionGetter.d.ts +3 -0
- package/ScatterChart/seriesConfig/descriptionGetter.js +34 -0
- package/ScatterChart/seriesConfig/descriptionGetter.mjs +28 -0
- package/ScatterChart/seriesConfig/index.js +2 -0
- package/ScatterChart/seriesConfig/index.mjs +2 -0
- package/SparkLineChart/SparkLineChart.js +21 -19
- package/SparkLineChart/SparkLineChart.mjs +21 -19
- package/constants/index.js +0 -2
- package/constants/index.mjs +0 -2
- package/hooks/useInteractionItemProps.d.mts +1 -1
- package/hooks/useInteractionItemProps.d.ts +1 -1
- package/hooks/useInteractionItemProps.js +3 -3
- package/hooks/useInteractionItemProps.mjs +3 -3
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/internals/components/ChartsAccessibilityProxy/ChartsAccessibilityProxy.d.mts +5 -0
- package/internals/components/ChartsAccessibilityProxy/ChartsAccessibilityProxy.d.ts +5 -0
- package/internals/components/ChartsAccessibilityProxy/ChartsAccessibilityProxy.js +100 -0
- package/internals/components/ChartsAccessibilityProxy/ChartsAccessibilityProxy.mjs +96 -0
- package/internals/components/ChartsAccessibilityProxy/index.d.mts +1 -0
- package/internals/components/ChartsAccessibilityProxy/index.d.ts +1 -0
- package/internals/components/ChartsAccessibilityProxy/index.js +16 -0
- package/internals/components/ChartsAccessibilityProxy/index.mjs +1 -0
- package/internals/components/ChartsAccessibilityProxy/useDescription.d.mts +5 -0
- package/internals/components/ChartsAccessibilityProxy/useDescription.d.ts +5 -0
- package/internals/components/ChartsAccessibilityProxy/useDescription.js +71 -0
- package/internals/components/ChartsAccessibilityProxy/useDescription.mjs +66 -0
- package/internals/getChartPoint.js +18 -1
- package/internals/getChartPoint.mjs +18 -1
- package/internals/plugins/corePlugins/corePlugins.d.mts +2 -2
- package/internals/plugins/corePlugins/corePlugins.d.ts +2 -2
- package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.d.mts +2 -1
- package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.d.ts +2 -1
- package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.d.mts +2 -1
- package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.d.ts +2 -1
- package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.d.mts +22 -7
- package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.d.ts +22 -7
- package/internals/plugins/corePlugins/useChartSeries/index.d.mts +2 -1
- package/internals/plugins/corePlugins/useChartSeries/index.d.ts +2 -1
- package/internals/plugins/corePlugins/useChartSeries/index.js +12 -0
- package/internals/plugins/corePlugins/useChartSeries/index.mjs +2 -1
- package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.mts +1 -8
- package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +1 -8
- package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.js +1 -11
- package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.mjs +1 -11
- package/internals/plugins/corePlugins/useChartSeries/useChartSeriesLayout.selectors.d.mts +8 -0
- package/internals/plugins/corePlugins/useChartSeries/useChartSeriesLayout.selectors.d.ts +8 -0
- package/internals/plugins/corePlugins/useChartSeries/useChartSeriesLayout.selectors.js +19 -0
- package/internals/plugins/corePlugins/useChartSeries/useChartSeriesLayout.selectors.mjs +14 -0
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/descriptionGetter.types.d.mts +5 -0
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/descriptionGetter.types.d.ts +5 -0
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/descriptionGetter.types.js +5 -0
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/descriptionGetter.types.mjs +1 -0
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/index.d.mts +1 -0
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/index.d.ts +1 -0
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/index.js +11 -0
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/index.mjs +1 -0
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/seriesConfig.types.d.mts +2 -0
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/seriesConfig.types.d.ts +2 -0
- package/internals/plugins/featurePlugins/shared/useRegisterPointerInteractions.d.mts +4 -10
- package/internals/plugins/featurePlugins/shared/useRegisterPointerInteractions.d.ts +4 -10
- package/internals/plugins/featurePlugins/shared/useRegisterPointerInteractions.js +28 -19
- package/internals/plugins/featurePlugins/shared/useRegisterPointerInteractions.mjs +28 -18
- package/internals/plugins/featurePlugins/useChartCartesianAxis/autoSizeConstants.d.mts +5 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/autoSizeConstants.d.ts +5 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/autoSizeConstants.js +11 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/autoSizeConstants.mjs +5 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisAutoSize.d.mts +33 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisAutoSize.d.ts +33 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisAutoSize.js +318 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisAutoSize.mjs +311 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.mts +5 -1
- package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.ts +5 -1
- package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +63 -8
- package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.mjs +62 -8
- package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.js +12 -4
- package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.mjs +12 -4
- package/internals/plugins/featurePlugins/useChartCartesianAxis/domain.d.mts +12 -2
- package/internals/plugins/featurePlugins/useChartCartesianAxis/domain.d.ts +12 -2
- package/internals/plugins/featurePlugins/useChartCartesianAxis/domain.js +28 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/domain.mjs +27 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.mts +3 -1
- package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +3 -1
- package/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +22 -2
- package/internals/plugins/featurePlugins/useChartCartesianAxis/index.mjs +3 -1
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisAutoSize.selectors.d.mts +30 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisAutoSize.selectors.d.ts +30 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisAutoSize.selectors.js +96 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisAutoSize.selectors.mjs +91 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisDomains.selectors.d.mts +16 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisDomains.selectors.d.ts +16 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisDomains.selectors.js +36 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisDomains.selectors.mjs +31 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisExtrema.selectors.d.mts +15 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisExtrema.selectors.d.ts +15 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisExtrema.selectors.js +45 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisExtrema.selectors.mjs +39 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.mts +11 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +11 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.js +53 -11
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.mjs +52 -11
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.mts +4 -9
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +4 -9
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js +16 -40
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.mjs +19 -43
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianTooltip.selectors.js +20 -2
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianTooltip.selectors.mjs +20 -2
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.js +36 -30
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.mjs +36 -30
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.d.mts +8 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.d.ts +8 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.js +9 -2
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.mjs +9 -2
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.types.d.mts +6 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.types.d.ts +6 -0
- package/internals/store/useCharts.d.mts +1 -1
- package/internals/store/useCharts.d.ts +1 -1
- package/locales/elGR.d.mts +76 -0
- package/locales/elGR.d.ts +76 -0
- package/locales/elGR.js +89 -0
- package/locales/elGR.mjs +89 -0
- package/locales/enUS.d.mts +76 -0
- package/locales/enUS.d.ts +76 -0
- package/locales/enUS.js +89 -1
- package/locales/enUS.mjs +89 -1
- package/locales/frFR.d.mts +76 -0
- package/locales/frFR.d.ts +76 -0
- package/locales/frFR.js +89 -0
- package/locales/frFR.mjs +89 -0
- package/locales/nbNO.d.mts +76 -0
- package/locales/nbNO.d.ts +76 -0
- package/locales/nbNO.js +89 -0
- package/locales/nbNO.mjs +89 -0
- package/locales/ptBR.d.mts +76 -0
- package/locales/ptBR.d.ts +76 -0
- package/locales/ptBR.js +89 -0
- package/locales/ptBR.mjs +89 -0
- package/locales/ptPT.d.mts +76 -0
- package/locales/ptPT.d.ts +76 -0
- package/locales/ptPT.js +89 -0
- package/locales/ptPT.mjs +89 -0
- package/locales/svSE.d.mts +76 -0
- package/locales/svSE.d.ts +76 -0
- package/locales/svSE.js +89 -0
- package/locales/svSE.mjs +89 -0
- package/locales/utils/chartsLocaleTextApi.d.mts +189 -0
- package/locales/utils/chartsLocaleTextApi.d.ts +189 -0
- package/locales/utils/getChartsLocalization.d.mts +76 -0
- package/locales/utils/getChartsLocalization.d.ts +76 -0
- package/models/axis.d.mts +11 -5
- package/models/axis.d.ts +11 -5
- package/models/seriesType/config.d.mts +29 -0
- package/models/seriesType/config.d.ts +29 -0
- package/package.json +85 -85
package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.mjs
CHANGED
|
@@ -1,29 +1,70 @@
|
|
|
1
1
|
import { createSelector, createSelectorMemoized } from '@mui/x-internals/store';
|
|
2
2
|
import { selectorChartCartesianAxesGap, selectorChartRawXAxis, selectorChartRawYAxis } from "./useChartCartesianAxisLayout.selectors.mjs";
|
|
3
|
-
|
|
3
|
+
import { selectorChartXAxisAutoSizes, selectorChartYAxisAutoSizes } from "./useChartAxisAutoSize.selectors.mjs";
|
|
4
|
+
import { DEFAULT_AXIS_SIZE_HEIGHT, DEFAULT_AXIS_SIZE_WIDTH, AXIS_LABEL_DEFAULT_HEIGHT } from "../../../../constants/index.mjs";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Returns the default fallback height for an X axis when auto-sizing is not available.
|
|
8
|
+
* This function ensures consistent fallback values between axis size calculation and rendering.
|
|
9
|
+
*/
|
|
10
|
+
export function getDefaultXAxisHeight(axis) {
|
|
11
|
+
return DEFAULT_AXIS_SIZE_HEIGHT + (axis.label ? AXIS_LABEL_DEFAULT_HEIGHT : 0);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Returns the default fallback width for a Y axis when auto-sizing is not available.
|
|
16
|
+
* This function ensures consistent fallback values between axis size calculation and rendering.
|
|
17
|
+
*/
|
|
18
|
+
export function getDefaultYAxisWidth(axis) {
|
|
19
|
+
return DEFAULT_AXIS_SIZE_WIDTH + (axis.label ? AXIS_LABEL_DEFAULT_HEIGHT : 0);
|
|
20
|
+
}
|
|
21
|
+
function selectXAxisSize(axes, axesGap, position, autoSizes) {
|
|
22
|
+
let axesSize = 0;
|
|
23
|
+
let nbOfAxes = 0;
|
|
24
|
+
for (const axis of axes ?? []) {
|
|
25
|
+
if (axis.position !== position) {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
let axisSize;
|
|
29
|
+
if (axis.height === 'auto') {
|
|
30
|
+
axisSize = autoSizes[axis.id] ?? getDefaultXAxisHeight(axis);
|
|
31
|
+
} else {
|
|
32
|
+
axisSize = axis.height ?? 0;
|
|
33
|
+
}
|
|
34
|
+
axesSize += axisSize + (axis.zoom?.slider.enabled ? axis.zoom.slider.size : 0);
|
|
35
|
+
nbOfAxes += 1;
|
|
36
|
+
}
|
|
37
|
+
return axesSize + axesGap * Math.max(0, nbOfAxes - 1);
|
|
38
|
+
}
|
|
39
|
+
function selectYAxisSize(axes, axesGap, position, autoSizes) {
|
|
4
40
|
let axesSize = 0;
|
|
5
41
|
let nbOfAxes = 0;
|
|
6
42
|
for (const axis of axes ?? []) {
|
|
7
43
|
if (axis.position !== position) {
|
|
8
44
|
continue;
|
|
9
45
|
}
|
|
10
|
-
|
|
11
|
-
|
|
46
|
+
let axisSize;
|
|
47
|
+
if (axis.width === 'auto') {
|
|
48
|
+
axisSize = autoSizes[axis.id] ?? getDefaultYAxisWidth(axis);
|
|
49
|
+
} else {
|
|
50
|
+
axisSize = axis.width ?? 0;
|
|
51
|
+
}
|
|
52
|
+
axesSize += axisSize + (axis.zoom?.slider.enabled ? axis.zoom.slider.size : 0);
|
|
12
53
|
nbOfAxes += 1;
|
|
13
54
|
}
|
|
14
55
|
return axesSize + axesGap * Math.max(0, nbOfAxes - 1);
|
|
15
56
|
}
|
|
16
|
-
export const selectorChartLeftAxisSize = createSelector(selectorChartRawYAxis, selectorChartCartesianAxesGap, function selectorChartLeftAxisSize(yAxis, axesGap) {
|
|
17
|
-
return
|
|
57
|
+
export const selectorChartLeftAxisSize = createSelector(selectorChartRawYAxis, selectorChartCartesianAxesGap, selectorChartYAxisAutoSizes, function selectorChartLeftAxisSize(yAxis, axesGap, autoSizes) {
|
|
58
|
+
return selectYAxisSize(yAxis, axesGap, 'left', autoSizes);
|
|
18
59
|
});
|
|
19
|
-
export const selectorChartRightAxisSize = createSelector(selectorChartRawYAxis, selectorChartCartesianAxesGap, function selectorChartRightAxisSize(yAxis, axesGap) {
|
|
20
|
-
return
|
|
60
|
+
export const selectorChartRightAxisSize = createSelector(selectorChartRawYAxis, selectorChartCartesianAxesGap, selectorChartYAxisAutoSizes, function selectorChartRightAxisSize(yAxis, axesGap, autoSizes) {
|
|
61
|
+
return selectYAxisSize(yAxis, axesGap, 'right', autoSizes);
|
|
21
62
|
});
|
|
22
|
-
export const selectorChartTopAxisSize = createSelector(selectorChartRawXAxis, selectorChartCartesianAxesGap, function selectorChartTopAxisSize(xAxis, axesGap) {
|
|
23
|
-
return
|
|
63
|
+
export const selectorChartTopAxisSize = createSelector(selectorChartRawXAxis, selectorChartCartesianAxesGap, selectorChartXAxisAutoSizes, function selectorChartTopAxisSize(xAxis, axesGap, autoSizes) {
|
|
64
|
+
return selectXAxisSize(xAxis, axesGap, 'top', autoSizes);
|
|
24
65
|
});
|
|
25
|
-
export const selectorChartBottomAxisSize = createSelector(selectorChartRawXAxis, selectorChartCartesianAxesGap, function selectorChartBottomAxisSize(xAxis, axesGap) {
|
|
26
|
-
return
|
|
66
|
+
export const selectorChartBottomAxisSize = createSelector(selectorChartRawXAxis, selectorChartCartesianAxesGap, selectorChartXAxisAutoSizes, function selectorChartBottomAxisSize(xAxis, axesGap, autoSizes) {
|
|
67
|
+
return selectXAxisSize(xAxis, axesGap, 'bottom', autoSizes);
|
|
27
68
|
});
|
|
28
69
|
export const selectorChartAxisSizes = createSelectorMemoized(selectorChartLeftAxisSize, selectorChartRightAxisSize, selectorChartTopAxisSize, selectorChartBottomAxisSize, function selectorChartAxisSizes(left, right, top, bottom) {
|
|
29
70
|
return {
|
|
@@ -30,21 +30,17 @@ export declare const selectorDefaultXAxisTickNumber: (args_0: import("../../core
|
|
|
30
30
|
export declare const selectorDefaultYAxisTickNumber: (args_0: import("../../corePlugins/useChartId/useChartId.types.mjs").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.mjs").UseChartSeriesConfigState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.mjs").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.mjs").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.mjs").UseChartSeriesState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.mjs").UseChartAnimationState & import("../../../index.mjs").UseChartInteractionListenerState & Partial<{}> & {
|
|
31
31
|
cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
|
|
32
32
|
}) => number;
|
|
33
|
-
type DomainDefinition = {
|
|
34
|
-
domain: ReadonlyArray<string | NumberValue>;
|
|
35
|
-
tickNumber?: number;
|
|
36
|
-
};
|
|
37
33
|
export declare const selectorChartXAxisWithDomains: (args_0: import("../../corePlugins/useChartId/useChartId.types.mjs").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.mjs").UseChartSeriesConfigState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.mjs").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.mjs").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.mjs").UseChartSeriesState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.mjs").UseChartAnimationState & import("../../../index.mjs").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.mjs").UseChartCartesianAxisState> & {
|
|
38
34
|
cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
|
|
39
35
|
}) => {
|
|
40
36
|
axes: import("../../../index.mjs").DefaultedXAxis[] | undefined;
|
|
41
|
-
domains: Record<AxisId, DomainDefinition>;
|
|
37
|
+
domains: Record<AxisId, import("./domain.mjs").DomainDefinition>;
|
|
42
38
|
};
|
|
43
39
|
export declare const selectorChartYAxisWithDomains: (args_0: import("../../corePlugins/useChartId/useChartId.types.mjs").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.mjs").UseChartSeriesConfigState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.mjs").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.mjs").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.mjs").UseChartSeriesState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.mjs").UseChartAnimationState & import("../../../index.mjs").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.mjs").UseChartCartesianAxisState> & {
|
|
44
40
|
cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
|
|
45
41
|
}) => {
|
|
46
42
|
axes: import("../../../index.mjs").DefaultedYAxis[] | undefined;
|
|
47
|
-
domains: Record<AxisId, DomainDefinition>;
|
|
43
|
+
domains: Record<AxisId, import("./domain.mjs").DomainDefinition>;
|
|
48
44
|
};
|
|
49
45
|
export declare const selectorChartZoomAxisFilters: (args_0: import("../../corePlugins/useChartId/useChartId.types.mjs").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.mjs").UseChartSeriesConfigState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.mjs").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.mjs").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.mjs").UseChartSeriesState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.mjs").UseChartAnimationState & import("../../../index.mjs").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.mjs").UseChartCartesianAxisState> & {
|
|
50
46
|
cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
|
|
@@ -142,7 +138,7 @@ export declare const selectorChartRawAxis: (args_0: import("../../corePlugins/us
|
|
|
142
138
|
colorMap?: import("../../../../models/colorMapping.mjs").ContinuousColorConfig | import("../../../../models/colorMapping.mjs").PiecewiseColorConfig;
|
|
143
139
|
}, "scale">> & {
|
|
144
140
|
position?: "left" | "right" | "none";
|
|
145
|
-
width?: number;
|
|
141
|
+
width?: number | "auto";
|
|
146
142
|
} & import("../../../../hooks/useTicks.mjs").TickParams & import("../../../index.mjs").AxisConfigExtension & {
|
|
147
143
|
zoom: import("./useChartCartesianAxis.types.mjs").DefaultizedZoomOptions | undefined;
|
|
148
144
|
}) | undefined;
|
|
@@ -155,5 +151,4 @@ export declare const selectorChartDefaultYAxisId: (args_0: import("../../corePlu
|
|
|
155
151
|
export declare const selectorChartSeriesEmptyFlatbushMap: () => Map<string, Flatbush>;
|
|
156
152
|
export declare const selectorChartSeriesFlatbushMap: (args_0: import("../../corePlugins/useChartId/useChartId.types.mjs").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.mjs").UseChartSeriesConfigState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.mjs").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.mjs").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.mjs").UseChartSeriesState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.mjs").UseChartAnimationState & import("../../../index.mjs").UseChartInteractionListenerState & Partial<{}> & {
|
|
157
153
|
cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
|
|
158
|
-
}) => Map<string, Flatbush>;
|
|
159
|
-
export {};
|
|
154
|
+
}) => Map<string, Flatbush>;
|
|
@@ -30,21 +30,17 @@ export declare const selectorDefaultXAxisTickNumber: (args_0: import("../../core
|
|
|
30
30
|
export declare const selectorDefaultYAxisTickNumber: (args_0: import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.js").UseChartSeriesConfigState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<{}> & {
|
|
31
31
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
32
32
|
}) => number;
|
|
33
|
-
type DomainDefinition = {
|
|
34
|
-
domain: ReadonlyArray<string | NumberValue>;
|
|
35
|
-
tickNumber?: number;
|
|
36
|
-
};
|
|
37
33
|
export declare const selectorChartXAxisWithDomains: (args_0: import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.js").UseChartSeriesConfigState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
38
34
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
39
35
|
}) => {
|
|
40
36
|
axes: import("../../../index.js").DefaultedXAxis[] | undefined;
|
|
41
|
-
domains: Record<AxisId, DomainDefinition>;
|
|
37
|
+
domains: Record<AxisId, import("./domain.js").DomainDefinition>;
|
|
42
38
|
};
|
|
43
39
|
export declare const selectorChartYAxisWithDomains: (args_0: import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.js").UseChartSeriesConfigState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
44
40
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
45
41
|
}) => {
|
|
46
42
|
axes: import("../../../index.js").DefaultedYAxis[] | undefined;
|
|
47
|
-
domains: Record<AxisId, DomainDefinition>;
|
|
43
|
+
domains: Record<AxisId, import("./domain.js").DomainDefinition>;
|
|
48
44
|
};
|
|
49
45
|
export declare const selectorChartZoomAxisFilters: (args_0: import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.js").UseChartSeriesConfigState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
|
|
50
46
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
@@ -142,7 +138,7 @@ export declare const selectorChartRawAxis: (args_0: import("../../corePlugins/us
|
|
|
142
138
|
colorMap?: import("../../../../models/colorMapping.js").ContinuousColorConfig | import("../../../../models/colorMapping.js").PiecewiseColorConfig;
|
|
143
139
|
}, "scale">> & {
|
|
144
140
|
position?: "left" | "right" | "none";
|
|
145
|
-
width?: number;
|
|
141
|
+
width?: number | "auto";
|
|
146
142
|
} & import("../../../../hooks/useTicks.js").TickParams & import("../../../index.js").AxisConfigExtension & {
|
|
147
143
|
zoom: import("./useChartCartesianAxis.types.js").DefaultizedZoomOptions | undefined;
|
|
148
144
|
}) | undefined;
|
|
@@ -155,5 +151,4 @@ export declare const selectorChartDefaultYAxisId: (args_0: import("../../corePlu
|
|
|
155
151
|
export declare const selectorChartSeriesEmptyFlatbushMap: () => Map<string, Flatbush>;
|
|
156
152
|
export declare const selectorChartSeriesFlatbushMap: (args_0: import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.js").UseChartSeriesConfigState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<{}> & {
|
|
157
153
|
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
158
|
-
}) => Map<string, Flatbush>;
|
|
159
|
-
export {};
|
|
154
|
+
}) => Map<string, Flatbush>;
|
|
@@ -14,6 +14,7 @@ var _createAxisFilterMapper = require("./createAxisFilterMapper");
|
|
|
14
14
|
var _createZoomLookup = require("./createZoomLookup");
|
|
15
15
|
var _axis = require("../../../../models/axis");
|
|
16
16
|
var _useChartCartesianAxisLayout = require("./useChartCartesianAxisLayout.selectors");
|
|
17
|
+
var _useChartAxisAutoSize = require("./useChartAxisAutoSize.selectors");
|
|
17
18
|
var _ticks = require("../../../ticks");
|
|
18
19
|
var _getAxisScale = require("./getAxisScale");
|
|
19
20
|
var _scaleGuards = require("../../../scaleGuards");
|
|
@@ -22,6 +23,7 @@ var _getAxisExtrema = require("./getAxisExtrema");
|
|
|
22
23
|
var _domain = require("./domain");
|
|
23
24
|
var _Flatbush = require("../../../Flatbush");
|
|
24
25
|
var _useChartSeriesConfig = require("../../corePlugins/useChartSeriesConfig");
|
|
26
|
+
var _useChartAxisExtrema = require("./useChartAxisExtrema.selectors");
|
|
25
27
|
const createZoomMap = zoom => {
|
|
26
28
|
const zoomItemMap = new Map();
|
|
27
29
|
zoom.forEach(zoomItem => {
|
|
@@ -51,45 +53,15 @@ const selectorDefaultXAxisTickNumber = exports.selectorDefaultXAxisTickNumber =
|
|
|
51
53
|
const selectorDefaultYAxisTickNumber = exports.selectorDefaultYAxisTickNumber = (0, _store.createSelector)(_useChartDimensions.selectorChartDrawingArea, function selectorDefaultYAxisTickNumber(drawingArea) {
|
|
52
54
|
return (0, _ticks.getDefaultTickNumber)(drawingArea.height);
|
|
53
55
|
});
|
|
54
|
-
const selectorChartXAxisWithDomains = exports.selectorChartXAxisWithDomains = (0, _store.createSelectorMemoized)(_useChartCartesianAxisLayout.selectorChartRawXAxis, _useChartSeries.selectorChartSeriesProcessed,
|
|
55
|
-
const
|
|
56
|
-
const domains = {};
|
|
57
|
-
axes?.forEach((eachAxis, axisIndex) => {
|
|
58
|
-
const axis = eachAxis;
|
|
59
|
-
if ((0, _axis.isBandScaleConfig)(axis) || (0, _axis.isPointScaleConfig)(axis)) {
|
|
60
|
-
domains[axis.id] = {
|
|
61
|
-
domain: axis.data
|
|
62
|
-
};
|
|
63
|
-
if (axis.ordinalTimeTicks !== undefined) {
|
|
64
|
-
domains[axis.id].tickNumber = (0, _ticks.getTickNumber)(axis, [axis.data?.find(d => d !== null), axis.data?.findLast(d => d !== null)], defaultTickNumber);
|
|
65
|
-
}
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
const axisExtrema = (0, _getAxisExtrema.getAxisExtrema)(axis, axisDirection, seriesConfig, axisIndex, formattedSeries);
|
|
69
|
-
domains[axis.id] = (0, _domain.calculateInitialDomainAndTickNumber)(axis, 'x', axisIndex, formattedSeries, axisExtrema, defaultTickNumber);
|
|
70
|
-
});
|
|
56
|
+
const selectorChartXAxisWithDomains = exports.selectorChartXAxisWithDomains = (0, _store.createSelectorMemoized)(_useChartCartesianAxisLayout.selectorChartRawXAxis, _useChartSeries.selectorChartSeriesProcessed, selectorDefaultXAxisTickNumber, _useChartAxisExtrema.selectorChartXAxisExtrema, function selectorChartXAxisWithDomains(axes, formattedSeries, defaultTickNumber, extremaMap) {
|
|
57
|
+
const domains = (0, _domain.computeAxisDomainsMap)(axes, formattedSeries, defaultTickNumber, extremaMap, 'x');
|
|
71
58
|
return {
|
|
72
59
|
axes,
|
|
73
60
|
domains
|
|
74
61
|
};
|
|
75
62
|
});
|
|
76
|
-
const selectorChartYAxisWithDomains = exports.selectorChartYAxisWithDomains = (0, _store.createSelectorMemoized)(_useChartCartesianAxisLayout.selectorChartRawYAxis, _useChartSeries.selectorChartSeriesProcessed,
|
|
77
|
-
const
|
|
78
|
-
const domains = {};
|
|
79
|
-
axes?.forEach((eachAxis, axisIndex) => {
|
|
80
|
-
const axis = eachAxis;
|
|
81
|
-
if ((0, _axis.isBandScaleConfig)(axis) || (0, _axis.isPointScaleConfig)(axis)) {
|
|
82
|
-
domains[axis.id] = {
|
|
83
|
-
domain: axis.data
|
|
84
|
-
};
|
|
85
|
-
if (axis.ordinalTimeTicks !== undefined) {
|
|
86
|
-
domains[axis.id].tickNumber = (0, _ticks.getTickNumber)(axis, [axis.data?.find(d => d !== null), axis.data?.findLast(d => d !== null)], defaultTickNumber);
|
|
87
|
-
}
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
const axisExtrema = (0, _getAxisExtrema.getAxisExtrema)(axis, axisDirection, seriesConfig, axisIndex, formattedSeries);
|
|
91
|
-
domains[axis.id] = (0, _domain.calculateInitialDomainAndTickNumber)(axis, 'y', axisIndex, formattedSeries, axisExtrema, defaultTickNumber);
|
|
92
|
-
});
|
|
63
|
+
const selectorChartYAxisWithDomains = exports.selectorChartYAxisWithDomains = (0, _store.createSelectorMemoized)(_useChartCartesianAxisLayout.selectorChartRawYAxis, _useChartSeries.selectorChartSeriesProcessed, selectorDefaultYAxisTickNumber, _useChartAxisExtrema.selectorChartYAxisExtrema, function selectorChartYAxisWithDomains(axes, formattedSeries, defaultTickNumber, extremaMap) {
|
|
64
|
+
const domains = (0, _domain.computeAxisDomainsMap)(axes, formattedSeries, defaultTickNumber, extremaMap, 'y');
|
|
93
65
|
return {
|
|
94
66
|
axes,
|
|
95
67
|
domains
|
|
@@ -238,10 +210,10 @@ const selectorChartYScales = exports.selectorChartYScales = (0, _store.createSel
|
|
|
238
210
|
* The only interesting selectors that merge axis data and zoom if provided.
|
|
239
211
|
*/
|
|
240
212
|
|
|
241
|
-
const selectorChartXAxis = exports.selectorChartXAxis = (0, _store.createSelectorMemoized)(_useChartDimensions.selectorChartDrawingArea, _useChartSeries.selectorChartSeriesProcessed, _useChartSeriesConfig.selectorChartSeriesConfig, selectorChartZoomMap, selectorChartXAxisWithDomains, selectorChartXScales, function selectorChartXAxis(drawingArea, formattedSeries, seriesConfig, zoomMap, {
|
|
213
|
+
const selectorChartXAxis = exports.selectorChartXAxis = (0, _store.createSelectorMemoized)(_useChartDimensions.selectorChartDrawingArea, _useChartSeries.selectorChartSeriesProcessed, _useChartSeriesConfig.selectorChartSeriesConfig, selectorChartZoomMap, selectorChartXAxisWithDomains, selectorChartXScales, _useChartAxisAutoSize.selectorChartXAxisAutoSizes, _useChartCartesianAxisLayout.selectorChartCartesianAxesGap, function selectorChartXAxis(drawingArea, formattedSeries, seriesConfig, zoomMap, {
|
|
242
214
|
axes,
|
|
243
215
|
domains
|
|
244
|
-
}, scales) {
|
|
216
|
+
}, scales, autoSizes, axesGap) {
|
|
245
217
|
return (0, _computeAxisValue.computeAxisValue)({
|
|
246
218
|
scales,
|
|
247
219
|
drawingArea,
|
|
@@ -250,13 +222,15 @@ const selectorChartXAxis = exports.selectorChartXAxis = (0, _store.createSelecto
|
|
|
250
222
|
seriesConfig,
|
|
251
223
|
axisDirection: 'x',
|
|
252
224
|
zoomMap,
|
|
253
|
-
domains
|
|
225
|
+
domains,
|
|
226
|
+
autoSizes,
|
|
227
|
+
axesGap
|
|
254
228
|
});
|
|
255
229
|
});
|
|
256
|
-
const selectorChartYAxis = exports.selectorChartYAxis = (0, _store.createSelectorMemoized)(_useChartDimensions.selectorChartDrawingArea, _useChartSeries.selectorChartSeriesProcessed, _useChartSeriesConfig.selectorChartSeriesConfig, selectorChartZoomMap, selectorChartYAxisWithDomains, selectorChartYScales, function selectorChartYAxis(drawingArea, formattedSeries, seriesConfig, zoomMap, {
|
|
230
|
+
const selectorChartYAxis = exports.selectorChartYAxis = (0, _store.createSelectorMemoized)(_useChartDimensions.selectorChartDrawingArea, _useChartSeries.selectorChartSeriesProcessed, _useChartSeriesConfig.selectorChartSeriesConfig, selectorChartZoomMap, selectorChartYAxisWithDomains, selectorChartYScales, _useChartAxisAutoSize.selectorChartYAxisAutoSizes, _useChartCartesianAxisLayout.selectorChartCartesianAxesGap, function selectorChartYAxis(drawingArea, formattedSeries, seriesConfig, zoomMap, {
|
|
257
231
|
axes,
|
|
258
232
|
domains
|
|
259
|
-
}, scales) {
|
|
233
|
+
}, scales, autoSizes, axesGap) {
|
|
260
234
|
return (0, _computeAxisValue.computeAxisValue)({
|
|
261
235
|
scales,
|
|
262
236
|
drawingArea,
|
|
@@ -265,7 +239,9 @@ const selectorChartYAxis = exports.selectorChartYAxis = (0, _store.createSelecto
|
|
|
265
239
|
seriesConfig,
|
|
266
240
|
axisDirection: 'y',
|
|
267
241
|
zoomMap,
|
|
268
|
-
domains
|
|
242
|
+
domains,
|
|
243
|
+
autoSizes,
|
|
244
|
+
axesGap
|
|
269
245
|
});
|
|
270
246
|
});
|
|
271
247
|
const selectorChartAxis = exports.selectorChartAxis = (0, _store.createSelector)(selectorChartXAxis, selectorChartYAxis, (xAxes, yAxes, axisId) => xAxes?.axis[axisId] ?? yAxes?.axis[axisId]);
|
|
@@ -6,15 +6,17 @@ import { computeAxisValue } from "./computeAxisValue.mjs";
|
|
|
6
6
|
import { createContinuousScaleGetAxisFilter, createDiscreteScaleGetAxisFilter, createGetAxisFilters } from "./createAxisFilterMapper.mjs";
|
|
7
7
|
import { createZoomLookup } from "./createZoomLookup.mjs";
|
|
8
8
|
import { isBandScaleConfig, isPointScaleConfig } from "../../../../models/axis.mjs";
|
|
9
|
-
import { selectorChartRawXAxis, selectorChartRawYAxis } from "./useChartCartesianAxisLayout.selectors.mjs";
|
|
10
|
-
import {
|
|
9
|
+
import { selectorChartRawXAxis, selectorChartRawYAxis, selectorChartCartesianAxesGap } from "./useChartCartesianAxisLayout.selectors.mjs";
|
|
10
|
+
import { selectorChartXAxisAutoSizes, selectorChartYAxisAutoSizes } from "./useChartAxisAutoSize.selectors.mjs";
|
|
11
|
+
import { getDefaultTickNumber } from "../../../ticks.mjs";
|
|
11
12
|
import { getNormalizedAxisScale, getRange } from "./getAxisScale.mjs";
|
|
12
13
|
import { isOrdinalScale } from "../../../scaleGuards.mjs";
|
|
13
14
|
import { zoomScaleRange } from "./zoom.mjs";
|
|
14
15
|
import { getAxisExtrema } from "./getAxisExtrema.mjs";
|
|
15
|
-
import { calculateFinalDomain,
|
|
16
|
+
import { calculateFinalDomain, computeAxisDomainsMap } from "./domain.mjs";
|
|
16
17
|
import { Flatbush } from "../../../Flatbush.mjs";
|
|
17
18
|
import { selectorChartSeriesConfig } from "../../corePlugins/useChartSeriesConfig/index.mjs";
|
|
19
|
+
import { selectorChartXAxisExtrema, selectorChartYAxisExtrema } from "./useChartAxisExtrema.selectors.mjs";
|
|
18
20
|
export const createZoomMap = zoom => {
|
|
19
21
|
const zoomItemMap = new Map();
|
|
20
22
|
zoom.forEach(zoomItem => {
|
|
@@ -43,45 +45,15 @@ export const selectorDefaultXAxisTickNumber = createSelector(selectorChartDrawin
|
|
|
43
45
|
export const selectorDefaultYAxisTickNumber = createSelector(selectorChartDrawingArea, function selectorDefaultYAxisTickNumber(drawingArea) {
|
|
44
46
|
return getDefaultTickNumber(drawingArea.height);
|
|
45
47
|
});
|
|
46
|
-
export const selectorChartXAxisWithDomains = createSelectorMemoized(selectorChartRawXAxis, selectorChartSeriesProcessed,
|
|
47
|
-
const
|
|
48
|
-
const domains = {};
|
|
49
|
-
axes?.forEach((eachAxis, axisIndex) => {
|
|
50
|
-
const axis = eachAxis;
|
|
51
|
-
if (isBandScaleConfig(axis) || isPointScaleConfig(axis)) {
|
|
52
|
-
domains[axis.id] = {
|
|
53
|
-
domain: axis.data
|
|
54
|
-
};
|
|
55
|
-
if (axis.ordinalTimeTicks !== undefined) {
|
|
56
|
-
domains[axis.id].tickNumber = getTickNumber(axis, [axis.data?.find(d => d !== null), axis.data?.findLast(d => d !== null)], defaultTickNumber);
|
|
57
|
-
}
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
const axisExtrema = getAxisExtrema(axis, axisDirection, seriesConfig, axisIndex, formattedSeries);
|
|
61
|
-
domains[axis.id] = calculateInitialDomainAndTickNumber(axis, 'x', axisIndex, formattedSeries, axisExtrema, defaultTickNumber);
|
|
62
|
-
});
|
|
48
|
+
export const selectorChartXAxisWithDomains = createSelectorMemoized(selectorChartRawXAxis, selectorChartSeriesProcessed, selectorDefaultXAxisTickNumber, selectorChartXAxisExtrema, function selectorChartXAxisWithDomains(axes, formattedSeries, defaultTickNumber, extremaMap) {
|
|
49
|
+
const domains = computeAxisDomainsMap(axes, formattedSeries, defaultTickNumber, extremaMap, 'x');
|
|
63
50
|
return {
|
|
64
51
|
axes,
|
|
65
52
|
domains
|
|
66
53
|
};
|
|
67
54
|
});
|
|
68
|
-
export const selectorChartYAxisWithDomains = createSelectorMemoized(selectorChartRawYAxis, selectorChartSeriesProcessed,
|
|
69
|
-
const
|
|
70
|
-
const domains = {};
|
|
71
|
-
axes?.forEach((eachAxis, axisIndex) => {
|
|
72
|
-
const axis = eachAxis;
|
|
73
|
-
if (isBandScaleConfig(axis) || isPointScaleConfig(axis)) {
|
|
74
|
-
domains[axis.id] = {
|
|
75
|
-
domain: axis.data
|
|
76
|
-
};
|
|
77
|
-
if (axis.ordinalTimeTicks !== undefined) {
|
|
78
|
-
domains[axis.id].tickNumber = getTickNumber(axis, [axis.data?.find(d => d !== null), axis.data?.findLast(d => d !== null)], defaultTickNumber);
|
|
79
|
-
}
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
const axisExtrema = getAxisExtrema(axis, axisDirection, seriesConfig, axisIndex, formattedSeries);
|
|
83
|
-
domains[axis.id] = calculateInitialDomainAndTickNumber(axis, 'y', axisIndex, formattedSeries, axisExtrema, defaultTickNumber);
|
|
84
|
-
});
|
|
55
|
+
export const selectorChartYAxisWithDomains = createSelectorMemoized(selectorChartRawYAxis, selectorChartSeriesProcessed, selectorDefaultYAxisTickNumber, selectorChartYAxisExtrema, function selectorChartYAxisWithDomains(axes, formattedSeries, defaultTickNumber, extremaMap) {
|
|
56
|
+
const domains = computeAxisDomainsMap(axes, formattedSeries, defaultTickNumber, extremaMap, 'y');
|
|
85
57
|
return {
|
|
86
58
|
axes,
|
|
87
59
|
domains
|
|
@@ -230,10 +202,10 @@ export const selectorChartYScales = createSelectorMemoized(selectorChartRawYAxis
|
|
|
230
202
|
* The only interesting selectors that merge axis data and zoom if provided.
|
|
231
203
|
*/
|
|
232
204
|
|
|
233
|
-
export const selectorChartXAxis = createSelectorMemoized(selectorChartDrawingArea, selectorChartSeriesProcessed, selectorChartSeriesConfig, selectorChartZoomMap, selectorChartXAxisWithDomains, selectorChartXScales, function selectorChartXAxis(drawingArea, formattedSeries, seriesConfig, zoomMap, {
|
|
205
|
+
export const selectorChartXAxis = createSelectorMemoized(selectorChartDrawingArea, selectorChartSeriesProcessed, selectorChartSeriesConfig, selectorChartZoomMap, selectorChartXAxisWithDomains, selectorChartXScales, selectorChartXAxisAutoSizes, selectorChartCartesianAxesGap, function selectorChartXAxis(drawingArea, formattedSeries, seriesConfig, zoomMap, {
|
|
234
206
|
axes,
|
|
235
207
|
domains
|
|
236
|
-
}, scales) {
|
|
208
|
+
}, scales, autoSizes, axesGap) {
|
|
237
209
|
return computeAxisValue({
|
|
238
210
|
scales,
|
|
239
211
|
drawingArea,
|
|
@@ -242,13 +214,15 @@ export const selectorChartXAxis = createSelectorMemoized(selectorChartDrawingAre
|
|
|
242
214
|
seriesConfig,
|
|
243
215
|
axisDirection: 'x',
|
|
244
216
|
zoomMap,
|
|
245
|
-
domains
|
|
217
|
+
domains,
|
|
218
|
+
autoSizes,
|
|
219
|
+
axesGap
|
|
246
220
|
});
|
|
247
221
|
});
|
|
248
|
-
export const selectorChartYAxis = createSelectorMemoized(selectorChartDrawingArea, selectorChartSeriesProcessed, selectorChartSeriesConfig, selectorChartZoomMap, selectorChartYAxisWithDomains, selectorChartYScales, function selectorChartYAxis(drawingArea, formattedSeries, seriesConfig, zoomMap, {
|
|
222
|
+
export const selectorChartYAxis = createSelectorMemoized(selectorChartDrawingArea, selectorChartSeriesProcessed, selectorChartSeriesConfig, selectorChartZoomMap, selectorChartYAxisWithDomains, selectorChartYScales, selectorChartYAxisAutoSizes, selectorChartCartesianAxesGap, function selectorChartYAxis(drawingArea, formattedSeries, seriesConfig, zoomMap, {
|
|
249
223
|
axes,
|
|
250
224
|
domains
|
|
251
|
-
}, scales) {
|
|
225
|
+
}, scales, autoSizes, axesGap) {
|
|
252
226
|
return computeAxisValue({
|
|
253
227
|
scales,
|
|
254
228
|
drawingArea,
|
|
@@ -257,7 +231,9 @@ export const selectorChartYAxis = createSelectorMemoized(selectorChartDrawingAre
|
|
|
257
231
|
seriesConfig,
|
|
258
232
|
axisDirection: 'y',
|
|
259
233
|
zoomMap,
|
|
260
|
-
domains
|
|
234
|
+
domains,
|
|
235
|
+
autoSizes,
|
|
236
|
+
axesGap
|
|
261
237
|
});
|
|
262
238
|
});
|
|
263
239
|
export const selectorChartAxis = createSelector(selectorChartXAxis, selectorChartYAxis, (xAxes, yAxes, axisId) => xAxes?.axis[axisId] ?? yAxes?.axis[axisId]);
|
package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianTooltip.selectors.js
CHANGED
|
@@ -8,11 +8,23 @@ var _store = require("@mui/x-internals/store");
|
|
|
8
8
|
var _isDeepEqual = require("@mui/x-internals/isDeepEqual");
|
|
9
9
|
var _useChartCartesianAxisRendering = require("./useChartCartesianAxisRendering.selectors");
|
|
10
10
|
var _useChartInteraction = require("../useChartInteraction");
|
|
11
|
+
var _useChartInteraction2 = require("../useChartInteraction/useChartInteraction.selectors");
|
|
12
|
+
var _useChartKeyboardNavigation = require("../useChartKeyboardNavigation/useChartKeyboardNavigation.selectors");
|
|
11
13
|
var _getAxisValue = require("./getAxisValue");
|
|
12
14
|
var _getValueToPositionMapper = require("../../../../hooks/getValueToPositionMapper");
|
|
13
15
|
var _useChartDimensions = require("../../corePlugins/useChartDimensions/useChartDimensions.selectors");
|
|
14
16
|
const selectorChartControlledCartesianAxisTooltip = state => state.controlledCartesianAxisTooltip;
|
|
15
17
|
const EMPTY_ARRAY = [];
|
|
18
|
+
function getKeyboardAxisTooltip(keyboardIndex, axes) {
|
|
19
|
+
if (keyboardIndex === undefined) {
|
|
20
|
+
return EMPTY_ARRAY;
|
|
21
|
+
}
|
|
22
|
+
const axis = axes.axis[keyboardIndex.axisId];
|
|
23
|
+
if (!axis?.triggerTooltip) {
|
|
24
|
+
return EMPTY_ARRAY;
|
|
25
|
+
}
|
|
26
|
+
return [keyboardIndex];
|
|
27
|
+
}
|
|
16
28
|
|
|
17
29
|
/**
|
|
18
30
|
* Get x-axis ids and corresponding data index that should be display in the tooltip.
|
|
@@ -24,7 +36,7 @@ const selectorChartsInteractionTooltipXAxes = exports.selectorChartsInteractionT
|
|
|
24
36
|
// uses string/number as arguments.
|
|
25
37
|
resultEqualityCheck: _isDeepEqual.isDeepEqual
|
|
26
38
|
}
|
|
27
|
-
})(selectorChartControlledCartesianAxisTooltip, _useChartInteraction.selectorChartsInteractionPointerX, _useChartCartesianAxisRendering.selectorChartXAxis, (controlledValues, value, axes) => {
|
|
39
|
+
})(selectorChartControlledCartesianAxisTooltip, _useChartInteraction.selectorChartsInteractionPointerX, _useChartCartesianAxisRendering.selectorChartXAxis, _useChartInteraction2.selectorChartsLastInteraction, _useChartKeyboardNavigation.selectorChartsKeyboardXAxisIndex, (controlledValues, value, axes, lastInteraction, keyboardIndex) => {
|
|
28
40
|
if (controlledValues !== undefined) {
|
|
29
41
|
if (controlledValues.length === 0) {
|
|
30
42
|
return EMPTY_ARRAY;
|
|
@@ -35,6 +47,9 @@ const selectorChartsInteractionTooltipXAxes = exports.selectorChartsInteractionT
|
|
|
35
47
|
}) => ids.has(axisId));
|
|
36
48
|
return filteredArray.length === controlledValues.length ? controlledValues : filteredArray;
|
|
37
49
|
}
|
|
50
|
+
if (lastInteraction === 'keyboard') {
|
|
51
|
+
return getKeyboardAxisTooltip(keyboardIndex, axes);
|
|
52
|
+
}
|
|
38
53
|
if (value === null) {
|
|
39
54
|
return EMPTY_ARRAY;
|
|
40
55
|
}
|
|
@@ -56,7 +71,7 @@ const selectorChartsInteractionTooltipYAxes = exports.selectorChartsInteractionT
|
|
|
56
71
|
// uses string/number as arguments.
|
|
57
72
|
resultEqualityCheck: _isDeepEqual.isDeepEqual
|
|
58
73
|
}
|
|
59
|
-
})(selectorChartControlledCartesianAxisTooltip, _useChartInteraction.selectorChartsInteractionPointerY, _useChartCartesianAxisRendering.selectorChartYAxis, (controlledValues, value, axes) => {
|
|
74
|
+
})(selectorChartControlledCartesianAxisTooltip, _useChartInteraction.selectorChartsInteractionPointerY, _useChartCartesianAxisRendering.selectorChartYAxis, _useChartInteraction2.selectorChartsLastInteraction, _useChartKeyboardNavigation.selectorChartsKeyboardYAxisIndex, (controlledValues, value, axes, lastInteraction, keyboardIndex) => {
|
|
60
75
|
if (controlledValues !== undefined) {
|
|
61
76
|
if (controlledValues.length === 0) {
|
|
62
77
|
return EMPTY_ARRAY;
|
|
@@ -67,6 +82,9 @@ const selectorChartsInteractionTooltipYAxes = exports.selectorChartsInteractionT
|
|
|
67
82
|
}) => ids.has(axisId));
|
|
68
83
|
return filteredArray.length === controlledValues.length ? controlledValues : filteredArray;
|
|
69
84
|
}
|
|
85
|
+
if (lastInteraction === 'keyboard') {
|
|
86
|
+
return getKeyboardAxisTooltip(keyboardIndex, axes);
|
|
87
|
+
}
|
|
70
88
|
if (value === null) {
|
|
71
89
|
return EMPTY_ARRAY;
|
|
72
90
|
}
|
|
@@ -2,11 +2,23 @@ import { createSelector, createSelectorMemoized, createSelectorMemoizedWithOptio
|
|
|
2
2
|
import { isDeepEqual } from '@mui/x-internals/isDeepEqual';
|
|
3
3
|
import { selectorChartXAxis, selectorChartYAxis } from "./useChartCartesianAxisRendering.selectors.mjs";
|
|
4
4
|
import { selectorChartsInteractionPointerX, selectorChartsInteractionPointerY } from "../useChartInteraction/index.mjs";
|
|
5
|
+
import { selectorChartsLastInteraction } from "../useChartInteraction/useChartInteraction.selectors.mjs";
|
|
6
|
+
import { selectorChartsKeyboardXAxisIndex, selectorChartsKeyboardYAxisIndex } from "../useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.mjs";
|
|
5
7
|
import { getAxisIndex } from "./getAxisValue.mjs";
|
|
6
8
|
import { getValueToPositionMapper } from "../../../../hooks/getValueToPositionMapper.mjs";
|
|
7
9
|
import { selectorChartDrawingArea } from "../../corePlugins/useChartDimensions/useChartDimensions.selectors.mjs";
|
|
8
10
|
const selectorChartControlledCartesianAxisTooltip = state => state.controlledCartesianAxisTooltip;
|
|
9
11
|
const EMPTY_ARRAY = [];
|
|
12
|
+
function getKeyboardAxisTooltip(keyboardIndex, axes) {
|
|
13
|
+
if (keyboardIndex === undefined) {
|
|
14
|
+
return EMPTY_ARRAY;
|
|
15
|
+
}
|
|
16
|
+
const axis = axes.axis[keyboardIndex.axisId];
|
|
17
|
+
if (!axis?.triggerTooltip) {
|
|
18
|
+
return EMPTY_ARRAY;
|
|
19
|
+
}
|
|
20
|
+
return [keyboardIndex];
|
|
21
|
+
}
|
|
10
22
|
|
|
11
23
|
/**
|
|
12
24
|
* Get x-axis ids and corresponding data index that should be display in the tooltip.
|
|
@@ -18,7 +30,7 @@ export const selectorChartsInteractionTooltipXAxes = createSelectorMemoizedWithO
|
|
|
18
30
|
// uses string/number as arguments.
|
|
19
31
|
resultEqualityCheck: isDeepEqual
|
|
20
32
|
}
|
|
21
|
-
})(selectorChartControlledCartesianAxisTooltip, selectorChartsInteractionPointerX, selectorChartXAxis, (controlledValues, value, axes) => {
|
|
33
|
+
})(selectorChartControlledCartesianAxisTooltip, selectorChartsInteractionPointerX, selectorChartXAxis, selectorChartsLastInteraction, selectorChartsKeyboardXAxisIndex, (controlledValues, value, axes, lastInteraction, keyboardIndex) => {
|
|
22
34
|
if (controlledValues !== undefined) {
|
|
23
35
|
if (controlledValues.length === 0) {
|
|
24
36
|
return EMPTY_ARRAY;
|
|
@@ -29,6 +41,9 @@ export const selectorChartsInteractionTooltipXAxes = createSelectorMemoizedWithO
|
|
|
29
41
|
}) => ids.has(axisId));
|
|
30
42
|
return filteredArray.length === controlledValues.length ? controlledValues : filteredArray;
|
|
31
43
|
}
|
|
44
|
+
if (lastInteraction === 'keyboard') {
|
|
45
|
+
return getKeyboardAxisTooltip(keyboardIndex, axes);
|
|
46
|
+
}
|
|
32
47
|
if (value === null) {
|
|
33
48
|
return EMPTY_ARRAY;
|
|
34
49
|
}
|
|
@@ -50,7 +65,7 @@ export const selectorChartsInteractionTooltipYAxes = createSelectorMemoizedWithO
|
|
|
50
65
|
// uses string/number as arguments.
|
|
51
66
|
resultEqualityCheck: isDeepEqual
|
|
52
67
|
}
|
|
53
|
-
})(selectorChartControlledCartesianAxisTooltip, selectorChartsInteractionPointerY, selectorChartYAxis, (controlledValues, value, axes) => {
|
|
68
|
+
})(selectorChartControlledCartesianAxisTooltip, selectorChartsInteractionPointerY, selectorChartYAxis, selectorChartsLastInteraction, selectorChartsKeyboardYAxisIndex, (controlledValues, value, axes, lastInteraction, keyboardIndex) => {
|
|
54
69
|
if (controlledValues !== undefined) {
|
|
55
70
|
if (controlledValues.length === 0) {
|
|
56
71
|
return EMPTY_ARRAY;
|
|
@@ -61,6 +76,9 @@ export const selectorChartsInteractionTooltipYAxes = createSelectorMemoizedWithO
|
|
|
61
76
|
}) => ids.has(axisId));
|
|
62
77
|
return filteredArray.length === controlledValues.length ? controlledValues : filteredArray;
|
|
63
78
|
}
|
|
79
|
+
if (lastInteraction === 'keyboard') {
|
|
80
|
+
return getKeyboardAxisTooltip(keyboardIndex, axes);
|
|
81
|
+
}
|
|
64
82
|
if (value === null) {
|
|
65
83
|
return EMPTY_ARRAY;
|
|
66
84
|
}
|
package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.js
CHANGED
|
@@ -9,7 +9,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
exports.useChartKeyboardNavigation = void 0;
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
var React = _interopRequireWildcard(require("react"));
|
|
12
|
-
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
13
12
|
var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
|
|
14
13
|
var _useChartSeries = require("../../corePlugins/useChartSeries/useChartSeries.selectors");
|
|
15
14
|
var _useChartSeriesConfig = require("../../corePlugins/useChartSeriesConfig");
|
|
@@ -21,35 +20,42 @@ const useChartKeyboardNavigation = ({
|
|
|
21
20
|
const {
|
|
22
21
|
chartsLayerContainerRef
|
|
23
22
|
} = instance;
|
|
24
|
-
const removeFocus = (0, _useEventCallback.default)(function removeFocus() {
|
|
25
|
-
if (store.state.keyboardNavigation.isFocused) {
|
|
26
|
-
store.set('keyboardNavigation', (0, _extends2.default)({}, store.state.keyboardNavigation, {
|
|
27
|
-
isFocused: false
|
|
28
|
-
}));
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
const restoreFocus = (0, _useEventCallback.default)(function restoreFocus() {
|
|
32
|
-
if (!store.state.keyboardNavigation.isFocused) {
|
|
33
|
-
store.update((0, _extends2.default)({}, store.state.highlight && {
|
|
34
|
-
highlight: (0, _extends2.default)({}, store.state.highlight, {
|
|
35
|
-
lastUpdate: 'keyboard'
|
|
36
|
-
})
|
|
37
|
-
}, store.state.interaction && {
|
|
38
|
-
interaction: (0, _extends2.default)({}, store.state.interaction, {
|
|
39
|
-
lastUpdate: 'keyboard'
|
|
40
|
-
})
|
|
41
|
-
}, {
|
|
42
|
-
keyboardNavigation: (0, _extends2.default)({}, store.state.keyboardNavigation, {
|
|
43
|
-
isFocused: true
|
|
44
|
-
})
|
|
45
|
-
}));
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
23
|
React.useEffect(() => {
|
|
49
24
|
const element = chartsLayerContainerRef.current;
|
|
50
25
|
if (!element || params.disableKeyboardNavigation) {
|
|
51
26
|
return undefined;
|
|
52
27
|
}
|
|
28
|
+
function removeFocus(event) {
|
|
29
|
+
const root = event.currentTarget;
|
|
30
|
+
const next = event.relatedTarget;
|
|
31
|
+
|
|
32
|
+
// Avoid removing focus if we know it is moving to another children in the chart.
|
|
33
|
+
// This avoid extra computation ot remove/add focus at each keyboard pressed when navigating in the chart.
|
|
34
|
+
if (root && next instanceof Node && !root.contains(next)) {
|
|
35
|
+
if (store.state.keyboardNavigation.isFocused) {
|
|
36
|
+
store.set('keyboardNavigation', (0, _extends2.default)({}, store.state.keyboardNavigation, {
|
|
37
|
+
isFocused: false
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function restoreFocus() {
|
|
43
|
+
if (!store.state.keyboardNavigation.isFocused) {
|
|
44
|
+
store.update((0, _extends2.default)({}, store.state.highlight && {
|
|
45
|
+
highlight: (0, _extends2.default)({}, store.state.highlight, {
|
|
46
|
+
lastUpdate: 'keyboard'
|
|
47
|
+
})
|
|
48
|
+
}, store.state.interaction && {
|
|
49
|
+
interaction: (0, _extends2.default)({}, store.state.interaction, {
|
|
50
|
+
lastUpdate: 'keyboard'
|
|
51
|
+
})
|
|
52
|
+
}, {
|
|
53
|
+
keyboardNavigation: (0, _extends2.default)({}, store.state.keyboardNavigation, {
|
|
54
|
+
isFocused: true
|
|
55
|
+
})
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
53
59
|
function keyboardHandler(event) {
|
|
54
60
|
let newFocusedItem = store.state.keyboardNavigation.item;
|
|
55
61
|
const seriesConfig = (0, _useChartSeriesConfig.selectorChartSeriesConfig)(store.state);
|
|
@@ -83,14 +89,14 @@ const useChartKeyboardNavigation = ({
|
|
|
83
89
|
}
|
|
84
90
|
}
|
|
85
91
|
element.addEventListener('keydown', keyboardHandler);
|
|
86
|
-
element.addEventListener('
|
|
87
|
-
element.addEventListener('
|
|
92
|
+
element.addEventListener('focusout', removeFocus);
|
|
93
|
+
element.addEventListener('focusin', restoreFocus);
|
|
88
94
|
return () => {
|
|
89
95
|
element.removeEventListener('keydown', keyboardHandler);
|
|
90
|
-
element.removeEventListener('
|
|
91
|
-
element.removeEventListener('
|
|
96
|
+
element.removeEventListener('focusout', removeFocus);
|
|
97
|
+
element.removeEventListener('focusin', restoreFocus);
|
|
92
98
|
};
|
|
93
|
-
}, [chartsLayerContainerRef,
|
|
99
|
+
}, [chartsLayerContainerRef, params.disableKeyboardNavigation, store]);
|
|
94
100
|
(0, _useEnhancedEffect.default)(() => {
|
|
95
101
|
store.set('keyboardNavigation', (0, _extends2.default)({}, store.state.keyboardNavigation, {
|
|
96
102
|
enabled: !params.disableKeyboardNavigation
|