@mui/x-charts 9.0.0-beta.0 → 9.0.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/CHANGELOG.md +267 -1
- package/ChartsLayerContainer/ChartsLayerContainer.js +0 -3
- package/ChartsLayerContainer/ChartsLayerContainer.mjs +0 -3
- package/ChartsTooltip/ChartsAxisTooltipContent.js +1 -1
- package/ChartsTooltip/ChartsAxisTooltipContent.mjs +1 -1
- package/ChartsTooltip/ChartsItemTooltipContent.js +3 -0
- package/ChartsTooltip/ChartsItemTooltipContent.mjs +3 -0
- package/ChartsTooltip/ChartsTooltipTable.d.mts +1 -1
- package/ChartsTooltip/ChartsTooltipTable.d.ts +1 -1
- package/ChartsTooltip/useAxesTooltip.d.mts +17 -7
- package/ChartsTooltip/useAxesTooltip.d.ts +17 -7
- package/ChartsTooltip/useAxesTooltip.js +36 -4
- package/ChartsTooltip/useAxesTooltip.mjs +36 -4
- package/ChartsTooltip/useItemTooltip.d.mts +1 -1
- package/ChartsTooltip/useItemTooltip.d.ts +1 -1
- package/ChartsXAxis/useAxisTicksProps.d.mts +11 -11
- package/ChartsXAxis/useAxisTicksProps.d.ts +11 -11
- package/ChartsYAxis/useAxisTicksProps.d.mts +11 -11
- package/ChartsYAxis/useAxisTicksProps.d.ts +11 -11
- package/LineChart/LineHighlightPlot.js +3 -2
- package/LineChart/LineHighlightPlot.mjs +3 -2
- package/LineChart/useLinePlotData.js +1 -1
- package/LineChart/useLinePlotData.mjs +1 -1
- package/LineChart/useMarkPlotData.js +2 -2
- package/LineChart/useMarkPlotData.mjs +2 -2
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/internals/configInit.mjs +2 -2
- package/internals/plugins/corePlugins/useChartSeries/processSeries.d.mts +2 -0
- package/internals/plugins/corePlugins/useChartSeries/processSeries.d.ts +2 -0
- package/internals/plugins/corePlugins/useChartSeries/processSeries.js +2 -1
- package/internals/plugins/corePlugins/useChartSeries/processSeries.mjs +2 -1
- package/internals/plugins/corePlugins/useChartSeries/useChartSeries.js +2 -0
- package/internals/plugins/corePlugins/useChartSeries/useChartSeries.mjs +2 -0
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/getSeriesWithDefaultValues.types.d.mts +1 -1
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/getSeriesWithDefaultValues.types.d.ts +1 -1
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/tooltipGetter.types.d.mts +12 -2
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/tooltipGetter.types.d.ts +12 -2
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.mts +3 -2
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts +3 -2
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.js +8 -4
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.mjs +10 -6
- package/internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.d.mts +10 -1
- package/internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.d.ts +10 -1
- package/locales/elGR.d.mts +4 -0
- package/locales/elGR.d.ts +4 -0
- package/locales/elGR.js +5 -1
- package/locales/elGR.mjs +5 -1
- package/locales/enUS.d.mts +4 -0
- package/locales/enUS.d.ts +4 -0
- package/locales/enUS.js +5 -1
- package/locales/enUS.mjs +5 -1
- package/locales/frFR.d.mts +4 -0
- package/locales/frFR.d.ts +4 -0
- package/locales/frFR.js +5 -1
- package/locales/frFR.mjs +5 -1
- package/locales/nbNO.d.mts +4 -0
- package/locales/nbNO.d.ts +4 -0
- package/locales/nbNO.js +5 -1
- package/locales/nbNO.mjs +5 -1
- package/locales/ptBR.d.mts +4 -0
- package/locales/ptBR.d.ts +4 -0
- package/locales/ptBR.js +5 -1
- package/locales/ptBR.mjs +5 -1
- package/locales/ptPT.d.mts +4 -0
- package/locales/ptPT.d.ts +4 -0
- package/locales/ptPT.js +5 -1
- package/locales/ptPT.mjs +5 -1
- package/locales/svSE.d.mts +4 -0
- package/locales/svSE.d.ts +4 -0
- package/locales/svSE.js +5 -1
- package/locales/svSE.mjs +5 -1
- package/locales/utils/chartsLocaleTextApi.d.mts +8 -0
- package/locales/utils/chartsLocaleTextApi.d.ts +8 -0
- package/locales/utils/getChartsLocalization.d.mts +4 -0
- package/locales/utils/getChartsLocalization.d.ts +4 -0
- package/package.json +7 -7
- package/tests/web-components.mjs +1 -1
|
@@ -116,11 +116,43 @@ export function useAxesTooltip(params) {
|
|
|
116
116
|
dataIndex
|
|
117
117
|
} = tooltipAxes[tooltipItemIndex];
|
|
118
118
|
const color = colorProcessors[seriesType]?.(seriesToAdd, xAxis[providedXAxisId], yAxis[providedYAxisId], zAxisId ? zAxis[zAxisId] : undefined)(dataIndex) ?? '';
|
|
119
|
-
const
|
|
120
|
-
const formattedValue = seriesToAdd.valueFormatter(value, {
|
|
121
|
-
dataIndex
|
|
122
|
-
});
|
|
119
|
+
const rawValue = seriesToAdd.data[dataIndex] ?? null;
|
|
123
120
|
const formattedLabel = getLabel(seriesToAdd.label, 'tooltip') ?? null;
|
|
121
|
+
let value;
|
|
122
|
+
let formattedValue;
|
|
123
|
+
if (seriesType === 'ohlc' && Array.isArray(rawValue)) {
|
|
124
|
+
const [open, high, low, close] = rawValue;
|
|
125
|
+
const formatter = seriesToAdd.valueFormatter;
|
|
126
|
+
value = {
|
|
127
|
+
open,
|
|
128
|
+
high,
|
|
129
|
+
low,
|
|
130
|
+
close
|
|
131
|
+
};
|
|
132
|
+
formattedValue = {
|
|
133
|
+
open: formatter(open, {
|
|
134
|
+
dataIndex,
|
|
135
|
+
field: 'open'
|
|
136
|
+
}),
|
|
137
|
+
high: formatter(high, {
|
|
138
|
+
dataIndex,
|
|
139
|
+
field: 'high'
|
|
140
|
+
}),
|
|
141
|
+
low: formatter(low, {
|
|
142
|
+
dataIndex,
|
|
143
|
+
field: 'low'
|
|
144
|
+
}),
|
|
145
|
+
close: formatter(close, {
|
|
146
|
+
dataIndex,
|
|
147
|
+
field: 'close'
|
|
148
|
+
})
|
|
149
|
+
};
|
|
150
|
+
} else {
|
|
151
|
+
value = rawValue;
|
|
152
|
+
formattedValue = seriesToAdd.valueFormatter(rawValue, {
|
|
153
|
+
dataIndex
|
|
154
|
+
});
|
|
155
|
+
}
|
|
124
156
|
tooltipAxes[tooltipItemIndex].seriesItems.push({
|
|
125
157
|
seriesId,
|
|
126
158
|
color,
|
|
@@ -8,7 +8,7 @@ export declare function useInternalItemTooltip<SeriesType extends ChartSeriesTyp
|
|
|
8
8
|
* Some specific charts like radar need more complex structure. Use specific hook like `useRadarItemTooltip` for them.
|
|
9
9
|
* @returns The tooltip item config
|
|
10
10
|
*/
|
|
11
|
-
export declare const useItemTooltip: <SeriesType extends Exclude<ChartSeriesType, "radar">>() => UseItemTooltipReturnValue<SeriesType> | null;
|
|
11
|
+
export declare const useItemTooltip: <SeriesType extends Exclude<ChartSeriesType, "radar"> = Exclude<ChartSeriesType, "radar" | "ohlc">>() => UseItemTooltipReturnValue<SeriesType> | null;
|
|
12
12
|
/**
|
|
13
13
|
* Contains an object per value with their content and the label of the associated metric.
|
|
14
14
|
* @returns The tooltip item configs
|
|
@@ -8,7 +8,7 @@ export declare function useInternalItemTooltip<SeriesType extends ChartSeriesTyp
|
|
|
8
8
|
* Some specific charts like radar need more complex structure. Use specific hook like `useRadarItemTooltip` for them.
|
|
9
9
|
* @returns The tooltip item config
|
|
10
10
|
*/
|
|
11
|
-
export declare const useItemTooltip: <SeriesType extends Exclude<ChartSeriesType, "radar">>() => UseItemTooltipReturnValue<SeriesType> | null;
|
|
11
|
+
export declare const useItemTooltip: <SeriesType extends Exclude<ChartSeriesType, "radar"> = Exclude<ChartSeriesType, "radar" | "ohlc">>() => UseItemTooltipReturnValue<SeriesType> | null;
|
|
12
12
|
/**
|
|
13
13
|
* Contains an object per value with their content and the label of the associated metric.
|
|
14
14
|
* @returns The tooltip item configs
|
|
@@ -3560,18 +3560,18 @@ export declare function useAxisTicksProps(inProps: ChartsXAxisProps): {
|
|
|
3560
3560
|
onFocusCapture?: import("react").FocusEventHandler<SVGTextElement> | undefined;
|
|
3561
3561
|
onBlur?: import("react").FocusEventHandler<SVGTextElement> | undefined;
|
|
3562
3562
|
onBlurCapture?: import("react").FocusEventHandler<SVGTextElement> | undefined;
|
|
3563
|
-
onChange?: import("react").
|
|
3564
|
-
onChangeCapture?: import("react").
|
|
3563
|
+
onChange?: import("react").ChangeEventHandler<SVGTextElement, Element> | undefined;
|
|
3564
|
+
onChangeCapture?: import("react").ChangeEventHandler<SVGTextElement, Element> | undefined;
|
|
3565
3565
|
onBeforeInput?: import("react").InputEventHandler<SVGTextElement> | undefined;
|
|
3566
|
-
onBeforeInputCapture?: import("react").
|
|
3567
|
-
onInput?: import("react").
|
|
3568
|
-
onInputCapture?: import("react").
|
|
3569
|
-
onReset?: import("react").
|
|
3570
|
-
onResetCapture?: import("react").
|
|
3571
|
-
onSubmit?: import("react").
|
|
3572
|
-
onSubmitCapture?: import("react").
|
|
3573
|
-
onInvalid?: import("react").
|
|
3574
|
-
onInvalidCapture?: import("react").
|
|
3566
|
+
onBeforeInputCapture?: import("react").InputEventHandler<SVGTextElement> | undefined;
|
|
3567
|
+
onInput?: import("react").InputEventHandler<SVGTextElement> | undefined;
|
|
3568
|
+
onInputCapture?: import("react").InputEventHandler<SVGTextElement> | undefined;
|
|
3569
|
+
onReset?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3570
|
+
onResetCapture?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3571
|
+
onSubmit?: import("react").SubmitEventHandler<SVGTextElement> | undefined;
|
|
3572
|
+
onSubmitCapture?: import("react").SubmitEventHandler<SVGTextElement> | undefined;
|
|
3573
|
+
onInvalid?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3574
|
+
onInvalidCapture?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3575
3575
|
onLoad?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3576
3576
|
onLoadCapture?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3577
3577
|
onError?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
@@ -3560,18 +3560,18 @@ export declare function useAxisTicksProps(inProps: ChartsXAxisProps): {
|
|
|
3560
3560
|
onFocusCapture?: import("react").FocusEventHandler<SVGTextElement> | undefined;
|
|
3561
3561
|
onBlur?: import("react").FocusEventHandler<SVGTextElement> | undefined;
|
|
3562
3562
|
onBlurCapture?: import("react").FocusEventHandler<SVGTextElement> | undefined;
|
|
3563
|
-
onChange?: import("react").
|
|
3564
|
-
onChangeCapture?: import("react").
|
|
3563
|
+
onChange?: import("react").ChangeEventHandler<SVGTextElement, Element> | undefined;
|
|
3564
|
+
onChangeCapture?: import("react").ChangeEventHandler<SVGTextElement, Element> | undefined;
|
|
3565
3565
|
onBeforeInput?: import("react").InputEventHandler<SVGTextElement> | undefined;
|
|
3566
|
-
onBeforeInputCapture?: import("react").
|
|
3567
|
-
onInput?: import("react").
|
|
3568
|
-
onInputCapture?: import("react").
|
|
3569
|
-
onReset?: import("react").
|
|
3570
|
-
onResetCapture?: import("react").
|
|
3571
|
-
onSubmit?: import("react").
|
|
3572
|
-
onSubmitCapture?: import("react").
|
|
3573
|
-
onInvalid?: import("react").
|
|
3574
|
-
onInvalidCapture?: import("react").
|
|
3566
|
+
onBeforeInputCapture?: import("react").InputEventHandler<SVGTextElement> | undefined;
|
|
3567
|
+
onInput?: import("react").InputEventHandler<SVGTextElement> | undefined;
|
|
3568
|
+
onInputCapture?: import("react").InputEventHandler<SVGTextElement> | undefined;
|
|
3569
|
+
onReset?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3570
|
+
onResetCapture?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3571
|
+
onSubmit?: import("react").SubmitEventHandler<SVGTextElement> | undefined;
|
|
3572
|
+
onSubmitCapture?: import("react").SubmitEventHandler<SVGTextElement> | undefined;
|
|
3573
|
+
onInvalid?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3574
|
+
onInvalidCapture?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3575
3575
|
onLoad?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3576
3576
|
onLoadCapture?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3577
3577
|
onError?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
@@ -3479,18 +3479,18 @@ export declare function useAxisTicksProps(inProps: ChartsYAxisProps): {
|
|
|
3479
3479
|
onFocusCapture?: import("react").FocusEventHandler<SVGTextElement> | undefined;
|
|
3480
3480
|
onBlur?: import("react").FocusEventHandler<SVGTextElement> | undefined;
|
|
3481
3481
|
onBlurCapture?: import("react").FocusEventHandler<SVGTextElement> | undefined;
|
|
3482
|
-
onChange?: import("react").
|
|
3483
|
-
onChangeCapture?: import("react").
|
|
3482
|
+
onChange?: import("react").ChangeEventHandler<SVGTextElement, Element> | undefined;
|
|
3483
|
+
onChangeCapture?: import("react").ChangeEventHandler<SVGTextElement, Element> | undefined;
|
|
3484
3484
|
onBeforeInput?: import("react").InputEventHandler<SVGTextElement> | undefined;
|
|
3485
|
-
onBeforeInputCapture?: import("react").
|
|
3486
|
-
onInput?: import("react").
|
|
3487
|
-
onInputCapture?: import("react").
|
|
3488
|
-
onReset?: import("react").
|
|
3489
|
-
onResetCapture?: import("react").
|
|
3490
|
-
onSubmit?: import("react").
|
|
3491
|
-
onSubmitCapture?: import("react").
|
|
3492
|
-
onInvalid?: import("react").
|
|
3493
|
-
onInvalidCapture?: import("react").
|
|
3485
|
+
onBeforeInputCapture?: import("react").InputEventHandler<SVGTextElement> | undefined;
|
|
3486
|
+
onInput?: import("react").InputEventHandler<SVGTextElement> | undefined;
|
|
3487
|
+
onInputCapture?: import("react").InputEventHandler<SVGTextElement> | undefined;
|
|
3488
|
+
onReset?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3489
|
+
onResetCapture?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3490
|
+
onSubmit?: import("react").SubmitEventHandler<SVGTextElement> | undefined;
|
|
3491
|
+
onSubmitCapture?: import("react").SubmitEventHandler<SVGTextElement> | undefined;
|
|
3492
|
+
onInvalid?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3493
|
+
onInvalidCapture?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3494
3494
|
onLoad?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3495
3495
|
onLoadCapture?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3496
3496
|
onError?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
@@ -3479,18 +3479,18 @@ export declare function useAxisTicksProps(inProps: ChartsYAxisProps): {
|
|
|
3479
3479
|
onFocusCapture?: import("react").FocusEventHandler<SVGTextElement> | undefined;
|
|
3480
3480
|
onBlur?: import("react").FocusEventHandler<SVGTextElement> | undefined;
|
|
3481
3481
|
onBlurCapture?: import("react").FocusEventHandler<SVGTextElement> | undefined;
|
|
3482
|
-
onChange?: import("react").
|
|
3483
|
-
onChangeCapture?: import("react").
|
|
3482
|
+
onChange?: import("react").ChangeEventHandler<SVGTextElement, Element> | undefined;
|
|
3483
|
+
onChangeCapture?: import("react").ChangeEventHandler<SVGTextElement, Element> | undefined;
|
|
3484
3484
|
onBeforeInput?: import("react").InputEventHandler<SVGTextElement> | undefined;
|
|
3485
|
-
onBeforeInputCapture?: import("react").
|
|
3486
|
-
onInput?: import("react").
|
|
3487
|
-
onInputCapture?: import("react").
|
|
3488
|
-
onReset?: import("react").
|
|
3489
|
-
onResetCapture?: import("react").
|
|
3490
|
-
onSubmit?: import("react").
|
|
3491
|
-
onSubmitCapture?: import("react").
|
|
3492
|
-
onInvalid?: import("react").
|
|
3493
|
-
onInvalidCapture?: import("react").
|
|
3485
|
+
onBeforeInputCapture?: import("react").InputEventHandler<SVGTextElement> | undefined;
|
|
3486
|
+
onInput?: import("react").InputEventHandler<SVGTextElement> | undefined;
|
|
3487
|
+
onInputCapture?: import("react").InputEventHandler<SVGTextElement> | undefined;
|
|
3488
|
+
onReset?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3489
|
+
onResetCapture?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3490
|
+
onSubmit?: import("react").SubmitEventHandler<SVGTextElement> | undefined;
|
|
3491
|
+
onSubmitCapture?: import("react").SubmitEventHandler<SVGTextElement> | undefined;
|
|
3492
|
+
onInvalid?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3493
|
+
onInvalidCapture?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3494
3494
|
onLoad?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3495
3495
|
onLoadCapture?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
3496
3496
|
onError?: import("react").ReactEventHandler<SVGTextElement> | undefined;
|
|
@@ -80,9 +80,10 @@ function LineHighlightPlot(props) {
|
|
|
80
80
|
visibleStackedData,
|
|
81
81
|
data,
|
|
82
82
|
disableHighlight,
|
|
83
|
-
shape = 'circle'
|
|
83
|
+
shape = 'circle',
|
|
84
|
+
hidden
|
|
84
85
|
} = series[seriesId];
|
|
85
|
-
if (disableHighlight || data[highlightedIndex] == null) {
|
|
86
|
+
if (hidden || disableHighlight || data[highlightedIndex] == null) {
|
|
86
87
|
return null;
|
|
87
88
|
}
|
|
88
89
|
if (highlightedAxisId !== xAxisId) {
|
|
@@ -73,9 +73,10 @@ function LineHighlightPlot(props) {
|
|
|
73
73
|
visibleStackedData,
|
|
74
74
|
data,
|
|
75
75
|
disableHighlight,
|
|
76
|
-
shape = 'circle'
|
|
76
|
+
shape = 'circle',
|
|
77
|
+
hidden
|
|
77
78
|
} = series[seriesId];
|
|
78
|
-
if (disableHighlight || data[highlightedIndex] == null) {
|
|
79
|
+
if (hidden || disableHighlight || data[highlightedIndex] == null) {
|
|
79
80
|
return null;
|
|
80
81
|
}
|
|
81
82
|
if (highlightedAxisId !== xAxisId) {
|
|
@@ -96,7 +96,7 @@ function useLinePlotData(xAxes, yAxes) {
|
|
|
96
96
|
const hidden = series[seriesId].hidden;
|
|
97
97
|
const linePath = (0, _d3Shape.line)().x(d => d.isExtension ? d.x : xPosition(d.x)).defined(d => connectNulls || !d.nullData || !!d.isExtension).y(d => {
|
|
98
98
|
if (hidden) {
|
|
99
|
-
return yScale(
|
|
99
|
+
return yScale(d.y[0]);
|
|
100
100
|
}
|
|
101
101
|
return yScale(d.y[1]);
|
|
102
102
|
});
|
|
@@ -89,7 +89,7 @@ export function useLinePlotData(xAxes, yAxes) {
|
|
|
89
89
|
const hidden = series[seriesId].hidden;
|
|
90
90
|
const linePath = d3Line().x(d => d.isExtension ? d.x : xPosition(d.x)).defined(d => connectNulls || !d.nullData || !!d.isExtension).y(d => {
|
|
91
91
|
if (hidden) {
|
|
92
|
-
return yScale(
|
|
92
|
+
return yScale(d.y[0]);
|
|
93
93
|
}
|
|
94
94
|
return yScale(d.y[1]);
|
|
95
95
|
});
|
|
@@ -67,9 +67,9 @@ function useMarkPlotData(xAxes, yAxes) {
|
|
|
67
67
|
continue;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
// The line fade animation move all the values to the
|
|
70
|
+
// The line fade animation move all the values to the series baseline.
|
|
71
71
|
// So we need to do the same with mark in order for it to look nice.
|
|
72
|
-
const y = yScale(hidden ?
|
|
72
|
+
const y = yScale(hidden ? visibleStackedData[index][0] : value);
|
|
73
73
|
const xPos = xScale(x);
|
|
74
74
|
if (!instance.isPointInside(xPos, y)) {
|
|
75
75
|
continue;
|
|
@@ -59,9 +59,9 @@ export function useMarkPlotData(xAxes, yAxes) {
|
|
|
59
59
|
continue;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
// The line fade animation move all the values to the
|
|
62
|
+
// The line fade animation move all the values to the series baseline.
|
|
63
63
|
// So we need to do the same with mark in order for it to look nice.
|
|
64
|
-
const y = yScale(hidden ?
|
|
64
|
+
const y = yScale(hidden ? visibleStackedData[index][0] : value);
|
|
65
65
|
const xPos = xScale(x);
|
|
66
66
|
if (!instance.isPointInside(xPos, y)) {
|
|
67
67
|
continue;
|
package/index.js
CHANGED
package/index.mjs
CHANGED
package/internals/configInit.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import _formatErrorMessage from "@mui/x-internals/formatErrorMessage";
|
|
|
2
2
|
let cartesianInstance;
|
|
3
3
|
let polarInstance;
|
|
4
4
|
class CartesianSeriesTypes {
|
|
5
|
-
types =
|
|
5
|
+
types = new Set();
|
|
6
6
|
constructor() {
|
|
7
7
|
if (cartesianInstance) {
|
|
8
8
|
throw new Error(process.env.NODE_ENV !== "production" ? 'MUI X Charts: Only one CartesianSeriesTypes instance can be created. ' + 'This is a singleton class used internally for series type registration. ' + 'Use the existing instance instead of creating a new one.' : _formatErrorMessage(24));
|
|
@@ -17,7 +17,7 @@ class CartesianSeriesTypes {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
class PolarSeriesTypes {
|
|
20
|
-
types =
|
|
20
|
+
types = new Set();
|
|
21
21
|
constructor() {
|
|
22
22
|
if (polarInstance) {
|
|
23
23
|
throw new Error(process.env.NODE_ENV !== "production" ? 'MUI X Charts: Only one PolarSeriesTypes instance can be created. ' + 'This is a singleton class used internally for series type registration. ' + 'Use the existing instance instead of creating a new one.' : _formatErrorMessage(25));
|
|
@@ -14,10 +14,12 @@ import type { IsItemVisibleFunction } from "../../featurePlugins/useChartVisibil
|
|
|
14
14
|
export declare const defaultizeSeries: <SeriesType extends ChartSeriesType>({
|
|
15
15
|
series,
|
|
16
16
|
colors,
|
|
17
|
+
theme,
|
|
17
18
|
seriesConfig
|
|
18
19
|
}: {
|
|
19
20
|
series: Readonly<AllSeriesType<SeriesType>[]>;
|
|
20
21
|
colors: readonly string[];
|
|
22
|
+
theme: "light" | "dark";
|
|
21
23
|
seriesConfig: ChartSeriesConfig<SeriesType>;
|
|
22
24
|
}) => {
|
|
23
25
|
defaultizedSeries: DefaultizedSeriesGroups<SeriesType>;
|
|
@@ -14,10 +14,12 @@ import type { IsItemVisibleFunction } from "../../featurePlugins/useChartVisibil
|
|
|
14
14
|
export declare const defaultizeSeries: <SeriesType extends ChartSeriesType>({
|
|
15
15
|
series,
|
|
16
16
|
colors,
|
|
17
|
+
theme,
|
|
17
18
|
seriesConfig
|
|
18
19
|
}: {
|
|
19
20
|
series: Readonly<AllSeriesType<SeriesType>[]>;
|
|
20
21
|
colors: readonly string[];
|
|
22
|
+
theme: "light" | "dark";
|
|
21
23
|
seriesConfig: ChartSeriesConfig<SeriesType>;
|
|
22
24
|
}) => {
|
|
23
25
|
defaultizedSeries: DefaultizedSeriesGroups<SeriesType>;
|
|
@@ -16,13 +16,14 @@ var _formatErrorMessage2 = _interopRequireDefault(require("@mui/x-internals/form
|
|
|
16
16
|
const defaultizeSeries = ({
|
|
17
17
|
series,
|
|
18
18
|
colors,
|
|
19
|
+
theme,
|
|
19
20
|
seriesConfig
|
|
20
21
|
}) => {
|
|
21
22
|
// Group series by type
|
|
22
23
|
const seriesGroups = {};
|
|
23
24
|
const idToType = new Map();
|
|
24
25
|
series.forEach((seriesData, seriesIndex) => {
|
|
25
|
-
const seriesWithDefaultValues = seriesConfig[seriesData.type].getSeriesWithDefaultValues(seriesData, seriesIndex, colors);
|
|
26
|
+
const seriesWithDefaultValues = seriesConfig[seriesData.type].getSeriesWithDefaultValues(seriesData, seriesIndex, colors, theme);
|
|
26
27
|
const id = seriesWithDefaultValues.id;
|
|
27
28
|
if (seriesGroups[seriesData.type] === undefined) {
|
|
28
29
|
seriesGroups[seriesData.type] = {
|
|
@@ -9,13 +9,14 @@ import _formatErrorMessage from "@mui/x-internals/formatErrorMessage";
|
|
|
9
9
|
export const defaultizeSeries = ({
|
|
10
10
|
series,
|
|
11
11
|
colors,
|
|
12
|
+
theme,
|
|
12
13
|
seriesConfig
|
|
13
14
|
}) => {
|
|
14
15
|
// Group series by type
|
|
15
16
|
const seriesGroups = {};
|
|
16
17
|
const idToType = new Map();
|
|
17
18
|
series.forEach((seriesData, seriesIndex) => {
|
|
18
|
-
const seriesWithDefaultValues = seriesConfig[seriesData.type].getSeriesWithDefaultValues(seriesData, seriesIndex, colors);
|
|
19
|
+
const seriesWithDefaultValues = seriesConfig[seriesData.type].getSeriesWithDefaultValues(seriesData, seriesIndex, colors, theme);
|
|
19
20
|
const id = seriesWithDefaultValues.id;
|
|
20
21
|
if (seriesGroups[seriesData.type] === undefined) {
|
|
21
22
|
seriesGroups[seriesData.type] = {
|
|
@@ -47,6 +47,7 @@ const useChartSeries = ({
|
|
|
47
47
|
} = (0, _processSeries.defaultizeSeries)({
|
|
48
48
|
series,
|
|
49
49
|
colors: typeof colors === 'function' ? colors(theme) : colors,
|
|
50
|
+
theme,
|
|
50
51
|
seriesConfig: store.state.seriesConfig.config
|
|
51
52
|
});
|
|
52
53
|
store.set('series', (0, _extends2.default)({}, store.state.series, {
|
|
@@ -90,6 +91,7 @@ useChartSeries.getInitialState = ({
|
|
|
90
91
|
} = (0, _processSeries.defaultizeSeries)({
|
|
91
92
|
series,
|
|
92
93
|
colors: typeof colors === 'function' ? colors(theme) : colors,
|
|
94
|
+
theme,
|
|
93
95
|
seriesConfig
|
|
94
96
|
});
|
|
95
97
|
return {
|
|
@@ -40,6 +40,7 @@ export const useChartSeries = ({
|
|
|
40
40
|
} = defaultizeSeries({
|
|
41
41
|
series,
|
|
42
42
|
colors: typeof colors === 'function' ? colors(theme) : colors,
|
|
43
|
+
theme,
|
|
43
44
|
seriesConfig: store.state.seriesConfig.config
|
|
44
45
|
});
|
|
45
46
|
store.set('series', _extends({}, store.state.series, {
|
|
@@ -82,6 +83,7 @@ useChartSeries.getInitialState = ({
|
|
|
82
83
|
} = defaultizeSeries({
|
|
83
84
|
series,
|
|
84
85
|
colors: typeof colors === 'function' ? colors(theme) : colors,
|
|
86
|
+
theme,
|
|
85
87
|
seriesConfig
|
|
86
88
|
});
|
|
87
89
|
return {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ChartSeries, ChartSeriesType } from "../../../../../models/seriesType/config.mjs";
|
|
2
2
|
import type { AllSeriesType } from "../../../../../models/seriesType/index.mjs";
|
|
3
|
-
export type GetSeriesWithDefaultValues<SeriesType extends ChartSeriesType> = (series: AllSeriesType<SeriesType>, seriesIndex: number, colors: readonly string[]) => ChartSeries<SeriesType>;
|
|
3
|
+
export type GetSeriesWithDefaultValues<SeriesType extends ChartSeriesType> = (series: AllSeriesType<SeriesType>, seriesIndex: number, colors: readonly string[], theme: 'light' | 'dark') => ChartSeries<SeriesType>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ChartSeries, ChartSeriesType } from "../../../../../models/seriesType/config.js";
|
|
2
2
|
import type { AllSeriesType } from "../../../../../models/seriesType/index.js";
|
|
3
|
-
export type GetSeriesWithDefaultValues<SeriesType extends ChartSeriesType> = (series: AllSeriesType<SeriesType>, seriesIndex: number, colors: readonly string[]) => ChartSeries<SeriesType>;
|
|
3
|
+
export type GetSeriesWithDefaultValues<SeriesType extends ChartSeriesType> = (series: AllSeriesType<SeriesType>, seriesIndex: number, colors: readonly string[], theme: 'light' | 'dark') => ChartSeries<SeriesType>;
|
|
@@ -12,11 +12,21 @@ export interface ItemTooltipValue<SeriesType extends ChartSeriesType> {
|
|
|
12
12
|
/**
|
|
13
13
|
* The value.
|
|
14
14
|
*/
|
|
15
|
-
value: SeriesType extends 'heatmap' ? number | null :
|
|
15
|
+
value: SeriesType extends 'heatmap' ? number | null : SeriesType extends 'ohlc' ? {
|
|
16
|
+
open: number;
|
|
17
|
+
high: number;
|
|
18
|
+
low: number;
|
|
19
|
+
close: number;
|
|
20
|
+
} | null : ChartsSeriesConfig[SeriesType]['valueType'];
|
|
16
21
|
/**
|
|
17
22
|
* The value formatted with context set to "tooltip".
|
|
18
23
|
*/
|
|
19
|
-
formattedValue:
|
|
24
|
+
formattedValue: SeriesType extends 'ohlc' ? {
|
|
25
|
+
open: string | null;
|
|
26
|
+
high: string | null;
|
|
27
|
+
low: string | null;
|
|
28
|
+
close: string | null;
|
|
29
|
+
} : string | null;
|
|
20
30
|
/**
|
|
21
31
|
* The series mark type.
|
|
22
32
|
*/
|
|
@@ -12,11 +12,21 @@ export interface ItemTooltipValue<SeriesType extends ChartSeriesType> {
|
|
|
12
12
|
/**
|
|
13
13
|
* The value.
|
|
14
14
|
*/
|
|
15
|
-
value: SeriesType extends 'heatmap' ? number | null :
|
|
15
|
+
value: SeriesType extends 'heatmap' ? number | null : SeriesType extends 'ohlc' ? {
|
|
16
|
+
open: number;
|
|
17
|
+
high: number;
|
|
18
|
+
low: number;
|
|
19
|
+
close: number;
|
|
20
|
+
} | null : ChartsSeriesConfig[SeriesType]['valueType'];
|
|
16
21
|
/**
|
|
17
22
|
* The value formatted with context set to "tooltip".
|
|
18
23
|
*/
|
|
19
|
-
formattedValue:
|
|
24
|
+
formattedValue: SeriesType extends 'ohlc' ? {
|
|
25
|
+
open: string | null;
|
|
26
|
+
high: string | null;
|
|
27
|
+
low: string | null;
|
|
28
|
+
close: string | null;
|
|
29
|
+
} : string | null;
|
|
20
30
|
/**
|
|
21
31
|
* The series mark type.
|
|
22
32
|
*/
|
package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.mts
CHANGED
|
@@ -2,7 +2,7 @@ import type { ChartPluginSignature } from "../../models/index.mjs";
|
|
|
2
2
|
import type { ChartSeriesType, DatasetType } from "../../../../models/seriesType/config.mjs";
|
|
3
3
|
import type { ComputedAxis, ScaleName, AxisId, ChartsAxisData, YAxis, XAxis, DefaultedXAxis, DefaultedYAxis, AxisItemIdentifier } from "../../../../models/axis.mjs";
|
|
4
4
|
import type { UseChartSeriesSignature } from "../../corePlugins/useChartSeries/index.mjs";
|
|
5
|
-
import type { ZoomData, ZoomOptions, ZoomSliderShowTooltip } from "./zoom.types.mjs";
|
|
5
|
+
import type { ZoomData, ZoomOptions, ZoomSliderPreviewOptions, ZoomSliderShowTooltip } from "./zoom.types.mjs";
|
|
6
6
|
import type { UseChartInteractionSignature } from "../useChartInteraction/index.mjs";
|
|
7
7
|
import type { ChartsAxisProps } from "../../../../ChartsAxis/index.mjs";
|
|
8
8
|
import type { UseChartBrushSignature } from "../useChartBrush/index.mjs";
|
|
@@ -79,8 +79,9 @@ export type UseChartCartesianAxisDefaultizedParameters<S extends ScaleName = Sca
|
|
|
79
79
|
defaultizedXAxis: DefaultedXAxis<S>[];
|
|
80
80
|
defaultizedYAxis: DefaultedYAxis<S>[];
|
|
81
81
|
};
|
|
82
|
-
export interface DefaultedZoomSliderOptions extends Omit<NonNullable<Required<ZoomOptions['slider']>>, 'showTooltip'> {
|
|
82
|
+
export interface DefaultedZoomSliderOptions extends Omit<NonNullable<Required<ZoomOptions['slider']>>, 'showTooltip' | 'preview'> {
|
|
83
83
|
showTooltip: ZoomSliderShowTooltip;
|
|
84
|
+
preview: boolean | ZoomSliderPreviewOptions;
|
|
84
85
|
}
|
|
85
86
|
export interface DefaultizedZoomOptions extends Required<Omit<ZoomOptions, 'slider'>> {
|
|
86
87
|
axisId: AxisId;
|
package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { ChartPluginSignature } from "../../models/index.js";
|
|
|
2
2
|
import type { ChartSeriesType, DatasetType } from "../../../../models/seriesType/config.js";
|
|
3
3
|
import type { ComputedAxis, ScaleName, AxisId, ChartsAxisData, YAxis, XAxis, DefaultedXAxis, DefaultedYAxis, AxisItemIdentifier } from "../../../../models/axis.js";
|
|
4
4
|
import type { UseChartSeriesSignature } from "../../corePlugins/useChartSeries/index.js";
|
|
5
|
-
import type { ZoomData, ZoomOptions, ZoomSliderShowTooltip } from "./zoom.types.js";
|
|
5
|
+
import type { ZoomData, ZoomOptions, ZoomSliderPreviewOptions, ZoomSliderShowTooltip } from "./zoom.types.js";
|
|
6
6
|
import type { UseChartInteractionSignature } from "../useChartInteraction/index.js";
|
|
7
7
|
import type { ChartsAxisProps } from "../../../../ChartsAxis/index.js";
|
|
8
8
|
import type { UseChartBrushSignature } from "../useChartBrush/index.js";
|
|
@@ -79,8 +79,9 @@ export type UseChartCartesianAxisDefaultizedParameters<S extends ScaleName = Sca
|
|
|
79
79
|
defaultizedXAxis: DefaultedXAxis<S>[];
|
|
80
80
|
defaultizedYAxis: DefaultedYAxis<S>[];
|
|
81
81
|
};
|
|
82
|
-
export interface DefaultedZoomSliderOptions extends Omit<NonNullable<Required<ZoomOptions['slider']>>, 'showTooltip'> {
|
|
82
|
+
export interface DefaultedZoomSliderOptions extends Omit<NonNullable<Required<ZoomOptions['slider']>>, 'showTooltip' | 'preview'> {
|
|
83
83
|
showTooltip: ZoomSliderShowTooltip;
|
|
84
|
+
preview: boolean | ZoomSliderPreviewOptions;
|
|
84
85
|
}
|
|
85
86
|
export interface DefaultizedZoomOptions extends Required<Omit<ZoomOptions, 'slider'>> {
|
|
86
87
|
axisId: AxisId;
|
|
@@ -32,14 +32,16 @@ function createPreviewDrawingArea(axisDirection, mainChartDrawingArea) {
|
|
|
32
32
|
bottom: mainChartDrawingArea.height
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
|
-
const selectorChartPreviewXScales = exports.selectorChartPreviewXScales = (0, _store.createSelectorMemoized)(_useChartCartesianAxisLayout.selectorChartRawXAxis, _useChartDimensions.selectorChartDrawingArea, _useChartCartesianAxisRendering.selectorChartZoomOptionsLookup, _useChartCartesianAxisRendering.
|
|
35
|
+
const selectorChartPreviewXScales = exports.selectorChartPreviewXScales = (0, _store.createSelectorMemoized)(_useChartCartesianAxisLayout.selectorChartRawXAxis, _useChartDimensions.selectorChartDrawingArea, _useChartCartesianAxisRendering.selectorChartZoomOptionsLookup, _useChartCartesianAxisRendering.selectorChartXAxisWithDomains, function selectorChartPreviewXScales(xAxes, chartDrawingArea, zoomOptions, {
|
|
36
|
+
domains: unfilteredDomains
|
|
37
|
+
}, axisId) {
|
|
36
38
|
const hasAxis = xAxes?.some(axis => axis.id === axisId);
|
|
37
39
|
const drawingArea = createPreviewDrawingArea(hasAxis ? 'x' : 'y', chartDrawingArea);
|
|
38
40
|
const options = zoomOptions[axisId];
|
|
39
41
|
const scales = {};
|
|
40
42
|
xAxes?.forEach(eachAxis => {
|
|
41
43
|
const axis = eachAxis;
|
|
42
|
-
const scale =
|
|
44
|
+
const scale = (0, _getAxisScale.getNormalizedAxisScale)(axis, unfilteredDomains[axis.id].domain);
|
|
43
45
|
const range = (0, _getAxisScale.getRange)(drawingArea, 'x', axis);
|
|
44
46
|
const zoomedRange = (0, _zoom.zoomScaleRange)(range, [options.minStart, options.maxEnd]);
|
|
45
47
|
scale.range(zoomedRange);
|
|
@@ -76,14 +78,16 @@ const selectorChartPreviewComputedXAxis = exports.selectorChartPreviewComputedXA
|
|
|
76
78
|
}
|
|
77
79
|
return computedAxes.axis;
|
|
78
80
|
});
|
|
79
|
-
const selectorChartPreviewYScales = exports.selectorChartPreviewYScales = (0, _store.createSelectorMemoized)(_useChartCartesianAxisLayout.selectorChartRawYAxis, _useChartDimensions.selectorChartDrawingArea, _useChartCartesianAxisRendering.selectorChartZoomOptionsLookup, _useChartCartesianAxisRendering.
|
|
81
|
+
const selectorChartPreviewYScales = exports.selectorChartPreviewYScales = (0, _store.createSelectorMemoized)(_useChartCartesianAxisLayout.selectorChartRawYAxis, _useChartDimensions.selectorChartDrawingArea, _useChartCartesianAxisRendering.selectorChartZoomOptionsLookup, _useChartCartesianAxisRendering.selectorChartYAxisWithDomains, function selectorChartPreviewYScales(yAxes, chartDrawingArea, zoomOptions, {
|
|
82
|
+
domains: unfilteredDomains
|
|
83
|
+
}, axisId) {
|
|
80
84
|
const hasAxis = yAxes?.some(axis => axis.id === axisId);
|
|
81
85
|
const drawingArea = createPreviewDrawingArea(hasAxis ? 'y' : 'x', chartDrawingArea);
|
|
82
86
|
const options = zoomOptions[axisId];
|
|
83
87
|
const scales = {};
|
|
84
88
|
yAxes?.forEach(eachAxis => {
|
|
85
89
|
const axis = eachAxis;
|
|
86
|
-
const scale =
|
|
90
|
+
const scale = (0, _getAxisScale.getNormalizedAxisScale)(axis, unfilteredDomains[axis.id].domain);
|
|
87
91
|
let range = (0, _getAxisScale.getRange)(drawingArea, 'y', axis);
|
|
88
92
|
if ((0, _scaleGuards.isOrdinalScale)(scale)) {
|
|
89
93
|
range = range.reverse();
|
|
@@ -2,10 +2,10 @@ import { createSelectorMemoized } from '@mui/x-internals/store';
|
|
|
2
2
|
import { selectorChartRawXAxis, selectorChartRawYAxis } from "./useChartCartesianAxisLayout.selectors.mjs";
|
|
3
3
|
import { selectorChartSeriesProcessed } from "../../corePlugins/useChartSeries/index.mjs";
|
|
4
4
|
import { computeAxisValue } from "./computeAxisValue.mjs";
|
|
5
|
-
import {
|
|
5
|
+
import { selectorChartXAxisWithDomains, selectorChartYAxisWithDomains, selectorChartZoomOptionsLookup } from "./useChartCartesianAxisRendering.selectors.mjs";
|
|
6
6
|
import { selectorChartDrawingArea } from "../../corePlugins/useChartDimensions/index.mjs";
|
|
7
7
|
import { ZOOM_SLIDER_PREVIEW_SIZE } from "../../../constants.mjs";
|
|
8
|
-
import { getRange } from "./getAxisScale.mjs";
|
|
8
|
+
import { getNormalizedAxisScale, getRange } from "./getAxisScale.mjs";
|
|
9
9
|
import { zoomScaleRange } from "./zoom.mjs";
|
|
10
10
|
import { isOrdinalScale } from "../../../scaleGuards.mjs";
|
|
11
11
|
import { selectorChartSeriesConfig } from "../../corePlugins/useChartSeriesConfig/index.mjs";
|
|
@@ -26,14 +26,16 @@ function createPreviewDrawingArea(axisDirection, mainChartDrawingArea) {
|
|
|
26
26
|
bottom: mainChartDrawingArea.height
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
|
-
export const selectorChartPreviewXScales = createSelectorMemoized(selectorChartRawXAxis, selectorChartDrawingArea, selectorChartZoomOptionsLookup,
|
|
29
|
+
export const selectorChartPreviewXScales = createSelectorMemoized(selectorChartRawXAxis, selectorChartDrawingArea, selectorChartZoomOptionsLookup, selectorChartXAxisWithDomains, function selectorChartPreviewXScales(xAxes, chartDrawingArea, zoomOptions, {
|
|
30
|
+
domains: unfilteredDomains
|
|
31
|
+
}, axisId) {
|
|
30
32
|
const hasAxis = xAxes?.some(axis => axis.id === axisId);
|
|
31
33
|
const drawingArea = createPreviewDrawingArea(hasAxis ? 'x' : 'y', chartDrawingArea);
|
|
32
34
|
const options = zoomOptions[axisId];
|
|
33
35
|
const scales = {};
|
|
34
36
|
xAxes?.forEach(eachAxis => {
|
|
35
37
|
const axis = eachAxis;
|
|
36
|
-
const scale =
|
|
38
|
+
const scale = getNormalizedAxisScale(axis, unfilteredDomains[axis.id].domain);
|
|
37
39
|
const range = getRange(drawingArea, 'x', axis);
|
|
38
40
|
const zoomedRange = zoomScaleRange(range, [options.minStart, options.maxEnd]);
|
|
39
41
|
scale.range(zoomedRange);
|
|
@@ -70,14 +72,16 @@ export const selectorChartPreviewComputedXAxis = createSelectorMemoized(selector
|
|
|
70
72
|
}
|
|
71
73
|
return computedAxes.axis;
|
|
72
74
|
});
|
|
73
|
-
export const selectorChartPreviewYScales = createSelectorMemoized(selectorChartRawYAxis, selectorChartDrawingArea, selectorChartZoomOptionsLookup,
|
|
75
|
+
export const selectorChartPreviewYScales = createSelectorMemoized(selectorChartRawYAxis, selectorChartDrawingArea, selectorChartZoomOptionsLookup, selectorChartYAxisWithDomains, function selectorChartPreviewYScales(yAxes, chartDrawingArea, zoomOptions, {
|
|
76
|
+
domains: unfilteredDomains
|
|
77
|
+
}, axisId) {
|
|
74
78
|
const hasAxis = yAxes?.some(axis => axis.id === axisId);
|
|
75
79
|
const drawingArea = createPreviewDrawingArea(hasAxis ? 'y' : 'x', chartDrawingArea);
|
|
76
80
|
const options = zoomOptions[axisId];
|
|
77
81
|
const scales = {};
|
|
78
82
|
yAxes?.forEach(eachAxis => {
|
|
79
83
|
const axis = eachAxis;
|
|
80
|
-
const scale =
|
|
84
|
+
const scale = getNormalizedAxisScale(axis, unfilteredDomains[axis.id].domain);
|
|
81
85
|
let range = getRange(drawingArea, 'y', axis);
|
|
82
86
|
if (isOrdinalScale(scale)) {
|
|
83
87
|
range = range.reverse();
|