UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

94 lines (93 loc) 3.21 kB
'use client'; import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; const _excluded = ["className", "rotation", "radius"]; import PropTypes from 'prop-types'; import clsx from 'clsx'; import composeClasses from '@mui/utils/composeClasses'; import { useThemeProps } from '@mui/material/styles'; import { getChartsRadialGridUtilityClass } from "./chartsRadialGridClasses.mjs"; import { GridRoot } from "./styledComponents.mjs"; import { ChartsRotationGrid } from "./ChartsRotationGrid.mjs"; import { ChartsRadiusGrid } from "./ChartsRadiusGrid.mjs"; import { useRotationAxes, useRadiusAxes } from "../hooks/useAxis.mjs"; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; const useUtilityClasses = ({ classes }) => { const slots = { root: ['root'], rotationLine: ['line', 'rotationLine'], radiusLine: ['line', 'radiusLine'] }; return composeClasses(slots, getChartsRadialGridUtilityClass, classes); }; /** * Demos: * * - [Radar](https://mui.com/x/react-charts/radar/) * * API: * * - [ChartsRadialGrid API](https://mui.com/x/api/charts/charts-radial-grid/) */ function ChartsRadialGrid(inProps) { const props = useThemeProps({ props: inProps, name: 'MuiChartsRadialGrid' }); const { className, rotation, radius } = props, other = _objectWithoutPropertiesLoose(props, _excluded); const { rotationAxis, rotationAxisIds } = useRotationAxes(); const { radiusAxis, radiusAxisIds } = useRadiusAxes(); const classes = useUtilityClasses(props); const rotationAxisConfig = rotationAxis[rotationAxisIds[0]]; const radiusAxisConfig = radiusAxis[radiusAxisIds[0]]; const innerRadius = radiusAxisConfig?.scale.range()[0] ?? 0; const outerRadius = radiusAxisConfig?.scale.range()[1] ?? 0; const startAngle = rotationAxisConfig?.scale.range()[0] ?? 0; const endAngle = rotationAxisConfig?.scale.range()[1] ?? 0; return /*#__PURE__*/_jsxs(GridRoot, _extends({}, other, { className: clsx(classes.root, className), children: [rotation && rotationAxisConfig && /*#__PURE__*/_jsx(ChartsRotationGrid, { axis: rotationAxisConfig, outerRadius: outerRadius, innerRadius: innerRadius, classes: classes }), radius && radiusAxisConfig && /*#__PURE__*/_jsx(ChartsRadiusGrid, { axis: radiusAxisConfig, startAngle: startAngle, endAngle: endAngle, classes: classes })] })); } process.env.NODE_ENV !== "production" ? ChartsRadialGrid.propTypes = { // ----------------------------- Warning -------------------------------- // | These PropTypes are generated from the TypeScript type definitions | // | To update them edit the TypeScript types and run "pnpm proptypes" | // ---------------------------------------------------------------------- /** * Override or extend the styles applied to the component. */ classes: PropTypes.object, /** * Displays radius (concentric) grid. */ radius: PropTypes.bool, /** * Displays rotation (spoke) grid. */ rotation: PropTypes.bool } : void 0; export { ChartsRadialGrid };