import{s as de}from"./chunk-SKB7J2MH.DthSJpGM.js";import{_ as w,D as ee,E as te,H as he,e as pe,l as J,aZ as P,d as j,b as ue,a as fe,p as me,q as ge,g as ye,s as Se,F as ve,a_ as xe,y as be}from"./mermaid.core.BGhbGlGd.js";import{p as we}from"./chunk-353BL4L5.DKwi8utJ.js";import{p as Ce}from"./treemap-75Q7IDZK.BJixwsOc.js";import{b as I}from"./defaultLocale.C4B-KCzX.js";import{o as U}from"./ordinal.BYWQX77i.js";import"./preload-helper.D6OiyG8N.js";import"./_baseUniq.DrZ7Fcz9.js";import"./_basePickBy.Blj6Mziw.js";import"./clone.CJouE3HP.js";import"./init.Gi6I4Gst.js";function Te(e){var a=0,n=e.children,l=n&&n.length;if(!l)a=1;else for(;--l>=0;)a+=n[l].value;e.value=a}function Le(){return this.eachAfter(Te)}function $e(e,a){let n=-1;for(const l of this)e.call(a,l,++n,this);return this}function Ae(e,a){for(var n=this,l=[n],o,i,d=-1;n=l.pop();)if(e.call(a,n,++d,this),o=n.children)for(i=o.length-1;i>=0;--i)l.push(o[i]);return this}function Fe(e,a){for(var n=this,l=[n],o=[],i,d,h,m=-1;n=l.pop();)if(o.push(n),i=n.children)for(d=0,h=i.length;d=0;)n+=l[o].value;a.value=n})}function Me(e){return this.eachBefore(function(a){a.children&&a.children.sort(e)})}function _e(e){for(var a=this,n=ze(a,e),l=[a];a!==n;)a=a.parent,l.push(a);for(var o=l.length;e!==n;)l.splice(o,0,e),e=e.parent;return l}function ze(e,a){if(e===a)return e;var n=e.ancestors(),l=a.ancestors(),o=null;for(e=n.pop(),a=l.pop();e===a;)o=e,e=n.pop(),a=l.pop();return o}function Ve(){for(var e=this,a=[e];e=e.parent;)a.push(e);return a}function De(){return Array.from(this)}function Pe(){var e=[];return this.eachBefore(function(a){a.children||e.push(a)}),e}function Be(){var e=this,a=[];return e.each(function(n){n!==e&&a.push({source:n.parent,target:n})}),a}function*Ee(){var e=this,a,n=[e],l,o,i;do for(a=n.reverse(),n=[];e=a.pop();)if(yield e,l=e.children)for(o=0,i=l.length;o=0;--h)o.push(i=d[h]=new Y(d[h])),i.parent=l,i.depth=l.depth+1;return n.eachBefore(Oe)}function Re(){return K(this).eachBefore(Ie)}function We(e){return e.children}function He(e){return Array.isArray(e)?e[1]:null}function Ie(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function Oe(e){var a=0;do e.height=a;while((e=e.parent)&&e.height<++a)}function Y(e){this.data=e,this.depth=this.height=0,this.parent=null}Y.prototype=K.prototype={constructor:Y,count:Le,each:$e,eachAfter:Fe,eachBefore:Ae,find:ke,sum:Ne,sort:Me,path:_e,ancestors:Ve,descendants:De,leaves:Pe,links:Be,copy:Re,[Symbol.iterator]:Ee};function qe(e){if(typeof e!="function")throw new Error;return e}function O(){return 0}function q(e){return function(){return e}}function Ge(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function Xe(e,a,n,l,o){for(var i=e.children,d,h=-1,m=i.length,c=e.value&&(l-a)/e.value;++hN&&(N=c),M=u*u*E,k=Math.max(N/M,M/g),k>V){u-=c;break}V=k}d.push(m={value:u,dice:x1?l:1)},n}(Ye);function Je(){var e=Ue,a=!1,n=1,l=1,o=[0],i=O,d=O,h=O,m=O,c=O;function p(r){return r.x0=r.y0=0,r.x1=n,r.y1=l,r.eachBefore(b),o=[0],a&&r.eachBefore(Ge),r}function b(r){var x=o[r.depth],S=r.x0+x,v=r.y0+x,u=r.x1-x,g=r.y1-x;u{xe(o)&&(n?.textStyles?n.textStyles.push(o):n.textStyles=[o]),n?.styles?n.styles.push(o):n.styles=[o]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){be(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function ne(e){if(!e.length)return[];const a=[],n=[];return e.forEach(l=>{const o={name:l.name,children:l.type==="Leaf"?void 0:[]};for(o.classSelector=l?.classSelector,l?.cssCompiledStyles&&(o.cssCompiledStyles=[l.cssCompiledStyles]),l.type==="Leaf"&&l.value!==void 0&&(o.value=l.value);n.length>0&&n[n.length-1].level>=l.level;)n.pop();if(n.length===0)a.push(o);else{const i=n[n.length-1].node;i.children?i.children.push(o):i.children=[o]}l.type!=="Leaf"&&n.push({node:o,level:l.level})}),a}w(ne,"buildHierarchy");var Ke=w((e,a)=>{we(e,a);const n=[];for(const i of e.TreemapRows??[])i.$type==="ClassDefStatement"&&a.addClass(i.className??"",i.styleText??"");for(const i of e.TreemapRows??[]){const d=i.item;if(!d)continue;const h=i.indent?parseInt(i.indent):0,m=Qe(d),c=d.classSelector?a.getStylesForClass(d.classSelector):[],p=c.length>0?c.join(";"):void 0,b={level:h,name:m,type:d.$type,value:d.value,classSelector:d.classSelector,cssCompiledStyles:p};n.push(b)}const l=ne(n),o=w((i,d)=>{for(const h of i)a.addNode(h,d),h.children&&h.children.length>0&&o(h.children,d+1)},"addNodesRecursively");o(l,0)},"populate"),Qe=w(e=>e.name?String(e.name):"","getItemName"),le={parser:{yy:void 0},parse:w(async e=>{try{const n=await Ce("treemap",e);J.debug("Treemap AST:",n);const l=le.parser?.yy;if(!(l instanceof ae))throw new Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Ke(n,l)}catch(a){throw J.error("Error parsing treemap:",a),a}},"parse")},et=10,B=10,G=25,tt=w((e,a,n,l)=>{const o=l.db,i=o.getConfig(),d=i.padding??et,h=o.getDiagramTitle(),m=o.getRoot(),{themeVariables:c}=te();if(!m)return;const p=h?30:0,b=he(a),r=i.nodeWidth?i.nodeWidth*B:960,x=i.nodeHeight?i.nodeHeight*B:500,S=r,v=x+p;b.attr("viewBox",`0 0 ${S} ${v}`),pe(b,v,S,i.useMaxWidth);let u;try{const t=i.valueFormat||",";if(t==="$0,0")u=w(s=>"$"+I(",")(s),"valueFormat");else if(t.startsWith("$")&&t.includes(",")){const s=/\.\d+/.exec(t),f=s?s[0]:"";u=w(C=>"$"+I(","+f)(C),"valueFormat")}else if(t.startsWith("$")){const s=t.substring(1);u=w(f=>"$"+I(s||"")(f),"valueFormat")}else u=I(t)}catch(t){J.error("Error creating format function:",t),u=I(",")}const g=U().range(["transparent",c.cScale0,c.cScale1,c.cScale2,c.cScale3,c.cScale4,c.cScale5,c.cScale6,c.cScale7,c.cScale8,c.cScale9,c.cScale10,c.cScale11]),N=U().range(["transparent",c.cScalePeer0,c.cScalePeer1,c.cScalePeer2,c.cScalePeer3,c.cScalePeer4,c.cScalePeer5,c.cScalePeer6,c.cScalePeer7,c.cScalePeer8,c.cScalePeer9,c.cScalePeer10,c.cScalePeer11]),k=U().range([c.cScaleLabel0,c.cScaleLabel1,c.cScaleLabel2,c.cScaleLabel3,c.cScaleLabel4,c.cScaleLabel5,c.cScaleLabel6,c.cScaleLabel7,c.cScaleLabel8,c.cScaleLabel9,c.cScaleLabel10,c.cScaleLabel11]);h&&b.append("text").attr("x",S/2).attr("y",p/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(h);const V=b.append("g").attr("transform",`translate(0, ${p})`).attr("class","treemapContainer"),E=K(m).sum(t=>t.value??0).sort((t,s)=>(s.value??0)-(t.value??0)),Q=Je().size([r,x]).paddingTop(t=>t.children&&t.children.length>0?G+B:0).paddingInner(d).paddingLeft(t=>t.children&&t.children.length>0?B:0).paddingRight(t=>t.children&&t.children.length>0?B:0).paddingBottom(t=>t.children&&t.children.length>0?B:0).round(!0)(E),re=Q.descendants().filter(t=>t.children&&t.children.length>0),R=V.selectAll(".treemapSection").data(re).enter().append("g").attr("class","treemapSection").attr("transform",t=>`translate(${t.x0},${t.y0})`);R.append("rect").attr("width",t=>t.x1-t.x0).attr("height",G).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",t=>t.depth===0?"display: none;":""),R.append("clipPath").attr("id",(t,s)=>`clip-section-${a}-${s}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-12)).attr("height",G),R.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class",(t,s)=>`treemapSection section${s}`).attr("fill",t=>g(t.data.name)).attr("fill-opacity",.6).attr("stroke",t=>N(t.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",t=>{if(t.depth===0)return"display: none;";const s=P({cssCompiledStyles:t.data.cssCompiledStyles});return s.nodeStyles+";"+s.borderStyles.join(";")}),R.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",G/2).attr("dominant-baseline","middle").text(t=>t.depth===0?"":t.data.name).attr("font-weight","bold").attr("style",t=>{if(t.depth===0)return"display: none;";const s="dominant-baseline: middle; font-size: 12px; fill:"+k(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return s+f.labelStyles.replace("color:","fill:")}).each(function(t){if(t.depth===0)return;const s=j(this),f=t.data.name;s.text(f);const C=t.x1-t.x0,L=6;let $;i.showValues!==!1&&t.value?$=C-10-30-10-L:$=C-L-6;const A=Math.max(15,$),y=s.node();if(y.getComputedTextLength()>A){let T=f;for(;T.length>0;){if(T=f.substring(0,T.length-1),T.length===0){s.text("..."),y.getComputedTextLength()>A&&s.text("");break}if(s.text(T+"..."),y.getComputedTextLength()<=A)break}}}),i.showValues!==!1&&R.append("text").attr("class","treemapSectionValue").attr("x",t=>t.x1-t.x0-10).attr("y",G/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(t=>t.value?u(t.value):"").attr("font-style","italic").attr("style",t=>{if(t.depth===0)return"display: none;";const s="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+k(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return s+f.labelStyles.replace("color:","fill:")});const se=Q.leaves(),X=V.selectAll(".treemapLeafGroup").data(se).enter().append("g").attr("class",(t,s)=>`treemapNode treemapLeafGroup leaf${s}${t.data.classSelector?` ${t.data.classSelector}`:""}x`).attr("transform",t=>`translate(${t.x0},${t.y0})`);X.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class","treemapLeaf").attr("fill",t=>t.parent?g(t.parent.data.name):g(t.data.name)).attr("style",t=>P({cssCompiledStyles:t.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",t=>t.parent?g(t.parent.data.name):g(t.data.name)).attr("stroke-width",3),X.append("clipPath").attr("id",(t,s)=>`clip-${a}-${s}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-4)).attr("height",t=>Math.max(0,t.y1-t.y0-4)),X.append("text").attr("class","treemapLabel").attr("x",t=>(t.x1-t.x0)/2).attr("y",t=>(t.y1-t.y0)/2).attr("style",t=>{const s="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+k(t.data.name)+";",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return s+f.labelStyles.replace("color:","fill:")}).attr("clip-path",(t,s)=>`url(#clip-${a}-${s})`).text(t=>t.data.name).each(function(t){const s=j(this),f=t.x1-t.x0,C=t.y1-t.y0,L=s.node(),$=4,D=f-2*$,A=C-2*$;if(D<10||A<10){s.style("display","none");return}let y=parseInt(s.style("font-size"),10);const _=8,F=28,T=.6,z=6,W=2;for(;L.getComputedTextLength()>D&&y>_;)y--,s.style("font-size",`${y}px`);let H=Math.max(z,Math.min(F,Math.round(y*T))),Z=y+W+H;for(;Z>A&&y>_&&(y--,H=Math.max(z,Math.min(F,Math.round(y*T))),!(HD||y<_||A(s.x1-s.x0)/2).attr("y",function(s){return(s.y1-s.y0)/2}).attr("style",s=>{const f="text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+k(s.data.name)+";",C=P({cssCompiledStyles:s.data.cssCompiledStyles});return f+C.labelStyles.replace("color:","fill:")}).attr("clip-path",(s,f)=>`url(#clip-${a}-${f})`).text(s=>s.value?u(s.value):"").each(function(s){const f=j(this),C=this.parentNode;if(!C){f.style("display","none");return}const L=j(C).select(".treemapLabel");if(L.empty()||L.style("display")==="none"){f.style("display","none");return}const $=parseFloat(L.style("font-size")),D=28,A=.6,y=6,_=2,F=Math.max(y,Math.min(D,Math.round($*A)));f.style("font-size",`${F}px`);const z=(s.y1-s.y0)/2+$/2+_;f.attr("y",z);const W=s.x1-s.x0,oe=s.y1-s.y0-4,ce=W-8;f.node().getComputedTextLength()>ce||z+F>oe||F{const a=ee(lt,e);return` .treemapNode.section { stroke: ${a.sectionStrokeColor}; stroke-width: ${a.sectionStrokeWidth}; fill: ${a.sectionFillColor}; } .treemapNode.leaf { stroke: ${a.leafStrokeColor}; stroke-width: ${a.leafStrokeWidth}; fill: ${a.leafFillColor}; } .treemapLabel { fill: ${a.labelColor}; font-size: ${a.labelFontSize}; } .treemapValue { fill: ${a.valueColor}; font-size: ${a.valueFontSize}; } .treemapTitle { fill: ${a.titleColor}; font-size: ${a.titleFontSize}; } `},"getStyles"),st=rt,vt={parser:le,get db(){return new ae},renderer:nt,styles:st};export{vt as diagram};