@mui/x-charts
Version:
The community edition of MUI X Charts components.
30 lines (28 loc) • 1.57 kB
JavaScript
import { selectorChartDrawingArea } from "../../corePlugins/useChartDimensions/index.js";
import { selectorChartSeriesConfig, selectorChartSeriesProcessed } from "../../corePlugins/useChartSeries/index.js";
import { createSelector } from "../../utils/selectors.js";
import { computeAxisValue } from "./computeAxisValue.js";
export const selectorChartPolarAxisState = state => state.polarAxis;
export const selectorChartRawRotationAxis = createSelector(selectorChartPolarAxisState, axis => axis?.rotation);
export const selectorChartRawRadiusAxis = createSelector(selectorChartPolarAxisState, axis => axis?.radius);
/**
* The only interesting selectors that merge axis data and zoom if provided.
*/
export const selectorChartRotationAxis = createSelector([selectorChartRawRotationAxis, selectorChartDrawingArea, selectorChartSeriesProcessed, selectorChartSeriesConfig], (axis, drawingArea, formattedSeries, seriesConfig) => computeAxisValue({
drawingArea,
formattedSeries,
axis,
seriesConfig,
axisDirection: 'rotation'
}));
export const selectorChartRadiusAxis = createSelector([selectorChartRawRadiusAxis, selectorChartDrawingArea, selectorChartSeriesProcessed, selectorChartSeriesConfig], (axis, drawingArea, formattedSeries, seriesConfig) => computeAxisValue({
drawingArea,
formattedSeries,
axis,
seriesConfig,
axisDirection: 'radius'
}));
export const selectorChartPolarCenter = createSelector([selectorChartDrawingArea], drawingArea => ({
cx: drawingArea.left + drawingArea.width / 2,
cy: drawingArea.top + drawingArea.height / 2
}));