import{c as t}from"./chunk-4KE642ED-DMtXVwOD.js";import{p as e}from"./treemap-75Q7IDZK-HKTH2UG6-CtK1P-cI.js";import{m as a,Z as r,K as n,J as i,Q as s,j as l,X as o,a6 as c,l as d,L as g,O as p,u as h,t as u,ac as x}from"./index-Bd_j0xvv.js";import"./chunk-5ZJXQJOJ-BQpwB-Bn.js";var m={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},$={axes:[],curves:[],options:m},f=structuredClone($),y=h.radar,v=a(()=>g({...y,...p().radar}),"getConfig"),w=a(()=>f.axes,"getAxes"),b=a(()=>f.curves,"getCurves"),C=a(()=>f.options,"getOptions"),M=a(t=>{f.axes=t.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),L=a(t=>{f.curves=t.map(t=>({name:t.name,label:t.label??t.name,entries:T(t.entries)}))},"setCurves"),T=a(t=>{if(null==t[0].axis)return t.map(t=>t.value);let e=w();if(0===e.length)throw new Error("Axes must be populated before curves for reference entries");return e.map(e=>{let a=t.find(t=>t.axis?.$refText===e.name);if(void 0===a)throw new Error("Missing entry for axis "+e.label);return a.value})},"computeCurveEntries"),k=a(t=>{let e=t.reduce((t,e)=>(t[e.name]=e,t),{});f.options={showLegend:e.showLegend?.value??m.showLegend,ticks:e.ticks?.value??m.ticks,max:e.max?.value??m.max,min:e.min?.value??m.min,graticule:e.graticule?.value??m.graticule}},"setOptions"),A=a(()=>{d(),f=structuredClone($)},"clear"),O={getAxes:w,getCurves:b,getOptions:C,setAxes:M,setCurves:L,setOptions:k,getConfig:v,clear:A,setAccTitle:o,getAccTitle:l,setDiagramTitle:s,getDiagramTitle:i,getAccDescription:n,setAccDescription:r},S=a(e=>{t(e,O);let{axes:a,curves:r,options:n}=e;O.setAxes(a),O.setCurves(r),O.setOptions(n)},"populate"),I={parse:a(async t=>{let a=await e("radar",t);u.debug(a),S(a)},"parse")},E=a((t,e,a,r)=>{let n=r.db,i=n.getAxes(),s=n.getCurves(),l=n.getOptions(),o=n.getConfig(),d=n.getDiagramTitle(),g=c(e),p=j(g,o),h=l.max??Math.max(...s.map(t=>Math.max(...t.entries))),u=l.min,x=Math.min(o.width,o.height)/2;D(p,i,x,l.ticks,l.graticule),F(p,i,x,o),z(p,i,s,u,h,l.graticule,o),G(p,s,l.showLegend,o),p.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-o.height/2-o.marginTop)},"draw"),j=a((t,e)=>{let a=e.width+e.marginLeft+e.marginRight,r=e.height+e.marginTop+e.marginBottom,n=e.marginLeft+e.width/2,i=e.marginTop+e.height/2;return t.attr("viewbox",`0 0 ${a} ${r}`).attr("width",a).attr("height",r),t.append("g").attr("transform",`translate(${n}, ${i})`)},"drawFrame"),D=a((t,e,a,r,n)=>{if("circle"===n)for(let e=0;e{let a=2*e*Math.PI/n-Math.PI/2;return`${s*Math.cos(a)},${s*Math.sin(a)}`}).join(" ");t.append("polygon").attr("points",l).attr("class","radarGraticule")}}},"drawGraticule"),F=a((t,e,a,r)=>{let n=e.length;for(let i=0;i{if(e.entries.length!==l)return;let c=e.entries.map((t,e)=>{let a=2*Math.PI*e/l-Math.PI/2,i=P(t,r,n,o);return{x:i*Math.cos(a),y:i*Math.sin(a)}});"circle"===i?t.append("path").attr("d",R(c,s.curveTension)).attr("class",`radarCurve-${a}`):"polygon"===i&&t.append("polygon").attr("points",c.map(t=>`${t.x},${t.y}`).join(" ")).attr("class",`radarCurve-${a}`)})}function P(t,e,a,r){return r*(Math.min(Math.max(t,e),a)-e)/(a-e)}function R(t,e){let a=t.length,r=`M${t[0].x},${t[0].y}`;for(let n=0;n{let r=t.append("g").attr("transform",`translate(${n}, ${i+20*a})`);r.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${a}`),r.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(e.label)})}a(z,"drawCurves"),a(P,"relativeRadius"),a(R,"closedRoundCurve"),a(G,"drawLegend");var J={draw:E},K=a((t,e)=>{let a="";for(let r=0;r{let e=x(),a=p(),r=g(e,a.themeVariables);return{themeVariables:r,radarOptions:g(r.radar,t)}},"buildRadarStyleOptions"),B=a(({radar:t}={})=>{let{themeVariables:e,radarOptions:a}=Z(t);return`\n\t.radarTitle {\n\t\tfont-size: ${e.fontSize};\n\t\tcolor: ${e.titleColor};\n\t\tdominant-baseline: hanging;\n\t\ttext-anchor: middle;\n\t}\n\t.radarAxisLine {\n\t\tstroke: ${a.axisColor};\n\t\tstroke-width: ${a.axisStrokeWidth};\n\t}\n\t.radarAxisLabel {\n\t\tdominant-baseline: middle;\n\t\ttext-anchor: middle;\n\t\tfont-size: ${a.axisLabelFontSize}px;\n\t\tcolor: ${a.axisColor};\n\t}\n\t.radarGraticule {\n\t\tfill: ${a.graticuleColor};\n\t\tfill-opacity: ${a.graticuleOpacity};\n\t\tstroke: ${a.graticuleColor};\n\t\tstroke-width: ${a.graticuleStrokeWidth};\n\t}\n\t.radarLegendText {\n\t\ttext-anchor: start;\n\t\tfont-size: ${a.legendFontSize}px;\n\t\tdominant-baseline: hanging;\n\t}\n\t${K(e,a)}\n\t`},"styles"),H={parser:I,db:O,renderer:J,styles:B};export{H as diagram}; //# sourceMappingURL=diagram-Z5LGQPMA-BIE2wWFE.js.map