@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
52 lines (50 loc) • 2.17 kB
JavaScript
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
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(__spreadProps(__spreadValues({}, curves[curves.length - 1]), { lineRoundCaps: false }));
if (curves.length > 2) {
curvesInOrder.push(__spreadProps(__spreadValues({}, curves[0]), { lineRoundCaps: renderRoundedLineCaps }));
curvesInOrder.push(__spreadProps(__spreadValues({}, curves[curves.length - 2]), { lineRoundCaps: renderRoundedLineCaps }));
for (let i = 1; i <= curves.length - 3; i += 1) {
curvesInOrder.push(__spreadProps(__spreadValues({}, curves[i]), { lineRoundCaps: false }));
}
} else {
curvesInOrder.push(__spreadProps(__spreadValues({}, curves[0]), { lineRoundCaps: renderRoundedLineCaps }));
}
return curvesInOrder;
}
export { getCurves };
//# sourceMappingURL=get-curves.js.map