@mui/x-charts
Version:
The community edition of MUI X Charts components.
58 lines • 1.44 kB
JavaScript
import * as React from 'react';
import { useTicks } from "../hooks/useTicks.mjs";
import { GridLine } from "./styledComponents.mjs";
import { useChartsContext } from "../context/ChartsProvider/index.mjs";
import { selectorChartPolarCenter } from "../internals/plugins/featurePlugins/useChartPolarAxis/index.mjs";
import { jsx as _jsx } from "react/jsx-runtime";
/**
* @ignore - internal component.
*/
export function ChartsRotationGrid(props) {
const {
store
} = useChartsContext();
const {
axis,
innerRadius,
outerRadius,
classes
} = props;
const {
cx,
cy
} = store.use(selectorChartPolarCenter);
const {
scale,
tickNumber,
tickInterval,
tickSpacing
} = axis;
const ticks = useTicks({
scale,
tickNumber,
tickInterval,
tickSpacing,
direction: 'rotation'
});
return /*#__PURE__*/_jsx(React.Fragment, {
children: ticks.map(({
value,
offset
}) => {
const angle = offset - Math.PI / 2;
const dx = Math.cos(angle);
const dy = Math.sin(angle);
const x1 = cx + innerRadius * dx;
const y1 = cy + innerRadius * dy;
const x2 = cx + outerRadius * dx;
const y2 = cy + outerRadius * dy;
return /*#__PURE__*/_jsx(GridLine, {
x1: x1,
y1: y1,
x2: x2,
y2: y2,
className: classes.rotationLine
}, `rotation-${value?.getTime?.() ?? value}`);
})
});
}