react-native-chart-kit
Version:
Beautiful React Native charts for dashboards, reports, and data-rich mobile apps.
27 lines (26 loc) • 1.13 kB
JavaScript
const defaultSliceSeparatorWidth = 2;
const clampOpacity = (value, fallback) => typeof value === "number" && Number.isFinite(value)
? Math.max(0, Math.min(1, value))
: fallback;
const resolveNonNegativeNumber = (value, fallback) => typeof value === "number" && Number.isFinite(value)
? Math.max(0, value)
: fallback;
export const resolvePieChartSliceSeparatorConfig = ({ backgroundColor, sliceSeparator }) => {
if (sliceSeparator === undefined || sliceSeparator === false) {
return {
color: backgroundColor,
opacity: 1,
visible: false,
width: 0
};
}
const config = typeof sliceSeparator === "object" ? sliceSeparator : {};
const width = resolveNonNegativeNumber(config.width, defaultSliceSeparatorWidth);
return {
color: config.color ?? backgroundColor,
opacity: clampOpacity(config.opacity, 1),
visible: config.visible !== false && width > 0,
width
};
};
export const getPieChartSliceSeparatorGutter = (sliceSeparator) => (sliceSeparator.visible ? Math.ceil(sliceSeparator.width / 2) : 0);