B&&(B=he.getWidth())});var G=O/N,F=P/N,q=Math.pow(A-R,2)+4*(G+R)*(F+A)*N,j=(R-A+Math.sqrt(q))/(2*(G+R)),J;_?(J=Math.ceil(j),J==j&&J++):J=Math.floor(j);var H=J*(G+R)-R;return B>H&&(H=B),H+=R*2,H},M.prototype.tileNodesByFavoringDim=function(E,_,A){var R=p.TILING_PADDING_VERTICAL,N=p.TILING_PADDING_HORIZONTAL,O=p.TILING_COMPARE_BY,P={rows:[],rowWidth:[],rowHeight:[],width:0,height:_,verticalPadding:R,horizontalPadding:N,centerX:0,centerY:0};O&&(P.idealRowWidth=this.calcIdealRowWidth(E,A));var B=function(Z){return Z.rect.width*Z.rect.height},G=function(Z,fe){return B(fe)-B(Z)};E.sort(function(he,Z){var fe=G;return P.idealRowWidth?(fe=O,fe(he.id,Z.id)):fe(he,Z)});for(var F=0,q=0,j=0;j0&&(P+=E.horizontalPadding),E.rowWidth[A]=P,E.width0&&(B+=E.verticalPadding);var G=0;B>E.rowHeight[A]&&(G=E.rowHeight[A],E.rowHeight[A]=B,G=E.rowHeight[A]-G),E.height+=G,E.rows[A].push(_)},M.prototype.getShortestRowIndex=function(E){for(var _=-1,A=Number.MAX_VALUE,R=0;RA&&(_=R,A=E.rowWidth[R]);return _},M.prototype.canAddHorizontal=function(E,_,A){if(E.idealRowWidth){var R=E.rows.length-1,N=E.rowWidth[R];return N+_+E.horizontalPadding<=E.idealRowWidth}var O=this.getShortestRowIndex(E);if(O<0)return!0;var P=E.rowWidth[O];if(P+E.horizontalPadding+_<=E.width)return!0;var B=0;E.rowHeight[O]0&&(B=A+E.verticalPadding-E.rowHeight[O]);var G;E.width-P>=_+E.horizontalPadding?G=(E.height+B)/(P+_+E.horizontalPadding):G=(E.height+B)/E.width,B=A+E.verticalPadding;var F;return E.width<_?F=(E.height+B)/_:F=(E.height+B)/E.width,F<1&&(F=1/F),G<1&&(G=1/G),GO&&_!=A){R.splice(-1,1),E.rows[A].push(N),E.rowWidth[_]=E.rowWidth[_]-O,E.rowWidth[A]=E.rowWidth[A]+O,E.width=E.rowWidth[instance.getLongestRowIndex(E)];for(var P=Number.MIN_VALUE,B=0;BP&&(P=R[B].height);_>0&&(P+=E.verticalPadding);var G=E.rowHeight[_]+E.rowHeight[A];E.rowHeight[_]=P,E.rowHeight[A]0)for(var H=N;H<=O;H++)J[0]+=this.grid[H][P-1].length+this.grid[H][P].length-1;if(O0)for(var H=P;H<=B;H++)J[3]+=this.grid[N-1][H].length+this.grid[N][H].length-1;for(var he=T.MAX_VALUE,Z,fe,ne=0;ne{var l=o(551).FDLayoutNode,u=o(551).IMath;function h(d,p,g,m){l.call(this,d,p,g,m)}h.prototype=Object.create(l.prototype);for(var f in l)h[f]=l[f];h.prototype.calculateDisplacement=function(){var d=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=d.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=d.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=d.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=d.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>d.coolingFactor*d.maxNodeDisplacement&&(this.displacementX=d.coolingFactor*d.maxNodeDisplacement*u.sign(this.displacementX)),Math.abs(this.displacementY)>d.coolingFactor*d.maxNodeDisplacement&&(this.displacementY=d.coolingFactor*d.maxNodeDisplacement*u.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},h.prototype.propogateDisplacementToChildren=function(d,p){for(var g=this.getChild().getNodes(),m,y=0;y{function l(g){if(Array.isArray(g)){for(var m=0,y=Array(g.length);m0){var Ke=0;Ge.forEach(function(at){ue=="horizontal"?(me.set(at,v.has(at)?b[v.get(at)]:se.get(at)),Ke+=me.get(at)):(me.set(at,v.has(at)?w[v.get(at)]:se.get(at)),Ke+=me.get(at))}),Ke=Ke/Ge.length,He.forEach(function(at){z.has(at)||me.set(at,Ke)})}else{var Ue=0;He.forEach(function(at){ue=="horizontal"?Ue+=v.has(at)?b[v.get(at)]:se.get(at):Ue+=v.has(at)?w[v.get(at)]:se.get(at)}),Ue=Ue/He.length,He.forEach(function(at){me.set(at,Ue)})}});for(var Pe=function(){var Ge=Ae.shift(),Ke=U.get(Ge);Ke.forEach(function(Ue){if(me.get(Ue.id)at&&(at=yt),utBt&&(Bt=ut)}}catch(kn){St=!0,lt=kn}finally{try{!gt&&ot.return&&ot.return()}finally{if(St)throw lt}}var Hr=(Ke+at)/2-(Ue+Bt)/2,Lt=!0,Yr=!1,Fr=void 0;try{for(var sr=He[Symbol.iterator](),nr;!(Lt=(nr=sr.next()).done);Lt=!0){var Tr=nr.value;me.set(Tr,me.get(Tr)+Hr)}}catch(kn){Yr=!0,Fr=kn}finally{try{!Lt&&sr.return&&sr.return()}finally{if(Yr)throw Fr}}})}return me},I=function(U){var ue=0,z=0,se=0,oe=0;if(U.forEach(function(_e){_e.left?b[v.get(_e.left)]-b[v.get(_e.right)]>=0?ue++:z++:w[v.get(_e.top)]-w[v.get(_e.bottom)]>=0?se++:oe++}),ue>z&&se>oe)for(var xe=0;xez)for(var pe=0;peoe)for(var me=0;me1)m.fixedNodeConstraint.forEach(function(ce,U){R[U]=[ce.position.x,ce.position.y],N[U]=[b[v.get(ce.nodeId)],w[v.get(ce.nodeId)]]}),O=!0;else if(m.alignmentConstraint)(function(){var ce=0;if(m.alignmentConstraint.vertical){for(var U=m.alignmentConstraint.vertical,ue=function(me){var _e=new Set;U[me].forEach(function(je){_e.add(je)});var Ae=new Set([].concat(l(_e)).filter(function(je){return B.has(je)})),Pe=void 0;Ae.size>0?Pe=b[v.get(Ae.values().next().value)]:Pe=D(_e).x,U[me].forEach(function(je){R[ce]=[Pe,w[v.get(je)]],N[ce]=[b[v.get(je)],w[v.get(je)]],ce++})},z=0;z0?Pe=b[v.get(Ae.values().next().value)]:Pe=D(_e).y,se[me].forEach(function(je){R[ce]=[b[v.get(je)],Pe],N[ce]=[b[v.get(je)],w[v.get(je)]],ce++})},xe=0;xej&&(j=q[H].length,J=H);if(j0){var Fe={x:0,y:0};m.fixedNodeConstraint.forEach(function(ce,U){var ue={x:b[v.get(ce.nodeId)],y:w[v.get(ce.nodeId)]},z=ce.position,se=L(z,ue);Fe.x+=se.x,Fe.y+=se.y}),Fe.x/=m.fixedNodeConstraint.length,Fe.y/=m.fixedNodeConstraint.length,b.forEach(function(ce,U){b[U]+=Fe.x}),w.forEach(function(ce,U){w[U]+=Fe.y}),m.fixedNodeConstraint.forEach(function(ce){b[v.get(ce.nodeId)]=ce.position.x,w[v.get(ce.nodeId)]=ce.position.y})}if(m.alignmentConstraint){if(m.alignmentConstraint.vertical)for(var Xe=m.alignmentConstraint.vertical,We=function(U){var ue=new Set;Xe[U].forEach(function(oe){ue.add(oe)});var z=new Set([].concat(l(ue)).filter(function(oe){return B.has(oe)})),se=void 0;z.size>0?se=b[v.get(z.values().next().value)]:se=D(ue).x,ue.forEach(function(oe){B.has(oe)||(b[v.get(oe)]=se)})},De=0;De0?se=w[v.get(z.values().next().value)]:se=D(ue).y,ue.forEach(function(oe){B.has(oe)||(w[v.get(oe)]=se)})},Se=0;Se{a.exports=t})},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var o=r[a]={exports:{}};return e[a](o,o.exports,n),o.exports}var i=n(45);return i})()})});var twe=Wt((O3,yq)=>{(function(e,r){typeof O3=="object"&&typeof yq=="object"?yq.exports=r(mq()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof O3=="object"?O3.cytoscapeFcose=r(mq()):e.cytoscapeFcose=r(e.coseBase)})(O3,function(t){return(()=>{"use strict";var e={658:(a=>{a.exports=Object.assign!=null?Object.assign.bind(Object):function(s){for(var o=arguments.length,l=Array(o>1?o-1:0),u=1;u{var l=(function(){function f(d,p){var g=[],m=!0,y=!1,v=void 0;try{for(var b=d[Symbol.iterator](),w;!(m=(w=b.next()).done)&&(g.push(w.value),!(p&&g.length===p));m=!0);}catch(S){y=!0,v=S}finally{try{!m&&b.return&&b.return()}finally{if(y)throw v}}return g}return function(d,p){if(Array.isArray(d))return d;if(Symbol.iterator in Object(d))return f(d,p);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),u=o(140).layoutBase.LinkedList,h={};h.getTopMostNodes=function(f){for(var d={},p=0;p0&&O.merge(F)});for(var P=0;P1){w=v[0],S=w.connectedEdges().length,v.forEach(function(N){N.connectedEdges().length0&&g.set("dummy"+(g.size+1),C),L},h.relocateComponent=function(f,d,p){if(!p.fixedNodeConstraint){var g=Number.POSITIVE_INFINITY,m=Number.NEGATIVE_INFINITY,y=Number.POSITIVE_INFINITY,v=Number.NEGATIVE_INFINITY;if(p.quality=="draft"){var b=!0,w=!1,S=void 0;try{for(var T=d.nodeIndexes[Symbol.iterator](),k;!(b=(k=T.next()).done);b=!0){var C=k.value,L=l(C,2),D=L[0],M=L[1],I=p.cy.getElementById(D);if(I){var E=I.boundingBox(),_=d.xCoords[M]-E.w/2,A=d.xCoords[M]+E.w/2,R=d.yCoords[M]-E.h/2,N=d.yCoords[M]+E.h/2;_m&&(m=A),Rv&&(v=N)}}}catch(F){w=!0,S=F}finally{try{!b&&T.return&&T.return()}finally{if(w)throw S}}var O=f.x-(m+g)/2,P=f.y-(v+y)/2;d.xCoords=d.xCoords.map(function(F){return F+O}),d.yCoords=d.yCoords.map(function(F){return F+P})}else{Object.keys(d).forEach(function(F){var q=d[F],j=q.getRect().x,J=q.getRect().x+q.getRect().width,H=q.getRect().y,he=q.getRect().y+q.getRect().height;jm&&(m=J),Hv&&(v=he)});var B=f.x-(m+g)/2,G=f.y-(v+y)/2;Object.keys(d).forEach(function(F){var q=d[F];q.setCenter(q.getCenterX()+B,q.getCenterY()+G)})}}},h.calcBoundingBox=function(f,d,p,g){for(var m=Number.MAX_SAFE_INTEGER,y=Number.MIN_SAFE_INTEGER,v=Number.MAX_SAFE_INTEGER,b=Number.MIN_SAFE_INTEGER,w=void 0,S=void 0,T=void 0,k=void 0,C=f.descendants().not(":parent"),L=C.length,D=0;Dw&&(m=w),yT&&(v=T),b{var l=o(548),u=o(140).CoSELayout,h=o(140).CoSENode,f=o(140).layoutBase.PointD,d=o(140).layoutBase.DimensionD,p=o(140).layoutBase.LayoutConstants,g=o(140).layoutBase.FDLayoutConstants,m=o(140).CoSEConstants,y=function(b,w){var S=b.cy,T=b.eles,k=T.nodes(),C=T.edges(),L=void 0,D=void 0,M=void 0,I={};b.randomize&&(L=w.nodeIndexes,D=w.xCoords,M=w.yCoords);var E=function(F){return typeof F=="function"},_=function(F,q){return E(F)?F(q):F},A=l.calcParentsWithoutChildren(S,T),R=function G(F,q,j,J){for(var H=q.length,he=0;he0){var K=void 0;K=j.getGraphManager().add(j.newGraph(),ne),G(K,fe,j,J)}}},N=function(F,q,j){for(var J=0,H=0,he=0;he0?m.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=J/H:E(b.idealEdgeLength)?m.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=50:m.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=b.idealEdgeLength,m.MIN_REPULSION_DIST=g.MIN_REPULSION_DIST=g.DEFAULT_EDGE_LENGTH/10,m.DEFAULT_RADIAL_SEPARATION=g.DEFAULT_EDGE_LENGTH)},O=function(F,q){q.fixedNodeConstraint&&(F.constraints.fixedNodeConstraint=q.fixedNodeConstraint),q.alignmentConstraint&&(F.constraints.alignmentConstraint=q.alignmentConstraint),q.relativePlacementConstraint&&(F.constraints.relativePlacementConstraint=q.relativePlacementConstraint)};b.nestingFactor!=null&&(m.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=g.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=b.nestingFactor),b.gravity!=null&&(m.DEFAULT_GRAVITY_STRENGTH=g.DEFAULT_GRAVITY_STRENGTH=b.gravity),b.numIter!=null&&(m.MAX_ITERATIONS=g.MAX_ITERATIONS=b.numIter),b.gravityRange!=null&&(m.DEFAULT_GRAVITY_RANGE_FACTOR=g.DEFAULT_GRAVITY_RANGE_FACTOR=b.gravityRange),b.gravityCompound!=null&&(m.DEFAULT_COMPOUND_GRAVITY_STRENGTH=g.DEFAULT_COMPOUND_GRAVITY_STRENGTH=b.gravityCompound),b.gravityRangeCompound!=null&&(m.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=g.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=b.gravityRangeCompound),b.initialEnergyOnIncremental!=null&&(m.DEFAULT_COOLING_FACTOR_INCREMENTAL=g.DEFAULT_COOLING_FACTOR_INCREMENTAL=b.initialEnergyOnIncremental),b.tilingCompareBy!=null&&(m.TILING_COMPARE_BY=b.tilingCompareBy),b.quality=="proof"?p.QUALITY=2:p.QUALITY=0,m.NODE_DIMENSIONS_INCLUDE_LABELS=g.NODE_DIMENSIONS_INCLUDE_LABELS=p.NODE_DIMENSIONS_INCLUDE_LABELS=b.nodeDimensionsIncludeLabels,m.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=p.DEFAULT_INCREMENTAL=!b.randomize,m.ANIMATE=g.ANIMATE=p.ANIMATE=b.animate,m.TILE=b.tile,m.TILING_PADDING_VERTICAL=typeof b.tilingPaddingVertical=="function"?b.tilingPaddingVertical.call():b.tilingPaddingVertical,m.TILING_PADDING_HORIZONTAL=typeof b.tilingPaddingHorizontal=="function"?b.tilingPaddingHorizontal.call():b.tilingPaddingHorizontal,m.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=p.DEFAULT_INCREMENTAL=!0,m.PURE_INCREMENTAL=!b.randomize,p.DEFAULT_UNIFORM_LEAF_NODE_SIZES=b.uniformNodeDimensions,b.step=="transformed"&&(m.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,m.ENFORCE_CONSTRAINTS=!1,m.APPLY_LAYOUT=!1),b.step=="enforced"&&(m.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,m.ENFORCE_CONSTRAINTS=!0,m.APPLY_LAYOUT=!1),b.step=="cose"&&(m.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,m.ENFORCE_CONSTRAINTS=!1,m.APPLY_LAYOUT=!0),b.step=="all"&&(b.randomize?m.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:m.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,m.ENFORCE_CONSTRAINTS=!0,m.APPLY_LAYOUT=!0),b.fixedNodeConstraint||b.alignmentConstraint||b.relativePlacementConstraint?m.TREE_REDUCTION_ON_INCREMENTAL=!1:m.TREE_REDUCTION_ON_INCREMENTAL=!0;var P=new u,B=P.newGraphManager();return R(B.addRoot(),l.getTopMostNodes(k),P,b),N(P,B,C),O(P,b),P.runLayout(),I};a.exports={coseLayout:y}}),212:((a,s,o)=>{var l=(function(){function b(w,S){for(var T=0;T0)if(N){var B=f.getTopMostNodes(T.eles.nodes());if(E=f.connectComponents(k,T.eles,B),E.forEach(function(we){var X=we.boundingBox();_.push({x:X.x1+X.w/2,y:X.y1+X.h/2})}),T.randomize&&E.forEach(function(we){T.eles=we,L.push(p(T))}),T.quality=="default"||T.quality=="proof"){var G=k.collection();if(T.tile){var F=new Map,q=[],j=[],J=0,H={nodeIndexes:F,xCoords:q,yCoords:j},he=[];if(E.forEach(function(we,X){we.edges().length==0&&(we.nodes().forEach(function(ze,ye){G.merge(we.nodes()[ye]),ze.isParent()||(H.nodeIndexes.set(we.nodes()[ye].id(),J++),H.xCoords.push(we.nodes()[0].position().x),H.yCoords.push(we.nodes()[0].position().y))}),he.push(X))}),G.length>1){var Z=G.boundingBox();_.push({x:Z.x1+Z.w/2,y:Z.y1+Z.h/2}),E.push(G),L.push(H);for(var fe=he.length-1;fe>=0;fe--)E.splice(he[fe],1),L.splice(he[fe],1),_.splice(he[fe],1)}}E.forEach(function(we,X){T.eles=we,I.push(m(T,L[X])),f.relocateComponent(_[X],I[X],T)})}else E.forEach(function(we,X){f.relocateComponent(_[X],L[X],T)});var ne=new Set;if(E.length>1){var re=[],ee=C.filter(function(we){return we.css("display")=="none"});E.forEach(function(we,X){var ze=void 0;if(T.quality=="draft"&&(ze=L[X].nodeIndexes),we.nodes().not(ee).length>0){var ye={};ye.edges=[],ye.nodes=[];var Fe=void 0;we.nodes().not(ee).forEach(function(Xe){if(T.quality=="draft")if(!Xe.isParent())Fe=ze.get(Xe.id()),ye.nodes.push({x:L[X].xCoords[Fe]-Xe.boundingbox().w/2,y:L[X].yCoords[Fe]-Xe.boundingbox().h/2,width:Xe.boundingbox().w,height:Xe.boundingbox().h});else{var We=f.calcBoundingBox(Xe,L[X].xCoords,L[X].yCoords,ze);ye.nodes.push({x:We.topLeftX,y:We.topLeftY,width:We.width,height:We.height})}else I[X][Xe.id()]&&ye.nodes.push({x:I[X][Xe.id()].getLeft(),y:I[X][Xe.id()].getTop(),width:I[X][Xe.id()].getWidth(),height:I[X][Xe.id()].getHeight()})}),we.edges().forEach(function(Xe){var We=Xe.source(),De=Xe.target();if(We.css("display")!="none"&&De.css("display")!="none")if(T.quality=="draft"){var Oe=ze.get(We.id()),Ie=ze.get(De.id()),Se=[],$e=[];if(We.isParent()){var Y=f.calcBoundingBox(We,L[X].xCoords,L[X].yCoords,ze);Se.push(Y.topLeftX+Y.width/2),Se.push(Y.topLeftY+Y.height/2)}else Se.push(L[X].xCoords[Oe]),Se.push(L[X].yCoords[Oe]);if(De.isParent()){var ce=f.calcBoundingBox(De,L[X].xCoords,L[X].yCoords,ze);$e.push(ce.topLeftX+ce.width/2),$e.push(ce.topLeftY+ce.height/2)}else $e.push(L[X].xCoords[Ie]),$e.push(L[X].yCoords[Ie]);ye.edges.push({startX:Se[0],startY:Se[1],endX:$e[0],endY:$e[1]})}else I[X][We.id()]&&I[X][De.id()]&&ye.edges.push({startX:I[X][We.id()].getCenterX(),startY:I[X][We.id()].getCenterY(),endX:I[X][De.id()].getCenterX(),endY:I[X][De.id()].getCenterY()})}),ye.nodes.length>0&&(re.push(ye),ne.add(X))}});var K=R.packComponents(re,T.randomize).shifts;if(T.quality=="draft")L.forEach(function(we,X){var ze=we.xCoords.map(function(Fe){return Fe+K[X].dx}),ye=we.yCoords.map(function(Fe){return Fe+K[X].dy});we.xCoords=ze,we.yCoords=ye});else{var le=0;ne.forEach(function(we){Object.keys(I[we]).forEach(function(X){var ze=I[we][X];ze.setCenter(ze.getCenterX()+K[le].dx,ze.getCenterY()+K[le].dy)}),le++})}}}else{var O=T.eles.boundingBox();if(_.push({x:O.x1+O.w/2,y:O.y1+O.h/2}),T.randomize){var P=p(T);L.push(P)}T.quality=="default"||T.quality=="proof"?(I.push(m(T,L[0])),f.relocateComponent(_[0],I[0],T)):f.relocateComponent(_[0],L[0],T)}var Q=function(X,ze){if(T.quality=="default"||T.quality=="proof"){typeof X=="number"&&(X=ze);var ye=void 0,Fe=void 0,Xe=X.data("id");return I.forEach(function(De){Xe in De&&(ye={x:De[Xe].getRect().getCenterX(),y:De[Xe].getRect().getCenterY()},Fe=De[Xe])}),T.nodeDimensionsIncludeLabels&&(Fe.labelWidth&&(Fe.labelPosHorizontal=="left"?ye.x+=Fe.labelWidth/2:Fe.labelPosHorizontal=="right"&&(ye.x-=Fe.labelWidth/2)),Fe.labelHeight&&(Fe.labelPosVertical=="top"?ye.y+=Fe.labelHeight/2:Fe.labelPosVertical=="bottom"&&(ye.y-=Fe.labelHeight/2))),ye==null&&(ye={x:X.position("x"),y:X.position("y")}),{x:ye.x,y:ye.y}}else{var We=void 0;return L.forEach(function(De){var Oe=De.nodeIndexes.get(X.id());Oe!=null&&(We={x:De.xCoords[Oe],y:De.yCoords[Oe]})}),We==null&&(We={x:X.position("x"),y:X.position("y")}),{x:We.x,y:We.y}}};if(T.quality=="default"||T.quality=="proof"||T.randomize){var ge=f.calcParentsWithoutChildren(k,C),ie=C.filter(function(we){return we.css("display")=="none"});T.eles=C.not(ie),C.nodes().not(":parent").not(ie).layoutPositions(S,T,Q),ge.length>0&&ge.forEach(function(we){we.position(Q(we))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")}}]),b})();a.exports=v}),657:((a,s,o)=>{var l=o(548),u=o(140).layoutBase.Matrix,h=o(140).layoutBase.SVD,f=function(p){var g=p.cy,m=p.eles,y=m.nodes(),v=m.nodes(":parent"),b=new Map,w=new Map,S=new Map,T=[],k=[],C=[],L=[],D=[],M=[],I=[],E=[],_=void 0,A=void 0,R=1e8,N=1e-9,O=p.piTol,P=p.samplingType,B=p.nodeSeparation,G=void 0,F=function(){for(var ue=0,z=0,se=!1;z=xe;){me=oe[xe++];for(var He=T[me],Ge=0;GePe&&(Pe=D[Ue],je=Ue)}return je},j=function(ue){var z=void 0;if(ue){z=Math.floor(Math.random()*A),_=z;for(var oe=0;oe=1)break;Pe=Ae}for(var He=0;He=1)break;Pe=Ae}for(var Ke=0;Ke0&&(z.isParent()?T[ue].push(S.get(z.id())):T[ue].push(z.id()))})});var ge=function(ue){var z=w.get(ue),se=void 0;b.get(ue).forEach(function(oe){g.getElementById(oe).isParent()?se=S.get(oe):se=oe,T[z].push(se),T[w.get(se)].push(ue)})},ie=!0,we=!1,X=void 0;try{for(var ze=b.keys()[Symbol.iterator](),ye;!(ie=(ye=ze.next()).done);ie=!0){var Fe=ye.value;ge(Fe)}}catch(U){we=!0,X=U}finally{try{!ie&&ze.return&&ze.return()}finally{if(we)throw X}}A=w.size;var Xe=void 0;if(A>2){G=A{var l=o(212),u=function(f){f&&f("layout","fcose",l)};typeof cytoscape<"u"&&u(cytoscape),a.exports=u}),140:(a=>{a.exports=t})},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var o=r[a]={exports:{}};return e[a](o,o.exports,n),o.exports}var i=n(579);return i})()})});var ywe={};gr(ywe,{diagram:()=>Dst});function cwe(t,e,r){t.forEach(n=>{e.add({group:"nodes",data:{type:"service",id:n.id,icon:n.icon,label:n.title,parent:n.in,width:r.getConfigField("iconSize"),height:r.getConfigField("iconSize")},classes:"node-service"})})}function uwe(t,e,r){t.forEach(n=>{e.add({group:"nodes",data:{type:"junction",id:n.id,parent:n.in,width:r.getConfigField("iconSize"),height:r.getConfigField("iconSize")},classes:"node-junction"})})}function hwe(t,e){e.nodes().map(r=>{let n=gv(r);if(n.type==="group")return;n.x=r.position().x,n.y=r.position().y,t.getElementById(n.id).attr("transform","translate("+(n.x||0)+","+(n.y||0)+")")})}function fwe(t,e){t.forEach(r=>{e.add({group:"nodes",data:{type:"group",id:r.id,icon:r.icon,label:r.title,parent:r.in},classes:"node-group"})})}function dwe(t,e){t.forEach(r=>{let{lhsId:n,rhsId:i,lhsInto:a,lhsGroup:s,rhsInto:o,lhsDir:l,rhsDir:u,rhsGroup:h,title:f}=r,d=xq(r.lhsDir,r.rhsDir)?"segments":"straight",p={id:`${n}-${i}`,label:f,source:n,sourceDir:l,sourceArrow:a,sourceGroup:s,sourceEndpoint:l==="L"?"0 50%":l==="R"?"100% 50%":l==="T"?"50% 0":"50% 100%",target:i,targetDir:u,targetArrow:o,targetGroup:h,targetEndpoint:u==="L"?"0 50%":u==="R"?"100% 50%":u==="T"?"50% 0":"50% 100%"};e.add({group:"edges",data:p,classes:d})})}function pwe(t,e,r){let n=x((o,l)=>Object.entries(o).reduce((u,[h,f])=>{let d=0,p=Object.entries(f);if(p.length===1)return u[h]=p[0][1],u;for(let g=0;g{let l={},u={};return Object.entries(o).forEach(([h,[f,d]])=>{let p=t.getNode(h)?.in??"default";l[d]??={},l[d][p]??=[],l[d][p].push(h),u[f]??={},u[f][p]??=[],u[f][p].push(h)}),{horiz:Object.values(n(l,"horizontal")).filter(h=>h.length>1),vert:Object.values(n(u,"vertical")).filter(h=>h.length>1)}}),[a,s]=i.reduce(([o,l],{horiz:u,vert:h})=>[[...o,...u],[...l,...h]],[[],[]]);return{horizontal:a,vertical:s}}function gwe(t,e){let r=[],n=x(a=>`${a[0]},${a[1]}`,"posToStr"),i=x(a=>a.split(",").map(s=>parseInt(s)),"strToPos");return t.forEach(a=>{let s=Object.fromEntries(Object.entries(a).map(([h,f])=>[n(f),h])),o=[n([0,0])],l={},u={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;o.length>0;){let h=o.shift();if(h){l[h]=1;let f=s[h];if(f){let d=i(h);Object.entries(u).forEach(([p,g])=>{let m=n([d[0]+g[0],d[1]+g[1]]),y=s[m];y&&!l[m]&&(o.push(m),r.push({[rwe[p]]:y,[rwe[dst(p)]]:f,gap:1.5*e.getConfigField("iconSize")}))})}}}}),r}function mwe(t,e,r,n,i,{spatialMaps:a,groupAlignments:s}){return new Promise(o=>{let l=Ye("body").append("div").attr("id","cy").attr("style","display:none"),u=yl({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight",label:"data(label)","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${i.getConfigField("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${i.getConfigField("padding")}px`}}],layout:{name:"grid",boundingBox:{x1:0,x2:100,y1:0,y2:100}}});l.remove(),fwe(r,u),cwe(t,u,i),uwe(e,u,i),dwe(n,u);let h=pwe(i,a,s),f=gwe(a,i),d=u.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(p){let[g,m]=p.connectedNodes(),{parent:y}=gv(g),{parent:v}=gv(m);return y===v?1.5*i.getConfigField("iconSize"):.5*i.getConfigField("iconSize")},edgeElasticity(p){let[g,m]=p.connectedNodes(),{parent:y}=gv(g),{parent:v}=gv(m);return y===v?.45:.001},alignmentConstraint:h,relativePlacementConstraint:f});d.one("layoutstop",()=>{function p(g,m,y,v){let b,w,{x:S,y:T}=g,{x:k,y:C}=m;w=(v-T+(S-y)*(T-C)/(S-k))/Math.sqrt(1+Math.pow((T-C)/(S-k),2)),b=Math.sqrt(Math.pow(v-T,2)+Math.pow(y-S,2)-Math.pow(w,2));let L=Math.sqrt(Math.pow(k-S,2)+Math.pow(C-T,2));b=b/L;let D=(k-S)*(v-T)-(C-T)*(y-S);switch(!0){case D>=0:D=1;break;case D<0:D=-1;break}let M=(k-S)*(y-S)+(C-T)*(v-T);switch(!0){case M>=0:M=1;break;case M<0:M=-1;break}return w=Math.abs(w)*D,b=b*M,{distances:w,weights:b}}x(p,"getSegmentWeights"),u.startBatch();for(let g of Object.values(u.edges()))if(g.data?.()){let{x:m,y}=g.source().position(),{x:v,y:b}=g.target().position();if(m!==v&&y!==b){let w=g.sourceEndpoint(),S=g.targetEndpoint(),{sourceDir:T}=awe(g),[k,C]=sp(T)?[w.x,S.y]:[S.x,w.y],{weights:L,distances:D}=p(w,S,k,C);g.style("segment-distances",D),g.style("segment-weights",L)}}u.endBatch(),d.run()}),d.run(),u.ready(p=>{te.info("Ready",p),o(u)})})}var lwe,rwe,nwe,vA,dst,iwe,zs,sp,xq,pst,gst,vq,mst,yst,vst,xst,bst,awe,gv,wst,swe,Tst,owe,kst,Est,pv,P3,Sst,Cst,Ast,_st,Lst,Rst,Dst,vwe=$(()=>{Hc();Aa();L0();bn();Er();lr();Zd();_M();lwe=ma(twe(),1);pr();rwe={L:"left",R:"right",T:"top",B:"bottom"},nwe={L:x(t=>`${t},${t/2} 0,${t} 0,0`,"L"),R:x(t=>`0,${t/2} ${t},0 ${t},${t}`,"R"),T:x(t=>`0,0 ${t},0 ${t/2},${t}`,"T"),B:x(t=>`${t/2},0 ${t},${t} 0,${t}`,"B")},vA={L:x((t,e)=>t-e+2,"L"),R:x((t,e)=>t-2,"R"),T:x((t,e)=>t-e+2,"T"),B:x((t,e)=>t-2,"B")},dst=x(function(t){return zs(t)?t==="L"?"R":"L":t==="T"?"B":"T"},"getOppositeArchitectureDirection"),iwe=x(function(t){let e=t;return e==="L"||e==="R"||e==="T"||e==="B"},"isArchitectureDirection"),zs=x(function(t){let e=t;return e==="L"||e==="R"},"isArchitectureDirectionX"),sp=x(function(t){let e=t;return e==="T"||e==="B"},"isArchitectureDirectionY"),xq=x(function(t,e){let r=zs(t)&&sp(e),n=sp(t)&&zs(e);return r||n},"isArchitectureDirectionXY"),pst=x(function(t){let e=t[0],r=t[1],n=zs(e)&&sp(r),i=sp(e)&&zs(r);return n||i},"isArchitecturePairXY"),gst=x(function(t){return t!=="LL"&&t!=="RR"&&t!=="TT"&&t!=="BB"},"isValidArchitectureDirectionPair"),vq=x(function(t,e){let r=`${t}${e}`;return gst(r)?r:void 0},"getArchitectureDirectionPair"),mst=x(function([t,e],r){let n=r[0],i=r[1];return zs(n)?sp(i)?[t+(n==="L"?-1:1),e+(i==="T"?1:-1)]:[t+(n==="L"?-1:1),e]:zs(i)?[t+(i==="L"?1:-1),e+(n==="T"?1:-1)]:[t,e+(n==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),yst=x(function(t){return t==="LT"||t==="TL"?[1,1]:t==="BL"||t==="LB"?[1,-1]:t==="BR"||t==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),vst=x(function(t,e){return xq(t,e)?"bend":zs(t)?"horizontal":"vertical"},"getArchitectureDirectionAlignment"),xst=x(function(t){return t.type==="service"},"isArchitectureService"),bst=x(function(t){return t.type==="junction"},"isArchitectureJunction"),awe=x(t=>t.data(),"edgeData"),gv=x(t=>t.data(),"nodeData"),wst=hr.architecture,swe=class{constructor(){this.nodes={},this.groups={},this.edges=[],this.registeredIds={},this.elements={},this.setAccTitle=Nr,this.getAccTitle=Ir,this.setDiagramTitle=Vr,this.getDiagramTitle=Pr,this.getAccDescription=Or,this.setAccDescription=Mr,this.clear()}static{x(this,"ArchitectureDB")}clear(){this.nodes={},this.groups={},this.edges=[],this.registeredIds={},this.dataStructures=void 0,this.elements={},kr()}addService({id:t,icon:e,in:r,title:n,iconText:i}){if(this.registeredIds[t]!==void 0)throw new Error(`The service id [${t}] is already in use by another ${this.registeredIds[t]}`);if(r!==void 0){if(t===r)throw new Error(`The service [${t}] cannot be placed within itself`);if(this.registeredIds[r]===void 0)throw new Error(`The service [${t}]'s parent does not exist. Please make sure the parent is created before this service`);if(this.registeredIds[r]==="node")throw new Error(`The service [${t}]'s parent is not a group`)}this.registeredIds[t]="node",this.nodes[t]={id:t,type:"service",icon:e,iconText:i,title:n,edges:[],in:r}}getServices(){return Object.values(this.nodes).filter(xst)}addJunction({id:t,in:e}){this.registeredIds[t]="node",this.nodes[t]={id:t,type:"junction",edges:[],in:e}}getJunctions(){return Object.values(this.nodes).filter(bst)}getNodes(){return Object.values(this.nodes)}getNode(t){return this.nodes[t]??null}addGroup({id:t,icon:e,in:r,title:n}){if(this.registeredIds?.[t]!==void 0)throw new Error(`The group id [${t}] is already in use by another ${this.registeredIds[t]}`);if(r!==void 0){if(t===r)throw new Error(`The group [${t}] cannot be placed within itself`);if(this.registeredIds?.[r]===void 0)throw new Error(`The group [${t}]'s parent does not exist. Please make sure the parent is created before this group`);if(this.registeredIds?.[r]==="node")throw new Error(`The group [${t}]'s parent is not a group`)}this.registeredIds[t]="group",this.groups[t]={id:t,icon:e,title:n,in:r}}getGroups(){return Object.values(this.groups)}addEdge({lhsId:t,rhsId:e,lhsDir:r,rhsDir:n,lhsInto:i,rhsInto:a,lhsGroup:s,rhsGroup:o,title:l}){if(!iwe(r))throw new Error(`Invalid direction given for left hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${String(r)}`);if(!iwe(n))throw new Error(`Invalid direction given for right hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${String(n)}`);if(this.nodes[t]===void 0&&this.groups[t]===void 0)throw new Error(`The left-hand id [${t}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(this.nodes[e]===void 0&&this.groups[e]===void 0)throw new Error(`The right-hand id [${e}] does not yet exist. Please create the service/group before declaring an edge to it.`);let u=this.nodes[t].in,h=this.nodes[e].in;if(s&&u&&h&&u==h)throw new Error(`The left-hand id [${t}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(o&&u&&h&&u==h)throw new Error(`The right-hand id [${e}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);let f={lhsId:t,lhsDir:r,lhsInto:i,lhsGroup:s,rhsId:e,rhsDir:n,rhsInto:a,rhsGroup:o,title:l};this.edges.push(f),this.nodes[t]&&this.nodes[e]&&(this.nodes[t].edges.push(this.edges[this.edges.length-1]),this.nodes[e].edges.push(this.edges[this.edges.length-1]))}getEdges(){return this.edges}getDataStructures(){if(this.dataStructures===void 0){let t={},e=Object.entries(this.nodes).reduce((o,[l,u])=>(o[l]=u.edges.reduce((h,f)=>{let d=this.getNode(f.lhsId)?.in,p=this.getNode(f.rhsId)?.in;if(d&&p&&d!==p){let g=vst(f.lhsDir,f.rhsDir);g!=="bend"&&(t[d]??={},t[d][p]=g,t[p]??={},t[p][d]=g)}if(f.lhsId===l){let g=vq(f.lhsDir,f.rhsDir);g&&(h[g]=f.rhsId)}else{let g=vq(f.rhsDir,f.lhsDir);g&&(h[g]=f.lhsId)}return h},{}),o),{}),r=Object.keys(e)[0],n={[r]:1},i=Object.keys(e).reduce((o,l)=>l===r?o:{...o,[l]:1},{}),a=x(o=>{let l={[o]:[0,0]},u=[o];for(;u.length>0;){let h=u.shift();if(h){n[h]=1,delete i[h];let f=e[h],[d,p]=l[h];Object.entries(f).forEach(([g,m])=>{n[m]||(l[m]=mst([d,p],g),u.push(m))})}}return l},"BFS"),s=[a(r)];for(;Object.keys(i).length>0;)s.push(a(Object.keys(i)[0]));this.dataStructures={adjList:e,spatialMaps:s,groupAlignments:t}}return this.dataStructures}setElementForId(t,e){this.elements[t]=e}getElementById(t){return this.elements[t]}getConfig(){return ui({...wst,...fr().architecture})}getConfigField(t){return this.getConfig()[t]}},Tst=x((t,e)=>{Mo(t,e),t.groups.map(r=>e.addGroup(r)),t.services.map(r=>e.addService({...r,type:"service"})),t.junctions.map(r=>e.addJunction({...r,type:"junction"})),t.edges.map(r=>e.addEdge(r))},"populateDb"),owe={parser:{yy:void 0},parse:x(async t=>{let e=await Bs("architecture",t);te.debug(e);let r=owe.parser?.yy;if(!(r instanceof swe))throw new Error("parser.parser?.yy was not a ArchitectureDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Tst(e,r)},"parse")},kst=x(t=>`
.edge {
stroke-width: ${t.archEdgeWidth};
stroke: ${t.archEdgeColor};
fill: none;
}
.arrow {
fill: ${t.archEdgeArrowColor};
}
.node-bkg {
fill: none;
stroke: ${t.archGroupBorderColor};
stroke-width: ${t.archGroupBorderWidth};
stroke-dasharray: 8;
}
.node-icon-text {
display: flex;
align-items: center;
}
.node-icon-text > div {
color: #fff;
margin: 1px;
height: fit-content;
text-align: center;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
}
`,"getStyles"),Est=kst,pv=x(t=>`${t}`,"wrapIcon"),P3={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:pv('')},server:{body:pv('')},disk:{body:pv('')},internet:{body:pv('')},cloud:{body:pv('')},unknown:vR,blank:{body:pv("")}}},Sst=x(async function(t,e,r){let n=r.getConfigField("padding"),i=r.getConfigField("iconSize"),a=i/2,s=i/6,o=s/2;await Promise.all(e.edges().map(async l=>{let{source:u,sourceDir:h,sourceArrow:f,sourceGroup:d,target:p,targetDir:g,targetArrow:m,targetGroup:y,label:v}=awe(l),{x:b,y:w}=l[0].sourceEndpoint(),{x:S,y:T}=l[0].midpoint(),{x:k,y:C}=l[0].targetEndpoint(),L=n+4;if(d&&(zs(h)?b+=h==="L"?-L:L:w+=h==="T"?-L:L+18),y&&(zs(g)?k+=g==="L"?-L:L:C+=g==="T"?-L:L+18),!d&&r.getNode(u)?.type==="junction"&&(zs(h)?b+=h==="L"?a:-a:w+=h==="T"?a:-a),!y&&r.getNode(p)?.type==="junction"&&(zs(g)?k+=g==="L"?a:-a:C+=g==="T"?a:-a),l[0]._private.rscratch){let D=t.insert("g");if(D.insert("path").attr("d",`M ${b},${w} L ${S},${T} L${k},${C} `).attr("class","edge").attr("id",eu(u,p,{prefix:"L"})),f){let M=zs(h)?vA[h](b,s):b-o,I=sp(h)?vA[h](w,s):w-o;D.insert("polygon").attr("points",nwe[h](s)).attr("transform",`translate(${M},${I})`).attr("class","arrow")}if(m){let M=zs(g)?vA[g](k,s):k-o,I=sp(g)?vA[g](C,s):C-o;D.insert("polygon").attr("points",nwe[g](s)).attr("transform",`translate(${M},${I})`).attr("class","arrow")}if(v){let M=xq(h,g)?"XY":zs(h)?"X":"Y",I=0;M==="X"?I=Math.abs(b-k):M==="Y"?I=Math.abs(w-C)/1.5:I=Math.abs(b-k)/2;let E=D.append("g");if(await Ca(E,v,{useHtmlLabels:!1,width:I,classes:"architecture-service-label"},Te()),E.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),M==="X")E.attr("transform","translate("+S+", "+T+")");else if(M==="Y")E.attr("transform","translate("+S+", "+T+") rotate(-90)");else if(M==="XY"){let _=vq(h,g);if(_&&pst(_)){let A=E.node().getBoundingClientRect(),[R,N]=yst(_);E.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*R*N*45})`);let O=E.node().getBoundingClientRect();E.attr("transform",`
translate(${S}, ${T-A.height/2})
translate(${R*O.width/2}, ${N*O.height/2})
rotate(${-1*R*N*45}, 0, ${A.height/2})
`)}}}}}))},"drawEdges"),Cst=x(async function(t,e,r){let i=r.getConfigField("padding")*.75,a=r.getConfigField("fontSize"),o=r.getConfigField("iconSize")/2;await Promise.all(e.nodes().map(async l=>{let u=gv(l);if(u.type==="group"){let{h,w:f,x1:d,y1:p}=l.boundingBox(),g=t.append("rect");g.attr("id",`group-${u.id}`).attr("x",d+o).attr("y",p+o).attr("width",f).attr("height",h).attr("class","node-bkg");let m=t.append("g"),y=d,v=p;if(u.icon){let b=m.append("g");b.html(`${await ru(u.icon,{height:i,width:i,fallbackPrefix:P3.prefix})}`),b.attr("transform","translate("+(y+o+1)+", "+(v+o+1)+")"),y+=i,v+=a/2-1-2}if(u.label){let b=m.append("g");await Ca(b,u.label,{useHtmlLabels:!1,width:f,classes:"architecture-service-label"},Te()),b.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),b.attr("transform","translate("+(y+o+4)+", "+(v+o+2)+")")}r.setElementForId(u.id,g)}}))},"drawGroups"),Ast=x(async function(t,e,r){let n=Te();for(let i of r){let a=e.append("g"),s=t.getConfigField("iconSize");if(i.title){let h=a.append("g");await Ca(h,i.title,{useHtmlLabels:!1,width:s*1.5,classes:"architecture-service-label"},n),h.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),h.attr("transform","translate("+s/2+", "+s+")")}let o=a.append("g");if(i.icon)o.html(`${await ru(i.icon,{height:s,width:s,fallbackPrefix:P3.prefix})}`);else if(i.iconText){o.html(`${await ru("blank",{height:s,width:s,fallbackPrefix:P3.prefix})}`);let d=o.append("g").append("foreignObject").attr("width",s).attr("height",s).append("div").attr("class","node-icon-text").attr("style",`height: ${s}px;`).append("div").html(ur(i.iconText,n)),p=parseInt(window.getComputedStyle(d.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;d.attr("style",`-webkit-line-clamp: ${Math.floor((s-2)/p)};`)}else o.append("path").attr("class","node-bkg").attr("id","node-"+i.id).attr("d",`M0 ${s} v${-s} q0,-5 5,-5 h${s} q5,0 5,5 v${s} H0 Z`);a.attr("id",`service-${i.id}`).attr("class","architecture-service");let{width:l,height:u}=a.node().getBBox();i.width=l,i.height=u,t.setElementForId(i.id,a)}return 0},"drawServices"),_st=x(function(t,e,r){r.forEach(n=>{let i=e.append("g"),a=t.getConfigField("iconSize");i.append("g").append("rect").attr("id","node-"+n.id).attr("fill-opacity","0").attr("width",a).attr("height",a),i.attr("class","architecture-junction");let{width:o,height:l}=i._groups[0][0].getBBox();i.width=o,i.height=l,t.setElementForId(n.id,i)})},"drawJunctions");zT([{name:P3.prefix,icons:P3}]);yl.use(lwe.default);x(cwe,"addServices");x(uwe,"addJunctions");x(hwe,"positionNodes");x(fwe,"addGroups");x(dwe,"addEdges");x(pwe,"getAlignments");x(gwe,"getRelativeConstraints");x(mwe,"layoutArchitecture");Lst=x(async(t,e,r,n)=>{let i=n.db,a=i.getServices(),s=i.getJunctions(),o=i.getGroups(),l=i.getEdges(),u=i.getDataStructures(),h=ta(e),f=h.append("g");f.attr("class","architecture-edges");let d=h.append("g");d.attr("class","architecture-services");let p=h.append("g");p.attr("class","architecture-groups"),await Ast(i,d,a),_st(i,d,s);let g=await mwe(a,s,o,l,i,u);await Sst(f,g,i),await Cst(p,g,i),hwe(i,g),eh(void 0,h,i.getConfigField("padding"),i.getConfigField("useMaxWidth"))},"draw"),Rst={draw:Lst},Dst={parser:owe,get db(){return new swe},renderer:Rst,styles:Est}});var Twe={};gr(Twe,{diagram:()=>Gst});function bwe(t){if(!t.length)return[];let e=[],r=[];return t.forEach(n=>{let i={name:n.name,children:n.type==="Leaf"?void 0:[]};for(i.classSelector=n?.classSelector,n?.cssCompiledStyles&&(i.cssCompiledStyles=[n.cssCompiledStyles]),n.type==="Leaf"&&n.value!==void 0&&(i.value=n.value);r.length>0&&r[r.length-1].level>=n.level;)r.pop();if(r.length===0)e.push(i);else{let a=r[r.length-1].node;a.children?a.children.push(i):a.children=[i]}n.type!=="Leaf"&&r.push({node:i,level:n.level})}),e}var xwe,Nst,Ist,wwe,Mst,mv,B3,Ost,Pst,Bst,Fst,$st,zst,Gst,kwe=$(()=>{Hc();Sl();bs();L0();bn();Er();lr();Zd();pr();xwe=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=Nr,this.getAccTitle=Ir,this.setDiagramTitle=Vr,this.getDiagramTitle=Pr,this.getAccDescription=Or,this.setAccDescription=Mr}static{x(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){let t=hr,e=fr();return ui({...t.treemap,...e.treemap??{}})}addNode(t,e){this.nodes.push(t),this.levels.set(t,e),e===0&&(this.outerNodes.push(t),this.root??=t)}getRoot(){return{name:"",children:this.outerNodes}}addClass(t,e){let r=this.classes.get(t)??{id:t,styles:[],textStyles:[]},n=e.replace(/\\,/g,"\xA7\xA7\xA7").replace(/,/g,";").replace(/ยงยงยง/g,",").split(";");n&&n.forEach(i=>{U2(i)&&(r?.textStyles?r.textStyles.push(i):r.textStyles=[i]),r?.styles?r.styles.push(i):r.styles=[i]}),this.classes.set(t,r)}getClasses(){return this.classes}getStylesForClass(t){return this.classes.get(t)?.styles??[]}clear(){kr(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};x(bwe,"buildHierarchy");Nst=x((t,e)=>{Mo(t,e);let r=[];for(let a of t.TreemapRows??[])a.$type==="ClassDefStatement"&&e.addClass(a.className??"",a.styleText??"");for(let a of t.TreemapRows??[]){let s=a.item;if(!s)continue;let o=a.indent?parseInt(a.indent):0,l=Ist(s),u=s.classSelector?e.getStylesForClass(s.classSelector):[],h=u.length>0?u.join(";"):void 0,f={level:o,name:l,type:s.$type,value:s.value,classSelector:s.classSelector,cssCompiledStyles:h};r.push(f)}let n=bwe(r),i=x((a,s)=>{for(let o of a)e.addNode(o,s),o.children&&o.children.length>0&&i(o.children,s+1)},"addNodesRecursively");i(n,0)},"populate"),Ist=x(t=>t.name?String(t.name):"","getItemName"),wwe={parser:{yy:void 0},parse:x(async t=>{try{let r=await Bs("treemap",t);te.debug("Treemap AST:",r);let n=wwe.parser?.yy;if(!(n instanceof xwe))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.");Nst(r,n)}catch(e){throw te.error("Error parsing treemap:",e),e}},"parse")},Mst=10,mv=10,B3=25,Ost=x((t,e,r,n)=>{let i=n.db,a=i.getConfig(),s=a.padding??Mst,o=i.getDiagramTitle(),l=i.getRoot(),{themeVariables:u}=fr();if(!l)return;let h=o?30:0,f=ta(e),d=a.nodeWidth?a.nodeWidth*mv:960,p=a.nodeHeight?a.nodeHeight*mv:500,g=d,m=p+h;f.attr("viewBox",`0 0 ${g} ${m}`),xn(f,m,g,a.useMaxWidth);let y;try{let A=a.valueFormat||",";if(A==="$0,0")y=x(R=>"$"+zc(",")(R),"valueFormat");else if(A.startsWith("$")&&A.includes(",")){let R=/\.\d+/.exec(A),N=R?R[0]:"";y=x(O=>"$"+zc(","+N)(O),"valueFormat")}else if(A.startsWith("$")){let R=A.substring(1);y=x(N=>"$"+zc(R||"")(N),"valueFormat")}else y=zc(A)}catch(A){te.error("Error creating format function:",A),y=zc(",")}let v=ko().range(["transparent",u.cScale0,u.cScale1,u.cScale2,u.cScale3,u.cScale4,u.cScale5,u.cScale6,u.cScale7,u.cScale8,u.cScale9,u.cScale10,u.cScale11]),b=ko().range(["transparent",u.cScalePeer0,u.cScalePeer1,u.cScalePeer2,u.cScalePeer3,u.cScalePeer4,u.cScalePeer5,u.cScalePeer6,u.cScalePeer7,u.cScalePeer8,u.cScalePeer9,u.cScalePeer10,u.cScalePeer11]),w=ko().range([u.cScaleLabel0,u.cScaleLabel1,u.cScaleLabel2,u.cScaleLabel3,u.cScaleLabel4,u.cScaleLabel5,u.cScaleLabel6,u.cScaleLabel7,u.cScaleLabel8,u.cScaleLabel9,u.cScaleLabel10,u.cScaleLabel11]);o&&f.append("text").attr("x",g/2).attr("y",h/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(o);let S=f.append("g").attr("transform",`translate(0, ${h})`).attr("class","treemapContainer"),T=em(l).sum(A=>A.value??0).sort((A,R)=>(R.value??0)-(A.value??0)),C=nL().size([d,p]).paddingTop(A=>A.children&&A.children.length>0?B3+mv:0).paddingInner(s).paddingLeft(A=>A.children&&A.children.length>0?mv:0).paddingRight(A=>A.children&&A.children.length>0?mv:0).paddingBottom(A=>A.children&&A.children.length>0?mv:0).round(!0)(T),L=C.descendants().filter(A=>A.children&&A.children.length>0),D=S.selectAll(".treemapSection").data(L).enter().append("g").attr("class","treemapSection").attr("transform",A=>`translate(${A.x0},${A.y0})`);D.append("rect").attr("width",A=>A.x1-A.x0).attr("height",B3).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",A=>A.depth===0?"display: none;":""),D.append("clipPath").attr("id",(A,R)=>`clip-section-${e}-${R}`).append("rect").attr("width",A=>Math.max(0,A.x1-A.x0-12)).attr("height",B3),D.append("rect").attr("width",A=>A.x1-A.x0).attr("height",A=>A.y1-A.y0).attr("class",(A,R)=>`treemapSection section${R}`).attr("fill",A=>v(A.data.name)).attr("fill-opacity",.6).attr("stroke",A=>b(A.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",A=>{if(A.depth===0)return"display: none;";let R=Rt({cssCompiledStyles:A.data.cssCompiledStyles});return R.nodeStyles+";"+R.borderStyles.join(";")}),D.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",B3/2).attr("dominant-baseline","middle").text(A=>A.depth===0?"":A.data.name).attr("font-weight","bold").attr("style",A=>{if(A.depth===0)return"display: none;";let R="dominant-baseline: middle; font-size: 12px; fill:"+w(A.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",N=Rt({cssCompiledStyles:A.data.cssCompiledStyles});return R+N.labelStyles.replace("color:","fill:")}).each(function(A){if(A.depth===0)return;let R=Ye(this),N=A.data.name;R.text(N);let O=A.x1-A.x0,P=6,B;a.showValues!==!1&&A.value?B=O-10-30-10-P:B=O-P-6;let F=Math.max(15,B),q=R.node();if(q.getComputedTextLength()>F){let H=N;for(;H.length>0;){if(H=N.substring(0,H.length-1),H.length===0){R.text("..."),q.getComputedTextLength()>F&&R.text("");break}if(R.text(H+"..."),q.getComputedTextLength()<=F)break}}}),a.showValues!==!1&&D.append("text").attr("class","treemapSectionValue").attr("x",A=>A.x1-A.x0-10).attr("y",B3/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(A=>A.value?y(A.value):"").attr("font-style","italic").attr("style",A=>{if(A.depth===0)return"display: none;";let R="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+w(A.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",N=Rt({cssCompiledStyles:A.data.cssCompiledStyles});return R+N.labelStyles.replace("color:","fill:")});let M=C.leaves(),I=S.selectAll(".treemapLeafGroup").data(M).enter().append("g").attr("class",(A,R)=>`treemapNode treemapLeafGroup leaf${R}${A.data.classSelector?` ${A.data.classSelector}`:""}x`).attr("transform",A=>`translate(${A.x0},${A.y0})`);I.append("rect").attr("width",A=>A.x1-A.x0).attr("height",A=>A.y1-A.y0).attr("class","treemapLeaf").attr("fill",A=>A.parent?v(A.parent.data.name):v(A.data.name)).attr("style",A=>Rt({cssCompiledStyles:A.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",A=>A.parent?v(A.parent.data.name):v(A.data.name)).attr("stroke-width",3),I.append("clipPath").attr("id",(A,R)=>`clip-${e}-${R}`).append("rect").attr("width",A=>Math.max(0,A.x1-A.x0-4)).attr("height",A=>Math.max(0,A.y1-A.y0-4)),I.append("text").attr("class","treemapLabel").attr("x",A=>(A.x1-A.x0)/2).attr("y",A=>(A.y1-A.y0)/2).attr("style",A=>{let R="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+w(A.data.name)+";",N=Rt({cssCompiledStyles:A.data.cssCompiledStyles});return R+N.labelStyles.replace("color:","fill:")}).attr("clip-path",(A,R)=>`url(#clip-${e}-${R})`).text(A=>A.data.name).each(function(A){let R=Ye(this),N=A.x1-A.x0,O=A.y1-A.y0,P=R.node(),B=4,G=N-2*B,F=O-2*B;if(G<10||F<10){R.style("display","none");return}let q=parseInt(R.style("font-size"),10),j=8,J=28,H=.6,he=6,Z=2;for(;P.getComputedTextLength()>G&&q>j;)q--,R.style("font-size",`${q}px`);let fe=Math.max(he,Math.min(J,Math.round(q*H))),ne=q+Z+fe;for(;ne>F&&q>j&&(q--,fe=Math.max(he,Math.min(J,Math.round(q*H))),!(feF;R.style("font-size",`${q}px`),(P.getComputedTextLength()>G||q(R.x1-R.x0)/2).attr("y",function(R){return(R.y1-R.y0)/2}).attr("style",R=>{let N="text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+w(R.data.name)+";",O=Rt({cssCompiledStyles:R.data.cssCompiledStyles});return N+O.labelStyles.replace("color:","fill:")}).attr("clip-path",(R,N)=>`url(#clip-${e}-${N})`).text(R=>R.value?y(R.value):"").each(function(R){let N=Ye(this),O=this.parentNode;if(!O){N.style("display","none");return}let P=Ye(O).select(".treemapLabel");if(P.empty()||P.style("display")==="none"){N.style("display","none");return}let B=parseFloat(P.style("font-size")),G=28,F=.6,q=6,j=2,J=Math.max(q,Math.min(G,Math.round(B*F)));N.style("font-size",`${J}px`);let he=(R.y1-R.y0)/2+B/2+j;N.attr("y",he);let Z=R.x1-R.x0,re=R.y1-R.y0-4,ee=Z-8;N.node().getComputedTextLength()>ee||he+J>re||J{let e=ui(Fst,t);return`
.treemapNode.section {
stroke: ${e.sectionStrokeColor};
stroke-width: ${e.sectionStrokeWidth};
fill: ${e.sectionFillColor};
}
.treemapNode.leaf {
stroke: ${e.leafStrokeColor};
stroke-width: ${e.leafStrokeWidth};
fill: ${e.leafFillColor};
}
.treemapLabel {
fill: ${e.labelColor};
font-size: ${e.labelFontSize};
}
.treemapValue {
fill: ${e.valueColor};
font-size: ${e.valueFontSize};
}
.treemapTitle {
fill: ${e.titleColor};
font-size: ${e.titleFontSize};
}
`},"getStyles"),zst=$st,Gst={parser:wwe,get db(){return new xwe},renderer:Bst,styles:zst}});LA();Hc();q2();xl();cl();Co();Qs();xs();bs();Aa();bn();Er();lr();gR();pr();var fS="comm",dS="rule",pS="decl";var zpe="@import";var Gpe="@namespace",qpe="@keyframes";var Vpe="@layer";var OM=Math.abs,db=String.fromCharCode;function gS(t){return t.trim()}function pb(t,e,r){return t.replace(e,r)}function Upe(t,e,r){return t.indexOf(e,r)}function pd(t,e){return t.charCodeAt(e)|0}function gd(t,e,r){return t.slice(e,r)}function Io(t){return t.length}function Wpe(t){return t.length}function _1(t,e){return e.push(t),t}var mS=1,L1=1,Hpe=0,bl=0,Oi=0,D1="";function yS(t,e,r,n,i,a,s,o){return{value:t,root:e,parent:r,type:n,props:i,children:a,line:mS,column:L1,length:s,return:"",siblings:o}}function Ype(){return Oi}function Xpe(){return Oi=bl>0?pd(D1,--bl):0,L1--,Oi===10&&(L1=1,mS--),Oi}function wl(){return Oi=bl2||R1(Oi)>3?"":" "}function Qpe(t,e){for(;--e&&wl()&&!(Oi<48||Oi>102||Oi>57&&Oi<65||Oi>70&&Oi<97););return vS(t,gb()+(e<6&&Ch()==32&&wl()==32))}function PM(t){for(;wl();)switch(Oi){case t:return bl;case 34:case 39:t!==34&&t!==39&&PM(Oi);break;case 40:t===41&&PM(t);break;case 92:wl();break}return bl}function Jpe(t,e){for(;wl()&&t+Oi!==57;)if(t+Oi===84&&Ch()===47)break;return"/*"+vS(e,bl-1)+"*"+db(t===47?t:wl())}function e0e(t){for(;!R1(Ch());)wl();return vS(t,bl)}function n0e(t){return Kpe(bS("",null,null,null,[""],t=jpe(t),0,[0],t))}function bS(t,e,r,n,i,a,s,o,l){for(var u=0,h=0,f=s,d=0,p=0,g=0,m=1,y=1,v=1,b=0,w="",S=i,T=a,k=n,C=w;y;)switch(g=b,b=wl()){case 40:if(g!=108&&pd(C,f-1)==58){Upe(C+=pb(xS(b),"&","&\f"),"&\f",OM(u?o[u-1]:0))!=-1&&(v=-1);break}case 34:case 39:case 91:C+=xS(b);break;case 9:case 10:case 13:case 32:C+=Zpe(g);break;case 92:C+=Qpe(gb()-1,7);continue;case 47:switch(Ch()){case 42:case 47:_1(pHe(Jpe(wl(),gb()),e,r,l),l),(R1(g||1)==5||R1(Ch()||1)==5)&&Io(C)&&gd(C,-1,void 0)!==" "&&(C+=" ");break;default:C+="/"}break;case 123*m:o[u++]=Io(C)*v;case 125*m:case 59:case 0:switch(b){case 0:case 125:y=0;case 59+h:v==-1&&(C=pb(C,/\f/g,"")),p>0&&(Io(C)-f||m===0&&g===47)&&_1(p>32?r0e(C+";",n,r,f-1,l):r0e(pb(C," ","")+";",n,r,f-2,l),l);break;case 59:C+=";";default:if(_1(k=t0e(C,e,r,u,h,i,o,w,S=[],T=[],f,a),a),b===123)if(h===0)bS(C,e,k,k,S,a,f,o,T);else{switch(d){case 99:if(pd(C,3)===110)break;case 108:if(pd(C,2)===97)break;default:h=0;case 100:case 109:case 115:}h?bS(t,k,k,n&&_1(t0e(t,k,k,0,0,i,o,w,i,S=[],f,T),T),i,T,f,o,n?S:T):bS(C,k,k,k,[""],T,0,o,T)}}u=h=p=0,m=v=1,w=C="",f=s;break;case 58:f=1+Io(C),p=g;default:if(m<1){if(b==123)--m;else if(b==125&&m++==0&&Xpe()==125)continue}switch(C+=db(b),b*m){case 38:v=h>0?1:(C+="\f",-1);break;case 44:o[u++]=(Io(C)-1)*v,v=1;break;case 64:Ch()===45&&(C+=xS(wl())),d=Ch(),h=f=Io(w=C+=e0e(gb())),b++;break;case 45:g===45&&Io(C)==2&&(m=0)}}return a}function t0e(t,e,r,n,i,a,s,o,l,u,h,f){for(var d=i-1,p=i===0?a:[""],g=Wpe(p),m=0,y=0,v=0;m0?p[b]+" "+w:pb(w,/&\f/g,p[b])))&&(l[v++]=S);return yS(t,e,r,i===0?dS:o,l,u,h,f)}function pHe(t,e,r,n){return yS(t,e,r,fS,db(Ype()),gd(t,2,-2),0,n)}function r0e(t,e,r,n,i){return yS(t,e,r,pS,gd(t,0,n),gd(t,n+1,-1),n,i)}function wS(t,e){for(var r="",n=0;n/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),Vst=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(v0e(),y0e));return{id:_we,diagram:t}},"loader"),Ust={id:_we,detector:qst,loader:Vst},Wst=Ust,Lwe="flowchart",Hst=x((t,e)=>e?.flowchart?.defaultRenderer==="dagre-wrapper"||e?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(t),"detector"),Yst=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(MS(),IS));return{id:Lwe,diagram:t}},"loader"),Xst={id:Lwe,detector:Hst,loader:Yst},jst=Xst,Rwe="flowchart-v2",Kst=x((t,e)=>e?.flowchart?.defaultRenderer==="dagre-d3"?!1:(e?.flowchart?.defaultRenderer==="elk"&&(e.layout="elk"),/^\s*graph/.test(t)&&e?.flowchart?.defaultRenderer==="dagre-wrapper"?!0:/^\s*flowchart/.test(t)),"detector"),Zst=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(MS(),IS));return{id:Rwe,diagram:t}},"loader"),Qst={id:Rwe,detector:Kst,loader:Zst},Jst=Qst,Dwe="er",eot=x(t=>/^\s*erDiagram/.test(t),"detector"),tot=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(k0e(),T0e));return{id:Dwe,diagram:t}},"loader"),rot={id:Dwe,detector:eot,loader:tot},not=rot,Nwe="gitGraph",iot=x(t=>/^\s*gitGraph/.test(t),"detector"),aot=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Wxe(),Uxe));return{id:Nwe,diagram:t}},"loader"),sot={id:Nwe,detector:iot,loader:aot},oot=sot,Iwe="gantt",lot=x(t=>/^\s*gantt/.test(t),"detector"),cot=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(dbe(),fbe));return{id:Iwe,diagram:t}},"loader"),uot={id:Iwe,detector:lot,loader:cot},hot=uot,Mwe="info",fot=x(t=>/^\s*info/.test(t),"detector"),dot=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(gbe(),pbe));return{id:Mwe,diagram:t}},"loader"),pot={id:Mwe,detector:fot,loader:dot},Owe="pie",got=x(t=>/^\s*pie/.test(t),"detector"),mot=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(xbe(),vbe));return{id:Owe,diagram:t}},"loader"),yot={id:Owe,detector:got,loader:mot},Pwe="quadrantChart",vot=x(t=>/^\s*quadrantChart/.test(t),"detector"),xot=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Pbe(),Obe));return{id:Pwe,diagram:t}},"loader"),bot={id:Pwe,detector:vot,loader:xot},wot=bot,Bwe="xychart",Tot=x(t=>/^\s*xychart(-beta)?/.test(t),"detector"),kot=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(i4e(),n4e));return{id:Bwe,diagram:t}},"loader"),Eot={id:Bwe,detector:Tot,loader:kot},Sot=Eot,Fwe="requirement",Cot=x(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),Aot=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(o4e(),s4e));return{id:Fwe,diagram:t}},"loader"),_ot={id:Fwe,detector:Cot,loader:Aot},Lot=_ot,$we="sequence",Rot=x(t=>/^\s*sequenceDiagram/.test(t),"detector"),Dot=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(b4e(),x4e));return{id:$we,diagram:t}},"loader"),Not={id:$we,detector:Rot,loader:Dot},Iot=Not,zwe="class",Mot=x((t,e)=>e?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t),"detector"),Oot=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(S4e(),E4e));return{id:zwe,diagram:t}},"loader"),Pot={id:zwe,detector:Mot,loader:Oot},Bot=Pot,Gwe="classDiagram",Fot=x((t,e)=>/^\s*classDiagram/.test(t)&&e?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t),"detector"),$ot=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(A4e(),C4e));return{id:Gwe,diagram:t}},"loader"),zot={id:Gwe,detector:Fot,loader:$ot},Got=zot,qwe="state",qot=x((t,e)=>e?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t),"detector"),Vot=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(J4e(),Q4e));return{id:qwe,diagram:t}},"loader"),Uot={id:qwe,detector:qot,loader:Vot},Wot=Uot,Vwe="stateDiagram",Hot=x((t,e)=>!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&e?.state?.defaultRenderer==="dagre-wrapper"),"detector"),Yot=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(t3e(),e3e));return{id:Vwe,diagram:t}},"loader"),Xot={id:Vwe,detector:Hot,loader:Yot},jot=Xot,Uwe="journey",Kot=x(t=>/^\s*journey/.test(t),"detector"),Zot=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(f3e(),h3e));return{id:Uwe,diagram:t}},"loader"),Qot={id:Uwe,detector:Kot,loader:Zot},Jot=Qot,elt=x((t,e,r)=>{te.debug(`rendering svg for syntax error
`);let n=ta(e),i=n.append("g");n.attr("viewBox","0 0 2412 512"),xn(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),Wwe={draw:elt},tlt=Wwe,rlt={db:{},renderer:Wwe,parser:{parse:x(()=>{},"parse")}},nlt=rlt,Hwe="flowchart-elk",ilt=x((t,e={})=>/^\s*flowchart-elk/.test(t)||/^\s*(flowchart|graph)/.test(t)&&e?.flowchart?.defaultRenderer==="elk"?(e.layout="elk",!0):!1,"detector"),alt=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(MS(),IS));return{id:Hwe,diagram:t}},"loader"),slt={id:Hwe,detector:ilt,loader:alt},olt=slt,Ywe="timeline",llt=x(t=>/^\s*timeline/.test(t),"detector"),clt=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(L3e(),_3e));return{id:Ywe,diagram:t}},"loader"),ult={id:Ywe,detector:llt,loader:clt},hlt=ult,Xwe="mindmap",flt=x(t=>/^\s*mindmap/.test(t),"detector"),dlt=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(B3e(),P3e));return{id:Xwe,diagram:t}},"loader"),plt={id:Xwe,detector:flt,loader:dlt},glt=plt,jwe="kanban",mlt=x(t=>/^\s*kanban/.test(t),"detector"),ylt=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(z3e(),$3e));return{id:jwe,diagram:t}},"loader"),vlt={id:jwe,detector:mlt,loader:ylt},xlt=vlt,Kwe="sankey",blt=x(t=>/^\s*sankey(-beta)?/.test(t),"detector"),wlt=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(h5e(),u5e));return{id:Kwe,diagram:t}},"loader"),Tlt={id:Kwe,detector:blt,loader:wlt},klt=Tlt,Zwe="packet",Elt=x(t=>/^\s*packet(-beta)?/.test(t),"detector"),Slt=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(g5e(),p5e));return{id:Zwe,diagram:t}},"loader"),Clt={id:Zwe,detector:Elt,loader:Slt},Qwe="radar",Alt=x(t=>/^\s*radar-beta/.test(t),"detector"),_lt=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(k5e(),T5e));return{id:Qwe,diagram:t}},"loader"),Llt={id:Qwe,detector:Alt,loader:_lt},Jwe="block",Rlt=x(t=>/^\s*block(-beta)?/.test(t),"detector"),Dlt=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(ewe(),J5e));return{id:Jwe,diagram:t}},"loader"),Nlt={id:Jwe,detector:Rlt,loader:Dlt},Ilt=Nlt,eTe="architecture",Mlt=x(t=>/^\s*architecture/.test(t),"detector"),Olt=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(vwe(),ywe));return{id:eTe,diagram:t}},"loader"),Plt={id:eTe,detector:Mlt,loader:Olt},Blt=Plt,tTe="treemap",Flt=x(t=>/^\s*treemap/.test(t),"detector"),$lt=x(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(kwe(),Twe));return{id:tTe,diagram:t}},"loader"),zlt={id:tTe,detector:Flt,loader:$lt},Ewe=!1,bA=x(()=>{Ewe||(Ewe=!0,Uv("error",nlt,t=>t.toLowerCase().trim()==="error"),Uv("---",{db:{clear:x(()=>{},"clear")},styles:{},renderer:{draw:x(()=>{},"draw")},parser:{parse:x(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:x(()=>null,"init")},t=>t.toLowerCase().trimStart().startsWith("---")),D5(olt,glt,Blt),D5(Wst,xlt,Got,Bot,not,hot,pot,yot,Lot,Iot,Jst,jst,hlt,oot,jot,Wot,Jot,wot,klt,Clt,Sot,Ilt,Llt,zlt))},"addDiagrams"),Glt=x(async()=>{te.debug("Loading registered diagrams");let e=(await Promise.allSettled(Object.entries(lf).map(async([r,{detector:n,loader:i}])=>{if(i)try{F5(r)}catch{try{let{diagram:a,id:s}=await i();Uv(s,a,n)}catch(a){throw te.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete lf[r],a}}}))).filter(r=>r.status==="rejected");if(e.length>0){te.error(`Failed to load ${e.length} external diagrams`);for(let r of e)te.error(r);throw new Error(`Failed to load ${e.length} external diagrams`)}},"loadRegisteredDiagrams"),qlt="graphics-document document";function rTe(t,e){t.attr("role",qlt),e!==""&&t.attr("aria-roledescription",e)}x(rTe,"setA11yDiagramInfo");function nTe(t,e,r,n){if(t.insert!==void 0){if(r){let i=`chart-desc-${n}`;t.attr("aria-describedby",i),t.insert("desc",":first-child").attr("id",i).text(r)}if(e){let i=`chart-title-${n}`;t.attr("aria-labelledby",i),t.insert("title",":first-child").attr("id",i).text(e)}}}x(nTe,"addSVGa11yTitleDescription");var wq=class iTe{constructor(e,r,n,i,a){this.type=e,this.text=r,this.db=n,this.parser=i,this.renderer=a}static{x(this,"Diagram")}static async fromText(e,r={}){let n=fr(),i=Gv(e,n);e=Xte(e)+`
`;try{F5(i)}catch{let u=tW(i);if(!u)throw new G8(`Diagram ${i} not found.`);let{id:h,diagram:f}=await u();Uv(h,f)}let{db:a,parser:s,renderer:o,init:l}=F5(i);return s.parser&&(s.parser.yy=a),a.clear?.(),l?.(n),r.title&&a.setDiagramTitle?.(r.title),await s.parse(e),new iTe(i,e,a,s,o)}async render(e,r){await this.renderer.draw(this.text,e,r,this)}getParser(){return this.parser}getType(){return this.type}},Swe=[],Vlt=x(()=>{Swe.forEach(t=>{t()}),Swe=[]},"attachFunctions"),Ult=x(t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function aTe(t){let e=t.match(z8);if(!e)return{text:t,metadata:{}};let r=Ef(e[1],{schema:kf})??{};r=typeof r=="object"&&!Array.isArray(r)?r:{};let n={};return r.displayMode&&(n.displayMode=r.displayMode.toString()),r.title&&(n.title=r.title.toString()),r.config&&(n.config=r.config),{text:t.slice(e[0].length),metadata:n}}x(aTe,"extractFrontMatter");var Wlt=x(t=>t.replace(/\r\n?/g,`
`).replace(/<(\w+)([^>]*)>/g,(e,r,n)=>"<"+r+n.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),Hlt=x(t=>{let{text:e,metadata:r}=aTe(t),{displayMode:n,title:i,config:a={}}=r;return n&&(a.gantt||(a.gantt={}),a.gantt.displayMode=n),{title:i,config:a,text:e}},"processFrontmatter"),Ylt=x(t=>{let e=Ut.detectInit(t)??{},r=Ut.detectDirective(t,"wrap");return Array.isArray(r)?e.wrap=r.some(({type:n})=>n==="wrap"):r?.type==="wrap"&&(e.wrap=!0),{text:qte(t),directive:e}},"processDirectives");function kq(t){let e=Wlt(t),r=Hlt(e),n=Ylt(r.text),i=ui(r.config,n.directive);return t=Ult(n.text),{code:t,title:r.title,config:i}}x(kq,"preprocessDiagram");function sTe(t){let e=new TextEncoder().encode(t),r=Array.from(e,n=>String.fromCodePoint(n)).join("");return btoa(r)}x(sTe,"toBase64");var Xlt=5e4,jlt="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",Klt="sandbox",Zlt="loose",Qlt="http://www.w3.org/2000/svg",Jlt="http://www.w3.org/1999/xlink",ect="http://www.w3.org/1999/xhtml",tct="100%",rct="100%",nct="border:0;margin:0;",ict="margin:0",act="allow-top-navigation-by-user-activation allow-popups",sct='The "iframe" tag is not supported by your browser.',oct=["foreignobject"],lct=["dominant-baseline"];function Eq(t){let e=kq(t);return qv(),lW(e.config??{}),e}x(Eq,"processAndSetConfigs");async function oTe(t,e){bA();try{let{code:r,config:n}=Eq(t);return{diagramType:(await cTe(r)).type,config:n}}catch(r){if(e?.suppressErrors)return!1;throw r}}x(oTe,"parse");var Cwe=x((t,e,r=[])=>`
.${t} ${e} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),cct=x((t,e=new Map)=>{let r="";if(t.themeCSS!==void 0&&(r+=`
${t.themeCSS}`),t.fontFamily!==void 0&&(r+=`
:root { --mermaid-font-family: ${t.fontFamily}}`),t.altFontFamily!==void 0&&(r+=`
:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),e instanceof Map){let s=t.htmlLabels??t.flowchart?.htmlLabels?["> *","span"]:["rect","polygon","ellipse","circle","path"];e.forEach(o=>{dr(o.styles)||s.forEach(l=>{r+=Cwe(o.id,l,o.styles)}),dr(o.textStyles)||(r+=Cwe(o.id,"tspan",(o?.textStyles||[]).map(l=>l.replace("color","fill"))))})}return r},"createCssStyles"),uct=x((t,e,r,n)=>{let i=cct(t,r),a=pW(e,i,t.themeVariables);return wS(n0e(`${n}{${a}}`),i0e)},"createUserStyles"),hct=x((t="",e,r)=>{let n=t;return!r&&!e&&(n=n.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),n=Ks(n),n=n.replace(/
/g,"
"),n},"cleanUpSvgCode"),fct=x((t="",e)=>{let r=e?.viewBox?.baseVal?.height?e.viewBox.baseVal.height+"px":rct,n=sTe(`${t}`);return``},"putIntoIFrame"),Awe=x((t,e,r,n,i)=>{let a=t.append("div");a.attr("id",r),n&&a.attr("style",n);let s=a.append("svg").attr("id",e).attr("width","100%").attr("xmlns",Qlt);return i&&s.attr("xmlns:xlink",i),s.append("g"),t},"appendDivSvgG");function Tq(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}x(Tq,"sandboxedIframe");var dct=x((t,e,r,n)=>{t.getElementById(e)?.remove(),t.getElementById(r)?.remove(),t.getElementById(n)?.remove()},"removeExistingElements"),pct=x(async function(t,e,r){bA();let n=Eq(e);e=n.code;let i=fr();te.debug(i),e.length>(i?.maxTextSize??Xlt)&&(e=jlt);let a="#"+t,s="i"+t,o="#"+s,l="d"+t,u="#"+l,h=x(()=>{let _=Ye(d?o:u).node();_&&"remove"in _&&_.remove()},"removeTempElements"),f=Ye("body"),d=i.securityLevel===Klt,p=i.securityLevel===Zlt,g=i.fontFamily;if(r!==void 0){if(r&&(r.innerHTML=""),d){let E=Tq(Ye(r),s);f=Ye(E.nodes()[0].contentDocument.body),f.node().style.margin=0}else f=Ye(r);Awe(f,t,l,`font-family: ${g}`,Jlt)}else{if(dct(document,t,l,s),d){let E=Tq(Ye("body"),s);f=Ye(E.nodes()[0].contentDocument.body),f.node().style.margin=0}else f=Ye("body");Awe(f,t,l)}let m,y;try{m=await wq.fromText(e,{title:n.title})}catch(E){if(i.suppressErrorRendering)throw h(),E;m=await wq.fromText("error"),y=E}let v=f.select(u).node(),b=m.type,w=v.firstChild,S=w.firstChild,T=m.renderer.getClasses?.(e,m),k=uct(i,b,T,a),C=document.createElement("style");C.innerHTML=k,w.insertBefore(C,S);try{await m.renderer.draw(e,t,yv.version,m)}catch(E){throw i.suppressErrorRendering?h():tlt.draw(e,t,yv.version),E}let L=f.select(`${u} svg`),D=m.db.getAccTitle?.(),M=m.db.getAccDescription?.();uTe(b,L,D,M),f.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",ect);let I=f.select(u).node().innerHTML;if(te.debug("config.arrowMarkerAbsolute",i.arrowMarkerAbsolute),I=hct(I,d,Kr(i.arrowMarkerAbsolute)),d){let E=f.select(u+" svg").node();I=fct(I,E)}else p||(I=tf.sanitize(I,{ADD_TAGS:oct,ADD_ATTR:lct,HTML_INTEGRATION_POINTS:{foreignobject:!0}}));if(Vlt(),y)throw y;return h(),{diagramType:b,svg:I,bindFunctions:m.db.bindFunctions}},"render");function lTe(t={}){let e=Gn({},t);e?.fontFamily&&!e.themeVariables?.fontFamily&&(e.themeVariables||(e.themeVariables={}),e.themeVariables.fontFamily=e.fontFamily),aW(e),e?.theme&&e.theme in Oc?e.themeVariables=Oc[e.theme].getThemeVariables(e.themeVariables):e&&(e.themeVariables=Oc.default.getThemeVariables(e.themeVariables));let r=typeof e=="object"?iW(e):q8();vv(r.logLevel),bA()}x(lTe,"initialize");var cTe=x((t,e={})=>{let{code:r}=kq(t);return wq.fromText(r,e)},"getDiagramFromText");function uTe(t,e,r,n){rTe(e,t),nTe(e,r,n,e.attr("id"))}x(uTe,"addA11yInfo");var Mg=Object.freeze({render:pct,parse:oTe,getDiagramFromText:cTe,initialize:lTe,getConfig:fr,setConfig:V8,getSiteConfig:q8,updateSiteConfig:sW,reset:x(()=>{qv()},"reset"),globalReset:x(()=>{qv(yp)},"globalReset"),defaultConfig:yp});vv(fr().logLevel);qv(fr());var gct=x((t,e,r)=>{te.warn(t),LT(t)?(r&&r(t.str,t.hash),e.push({...t,message:t.str,error:t})):(r&&r(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},"handleError"),hTe=x(async function(t={querySelector:".mermaid"}){try{await mct(t)}catch(e){if(LT(e)&&te.error(e.str),Qh.parseError&&Qh.parseError(e),!t.suppressErrors)throw te.error("Use the suppressErrors option to suppress these errors"),e}},"run"),mct=x(async function({postRenderCallback:t,querySelector:e,nodes:r}={querySelector:".mermaid"}){let n=Mg.getConfig();te.debug(`${t?"":"No "}Callback function found`);let i;if(r)i=r;else if(e)i=document.querySelectorAll(e);else throw new Error("Nodes and querySelector are both undefined");te.debug(`Found ${i.length} diagrams`),n?.startOnLoad!==void 0&&(te.debug("Start On Load: "+n?.startOnLoad),Mg.updateSiteConfig({startOnLoad:n?.startOnLoad}));let a=new Ut.InitIDGenerator(n.deterministicIds,n.deterministicIDSeed),s,o=[];for(let l of Array.from(i)){if(te.info("Rendering diagram: "+l.id),l.getAttribute("data-processed"))continue;l.setAttribute("data-processed","true");let u=`mermaid-${a.next()}`;s=l.innerHTML,s=FT(Ut.entityDecode(s)).trim().replace(/
/gi,"
");let h=Ut.detectInit(s);h&&te.debug("Detected early reinit: ",h);try{let{svg:f,bindFunctions:d}=await gTe(u,s,l);l.innerHTML=f,t&&await t(u),d&&d(l)}catch(f){gct(f,o,Qh.parseError)}}if(o.length>0)throw o[0]},"runThrowsErrors"),fTe=x(function(t){Mg.initialize(t)},"initialize"),yct=x(async function(t,e,r){te.warn("mermaid.init is deprecated. Please use run instead."),t&&fTe(t);let n={postRenderCallback:r,querySelector:".mermaid"};typeof e=="string"?n.querySelector=e:e&&(e instanceof HTMLElement?n.nodes=[e]:n.nodes=e),await hTe(n)},"init"),vct=x(async(t,{lazyLoad:e=!0}={})=>{bA(),D5(...t),e===!1&&await Glt()},"registerExternalDiagrams"),dTe=x(function(){if(Qh.startOnLoad){let{startOnLoad:t}=Mg.getConfig();t&&Qh.run().catch(e=>te.error("Mermaid failed to initialize",e))}},"contentLoaded");typeof document<"u"&&window.addEventListener("load",dTe,!1);var xct=x(function(t){Qh.parseError=t},"setParseErrorHandler"),xA=[],bq=!1,pTe=x(async()=>{if(!bq){for(bq=!0;xA.length>0;){let t=xA.shift();if(t)try{await t()}catch(e){te.error("Error executing queue",e)}}bq=!1}},"executeQueue"),bct=x(async(t,e)=>new Promise((r,n)=>{let i=x(()=>new Promise((a,s)=>{Mg.parse(t,e).then(o=>{a(o),r(o)},o=>{te.error("Error parsing",o),Qh.parseError?.(o),s(o),n(o)})}),"performCall");xA.push(i),pTe().catch(n)}),"parse"),gTe=x((t,e,r)=>new Promise((n,i)=>{let a=x(()=>new Promise((s,o)=>{Mg.render(t,e,r).then(l=>{s(l),n(l)},l=>{te.error("Error parsing",l),Qh.parseError?.(l),o(l),i(l)})}),"performCall");xA.push(a),pTe().catch(i)}),"render"),wct=x(()=>Object.keys(lf).map(t=>({id:t})),"getRegisteredDiagramsMetadata"),Qh={startOnLoad:!0,mermaidAPI:Mg,parse:bct,render:gTe,init:yct,run:hTe,registerExternalDiagrams:vct,registerLayoutLoaders:MM,initialize:fTe,parseError:void 0,contentLoaded:dTe,setParseErrorHandler:xct,detectType:Gv,registerIconPacks:zT,getRegisteredDiagramsMetadata:wct},F3=Qh;var Sq=class{constructor(e,r,n){this.container=e;this.content=r;this.vscode=n;this.container=e,this.content=r,this.content.style.transformOrigin="0 0",this.container.style.overflow="hidden",this.container.style.cursor="default",this.setupEventListeners()}scale=1;translateX=0;translateY=0;isPanning=!1;hasDragged=!1;hasInteracted=!1;startX=0;startY=0;minScale=.1;maxScale=5;zoomFactor=.002;initialize(){this.restoreState()||requestAnimationFrame(()=>{this.centerContent()})}setupEventListeners(){this.container.addEventListener("mousedown",e=>this.handleMouseDown(e)),document.addEventListener("mousemove",e=>this.handleMouseMove(e)),document.addEventListener("mouseup",()=>this.handleMouseUp()),this.container.addEventListener("click",e=>this.handleClick(e)),this.container.addEventListener("wheel",e=>this.handleWheel(e),{passive:!1}),this.container.addEventListener("mousemove",e=>this.updateCursorFromModifier(e)),this.container.addEventListener("mouseenter",e=>this.updateCursorFromModifier(e)),window.addEventListener("keydown",e=>this.handleKeyChange(e)),window.addEventListener("keyup",e=>this.handleKeyChange(e)),window.addEventListener("resize",()=>this.handleResize())}handleKeyChange(e){(e.key==="Alt"||e.key==="Shift")&&!this.isPanning&&(e.preventDefault(),e.altKey&&!e.shiftKey?this.container.style.cursor="grab":e.altKey&&e.shiftKey?this.container.style.cursor="zoom-out":this.container.style.cursor="default")}updateCursorFromModifier(e){this.isPanning||(e.altKey&&!e.shiftKey?this.container.style.cursor="grab":e.altKey&&e.shiftKey?this.container.style.cursor="zoom-out":this.container.style.cursor="default")}handleClick(e){if(!e.altKey||this.hasDragged)return;e.preventDefault(),e.stopPropagation();let r=this.container.getBoundingClientRect(),n=e.clientX-r.left,i=e.clientY-r.top,a=e.shiftKey?.8:1.25;this.zoomAtPoint(a,n,i)}handleWheel(e){let r=e.ctrlKey;if(!(!e.altKey&&!r)&&(r||e.altKey)){e.preventDefault(),e.stopPropagation();let n=this.container.getBoundingClientRect(),i=e.clientX-n.left,a=e.clientY-n.top,s=r?this.zoomFactor*5:this.zoomFactor,o=-e.deltaY*s,l=Math.min(this.maxScale,Math.max(this.minScale,this.scale*(1+o))),u=l/this.scale;this.translateX=i-(i-this.translateX)*u,this.translateY=a-(a-this.translateY)*u,this.scale=l,this.applyTransform(),this.saveState()}}handleMouseDown(e){e.button!==0||!e.altKey||(e.preventDefault(),e.stopPropagation(),this.isPanning=!0,this.hasDragged=!1,this.startX=e.clientX-this.translateX,this.startY=e.clientY-this.translateY,this.container.style.cursor="grabbing")}handleMouseMove(e){if(!this.isPanning)return;if(e.buttons===0){this.handleMouseUp();return}let r=e.clientX-this.startX-this.translateX,n=e.clientY-this.startY-this.translateY;(Math.abs(r)>3||Math.abs(n)>3)&&(this.hasDragged=!0),this.translateX=e.clientX-this.startX,this.translateY=e.clientY-this.startY,this.applyTransform()}handleMouseUp(){this.isPanning&&(this.isPanning=!1,this.container.style.cursor="default",this.saveState())}applyTransform(){this.content.style.transform=`translate(${this.translateX}px, ${this.translateY}px) scale(${this.scale})`}saveState(){this.hasInteracted=!0;let e=this.vscode.getState()||{};this.vscode.setState({...e,panZoom:{scale:this.scale,translateX:this.translateX,translateY:this.translateY}})}restoreState(){let e=this.vscode.getState();if(e?.panZoom){let r=e.panZoom;return this.scale=r.scale??1,this.translateX=r.translateX??0,this.translateY=r.translateY??0,this.hasInteracted=!0,this.applyTransform(),!0}return!1}handleResize(){this.hasInteracted||this.centerContent()}centerContent(){let e=this.container.getBoundingClientRect(),r=this.content.querySelector("svg");if(!r)return;let n=r.getBoundingClientRect();this.translateX=(e.width-n.width)/2,this.translateY=(e.height-n.height)/2,this.applyTransform()}reset(){this.scale=1,this.translateX=0,this.translateY=0,this.hasInteracted=!1,this.applyTransform();let e=this.vscode.getState()||{};delete e.panZoom,this.vscode.setState(e),requestAnimationFrame(()=>{this.centerContent()})}zoomIn(){let e=this.container.getBoundingClientRect();this.zoomAtPoint(1.25,e.width/2,e.height/2)}zoomOut(){let e=this.container.getBoundingClientRect();this.zoomAtPoint(.8,e.width/2,e.height/2)}zoomAtPoint(e,r,n){let i=Math.min(this.maxScale,Math.max(this.minScale,this.scale*e)),a=i/this.scale;this.translateX=r-(r-this.translateX)*a,this.translateY=n-(n-this.translateY)*a,this.scale=i,this.applyTransform(),this.saveState()}};function mTe(){return document.body.classList.contains("vscode-dark")||document.body.classList.contains("vscode-high-contrast")&&!document.body.classList.contains("vscode-high-contrast-light")?"dark":"default"}async function Tct(t,e,r){t.textContent=e,delete t.dataset.processed,F3.initialize({theme:r}),await F3.run({nodes:[t]})}async function yTe(t){let e=document.querySelector(".mermaid");if(!e)return;let r=mTe(),n=e.textContent??"",i={mermaidSource:n,theme:r},a=t.getState()||{};t.setState({...a,mermaidSource:n});let s=document.createElement("div");s.className="mermaid-wrapper",s.style.cssText="position: relative; width: 100%; height: 100%; overflow: hidden;";let o=document.createElement("div");o.className="mermaid-content",e.parentNode?.insertBefore(s,e),o.appendChild(e),s.appendChild(o);let l={startOnLoad:!1,theme:r};F3.initialize(l),await F3.run({nodes:[e]}),e.classList.add("rendered");let u=new Sq(s,o,t);return u.initialize(),window.addEventListener("message",h=>{h.data.type==="resetPanZoom"&&u.reset()}),new MutationObserver(()=>{let h=mTe();if(i?.theme===h)return;let f=document.querySelector(".mermaid");!f||!(f instanceof HTMLElement)||(i={mermaidSource:i?.mermaidSource??"",theme:h},Tct(f,i.mermaidSource,h))}).observe(document.body,{attributes:!0,attributeFilter:["class"]}),u}var vTe=acquireVsCodeApi();async function kct(){await yTe(vTe);let t=document.querySelector(".open-in-editor-btn");t&&t.addEventListener("click",e=>{e.stopPropagation(),vTe.postMessage({type:"openInEditor"})})}kct();
/*! Bundled license information:
dompurify/dist/purify.es.mjs:
(*! @license DOMPurify 3.3.2 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.2/LICENSE *)
mermaid/dist/chunks/mermaid.core/chunk-MI3HLSF2.mjs:
(*! Bundled license information:
js-yaml/dist/js-yaml.mjs:
(*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *)
*)
lodash-es/lodash.js:
(**
* @license
* Lodash (Custom Build)
* Build: `lodash modularize exports="es" -o ./`
* Copyright OpenJS Foundation and other contributors
* Released under MIT license
* Based on Underscore.js 1.8.3
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*)
cytoscape/dist/cytoscape.esm.mjs:
(*!
Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable
Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)
Licensed under The MIT License (http://opensource.org/licenses/MIT)
*)
(*!
Event object based on jQuery events, MIT license
https://jquery.org/license/
https://tldrlegal.com/license/mit-license
https://github.com/jquery/jquery/blob/master/src/event.js
*)
(*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License *)
(*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License *)
mermaid/dist/mermaid.core.mjs:
(*! Check if previously processed *)
(*!
* Wait for document loaded before starting the execution
*)
*/