{"version":3,"file":"get-curves.cjs","sources":["../../../../src/components/RingProgress/get-curves/get-curves.ts"],"sourcesContent":["import type { MantineColor } from '../../../core';\n\ninterface CurveData extends React.ComponentPropsWithRef<'circle'> {\n  value: number;\n  color: MantineColor;\n  tooltip?: React.ReactNode;\n}\n\ninterface RootCurveData extends React.ComponentPropsWithRef<'circle'> {\n  color?: MantineColor;\n}\n\ninterface GetCurves {\n  sections: CurveData[];\n  size: number;\n  thickness: number;\n  renderRoundedLineCaps: boolean | undefined;\n  rootColor?: MantineColor;\n}\n\ninterface Curve {\n  sum: number;\n  offset: number;\n  root: boolean;\n  data: CurveData | RootCurveData;\n  lineRoundCaps?: boolean;\n}\n\nexport function getCurves({\n  size,\n  thickness,\n  sections,\n  renderRoundedLineCaps,\n  rootColor,\n}: GetCurves) {\n  const sum = sections.reduce((acc, current) => acc + current.value, 0);\n  const accumulated = Math.PI * ((size * 0.9 - thickness * 2) / 2) * 2;\n  let offset = accumulated;\n  const curves: Curve[] = [];\n  const curvesInOrder: Curve[] = [];\n\n  for (let i = 0; i < sections.length; i += 1) {\n    curves.push({ sum, offset, data: sections[i], root: false });\n    offset -= (sections[i].value / 100) * accumulated;\n  }\n\n  curves.push({ sum, offset, data: { color: rootColor }, root: true });\n\n  // Reorder curves to layer appropriately and selectively set caps to round\n\n  curvesInOrder.push({ ...curves[curves.length - 1], lineRoundCaps: false });\n  if (curves.length > 2) {\n    curvesInOrder.push({ ...curves[0], lineRoundCaps: renderRoundedLineCaps });\n    curvesInOrder.push({ ...curves[curves.length - 2], lineRoundCaps: renderRoundedLineCaps });\n    for (let i = 1; i <= curves.length - 3; i += 1) {\n      curvesInOrder.push({ ...curves[i], lineRoundCaps: false });\n    }\n  } else {\n    curvesInOrder.push({ ...curves[0], lineRoundCaps: renderRoundedLineCaps });\n  }\n\n  return curvesInOrder;\n}\n"],"names":[],"mappings":"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"}