UNPKG

react-native-chart-kit

Version:

Beautiful React Native charts for dashboards, reports, and data-rich mobile apps.

40 lines (39 loc) 1.59 kB
import { generateLinearTicks, normalizeCartesianData, resolveNumericDomain } from "../../../core/index"; import { resolveLineChartYAxisLabelSizes } from "./axisLabels"; const getNumericYValues = (normalized) => normalized.series.flatMap((item) => item.points.flatMap((point) => typeof point.value === "number" ? [point.value] : [])); export const resolveLineChartYAxisModel = ({ data, stableData, xKey, series, yDomain, yAxisLabelWidth, formatYLabel, measureText, textOptions }) => { const normalized = normalizeCartesianData({ data, xKey, series }); const yValues = getNumericYValues(normalized); const yDomainResolved = resolveNumericDomain(yValues, yDomain); const yTicks = generateLinearTicks({ domain: yDomainResolved, count: 4 }); const stableYLabelSizes = yAxisLabelWidth === "stable" ? generateLinearTicks({ domain: resolveNumericDomain(stableData ? getNumericYValues(normalizeCartesianData({ data: stableData, xKey, series })) : yValues, yDomain), count: 4 }).map((tick) => measureText(formatYLabel(tick), textOptions)) : undefined; const yLabelSizes = resolveLineChartYAxisLabelSizes({ sizes: yTicks.map((tick) => measureText(formatYLabel(tick), textOptions)), stableSizes: stableYLabelSizes, width: yAxisLabelWidth }); return { normalized, yDomainResolved, yLabelSizes, yTicks }; };