@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
36 lines (33 loc) • 1.19 kB
JavaScript
'use client';
;
function getCurves({
size,
thickness,
sections,
renderRoundedLineCaps,
rootColor
}) {
const sum = sections.reduce((acc, current) => acc + current.value, 0);
const accumulated = Math.PI * ((size * 0.9 - thickness * 2) / 2) * 2;
let offset = accumulated;
const curves = [];
const curvesInOrder = [];
for (let i = 0; i < sections.length; i += 1) {
curves.push({ sum, offset, data: sections[i], root: false });
offset -= sections[i].value / 100 * accumulated;
}
curves.push({ sum, offset, data: { color: rootColor }, root: true });
curvesInOrder.push({ ...curves[curves.length - 1], lineRoundCaps: false });
if (curves.length > 2) {
curvesInOrder.push({ ...curves[0], lineRoundCaps: renderRoundedLineCaps });
curvesInOrder.push({ ...curves[curves.length - 2], lineRoundCaps: renderRoundedLineCaps });
for (let i = 1; i <= curves.length - 3; i += 1) {
curvesInOrder.push({ ...curves[i], lineRoundCaps: false });
}
} else {
curvesInOrder.push({ ...curves[0], lineRoundCaps: renderRoundedLineCaps });
}
return curvesInOrder;
}
exports.getCurves = getCurves;
//# sourceMappingURL=get-curves.cjs.map