analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
1 lines • 1.84 kB
Source Map (JSON)
{"version":3,"sources":["../src/utils/chartUtils.ts"],"sourcesContent":["/**\n * Extracts a CSS variable from a Tailwind bg- class for SVG fill/stroke usage.\n * E.g., \"bg-success-800\" → \"var(--color-success-800)\"\n */\nexport const bgClassToCssVar = (bgClass: string): string =>\n `var(--color-${bgClass.replace('bg-', '')})`;\n\n/**\n * Converts polar coordinates to Cartesian for SVG arc path calculations.\n * Angles are in degrees, with 0° at the top (12 o'clock position).\n */\nexport const polarToCartesian = (\n cx: number,\n cy: number,\n r: number,\n angleDeg: number\n): { x: number; y: number } => {\n const rad = ((angleDeg - 90) * Math.PI) / 180;\n return { x: cx + r * Math.cos(rad), y: cy + r * Math.sin(rad) };\n};\n\n/**\n * Generates an SVG filled arc (pie slice) path string.\n * Draws from the center outward, covering startAngle → endAngle (degrees).\n */\nexport const describeArc = (\n cx: number,\n cy: number,\n r: number,\n startAngle: number,\n endAngle: number\n): string => {\n const s = polarToCartesian(cx, cy, r, endAngle);\n const e = polarToCartesian(cx, cy, r, startAngle);\n const largeArc = endAngle - startAngle > 180 ? 1 : 0;\n return `M ${cx} ${cy} L ${s.x} ${s.y} A ${r} ${r} 0 ${largeArc} 0 ${e.x} ${e.y} Z`;\n};\n"],"mappings":";AAIO,IAAM,kBAAkB,CAAC,YAC9B,eAAe,QAAQ,QAAQ,OAAO,EAAE,CAAC;AAMpC,IAAM,mBAAmB,CAC9B,IACA,IACA,GACA,aAC6B;AAC7B,QAAM,OAAQ,WAAW,MAAM,KAAK,KAAM;AAC1C,SAAO,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,GAAG,GAAG,GAAG,KAAK,IAAI,KAAK,IAAI,GAAG,EAAE;AAChE;AAMO,IAAM,cAAc,CACzB,IACA,IACA,GACA,YACA,aACW;AACX,QAAM,IAAI,iBAAiB,IAAI,IAAI,GAAG,QAAQ;AAC9C,QAAM,IAAI,iBAAiB,IAAI,IAAI,GAAG,UAAU;AAChD,QAAM,WAAW,WAAW,aAAa,MAAM,IAAI;AACnD,SAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AAChF;","names":[]}