@mui/x-charts
Version:
The community edition of MUI X Charts components.
34 lines (32 loc) • 1.75 kB
JavaScript
import { createSelector, createSelectorMemoized } from '@mui/x-internals/store';
import { selectorChartDrawingArea } from "../../corePlugins/useChartDimensions/index.mjs";
import { selectorChartSeriesProcessed } from "../../corePlugins/useChartSeries/index.mjs";
import { computeAxisValue } from "./computeAxisValue.mjs";
import { selectorChartSeriesConfig } from "../../corePlugins/useChartSeriesConfig/index.mjs";
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 = createSelectorMemoized(selectorChartRawRotationAxis, selectorChartDrawingArea, selectorChartSeriesProcessed, selectorChartSeriesConfig, (axis, drawingArea, formattedSeries, seriesConfig) => computeAxisValue({
drawingArea,
formattedSeries,
axis,
seriesConfig,
axisDirection: 'rotation'
}));
export const selectorChartRadiusAxis = createSelectorMemoized(selectorChartRawRadiusAxis, selectorChartDrawingArea, selectorChartSeriesProcessed, selectorChartSeriesConfig, (axis, drawingArea, formattedSeries, seriesConfig) => computeAxisValue({
drawingArea,
formattedSeries,
axis,
seriesConfig,
axisDirection: 'radius'
}));
export function getDrawingAreaCenter(drawingArea) {
return {
cx: drawingArea.left + drawingArea.width / 2,
cy: drawingArea.top + drawingArea.height / 2
};
}
export const selectorChartPolarCenter = createSelectorMemoized(selectorChartDrawingArea, getDrawingAreaCenter);