@mui/x-charts
Version:
The community edition of MUI X Charts components.
30 lines (29 loc) • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getAxisExtrema = getAxisExtrema;
var _isCartesian = require("../../../isCartesian");
const axisExtremumCallback = (chartType, axis, axisDirection, seriesConfig, axisIndex, formattedSeries, getFilters) => {
const getter = axisDirection === 'x' ? seriesConfig[chartType].xExtremumGetter : seriesConfig[chartType].yExtremumGetter;
const series = formattedSeries[chartType]?.series ?? {};
return getter?.({
series,
axis,
axisIndex,
isDefaultAxis: axisIndex === 0,
getFilters
}) ?? [Infinity, -Infinity];
};
function getAxisExtrema(axis, axisDirection, seriesConfig, axisIndex, formattedSeries, getFilters) {
const cartesianChartTypes = Object.keys(seriesConfig).filter(_isCartesian.isCartesianSeriesType);
let extrema = [Infinity, -Infinity];
for (const chartType of cartesianChartTypes) {
const [min, max] = axisExtremumCallback(chartType, axis, axisDirection, seriesConfig, axisIndex, formattedSeries, getFilters);
extrema = [Math.min(extrema[0], min), Math.max(extrema[1], max)];
}
if (Number.isNaN(extrema[0]) || Number.isNaN(extrema[1])) {
return [Infinity, -Infinity];
}
return extrema;
}