UNPKG

mermaid

Version:

Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.

2 lines (1 loc) 9.75 kB
import{a as U}from"./chunk-MKUAOEP6.mjs";import{c as L,d as z,e as Q}from"./chunk-QDFLYFYJ.mjs";import{a as Y}from"./chunk-5IMINLNL.mjs";import{d as P,e as X}from"./chunk-ZNLK7HRR.mjs";import{d as E}from"./chunk-DZP67EKU.mjs";import{_ as H,n as Z,x as j}from"./chunk-QJSWEUOL.mjs";import{b as M,h as I}from"./chunk-H7VHZCWX.mjs";import{a as N}from"./chunk-AQ6EADP3.mjs";var _=N(async(k,t)=>{let l=H(),{themeVariables:m,handDrawnSeed:d}=l,{clusterBkg:b,clusterBorder:x}=m,o=x,{labelStyles:v,nodeStyles:c,borderStyles:R,backgroundStyles:n}=P(t),h=k.insert("g").attr("class","cluster swimlane "+(t.cssClasses||"")).attr("id",t.id).attr("data-id",t.id).attr("data-et","cluster").attr("data-look",t.look),g=Z(l.flowchart.htmlLabels),a=t.direction==="LR",s=h.insert("g").attr("class","cluster-label swimlane-label"),w=await E(s,t.label,{style:t.labelStyle,useHtmlLabels:g,isNode:!0,width:t.width}),r=w.getBBox();if(g){let B=w.children[0],D=I(w);r=B.getBoundingClientRect(),D.attr("width",r.width),D.attr("height",r.height)}let p=t.padding??0,u=t.width<=r.width+p?r.width+p:t.width;t.width<=r.width+p?t.diff=(u-t.width)/2-p:t.diff=-p;let i=t.height,f=t.y-i/2,T=t.y+i/2,e=t.x-u/2,S=t.swimlaneContentTop!==void 0?t.swimlaneContentTop:f+i/3,y=a?4:0,$=r.height+2*y,C,O;if(a){let B=Math.max($,r.height+2*y),D=e+B,W=Math.max(0,u-B);if(t.look==="handDrawn"){let J=Y.svg(h),A=X(t,{roughness:.7,fill:b,stroke:o,fillWeight:3,seed:d}),q=X(t,{roughness:.7,fill:"none",stroke:o,seed:d}),F=J.rectangle(e,f,B,i,A);C=h.insert(()=>F,":first-child");let K=J.rectangle(D,f,W,i,q);O=h.insert(()=>K,":first-child"),C.select("path:nth-child(2)").attr("style",R.join(";")),C.select("path").attr("style",n.join(";").replace("fill","stroke"))}else C=h.insert("rect",":first-child"),O=h.insert("rect",":first-child"),C.attr("class","swimlane-title").attr("style",c).attr("x",e).attr("y",f).attr("width",B).attr("height",i).attr("fill",b).attr("stroke",o),O.attr("class","swimlane-body").attr("style",c).attr("x",D).attr("y",f).attr("width",W).attr("height",i).attr("fill","none").attr("stroke",o);let V=e+B/2,G=t.y;s.attr("transform",`translate(${V}, ${G}) rotate(-90) translate(${-r.width/2}, ${-r.height/2})`)}else{let B=Math.max(0,S-f),D=Math.min($,B),W=f+D,V=Math.max(0,T-W),G=t.x-u/2;if(t.look==="handDrawn"){let q=Y.svg(h),F=X(t,{roughness:.7,fill:b,stroke:o,fillWeight:3,seed:d}),K=X(t,{roughness:.7,fill:"none",stroke:o,seed:d}),rt=q.rectangle(G,f,u,D,F);C=h.insert(()=>rt,":first-child");let it=q.rectangle(G,W,u,V,K);O=h.insert(()=>it,":first-child"),C.select("path:nth-child(2)").attr("style",R.join(";")),C.select("path").attr("style",n.join(";").replace("fill","stroke"))}else C=h.insert("rect",":first-child"),O=h.insert("rect",":first-child"),C.attr("class","swimlane-title").attr("style",c).attr("x",G).attr("y",f).attr("width",u).attr("height",D).attr("fill",b).attr("stroke",o),O.attr("class","swimlane-body").attr("style",c).attr("x",G).attr("y",W).attr("width",u).attr("height",V).attr("fill","none").attr("stroke",o);let J=t.x-r.width/2,A=f+(D-r.height)/2;s.attr("transform",`translate(${J}, ${A})`)}if(M.trace("Swimlane data ",t,JSON.stringify(t)),v){let B=s.select("span");B&&B.attr("style",v)}return t.offsetX=0,t.width=u,t.height=i,t.offsetY=r.height-p/2,t.intersect=function(B){return L(t,B)},{cluster:h,labelBBox:r}},"swimlane");var tt=N(async(k,t)=>{M.info("Creating subgraph rect for ",t.id,t);let l=H(),{themeVariables:m,handDrawnSeed:d}=l,{clusterBkg:b,clusterBorder:x}=m,{labelStyles:o,nodeStyles:v,borderStyles:c,backgroundStyles:R}=P(t),n=k.insert("g").attr("class","cluster "+t.cssClasses).attr("id",t.domId).attr("data-look",t.look),h=j(l),g=n.insert("g").attr("class","cluster-label "),a;t.labelType==="markdown"?a=await E(g,t.label,{style:t.labelStyle,useHtmlLabels:h,isNode:!0,width:t.width}):a=await Q(g,t.label,t.labelStyle||"",!1,!0);let s=a.getBBox();if(j(l)){let e=a.children[0],S=I(a);s=e.getBoundingClientRect(),S.attr("width",s.width),S.attr("height",s.height)}let w=t.width<=s.width+t.padding?s.width+t.padding:t.width;t.width<=s.width+t.padding?t.diff=(w-t.width)/2-t.padding:t.diff=-t.padding;let r=t.height,p=t.x-w/2,u=t.y-r/2;M.trace("Data ",t,JSON.stringify(t));let i;if(t.look==="handDrawn"){let e=Y.svg(n),S=X(t,{roughness:.7,fill:b,stroke:x,fillWeight:3,seed:d}),y=e.path(z(p,u,w,r,0),S);i=n.insert(()=>(M.debug("Rough node insert CXC",y),y),":first-child"),i.select("path:nth-child(2)").attr("style",c.join(";")),i.select("path").attr("style",R.join(";").replace("fill","stroke"))}else i=n.insert("rect",":first-child"),i.attr("style",v).attr("rx",t.rx).attr("ry",t.ry).attr("x",p).attr("y",u).attr("width",w).attr("height",r);let{subGraphTitleTopMargin:f}=U(l);if(g.attr("transform",`translate(${t.x-s.width/2}, ${t.y-t.height/2+f})`),o){let e=g.select("span");e&&e.attr("style",o)}let T=i.node().getBBox();return t.offsetX=0,t.width=T.width,t.height=T.height,t.offsetY=s.height-t.padding/2,t.intersect=function(e){return L(t,e)},{cluster:n,labelBBox:s}},"rect"),et=N((k,t)=>{let l=k.insert("g").attr("class","note-cluster").attr("id",t.domId),m=l.insert("rect",":first-child"),d=0*t.padding,b=d/2;m.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-b).attr("y",t.y-t.height/2-b).attr("width",t.width+d).attr("height",t.height+d).attr("fill","none");let x=m.node().getBBox();return t.width=x.width,t.height=x.height,t.intersect=function(o){return L(t,o)},{cluster:l,labelBBox:{width:0,height:0}}},"noteGroup"),at=N(async(k,t)=>{let l=H(),{themeVariables:m,handDrawnSeed:d}=l,{altBackground:b,compositeBackground:x,compositeTitleBackground:o,nodeBorder:v}=m,c=k.insert("g").attr("class",t.cssClasses).attr("id",t.domId).attr("data-id",t.id).attr("data-look",t.look),R=c.insert("g",":first-child"),n=c.insert("g").attr("class","cluster-label"),h=c.append("rect"),g=await Q(n,t.label,t.labelStyle,void 0,!0),a=g.getBBox();if(j(l)){let y=g.children[0],$=I(g);a=y.getBoundingClientRect(),$.attr("width",a.width),$.attr("height",a.height)}let s=0*t.padding,w=s/2,r=(t.width<=a.width+t.padding?a.width+t.padding:t.width)+s;t.width<=a.width+t.padding?t.diff=(r-t.width)/2-t.padding:t.diff=-t.padding;let p=t.height+s,u=t.height+s-a.height-6,i=t.x-r/2,f=t.y-p/2;t.width=r;let T=t.y-t.height/2-w+a.height+2,e;if(t.look==="handDrawn"){let y=t.cssClasses.includes("statediagram-cluster-alt"),$=Y.svg(c),C=t.rx||t.ry?$.path(z(i,f,r,p,10),{roughness:.7,fill:o,fillStyle:"solid",stroke:v,seed:d}):$.rectangle(i,f,r,p,{seed:d});e=c.insert(()=>C,":first-child");let O=$.rectangle(i,T,r,u,{fill:y?b:x,fillStyle:y?"hachure":"solid",stroke:v,seed:d});e=c.insert(()=>C,":first-child"),h=c.insert(()=>O)}else e=R.insert("rect",":first-child"),e.attr("class","outer").attr("x",i).attr("y",f).attr("width",r).attr("height",p).attr("data-look",t.look),h.attr("class","inner").attr("x",i).attr("y",T).attr("width",r).attr("height",u);n.attr("transform",`translate(${t.x-a.width/2}, ${f+1-(j(l)?0:3)})`);let S=e.node().getBBox();return t.height=S.height,t.offsetX=0,t.offsetY=a.height-t.padding/2,t.labelBBox=a,t.intersect=function(y){return L(t,y)},{cluster:c,labelBBox:a}},"roundedWithTitle"),lt=N(async(k,t)=>{M.info("Creating subgraph rect for ",t.id,t);let l=H(),{themeVariables:m,handDrawnSeed:d}=l,{clusterBkg:b,clusterBorder:x}=m,{labelStyles:o,nodeStyles:v,borderStyles:c,backgroundStyles:R}=P(t),n=k.insert("g").attr("class","cluster "+t.cssClasses).attr("id",t.domId).attr("data-look",t.look),h=j(l),g=n.insert("g").attr("class","cluster-label "),a=await E(g,t.label,{style:t.labelStyle,useHtmlLabels:h,isNode:!0,width:t.width}),s=a.getBBox();if(j(l)){let e=a.children[0],S=I(a);s=e.getBoundingClientRect(),S.attr("width",s.width),S.attr("height",s.height)}let w=t.width<=s.width+t.padding?s.width+t.padding:t.width;t.width<=s.width+t.padding?t.diff=(w-t.width)/2-t.padding:t.diff=-t.padding;let r=t.height,p=t.x-w/2,u=t.y-r/2;M.trace("Data ",t,JSON.stringify(t));let i;if(t.look==="handDrawn"){let e=Y.svg(n),S=X(t,{roughness:.7,fill:b,stroke:x,fillWeight:4,seed:d}),y=e.path(z(p,u,w,r,t.rx),S);i=n.insert(()=>(M.debug("Rough node insert CXC",y),y),":first-child"),i.select("path:nth-child(2)").attr("style",c.join(";")),i.select("path").attr("style",R.join(";").replace("fill","stroke"))}else i=n.insert("rect",":first-child"),i.attr("style",v).attr("rx",t.rx).attr("ry",t.ry).attr("x",p).attr("y",u).attr("width",w).attr("height",r);let{subGraphTitleTopMargin:f}=U(l);if(g.attr("transform",`translate(${t.x-s.width/2}, ${t.y-t.height/2+f})`),o){let e=g.select("span");e&&e.attr("style",o)}let T=i.node().getBBox();return t.offsetX=0,t.width=T.width,t.height=T.height,t.offsetY=s.height-t.padding/2,t.intersect=function(e){return L(t,e)},{cluster:n,labelBBox:s}},"kanbanSection"),ct=N((k,t)=>{let l=H(),{themeVariables:m,handDrawnSeed:d}=l,{nodeBorder:b}=m,x=k.insert("g").attr("class",t.cssClasses).attr("id",t.domId).attr("data-look",t.look),o=x.insert("g",":first-child"),v=0*t.padding,c=t.width+v;t.diff=-t.padding;let R=t.height+v,n=t.x-c/2,h=t.y-R/2;t.width=c;let g;if(t.look==="handDrawn"){let w=Y.svg(x).rectangle(n,h,c,R,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:b,seed:d});g=x.insert(()=>w,":first-child")}else{g=o.insert("rect",":first-child");let s="outer";t.look,s="divider",g.attr("class",s).attr("x",n).attr("y",h).attr("width",c).attr("height",R).attr("data-look",t.look)}let a=g.node().getBBox();return t.height=a.height,t.offsetX=0,t.offsetY=0,t.intersect=function(s){return L(t,s)},{cluster:x,labelBBox:{}}},"divider"),ht=tt,ot={rect:tt,squareRect:ht,roundedWithTitle:at,noteGroup:et,divider:ct,kanbanSection:lt,swimlane:_},st=new Map,Ot=N(async(k,t)=>{let l=t.shape||"rect",m=await ot[l](k,t);return st.set(t.id,m),m},"insertCluster");var Lt=N(()=>{st=new Map},"clear");export{Ot as a,Lt as b};