import{F as e,H as t,I as n,K as r,N as i,S as a,Y as o,j as s,l as c,tt as l}from"./chunk-67TQ5CYL-CChC2cAv.js";import{t as u}from"./chunk-AQ6EADP3-CCFje6lL.js";import{q as d}from"./chunk-7W6UQGC5-CgFyfZ6k.js";import"./chunk-KNLZD3CH-BuZBOcso.js";import{a as f}from"./chunk-QA3QBVWF-D5Ha3GgB.js";import{a as p}from"./index-Jz1dop7D.js";import"./chunk-4R4BOZG6-mKhL59ul.js";import"./chunk-RERM46MO-DQNbXtfw.js";import{t as m}from"./chunk-JQRUD6KW-Dcq_Qnyy.js";import{t as h}from"./chunk-2T2R6R2M-n6s9JZqv.js";import"./chunk-UP6H54XL-DsKdC6jC.js";import"./chunk-UXSXWOXI-DR81EqLr.js";import"./chunk-C62D2QBJ-CDAWj26E.js";import"./chunk-CEXFNPSA-D68Tk6ls.js";import"./chunk-J5EP6P6S-DxWW0yvu.js";import"./chunk-RLI5ZMPA-DExu2DOK.js";import"./chunk-2UTLFMKG-CMBB1TMN.js";import"./chunk-RKZBBQEN-BmTPLSyv.js";import"./chunk-KGYTTC2M-C6PHeuay.js";import{t as g}from"./chunk-T5OCTHI4--9wWpVws.js";var _=new g(()=>({cnt:1,stack:[{id:0,level:-1,name:`/`,children:[]}]})),v=u(()=>{_.reset(),o()},`clear`),y=u(()=>_.records.stack[0],`getRoot`),b=u(()=>_.records.cnt,`getCount`),x=s.treeView,S=u(()=>f(x,c().treeView),`getConfig`),C={clear:v,addNode:u((e,t)=>{for(;e<=_.records.stack[_.records.stack.length-1].level;)_.records.stack.pop();let n={id:_.records.cnt++,level:e,name:t,children:[]};_.records.stack[_.records.stack.length-1].children.push(n),_.records.stack.push(n)},`addNode`),getRoot:y,getCount:b,getConfig:S,getAccTitle:l,getAccDescription:a,getDiagramTitle:r,setAccDescription:t,setAccTitle:i,setDiagramTitle:e},w=u(e=>{m(e,C),e.nodes.map(e=>C.addNode(e.indent?parseInt(e.indent):0,e.name))},`populate`),T={parse:u(async e=>{let t=await h(`treeView`,e);d.debug(t),w(t)},`parse`)},E=u((e,t,n,r,i)=>{let a=r.append(`text`).text(n.name).attr(`dominant-baseline`,`middle`).attr(`class`,`treeView-node-label`),{height:o,width:s}=a.node().getBBox(),c=o+i.paddingY*2,l=s+i.paddingX*2;a.attr(`x`,e+i.paddingX),a.attr(`y`,t+c/2),n.BBox={x:e,y:t,width:l,height:c}},`positionLabel`),D=u((e,t,n,r,i,a)=>e.append(`line`).attr(`x1`,t).attr(`y1`,n).attr(`x2`,r).attr(`y2`,i).attr(`stroke-width`,a).attr(`class`,`treeView-node-line`),`positionLine`),O=u((e,t,n)=>{let r=0,i=0,a=u((e,t,n,a)=>{let o=a*(n.rowIndent+n.paddingX);E(o,r,t,e,n);let{height:s,width:c}=t.BBox;D(e,o-n.rowIndent,r+s/2,o,r+s/2,n.lineThickness),i=Math.max(i,o+c),r+=s},`drawNode`),o=u((t,r=0)=>{a(e,t,n,r),t.children.forEach(e=>{o(e,r+1)});let{x:i,y:s,height:c}=t.BBox;if(t.children.length){let{y:r,height:a}=t.children[t.children.length-1].BBox;D(e,i+n.paddingX,s+c,i+n.paddingX,r+a/2+n.lineThickness/2,n.lineThickness)}},`processNode`);return o(t),{totalHeight:r,totalWidth:i}},`drawTree`),k={draw:u((e,t,r,i)=>{d.debug(`Rendering treeView diagram
`+e);let a=i.db,o=a.getRoot(),s=a.getConfig(),c=p(t),l=c.append(`g`);l.attr(`class`,`tree-view`);let{totalHeight:u,totalWidth:f}=O(l,o,s);c.attr(`viewBox`,`-${s.lineThickness/2} 0 ${f} ${u}`),n(c,u,f,s.useMaxWidth)},`draw`)},A={labelFontSize:`16px`,labelColor:`black`,lineColor:`black`},j={db:C,renderer:k,parser:T,styles:u(({treeView:e})=>{let{labelFontSize:t,labelColor:n,lineColor:r}=f(A,e);return`
    .treeView-node-label {
        font-size: ${t};
        fill: ${n};
    }
    .treeView-node-line {
        stroke: ${r};
    }
    `},`styles`)};export{j as diagram};