UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

24 lines 1.13 kB
import { isBandScaleConfig, isPointScaleConfig, isSymlogScaleConfig } from "../../../../models/axis.js"; import { getScale } from "../../../getScale.js"; import { scaleBand, scalePoint } from "../../../scales/index.js"; const DEFAULT_CATEGORY_GAP_RATIO = 0.2; export function getRange(drawingArea, axisDirection, axis) { const range = axisDirection === 'x' ? [drawingArea.left, drawingArea.left + drawingArea.width] : [drawingArea.top + drawingArea.height, drawingArea.top]; return axis.reverse ? [range[1], range[0]] : range; } export function getNormalizedAxisScale(axis, domain) { const range = [0, 1]; if (isBandScaleConfig(axis)) { const categoryGapRatio = axis.categoryGapRatio ?? DEFAULT_CATEGORY_GAP_RATIO; return scaleBand(domain, range).paddingInner(categoryGapRatio).paddingOuter(categoryGapRatio / 2); } if (isPointScaleConfig(axis)) { return scalePoint(domain, range); } const scaleType = axis.scaleType ?? 'linear'; const scale = getScale(scaleType, domain, range); if (isSymlogScaleConfig(axis) && axis.constant != null) { scale.constant(axis.constant); } return scale; }