UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

39 lines (37 loc) 1.92 kB
import { createSelectorMemoized } from '@mui/x-internals/store'; import { selectorChartRawXAxis, selectorChartRawYAxis } from "./useChartCartesianAxisLayout.selectors.mjs"; import { isBandScaleConfig, isPointScaleConfig } from "../../../../models/axis.mjs"; import { selectorChartSeriesProcessed } from "../../corePlugins/useChartSeries/useChartSeries.selectors.mjs"; import { selectorChartSeriesConfig } from "../../corePlugins/useChartSeriesConfig/index.mjs"; import { getAxisExtrema } from "./getAxisExtrema.mjs"; const EMPTY_EXTREMA = {}; /** * Selector that computes extrema for all non-band/point X axes. * Shared between domain computation and auto-size measurement. */ export const selectorChartXAxisExtrema = createSelectorMemoized(selectorChartRawXAxis, selectorChartSeriesProcessed, selectorChartSeriesConfig, function selectorChartXAxisExtrema(axes, formattedSeries, seriesConfig) { const extrema = {}; let hasExtrema = false; axes?.forEach((axis, axisIndex) => { if (!isBandScaleConfig(axis) && !isPointScaleConfig(axis)) { extrema[axis.id] = getAxisExtrema(axis, 'x', seriesConfig, axisIndex, formattedSeries); hasExtrema = true; } }); return hasExtrema ? extrema : EMPTY_EXTREMA; }); /** * Selector that computes extrema for all non-band/point Y axes. * Shared between domain computation and auto-size measurement. */ export const selectorChartYAxisExtrema = createSelectorMemoized(selectorChartRawYAxis, selectorChartSeriesProcessed, selectorChartSeriesConfig, function selectorChartYAxisExtrema(axes, formattedSeries, seriesConfig) { const extrema = {}; let hasExtrema = false; axes?.forEach((axis, axisIndex) => { if (!isBandScaleConfig(axis) && !isPointScaleConfig(axis)) { extrema[axis.id] = getAxisExtrema(axis, 'y', seriesConfig, axisIndex, formattedSeries); hasExtrema = true; } }); return hasExtrema ? extrema : EMPTY_EXTREMA; });