@eventcatalogtest/studio
Version:
A drag and drop UI for distributed systems that keeps your diagrams where they belong – in your repo
29 lines • 3.72 kB
JavaScript
;exports.id=9623,exports.ids=[9623],exports.modules={69623:(a,b,c)=>{c.d(b,{diagram:()=>z});var d=c(87124),e=c(65299),f=c(58210),g=c(32892),h=c(66689),i=c(38073),j=g.UI.pie,k={sections:new Map,showData:!1,config:j},l=k.sections,m=k.showData,n=structuredClone(j),o=(0,g.K2)(()=>structuredClone(n),"getConfig"),p=(0,g.K2)(()=>{l=new Map,m=k.showData,(0,g.IU)()},"clear"),q=(0,g.K2)(({label:a,value:b})=>{l.has(a)||(l.set(a,b),g.Rm.debug(`added new section: ${a}, with value: ${b}`))},"addSection"),r=(0,g.K2)(()=>l,"getSections"),s=(0,g.K2)(a=>{m=a},"setShowData"),t=(0,g.K2)(()=>m,"getShowData"),u={getConfig:o,clear:p,setDiagramTitle:g.ke,getDiagramTitle:g.ab,setAccTitle:g.SV,getAccTitle:g.iN,setAccDescription:g.EI,getAccDescription:g.m7,addSection:q,getSections:r,setShowData:s,getShowData:t},v=(0,g.K2)((a,b)=>{(0,d.S)(a,b),b.setShowData(a.showData),a.sections.map(b.addSection)},"populateDb"),w={parse:(0,g.K2)(async a=>{let b=await (0,h.qg)("pie",a);g.Rm.debug(b),v(b,u)},"parse")},x=(0,g.K2)(a=>`
.pieCircle{
stroke: ${a.pieStrokeColor};
stroke-width : ${a.pieStrokeWidth};
opacity : ${a.pieOpacity};
}
.pieOuterCircle{
stroke: ${a.pieOuterStrokeColor};
stroke-width: ${a.pieOuterStrokeWidth};
fill: none;
}
.pieTitleText {
text-anchor: middle;
font-size: ${a.pieTitleTextSize};
fill: ${a.pieTitleTextColor};
font-family: ${a.fontFamily};
}
.slice {
font-family: ${a.fontFamily};
fill: ${a.pieSectionTextColor};
font-size:${a.pieSectionTextSize};
// fill: white;
}
.legend text {
fill: ${a.pieLegendTextColor};
font-family: ${a.fontFamily};
font-size: ${a.pieLegendTextSize};
}
`,"getStyles"),y=(0,g.K2)(a=>{let b=[...a.entries()].map(a=>({label:a[0],value:a[1]})).sort((a,b)=>b.value-a.value);return(0,i.rLf)().value(a=>a.value)(b)},"createPieArcs"),z={parser:w,db:u,renderer:{draw:(0,g.K2)((a,b,c,d)=>{g.Rm.debug("rendering pie chart\n"+a);let h=d.db,j=(0,g.D7)(),k=(0,e.$t)(h.getConfig(),j.pie),l=(0,f.D)(b),m=l.append("g");m.attr("transform","translate(225,225)");let{themeVariables:n}=j,[o]=(0,e.I5)(n.pieOuterStrokeWidth);o??=2;let p=k.textPosition,q=(0,i.JLW)().innerRadius(0).outerRadius(185),r=(0,i.JLW)().innerRadius(185*p).outerRadius(185*p);m.append("circle").attr("cx",0).attr("cy",0).attr("r",185+o/2).attr("class","pieOuterCircle");let s=h.getSections(),t=y(s),u=[n.pie1,n.pie2,n.pie3,n.pie4,n.pie5,n.pie6,n.pie7,n.pie8,n.pie9,n.pie10,n.pie11,n.pie12],v=(0,i.UMr)(u);m.selectAll("mySlices").data(t).enter().append("path").attr("d",q).attr("fill",a=>v(a.data.label)).attr("class","pieCircle");let w=0;s.forEach(a=>{w+=a}),m.selectAll("mySlices").data(t).enter().append("text").text(a=>(a.data.value/w*100).toFixed(0)+"%").attr("transform",a=>"translate("+r.centroid(a)+")").style("text-anchor","middle").attr("class","slice"),m.append("text").text(h.getDiagramTitle()).attr("x",0).attr("y",-200).attr("class","pieTitleText");let x=m.selectAll(".legend").data(v.domain()).enter().append("g").attr("class","legend").attr("transform",(a,b)=>"translate(216,"+(22*b-22*v.domain().length/2)+")");x.append("rect").attr("width",18).attr("height",18).style("fill",v).style("stroke",v),x.data(t).append("text").attr("x",22).attr("y",14).text(a=>{let{label:b,value:c}=a.data;return h.getShowData()?`${b} [${c}]`:b});let z=512+Math.max(...x.selectAll("text").nodes().map(a=>a?.getBoundingClientRect().width??0));l.attr("viewBox",`0 0 ${z} 450`),(0,g.a$)(l,450,z,k.useMaxWidth)},"draw")},styles:x}},87124:(a,b,c)=>{function d(a,b){a.accDescr&&b.setAccDescription?.(a.accDescr),a.accTitle&&b.setAccTitle?.(a.accTitle),a.title&&b.setDiagramTitle?.(a.title)}c.d(b,{S:()=>d}),(0,c(32892).K2)(d,"populateCommonDb")}};