UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

34 lines (32 loc) 1.75 kB
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);