@markdstage/markdstage 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +90 -0
- package/bin/markdstage.mjs +12 -0
- package/package.json +45 -0
- package/shared/README.md +1014 -0
- package/shared/THIRD-PARTY-NOTICES.md +19 -0
- package/shared/deck-state.mjs +105 -0
- package/shared/docs/custom-theme-authoring.md +208 -0
- package/shared/markdown-deck.mjs +220 -0
- package/shared/markdstage-guide.mjs +276 -0
- package/shared/presenter-window.mjs +17 -0
- package/shared/renderer/architecture-document.mjs +596 -0
- package/shared/renderer/architecture-edit.mjs +298 -0
- package/shared/renderer/architecture-editor.mjs +449 -0
- package/shared/renderer/architecture.mjs +4033 -0
- package/shared/renderer/import-path.mjs +11 -0
- package/shared/renderer/index.html +106 -0
- package/shared/renderer/renderer.js +2082 -0
- package/shared/renderer/slides.css +614 -0
- package/shared/renderer/speaker-notes.mjs +106 -0
- package/shared/renderer/theme.mjs +205 -0
- package/shared/runtime/browser.mjs +539 -0
- package/shared/runtime/custom-theme.mjs +135 -0
- package/shared/runtime/deck-session.mjs +188 -0
- package/shared/runtime/errors.mjs +17 -0
- package/shared/runtime/output-paths.mjs +159 -0
- package/shared/runtime/output.mjs +385 -0
- package/shared/runtime/presentation-server.mjs +505 -0
- package/shared/runtime/static-files.mjs +70 -0
- package/shared/schema/README.md +228 -0
- package/shared/schema/architecture-v1.schema.json +664 -0
- package/shared/schema/examples/web-app.architecture.json +119 -0
- package/shared/schema/theme-metadata-v1.schema.json +75 -0
- package/shared/schema/theme-v1.json +84 -0
- package/shared/scripts/architecture-assets.mjs +226 -0
- package/shared/scripts/asset-paths.mjs +92 -0
- package/shared/scripts/atomic-markdown-replace.mjs +46 -0
- package/shared/scripts/markdown-blocks.mjs +182 -0
- package/shared/scripts/markdown-files.mjs +63 -0
- package/shared/scripts/markdown-save-coordinator.mjs +18 -0
- package/shared/scripts/markdown-watcher.mjs +80 -0
- package/shared/scripts/theme-paths.mjs +108 -0
- package/shared/scripts/vendor-assets.mjs +132 -0
- package/shared/scripts/workspace-root.mjs +32 -0
- package/shared/vendor/highlight.LICENSE +29 -0
- package/shared/vendor/highlight.min.js +1244 -0
- package/shared/vendor/marked.min.js +6 -0
- package/shared/vendor/mermaid.min.js.part-0001 +268 -0
- package/shared/vendor/mermaid.min.js.part-0002 +304 -0
- package/shared/vendor/mermaid.min.js.part-0003 +324 -0
- package/shared/vendor/mermaid.min.js.part-0004 +374 -0
- package/shared/vendor/mermaid.min.js.part-0005 +564 -0
- package/shared/vendor/mermaid.min.js.part-0006 +1308 -0
- package/shared/vendor/mermaid.min.js.part-0007 +269 -0
- package/shared/vendor/purify.min.js +3 -0
- package/shared/vendor/vendor-assets.lock.json +60 -0
- package/src/cli.mjs +347 -0
- package/src/commands/capture.mjs +23 -0
- package/src/commands/export.mjs +18 -0
- package/src/commands/guide.mjs +23 -0
- package/src/commands/inspect.mjs +35 -0
- package/src/commands/present.mjs +91 -0
- package/src/commands/skill.mjs +114 -0
- package/src/commands/validate.mjs +79 -0
- package/src/deck.mjs +63 -0
- package/src/exit.mjs +58 -0
- package/src/runtime.mjs +77 -0
- package/src/skills.mjs +155 -0
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
cremental),b.tilingCompareBy!=null&&(y.TILING_COMPARE_BY=b.tilingCompareBy),b.quality=="proof"?m.QUALITY=2:m.QUALITY=0,y.NODE_DIMENSIONS_INCLUDE_LABELS=g.NODE_DIMENSIONS_INCLUDE_LABELS=m.NODE_DIMENSIONS_INCLUDE_LABELS=b.nodeDimensionsIncludeLabels,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!b.randomize,y.ANIMATE=g.ANIMATE=m.ANIMATE=b.animate,y.TILE=b.tile,y.TILING_PADDING_VERTICAL=typeof b.tilingPaddingVertical=="function"?b.tilingPaddingVertical.call():b.tilingPaddingVertical,y.TILING_PADDING_HORIZONTAL=typeof b.tilingPaddingHorizontal=="function"?b.tilingPaddingHorizontal.call():b.tilingPaddingHorizontal,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!0,y.PURE_INCREMENTAL=!b.randomize,m.DEFAULT_UNIFORM_LEAF_NODE_SIZES=b.uniformNodeDimensions,b.step=="transformed"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!1),b.step=="enforced"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!1),b.step=="cose"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!0),b.step=="all"&&(b.randomize?y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!0),b.fixedNodeConstraint||b.alignmentConstraint||b.relativePlacementConstraint?y.TREE_REDUCTION_ON_INCREMENTAL=!1:y.TREE_REDUCTION_ON_INCREMENTAL=!0;var O=new h,$=O.newGraphManager();return M($.addRoot(),u.getTopMostNodes(k),O,b),L(O,$,E),B(O,b),O.runLayout(),I},"coseLayout");a.exports={coseLayout:v}}),212:((a,s,l)=>{var u=(function(){function b(T,w){for(var C=0;C<w.length;C++){var k=w[C];k.enumerable=k.enumerable||!1,k.configurable=!0,"value"in k&&(k.writable=!0),Object.defineProperty(T,k.key,k)}}return o(b,"defineProperties"),function(T,w,C){return w&&b(T.prototype,w),C&&b(T,C),T}})();function h(b,T){if(!(b instanceof T))throw new TypeError("Cannot call a class as a function")}o(h,"_classCallCheck");var d=l(658),f=l(548),p=l(657),m=p.spectralLayout,g=l(816),y=g.coseLayout,v=Object.freeze({quality:"default",randomize:!0,animate:!0,animationDuration:1e3,animationEasing:void 0,fit:!0,padding:30,nodeDimensionsIncludeLabels:!1,uniformNodeDimensions:!1,packComponents:!0,step:"all",samplingType:!0,sampleSize:25,nodeSeparation:75,piTol:1e-7,nodeRepulsion:o(function(T){return 4500},"nodeRepulsion"),idealEdgeLength:o(function(T){return 50},"idealEdgeLength"),edgeElasticity:o(function(T){return .45},"edgeElasticity"),nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,tilingCompareBy:void 0,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.3,fixedNodeConstraint:void 0,alignmentConstraint:void 0,relativePlacementConstraint:void 0,ready:o(function(){},"ready"),stop:o(function(){},"stop")}),x=(function(){function b(T){h(this,b),this.options=d({},v,T)}return o(b,"Layout"),u(b,[{key:"run",value:o(function(){var w=this,C=this.options,k=C.cy,E=C.eles,A=[],N=void 0,P=void 0,I=[],D=void 0,_=[];C.fixedNodeConstraint&&(!Array.isArray(C.fixedNodeConstraint)||C.fixedNodeConstraint.length==0)&&(C.fixedNodeConstraint=void 0),C.alignmentConstraint&&(C.alignmentConstraint.vertical&&(!Array.isArray(C.alignmentConstraint.vertical)||C.alignmentConstraint.vertical.length==0)&&(C.alignmentConstraint.vertical=void 0),C.alignmentConstraint.horizontal&&(!Array.isArray(C.alignmentConstraint.horizontal)||C.alignmentConstraint.horizontal.length==0)&&(C.alignmentConstraint.horizontal=void 0)),C.relativePlacementConstraint&&(!Array.isArray(C.relativePlacementConstraint)||C.relativePlacementConstraint.length==0)&&(C.relativePlacementConstraint=void 0);var R=C.fixedNodeConstraint||C.alignmentConstraint||C.relativePlacementConstraint;R&&(C.tile=!1,C.packComponents=!1);var M=void 0,L=!1;if(k.layoutUtilities&&C.packComponents&&(M=k.layoutUtilities("get"),M||(M=k.layoutUtilities()),L=!0),E.nodes().length>0)if(L){var $=f.getTopMostNodes(C.eles.nodes());if(D=f.connectComponents(k,C.eles,$),D.forEach(function(Ee){var we=Ee.boundingBox();_.push({x:we.x1+we.w/2,y:we.y1+we.h/2})}),C.randomize&&D.forEach(function(Ee){C.eles=Ee,A.push(m(C))}),C.quality=="default"||C.quality=="proof"){var G=k.collection();if(C.tile){var F=new Map,V=[],H=[],j=0,U={nodeIndexes:F,xCoords:V,yCoords:H},Q=[];if(D.forEach(function(Ee,we){Ee.edges().length==0&&(Ee.nodes().forEach(function(Me,$e){G.merge(Ee.nodes()[$e]),Me.isParent()||(U.nodeIndexes.set(Ee.nodes()[$e].id(),j++),U.xCoords.push(Ee.nodes()[0].position().x),U.yCoords.push(Ee.nodes()[0].position().y))}),Q.push(we))}),G.length>1){var Y=G.boundingBox();_.push({x:Y.x1+Y.w/2,y:Y.y1+Y.h/2}),D.push(G),A.push(U);for(var ae=Q.length-1;ae>=0;ae--)D.splice(Q[ae],1),A.splice(Q[ae],1),_.splice(Q[ae],1)}}D.forEach(function(Ee,we){C.eles=Ee,I.push(y(C,A[we])),f.relocateComponent(_[we],I[we],C)})}else D.forEach(function(Ee,we){f.relocateComponent(_[we],A[we],C)});var J=new Set;if(D.length>1){var te=[],re=E.filter(function(Ee){return Ee.css("display")=="none"});D.forEach(function(Ee,we){var Me=void 0;if(C.quality=="draft"&&(Me=A[we].nodeIndexes),Ee.nodes().not(re).length>0){var $e={};$e.edges=[],$e.nodes=[];var de=void 0;Ee.nodes().not(re).forEach(function(rt){if(C.quality=="draft")if(!rt.isParent())de=Me.get(rt.id()),$e.nodes.push({x:A[we].xCoords[de]-rt.boundingbox().w/2,y:A[we].yCoords[de]-rt.boundingbox().h/2,width:rt.boundingbox().w,height:rt.boundingbox().h});else{var ke=f.calcBoundingBox(rt,A[we].xCoords,A[we].yCoords,Me);$e.nodes.push({x:ke.topLeftX,y:ke.topLeftY,width:ke.width,height:ke.height})}else I[we][rt.id()]&&$e.nodes.push({x:I[we][rt.id()].getLeft(),y:I[we][rt.id()].getTop(),width:I[we][rt.id()].getWidth(),height:I[we][rt.id()].getHeight()})}),Ee.edges().forEach(function(rt){var ke=rt.source(),Fe=rt.target();if(ke.css("display")!="none"&&Fe.css("display")!="none")if(C.quality=="draft"){var He=Me.get(ke.id()),at=Me.get(Fe.id()),qe=[],Ue=[];if(ke.isParent()){var ye=f.calcBoundingBox(ke,A[we].xCoords,A[we].yCoords,Me);qe.push(ye.topLeftX+ye.width/2),qe.push(ye.topLeftY+ye.height/2)}else qe.push(A[we].xCoords[He]),qe.push(A[we].yCoords[He]);if(Fe.isParent()){var ve=f.calcBoundingBox(Fe,A[we].xCoords,A[we].yCoords,Me);Ue.push(ve.topLeftX+ve.width/2),Ue.push(ve.topLeftY+ve.height/2)}else Ue.push(A[we].xCoords[at]),Ue.push(A[we].yCoords[at]);$e.edges.push({startX:qe[0],startY:qe[1],endX:Ue[0],endY:Ue[1]})}else I[we][ke.id()]&&I[we][Fe.id()]&&$e.edges.push({startX:I[we][ke.id()].getCenterX(),startY:I[we][ke.id()].getCenterY(),endX:I[we][Fe.id()].getCenterX(),endY:I[we][Fe.id()].getCenterY()})}),$e.nodes.length>0&&(te.push($e),J.add(we))}});var ee=M.packComponents(te,C.randomize).shifts;if(C.quality=="draft")A.forEach(function(Ee,we){var Me=Ee.xCoords.map(function(de){return de+ee[we].dx}),$e=Ee.yCoords.map(function(de){return de+ee[we].dy});Ee.xCoords=Me,Ee.yCoords=$e});else{var Te=0;J.forEach(function(Ee){Object.keys(I[Ee]).forEach(function(we){var Me=I[Ee][we];Me.setCenter(Me.getCenterX()+ee[Te].dx,Me.getCenterY()+ee[Te].dy)}),Te++})}}}else{var B=C.eles.boundingBox();if(_.push({x:B.x1+B.w/2,y:B.y1+B.h/2}),C.randomize){var O=m(C);A.push(O)}C.quality=="default"||C.quality=="proof"?(I.push(y(C,A[0])),f.relocateComponent(_[0],I[0],C)):f.relocateComponent(_[0],A[0],C)}var ue=o(function(we,Me){if(C.quality=="default"||C.quality=="proof"){typeof we=="number"&&(we=Me);var $e=void 0,de=void 0,rt=we.data("id");return I.forEach(function(Fe){rt in Fe&&($e={x:Fe[rt].getRect().getCenterX(),y:Fe[rt].getRect().getCenterY()},de=Fe[rt])}),C.nodeDimensionsIncludeLabels&&(de.labelWidth&&(de.labelPosHorizontal=="left"?$e.x+=de.labelWidth/2:de.labelPosHorizontal=="right"&&($e.x-=de.labelWidth/2)),de.labelHeight&&(de.labelPosVertical=="top"?$e.y+=de.labelHeight/2:de.labelPosVertical=="bottom"&&($e.y-=de.labelHeight/2))),$e==null&&($e={x:we.position("x"),y:we.position("y")}),{x:$e.x,y:$e.y}}else{var ke=void 0;return A.forEach(function(Fe){var He=Fe.nodeIndexes.get(we.id());He!=null&&(ke={x:Fe.xCoords[He],y:Fe.yCoords[He]})}),ke==null&&(ke={x:we.position("x"),y:we.position("y")}),{x:ke.x,y:ke.y}}},"getPositions");if(C.quality=="default"||C.quality=="proof"||C.randomize){var De=f.calcParentsWithoutChildren(k,E),Ie=E.filter(function(Ee){return Ee.css("display")=="none"});C.eles=E.not(Ie),E.nodes().not(":parent").not(Ie).layoutPositions(w,C,ue),De.length>0&&De.forEach(function(Ee){Ee.position(ue(Ee))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")},"run")}]),b})();a.exports=x}),657:((a,s,l)=>{var u=l(548),h=l(140).layoutBase.Matrix,d=l(140).layoutBase.SVD,f=o(function(m){var g=m.cy,y=m.eles,v=y.nodes(),x=y.nodes(":parent"),b=new Map,T=new Map,w=new Map,C=[],k=[],E=[],A=[],N=[],P=[],I=[],D=[],_=void 0,R=void 0,M=1e8,L=1e-9,B=m.piTol,O=m.samplingType,$=m.nodeSeparation,G=void 0,F=o(function(){for(var fe=0,W=0,ce=!1;W<G;){fe=Math.floor(Math.random()*R),ce=!1;for(var K=0;K<W;K++)if(A[K]==fe){ce=!0;break}if(!ce)A[W]=fe,W++;else continue}},"randomSampleCR"),V=o(function(fe,W,ce){for(var K=[],Re=0,xe=0,Oe=0,be=void 0,Be=[],Ae=0,Ve=1,Pe=0;Pe<R;Pe++)Be[Pe]=M;for(K[xe]=fe,Be[fe]=0;xe>=Re;){Oe=K[Re++];for(var Ye=C[Oe],le=0;le<Ye.length;le++)be=T.get(Ye[le]),Be[be]==M&&(Be[be]=Be[Oe]+1,K[++xe]=be);P[Oe][W]=Be[Oe]*$}if(ce){for(var st=0;st<R;st++)P[st][W]<N[st]&&(N[st]=P[st][W]);for(var me=0;me<R;me++)N[me]>Ae&&(Ae=N[me],Ve=me)}return Ve},"BFS"),H=o(function(fe){var W=void 0;if(fe){W=Math.floor(Math.random()*R),_=W;for(var K=0;K<R;K++)N[K]=M;for(var Re=0;Re<G;Re++)A[Re]=W,W=V(W,Re,fe)}else{F();for(var ce=0;ce<G;ce++)V(A[ce],ce,fe,!1)}for(var xe=0;xe<R;xe++)for(var Oe=0;Oe<G;Oe++)P[xe][Oe]*=P[xe][Oe];for(var be=0;be<G;be++)I[be]=[];for(var Be=0;Be<G;Be++)for(var Ae=0;Ae<G;Ae++)I[Be][Ae]=P[A[Ae]][Be]},"allBFS"),j=o(function(){for(var fe=d.svd(I),W=fe.S,ce=fe.U,K=fe.V,Re=W[0]*W[0]*W[0],xe=[],Oe=0;Oe<G;Oe++){xe[Oe]=[];for(var be=0;be<G;be++)xe[Oe][be]=0,Oe==be&&(xe[Oe][be]=W[Oe]/(W[Oe]*W[Oe]+Re/(W[Oe]*W[Oe])))}D=h.multMat(h.multMat(K,xe),h.transpose(ce))},"sample"),U=o(function(){for(var fe=void 0,W=void 0,ce=[],K=[],Re=[],xe=[],Oe=0;Oe<R;Oe++)ce[Oe]=Math.random(),K[Oe]=Math.random();ce=h.normalize(ce),K=h.normalize(K);for(var be=0,Be=L,Ae=L,Ve=void 0;;){be++;for(var Pe=0;Pe<R;Pe++)Re[Pe]=ce[Pe];if(ce=h.multGamma(h.multL(h.multGamma(Re),P,D)),fe=h.dotProduct(Re,ce),ce=h.normalize(ce),Be=h.dotProduct(Re,ce),Ve=Math.abs(Be/Ae),Ve<=1+B&&Ve>=1)break;Ae=Be}for(var Ye=0;Ye<R;Ye++)Re[Ye]=ce[Ye];for(be=0,Ae=L;;){be++;for(var le=0;le<R;le++)xe[le]=K[le];if(xe=h.minusOp(xe,h.multCons(Re,h.dotProduct(Re,xe))),K=h.multGamma(h.multL(h.multGamma(xe),P,D)),W=h.dotProduct(xe,K),K=h.normalize(K),Be=h.dotProduct(xe,K),Ve=Math.abs(Be/Ae),Ve<=1+B&&Ve>=1)break;Ae=Be}for(var st=0;st<R;st++)xe[st]=K[st];k=h.multCons(Re,Math.sqrt(Math.abs(fe))),E=h.multCons(xe,Math.sqrt(Math.abs(W)))},"powerIteration");u.connectComponents(g,y,u.getTopMostNodes(v),b),x.forEach(function(ie){u.connectComponents(g,y,u.getTopMostNodes(ie.descendants().intersection(y)),b)});for(var Q=0,Y=0;Y<v.length;Y++)v[Y].isParent()||T.set(v[Y].id(),Q++);var ae=!0,J=!1,te=void 0;try{for(var re=b.keys()[Symbol.iterator](),ee;!(ae=(ee=re.next()).done);ae=!0){var Te=ee.value;T.set(Te,Q++)}}catch(ie){J=!0,te=ie}finally{try{!ae&&re.return&&re.return()}finally{if(J)throw te}}for(var ue=0;ue<T.size;ue++)C[ue]=[];x.forEach(function(ie){for(var fe=ie.children().intersection(y);fe.nodes(":childless").length==0;)fe=fe.nodes()[0].children().intersection(y);var W=0,ce=fe.nodes(":childless")[0].connectedEdges().length;fe.nodes(":childless").forEach(function(K,Re){K.connectedEdges().length<ce&&(ce=K.connectedEdges().length,W=Re)}),w.set(ie.id(),fe.nodes(":childless")[W].id())}),v.forEach(function(ie){var fe=void 0;ie.isParent()?fe=T.get(w.get(ie.id())):fe=T.get(ie.id()),ie.neighborhood().nodes().forEach(function(W){y.intersection(ie.edgesWith(W)).length>0&&(W.isParent()?C[fe].push(w.get(W.id())):C[fe].push(W.id()))})});var De=o(function(fe){var W=T.get(fe),ce=void 0;b.get(fe).forEach(function(K){g.getElementById(K).isParent()?ce=w.get(K):ce=K,C[W].push(ce),C[T.get(ce)].push(fe)})},"_loop"),Ie=!0,Ee=!1,we=void 0;try{for(var Me=b.keys()[Symbol.iterator](),$e;!(Ie=($e=Me.next()).done);Ie=!0){var de=$e.value;De(de)}}catch(ie){Ee=!0,we=ie}finally{try{!Ie&&Me.return&&Me.return()}finally{if(Ee)throw we}}R=T.size;var rt=void 0;if(R>2){G=R<m.sampleSize?R:m.sampleSize;for(var ke=0;ke<R;ke++)P[ke]=[];for(var Fe=0;Fe<G;Fe++)D[Fe]=[];return m.quality=="draft"||m.step=="all"?(H(O),j(),U(),rt={nodeIndexes:T,xCoords:k,yCoords:E}):(T.forEach(function(ie,fe){k.push(g.getElementById(fe).position("x")),E.push(g.getElementById(fe).position("y"))}),rt={nodeIndexes:T,xCoords:k,yCoords:E}),rt}else{var He=T.keys(),at=g.getElementById(He.next().value),qe=at.position(),Ue=at.outerWidth();if(k.push(qe.x),E.push(qe.y),R==2){var ye=g.getElementById(He.next().value),ve=ye.outerWidth();k.push(qe.x+Ue/2+ve/2+m.idealEdgeLength),E.push(qe.y)}return rt={nodeIndexes:T,xCoords:k,yCoords:E},rt}},"spectralLayout");a.exports={spectralLayout:f}}),579:((a,s,l)=>{var u=l(212),h=o(function(f){f&&f("layout","fcose",u)},"register");typeof cytoscape<"u"&&h(cytoscape),a.exports=h}),140:(a=>{a.exports=e})},r={};function i(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return t[a](l,l.exports,i),l.exports}o(i,"__webpack_require__");var n=i(579);return n})()})});var Oy,wm,Hq=z(()=>{"use strict";uc();Oy=o(e=>`<g><rect width="80" height="80" style="fill: #087ebf; stroke-width: 0px;"/>${e}</g>`,"wrapIcon"),wm={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:Oy('<path id="b" data-name="4" d="m20,57.86c0,3.94,8.95,7.14,20,7.14s20-3.2,20-7.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><path id="c" data-name="3" d="m20,45.95c0,3.94,8.95,7.14,20,7.14s20-3.2,20-7.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><path id="d" data-name="2" d="m20,34.05c0,3.94,8.95,7.14,20,7.14s20-3.2,20-7.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse id="e" data-name="1" cx="40" cy="22.14" rx="20" ry="7.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="20" y1="57.86" x2="20" y2="22.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="60" y1="57.86" x2="60" y2="22.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/>')},server:{body:Oy('<rect x="17.5" y="17.5" width="45" height="45" rx="2" ry="2" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="17.5" y1="32.5" x2="62.5" y2="32.5" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="17.5" y1="47.5" x2="62.5" y2="47.5" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><g><path d="m56.25,25c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: #fff; stroke-width: 0px;"/><path d="m56.25,25c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: none; stroke: #fff; stroke-miterlimit: 10;"/></g><g><path d="m56.25,40c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: #fff; stroke-width: 0px;"/><path d="m56.25,40c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: none; stroke: #fff; stroke-miterlimit: 10;"/></g><g><path d="m56.25,55c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: #fff; stroke-width: 0px;"/><path d="m56.25,55c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: none; stroke: #fff; stroke-miterlimit: 10;"/></g><g><circle cx="32.5" cy="25" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="27.5" cy="25" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="22.5" cy="25" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/></g><g><circle cx="32.5" cy="40" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="27.5" cy="40" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="22.5" cy="40" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/></g><g><circle cx="32.5" cy="55" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="27.5" cy="55" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="22.5" cy="55" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/></g>')},disk:{body:Oy('<rect x="20" y="15" width="40" height="50" rx="1" ry="1" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="24" cy="19.17" rx=".8" ry=".83" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="56" cy="19.17" rx=".8" ry=".83" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="24" cy="60.83" rx=".8" ry=".83" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="56" cy="60.83" rx=".8" ry=".83" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="40" cy="33.75" rx="14" ry="14.58" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="40" cy="33.75" rx="4" ry="4.17" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><path d="m37.51,42.52l-4.83,13.22c-.26.71-1.1,1.02-1.76.64l-4.18-2.42c-.66-.38-.81-1.26-.33-1.84l9.01-10.8c.88-1.05,2.56-.08,2.09,1.2Z" style="fill: #fff; stroke-width: 0px;"/>')},internet:{body:Oy('<circle cx="40" cy="40" r="22.5" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="40" y1="17.5" x2="40" y2="62.5" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="17.5" y1="40" x2="62.5" y2="40" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><path d="m39.99,17.51c-15.28,11.1-15.28,33.88,0,44.98" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><path d="m40.01,17.51c15.28,11.1,15.28,33.88,0,44.98" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="19.75" y1="30.1" x2="60.25" y2="30.1" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="19.75" y1="49.9" x2="60.25" y2="49.9" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/>')},cloud:{body:Oy('<path d="m65,47.5c0,2.76-2.24,5-5,5H20c-2.76,0-5-2.24-5-5,0-1.87,1.03-3.51,2.56-4.36-.04-.21-.06-.42-.06-.64,0-2.6,2.48-4.74,5.65-4.97,1.65-4.51,6.34-7.76,11.85-7.76.86,0,1.69.08,2.5.23,2.09-1.57,4.69-2.5,7.5-2.5,6.1,0,11.19,4.38,12.28,10.17,2.14.56,3.72,2.51,3.72,4.83,0,.03,0,.07-.01.1,2.29.46,4.01,2.48,4.01,4.9Z" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/>')},unknown:DD,blank:{body:Oy("")}}}});var ERe,ARe,_Re,DRe,RRe=z(()=>{"use strict";Ut();_s();uc();Ir();Hq();E_();Xt();ERe=o(async function(e,t,r,i){let n=r.getConfigField("padding"),a=r.getConfigField("iconSize"),s=a/2,l=a/6,u=l/2;await Promise.all(t.edges().map(async h=>{let{source:d,sourceDir:f,sourceArrow:p,sourceGroup:m,target:g,targetDir:y,targetArrow:v,targetGroup:x,label:b}=S_(h),{x:T,y:w}=h[0].sourceEndpoint(),{x:C,y:k}=h[0].midpoint(),{x:E,y:A}=h[0].targetEndpoint(),N=n+4;if(m&&(za(f)?T+=f==="L"?-N:N:w+=f==="T"?-N:N+18),x&&(za(y)?E+=y==="L"?-N:N:A+=y==="T"?-N:N+18),!m&&r.getNode(d)?.type==="junction"&&(za(f)?T+=f==="L"?s:-s:w+=f==="T"?s:-s),!x&&r.getNode(g)?.type==="junction"&&(za(y)?E+=y==="L"?s:-s:A+=y==="T"?s:-s),h[0]._private.rscratch){let P=e.insert("g");if(P.insert("path").attr("d",`M ${T},${w} L ${C},${k} L${E},${A} `).attr("class","edge").attr("id",`${i}-${bc(d,g,{prefix:"L"})}`),p){let I=za(f)?oC[f](T,l):T-u,D=uu(f)?oC[f](w,l):w-u;P.insert("polygon").attr("points",Bq[f](l)).attr("transform",`translate(${I},${D})`).attr("class","arrow")}if(v){let I=za(y)?oC[y](E,l):E-u,D=uu(y)?oC[y](A,l):A-u;P.insert("polygon").attr("points",Bq[y](l)).attr("transform",`translate(${I},${D})`).attr("class","arrow")}if(b){let I=lC(f,y)?"XY":za(f)?"X":"Y",D=0;I==="X"?D=Math.abs(T-E):I==="Y"?D=Math.abs(w-A)/1.5:D=Math.abs(T-E)/2;let _=P.append("g");if(await wi(_,b,{useHtmlLabels:!1,width:D,classes:"architecture-service-label"},ge()),_.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),I==="X")_.attr("transform","translate("+C+", "+k+")");else if(I==="Y")_.attr("transform","translate("+C+", "+k+") rotate(-90)");else if(I==="XY"){let R=cC(f,y);if(R&&gRe(R)){let M=_.node().getBoundingClientRect(),[L,B]=vRe(R);_.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*L*B*45})`);let O=_.node().getBoundingClientRect();_.attr("transform",`
|
|
2
|
+
translate(${C}, ${k-M.height/2})
|
|
3
|
+
translate(${L*O.width/2}, ${B*O.height/2})
|
|
4
|
+
rotate(${-1*L*B*45}, 0, ${M.height/2})
|
|
5
|
+
`)}}}}}))},"drawEdges"),ARe=o(async function(e,t,r,i){let a=r.getConfigField("padding")*.75,s=r.getConfigField("fontSize"),u=r.getConfigField("iconSize")/2;await Promise.all(t.nodes().map(async h=>{let d=Nf(h);if(d.type==="group"){let{h:f,w:p,x1:m,y1:g}=h.boundingBox(),y=e.append("rect");y.attr("id",`${i}-group-${d.id}`).attr("x",m+u).attr("y",g+u).attr("width",p).attr("height",f).attr("class","node-bkg");let v=e.append("g"),x=m,b=g;if(d.icon){let T=v.append("g");T.html(`<g>${await ks(d.icon,{height:a,width:a,fallbackPrefix:wm.prefix})}</g>`),T.attr("transform","translate("+(x+u+1)+", "+(b+u+1)+")"),x+=a,b+=s/2-1-2}if(d.label){let T=v.append("g");await wi(T,d.label,{useHtmlLabels:!1,width:p,classes:"architecture-service-label"},ge()),T.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),T.attr("transform","translate("+(x+u+4)+", "+(b+u+2)+")")}r.setElementForId(d.id,y)}}))},"drawGroups"),_Re=o(async function(e,t,r,i){let n=ge();for(let a of r){let s=t.append("g"),l=e.getConfigField("iconSize");if(a.title){let f=s.append("g");await wi(f,a.title,{useHtmlLabels:!1,width:l*1.5,classes:"architecture-service-label"},n),f.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),f.attr("transform","translate("+l/2+", "+l+")")}let u=s.append("g");if(a.icon)u.html(`<g>${await ks(a.icon,{height:l,width:l,fallbackPrefix:wm.prefix})}</g>`);else if(a.iconText){u.html(`<g>${await ks("blank",{height:l,width:l,fallbackPrefix:wm.prefix})}</g>`);let m=u.append("g").append("foreignObject").attr("width",l).attr("height",l).append("div").attr("class","node-icon-text").attr("style",`height: ${l}px;`).append("div").html(fr(a.iconText,n)),g=parseInt(window.getComputedStyle(m.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;m.attr("style",`-webkit-line-clamp: ${Math.floor((l-2)/g)};`)}else u.append("path").attr("class","node-bkg").attr("id",`${i}-node-${a.id}`).attr("d",`M0,${l} V5 Q0,0 5,0 H${l-5} Q${l},0 ${l},5 V${l} Z`);s.attr("id",`${i}-service-${a.id}`).attr("class","architecture-service");let{width:h,height:d}=s.node().getBBox();a.width=h,a.height=d,e.setElementForId(a.id,s)}return 0},"drawServices"),DRe=o(function(e,t,r,i){r.forEach(n=>{let a=t.append("g"),s=e.getConfigField("iconSize");a.append("g").append("rect").attr("id",`${i}-node-${n.id}`).attr("fill-opacity","0").attr("width",s).attr("height",s),a.attr("class","architecture-junction");let{width:u,height:h}=a._groups[0][0].getBBox();a.width=u,a.height=h,e.setElementForId(n.id,a)})},"drawJunctions")});function z3t(e,t,r){e.forEach(i=>{t.add({group:"nodes",data:{type:"service",id:i.id,icon:i.icon,label:i.title,parent:i.in,width:r.getConfigField("iconSize"),height:r.getConfigField("iconSize")},classes:"node-service"})})}function G3t(e,t,r){e.forEach(i=>{t.add({group:"nodes",data:{type:"junction",id:i.id,parent:i.in,width:r.getConfigField("iconSize"),height:r.getConfigField("iconSize")},classes:"node-junction"})})}function V3t(e,t){t.nodes().map(r=>{let i=Nf(r);if(i.type==="group")return;i.x=r.position().x,i.y=r.position().y,e.getElementById(i.id).attr("transform","translate("+(i.x||0)+","+(i.y||0)+")")})}function W3t(e,t){e.forEach(r=>{t.add({group:"nodes",data:{type:"group",id:r.id,icon:r.icon,label:r.title,parent:r.in},classes:"node-group"})})}function q3t(e,t){e.forEach(r=>{let{lhsId:i,rhsId:n,lhsInto:a,lhsGroup:s,rhsInto:l,lhsDir:u,rhsDir:h,rhsGroup:d,title:f}=r,p=lC(r.lhsDir,r.rhsDir)?"segments":"straight",m={id:`${i}-${n}`,label:f,source:i,sourceDir:u,sourceArrow:a,sourceGroup:s,sourceEndpoint:u==="L"?"0 50%":u==="R"?"100% 50%":u==="T"?"50% 0":"50% 100%",target:n,targetDir:h,targetArrow:l,targetGroup:d,targetEndpoint:h==="L"?"0 50%":h==="R"?"100% 50%":h==="T"?"50% 0":"50% 100%"};t.add({group:"edges",data:m,classes:p})})}function U3t(e,t,r){let i=o((l,u)=>Object.entries(l).reduce((h,[d,f])=>{let p=0,m=Object.entries(f);if(m.length===1)return h[d]=m[0][1],h;for(let g=0;g<m.length-1;g++)for(let y=g+1;y<m.length;y++){let[v,x]=m[g],[b,T]=m[y];if(r[v]?.[b]===u)h[d]??=[],h[d]=[...h[d],...x,...T];else if(v==="default"||b==="default")h[d]??=[],h[d]=[...h[d],...x,...T];else{let C=`${d}-${p++}`;h[C]=x;let k=`${d}-${p++}`;h[k]=T}}return h},{}),"flattenAlignments"),n=t.map(l=>{let u={},h={};return Object.entries(l).forEach(([d,[f,p]])=>{let m=e.getNode(d)?.in??"default";u[p]??={},u[p][m]??=[],u[p][m].push(d),h[f]??={},h[f][m]??=[],h[f][m].push(d)}),{horiz:Object.values(i(u,"horizontal")).filter(d=>d.length>1),vert:Object.values(i(h,"vertical")).filter(d=>d.length>1)}}),[a,s]=n.reduce(([l,u],{horiz:h,vert:d})=>[[...l,...h],[...u,...d]],[[],[]]);return{horizontal:a,vertical:s}}function H3t(e,t){let r=[],i=o(a=>`${a[0]},${a[1]}`,"posToStr"),n=o(a=>a.split(",").map(s=>parseInt(s)),"strToPos");return e.forEach(a=>{let s=Object.fromEntries(Object.entries(a).map(([d,f])=>[i(f),d])),l=[i([0,0])],u={},h={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;l.length>0;){let d=l.shift();if(d){u[d]=1;let f=s[d];if(f){let p=n(d);Object.entries(h).forEach(([m,g])=>{let y=i([p[0]+g[0],p[1]+g[1]]),v=s[y];v&&!u[y]&&(l.push(y),r.push({[Pq[m]]:v,[Pq[mRe(m)]]:f,gap:1.5*t.getConfigField("iconSize")}))})}}}}),r}function Y3t(e,t,r,i,n,{spatialMaps:a,groupAlignments:s}){return new Promise(l=>{let u=Je("body").append("div").attr("id","cy").attr("style","display:none"),h=Ko({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge[label]",style:{label:"data(label)"}},{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":`${n.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:`${n.getConfigField("padding")}px`}}],layout:{name:"grid",boundingBox:{x1:0,x2:100,y1:0,y2:100}}});u.remove(),W3t(r,h),z3t(e,h,n),G3t(t,h,n),q3t(i,h);let d=U3t(n,a,s),f=H3t(a,n),p=n.getConfigField("iconSize"),m=n.getConfigField("idealEdgeLengthMultiplier")*p,g=.5*p,y=n.getConfigField("edgeElasticity"),v=h.layout({name:"fcose",quality:"proof",randomize:n.getConfigField("randomize"),nodeSeparation:n.getConfigField("nodeSeparation"),numIter:n.getConfigField("numIter"),styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(x){let[b,T]=x.connectedNodes(),{parent:w}=Nf(b),{parent:C}=Nf(T);return w===C?m:g},edgeElasticity(x){let[b,T]=x.connectedNodes(),{parent:w}=Nf(b),{parent:C}=Nf(T);return w===C?y:.001},alignmentConstraint:d,relativePlacementConstraint:f});v.one("layoutstop",()=>{function x(b,T,w,C){let k,E,{x:A,y:N}=b,{x:P,y:I}=T;E=(C-N+(A-w)*(N-I)/(A-P))/Math.sqrt(1+Math.pow((N-I)/(A-P),2)),k=Math.sqrt(Math.pow(C-N,2)+Math.pow(w-A,2)-Math.pow(E,2));let D=Math.sqrt(Math.pow(P-A,2)+Math.pow(I-N,2));k=k/D;let _=(P-A)*(C-N)-(I-N)*(w-A);switch(!0){case _>=0:_=1;break;case _<0:_=-1;break}let R=(P-A)*(w-A)+(I-N)*(C-N);switch(!0){case R>=0:R=1;break;case R<0:R=-1;break}return E=Math.abs(E)*_,k=k*R,{distances:E,weights:k}}o(x,"getSegmentWeights"),h.startBatch();for(let b of Object.values(h.edges()))if(b.data?.()){let{x:T,y:w}=b.source().position(),{x:C,y:k}=b.target().position();if(T!==C&&w!==k){let E=b.sourceEndpoint(),A=b.targetEndpoint(),{sourceDir:N}=S_(b),[P,I]=uu(N)?[E.x,A.y]:[A.x,E.y],{weights:D,distances:_}=x(E,A,P,I);b.style("segment-distances",_),b.style("segment-weights",D)}}h.endBatch(),v.run()}),v.run(),h.ready(x=>{Z.info("Ready",x),l(h)})})}var LRe,j3t,MRe,NRe=z(()=>{"use strict";OP();LRe=ys(SRe(),1);Rr();St();uc();ps();Di();Hq();E_();RRe();dk([{name:wm.prefix,icons:wm}]);Ko.use(LRe.default);o(z3t,"addServices");o(G3t,"addJunctions");o(V3t,"positionNodes");o(W3t,"addGroups");o(q3t,"addEdges");o(U3t,"getAlignments");o(H3t,"getRelativeConstraints");o(Y3t,"layoutArchitecture");j3t=o(async(e,t,r,i)=>{let n=i.db;n.setDiagramId(t);let a=n.getServices(),s=n.getJunctions(),l=n.getGroups(),u=n.getEdges(),h=n.getDataStructures(),d=bi(t),f=d.append("g");f.attr("class","architecture-edges");let p=d.append("g");p.attr("class","architecture-services");let m=d.append("g");m.attr("class","architecture-groups"),await _Re(n,p,a,t),DRe(n,p,s,t);let g=await Y3t(a,s,l,u,n,h);await ERe(f,g,n,t),await ARe(m,g,n,t),V3t(n,g),Io(void 0,d,n.getConfigField("padding"),n.getConfigField("useMaxWidth"))},"draw"),MRe={draw:j3t}});var IRe={};xr(IRe,{diagram:()=>X3t});var X3t,ORe=z(()=>{"use strict";CRe();$q();wRe();NRe();X3t={parser:zq,get db(){return new Iy},renderer:MRe,styles:kRe}});var Yq,jq,A_,Xq,FRe=z(()=>{"use strict";Yq="position frame",jq="frame positioned",A_="position relation",Xq="relation positioned"});function rEt(){Qq={}}function aEt(){let e=oEt,{ast:t}=Qq,r=zRe();if(!t)throw new Error("No data for EventModel");return t.frames.forEach((i,n)=>{let a=fEt(i,t.dataEntities,r);e=Zq(e,{$kind:Yq,index:n,frame:i,textProps:a});let s;xEt(i)?(Z.debug("source frame",i.sourceFrames),s=t.frames.filter(l=>i.sourceFrames.some(u=>u.$refText===l.name)),s.forEach(l=>{e=Zq(e,{$kind:A_,index:n,frame:i,sourceFrame:l})})):e=Zq(e,{$kind:A_,index:n,frame:i})}),e={...e,sortedSwimlanesArray:GRe(e.swimlanes)},e}function sEt(e){Qq.ast=e}function zRe(){return ti}function lEt(e){let t=e.split(".");if(t.length===2)return t[0]}function cEt(e){let t=e.split(".");return t.length===2?t[1]:e}function uEt(e,t){if(!(!t||t.length===0))return Object.values(e).find(r=>r.namespace===t)}function Kq(e,t,r){return Math.max(t,...Object.keys(e).filter(i=>{let n=Number.parseInt(i);return n>t&&n<r}).map(i=>Number.parseInt(i)))+1}function hEt(e,t){let r=lEt(e.entityIdentifier),i=uEt(t,r);switch(e.modelEntityType){case"ui":case"pcr":case"processor":return i?{index:i.index,label:i.namespace||ti.labelUiAutomation}:r?{index:Kq(t,0,100),label:ti.labelUiAutomationPrefix+r}:{index:0,label:ti.labelUiAutomation};case"rmo":case"readmodel":case"cmd":case"command":return i?{index:i.index,label:i.namespace||ti.labelCommandReadModel}:r?{index:Kq(t,100,200),label:ti.labelCommandReadModelPrefix+r}:{index:100,label:ti.labelCommandReadModel};case"evt":case"event":default:return i?{index:i.index,label:i.namespace||ti.labelEvents}:r?{index:Kq(t,200,300),label:ti.labelEventsPrefix+r}:{index:200,label:ti.labelEvents}}}function dEt(e){let{themeVariables:t}=Nt();switch(e.modelEntityType){case"ui":return{fill:t.emUiFill??"white",stroke:t.emUiStroke??"#dbdada"};case"pcr":case"processor":return{fill:t.emProcessorFill??"#edb3f6",stroke:t.emProcessorStroke??"#b88cbf"};case"rmo":case"readmodel":return{fill:t.emReadModelFill??"#d3f1a2",stroke:t.emReadModelStroke??"#a3b732"};case"cmd":case"command":return{fill:t.emCommandFill??"#bcd6fe",stroke:t.emCommandStroke??"#679ac3"};case"evt":case"event":return{fill:t.emEventFill??"#ffb778",stroke:t.emEventStroke??"#c19a0f"};default:return{fill:"red",stroke:"black"}}}function fEt(e,t,r){let i=Nt(),n=fr(cEt(e.entityIdentifier)??"",i),a,s={fontSize:16,fontWeight:700,fontFamily:'"trebuchet ms", verdana, arial, sans-serif',joinWith:"<br/>"},u=`<b>${Tp(n,r.textMaxWidth,s)}</b>`;if(e.dataInlineValue&&(a=e.dataInlineValue,a=a.substring(a.indexOf("{")+1),a=a.substring(0,a.lastIndexOf("}")-1),a=fr(a,i),a=Tp(a,r.textMaxWidth,s),a=a.replaceAll(" "," ")),e.dataReference){let g=t.find(y=>y.name===e.dataReference?.$refText);g&&(a=g.dataBlockValue,a=a.substring(a.indexOf(`{
|
|
6
|
+
`)+2),a=a.substring(0,a.lastIndexOf("}")-1),a=fr(a,i),a=Tp(a,r.textMaxWidth,s),a=a.replaceAll(" "," "),a+="<br/>")}let h=a!==void 0;h&&(u+=`<br/><br/><code style="text-align: left; display: block;max-width:${r.textMaxWidth}px">${a}</code>`);let d={fontSize:s.fontSize,fontWeight:s.fontWeight,fontFamily:s.fontFamily},f=Px(u,d),p=h?f.width/3:f.width,m={content:u,width:p,height:f.height};return Z.debug(`[${e.name}] ${e.entityIdentifier} text`,m),m}function pEt(e,t){let r=t,i=dEt(r.frame),n={width:r.textProps.width+2*ti.boxTextPadding,height:r.textProps.height+2*ti.boxTextPadding};return[{$kind:jq,frame:r.frame,index:r.index,visual:i,dimension:n,textProps:r.textProps}]}function mEt(e,t,r){return t===void 0?ti.contentStartX:t.index===e.index&&e.r?e.r+ti.boxPadding:r===void 0?ti.contentStartX:r.r-ti.boxOverlap+ti.boxPadding}function gEt(e,t){let r=[...e.map(i=>i.r),t];return Math.max(...r)}function GRe(e){return Object.values(e).sort((t,r)=>t.index-r.index)}function yEt(e,t){let r=t,i=hEt(r.frame,e.swimlanes),n;i.index in e.swimlanes?n=e.swimlanes[i.index]:n={index:i.index,label:i.label,r:0,y:i.index*ti.swimlaneMinHeight+ti.swimlaneGap,height:ti.swimlaneMinHeight,maxHeight:ti.swimlaneMinHeight};let a=e.boxes.length>0?e.boxes[e.boxes.length-1]:void 0,s=e.previousSwimlaneNumber!==void 0?e.swimlanes[e.previousSwimlaneNumber]:void 0,l={width:Math.max(ti.boxMinWidth,Math.min(ti.boxMaxWidth,r.dimension.width))+2*ti.boxPadding,height:Math.max(ti.boxMinHeight,Math.min(ti.boxMaxHeight,r.dimension.height))+2*ti.boxPadding},u=mEt(n,s,a),h=u+l.width+ti.boxPadding,d=gEt(Object.values(e.swimlanes),h);n.r=u+l.width,n.maxHeight=Math.max(n.maxHeight,l.height),n.height=Math.max(ti.swimlaneMinHeight,n.maxHeight)+2*ti.swimlanePadding;let f={x:u,y:ti.swimlanePadding+n.y,r:h,dimension:l,leftSibling:!1,swimlane:n,visual:r.visual,text:r.textProps.content,frame:r.frame,index:r.index},p={...e,boxes:[...e.boxes,f],swimlanes:{...e.swimlanes,[`${n.index}`]:n},previousSwimlaneNumber:i.index,previousFrame:r.frame,maxR:d},m=GRe(p.swimlanes);m.length>0&&(m[0].y=0);for(let g=1;g<m.length;g++){let y=m[g],v=m[g-1];y.y=v.y+v.height+ti.swimlaneGap}return p}function vEt(e,t){return e===0&&t.sourceFrames.length===0}function xEt(e){return e.sourceFrames!==void 0&&e.sourceFrames!==null&&e.sourceFrames.length>0}function $Re(e,t){if(t!=null)return e.find(r=>r.frame.name===t.name)}function bEt(e,t,r){if(!(r<0))for(let i=r;i>=0;i--){let n=e[i];if(n.swimlane.index!==t)return n}}function TEt(e,t){let r=t;if(JA(r.frame)||vEt(r.index,r.frame))return[];let i=$Re(e.boxes,r.frame);if(i===void 0)throw new Error(`Target box not found for frame ${r.frame.name}`);let n;return r.sourceFrame?n=$Re(e.boxes,r.sourceFrame):n=bEt(e.boxes,i.swimlane.index,r.index-1),n===void 0?[]:[{$kind:Xq,frame:r.frame,index:r.index,sourceBox:n,targetBox:i}]}function CEt(e,t){let r=t,i={visual:{fill:"none",stroke:"#000"},source:{x:r.sourceBox.x,y:r.sourceBox.y},target:{x:r.targetBox.x,y:r.targetBox.y},sourceBox:r.sourceBox,targetBox:r.targetBox};return{...e,relations:[...e.relations,i]}}function SEt(e,t){let r=kEt[t.$kind];if(r==null)return[];let i=r(e,t);return Z.debug("decided events",i),i}function EEt(e,t){let r=t.reduce((i,n)=>{let a=wEt[n.$kind];return a==null?i:a(i,n)},e);return Z.debug("evolve events",{state:e,newState:r,events:t}),r}function Zq(e,t){let r=SEt(e,t);return EEt(e,r)}var J3t,eEt,tEt,iEt,nEt,Qq,ti,oEt,kEt,wEt,fC,Jq=z(()=>{"use strict";St();Xt();Xt();br();Ci();Ir();Bn();sl();FRe();J3t=o(function(e){Z.debug("options str",e)},"setOptions"),eEt=o(function(){return{}},"getOptions"),tEt=o(function(){rEt(),gr()},"clear");o(rEt,"reset");iEt=or.eventmodeling,nEt=o(()=>Gr({...iEt,...Nt().eventmodeling}),"getConfig"),Qq={};o(aEt,"getState");o(sEt,"setAst");ti={swimlaneMinHeight:70,swimlanePadding:15,swimlaneGap:10,boxPadding:10,boxOverlap:90,boxDefaultY:0,boxMinWidth:80,boxMaxWidth:450,boxMinHeight:80,boxMaxHeight:750,contentStartX:250,textMaxWidth:430,boxTextFontWeight:"bold",boxTextPadding:10,swimlaneTextFontWeight:"bold",labelUiAutomation:"UI/Automation",labelUiAutomationPrefix:"UI/A: ",labelCommandReadModel:"Command/Read Model",labelCommandReadModelPrefix:"C/RM: ",labelEvents:"Events",labelEventsPrefix:"Stream: "};o(zRe,"getDiagramProps");oEt={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]};o(lEt,"extractNamespace");o(cEt,"extractName");o(uEt,"findSwimlaneByNamespace");o(Kq,"findNextAvailableIndex");o(hEt,"calculateSwimlaneProps");o(dEt,"calculateEntityVisualProps");o(fEt,"calculateTextProps");o(pEt,"decidePositionFrame");o(mEt,"calculateX");o(gEt,"calculateMaxRight");o(GRe,"sortedSwimlanesArray");o(yEt,"evolveFramePositioned");o(vEt,"isFirstFrame");o(xEt,"hasSourceFrame");o($Re,"findBoxByFrame");o(bEt,"findBoxByLineIndex");o(TEt,"decidePositionRelation");o(CEt,"evolveRelationPositioned");kEt={[Yq]:pEt,[A_]:TEt},wEt={[jq]:yEt,[Xq]:CEt};o(SEt,"decide");o(EEt,"evolve");o(Zq,"dispatch");fC={getConfig:nEt,setOptions:J3t,getOptions:eEt,clear:tEt,setAccTitle:Cr,getAccTitle:kr,getAccDescription:Sr,setAccDescription:wr,setDiagramTitle:Ar,getDiagramTitle:Er,setAst:sEt,getDiagramProps:zRe,getState:aEt}});var VRe,WRe=z(()=>{"use strict";sl();St();au();Jq();VRe={parse:o(async e=>{let t=await bn("eventmodeling",e);Z.debug(t),fC.setAst(t),ca(t,fC)},"parse")}});function DEt(e,t){return r=>{let i=r.swimlane.y+t.swimlanePadding,n=e.append("g").attr("class","em-box");n.append("rect").attr("x",r.x).attr("y",i).attr("rx","3").attr("width",r.dimension.width).attr("height",r.dimension.height).attr("stroke",r.visual.stroke).attr("fill",r.visual.fill),n.append("foreignObject").attr("x",r.x+t.boxPadding).attr("y",i+10).attr("width",r.dimension.width-2*t.boxPadding).attr("height",r.dimension.height-2*t.boxPadding).append("xhtml:div").style("display","table").style("height","100%").style("width","100%").append("span").style("display","table-cell").style("text-align","center").style("vertical-align","middle").html(r.text)}}function REt(e,t){return e>t}function LEt(e,t,r,i){return n=>{let a=n.sourceBox.swimlane.y+t.swimlanePadding,s=n.targetBox.swimlane.y+t.swimlanePadding,l=REt(a,s),u=n.sourceBox.x+n.sourceBox.dimension.width*2/3,h=n.targetBox.x+n.targetBox.dimension.width/3,d,f;Z.debug(`rendering relation up=${l} for `,{sourceBox:n.sourceBox,targetBox:n.targetBox}),l?(d=a,f=s+n.targetBox.dimension.height):(d=a+n.sourceBox.dimension.height,f=s);let p=i.emRelationStroke??n.visual.stroke;e.append("path").attr("class","em-relation").attr("fill",n.visual.fill).attr("stroke",p).attr("stroke-width","1").attr("marker-end",`url(#${r})`).attr("d",`M${u} ${d} L${h} ${f}`)}}function MEt(e,t,r,i){return n=>{let a=e.append("g").attr("class","em-swimlane"),s=i.emSwimlaneBackgroundOdd??"rgb(250,250,250)",l=i.emSwimlaneBackgroundStroke??"rgb(240,240,240)";a.append("rect").attr("x",0).attr("y",n.y).attr("rx","3").attr("width",t+r.swimlanePadding).attr("height",n.height).attr("fill",s).attr("stroke",l),a.append("text").attr("font-weight",r.swimlaneTextFontWeight).attr("x",30).attr("y",n.y+30).text(n.label)}}var AEt,_Et,NEt,qRe,URe=z(()=>{"use strict";Rr();Ut();St();AEt=ge(),_Et=AEt?.eventmodeling;o(DEt,"renderD3Box");o(REt,"dirUpwards");o(LEt,"renderD3Relation");o(MEt,"renderD3Swimlane");NEt=o(function(e,t,r,i){if(Z.debug("in eventmodeling renderer",e+`
|
|
7
|
+
`,"id:",t,r),!_Et)throw new Error("EventModeling config not found");let n=i.db,{themeVariables:a,eventmodeling:s}=ge(),l=Je(`[id="${t}"]`),u=n.getDiagramProps(),h=n.getState(),d=`em-arrowhead-${t}`,f=a.emArrowhead??"#000000";h.sortedSwimlanesArray.forEach(MEt(l,h.maxR,u,a)),h.boxes.forEach(DEt(l,u)),h.relations.forEach(LEt(l,u,d,a)),l.append("defs").append("marker").attr("id",d).attr("markerWidth","10").attr("markerHeight","7").attr("refX","10").attr("refY","3.5").attr("orient","auto").append("polygon").attr("points","0 0, 10 3.5, 0 7").attr("fill",f),Av(void 0,l,s?.padding??30,s?.useMaxWidth)},"draw"),qRe={draw:NEt}});var IEt,HRe,YRe=z(()=>{"use strict";IEt=o(e=>"","getStyles"),HRe=IEt});var jRe={};xr(jRe,{diagram:()=>OEt});var OEt,XRe=z(()=>{"use strict";WRe();Jq();URe();YRe();OEt={parser:VRe,db:fC,renderer:qRe,styles:HRe}});var eU,QRe,JRe=z(()=>{"use strict";eU=(function(){var e=o(function(x,b,T,w){for(T=T||{},w=x.length;w--;T[x[w]]=b);return T},"o"),t=[1,4],r=[1,14],i=[1,12],n=[1,13],a=[6,7,8],s=[1,20],l=[1,18],u=[1,19],h=[6,7,11],d=[1,6,13,14],f=[1,23],p=[1,24],m=[1,6,7,11,13,14],g={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:o(function(b,T,w,C,k,E,A){var N=E.length-1;switch(k){case 6:case 7:return C;case 15:C.addNode(E[N-1].length,E[N].trim());break;case 16:C.addNode(0,E[N].trim());break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:t},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:t},{6:r,7:[1,10],9:9,12:11,13:i,14:n},e(a,[2,3]),{1:[2,2]},e(a,[2,4]),e(a,[2,5]),{1:[2,6],6:r,12:15,13:i,14:n},{6:r,9:16,12:11,13:i,14:n},{6:s,7:l,10:17,11:u},e(h,[2,18],{14:[1,21]}),e(h,[2,16]),e(h,[2,17]),{6:s,7:l,10:22,11:u},{1:[2,7],6:r,12:15,13:i,14:n},e(d,[2,14],{7:f,11:p}),e(m,[2,8]),e(m,[2,9]),e(m,[2,10]),e(h,[2,15]),e(d,[2,13],{7:f,11:p}),e(m,[2,11]),e(m,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(b,T){if(T.recoverable)this.trace(b);else{var w=new Error(b);throw w.hash=T,w}},"parseError"),parse:o(function(b){var T=this,w=[0],C=[],k=[null],E=[],A=this.table,N="",P=0,I=0,D=0,_=2,R=1,M=E.slice.call(arguments,1),L=Object.create(this.lexer),B={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(B.yy[O]=this.yy[O]);L.setInput(b,B.yy),B.yy.lexer=L,B.yy.parser=this,typeof L.yylloc>"u"&&(L.yylloc={});var $=L.yylloc;E.push($);var G=L.options&&L.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function F(De){w.length=w.length-2*De,k.length=k.length-De,E.length=E.length-De}o(F,"popStack");function V(){var De;return De=C.pop()||L.lex()||R,typeof De!="number"&&(De instanceof Array&&(C=De,De=C.pop()),De=T.symbols_[De]||De),De}o(V,"lex");for(var H,j,U,Q,Y,ae,J={},te,re,ee,Te;;){if(U=w[w.length-1],this.defaultActions[U]?Q=this.defaultActions[U]:((H===null||typeof H>"u")&&(H=V()),Q=A[U]&&A[U][H]),typeof Q>"u"||!Q.length||!Q[0]){var ue="";Te=[];for(te in A[U])this.terminals_[te]&&te>_&&Te.push("'"+this.terminals_[te]+"'");L.showPosition?ue="Parse error on line "+(P+1)+`:
|
|
8
|
+
`+L.showPosition()+`
|
|
9
|
+
Expecting `+Te.join(", ")+", got '"+(this.terminals_[H]||H)+"'":ue="Parse error on line "+(P+1)+": Unexpected "+(H==R?"end of input":"'"+(this.terminals_[H]||H)+"'"),this.parseError(ue,{text:L.match,token:this.terminals_[H]||H,line:L.yylineno,loc:$,expected:Te})}if(Q[0]instanceof Array&&Q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+U+", token: "+H);switch(Q[0]){case 1:w.push(H),k.push(L.yytext),E.push(L.yylloc),w.push(Q[1]),H=null,j?(H=j,j=null):(I=L.yyleng,N=L.yytext,P=L.yylineno,$=L.yylloc,D>0&&D--);break;case 2:if(re=this.productions_[Q[1]][1],J.$=k[k.length-re],J._$={first_line:E[E.length-(re||1)].first_line,last_line:E[E.length-1].last_line,first_column:E[E.length-(re||1)].first_column,last_column:E[E.length-1].last_column},G&&(J._$.range=[E[E.length-(re||1)].range[0],E[E.length-1].range[1]]),ae=this.performAction.apply(J,[N,I,P,B.yy,Q[1],k,E].concat(M)),typeof ae<"u")return ae;re&&(w=w.slice(0,-1*re*2),k=k.slice(0,-1*re),E=E.slice(0,-1*re)),w.push(this.productions_[Q[1]][0]),k.push(J.$),E.push(J._$),ee=A[w[w.length-2]][w[w.length-1]],w.push(ee);break;case 3:return!0}}return!0},"parse")},y=(function(){var x={EOF:1,parseError:o(function(T,w){if(this.yy.parser)this.yy.parser.parseError(T,w);else throw new Error(T)},"parseError"),setInput:o(function(b,T){return this.yy=T||this.yy||{},this._input=b,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var b=this._input[0];this.yytext+=b,this.yyleng++,this.offset++,this.match+=b,this.matched+=b;var T=b.match(/(?:\r\n?|\n).*/g);return T?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),b},"input"),unput:o(function(b){var T=b.length,w=b.split(/(?:\r\n?|\n)/g);this._input=b+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-T),this.offset-=T;var C=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),w.length-1&&(this.yylineno-=w.length-1);var k=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:w?(w.length===C.length?this.yylloc.first_column:0)+C[C.length-w.length].length-w[0].length:this.yylloc.first_column-T},this.options.ranges&&(this.yylloc.range=[k[0],k[0]+this.yyleng-T]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
10
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(b){this.unput(this.match.slice(b))},"less"),pastInput:o(function(){var b=this.matched.substr(0,this.matched.length-this.match.length);return(b.length>20?"...":"")+b.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var b=this.match;return b.length<20&&(b+=this._input.substr(0,20-b.length)),(b.substr(0,20)+(b.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var b=this.pastInput(),T=new Array(b.length+1).join("-");return b+this.upcomingInput()+`
|
|
11
|
+
`+T+"^"},"showPosition"),test_match:o(function(b,T){var w,C,k;if(this.options.backtrack_lexer&&(k={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(k.yylloc.range=this.yylloc.range.slice(0))),C=b[0].match(/(?:\r\n?|\n).*/g),C&&(this.yylineno+=C.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:C?C[C.length-1].length-C[C.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],w=this.performAction.call(this,this.yy,this,T,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),w)return w;if(this._backtrack){for(var E in k)this[E]=k[E];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var b,T,w,C;this._more||(this.yytext="",this.match="");for(var k=this._currentRules(),E=0;E<k.length;E++)if(w=this._input.match(this.rules[k[E]]),w&&(!T||w[0].length>T[0].length)){if(T=w,C=E,this.options.backtrack_lexer){if(b=this.test_match(w,k[E]),b!==!1)return b;if(this._backtrack){T=!1;continue}else return!1}else if(!this.options.flex)break}return T?(b=this.test_match(T,k[C]),b!==!1?b:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
|
|
12
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var T=this.next();return T||this.lex()},"lex"),begin:o(function(T){this.conditionStack.push(T)},"begin"),popState:o(function(){var T=this.conditionStack.length-1;return T>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(T){return T=this.conditionStack.length-1-Math.abs(T||0),T>=0?this.conditionStack[T]:"INITIAL"},"topState"),pushState:o(function(T){this.begin(T)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(T,w,C,k){var E=k;switch(C){case 0:return 6;case 1:return 8;case 2:return 8;case 3:return 6;case 4:return 7;case 5:return 13;case 6:return 14;case 7:return 11}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:ishikawa-beta\b)/i,/^(?:ishikawa\b)/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:[^\n]+)/i,/^(?:$)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return x})();g.lexer=y;function v(){this.yy={}}return o(v,"Parser"),v.prototype=g,g.Parser=v,new v})();eU.parser=eU;QRe=eU});var __,eLe=z(()=>{"use strict";Ut();Ir();Ci();__=class{constructor(){this.stack=[];this.clear=this.clear.bind(this),this.addNode=this.addNode.bind(this),this.getRoot=this.getRoot.bind(this)}static{o(this,"IshikawaDB")}clear(){this.root=void 0,this.stack=[],this.baseLevel=void 0,gr()}getRoot(){return this.root}addNode(t,r){let i=vt.sanitizeText(r,ge());if(!this.root){this.root={text:i,children:[]},this.stack=[{level:0,node:this.root}],Ar(i);return}this.baseLevel??=t;let n=t-this.baseLevel+1;for(n<=0&&(n=1);this.stack.length>1&&this.stack[this.stack.length-1].level>=n;)this.stack.pop();let a=this.stack[this.stack.length-1].node,s={text:i,children:[]};a.children.push(s),this.stack.push({level:n,node:s})}getAccTitle(){return kr()}setAccTitle(t){Cr(t)}getAccDescription(){return Sr()}setAccDescription(t){wr(t)}getDiagramTitle(){return Er()}setDiagramTitle(t){Ar(t)}}});var $Et,Py,zEt,GEt,VEt,sLe,tLe,rLe,iLe,WEt,nLe,qEt,UEt,HEt,tU,YEt,jEt,oLe,D_,aLe,By,lLe,cLe=z(()=>{"use strict";Ut();ps();Di();Xt();jt();$Et=14,Py=250,zEt=30,GEt=60,VEt=5,sLe=82*Math.PI/180,tLe=Math.cos(sLe),rLe=Math.sin(sLe),iLe=o((e,t,r)=>{let i=e.node().getBBox(),n=i.width+t*2,a=i.height+t*2;Br(e,a,n,r),e.attr("viewBox",`${i.x-t} ${i.y-t} ${n} ${a}`)},"applyPaddedViewBox"),WEt=o((e,t,r,i)=>{let a=i.db.getRoot();if(!a)return;let s=ge(),{look:l,handDrawnSeed:u,themeVariables:h}=s,d=Za(s.fontSize)[0]??$Et,f=l==="handDrawn",p=a.children??[],m=s.ishikawa?.diagramPadding??20,g=s.ishikawa?.useMaxWidth??!1,y=bi(t),v=y.append("g").attr("class","ishikawa"),x=f?ut.svg(y.node()):void 0,b=x?{roughSvg:x,seed:u??0,lineColor:h?.lineColor??"#333",fillColor:h?.mainBkg??"#fff"}:void 0,T=`ishikawa-arrow-${t}`;f||v.append("defs").append("marker").attr("id",T).attr("viewBox","0 0 10 10").attr("refX",0).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 Z").attr("class","ishikawa-arrow");let w=0,C=Py,k=f?void 0:By(v,w,C,w,C,"ishikawa-spine");if(qEt(v,w,C,a.text,d,b),!p.length){f&&By(v,w,C,w,C,"ishikawa-spine",b),iLe(y,m,g);return}w-=20;let E=p.filter((L,B)=>B%2===0),A=p.filter((L,B)=>B%2===1),N=nLe(E),P=nLe(A),I=N.total+P.total,D=Py,_=Py;if(I>0){let L=Py*2,B=Py*.3;D=Math.max(B,L*(N.total/I)),_=Math.max(B,L*(P.total/I))}let R=d*2;D=Math.max(D,N.max*R),_=Math.max(_,P.max*R),C=Math.max(D,Py),k&&k.attr("y1",C).attr("y2",C),v.select(".ishikawa-head-group").attr("transform",`translate(0,${C})`);let M=Math.ceil(p.length/2);for(let L=0;L<M;L++){let B=v.append("g").attr("class","ishikawa-pair");for(let[O,$,G]of[[p[L*2],-1,D],[p[L*2+1],1,_]])O&&YEt(B,O,w,C,$,G,d,b);w=B.selectAll("text").nodes().reduce((O,$)=>Math.min(O,$.getBBox().x),1/0)}if(f)By(v,w,C,0,C,"ishikawa-spine",b);else{k.attr("x1",w);let L=`url(#${T})`;v.selectAll("line.ishikawa-branch, line.ishikawa-sub-branch").attr("marker-start",L)}iLe(y,m,g)},"draw"),nLe=o(e=>{let t=o(r=>r.children.reduce((i,n)=>i+1+t(n),0),"countDescendants");return e.reduce((r,i)=>{let n=t(i);return r.total+=n,r.max=Math.max(r.max,n),r},{total:0,max:0})},"sideStats"),qEt=o((e,t,r,i,n,a)=>{let s=Math.max(6,Math.floor(110/(n*.6))),l=e.append("g").attr("class","ishikawa-head-group").attr("transform",`translate(${t},${r})`),u=D_(l,oLe(i,s),0,0,"ishikawa-head-label","start",n),h=u.node().getBBox(),d=Math.max(60,h.width+6),f=Math.max(40,h.height*2+40),p=`M 0 ${-f/2} L 0 ${f/2} Q ${d*2.4} 0 0 ${-f/2} Z`;if(a){let m=a.roughSvg.path(p,{roughness:1.5,seed:a.seed,fill:a.fillColor,fillStyle:"hachure",fillWeight:2.5,hachureGap:5,stroke:a.lineColor,strokeWidth:2});l.insert(()=>m,":first-child").attr("class","ishikawa-head")}else l.insert("path",":first-child").attr("class","ishikawa-head").attr("d",p);u.attr("transform",`translate(${(d-h.width)/2-h.x+3},${-h.y-h.height/2})`)},"drawHead"),UEt=o((e,t)=>{let r=[],i=[],n=o((a,s,l)=>{let u=t===-1?[...a].reverse():a;for(let h of u){let d=r.length,f=h.children??[];r.push({depth:l,text:oLe(h.text,15),parentIndex:s,childCount:f.length}),l%2===0?(i.push(d),f.length&&n(f,d,l+1)):(f.length&&n(f,d,l+1),i.push(d))}},"walk");return n(e,-1,2),{entries:r,yOrder:i}},"flattenTree"),HEt=o((e,t,r,i,n,a,s)=>{let l=e.append("g").attr("class","ishikawa-label-group"),h=D_(l,t,r,i+11*n,"ishikawa-label cause","middle",a).node().getBBox();if(s){let d=s.roughSvg.rectangle(h.x-20,h.y-2,h.width+40,h.height+4,{roughness:1.5,seed:s.seed,fill:s.fillColor,fillStyle:"hachure",fillWeight:2.5,hachureGap:5,stroke:s.lineColor,strokeWidth:2});l.insert(()=>d,":first-child").attr("class","ishikawa-label-box")}else l.insert("rect",":first-child").attr("class","ishikawa-label-box").attr("x",h.x-20).attr("y",h.y-2).attr("width",h.width+40).attr("height",h.height+4)},"drawCauseLabel"),tU=o((e,t,r,i,n,a)=>{let s=Math.sqrt(i*i+n*n);if(s===0)return;let l=i/s,u=n/s,h=6,d=-u*h,f=l*h,p=t,m=r,g=`M ${p} ${m} L ${p-l*h*2+d} ${m-u*h*2+f} L ${p-l*h*2-d} ${m-u*h*2-f} Z`,y=a.roughSvg.path(g,{roughness:1,seed:a.seed,fill:a.lineColor,fillStyle:"solid",stroke:a.lineColor,strokeWidth:1});e.append(()=>y)},"drawArrowMarker"),YEt=o((e,t,r,i,n,a,s,l)=>{let u=t.children??[],h=a*(u.length?1:.2),d=-tLe*h,f=rLe*h*n,p=r+d,m=i+f;if(By(e,r,i,p,m,"ishikawa-branch",l),l&&tU(e,r,i,r-p,i-m,l),HEt(e,t.text,p,m,n,s,l),!u.length)return;let{entries:g,yOrder:y}=UEt(u,n),v=g.length,x=new Array(v);for(let[k,E]of y.entries())x[E]=i+f*((k+1)/(v+1));let b=new Map;b.set(-1,{x0:r,y0:i,x1:p,y1:m,childCount:u.length,childrenDrawn:0});let T=-tLe,w=rLe*n,C=n<0?"ishikawa-label up":"ishikawa-label down";for(let[k,E]of g.entries()){let A=x[k],N=b.get(E.parentIndex),P=e.append("g").attr("class","ishikawa-sub-group"),I=0,D=0,_=0;if(E.depth%2===0){let R=N.y1-N.y0;I=aLe(N.x0,N.x1,R?(A-N.y0)/R:.5),D=A,_=I-(E.childCount>0?GEt+E.childCount*VEt:zEt),By(P,I,A,_,A,"ishikawa-sub-branch",l),l&&tU(P,I,A,1,0,l),D_(P,E.text,_,A,"ishikawa-label align","end",s)}else{let R=N.childrenDrawn++;I=aLe(N.x0,N.x1,(N.childCount-R)/(N.childCount+1)),D=N.y0,_=I+T*((A-D)/w),By(P,I,D,_,A,"ishikawa-sub-branch",l),l&&tU(P,I,D,I-_,D-A,l),D_(P,E.text,_,A,C,"end",s)}E.childCount>0&&b.set(k,{x0:I,y0:D,x1:_,y1:A,childCount:E.childCount,childrenDrawn:0})}},"drawBranch"),jEt=o(e=>e.split(/<br\s*\/?>|\n/),"splitLines"),oLe=o((e,t)=>{if(e.length<=t)return e;let r=[];for(let i of e.split(/\s+/)){let n=r.length-1;n>=0&&r[n].length+1+i.length<=t?r[n]+=" "+i:r.push(i)}return r.join(`
|
|
13
|
+
`)},"wrapText"),D_=o((e,t,r,i,n,a,s)=>{let l=jEt(t),u=s*1.05,h=e.append("text").attr("class",n).attr("text-anchor",a).attr("x",r).attr("y",i-(l.length-1)*u/2);for(let[d,f]of l.entries())h.append("tspan").attr("x",r).attr("dy",d===0?0:u).text(f);return h},"drawMultilineText"),aLe=o((e,t,r)=>e+(t-e)*r,"lerp"),By=o((e,t,r,i,n,a,s)=>{if(s){let l=s.roughSvg.line(t,r,i,n,{roughness:1.5,seed:s.seed,stroke:s.lineColor,strokeWidth:2});e.append(()=>l).attr("class",a);return}return e.append("line").attr("class",a).attr("x1",t).attr("y1",r).attr("x2",i).attr("y2",n)},"drawLine"),lLe={draw:WEt}});var XEt,uLe,hLe=z(()=>{"use strict";XEt=o(e=>`
|
|
14
|
+
.ishikawa .ishikawa-spine,
|
|
15
|
+
.ishikawa .ishikawa-branch,
|
|
16
|
+
.ishikawa .ishikawa-sub-branch {
|
|
17
|
+
stroke: ${e.lineColor};
|
|
18
|
+
stroke-width: 2;
|
|
19
|
+
fill: none;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.ishikawa .ishikawa-sub-branch {
|
|
23
|
+
stroke-width: 1;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.ishikawa .ishikawa-arrow {
|
|
27
|
+
fill: ${e.lineColor};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.ishikawa .ishikawa-head {
|
|
31
|
+
fill: ${e.mainBkg};
|
|
32
|
+
stroke: ${e.lineColor};
|
|
33
|
+
stroke-width: 2;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.ishikawa .ishikawa-label-box {
|
|
37
|
+
fill: ${e.mainBkg};
|
|
38
|
+
stroke: ${e.lineColor};
|
|
39
|
+
stroke-width: 2;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.ishikawa text {
|
|
43
|
+
font-family: ${e.fontFamily};
|
|
44
|
+
font-size: ${e.fontSize};
|
|
45
|
+
fill: ${e.textColor};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.ishikawa .ishikawa-head-label {
|
|
49
|
+
font-weight: 600;
|
|
50
|
+
text-anchor: middle;
|
|
51
|
+
dominant-baseline: middle;
|
|
52
|
+
font-size: 14px;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.ishikawa .ishikawa-label {
|
|
56
|
+
text-anchor: end;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.ishikawa .ishikawa-label.cause {
|
|
60
|
+
text-anchor: middle;
|
|
61
|
+
dominant-baseline: middle;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.ishikawa .ishikawa-label.align {
|
|
65
|
+
text-anchor: end;
|
|
66
|
+
dominant-baseline: middle;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.ishikawa .ishikawa-label.up {
|
|
70
|
+
dominant-baseline: baseline;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.ishikawa .ishikawa-label.down {
|
|
74
|
+
dominant-baseline: hanging;
|
|
75
|
+
}
|
|
76
|
+
`,"getStyles"),uLe=XEt});var dLe={};xr(dLe,{diagram:()=>KEt});var KEt,fLe=z(()=>{"use strict";JRe();eLe();cLe();hLe();KEt={parser:QRe,get db(){return new __},renderer:lLe,styles:uLe}});var rU,gLe,yLe=z(()=>{"use strict";rU=(function(){var e=o(function(b,T,w,C){for(w=w||{},C=b.length;C--;w[b[C]]=T);return w},"o"),t=[5,8],r=[7,8,11,12,17,19,22,24],i=[1,17],n=[1,18],a=[7,8,11,12,14,15,16,17,19,20,21,22,24,27],s=[1,31],l=[1,39],u=[7,8,11,12,17,19,22,24,27],h=[1,57],d=[1,56],f=[1,58],p=[1,59],m=[1,60],g=[7,8,11,12,16,17,19,20,22,24,27,31,32,33],y={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,optNewlines:4,VENN:5,document:6,EOF:7,NEWLINE:8,line:9,statement:10,TITLE:11,SET:12,identifier:13,BRACKET_LABEL:14,COLON:15,NUMERIC:16,UNION:17,identifierList:18,TEXT:19,IDENTIFIER:20,STRING:21,INDENT_TEXT:22,indentedTextTail:23,STYLE:24,stylesOpt:25,styleField:26,COMMA:27,styleValue:28,valueTokens:29,valueToken:30,HEXCOLOR:31,RGBCOLOR:32,RGBACOLOR:33,$accept:0,$end:1},terminals_:{2:"error",5:"VENN",7:"EOF",8:"NEWLINE",11:"TITLE",12:"SET",14:"BRACKET_LABEL",15:"COLON",16:"NUMERIC",17:"UNION",19:"TEXT",20:"IDENTIFIER",21:"STRING",22:"INDENT_TEXT",24:"STYLE",27:"COMMA",31:"HEXCOLOR",32:"RGBCOLOR",33:"RGBACOLOR"},productions_:[0,[3,4],[4,0],[4,2],[6,0],[6,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,5],[10,2],[10,3],[10,4],[10,5],[10,3],[10,3],[10,3],[10,4],[10,4],[10,2],[10,3],[23,1],[23,1],[23,1],[23,2],[23,2],[25,1],[25,3],[26,3],[28,1],[28,1],[29,1],[29,2],[30,1],[30,1],[30,1],[30,1],[30,1],[18,1],[18,3],[13,1],[13,1]],performAction:o(function(T,w,C,k,E,A,N){var P=A.length-1;switch(E){case 1:return A[P-1];case 2:case 3:case 4:this.$=[];break;case 5:A[P-1].push(A[P]),this.$=A[P-1];break;case 6:this.$=[];break;case 7:case 22:case 32:case 36:case 37:case 38:case 39:case 40:this.$=A[P];break;case 8:k.setDiagramTitle(A[P].substr(6)),this.$=A[P].substr(6);break;case 9:k.addSubsetData([A[P]],void 0,void 0),k.setIndentMode&&k.setIndentMode(!0);break;case 10:k.addSubsetData([A[P-1]],A[P],void 0),k.setIndentMode&&k.setIndentMode(!0);break;case 11:k.addSubsetData([A[P-2]],void 0,parseFloat(A[P])),k.setIndentMode&&k.setIndentMode(!0);break;case 12:k.addSubsetData([A[P-3]],A[P-2],parseFloat(A[P])),k.setIndentMode&&k.setIndentMode(!0);break;case 13:if(A[P].length<2)throw new Error("union requires multiple identifiers");k.validateUnionIdentifiers&&k.validateUnionIdentifiers(A[P]),k.addSubsetData(A[P],void 0,void 0),k.setIndentMode&&k.setIndentMode(!0);break;case 14:if(A[P-1].length<2)throw new Error("union requires multiple identifiers");k.validateUnionIdentifiers&&k.validateUnionIdentifiers(A[P-1]),k.addSubsetData(A[P-1],A[P],void 0),k.setIndentMode&&k.setIndentMode(!0);break;case 15:if(A[P-2].length<2)throw new Error("union requires multiple identifiers");k.validateUnionIdentifiers&&k.validateUnionIdentifiers(A[P-2]),k.addSubsetData(A[P-2],void 0,parseFloat(A[P])),k.setIndentMode&&k.setIndentMode(!0);break;case 16:if(A[P-3].length<2)throw new Error("union requires multiple identifiers");k.validateUnionIdentifiers&&k.validateUnionIdentifiers(A[P-3]),k.addSubsetData(A[P-3],A[P-2],parseFloat(A[P])),k.setIndentMode&&k.setIndentMode(!0);break;case 17:case 18:case 19:k.addTextData(A[P-1],A[P],void 0);break;case 20:case 21:k.addTextData(A[P-2],A[P-1],A[P]);break;case 23:k.addStyleData(A[P-1],A[P]);break;case 24:case 25:case 26:var I=k.getCurrentSets();if(!I)throw new Error("text requires set");k.addTextData(I,A[P],void 0);break;case 27:case 28:var I=k.getCurrentSets();if(!I)throw new Error("text requires set");k.addTextData(I,A[P-1],A[P]);break;case 29:case 41:this.$=[A[P]];break;case 30:case 42:this.$=[...A[P-2],A[P]];break;case 31:this.$=[A[P-2],A[P]];break;case 33:this.$=A[P].join(" ");break;case 34:this.$=[A[P]];break;case 35:A[P-1].push(A[P]),this.$=A[P-1];break;case 43:case 44:this.$=A[P];break}},"anonymous"),table:[e(t,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],8:[1,4]},e(r,[2,4],{6:5}),e(t,[2,3]),{7:[1,6],8:[1,8],9:7,10:9,11:[1,10],12:[1,11],17:[1,12],19:[1,13],22:[1,14],24:[1,15]},{1:[2,1]},e(r,[2,5]),e(r,[2,6]),e(r,[2,7]),e(r,[2,8]),{13:16,20:i,21:n},{13:20,18:19,20:i,21:n},{13:20,18:21,20:i,21:n},{16:[1,25],20:[1,23],21:[1,24],23:22},{13:20,18:26,20:i,21:n},e(r,[2,9],{14:[1,27],15:[1,28]}),e(a,[2,43]),e(a,[2,44]),e(r,[2,13],{14:[1,29],15:[1,30],27:s}),e(a,[2,41]),{16:[1,34],20:[1,32],21:[1,33],27:s},e(r,[2,22]),e(r,[2,24],{14:[1,35]}),e(r,[2,25],{14:[1,36]}),e(r,[2,26]),{20:l,25:37,26:38,27:s},e(r,[2,10],{15:[1,40]}),{16:[1,41]},e(r,[2,14],{15:[1,42]}),{16:[1,43]},{13:44,20:i,21:n},e(r,[2,17],{14:[1,45]}),e(r,[2,18],{14:[1,46]}),e(r,[2,19]),e(r,[2,27]),e(r,[2,28]),e(r,[2,23],{27:[1,47]}),e(u,[2,29]),{15:[1,48]},{16:[1,49]},e(r,[2,11]),{16:[1,50]},e(r,[2,15]),e(a,[2,42]),e(r,[2,20]),e(r,[2,21]),{20:l,26:51},{16:h,20:d,21:[1,53],28:52,29:54,30:55,31:f,32:p,33:m},e(r,[2,12]),e(r,[2,16]),e(u,[2,30]),e(u,[2,31]),e(u,[2,32]),e(u,[2,33],{30:61,16:h,20:d,31:f,32:p,33:m}),e(g,[2,34]),e(g,[2,36]),e(g,[2,37]),e(g,[2,38]),e(g,[2,39]),e(g,[2,40]),e(g,[2,35])],defaultActions:{6:[2,1]},parseError:o(function(T,w){if(w.recoverable)this.trace(T);else{var C=new Error(T);throw C.hash=w,C}},"parseError"),parse:o(function(T){var w=this,C=[0],k=[],E=[null],A=[],N=this.table,P="",I=0,D=0,_=0,R=2,M=1,L=A.slice.call(arguments,1),B=Object.create(this.lexer),O={yy:{}};for(var $ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,$)&&(O.yy[$]=this.yy[$]);B.setInput(T,O.yy),O.yy.lexer=B,O.yy.parser=this,typeof B.yylloc>"u"&&(B.yylloc={});var G=B.yylloc;A.push(G);var F=B.options&&B.options.ranges;typeof O.yy.parseError=="function"?this.parseError=O.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function V(Ie){C.length=C.length-2*Ie,E.length=E.length-Ie,A.length=A.length-Ie}o(V,"popStack");function H(){var Ie;return Ie=k.pop()||B.lex()||M,typeof Ie!="number"&&(Ie instanceof Array&&(k=Ie,Ie=k.pop()),Ie=w.symbols_[Ie]||Ie),Ie}o(H,"lex");for(var j,U,Q,Y,ae,J,te={},re,ee,Te,ue;;){if(Q=C[C.length-1],this.defaultActions[Q]?Y=this.defaultActions[Q]:((j===null||typeof j>"u")&&(j=H()),Y=N[Q]&&N[Q][j]),typeof Y>"u"||!Y.length||!Y[0]){var De="";ue=[];for(re in N[Q])this.terminals_[re]&&re>R&&ue.push("'"+this.terminals_[re]+"'");B.showPosition?De="Parse error on line "+(I+1)+`:
|
|
77
|
+
`+B.showPosition()+`
|
|
78
|
+
Expecting `+ue.join(", ")+", got '"+(this.terminals_[j]||j)+"'":De="Parse error on line "+(I+1)+": Unexpected "+(j==M?"end of input":"'"+(this.terminals_[j]||j)+"'"),this.parseError(De,{text:B.match,token:this.terminals_[j]||j,line:B.yylineno,loc:G,expected:ue})}if(Y[0]instanceof Array&&Y.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Q+", token: "+j);switch(Y[0]){case 1:C.push(j),E.push(B.yytext),A.push(B.yylloc),C.push(Y[1]),j=null,U?(j=U,U=null):(D=B.yyleng,P=B.yytext,I=B.yylineno,G=B.yylloc,_>0&&_--);break;case 2:if(ee=this.productions_[Y[1]][1],te.$=E[E.length-ee],te._$={first_line:A[A.length-(ee||1)].first_line,last_line:A[A.length-1].last_line,first_column:A[A.length-(ee||1)].first_column,last_column:A[A.length-1].last_column},F&&(te._$.range=[A[A.length-(ee||1)].range[0],A[A.length-1].range[1]]),J=this.performAction.apply(te,[P,D,I,O.yy,Y[1],E,A].concat(L)),typeof J<"u")return J;ee&&(C=C.slice(0,-1*ee*2),E=E.slice(0,-1*ee),A=A.slice(0,-1*ee)),C.push(this.productions_[Y[1]][0]),E.push(te.$),A.push(te._$),Te=N[C[C.length-2]][C[C.length-1]],C.push(Te);break;case 3:return!0}}return!0},"parse")},v=(function(){var b={EOF:1,parseError:o(function(w,C){if(this.yy.parser)this.yy.parser.parseError(w,C);else throw new Error(w)},"parseError"),setInput:o(function(T,w){return this.yy=w||this.yy||{},this._input=T,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var T=this._input[0];this.yytext+=T,this.yyleng++,this.offset++,this.match+=T,this.matched+=T;var w=T.match(/(?:\r\n?|\n).*/g);return w?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),T},"input"),unput:o(function(T){var w=T.length,C=T.split(/(?:\r\n?|\n)/g);this._input=T+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-w),this.offset-=w;var k=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),C.length-1&&(this.yylineno-=C.length-1);var E=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:C?(C.length===k.length?this.yylloc.first_column:0)+k[k.length-C.length].length-C[0].length:this.yylloc.first_column-w},this.options.ranges&&(this.yylloc.range=[E[0],E[0]+this.yyleng-w]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
79
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(T){this.unput(this.match.slice(T))},"less"),pastInput:o(function(){var T=this.matched.substr(0,this.matched.length-this.match.length);return(T.length>20?"...":"")+T.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var T=this.match;return T.length<20&&(T+=this._input.substr(0,20-T.length)),(T.substr(0,20)+(T.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var T=this.pastInput(),w=new Array(T.length+1).join("-");return T+this.upcomingInput()+`
|
|
80
|
+
`+w+"^"},"showPosition"),test_match:o(function(T,w){var C,k,E;if(this.options.backtrack_lexer&&(E={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(E.yylloc.range=this.yylloc.range.slice(0))),k=T[0].match(/(?:\r\n?|\n).*/g),k&&(this.yylineno+=k.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:k?k[k.length-1].length-k[k.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+T[0].length},this.yytext+=T[0],this.match+=T[0],this.matches=T,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(T[0].length),this.matched+=T[0],C=this.performAction.call(this,this.yy,this,w,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),C)return C;if(this._backtrack){for(var A in E)this[A]=E[A];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var T,w,C,k;this._more||(this.yytext="",this.match="");for(var E=this._currentRules(),A=0;A<E.length;A++)if(C=this._input.match(this.rules[E[A]]),C&&(!w||C[0].length>w[0].length)){if(w=C,k=A,this.options.backtrack_lexer){if(T=this.test_match(C,E[A]),T!==!1)return T;if(this._backtrack){w=!1;continue}else return!1}else if(!this.options.flex)break}return w?(T=this.test_match(w,E[k]),T!==!1?T:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
|
|
81
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var w=this.next();return w||this.lex()},"lex"),begin:o(function(w){this.conditionStack.push(w)},"begin"),popState:o(function(){var w=this.conditionStack.length-1;return w>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(w){return w=this.conditionStack.length-1-Math.abs(w||0),w>=0?this.conditionStack[w]:"INITIAL"},"topState"),pushState:o(function(w){this.begin(w)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(w,C,k,E){var A=E;switch(k){case 0:break;case 1:break;case 2:break;case 3:if(w.getIndentMode&&w.getIndentMode())return w.consumeIndentText=!0,this.begin("INITIAL"),22;break;case 4:break;case 5:w.setIndentMode&&w.setIndentMode(!1),this.begin("INITIAL"),this.unput(C.yytext);break;case 6:return this.begin("bol"),8;break;case 7:break;case 8:break;case 9:return 7;case 10:return 11;case 11:return 5;case 12:return 12;case 13:return 17;case 14:if(w.consumeIndentText)w.consumeIndentText=!1;else return 19;break;case 15:return 24;case 16:return C.yytext=C.yytext.slice(2,-2),14;break;case 17:return C.yytext=C.yytext.slice(1,-1).trim(),14;break;case 18:return 16;case 19:return 31;case 20:return 33;case 21:return 32;case 22:return 20;case 23:return 21;case 24:return 27;case 25:return 15}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[ \t]+(?=[\n\r]))/i,/^(?:[ \t]+(?=text\b))/i,/^(?:[ \t]+)/i,/^(?:[^ \t\n\r])/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[ \t]+)/i,/^(?:$)/i,/^(?:title\s[^#\n;]+)/i,/^(?:venn-beta\b)/i,/^(?:set\b)/i,/^(?:union\b)/i,/^(?:text\b)/i,/^(?:style\b)/i,/^(?:\["[^\"]*"\])/i,/^(?:\[[^\]\"]+\])/i,/^(?:[+-]?(\d+(\.\d+)?|\.\d+))/i,/^(?:#[0-9a-fA-F]{3,8})/i,/^(?:rgba\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:rgb\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:"[^\"]*")/i,/^(?:,)/i,/^(?::)/i],conditions:{bol:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0},INITIAL:{rules:[0,1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0}}};return b})();y.lexer=v;function x(){this.yy={}}return o(x,"Parser"),x.prototype=y,y.Parser=x,new x})();rU.parser=rU;gLe=rU});function h5t(){return Gr(u5t,Nt().venn)}var iU,nU,aU,sU,oU,lU,JEt,e5t,pC,t5t,r5t,i5t,n5t,R_,a5t,s5t,o5t,l5t,c5t,u5t,d5t,vLe,xLe=z(()=>{"use strict";Xt();br();Ci();Bn();iU=[],nU=[],aU=[],sU=new Set,lU=!1,JEt=o((e,t,r)=>{let i=R_(e).sort(),n=r??10/Math.pow(e.length,2);oU=i,i.length===1&&sU.add(i[0]),iU.push({sets:i,size:n,label:t?pC(t):void 0})},"addSubsetData"),e5t=o(()=>iU,"getSubsetData"),pC=o(e=>{let t=e.trim();return t.length>=2&&t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t},"normalizeText"),t5t=o(e=>e&&pC(e),"normalizeStyleValue"),r5t=o((e,t,r)=>{let i=pC(t);nU.push({sets:R_(e).sort(),id:i,label:r?pC(r):void 0})},"addTextData"),i5t=o((e,t)=>{let r=R_(e).sort(),i={};for(let[n,a]of t)i[n]=t5t(a)??a;aU.push({targets:r,styles:i})},"addStyleData"),n5t=o(()=>aU,"getStyleData"),R_=o(e=>e.map(t=>pC(t)),"normalizeIdentifierList"),a5t=o(e=>{let r=R_(e).filter(i=>!sU.has(i));if(r.length>0)throw new Error(`unknown set identifier: ${r.join(", ")}`)},"validateUnionIdentifiers"),s5t=o(()=>nU,"getTextData"),o5t=o(()=>oU,"getCurrentSets"),l5t=o(()=>lU,"getIndentMode"),c5t=o(e=>{lU=e},"setIndentMode"),u5t=or.venn;o(h5t,"getConfig");d5t=o(()=>{gr(),iU.length=0,nU.length=0,aU.length=0,sU.clear(),oU=void 0,lU=!1},"customClear"),vLe={getConfig:h5t,clear:d5t,setAccTitle:Cr,getAccTitle:kr,setDiagramTitle:Ar,getDiagramTitle:Er,getAccDescription:Sr,setAccDescription:wr,addSubsetData:JEt,getSubsetData:e5t,addTextData:r5t,addStyleData:i5t,validateUnionIdentifiers:a5t,getTextData:s5t,getStyleData:n5t,getCurrentSets:o5t,getIndentMode:l5t,setIndentMode:c5t}});var f5t,bLe,TLe=z(()=>{"use strict";f5t=o(e=>`
|
|
82
|
+
.venn-title {
|
|
83
|
+
font-size: 32px;
|
|
84
|
+
fill: ${e.vennTitleTextColor};
|
|
85
|
+
font-family: ${e.fontFamily};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.venn-circle text {
|
|
89
|
+
font-size: 48px;
|
|
90
|
+
font-family: ${e.fontFamily};
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.venn-intersection text {
|
|
94
|
+
font-size: 48px;
|
|
95
|
+
fill: ${e.vennSetTextColor};
|
|
96
|
+
font-family: ${e.fontFamily};
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.venn-text-node {
|
|
100
|
+
font-family: ${e.fontFamily};
|
|
101
|
+
color: ${e.vennSetTextColor};
|
|
102
|
+
}
|
|
103
|
+
`,"getStyles"),bLe=f5t});function L_(e,t){let r=m5t(e),i=r.filter(l=>p5t(l,e)),n=0,a=0,s=[];if(i.length>1){let l=SLe(i);for(let h=0;h<i.length;++h){let d=i[h];d.angle=Math.atan2(d.x-l.x,d.y-l.y)}i.sort((h,d)=>d.angle-h.angle);let u=i[i.length-1];for(let h=0;h<i.length;++h){let d=i[h];a+=(u.x+d.x)*(d.y-u.y);let f={x:(d.x+u.x)/2,y:(d.y+u.y)/2},p=null;for(let m=0;m<d.parentIndex.length;++m)if(u.parentIndex.includes(d.parentIndex[m])){let g=e[d.parentIndex[m]],y=Math.atan2(d.x-g.x,d.y-g.y),v=Math.atan2(u.x-g.x,u.y-g.y),x=v-y;x<0&&(x+=2*Math.PI);let b=v-x/2,T=Xs(f,{x:g.x+g.radius*Math.sin(b),y:g.y+g.radius*Math.cos(b)});T>g.radius*2&&(T=g.radius*2),(p==null||p.width>T)&&(p={circle:g,width:T,p1:d,p2:u,large:T>g.radius,sweep:!0})}p!=null&&(s.push(p),n+=hU(p.circle.radius,p.width),u=d)}}else{let l=e[0];for(let h=1;h<e.length;++h)e[h].radius<l.radius&&(l=e[h]);let u=!1;for(let h=0;h<e.length;++h)if(Xs(e[h],l)>Math.abs(l.radius-e[h].radius)){u=!0;break}u?n=a=0:(n=l.radius*l.radius*Math.PI,s.push({circle:l,p1:{x:l.x,y:l.y+l.radius},p2:{x:l.x-1e-10,y:l.y+l.radius},width:l.radius*2,large:!0,sweep:!0}))}return a/=2,t&&(t.area=n+a,t.arcArea=n,t.polygonArea=a,t.arcs=s,t.innerPoints=i,t.intersectionPoints=r),n+a}function p5t(e,t){return t.every(r=>Xs(e,r)<r.radius+1e-10)}function m5t(e){let t=[];for(let r=0;r<e.length;++r)for(let i=r+1;i<e.length;++i){let n=wLe(e[r],e[i]);for(let a of n)a.parentIndex=[r,i],t.push(a)}return t}function hU(e,t){return e*e*Math.acos(1-t/e)-(e-t)*Math.sqrt(t*(2*e-t))}function Xs(e,t){return Math.sqrt((e.x-t.x)*(e.x-t.x)+(e.y-t.y)*(e.y-t.y))}function yU(e,t,r){if(r>=e+t)return 0;if(r<=Math.abs(e-t))return Math.PI*Math.min(e,t)*Math.min(e,t);let i=e-(r*r-t*t+e*e)/(2*r),n=t-(r*r-e*e+t*t)/(2*r);return hU(e,i)+hU(t,n)}function wLe(e,t){let r=Xs(e,t),i=e.radius,n=t.radius;if(r>=i+n||r<=Math.abs(i-n))return[];let a=(i*i-n*n+r*r)/(2*r),s=Math.sqrt(i*i-a*a),l=e.x+a*(t.x-e.x)/r,u=e.y+a*(t.y-e.y)/r,h=-(t.y-e.y)*(s/r),d=-(t.x-e.x)*(s/r);return[{x:l+h,y:u-d},{x:l-h,y:u+d}]}function SLe(e){let t={x:0,y:0};for(let r of e)t.x+=r.x,t.y+=r.y;return t.x/=e.length,t.y/=e.length,t}function g5t(e,t,r,i){i=i||{};let n=i.maxIterations||100,a=i.tolerance||1e-10,s=e(t),l=e(r),u=r-t;if(s*l>0)throw"Initial bisect points must have opposite signs";if(s===0)return t;if(l===0)return r;for(let h=0;h<n;++h){u/=2;let d=t+u,f=e(d);if(f*s>=0&&(t=d),Math.abs(u)<a||f===0)return d}return t+u}function dU(e){let t=new Array(e);for(let r=0;r<e;++r)t[r]=0;return t}function CLe(e,t){return dU(e).map(()=>dU(t))}function Fy(e,t){let r=0;for(let i=0;i<e.length;++i)r+=e[i]*t[i];return r}function fU(e){return Math.sqrt(Fy(e,e))}function pU(e,t,r){for(let i=0;i<t.length;++i)e[i]=t[i]*r}function Rh(e,t,r,i,n){for(let a=0;a<e.length;++a)e[a]=t*r[a]+i*n[a]}function ELe(e,t,r){r=r||{};let i=r.maxIterations||t.length*200,n=r.nonZeroDelta||1.05,a=r.zeroDelta||.001,s=r.minErrorDelta||1e-6,l=r.minErrorDelta||1e-5,u=r.rho!==void 0?r.rho:1,h=r.chi!==void 0?r.chi:2,d=r.psi!==void 0?r.psi:-.5,f=r.sigma!==void 0?r.sigma:.5,p,m=t.length,g=new Array(m+1);g[0]=t,g[0].fx=e(t),g[0].id=0;for(let C=0;C<m;++C){let k=t.slice();k[C]=k[C]?k[C]*n:a,g[C+1]=k,g[C+1].fx=e(k),g[C+1].id=C+1}function y(C){for(let k=0;k<C.length;k++)g[m][k]=C[k];g[m].fx=C.fx}o(y,"updateSimplex");let v=o((C,k)=>C.fx-k.fx,"sortOrder"),x=t.slice(),b=t.slice(),T=t.slice(),w=t.slice();for(let C=0;C<i;++C){if(g.sort(v),r.history){let E=g.map(A=>{let N=A.slice();return N.fx=A.fx,N.id=A.id,N});E.sort((A,N)=>A.id-N.id),r.history.push({x:g[0].slice(),fx:g[0].fx,simplex:E})}p=0;for(let E=0;E<m;++E)p=Math.max(p,Math.abs(g[0][E]-g[1][E]));if(Math.abs(g[0].fx-g[m].fx)<s&&p<l)break;for(let E=0;E<m;++E){x[E]=0;for(let A=0;A<m;++A)x[E]+=g[A][E];x[E]/=m}let k=g[m];if(Rh(b,1+u,x,-u,k),b.fx=e(b),b.fx<g[0].fx)Rh(w,1+h,x,-h,k),w.fx=e(w),w.fx<b.fx?y(w):y(b);else if(b.fx>=g[m-1].fx){let E=!1;if(b.fx>k.fx?(Rh(T,1+d,x,-d,k),T.fx=e(T),T.fx<k.fx?y(T):E=!0):(Rh(T,1-d*u,x,d*u,k),T.fx=e(T),T.fx<b.fx?y(T):E=!0),E){if(f>=1)break;for(let A=1;A<g.length;++A)Rh(g[A],1-f,g[0],f,g[A]),g[A].fx=e(g[A])}}else y(b)}return g.sort(v),{fx:g[0].fx,x:g[0]}}function y5t(e,t,r,i,n,a,s){let l=r.fx,u=Fy(r.fxprime,t),h=l,d=l,f=u,p=0;n=n||1,a=a||1e-6,s=s||.1;function m(g,y,v){for(let x=0;x<16;++x)if(n=(g+y)/2,Rh(i.x,1,r.x,n,t),h=i.fx=e(i.x,i.fxprime),f=Fy(i.fxprime,t),h>l+a*n*u||h>=v)y=n;else{if(Math.abs(f)<=-s*u)return n;f*(y-g)>=0&&(y=g),g=n,v=h}return 0}o(m,"zoom");for(let g=0;g<10;++g){if(Rh(i.x,1,r.x,n,t),h=i.fx=e(i.x,i.fxprime),f=Fy(i.fxprime,t),h>l+a*n*u||g&&h>=d)return m(p,n,d);if(Math.abs(f)<=-s*u)return n;if(f>=0)return m(n,p,h);d=h,p=n,n*=2}return n}function v5t(e,t,r){let i={x:t.slice(),fx:0,fxprime:t.slice()},n={x:t.slice(),fx:0,fxprime:t.slice()},a=t.slice(),s,l,u=1,h;r=r||{},h=r.maxIterations||t.length*20,i.fx=e(i.x,i.fxprime),s=i.fxprime.slice(),pU(s,i.fxprime,-1);for(let d=0;d<h;++d){if(u=y5t(e,s,i,n,u),r.history&&r.history.push({x:i.x.slice(),fx:i.fx,fxprime:i.fxprime.slice(),alpha:u}),!u)pU(s,i.fxprime,-1);else{Rh(a,1,n.fxprime,-1,i.fxprime);let f=Fy(i.fxprime,i.fxprime),p=Math.max(0,Fy(a,n.fxprime)/f);Rh(s,p,s,-1,n.fxprime),l=i,i=n,n=l}if(fU(i.fxprime)<=1e-5)break}return r.history&&r.history.push({x:i.x.slice(),fx:i.fx,fxprime:i.fxprime.slice(),alpha:u}),i}function ALe(e,t={}){t.maxIterations=t.maxIterations||500;let r=t.initialLayout||C5t,i=t.lossFunction||$y,n=x5t(e,t),a=r(n,t),s=Object.keys(a),l=[];for(let d of s)l.push(a[d].x),l.push(a[d].y);let h=ELe(d=>{let f={};for(let p=0;p<s.length;++p){let m=s[p];f[m]={x:d[2*p],y:d[2*p+1],radius:a[m].radius}}return i(f,n)},l,t).x;for(let d=0;d<s.length;++d){let f=s[d];a[f].x=h[2*d],a[f].y=h[2*d+1]}return a}function mU(e,t,r){return Math.min(e,t)*Math.min(e,t)*Math.PI<=r+_Le?Math.abs(e-t):g5t(i=>yU(e,t,i)-r,0,e+t)}function x5t(e,t={}){let r=t.distinct,i=e.map(l=>Object.assign({},l));function n(l){return l.join(";")}if(o(n,"toKey"),r){let l=new Map;for(let u of i)for(let h=0;h<u.sets.length;h++){let d=String(u.sets[h]);l.set(d,u.size+(l.get(d)||0));for(let f=h+1;f<u.sets.length;f++){let p=String(u.sets[f]),m=`${d};${p}`,g=`${p};${d}`;l.set(m,u.size+(l.get(m)||0)),l.set(g,u.size+(l.get(g)||0))}}for(let u of i)u.sets.length<3&&(u.size=l.get(n(u.sets)))}let a=[],s=new Set;for(let l of i)if(l.sets.length===1)a.push(l.sets[0]);else if(l.sets.length===2){let u=l.sets[0],h=l.sets[1];s.add(n(l.sets)),s.add(n([h,u]))}a.sort((l,u)=>l===u?0:l<u?-1:1);for(let l=0;l<a.length;++l){let u=a[l];for(let h=l+1;h<a.length;++h){let d=a[h];s.has(n([u,d]))||i.push({sets:[u,d],size:0})}}return i}function b5t(e,t,r){let i=CLe(t.length,t.length),n=CLe(t.length,t.length);return e.filter(a=>a.sets.length===2).forEach(a=>{let s=r[a.sets[0]],l=r[a.sets[1]],u=Math.sqrt(t[s].size/Math.PI),h=Math.sqrt(t[l].size/Math.PI),d=mU(u,h,a.size);i[s][l]=i[l][s]=d;let f=0;a.size+1e-10>=Math.min(t[s].size,t[l].size)?f=1:a.size<=1e-10&&(f=-1),n[s][l]=n[l][s]=f}),{distances:i,constraints:n}}function T5t(e,t,r,i){for(let a=0;a<t.length;++a)t[a]=0;let n=0;for(let a=0;a<r.length;++a){let s=e[2*a],l=e[2*a+1];for(let u=a+1;u<r.length;++u){let h=e[2*u],d=e[2*u+1],f=r[a][u],p=i[a][u],m=(h-s)*(h-s)+(d-l)*(d-l),g=Math.sqrt(m),y=m-f*f;p>0&&g<=f||p<0&&g>=f||(n+=2*y*y,t[2*a]+=4*y*(s-h),t[2*a+1]+=4*y*(l-d),t[2*u]+=4*y*(h-s),t[2*u+1]+=4*y*(d-l))}}return n}function C5t(e,t={}){let r=w5t(e,t),i=t.lossFunction||$y;if(e.length>=8){let n=k5t(e,t),a=i(n,e),s=i(r,e);a+1e-8<s&&(r=n)}return r}function k5t(e,t={}){let r=t.restarts||10,i=[],n={};for(let p of e)p.sets.length===1&&(n[p.sets[0]]=i.length,i.push(p));let{distances:a,constraints:s}=b5t(e,i,n),l=fU(a.map(fU))/a.length;a=a.map(p=>p.map(m=>m/l));let u=o((p,m)=>T5t(p,m,a,s),"obj"),h=null;for(let p=0;p<r;++p){let m=dU(a.length*2).map(Math.random),g=v5t(u,m,t);(!h||g.fx<h.fx)&&(h=g)}let d=h.x,f={};for(let p=0;p<i.length;++p){let m=i[p];f[m.sets[0]]={x:d[2*p]*l,y:d[2*p+1]*l,radius:Math.sqrt(m.size/Math.PI)}}if(t.history)for(let p of t.history)pU(p.x,l);return f}function w5t(e,t){let r=t&&t.lossFunction?t.lossFunction:$y,i={},n={};for(let f of e)if(f.sets.length===1){let p=f.sets[0];i[p]={x:1e10,y:1e10,rowid:i.length,size:f.size,radius:Math.sqrt(f.size/Math.PI)},n[p]=[]}e=e.filter(f=>f.sets.length===2);for(let f of e){let p=f.weight!=null?f.weight:1,m=f.sets[0],g=f.sets[1];f.size+_Le>=Math.min(i[m].size,i[g].size)&&(p=0),n[m].push({set:g,size:f.size,weight:p}),n[g].push({set:m,size:f.size,weight:p})}let a=[];Object.keys(n).forEach(f=>{let p=0;for(let m=0;m<n[f].length;++m)p+=n[f][m].size*n[f][m].weight;a.push({set:f,size:p})});function s(f,p){return p.size-f.size}o(s,"sortOrder"),a.sort(s);let l={};function u(f){return f.set in l}o(u,"isPositioned");function h(f,p){i[p].x=f.x,i[p].y=f.y,l[p]=!0}o(h,"positionSet"),h({x:0,y:0},a[0].set);for(let f=1;f<a.length;++f){let p=a[f].set,m=n[p].filter(u),g=i[p];if(m.sort(s),m.length===0)throw"ERROR: missing pairwise overlap information";let y=[];for(var d=0;d<m.length;++d){let b=i[m[d].set],T=mU(g.radius,b.radius,m[d].size);y.push({x:b.x+T,y:b.y}),y.push({x:b.x-T,y:b.y}),y.push({y:b.y+T,x:b.x}),y.push({y:b.y-T,x:b.x});for(let w=d+1;w<m.length;++w){let C=i[m[w].set],k=mU(g.radius,C.radius,m[w].size),E=wLe({x:b.x,y:b.y,radius:T},{x:C.x,y:C.y,radius:k});y.push(...E)}}let v=1e50,x=y[0];for(let b of y){i[p].x=b.x,i[p].y=b.y;let T=r(i,e);T<v&&(v=T,x=b)}h(x,p)}return i}function $y(e,t){let r=0;for(let i of t){if(i.sets.length===1)continue;let n;if(i.sets.length===2){let s=e[i.sets[0]],l=e[i.sets[1]];n=yU(s.radius,l.radius,Xs(s,l))}else n=L_(i.sets.map(s=>e[s]));let a=i.weight!=null?i.weight:1;r+=a*(n-i.size)*(n-i.size)}return r}function DLe(e,t){let r=0;for(let i of t){if(i.sets.length===1)continue;let n;if(i.sets.length===2){let l=e[i.sets[0]],u=e[i.sets[1]];n=yU(l.radius,u.radius,Xs(l,u))}else n=L_(i.sets.map(l=>e[l]));let a=i.weight!=null?i.weight:1,s=Math.log((n+1)/(i.size+1));r+=a*s*s}return r}function S5t(e,t,r){if(r==null?e.sort((n,a)=>a.radius-n.radius):e.sort(r),e.length>0){let n=e[0].x,a=e[0].y;for(let s of e)s.x-=n,s.y-=a}if(e.length===2&&Xs(e[0],e[1])<Math.abs(e[1].radius-e[0].radius)&&(e[1].x=e[0].x+e[0].radius-e[1].radius-1e-10,e[1].y=e[0].y),e.length>1){let n=Math.atan2(e[1].x,e[1].y)-t,a=Math.cos(n),s=Math.sin(n);for(let l of e){let u=l.x,h=l.y;l.x=a*u-s*h,l.y=s*u+a*h}}if(e.length>2){let n=Math.atan2(e[2].x,e[2].y)-t;for(;n<0;)n+=2*Math.PI;for(;n>2*Math.PI;)n-=2*Math.PI;if(n>Math.PI){let a=e[1].y/(1e-10+e[1].x);for(let s of e){var i=(s.x+a*s.y)/(1+a*a);s.x=2*i-s.x,s.y=2*i*a-s.y}}}}function E5t(e){e.forEach(n=>{n.parent=n});function t(n){return n.parent!==n&&(n.parent=t(n.parent)),n.parent}o(t,"find");function r(n,a){let s=t(n),l=t(a);s.parent=l}o(r,"union");for(let n=0;n<e.length;++n)for(let a=n+1;a<e.length;++a){let s=e[n].radius+e[a].radius;Xs(e[n],e[a])+1e-10<s&&r(e[a],e[n])}let i=new Map;for(let n=0;n<e.length;++n){let a=t(e[n]).parent.setid;i.has(a)||i.set(a,[]),i.get(a).push(e[n])}return e.forEach(n=>{delete n.parent}),Array.from(i.values())}function gU(e){let t=o(r=>{let i=e.reduce((a,s)=>Math.max(a,s[r]+s.radius),Number.NEGATIVE_INFINITY),n=e.reduce((a,s)=>Math.min(a,s[r]-s.radius),Number.POSITIVE_INFINITY);return{max:i,min:n}},"minMax");return{xRange:t("x"),yRange:t("y")}}function RLe(e,t,r){t==null&&(t=Math.PI/2);let i=NLe(e).map(h=>Object.assign({},h)),n=E5t(i);for(let h of n){S5t(h,t,r);let d=gU(h);h.size=(d.xRange.max-d.xRange.min)*(d.yRange.max-d.yRange.min),h.bounds=d}n.sort((h,d)=>d.size-h.size),i=n[0];let a=i.bounds,s=(a.xRange.max-a.xRange.min)/50;function l(h,d,f){if(!h)return;let p=h.bounds,m,g;if(d)m=a.xRange.max-p.xRange.min+s;else{m=a.xRange.max-p.xRange.max;let y=(p.xRange.max-p.xRange.min)/2-(a.xRange.max-a.xRange.min)/2;y<0&&(m+=y)}if(f)g=a.yRange.max-p.yRange.min+s;else{g=a.yRange.max-p.yRange.max;let y=(p.yRange.max-p.yRange.min)/2-(a.yRange.max-a.yRange.min)/2;y<0&&(g+=y)}for(let y of h)y.x+=m,y.y+=g,i.push(y)}o(l,"addCluster");let u=1;for(;u<n.length;)l(n[u],!0,!1),l(n[u+1],!1,!0),l(n[u+2],!0,!0),u+=3,a=gU(i);return MLe(i)}function LLe(e,t,r,i,n){let a=NLe(e);t-=2*i,r-=2*i;let{xRange:s,yRange:l}=gU(a);if(s.max===s.min||l.max===l.min)return console.log("not scaling solution: zero size detected"),e;let u,h;if(n){let m=Math.sqrt(n/Math.PI)*2;u=t/m,h=r/m}else u=t/(s.max-s.min),h=r/(l.max-l.min);let d=Math.min(h,u),f=(t-(s.max-s.min)*d)/2,p=(r-(l.max-l.min)*d)/2;return MLe(a.map(m=>({radius:d*m.radius,x:i+f+(m.x-s.min)*d,y:i+p+(m.y-l.min)*d,setid:m.setid})))}function MLe(e){let t={};for(let r of e)t[r.setid]=r;return t}function NLe(e){return Object.keys(e).map(r=>Object.assign(e[r],{setid:r}))}function ILe(e={}){let t=!1,r=600,i=350,n=15,a=1e3,s=Math.PI/2,l=!0,u=null,h=!0,d=!0,f=null,p=null,m=!1,g=null,y=e&&e.symmetricalTextCentre?e.symmetricalTextCentre:!1,v={},x=e&&e.colourScheme?e.colourScheme:e&&e.colorScheme?e.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],b=0,T=o(function(E){if(E in v)return v[E];var A=v[E]=x[b];return b+=1,b>=x.length&&(b=0),A},"colours"),w=ALe,C=$y;function k(E){let A=E.datum(),N=new Set;A.forEach(Y=>{Y.size==0&&Y.sets.length==1&&N.add(Y.sets[0])}),A=A.filter(Y=>!Y.sets.some(ae=>N.has(ae)));let P={},I={};if(A.length>0){let Y=w(A,{lossFunction:C,distinct:m});l&&(Y=RLe(Y,s,p)),P=LLe(Y,r,i,n,u),I=PLe(P,A,y)}let D={};A.forEach(Y=>{Y.label&&(D[Y.sets]=Y.label)});function _(Y){if(Y.sets in D)return D[Y.sets];if(Y.sets.length==1)return""+Y.sets[0]}o(_,"label"),E.selectAll("svg").data([P]).enter().append("svg");let R=E.select("svg");t?R.attr("viewBox",`0 0 ${r} ${i}`):R.attr("width",r).attr("height",i);let M={},L=!1;R.selectAll(".venn-area path").each(function(Y){let ae=this.getAttribute("d");Y.sets.length==1&&ae&&!m&&(L=!0,M[Y.sets[0]]=D5t(ae))});function B(Y){return ae=>{let J=Y.sets.map(te=>{let re=M[te],ee=P[te];return re||(re={x:r/2,y:i/2,radius:1}),ee||(ee={x:r/2,y:i/2,radius:1}),{x:re.x*(1-ae)+ee.x*ae,y:re.y*(1-ae)+ee.y*ae,radius:re.radius*(1-ae)+ee.radius*ae}});return kLe(J,g)}}o(B,"pathTween");let O=R.selectAll(".venn-area").data(A,Y=>Y.sets),$=O.enter().append("g").attr("class",Y=>`venn-area venn-${Y.sets.length==1?"circle":"intersection"}${Y.colour||Y.color?" venn-coloured":""}`).attr("data-venn-sets",Y=>Y.sets.join("_")),G=$.append("path"),F=$.append("text").attr("class","label").text(Y=>_(Y)).attr("text-anchor","middle").attr("dy",".35em").attr("x",r/2).attr("y",i/2);d&&(G.style("fill-opacity","0").filter(Y=>Y.sets.length==1).style("fill",Y=>Y.colour?Y.colour:Y.color?Y.color:T(Y.sets)).style("fill-opacity",".25"),F.style("fill",Y=>Y.colour||Y.color?"#FFF":e.textFill?e.textFill:Y.sets.length==1?T(Y.sets):"#444"));function V(Y){return typeof Y.transition=="function"?Y.transition("venn").duration(a):Y}o(V,"asTransition");let H=E;L&&typeof H.transition=="function"?(H=V(E),H.selectAll("path").attrTween("d",B)):H.selectAll("path").attr("d",Y=>kLe(Y.sets.map(ae=>P[ae])),g);let j=H.selectAll("text").filter(Y=>Y.sets in I).text(Y=>_(Y)).attr("x",Y=>Math.floor(I[Y.sets].x)).attr("y",Y=>Math.floor(I[Y.sets].y));h&&(L?"on"in j?j.on("end",cU(P,_)):j.each("end",cU(P,_)):j.each(cU(P,_)));let U=V(O.exit()).remove();typeof O.transition=="function"&&U.selectAll("path").attrTween("d",B);let Q=U.selectAll("text").attr("x",r/2).attr("y",i/2);return f!==null&&(F.style("font-size","0px"),j.style("font-size",f),Q.style("font-size","0px")),{circles:P,textCentres:I,nodes:O,enter:$,update:H,exit:U}}return o(k,"chart"),k.wrap=function(E){return arguments.length?(h=E,k):h},k.useViewBox=function(){return t=!0,k},k.width=function(E){return arguments.length?(r=E,k):r},k.height=function(E){return arguments.length?(i=E,k):i},k.padding=function(E){return arguments.length?(n=E,k):n},k.distinct=function(E){return arguments.length?(m=E,k):m},k.colours=function(E){return arguments.length?(T=E,k):T},k.colors=function(E){return arguments.length?(T=E,k):T},k.fontSize=function(E){return arguments.length?(f=E,k):f},k.round=function(E){return arguments.length?(g=E,k):g},k.duration=function(E){return arguments.length?(a=E,k):a},k.layoutFunction=function(E){return arguments.length?(w=E,k):w},k.normalize=function(E){return arguments.length?(l=E,k):l},k.scaleToFit=function(E){return arguments.length?(u=E,k):u},k.styled=function(E){return arguments.length?(d=E,k):d},k.orientation=function(E){return arguments.length?(s=E,k):s},k.orientationOrder=function(E){return arguments.length?(p=E,k):p},k.lossFunction=function(E){return arguments.length?(C=E==="default"?$y:E==="logRatio"?DLe:E,k):C},k}function cU(e,t){return function(r){let i=this,n=e[r.sets[0]].radius||50,a=t(r)||"",s=a.split(/\s+/).reverse(),u=(a.length+s.length)/3,h=s.pop(),d=[h],f=0,p=1.1;i.textContent=null;let m=[];function g(T){let w=i.ownerDocument.createElementNS(i.namespaceURI,"tspan");return w.textContent=T,m.push(w),i.append(w),w}o(g,"append");let y=g(h);for(;h=s.pop(),!!h;){d.push(h);let T=d.join(" ");y.textContent=T,T.length>u&&y.getComputedTextLength()>n&&(d.pop(),y.textContent=d.join(" "),d=[h],y=g(h),f++)}let v=.35-f*p/2,x=i.getAttribute("x"),b=i.getAttribute("y");m.forEach((T,w)=>{T.setAttribute("x",x),T.setAttribute("y",b),T.setAttribute("dy",`${v+w*p}em`)})}}function uU(e,t,r){let i=t[0].radius-Xs(t[0],e);for(let n=1;n<t.length;++n){let a=t[n].radius-Xs(t[n],e);a<=i&&(i=a)}for(let n=0;n<r.length;++n){let a=Xs(r[n],e)-r[n].radius;a<=i&&(i=a)}return i}function OLe(e,t,r){let i=[];for(let d of e)i.push({x:d.x,y:d.y}),i.push({x:d.x+d.radius/2,y:d.y}),i.push({x:d.x-d.radius/2,y:d.y}),i.push({x:d.x,y:d.y+d.radius/2}),i.push({x:d.x,y:d.y-d.radius/2});let n=i[0],a=uU(i[0],e,t);for(let d=1;d<i.length;++d){let f=uU(i[d],e,t);f>=a&&(n=i[d],a=f)}let s=ELe(d=>-1*uU({x:d[0],y:d[1]},e,t),[n.x,n.y],{maxIterations:500,minErrorDelta:1e-10}).x,l={x:r?0:s[0],y:s[1]},u=!0;for(let d of e)if(Xs(l,d)>d.radius){u=!1;break}for(let d of t)if(Xs(l,d)<d.radius){u=!1;break}if(u)return l;if(e.length==1)return{x:e[0].x,y:e[0].y};let h={};return L_(e,h),h.arcs.length===0?{x:0,y:-1e3,disjoint:!0}:h.arcs.length==1?{x:h.arcs[0].circle.x,y:h.arcs[0].circle.y}:t.length?OLe(e,[]):SLe(h.arcs.map(d=>d.p1))}function A5t(e){let t={},r=Object.keys(e);for(let i of r)t[i]=[];for(let i=0;i<r.length;i++){let n=r[i],a=e[n];for(let s=i+1;s<r.length;++s){let l=r[s],u=e[l],h=Xs(a,u);h+u.radius<=a.radius+1e-10?t[l].push(n):h+a.radius<=u.radius+1e-10&&t[n].push(l)}}return t}function PLe(e,t,r){let i={},n=A5t(e);for(let a=0;a<t.length;++a){let s=t[a].sets,l={},u={};for(let p=0;p<s.length;++p){l[s[p]]=!0;let m=n[s[p]];for(let g=0;g<m.length;++g)u[m[g]]=!0}let h=[],d=[];for(let p in e)p in l?h.push(e[p]):p in u||d.push(e[p]);let f=OLe(h,d,r);i[s]=f,f.disjoint&&t[a].size>0&&console.log("WARNING: area "+s+" not represented on screen")}return i}function _5t(e,t,r){let i=[];return i.push(`
|
|
104
|
+
M`,e,t),i.push(`
|
|
105
|
+
m`,-r,0),i.push(`
|
|
106
|
+
a`,r,r,0,1,0,r*2,0),i.push(`
|
|
107
|
+
a`,r,r,0,1,0,-r*2,0),i.join(" ")}function D5t(e){let t=e.split(" ");return{x:Number.parseFloat(t[1]),y:Number.parseFloat(t[2]),radius:-Number.parseFloat(t[4])}}function BLe(e){if(e.length===0)return[];let t={};return L_(e,t),t.arcs}function FLe(e,t){if(e.length===0)return"M 0 0";let r=Math.pow(10,t||0),i=t!=null?a=>Math.round(a*r)/r:a=>a;if(e.length==1){let a=e[0].circle;return _5t(i(a.x),i(a.y),i(a.radius))}let n=[`
|
|
108
|
+
M`,i(e[0].p2.x),i(e[0].p2.y)];for(let a of e){let s=i(a.circle.radius);n.push(`
|
|
109
|
+
A`,s,s,0,a.large?1:0,a.sweep?1:0,i(a.p1.x),i(a.p1.y))}return n.join(" ")}function kLe(e,t){return FLe(BLe(e),t)}function $Le(e,t={}){let{lossFunction:r,layoutFunction:i=ALe,normalize:n=!0,orientation:a=Math.PI/2,orientationOrder:s,width:l=600,height:u=350,padding:h=15,scaleToFit:d=!1,symmetricalTextCentre:f=!1,distinct:p,round:m=2}=t,g=i(e,{lossFunction:r==="default"||!r?$y:r==="logRatio"?DLe:r,distinct:p});n&&(g=RLe(g,a,s));let y=LLe(g,l,u,h,d),v=PLe(y,e,f),x=new Map(Object.keys(y).map(w=>[w,{set:w,x:y[w].x,y:y[w].y,radius:y[w].radius}])),b=e.map(w=>{let C=w.sets.map(A=>x.get(A)),k=BLe(C),E=FLe(k,m);return{circles:C,arcs:k,path:E,area:w,has:new Set(w.sets)}});function T(w){let C="";for(let k of b)k.has.size>w.length&&w.every(E=>k.has.has(E))&&(C+=" "+k.path);return C}return o(T,"genDistinctPath"),b.map(({circles:w,arcs:C,path:k,area:E})=>({data:E,text:v[E.sets],circles:w,arcs:C,path:k,distinctPath:k+T(E.sets)}))}var _Le,zLe=z(()=>{"use strict";o(L_,"intersectionArea");o(p5t,"containedInCircles");o(m5t,"getIntersectionPoints");o(hU,"circleArea");o(Xs,"distance");o(yU,"circleOverlap");o(wLe,"circleCircleIntersection");o(SLe,"getCenter");o(g5t,"bisect");o(dU,"zeros");o(CLe,"zerosM");o(Fy,"dot");o(fU,"norm2");o(pU,"scale");o(Rh,"weightedSum");o(ELe,"nelderMead");o(y5t,"wolfeLineSearch");o(v5t,"conjugateGradient");o(ALe,"venn");_Le=1e-10;o(mU,"distanceFromIntersectArea");o(x5t,"addMissingAreas");o(b5t,"getDistanceMatrices");o(T5t,"constrainedMDSGradient");o(C5t,"bestInitialLayout");o(k5t,"constrainedMDSLayout");o(w5t,"greedyLayout");o($y,"lossFunction");o(DLe,"logRatioLossFunction");o(S5t,"orientateCircles");o(E5t,"disjointCluster");o(gU,"getBoundingBox");o(RLe,"normalizeSolution");o(LLe,"scaleSolution");o(MLe,"toObjectNotation");o(NLe,"fromObjectNotation");o(ILe,"VennDiagram");o(cU,"wrapText");o(uU,"circleMargin");o(OLe,"computeTextCentre");o(A5t,"getOverlappingCircles");o(PLe,"computeTextCentres");o(_5t,"circlePath");o(D5t,"circleFromPath");o(BLe,"intersectionAreaArcs");o(FLe,"arcsToPath");o(kLe,"intersectionAreaPath");o($Le,"layout")});function L5t(e){let t=new Map;for(let r of e){let i=r.targets.join("|"),n=t.get(i);n?Object.assign(n,r.styles):t.set(i,{...r.styles})}return t}function Sm(e){return e.join("|")}function N5t(e,t,r,i,n,a){let s=e?.useDebugLayout??!1,u=r.select("svg").append("g").attr("class","venn-text-nodes"),h=new Map;for(let d of i){let f=Sm(d.sets),p=h.get(f);p?p.push(d):h.set(f,[d])}for(let[d,f]of h.entries()){let p=t.get(d);if(!p?.text)continue;let m=p.text.x,g=p.text.y,y=Math.min(...p.circles.map(R=>R.radius)),v=Math.min(...p.circles.map(R=>R.radius-Math.hypot(m-R.x,g-R.y))),x=Number.isFinite(v)?Math.max(0,v):0;x===0&&Number.isFinite(y)&&(x=y*.6);let b=u.append("g").attr("class","venn-text-area").attr("font-size",`${40*n}px`);s&&b.append("circle").attr("class","venn-text-debug-circle").attr("cx",m).attr("cy",g).attr("r",x).attr("fill","none").attr("stroke","purple").attr("stroke-width",1.5*n).attr("stroke-dasharray",`${6*n} ${4*n}`);let T=Math.max(80*n,x*2*.95),w=Math.max(60*n,x*2*.95),E=(p.data.label&&p.data.label.length>0?Math.min(32*n,x*.25):0)+(f.length<=2?30*n:0),A=m-T/2,N=g-w/2+E,P=Math.max(1,Math.ceil(Math.sqrt(f.length))),I=Math.max(1,Math.ceil(f.length/P)),D=T/P,_=w/I;for(let[R,M]of f.entries()){let L=R%P,B=Math.floor(R/P),O=A+D*(L+.5),$=N+_*(B+.5);s&&b.append("rect").attr("class","venn-text-debug-cell").attr("x",A+D*L).attr("y",N+_*B).attr("width",D).attr("height",_).attr("fill","none").attr("stroke","teal").attr("stroke-width",1*n).attr("stroke-dasharray",`${4*n} ${3*n}`);let G=D*.9,F=_*.9,V=b.append("foreignObject").attr("class","venn-text-node-fo").attr("width",G).attr("height",F).attr("x",O-G/2).attr("y",$-F/2).attr("overflow","visible"),H=a.get(M.id)?.color,j=V.append("xhtml:span").attr("class","venn-text-node").style("display","flex").style("width","100%").style("height","100%").style("white-space","normal").style("align-items","center").style("justify-content","center").style("text-align","center").style("overflow-wrap","normal").style("word-break","normal").text(M.label??M.id);H&&j.style("color",H)}}}var M5t,GLe,VLe=z(()=>{"use strict";Rr();Cn();br();ps();zLe();Di();jt();o(L5t,"buildStyleByKey");M5t=o((e,t,r,i)=>{let n=i.db,a=n.getConfig?.(),{themeVariables:s,look:l,handDrawnSeed:u}=Nt(),h=l==="handDrawn",d=[s.venn1,s.venn2,s.venn3,s.venn4,s.venn5,s.venn6,s.venn7,s.venn8].filter(Boolean),f=n.getDiagramTitle?.(),p=n.getSubsetData(),m=n.getTextData(),g=L5t(n.getStyleData()),y=a?.width??800,v=a?.height??450,b=y/1600,T=f?48*b:0,w=s.primaryTextColor??s.textColor,C=bi(t);C.attr("viewBox",`0 0 ${y} ${v}`),f&&C.append("text").text(f).attr("class","venn-title").attr("font-size",`${32*b}px`).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("x","50%").attr("y",32*b).style("fill",s.vennTitleTextColor||s.titleColor);let k=Je(document.createElement("div")),E=ILe().width(y).height(v-T);k.datum(p).call(E);let A=h?ut.svg(k.select("svg").node()):void 0,N=$Le(p,{width:y,height:v-T,padding:a?.padding??15}),P=new Map;for(let R of N){let M=Sm([...R.data.sets].sort());P.set(M,R)}m.length>0&&N5t(a,P,k,m,b,g);let I=ri(s.background||"#f4f4f4");k.selectAll(".venn-circle").each(function(R,M){let L=Je(this),O=Sm([...R.sets].sort()),$=g.get(O),G=$?.fill||d[M%d.length]||s.primaryColor;L.classed(`venn-set-${M%8}`,!0);let F=$?.["fill-opacity"]??.1,V=$?.stroke||G,H=$?.["stroke-width"]||`${5*b}`;if(h&&A){let U=P.get(O);if(U&&U.circles.length>0){let Q=U.circles[0],Y=A.circle(Q.x,Q.y,Q.radius*2,{roughness:.7,seed:u,fill:RC(G,.7),fillStyle:"hachure",fillWeight:2,hachureGap:8,hachureAngle:-41+M*60,stroke:V,strokeWidth:parseFloat(String(H))});L.select("path").remove(),L.node()?.insertBefore(Y,L.select("text").node())}}else L.select("path").style("fill",G).style("fill-opacity",F).style("stroke",V).style("stroke-width",H).style("stroke-opacity",.95);let j=$?.color||(I?je(G,30):Xe(G,30));L.select("text").style("font-size",`${48*b}px`).style("fill",j)}),h&&A?k.selectAll(".venn-intersection").each(function(R){let M=Je(this),B=Sm([...R.sets].sort()),O=g.get(B),$=O?.fill;if($){let G=M.select("path"),F=G.attr("d");if(F){let V=A.path(F,{roughness:.7,seed:u,fill:RC($,.3),fillStyle:"cross-hatch",fillWeight:2,hachureGap:6,hachureAngle:60,stroke:"none"}),H=G.node();H?.parentNode?.insertBefore(V,H),G.remove()}}else M.select("path").style("fill-opacity",0);M.select("text").style("font-size",`${48*b}px`).style("fill",O?.color??s.vennSetTextColor??w)}):(k.selectAll(".venn-intersection text").style("font-size",`${48*b}px`).style("fill",R=>{let L=Sm([...R.sets].sort());return g.get(L)?.color??s.vennSetTextColor??w}),k.selectAll(".venn-intersection path").style("fill-opacity",R=>{let L=Sm([...R.sets].sort());return g.get(L)?.fill?1:0}).style("fill",R=>{let L=Sm([...R.sets].sort());return g.get(L)?.fill??"transparent"}));let D=C.append("g").attr("transform",`translate(0, ${T})`),_=k.select("svg").node();if(_&&"childNodes"in _)for(let R of[..._.childNodes])D.node()?.appendChild(R);Br(C,v,y,a?.useMaxWidth??!0)},"draw");o(Sm,"stableSetsKey");o(N5t,"renderTextNodes");GLe={draw:M5t}});var WLe={};xr(WLe,{diagram:()=>I5t});var I5t,qLe=z(()=>{"use strict";yLe();xLe();TLe();VLe();I5t={parser:gLe,db:vLe,renderer:GLe,styles:bLe}});var zy,vU=z(()=>{"use strict";Bn();br();Xt();Ht();Ci();zy=class{constructor(){this.nodes=[];this.levels=new Map;this.outerNodes=[];this.classes=new Map;this.setAccTitle=Cr;this.getAccTitle=kr;this.setDiagramTitle=Ar;this.getDiagramTitle=Er;this.getAccDescription=Sr;this.setAccDescription=wr}static{o(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){let t=or,r=Nt();return Gr({...t.treemap,...r.treemap??{}})}addNode(t,r){this.nodes.push(t),this.levels.set(t,r),r===0&&(this.outerNodes.push(t),this.root??=t)}getRoot(){return{name:"",children:this.outerNodes}}addClass(t,r){let i=this.classes.get(t)??{id:t,styles:[],textStyles:[]},n=r.replace(/\\,/g,"\xA7\xA7\xA7").replace(/,/g,";").replace(/§§§/g,",").split(";");n&&n.forEach(a=>{Xx(a)&&(i?.textStyles?i.textStyles.push(a):i.textStyles=[a]),i?.styles?i.styles.push(a):i.styles=[a]}),this.classes.set(t,i)}getClasses(){return this.classes}getStylesForClass(t){return this.classes.get(t)?.styles??[]}clear(){gr(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}}});function YLe(e){if(!e.length)return[];let t=[],r=[];return e.forEach(i=>{let n={name:i.name,children:i.type==="Leaf"?void 0:[]};for(n.classSelector=i?.classSelector,i?.cssCompiledStyles&&(n.cssCompiledStyles=i.cssCompiledStyles),i.type==="Leaf"&&i.value!==void 0&&(n.value=i.value);r.length>0&&r[r.length-1].level>=i.level;)r.pop();if(r.length===0)t.push(n);else{let a=r[r.length-1].node;a.children?a.children.push(n):a.children=[n]}i.type!=="Leaf"&&r.push({node:n,level:i.level})}),t}var jLe=z(()=>{"use strict";o(YLe,"buildHierarchy")});var F5t,$5t,xU,XLe=z(()=>{"use strict";sl();St();au();jLe();vU();F5t=o((e,t)=>{ca(e,t);let r=[];for(let a of e.TreemapRows??[])a.$type==="ClassDefStatement"&&t.addClass(a.className??"",a.styleText??"");for(let a of e.TreemapRows??[]){let s=a.item;if(!s)continue;let l=a.indent?parseInt(a.indent):0,u=$5t(s),h=s.classSelector?t.getStylesForClass(s.classSelector):[],d=h.length>0?h:void 0,f={level:l,name:u,type:s.$type,value:s.value,classSelector:s.classSelector,cssCompiledStyles:d};r.push(f)}let i=YLe(r),n=o((a,s)=>{for(let l of a)t.addNode(l,s),l.children&&l.children.length>0&&n(l.children,s+1)},"addNodesRecursively");n(i,0)},"populate"),$5t=o(e=>e.name?String(e.name):"","getItemName"),xU={parser:{yy:void 0},parse:o(async e=>{try{let r=await bn("treemap",e);Z.debug("Treemap AST:",r);let i=xU.parser?.yy;if(!(i instanceof zy))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.");F5t(r,i)}catch(t){throw Z.error("Error parsing treemap:",t),t}},"parse")}});var z5t,Gy,mC,G5t,V5t,KLe,ZLe=z(()=>{"use strict";ps();rf();Di();Rr();Ht();br();St();z5t=10,Gy=10,mC=25,G5t=o((e,t,r,i)=>{let n=i.db,a=n.getConfig(),s=a.padding??z5t,l=n.getDiagramTitle(),u=n.getRoot(),{themeVariables:h}=Nt();if(!u)return;let d=l?30:0,f=bi(t),p=a.nodeWidth?a.nodeWidth*Gy:960,m=a.nodeHeight?a.nodeHeight*Gy:500,g=p,y=m+d;f.attr("viewBox",`0 0 ${g} ${y}`),Br(f,y,g,a.useMaxWidth);let v;try{let R=a.valueFormat||",";if(R==="$0,0")v=o(M=>"$"+mc(",")(M),"valueFormat");else if(R.startsWith("$")&&R.includes(",")){let M=/\.\d+/.exec(R),L=M?M[0]:"";v=o(B=>"$"+mc(","+L)(B),"valueFormat")}else if(R.startsWith("$")){let M=R.substring(1);v=o(L=>"$"+mc(M||"")(L),"valueFormat")}else v=mc(R)}catch(R){Z.error("Error creating format function:",R),v=mc(",")}let x=ro().range(["transparent",h.cScale0,h.cScale1,h.cScale2,h.cScale3,h.cScale4,h.cScale5,h.cScale6,h.cScale7,h.cScale8,h.cScale9,h.cScale10,h.cScale11]),b=ro().range(["transparent",h.cScalePeer0,h.cScalePeer1,h.cScalePeer2,h.cScalePeer3,h.cScalePeer4,h.cScalePeer5,h.cScalePeer6,h.cScalePeer7,h.cScalePeer8,h.cScalePeer9,h.cScalePeer10,h.cScalePeer11]),T=ro().range([h.cScaleLabel0,h.cScaleLabel1,h.cScaleLabel2,h.cScaleLabel3,h.cScaleLabel4,h.cScaleLabel5,h.cScaleLabel6,h.cScaleLabel7,h.cScaleLabel8,h.cScaleLabel9,h.cScaleLabel10,h.cScaleLabel11]);l&&f.append("text").attr("x",g/2).attr("y",d/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(l);let w=f.append("g").attr("transform",`translate(0, ${d})`).attr("class","treemapContainer"),C=tg(u).sum(R=>R.value??0).sort((R,M)=>(M.value??0)-(R.value??0)),E=lw().size([p,m]).paddingTop(R=>R.children&&R.children.length>0?mC+Gy:0).paddingInner(s).paddingLeft(R=>R.children&&R.children.length>0?Gy:0).paddingRight(R=>R.children&&R.children.length>0?Gy:0).paddingBottom(R=>R.children&&R.children.length>0?Gy:0).round(!0)(C),A=E.descendants().filter(R=>R.children&&R.children.length>0),N=w.selectAll(".treemapSection").data(A).enter().append("g").attr("class","treemapSection").attr("transform",R=>`translate(${R.x0},${R.y0})`);N.append("rect").attr("width",R=>R.x1-R.x0).attr("height",mC).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",R=>R.depth===0?"display: none;":""),N.append("clipPath").attr("id",(R,M)=>`clip-section-${t}-${M}`).append("rect").attr("width",R=>Math.max(0,R.x1-R.x0-12)).attr("height",mC),N.append("rect").attr("width",R=>R.x1-R.x0).attr("height",R=>R.y1-R.y0).attr("class",(R,M)=>`treemapSection section${M}`).attr("fill",R=>x(R.data.name)).attr("fill-opacity",.6).attr("stroke",R=>b(R.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",R=>{if(R.depth===0)return"display: none;";let M=ct({cssCompiledStyles:R.data.cssCompiledStyles});return M.nodeStyles+";"+M.borderStyles.join(";")}),N.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",mC/2).attr("dominant-baseline","middle").text(R=>R.depth===0?"":R.data.name).attr("font-weight","bold").attr("style",R=>{if(R.depth===0)return"display: none;";let M="dominant-baseline: middle; font-size: 12px; fill:"+T(R.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",L=ct({cssCompiledStyles:R.data.cssCompiledStyles});return M+L.labelStyles.replace("color:","fill:")}).each(function(R){if(R.depth===0)return;let M=Je(this),L=R.data.name;M.text(L);let B=R.x1-R.x0,O=6,$;a.showValues!==!1&&R.value?$=B-10-30-10-O:$=B-O-6;let F=Math.max(15,$),V=M.node();if(V.getComputedTextLength()>F){let U=L;for(;U.length>0;){if(U=L.substring(0,U.length-1),U.length===0){M.text("..."),V.getComputedTextLength()>F&&M.text("");break}if(M.text(U+"..."),V.getComputedTextLength()<=F)break}}}),a.showValues!==!1&&N.append("text").attr("class","treemapSectionValue").attr("x",R=>R.x1-R.x0-10).attr("y",mC/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(R=>R.value?v(R.value):"").attr("font-style","italic").attr("style",R=>{if(R.depth===0)return"display: none;";let M="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+T(R.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",L=ct({cssCompiledStyles:R.data.cssCompiledStyles});return M+L.labelStyles.replace("color:","fill:")});let P=E.leaves(),I=w.selectAll(".treemapLeafGroup").data(P).enter().append("g").attr("class",(R,M)=>`treemapNode treemapLeafGroup leaf${M}${R.data.classSelector?` ${R.data.classSelector}`:""}x`).attr("transform",R=>`translate(${R.x0},${R.y0})`);I.append("rect").attr("width",R=>R.x1-R.x0).attr("height",R=>R.y1-R.y0).attr("class","treemapLeaf").attr("fill",R=>R.parent?x(R.parent.data.name):x(R.data.name)).attr("style",R=>ct({cssCompiledStyles:R.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",R=>R.parent?x(R.parent.data.name):x(R.data.name)).attr("stroke-width",3),I.append("clipPath").attr("id",(R,M)=>`clip-${t}-${M}`).append("rect").attr("width",R=>Math.max(0,R.x1-R.x0-4)).attr("height",R=>Math.max(0,R.y1-R.y0-4)),I.append("text").attr("class","treemapLabel").attr("x",R=>(R.x1-R.x0)/2).attr("y",R=>(R.y1-R.y0)/2).attr("style",R=>{let M="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+T(R.data.name)+";",L=ct({cssCompiledStyles:R.data.cssCompiledStyles});return M+L.labelStyles.replace("color:","fill:")}).attr("clip-path",(R,M)=>`url(#clip-${t}-${M})`).text(R=>R.data.name).each(function(R){let M=Je(this),L=R.x1-R.x0,B=R.y1-R.y0,O=M.node(),$=4,G=L-2*$,F=B-2*$;if(G<10||F<10){M.style("display","none");return}let V=parseInt(M.style("font-size"),10),H=8,j=28,U=.6,Q=6,Y=2;for(;O.getComputedTextLength()>G&&V>H;)V--,M.style("font-size",`${V}px`);let ae=Math.max(Q,Math.min(j,Math.round(V*U))),J=V+Y+ae;for(;J>F&&V>H&&(V--,ae=Math.max(Q,Math.min(j,Math.round(V*U))),!(ae<Q&&V===H));)M.style("font-size",`${V}px`),J=V+Y+ae,ae<=Q&&J>F;M.style("font-size",`${V}px`),(O.getComputedTextLength()>G||V<H||F<V)&&M.style("display","none")}),a.showValues!==!1&&I.append("text").attr("class","treemapValue").attr("x",M=>(M.x1-M.x0)/2).attr("y",function(M){return(M.y1-M.y0)/2}).attr("style",M=>{let L="text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+T(M.data.name)+";",B=ct({cssCompiledStyles:M.data.cssCompiledStyles});return L+B.labelStyles.replace("color:","fill:")}).attr("clip-path",(M,L)=>`url(#clip-${t}-${L})`).text(M=>M.value?v(M.value):"").each(function(M){let L=Je(this),B=this.parentNode;if(!B){L.style("display","none");return}let O=Je(B).select(".treemapLabel");if(O.empty()||O.style("display")==="none"){L.style("display","none");return}let $=parseFloat(O.style("font-size")),G=28,F=.6,V=6,H=2,j=Math.max(V,Math.min(G,Math.round($*F)));L.style("font-size",`${j}px`);let Q=(M.y1-M.y0)/2+$/2+H;L.attr("y",Q);let Y=M.x1-M.x0,te=M.y1-M.y0-4,re=Y-8;L.node().getComputedTextLength()>re||Q+j>te||j<V?L.style("display","none"):L.style("display",null)});let _=a.diagramPadding??8;$s(f,_,"flowchart",a?.useMaxWidth||!1)},"draw"),V5t=o(function(e,t){return t.db.getClasses()},"getClasses"),KLe={draw:G5t,getClasses:V5t}});var W5t,q5t,QLe,JLe=z(()=>{"use strict";Xt();$f();br();W5t={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelFontSize:"12px",valueFontSize:"10px",titleFontSize:"14px"},q5t=o(({treemap:e}={})=>{let t=Ao(),r=Nt(),i=Gr(t,r.themeVariables),n=Gr(W5t,e),a=n.titleColor??i.titleColor,s=n.labelColor??i.textColor,l=n.valueColor??i.textColor;return`
|
|
110
|
+
.treemapNode.section {
|
|
111
|
+
stroke: ${n.sectionStrokeColor};
|
|
112
|
+
stroke-width: ${n.sectionStrokeWidth};
|
|
113
|
+
fill: ${n.sectionFillColor};
|
|
114
|
+
}
|
|
115
|
+
.treemapNode.leaf {
|
|
116
|
+
stroke: ${n.leafStrokeColor};
|
|
117
|
+
stroke-width: ${n.leafStrokeWidth};
|
|
118
|
+
fill: ${n.leafFillColor};
|
|
119
|
+
}
|
|
120
|
+
.treemapLabel {
|
|
121
|
+
fill: ${s};
|
|
122
|
+
font-size: ${n.labelFontSize};
|
|
123
|
+
}
|
|
124
|
+
.treemapValue {
|
|
125
|
+
fill: ${l};
|
|
126
|
+
font-size: ${n.valueFontSize};
|
|
127
|
+
}
|
|
128
|
+
.treemapTitle {
|
|
129
|
+
fill: ${a};
|
|
130
|
+
font-size: ${n.titleFontSize};
|
|
131
|
+
}
|
|
132
|
+
`},"getStyles"),QLe=q5t});var eMe={};xr(eMe,{diagram:()=>U5t});var U5t,tMe=z(()=>{"use strict";vU();XLe();ZLe();JLe();U5t={parser:xU,get db(){return new zy},renderer:KLe,styles:QLe}});var M_,Em,nMe,j5t,X5t,bU,aMe=z(()=>{"use strict";sl();St();au();M_=o((e,t)=>{let r=e<=1?e*100:e;if(r<0||r>100)throw new Error(`${t} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${e}`);return r},"toPercent"),Em=o((e,t,r)=>({x:M_(t,`${r} evolution`),y:M_(e,`${r} visibility`)}),"toCoordinates"),nMe=o(e=>{if(e){if(e==="+<>")return"bidirectional";if(e==="+<")return"backward";if(e==="+>")return"forward"}},"getFlowFromPort"),j5t=o(e=>{if(!e?.startsWith("+"))return{};let r=/^\+'([^']*)'/.exec(e)?.[1];return e.includes("<>")?{flow:"bidirectional",label:r}:e.includes("<")?{flow:"backward",label:r}:e.includes(">")?{flow:"forward",label:r}:{label:r}},"extractFlowFromArrow"),X5t=o((e,t)=>{if(ca(e,t),e.size&&t.setSize(e.size.width,e.size.height),e.evolution){let r=e.evolution.stages.map(n=>n.secondName?`${n.name.trim()} / ${n.secondName.trim()}`:n.name.trim()),i=e.evolution.stages.filter(n=>n.boundary!==void 0).map(n=>n.boundary);t.updateAxes({stages:r,stageBoundaries:i})}if(e.anchors.forEach(r=>{let i=Em(r.visibility,r.evolution,`Anchor "${r.name}"`);t.addNode(r.name,r.name,i.x,i.y,"anchor")}),e.components.forEach(r=>{let i=Em(r.visibility,r.evolution,`Component "${r.name}"`),n=r.label?(r.label.negX?-1:1)*r.label.offsetX:void 0,a=r.label?(r.label.negY?-1:1)*r.label.offsetY:void 0,s=r.decorator?.strategy;t.addNode(r.name,r.name,i.x,i.y,"component",n,a,r.inertia,s)}),e.notes.forEach(r=>{let i=Em(r.visibility,r.evolution,`Note "${r.text}"`);t.addNote(r.text,i.x,i.y)}),e.pipelines.forEach(r=>{let i=t.getNode(r.parent);if(!i||typeof i.y!="number")throw new Error(`Pipeline "${r.parent}" must reference an existing component with coordinates.`);let n=i.y;t.startPipeline(r.parent),r.components.forEach(a=>{let s=`${r.parent}_${a.name}`,l=a.label?(a.label.negX?-1:1)*a.label.offsetX:void 0,u=a.label?(a.label.negY?-1:1)*a.label.offsetY:void 0,h=M_(a.evolution,`Pipeline component "${a.name}" evolution`);t.addNode(s,a.name,h,n,"pipeline-component",l,u),t.addPipelineComponent(r.parent,s)})}),e.links.forEach(r=>{let i=!!r.arrow&&(r.arrow.includes("-.->")||r.arrow.includes(".-.")),n=nMe(r.fromPort)??nMe(r.toPort),{flow:a,label:s}=j5t(r.arrow);!n&&a&&(n=a);let l=r.linkLabel,u=s??l;t.addLink(t.resolveNodeId(r.from),t.resolveNodeId(r.to),i,u,n)}),e.evolves.forEach(r=>{let i=t.getNode(r.component);if(i?.y!==void 0){let n=M_(r.target,`Evolve target for "${r.component}"`);t.addTrend(r.component,n,i.y)}}),e.annotations.length>0){let r=e.annotations[0],i=Em(r.x,r.y,"Annotations box");t.setAnnotationsBox(i.x,i.y)}e.annotation.forEach(r=>{let i=Em(r.x,r.y,`Annotation ${r.number}`);t.addAnnotation(r.number,[{x:i.x,y:i.y}],r.text)}),e.accelerators.forEach(r=>{let i=Em(r.x,r.y,`Accelerator "${r.name}"`);t.addAccelerator(r.name,i.x,i.y)}),e.deaccelerators.forEach(r=>{let i=Em(r.x,r.y,`Deaccelerator "${r.name}"`);t.addDeaccelerator(r.name,i.x,i.y)})},"populateDb"),bU={parser:{yy:void 0},parse:o(async e=>{let t=await bn("wardley",e);Z.debug(t);let r=bU.parser?.yy;if(!r||typeof r.addNode!="function")throw new Error("parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");X5t(t,r)},"parse")}});var N_,sMe=z(()=>{"use strict";N_=class{constructor(){this.nodes=new Map;this.links=[];this.trends=new Map;this.pipelines=new Map;this.annotations=[];this.notes=[];this.accelerators=[];this.deaccelerators=[];this.axes={}}static{o(this,"WardleyBuilder")}addNode(t){let r=this.nodes.get(t.id)??{id:t.id,label:t.label},i={...r,...t,className:t.className??r.className,labelOffsetX:t.labelOffsetX??r.labelOffsetX,labelOffsetY:t.labelOffsetY??r.labelOffsetY};this.nodes.set(t.id,i)}addLink(t){this.links.push(t)}addTrend(t){this.trends.set(t.nodeId,t)}startPipeline(t){this.pipelines.set(t,{nodeId:t,componentIds:[]});let r=this.nodes.get(t);r&&(r.isPipelineParent=!0)}addPipelineComponent(t,r){let i=this.pipelines.get(t);i&&i.componentIds.push(r);let n=this.nodes.get(r);n&&(n.inPipeline=!0)}addAnnotation(t){this.annotations.push(t)}addNote(t){this.notes.push(t)}addAccelerator(t){this.accelerators.push(t)}addDeaccelerator(t){this.deaccelerators.push(t)}setAnnotationsBox(t,r){this.annotationsBox={x:t,y:r}}setAxes(t){this.axes={...this.axes,...t}}setSize(t,r){this.size={width:t,height:r}}getNode(t){return this.nodes.get(t)}resolveNodeId(t){if(this.nodes.has(t))return t;for(let[r,i]of this.nodes)if(i.label===t)return r;return t}build(){let t=[];for(let r of this.nodes.values()){if(typeof r.x!="number"||typeof r.y!="number")throw new Error(`Node "${r.label}" is missing coordinates`);t.push(r)}return{nodes:t,links:[...this.links],trends:[...this.trends.values()],pipelines:[...this.pipelines.values()],annotations:[...this.annotations],notes:[...this.notes],accelerators:[...this.accelerators],deaccelerators:[...this.deaccelerators],annotationsBox:this.annotationsBox,axes:{...this.axes},size:this.size}}clear(){this.nodes.clear(),this.links=[],this.trends.clear(),this.pipelines.clear(),this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.annotationsBox=void 0,this.axes={},this.size=void 0}}});function K5t(){return ge()["wardley-beta"]}function Z5t(e,t,r,i,n,a,s,l,u){Ga.addNode({id:e,label:t,x:r,y:i,className:n,labelOffsetX:a,labelOffsetY:s,inertia:l,sourceStrategy:u})}function Q5t(e,t,r=!1,i,n){Ga.addLink({source:e,target:t,dashed:r,label:i,flow:n})}function J5t(e,t,r){Ga.addTrend({nodeId:e,targetX:t,targetY:r})}function eAt(e,t,r){Ga.addAnnotation({number:e,coordinates:t,text:r})}function tAt(e,t,r){Ga.addNote({text:e,x:t,y:r})}function rAt(e,t,r){Ga.addAccelerator({name:e,x:t,y:r})}function iAt(e,t,r){Ga.addDeaccelerator({name:e,x:t,y:r})}function nAt(e,t){Ga.setAnnotationsBox(e,t)}function aAt(e,t){Ga.setSize(e,t)}function sAt(e){Ga.startPipeline(e)}function oAt(e,t){Ga.addPipelineComponent(e,t)}function lAt(e){Ga.setAxes(e)}function cAt(e){return Ga.getNode(e)}function uAt(e){return Ga.resolveNodeId(e)}function hAt(){return Ga.build()}function dAt(){Ga.clear(),gr()}var Ga,oMe,lMe=z(()=>{"use strict";Ut();Ci();sMe();Ga=new N_;o(K5t,"getConfig");o(Z5t,"addNode");o(Q5t,"addLink");o(J5t,"addTrend");o(eAt,"addAnnotation");o(tAt,"addNote");o(rAt,"addAccelerator");o(iAt,"addDeaccelerator");o(nAt,"setAnnotationsBox");o(aAt,"setSize");o(sAt,"startPipeline");o(oAt,"addPipelineComponent");o(lAt,"updateAxes");o(cAt,"getNode");o(uAt,"resolveNodeId");o(hAt,"getWardleyData");o(dAt,"clear");oMe={getConfig:K5t,addNode:Z5t,addLink:Q5t,addTrend:J5t,addAnnotation:eAt,addNote:tAt,addAccelerator:rAt,addDeaccelerator:iAt,setAnnotationsBox:nAt,setSize:aAt,startPipeline:sAt,addPipelineComponent:oAt,updateAxes:lAt,getNode:cAt,resolveNodeId:uAt,getWardleyData:hAt,clear:dAt,setAccTitle:Cr,getAccTitle:kr,setDiagramTitle:Ar,getDiagramTitle:Er,getAccDescription:Sr,setAccDescription:wr}});var fAt,pAt,mAt,gAt,cMe,uMe=z(()=>{"use strict";Ut();St();ps();Di();fAt=["Genesis","Custom Built","Product","Commodity"],pAt=o(()=>{let{themeVariables:e}=ge();return{backgroundColor:e.wardley?.backgroundColor??e.background??"#fff",axisColor:e.wardley?.axisColor??"#000",axisTextColor:e.wardley?.axisTextColor??e.primaryTextColor??"#222",gridColor:e.wardley?.gridColor??"rgba(100, 100, 100, 0.2)",componentFill:e.wardley?.componentFill??"#fff",componentStroke:e.wardley?.componentStroke??"#000",componentLabelColor:e.wardley?.componentLabelColor??e.primaryTextColor??"#222",linkStroke:e.wardley?.linkStroke??"#000",evolutionStroke:e.wardley?.evolutionStroke??"#dc3545",annotationStroke:e.wardley?.annotationStroke??"#000",annotationTextColor:e.wardley?.annotationTextColor??e.primaryTextColor??"#222",annotationFill:e.wardley?.annotationFill??e.background??"#fff"}},"getTheme"),mAt=o(()=>{let e=ge()["wardley-beta"];return{width:e?.width??900,height:e?.height??600,padding:e?.padding??48,nodeRadius:e?.nodeRadius??6,nodeLabelOffset:e?.nodeLabelOffset??8,axisFontSize:e?.axisFontSize??12,labelFontSize:e?.labelFontSize??10,showGrid:e?.showGrid??!1,useMaxWidth:e?.useMaxWidth??!0}},"getConfigValues"),gAt=o((e,t,r,i)=>{Z.debug(`Rendering Wardley map
|
|
133
|
+
`+e);let n=mAt(),a=pAt(),s=n.nodeRadius*1.6,l=i.db,u=l.getWardleyData(),h=l.getDiagramTitle(),d=u.size?.width??n.width,f=u.size?.height??n.height,p=bi(t);p.selectAll("*").remove(),Br(p,f,d,n.useMaxWidth),p.attr("viewBox",`0 0 ${d} ${f}`);let m=p.append("g").attr("class","wardley-map"),g=p.append("defs");g.append("marker").attr("id",`arrow-${t}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",a.evolutionStroke).attr("stroke","none"),g.append("marker").attr("id",`link-arrow-end-${t}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",a.linkStroke).attr("stroke","none"),g.append("marker").attr("id",`link-arrow-start-${t}`).attr("viewBox","0 0 10 10").attr("refX",1).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z").attr("fill",a.linkStroke).attr("stroke","none"),m.append("rect").attr("class","wardley-background").attr("width",d).attr("height",f).attr("fill",a.backgroundColor);let y=d-n.padding*2,v=f-n.padding*2;h&&m.append("text").attr("class","wardley-title").attr("x",d/2).attr("y",n.padding/2).attr("fill",a.axisTextColor).attr("font-size",n.axisFontSize*1.05).attr("font-weight","bold").attr("text-anchor","middle").attr("dominant-baseline","middle").text(h);let x=o(O=>n.padding+O/100*y,"projectX"),b=o(O=>f-n.padding-O/100*v,"projectY"),T=m.append("g").attr("class","wardley-axes");T.append("line").attr("x1",n.padding).attr("x2",d-n.padding).attr("y1",f-n.padding).attr("y2",f-n.padding).attr("stroke",a.axisColor).attr("stroke-width",1),T.append("line").attr("x1",n.padding).attr("x2",n.padding).attr("y1",n.padding).attr("y2",f-n.padding).attr("stroke",a.axisColor).attr("stroke-width",1);let w=u.axes.xLabel??"Evolution",C=u.axes.yLabel??"Visibility";T.append("text").attr("class","wardley-axis-label wardley-axis-label-x").attr("x",n.padding+y/2).attr("y",f-n.padding/4).attr("fill",a.axisTextColor).attr("font-size",n.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").text(w),T.append("text").attr("class","wardley-axis-label wardley-axis-label-y").attr("x",n.padding/3).attr("y",n.padding+v/2).attr("fill",a.axisTextColor).attr("font-size",n.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").attr("transform",`rotate(-90 ${n.padding/3} ${n.padding+v/2})`).text(C);let k=u.axes.stages&&u.axes.stages.length>0?u.axes.stages:fAt;if(k.length>0){let O=m.append("g").attr("class","wardley-stages"),$=u.axes.stageBoundaries,G=[];if($&&$.length===k.length){let F=0;$.forEach(V=>{G.push({start:F,end:V}),F=V})}else{let F=1/k.length;k.forEach((V,H)=>{G.push({start:H*F,end:(H+1)*F})})}k.forEach((F,V)=>{let H=G[V],j=n.padding+H.start*y,U=n.padding+H.end*y,Q=(j+U)/2;V>0&&O.append("line").attr("x1",j).attr("x2",j).attr("y1",n.padding).attr("y2",f-n.padding).attr("stroke","#000").attr("stroke-width",1).attr("stroke-dasharray","5 5").attr("opacity",.8),O.append("text").attr("class","wardley-stage-label").attr("x",Q).attr("y",f-n.padding/1.5).attr("fill",a.axisTextColor).attr("font-size",n.axisFontSize-2).attr("text-anchor","middle").text(F)})}if(n.showGrid){let O=m.append("g").attr("class","wardley-grid");for(let $=1;$<4;$++){let G=$/4,F=n.padding+y*G;O.append("line").attr("x1",F).attr("x2",F).attr("y1",n.padding).attr("y2",f-n.padding).attr("stroke",a.gridColor).attr("stroke-dasharray","2 6"),O.append("line").attr("x1",n.padding).attr("x2",d-n.padding).attr("y1",f-n.padding-v*G).attr("y2",f-n.padding-v*G).attr("stroke",a.gridColor).attr("stroke-dasharray","2 6")}}let E=new Map;if(u.nodes.forEach(O=>{E.set(O.id,{x:x(O.x),y:b(O.y),node:O})}),u.pipelines.length>0){let O=m.append("g").attr("class","wardley-pipelines"),$=m.append("g").attr("class","wardley-pipeline-links");u.pipelines.forEach(G=>{if(G.componentIds.length===0)return;let F=G.componentIds.map(U=>({id:U,pos:E.get(U),node:u.nodes.find(Q=>Q.id===U)})).filter(U=>U.pos&&U.node).sort((U,Q)=>U.node.x-Q.node.x);for(let U=0;U<F.length-1;U++){let Q=F[U],Y=F[U+1];$.append("line").attr("class","wardley-pipeline-evolution-link").attr("x1",Q.pos.x).attr("y1",Q.pos.y).attr("x2",Y.pos.x).attr("y2",Y.pos.y).attr("stroke",a.linkStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4")}let V=1/0,H=-1/0,j=0;if(G.componentIds.forEach(U=>{let Q=E.get(U);Q&&(V=Math.min(V,Q.x),H=Math.max(H,Q.x),j=Q.y)}),V!==1/0&&H!==-1/0){let Q=n.nodeRadius*4,Y=j-Q/2,ae=E.get(G.nodeId);if(ae){let J=(V+H)/2;ae.x=J,ae.y=Y-s/6}O.append("rect").attr("class","wardley-pipeline-box").attr("x",V-15).attr("y",Y).attr("width",H-V+30).attr("height",Q).attr("fill","none").attr("stroke",a.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}})}let A=m.append("g").attr("class","wardley-links"),N=new Map;u.pipelines.forEach(O=>{N.set(O.nodeId,new Set(O.componentIds))});let P=u.links.filter(O=>!(!E.has(O.source)||!E.has(O.target)||N.get(O.target)?.has(O.source)));A.selectAll("line").data(P).enter().append("line").attr("class",O=>`wardley-link${O.dashed?" wardley-link--dashed":""}`).attr("x1",O=>{let $=E.get(O.source),G=E.get(O.target),V=u.nodes.find(Q=>Q.id===O.source).isPipelineParent?s/Math.sqrt(2):n.nodeRadius,H=G.x-$.x,j=G.y-$.y,U=Math.sqrt(H*H+j*j);return $.x+H/U*V}).attr("y1",O=>{let $=E.get(O.source),G=E.get(O.target),V=u.nodes.find(Q=>Q.id===O.source).isPipelineParent?s/Math.sqrt(2):n.nodeRadius,H=G.x-$.x,j=G.y-$.y,U=Math.sqrt(H*H+j*j);return $.y+j/U*V}).attr("x2",O=>{let $=E.get(O.source),G=E.get(O.target),V=u.nodes.find(Q=>Q.id===O.target).isPipelineParent?s/Math.sqrt(2):n.nodeRadius,H=$.x-G.x,j=$.y-G.y,U=Math.sqrt(H*H+j*j);return G.x+H/U*V}).attr("y2",O=>{let $=E.get(O.source),G=E.get(O.target),V=u.nodes.find(Q=>Q.id===O.target).isPipelineParent?s/Math.sqrt(2):n.nodeRadius,H=$.x-G.x,j=$.y-G.y,U=Math.sqrt(H*H+j*j);return G.y+j/U*V}).attr("stroke",a.linkStroke).attr("stroke-width",1).attr("stroke-dasharray",O=>O.dashed?"6 6":null).attr("marker-end",O=>O.flow==="forward"||O.flow==="bidirectional"?`url(#link-arrow-end-${t})`:null).attr("marker-start",O=>O.flow==="backward"||O.flow==="bidirectional"?`url(#link-arrow-start-${t})`:null),A.selectAll("text").data(P.filter(O=>O.label)).enter().append("text").attr("class","wardley-link-label").attr("x",O=>{let $=E.get(O.source),G=E.get(O.target),F=($.x+G.x)/2,V=G.y-$.y,H=G.x-$.x,j=Math.sqrt(H*H+V*V),U=8,Q=V/j;return F+Q*U}).attr("y",O=>{let $=E.get(O.source),G=E.get(O.target),F=($.y+G.y)/2,V=G.x-$.x,H=G.y-$.y,j=Math.sqrt(V*V+H*H),U=8,Q=-V/j;return F+Q*U}).attr("fill",a.axisTextColor).attr("font-size",n.labelFontSize).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("transform",O=>{let $=E.get(O.source),G=E.get(O.target),F=($.x+G.x)/2,V=($.y+G.y)/2,H=G.x-$.x,j=G.y-$.y,U=Math.sqrt(H*H+j*j),Q=8,Y=j/U,ae=-H/U,J=F+Y*Q,te=V+ae*Q,re=Math.atan2(j,H)*180/Math.PI;return(re>90||re<-90)&&(re+=180),`rotate(${re} ${J} ${te})`}).text(O=>O.label);let I=m.append("g").attr("class","wardley-trends"),D=u.trends.map(O=>{let $=E.get(O.nodeId);if(!$)return null;let G=x(O.targetX),F=b(O.targetY),V=G-$.x,H=F-$.y,j=Math.sqrt(V*V+H*H),U=n.nodeRadius+2,Q=j>U?G-V/j*U:G,Y=j>U?F-H/j*U:F;return{origin:$,targetX:G,targetY:F,adjustedX2:Q,adjustedY2:Y}}).filter(O=>O!==null);I.selectAll("line").data(D).enter().append("line").attr("class","wardley-trend").attr("x1",O=>O.origin.x).attr("y1",O=>O.origin.y).attr("x2",O=>O.adjustedX2).attr("y2",O=>O.adjustedY2).attr("stroke",a.evolutionStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4").attr("marker-end",`url(#arrow-${t})`);let R=m.append("g").attr("class","wardley-nodes").selectAll("g").data(u.nodes).enter().append("g").attr("class",O=>["wardley-node",O.className?`wardley-node--${O.className}`:""].filter(Boolean).join(" "));R.filter(O=>O.sourceStrategy==="outsource").append("circle").attr("class","wardley-outsource-overlay").attr("cx",O=>E.get(O.id).x).attr("cy",O=>E.get(O.id).y).attr("r",n.nodeRadius*2).attr("fill","#666").attr("stroke",a.componentStroke).attr("stroke-width",1),R.filter(O=>O.sourceStrategy==="buy").append("circle").attr("class","wardley-buy-overlay").attr("cx",O=>E.get(O.id).x).attr("cy",O=>E.get(O.id).y).attr("r",n.nodeRadius*2).attr("fill","#ccc").attr("stroke",a.componentStroke).attr("stroke-width",1),R.filter(O=>O.sourceStrategy==="build").append("circle").attr("class","wardley-build-overlay").attr("cx",O=>E.get(O.id).x).attr("cy",O=>E.get(O.id).y).attr("r",n.nodeRadius*2).attr("fill","#eee").attr("stroke","#000").attr("stroke-width",1);let M=R.filter(O=>O.sourceStrategy==="market");M.append("circle").attr("class","wardley-market-overlay").attr("cx",O=>E.get(O.id).x).attr("cy",O=>E.get(O.id).y).attr("r",n.nodeRadius*2).attr("fill","white").attr("stroke",a.componentStroke).attr("stroke-width",1),R.filter(O=>!O.isPipelineParent&&O.sourceStrategy!=="market"&&O.className!=="anchor").append("circle").attr("cx",O=>E.get(O.id).x).attr("cy",O=>E.get(O.id).y).attr("r",n.nodeRadius).attr("fill",a.componentFill).attr("stroke",a.componentStroke).attr("stroke-width",1);let L=n.nodeRadius*.7,B=n.nodeRadius*1.2;if(M.append("line").attr("class","wardley-market-line").attr("x1",O=>E.get(O.id).x).attr("y1",O=>E.get(O.id).y-B).attr("x2",O=>E.get(O.id).x-B*Math.cos(Math.PI/6)).attr("y2",O=>E.get(O.id).y+B*Math.sin(Math.PI/6)).attr("stroke",a.componentStroke).attr("stroke-width",1),M.append("line").attr("class","wardley-market-line").attr("x1",O=>E.get(O.id).x-B*Math.cos(Math.PI/6)).attr("y1",O=>E.get(O.id).y+B*Math.sin(Math.PI/6)).attr("x2",O=>E.get(O.id).x+B*Math.cos(Math.PI/6)).attr("y2",O=>E.get(O.id).y+B*Math.sin(Math.PI/6)).attr("stroke",a.componentStroke).attr("stroke-width",1),M.append("line").attr("class","wardley-market-line").attr("x1",O=>E.get(O.id).x+B*Math.cos(Math.PI/6)).attr("y1",O=>E.get(O.id).y+B*Math.sin(Math.PI/6)).attr("x2",O=>E.get(O.id).x).attr("y2",O=>E.get(O.id).y-B).attr("stroke",a.componentStroke).attr("stroke-width",1),M.append("circle").attr("class","wardley-market-dot").attr("cx",O=>E.get(O.id).x).attr("cy",O=>E.get(O.id).y-B).attr("r",L).attr("fill","white").attr("stroke",a.componentStroke).attr("stroke-width",2),M.append("circle").attr("class","wardley-market-dot").attr("cx",O=>E.get(O.id).x-B*Math.cos(Math.PI/6)).attr("cy",O=>E.get(O.id).y+B*Math.sin(Math.PI/6)).attr("r",L).attr("fill","white").attr("stroke",a.componentStroke).attr("stroke-width",2),M.append("circle").attr("class","wardley-market-dot").attr("cx",O=>E.get(O.id).x+B*Math.cos(Math.PI/6)).attr("cy",O=>E.get(O.id).y+B*Math.sin(Math.PI/6)).attr("r",L).attr("fill","white").attr("stroke",a.componentStroke).attr("stroke-width",2),R.filter(O=>O.isPipelineParent===!0).append("rect").attr("x",O=>E.get(O.id).x-s/2).attr("y",O=>E.get(O.id).y-s/2).attr("width",s).attr("height",s).attr("fill",a.componentFill).attr("stroke",a.componentStroke).attr("stroke-width",1),R.filter(O=>O.inertia===!0).append("line").attr("class","wardley-inertia").attr("x1",O=>{let $=E.get(O.id),G=O.isPipelineParent?s/2+15:n.nodeRadius+15;return O.sourceStrategy&&(G+=n.nodeRadius+10),$.x+G}).attr("y1",O=>{let $=E.get(O.id),G=O.isPipelineParent?s:n.nodeRadius*2;return $.y-G/2}).attr("x2",O=>{let $=E.get(O.id),G=O.isPipelineParent?s/2+15:n.nodeRadius+15;return O.sourceStrategy&&(G+=n.nodeRadius+10),$.x+G}).attr("y2",O=>{let $=E.get(O.id),G=O.isPipelineParent?s:n.nodeRadius*2;return $.y+G/2}).attr("stroke",a.componentStroke).attr("stroke-width",6),R.append("text").attr("x",O=>{let $=E.get(O.id);if(O.className==="anchor")return O.labelOffsetX!==void 0?$.x+O.labelOffsetX:$.x;let G=n.nodeLabelOffset;O.sourceStrategy&&O.labelOffsetX===void 0&&(G+=10);let F=O.labelOffsetX??G;return $.x+F}).attr("y",O=>{let $=E.get(O.id);if(O.className==="anchor")return O.labelOffsetY!==void 0?$.y+O.labelOffsetY:$.y-3;let G=-n.nodeLabelOffset;O.sourceStrategy&&O.labelOffsetY===void 0&&(G-=10);let F=O.labelOffsetY??G;return $.y+F}).attr("class","wardley-node-label").attr("fill",O=>O.className==="evolved"?a.evolutionStroke:O.className==="anchor"?"#000":a.componentLabelColor).attr("font-size",n.labelFontSize).attr("font-weight",O=>O.className==="anchor"?"bold":"normal").attr("text-anchor",O=>O.className==="anchor"?"middle":"start").attr("dominant-baseline",O=>O.className==="anchor"?"middle":"auto").text(O=>O.label),u.annotations.length>0){let O=m.append("g").attr("class","wardley-annotations");if(u.annotations.forEach($=>{let G=$.coordinates.map(F=>({x:x(F.x),y:b(F.y)}));if(G.length>1)for(let F=0;F<G.length-1;F++)O.append("line").attr("class","wardley-annotation-line").attr("x1",G[F].x).attr("y1",G[F].y).attr("x2",G[F+1].x).attr("y2",G[F+1].y).attr("stroke",a.axisColor).attr("stroke-width",1.5).attr("stroke-dasharray","4 4");G.forEach(F=>{let V=O.append("g").attr("class","wardley-annotation");V.append("circle").attr("cx",F.x).attr("cy",F.y).attr("r",10).attr("fill","white").attr("stroke",a.axisColor).attr("stroke-width",1.5),V.append("text").attr("x",F.x).attr("y",F.y).attr("text-anchor","middle").attr("dominant-baseline","central").attr("font-size",10).attr("fill",a.axisTextColor).attr("font-weight","bold").text($.number)})}),u.annotationsBox){let $=x(u.annotationsBox.x),G=b(u.annotationsBox.y),F=10,V=16,H=11,j=O.append("g").attr("class","wardley-annotations-box"),U=[...u.annotations].filter(Y=>Y.text).sort((Y,ae)=>Y.number-ae.number),Q=[];if(U.forEach((Y,ae)=>{let J=j.append("text").attr("x",$+F).attr("y",G+F+(ae+1)*V).attr("font-size",H).attr("fill",a.axisTextColor).attr("text-anchor","start").attr("dominant-baseline","middle").text(`${Y.number}. ${Y.text}`);Q.push(J)}),Q.length>0){let Y=0,ae=0;Q.forEach(De=>{let Ie=De.node(),Ee=Ie.getComputedTextLength();Y=Math.max(Y,Ee);let we=Ie.getBBox();ae=Math.max(ae,we.height)});let J=Y+F*2+105,te=U.length*V+F*2+ae/2,re=n.padding,ee=d-n.padding-J,Te=n.padding,ue=f-n.padding-te;$=Math.max(re,Math.min($,ee)),G=Math.max(Te,Math.min(G,ue)),Q.forEach((De,Ie)=>{De.attr("x",$+F).attr("y",G+F+(Ie+1)*V)}),j.insert("rect","text").attr("x",$).attr("y",G).attr("width",J).attr("height",te).attr("fill","white").attr("stroke",a.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}}}if(u.notes.length>0){let O=m.append("g").attr("class","wardley-notes");u.notes.forEach($=>{let G=x($.x),F=b($.y);O.append("text").attr("x",G).attr("y",F).attr("text-anchor","start").attr("font-size",11).attr("fill",a.axisTextColor).attr("font-weight","bold").text($.text)})}if(u.accelerators.length>0){let O=m.append("g").attr("class","wardley-accelerators");u.accelerators.forEach($=>{let G=x($.x),F=b($.y),V=60,H=30,j=20,U=`
|
|
134
|
+
M ${G} ${F-H/2}
|
|
135
|
+
L ${G+V-j} ${F-H/2}
|
|
136
|
+
L ${G+V-j} ${F-H/2-8}
|
|
137
|
+
L ${G+V} ${F}
|
|
138
|
+
L ${G+V-j} ${F+H/2+8}
|
|
139
|
+
L ${G+V-j} ${F+H/2}
|
|
140
|
+
L ${G} ${F+H/2}
|
|
141
|
+
Z
|
|
142
|
+
`;O.append("path").attr("d",U).attr("fill","white").attr("stroke",a.componentStroke).attr("stroke-width",1),O.append("text").attr("x",G+V/2).attr("y",F+H/2+15).attr("text-anchor","middle").attr("font-size",10).attr("fill",a.axisTextColor).attr("font-weight","bold").text($.name)})}if(u.deaccelerators.length>0){let O=m.append("g").attr("class","wardley-deaccelerators");u.deaccelerators.forEach($=>{let G=x($.x),F=b($.y),V=60,H=30,j=20,U=`
|
|
143
|
+
M ${G+V} ${F-H/2}
|
|
144
|
+
L ${G+j} ${F-H/2}
|
|
145
|
+
L ${G+j} ${F-H/2-8}
|
|
146
|
+
L ${G} ${F}
|
|
147
|
+
L ${G+j} ${F+H/2+8}
|
|
148
|
+
L ${G+j} ${F+H/2}
|
|
149
|
+
L ${G+V} ${F+H/2}
|
|
150
|
+
Z
|
|
151
|
+
`;O.append("path").attr("d",U).attr("fill","white").attr("stroke",a.componentStroke).attr("stroke-width",1),O.append("text").attr("x",G+V/2).attr("y",F+H/2+15).attr("text-anchor","middle").attr("font-size",10).attr("fill",a.axisTextColor).attr("font-weight","bold").text($.name)})}},"draw"),cMe={draw:gAt}});var hMe,dMe=z(()=>{"use strict";Xt();$f();br();hMe=o(({wardley:e}={})=>{let t=Ao(),r=Nt(),i=Gr(t,r.themeVariables),n=Gr(i.wardley,e);return`
|
|
152
|
+
.wardley-background {
|
|
153
|
+
fill: ${n.backgroundColor};
|
|
154
|
+
}
|
|
155
|
+
.wardley-axes line, .wardley-axes path {
|
|
156
|
+
stroke: ${n.axisColor};
|
|
157
|
+
}
|
|
158
|
+
.wardley-axis-label {
|
|
159
|
+
fill: ${n.axisTextColor};
|
|
160
|
+
}
|
|
161
|
+
.wardley-stage-label {
|
|
162
|
+
fill: ${n.axisTextColor};
|
|
163
|
+
}
|
|
164
|
+
.wardley-grid line {
|
|
165
|
+
stroke: ${n.gridColor};
|
|
166
|
+
}
|
|
167
|
+
.wardley-node circle {
|
|
168
|
+
fill: ${n.componentFill};
|
|
169
|
+
stroke: ${n.componentStroke};
|
|
170
|
+
}
|
|
171
|
+
.wardley-node-label {
|
|
172
|
+
fill: ${n.componentLabelColor};
|
|
173
|
+
}
|
|
174
|
+
.wardley-link {
|
|
175
|
+
stroke: ${n.linkStroke};
|
|
176
|
+
}
|
|
177
|
+
.wardley-link--dashed {
|
|
178
|
+
stroke-dasharray: 4 4;
|
|
179
|
+
}
|
|
180
|
+
.wardley-link-label {
|
|
181
|
+
fill: ${n.axisTextColor};
|
|
182
|
+
}
|
|
183
|
+
.wardley-trend line {
|
|
184
|
+
stroke: ${n.evolutionStroke};
|
|
185
|
+
}
|
|
186
|
+
.wardley-annotation-line {
|
|
187
|
+
stroke: ${n.annotationStroke};
|
|
188
|
+
}
|
|
189
|
+
.wardley-annotation circle {
|
|
190
|
+
fill: ${n.annotationFill};
|
|
191
|
+
stroke: ${n.annotationStroke};
|
|
192
|
+
}
|
|
193
|
+
.wardley-annotation text {
|
|
194
|
+
fill: ${n.annotationTextColor};
|
|
195
|
+
}
|
|
196
|
+
.wardley-annotations-box rect {
|
|
197
|
+
fill: ${n.annotationFill};
|
|
198
|
+
stroke: ${n.annotationStroke};
|
|
199
|
+
}
|
|
200
|
+
.wardley-annotations-box text {
|
|
201
|
+
fill: ${n.annotationTextColor};
|
|
202
|
+
}
|
|
203
|
+
.wardley-pipeline-box {
|
|
204
|
+
stroke: ${n.componentStroke};
|
|
205
|
+
}
|
|
206
|
+
.wardley-notes text {
|
|
207
|
+
fill: ${n.axisTextColor};
|
|
208
|
+
}
|
|
209
|
+
`},"styles")});var fMe={};xr(fMe,{diagram:()=>yAt});var yAt,pMe=z(()=>{"use strict";aMe();lMe();uMe();dMe();yAt={parser:bU,db:oMe,renderer:cMe,styles:hMe}});var s6t={};xr(s6t,{default:()=>a6t});uc();RD();Xf();var Yze=o(e=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),"detector"),jze=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(cte(),lte));return{id:"c4",diagram:e}},"loader"),Xze={id:"c4",detector:Yze,loader:jze},ute=Xze;var t1e="flowchart",Jot=o((e,t)=>t?.flowchart?.defaultRenderer==="dagre-wrapper"||t?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(e),"detector"),elt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(dE(),hE));return{id:t1e,diagram:e}},"loader"),tlt={id:t1e,detector:Jot,loader:elt},r1e=tlt;var i1e="flowchart-v2",rlt=o((e,t)=>t?.flowchart?.defaultRenderer==="dagre-d3"?!1:(t?.flowchart?.defaultRenderer==="elk"&&(t.layout="elk"),/^\s*graph/.test(e)&&t?.flowchart?.defaultRenderer==="dagre-wrapper"?!0:/^\s*flowchart/.test(e)),"detector"),ilt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(dE(),hE));return{id:i1e,diagram:e}},"loader"),nlt={id:i1e,detector:rlt,loader:ilt},n1e=nlt;var clt=o(e=>/^\s*erDiagram/.test(e),"detector"),ult=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(f1e(),d1e));return{id:"er",diagram:e}},"loader"),hlt={id:"er",detector:clt,loader:ult},p1e=hlt;var s5e="gitGraph",vbt=o(e=>/^\s*gitGraph/.test(e),"detector"),xbt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(a5e(),n5e));return{id:s5e,diagram:e}},"loader"),bbt={id:s5e,detector:vbt,loader:xbt},o5e=bbt;var $5e="gantt",l2t=o(e=>/^\s*gantt/.test(e),"detector"),c2t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(F5e(),B5e));return{id:$5e,diagram:e}},"loader"),u2t={id:$5e,detector:l2t,loader:c2t},z5e=u2t;var X5e="info",m2t=o(e=>/^\s*info/.test(e),"detector"),g2t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(j5e(),Y5e));return{id:X5e,diagram:e}},"loader"),K5e={id:X5e,detector:m2t,loader:g2t};var D2t=o(e=>/^\s*pie/.test(e),"detector"),R2t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(aAe(),nAe));return{id:"pie",diagram:e}},"loader"),sAe={id:"pie",detector:D2t,loader:R2t};var xAe="quadrantChart",j2t=o(e=>/^\s*quadrantChart/.test(e),"detector"),X2t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(vAe(),yAe));return{id:xAe,diagram:e}},"loader"),K2t={id:xAe,detector:j2t,loader:X2t},bAe=K2t;var YAe="xychart",fTt=o(e=>/^\s*xychart(-beta)?/.test(e),"detector"),pTt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(HAe(),UAe));return{id:YAe,diagram:e}},"loader"),mTt={id:YAe,detector:fTt,loader:pTt},jAe=mTt;var i6e="requirement",bTt=o(e=>/^\s*requirement(Diagram)?/.test(e),"detector"),TTt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(r6e(),t6e));return{id:i6e,diagram:e}},"loader"),CTt={id:i6e,detector:bTt,loader:TTt},n6e=CTt;var C6e="sequence",vCt=o(e=>/^\s*sequenceDiagram/.test(e),"detector"),xCt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(T6e(),b6e));return{id:C6e,diagram:e}},"loader"),bCt={id:C6e,detector:vCt,loader:xCt},k6e=bCt;var D6e="class",ECt=o((e,t)=>t?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(e),"detector"),ACt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(_6e(),A6e));return{id:D6e,diagram:e}},"loader"),_Ct={id:D6e,detector:ECt,loader:ACt},R6e=_Ct;var N6e="classDiagram",RCt=o((e,t)=>/^\s*classDiagram/.test(e)&&t?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(e),"detector"),LCt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(M6e(),L6e));return{id:N6e,diagram:e}},"loader"),MCt={id:N6e,detector:RCt,loader:LCt},I6e=MCt;var d_e="state",nkt=o((e,t)=>t?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(e),"detector"),akt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(h_e(),u_e));return{id:d_e,diagram:e}},"loader"),skt={id:d_e,detector:nkt,loader:akt},f_e=skt;var g_e="stateDiagram",lkt=o((e,t)=>!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&t?.state?.defaultRenderer==="dagre-wrapper"),"detector"),ckt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(m_e(),p_e));return{id:g_e,diagram:e}},"loader"),ukt={id:g_e,detector:lkt,loader:ckt},y_e=ukt;var M_e="journey",Lkt=o(e=>/^\s*journey/.test(e),"detector"),Mkt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(L_e(),R_e));return{id:M_e,diagram:e}},"loader"),Nkt={id:M_e,detector:Lkt,loader:Mkt},N_e=Nkt;St();ps();Di();var Ikt=o((e,t,r)=>{Z.debug(`rendering svg for syntax error
|
|
210
|
+
`);let i=bi(t),n=i.append("g");i.attr("viewBox","0 0 2412 512"),Br(i,100,512,!0),n.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"),n.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"),n.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"),n.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"),n.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"),n.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"),n.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"),n.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"),VW={draw:Ikt},I_e=VW;var Okt={db:{},renderer:VW,parser:{parse:o(()=>{},"parse")}},O_e=Okt;var P_e="flowchart-elk",Pkt=o((e,t={})=>/^\s*flowchart-elk/.test(e)||/^\s*(flowchart|graph)/.test(e)&&t?.flowchart?.defaultRenderer==="elk"?(t.layout="elk",!0):!1,"detector"),Bkt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(dE(),hE));return{id:P_e,diagram:e}},"loader"),Fkt={id:P_e,detector:Pkt,loader:Bkt},B_e=Fkt;var v7e="timeline",cwt=o(e=>/^\s*timeline/.test(e),"detector"),uwt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(y7e(),g7e));return{id:v7e,diagram:e}},"loader"),hwt={id:v7e,detector:cwt,loader:uwt},x7e=hwt;var P7e="mindmap",bwt=o(e=>/^\s*mindmap/.test(e),"detector"),Twt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(O7e(),I7e));return{id:P7e,diagram:e}},"loader"),Cwt={id:P7e,detector:bwt,loader:Twt},B7e=Cwt;var X7e="kanban",Fwt=o(e=>/^\s*kanban/.test(e),"detector"),$wt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(j7e(),Y7e));return{id:X7e,diagram:e}},"loader"),zwt={id:X7e,detector:Fwt,loader:$wt},K7e=zwt;var LDe="sankey",u4t=o(e=>/^\s*sankey(-beta)?/.test(e),"detector"),h4t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(RDe(),DDe));return{id:LDe,diagram:e}},"loader"),d4t={id:LDe,detector:u4t,loader:h4t},MDe=d4t;var zDe="packet",T4t=o(e=>/^\s*packet(-beta)?/.test(e),"detector"),C4t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>($De(),FDe));return{id:zDe,diagram:e}},"loader"),GDe={id:zDe,detector:T4t,loader:C4t};var QDe="radar",q4t=o(e=>/^\s*radar-beta/.test(e),"detector"),U4t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(ZDe(),KDe));return{id:QDe,diagram:e}},"loader"),JDe={id:QDe,detector:q4t,loader:U4t};var rRe="block",m3t=o(e=>/^\s*block(-beta)?/.test(e),"detector"),g3t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(tRe(),eRe));return{id:rRe,diagram:e}},"loader"),y3t={id:rRe,detector:m3t,loader:g3t},iRe=y3t;var fRe="treeView",N3t=o(e=>/^\s*treeView-beta/.test(e),"detector"),I3t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(dRe(),hRe));return{id:fRe,diagram:e}},"loader"),O3t={id:fRe,detector:N3t,loader:I3t},pRe=O3t;var PRe="architecture",K3t=o(e=>/^\s*architecture/.test(e),"detector"),Z3t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(ORe(),IRe));return{id:PRe,diagram:e}},"loader"),Q3t={id:PRe,detector:K3t,loader:Z3t},BRe=Q3t;var KRe="eventmodeling",PEt=o(e=>/^\s*eventmodeling/.test(e),"detector"),BEt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(XRe(),jRe));return{id:KRe,diagram:e}},"loader"),FEt={id:KRe,detector:PEt,loader:BEt},ZRe=FEt;var pLe="ishikawa",ZEt=o(e=>/^\s*ishikawa(-beta)?\b/i.test(e),"detector"),QEt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(fLe(),dLe));return{id:pLe,diagram:e}},"loader"),mLe={id:pLe,detector:ZEt,loader:QEt};var ULe="venn",O5t=o(e=>/^\s*venn-beta/.test(e),"detector"),P5t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(qLe(),WLe));return{id:ULe,diagram:e}},"loader"),B5t={id:ULe,detector:O5t,loader:P5t},HLe=B5t;Xf();Ut();var rMe="treemap",H5t=o(e=>/^\s*treemap/.test(e),"detector"),Y5t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(tMe(),eMe));return{id:rMe,diagram:e}},"loader"),iMe={id:rMe,detector:H5t,loader:Y5t};var mMe="wardley-beta",vAt=o(e=>/^\s*wardley-beta/i.test(e),"detector"),xAt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(pMe(),fMe));return{id:mMe,diagram:e}},"loader"),bAt={id:mMe,detector:vAt,loader:xAt},gMe=bAt;var yMe=!1,Vy=o(()=>{yMe||(yMe=!0,Kf("error",O_e,e=>e.toLowerCase().trim()==="error"),Kf("---",{db:{clear:o(()=>{},"clear")},styles:{},renderer:{draw:o(()=>{},"draw")},parser:{parse:o(()=>{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:o(()=>null,"init")},e=>e.toLowerCase().trimStart().startsWith("---")),Cv(B_e,B7e,BRe),Cv(ute,K7e,I6e,R6e,p1e,z5e,K5e,sAe,n6e,k6e,n1e,r1e,x7e,o5e,y_e,f_e,N_e,bAe,MDe,GDe,jAe,iRe,ZRe,pRe,JDe,mLe,iMe,HLe,gMe))},"addDiagrams");St();Xf();Ut();var vMe=o(async()=>{Z.debug("Loading registered diagrams");let t=(await Promise.allSettled(Object.entries(ku).map(async([r,{detector:i,loader:n}])=>{if(n)try{_v(r)}catch{try{let{diagram:a,id:s}=await n();Kf(s,a,i)}catch(a){throw Z.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete ku[r],a}}}))).filter(r=>r.status==="rejected");if(t.length>0){Z.error(`Failed to load ${t.length} external diagrams`);for(let r of t)Z.error(r);throw new Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams");St();Rr();var Wy="comm",I_="rule",O_="decl";var xMe="@media",bMe="@import";var TMe="@supports";var CMe="@namespace",gC="@keyframes";var P_="@layer",kMe="@scope";var TU=Math.abs,yC=String.fromCharCode;function B_(e){return e.trim()}o(B_,"trim");function qy(e,t,r){return e.replace(t,r)}o(qy,"replace");function wMe(e,t,r){return e.indexOf(t,r)}o(wMe,"indexof");function Lh(e,t){return e.charCodeAt(t)|0}o(Lh,"charat");function Mh(e,t,r){return e.slice(t,r)}o(Mh,"substr");function Ks(e){return e.length}o(Ks,"strlen");function F_(e){return e.length}o(F_,"sizeof");function Uy(e,t){return t.push(e),e}o(Uy,"append");var $_=1,Hy=1,SMe=0,ul=0,Nn=0,jy="";function z_(e,t,r,i,n,a,s,l){return{value:e,root:t,parent:r,type:i,props:n,children:a,line:$_,column:Hy,length:s,return:"",siblings:l}}o(z_,"node");function EMe(){return Nn}o(EMe,"char");function AMe(){return Nn=ul>0?Lh(jy,--ul):0,Hy--,Nn===10&&(Hy=1,$_--),Nn}o(AMe,"prev");function hl(){return Nn=ul<SMe?Lh(jy,ul++):0,Hy++,Nn===10&&(Hy=1,$_++),Nn}o(hl,"next");function Nh(){return Lh(jy,ul)}o(Nh,"peek");function vC(){return ul}o(vC,"caret");function G_(e,t){return Mh(jy,e,t)}o(G_,"slice");function Yy(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}o(Yy,"token");function _Me(e){return $_=Hy=1,SMe=Ks(jy=e),ul=0,[]}o(_Me,"alloc");function DMe(e){return jy="",e}o(DMe,"dealloc");function V_(e){return B_(G_(ul-1,CU(e===91?e+2:e===40?e+1:e)))}o(V_,"delimit");function RMe(e){for(;(Nn=Nh())&&Nn<33;)hl();return Yy(e)>2||Yy(Nn)>3?"":" "}o(RMe,"whitespace");function LMe(e,t){for(;--t&&hl()&&!(Nn<48||Nn>102||Nn>57&&Nn<65||Nn>70&&Nn<97););return G_(e,vC()+(t<6&&Nh()==32&&hl()==32))}o(LMe,"escaping");function CU(e){for(;hl();)switch(Nn){case e:return ul;case 34:case 39:e!==34&&e!==39&&CU(Nn);break;case 40:e===41&&CU(e);break;case 92:hl();break}return ul}o(CU,"delimiter");function MMe(e,t){for(;hl()&&e+Nn!==57;)if(e+Nn===84&&Nh()===47)break;return"/*"+G_(t,ul-1)+"*"+yC(e===47?e:hl())}o(MMe,"commenter");function NMe(e){for(;!Yy(Nh());)hl();return G_(e,ul)}o(NMe,"identifier");function PMe(e){return DMe(W_("",null,null,null,[""],e=_Me(e),0,[0],e))}o(PMe,"compile");function W_(e,t,r,i,n,a,s,l,u){for(var h=0,d=0,f=s,p=0,m=0,g=0,y=1,v=1,x=1,b=0,T="",w=n,C=a,k=i,E=T;v;)switch(g=b,b=hl()){case 40:if(g!=108&&Lh(E,f-1)==58){wMe(E+=qy(V_(b),"&","&\f"),"&\f",TU(h?l[h-1]:0))!=-1&&(x=-1);break}case 34:case 39:case 91:E+=V_(b);break;case 9:case 10:case 13:case 32:E+=RMe(g);break;case 92:E+=LMe(vC()-1,7);continue;case 47:switch(Nh()){case 42:case 47:Uy(CAt(MMe(hl(),vC()),t,r,u),u),(Yy(g||1)==5||Yy(Nh()||1)==5)&&Ks(E)&&Mh(E,-1,void 0)!==" "&&(E+=" ");break;default:E+="/"}break;case 123*y:l[h++]=Ks(E)*x;case 125*y:case 59:case 0:switch(b){case 0:case 125:v=0;case 59+d:x==-1&&(E=qy(E,/\f/g,"")),m>0&&(Ks(E)-f||y===0&&g===47)&&Uy(m>32?OMe(E+";",i,r,f-1,u):OMe(qy(E," ","")+";",i,r,f-2,u),u);break;case 59:E+=";";default:if(Uy(k=IMe(E,t,r,h,d,n,l,T,w=[],C=[],f,a),a),b===123)if(d===0)W_(E,t,k,k,w,a,f,l,C);else{switch(p){case 99:if(Lh(E,3)===110)break;case 108:if(Lh(E,2)===97)break;default:d=0;case 100:case 109:case 115:}d?W_(e,k,k,i&&Uy(IMe(e,k,k,0,0,n,l,T,n,w=[],f,C),C),n,C,f,l,i?w:C):W_(E,k,k,k,[""],C,0,l,C)}}h=d=m=0,y=x=1,T=E="",f=s;break;case 58:f=1+Ks(E),m=g;default:if(y<1){if(b==123)--y;else if(b==125&&y++==0&&AMe()==125)continue}switch(E+=yC(b),b*y){case 38:x=d>0?1:(E+="\f",-1);break;case 44:l[h++]=(Ks(E)-1)*x,x=1;break;case 64:Nh()===45&&(E+=V_(hl())),p=Nh(),d=f=Ks(T=E+=NMe(vC())),b++;break;case 45:g===45&&Ks(E)==2&&(y=0)}}return a}o(W_,"parse");function IMe(e,t,r,i,n,a,s,l,u,h,d,f){for(var p=n-1,m=n===0?a:[""],g=F_(m),y=0,v=0,x=0;y<i;++y)for(var b=0,T=Mh(e,p+1,p=TU(v=s[y])),w=e;b<g;++b)(w=B_(v>0?m[b]+" "+T:qy(T,/&\f/g,m[b])))&&(u[x++]=w);return z_(e,t,r,n===0?I_:l,u,h,d,f)}o(IMe,"ruleset");function CAt(e,t,r,i){return z_(e,t,r,Wy,yC(EMe()),Mh(e,2,-2),0,i)}o(CAt,"comment");function OMe(e,t,r,i,n){return z_(e,t,r,O_,Mh(e,0,i),Mh(e,i+1,-1),i,n)}o(OMe,"declaration");function q_(e,t){for(var r="",i=0;i<e.length;i++)r+=t(e[i],i,e,t)||"";return r}o(q_,"serialize");function BMe(e,t,r,i){switch(e.type){case P_:if(e.children.length)break;case bMe:case CMe:case O_:return e.return=e.return||e.value;case Wy:return"";case gC:return e.return=e.value+"{"+q_(e.children,i)+"}";case I_:if(!Ks(e.value=e.props.join(",")))return""}return Ks(r=q_(e.children,i))?e.return=e.value+"{"+r+"}":""}o(BMe,"stringify");function FMe(e){var t=F_(e);return function(r,i,n,a){for(var s="",l=0;l<t;l++)s+=e[l](r,i,n,a)||"";return s}}o(FMe,"middleware");uv();s4();var kAt="graphics-document document";function $Me(e,t){e.attr("role",kAt),t!==""&&e.attr("aria-roledescription",t)}o($Me,"setA11yDiagramInfo");function zMe(e,t,r,i){if(e.insert!==void 0){if(r){let n=`chart-desc-${i}`;e.attr("aria-describedby",n),e.insert("desc",":first-child").attr("id",n).text(r)}if(t){let n=`chart-title-${i}`;e.attr("aria-labelledby",n),e.insert("title",":first-child").attr("id",n).text(t)}}}o(zMe,"addSVGa11yTitleDescription");Dm();br();br();br();Ut();Xf();LD();Xt();var Xy=class e{constructor(t,r,i,n,a){this.type=t;this.text=r;this.db=i;this.parser=n;this.renderer=a}static{o(this,"Diagram")}static async fromText(t,r={}){let i=Nt(),n=zm(t,i);t=Jee(t)+`
|
|
211
|
+
`;try{_v(n)}catch{let h=Jj(n);if(!h)throw new $m(`Diagram ${n} not found.`);let{id:d,diagram:f}=await h();Kf(d,f)}let{db:a,parser:s,renderer:l,init:u}=_v(n);return s.parser&&(s.parser.yy=a),a.clear?.(),u?.(i),r.title&&a.setDiagramTitle?.(r.title),await s.parse(t),new e(n,t,a,s,l)}async render(t,r){await this.renderer.draw(this.text,t,r,this)}getParser(){return this.parser}getType(){return this.type}};Ir();var GMe=[];var VMe=o(()=>{GMe.forEach(e=>{e()}),GMe=[]},"attachFunctions");St();var WMe=o(e=>e.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");mk();Wx();function qMe(e){let t=e.match(pk);if(!t)return{text:e,metadata:{}};let r=ld(t[1],{schema:od})??{};r=typeof r=="object"&&!Array.isArray(r)?r:{};let i={};return r.displayMode&&(i.displayMode=r.displayMode.toString()),r.title&&(i.title=r.title.toString()),r.config&&(i.config=r.config),{text:e.slice(t[0].length),metadata:i}}o(qMe,"extractFrontMatter");Xt();var wAt=o(e=>e.replace(/\r\n?/g,`
|
|
212
|
+
`).replace(/<(\w+)([^>]*)>/g,(t,r,i)=>"<"+r+i.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),SAt=o(e=>{let{text:t,metadata:r}=qMe(e),{displayMode:i,title:n,config:a={}}=r;return i&&(a.gantt||(a.gantt={}),a.gantt.displayMode=i),{title:n,config:a,text:t}},"processFrontmatter"),EAt=o(e=>{let t=Zt.detectInit(e)??{},r=Zt.detectDirective(e,"wrap");return Array.isArray(r)?t.wrap=r.some(({type:i})=>i==="wrap"):r?.type==="wrap"&&(t.wrap=!0),{text:Zee(e),directive:t}},"processDirectives");function kU(e){let t=wAt(e),r=SAt(t),i=EAt(r.text),n=Gr(r.config,i.directive);return e=WMe(i.text),{code:e,title:r.title,config:n}}o(kU,"preprocessDiagram");OD();LC();Xt();function UMe(e){let t=new TextEncoder().encode(e),r=Array.from(t,i=>String.fromCodePoint(i)).join("");return btoa(r)}o(UMe,"toBase64");MC();var AAt=5e4,_At="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",DAt="sandbox",RAt="loose",LAt="http://www.w3.org/2000/svg",MAt="http://www.w3.org/1999/xlink",NAt="http://www.w3.org/1999/xhtml",IAt="100%",OAt="100%",PAt="border:0;margin:0;",BAt="margin:0",FAt="allow-top-navigation-by-user-activation allow-popups",$At='The "iframe" tag is not supported by your browser.',zAt=["foreignobject"],GAt=["dominant-baseline"];function XMe(e){let t=kU(e);return iv(),KH(t.config??{}),t}o(XMe,"processAndSetConfigs");async function VAt(e,t){Vy();try{let{code:r,config:i}=XMe(e);return{diagramType:(await KMe(r)).type,config:i}}catch(r){if(t?.suppressErrors)return!1;throw r}}o(VAt,"parse");var HMe=o((e,t,r=[])=>{let i=A7(`{ ${r.join(" !important; ")} !important; }`);return`.${e} ${t} ${i}`},"cssImportantStyles"),WAt=o((e,t=new Map)=>{let r=new CSSStyleSheet;if(e.fontFamily!==void 0&&r.insertRule(`:root { --mermaid-font-family: ${e.fontFamily}}`,r.cssRules.length),e.altFontFamily!==void 0&&r.insertRule(`:root { --mermaid-alt-font-family: ${e.altFontFamily}}`,r.cssRules.length),t instanceof Map){let l=Mr(e)?["> *","span"]:["rect","polygon","ellipse","circle","path"];t.forEach(u=>{a4(u.styles)||l.forEach(h=>{r.insertRule(HMe(u.id,h,u.styles),r.cssRules.length)}),a4(u.textStyles)||r.insertRule(HMe(u.id,"tspan",(u?.textStyles||[]).map(h=>h.replace("color","fill"))),r.cssRules.length)})}let i="";if(e.themeCSS!==void 0)if(typeof r.replaceSync=="function"){let n=new CSSStyleSheet;n.replaceSync(e.themeCSS),i=ID(n)+`
|
|
213
|
+
`}else i+=`${e.themeCSS}
|
|
214
|
+
`;return i+ID(r)},"createCssStyles"),qAt=o((e,t)=>q_(PMe(`${e}{${t}}`),FMe([o(function(i,n,a,s){if(i.type==="rule"&&Array.isArray(i.props)){if(i.parent&&i.parent.type===gC)return;i.props=i.props.map(l=>l.startsWith(e)?l:`${e} ${l}`)}else i.type.startsWith("@")&&([...[xMe,TMe,P_,kMe,"@container","@starting-style"],gC].includes(i.type)||(Z.warn(`Removing unsupported at-rule ${i.type} from CSS`),i.type=Wy))},"addNamespace"),BMe])),"compileCSS"),UAt=o((e,t,r,i)=>{let n=WAt(e,r),a=rX(t,n,{...e.themeVariables,theme:e.theme,look:e.look},i);return qAt(i,a)},"createUserStyles"),HAt=o((e="",t,r)=>{let i=e;return!r&&!t&&(i=i.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),i=Qa(i),i=i.replace(/<br>/g,"<br/>"),i},"cleanUpSvgCode"),YAt=o((e="",t)=>{let r=t?.viewBox?.baseVal?.height?t.viewBox.baseVal.height+"px":OAt,i=UMe(`<body style="${BAt}">${e}</body>`);return`<iframe style="width:${IAt};height:${r};${PAt}" src="data:text/html;charset=UTF-8;base64,${i}" sandbox="${FAt}">
|
|
215
|
+
${$At}
|
|
216
|
+
</iframe>`},"putIntoIFrame"),YMe=o((e,t,r,i,n)=>{let a=e.append("div");a.attr("id",r),i&&a.attr("style",i);let s=a.append("svg").attr("id",t).attr("width","100%").attr("xmlns",LAt);return n&&s.attr("xmlns:xlink",n),s.append("g"),e},"appendDivSvgG");function jMe(e,t){return e.append("iframe").attr("id",t).attr("style","width: 100%; height: 100%;").attr("sandbox","")}o(jMe,"sandboxedIframe");var jAt=o((e,t,r,i)=>{e.getElementById(t)?.remove(),e.getElementById(r)?.remove(),e.getElementById(i)?.remove()},"removeExistingElements"),XAt=o(async function(e,t,r){Vy();let i=XMe(t);t=i.code;let n=Nt();Z.debug(n),t.length>(n?.maxTextSize??AAt)&&(t=_At);let a=`#${e}`,s="i"+e,l="#"+s,u="d"+e,h="#"+u,d=o(()=>{let _=Je(p?l:h).node();_&&"remove"in _&&_.remove()},"removeTempElements"),f=Je(document.body),p=n.securityLevel===DAt,m=n.securityLevel===RAt,g=n.fontFamily;if(r!==void 0){if(r&&(r.innerHTML=""),p){let D=jMe(Je(r),s);f=Je(D.nodes()[0].contentDocument.body),f.node().style.margin="0"}else f=Je(r);YMe(f,e,u,`font-family: ${g}`,MAt)}else{if(jAt(document,e,u,s),p){let D=jMe(Je(document.body),s);f=Je(D.nodes()[0].contentDocument.body),f.node().style.margin="0"}else f=Je("body");YMe(f,e,u)}let y,v;try{y=await Xy.fromText(t,{title:i.title})}catch(D){if(n.suppressErrorRendering)throw d(),D;y=await Xy.fromText("error"),v=D}let x=f.select(h).node(),b=y.type,T=x.firstChild,w=T.firstChild,C=y.renderer.getClasses?.(t,y),k=UAt(n,b,C,a),E=document.createElement("style");E.innerHTML=k,T.insertBefore(E,w);try{await y.renderer.draw(t,e,"11.15.0",y)}catch(D){throw n.suppressErrorRendering?d():I_e.draw(t,e,"11.15.0"),D}let A=f.select(`${h} svg`),N=y.db.getAccTitle?.(),P=y.db.getAccDescription?.();ZAt(b,A,N,P),f.select(`[id="${e}"]`).selectAll("foreignobject > *").attr("xmlns",NAt);let I=f.select(h).node().innerHTML;if(Z.debug("config.arrowMarkerAbsolute",n.arrowMarkerAbsolute),I=HAt(I,p,Aa(n.arrowMarkerAbsolute)),p){let D=f.select(h+" svg").node();I=YAt(I,D)}else m||(I=Ro.sanitize(I,{ADD_TAGS:zAt,ADD_ATTR:GAt,HTML_INTEGRATION_POINTS:{foreignobject:!0}}));if(VMe(),v)throw v;return d(),{diagramType:b,svg:I,bindFunctions:y.db.bindFunctions}},"render");function KAt(e={}){let t=Ai({},e);t?.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables||(t.themeVariables={}),t.themeVariables.fontFamily=t.fontFamily),YH(t),t?.theme&&t.theme in _o?t.themeVariables=_o[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=_o.default.getThemeVariables(t.themeVariables));let r=typeof t=="object"?_7(t):D7();Zy(r.logLevel),Vy()}o(KAt,"initialize");var KMe=o((e,t={})=>{let{code:r}=kU(e);return Xy.fromText(r,t)},"getDiagramFromText");function ZAt(e,t,r,i){$Me(t,e),zMe(t,r,i,t.attr("id"))}o(ZAt,"addA11yInfo");var If=Object.freeze({render:XAt,parse:VAt,getDiagramFromText:KMe,initialize:KAt,getConfig:Nt,setConfig:OC,getSiteConfig:D7,updateSiteConfig:jH,reset:o(()=>{iv()},"reset"),globalReset:o(()=>{iv(Ph)},"globalReset"),defaultConfig:Ph});Zy(Nt().logLevel);iv(Nt());tf();Xt();var QAt=o((e,t,r)=>{Z.warn(e),LM(e)?(r&&r(e.str,e.hash),t.push({...e,message:e.str,error:e})):(r&&r(e),e instanceof Error&&t.push({str:e.message,message:e.message,hash:e.name,error:e}))},"handleError"),ZMe=o(async function(e={querySelector:".mermaid"}){try{await JAt(e)}catch(t){if(LM(t)&&Z.error(t.str),Ih.parseError&&Ih.parseError(t),!e.suppressErrors)throw Z.error("Use the suppressErrors option to suppress these errors"),t}},"run"),JAt=o(async function({postRenderCallback:e,querySelector:t,nodes:r}={querySelector:".mermaid"}){let i=If.getConfig();Z.debug(`${e?"":"No "}Callback function found`);let n;if(r)n=r;else if(t)n=document.querySelectorAll(t);else throw new Error("Nodes and querySelector are both undefined");Z.debug(`Found ${n.length} diagrams`),i?.startOnLoad!==void 0&&(Z.debug("Start On Load: "+i?.startOnLoad),If.updateSiteConfig({startOnLoad:i?.startOnLoad}));let a=new Zt.InitIDGenerator(i.deterministicIds,i.deterministicIDSeed),s,l=[];for(let u of Array.from(n)){Z.info("Rendering diagram: "+u.id);if(u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");let h=`mermaid-${a.next()}`;s=u.innerHTML,s=fk(Zt.entityDecode(s)).trim().replace(/<br\s*\/?>/gi,"<br/>");let d=Zt.detectInit(s);d&&Z.debug("Detected early reinit: ",d);try{let{svg:f,bindFunctions:p}=await tNe(h,s,u);u.innerHTML=f,e&&await e(h),p&&p(u)}catch(f){QAt(f,l,Ih.parseError)}}if(l.length>0)throw l[0]},"runThrowsErrors"),QMe=o(function(e){If.initialize(e)},"initialize"),e6t=o(async function(e,t,r){Z.warn("mermaid.init is deprecated. Please use run instead."),e&&QMe(e);let i={postRenderCallback:r,querySelector:".mermaid"};typeof t=="string"?i.querySelector=t:t&&(t instanceof HTMLElement?i.nodes=[t]:i.nodes=t),await ZMe(i)},"init"),t6t=o(async(e,{lazyLoad:t=!0}={})=>{Vy(),Cv(...e),t===!1&&await vMe()},"registerExternalDiagrams"),JMe=o(function(){if(Ih.startOnLoad){let{startOnLoad:e}=If.getConfig();e&&Ih.run().catch(t=>Z.error("Mermaid failed to initialize",t))}},"contentLoaded");if(typeof document<"u"){window.addEventListener("load",JMe,!1)}var r6t=o(function(e){Ih.parseError=e},"setParseErrorHandler"),U_=[],wU=!1,eNe=o(async()=>{if(!wU){for(wU=!0;U_.length>0;){let e=U_.shift();if(e)try{await e()}catch(t){Z.error("Error executing queue",t)}}wU=!1}},"executeQueue"),i6t=o(async(e,t)=>new Promise((r,i)=>{let n=o(()=>new Promise((a,s)=>{If.parse(e,t).then(l=>{a(l),r(l)},l=>{Z.error("Error parsing",l),Ih.parseError?.(l),s(l),i(l)})}),"performCall");U_.push(n),eNe().catch(i)}),"parse"),tNe=o((e,t,r)=>new Promise((i,n)=>{let a=o(()=>new Promise((s,l)=>{If.render(e,t,r).then(u=>{s(u),i(u)},u=>{Z.error("Error parsing",u),Ih.parseError?.(u),l(u),n(u)})}),"performCall");U_.push(a),eNe().catch(n)}),"render"),n6t=o(()=>Object.keys(ku).map(e=>({id:e})),"getRegisteredDiagramsMetadata"),Ih={startOnLoad:!0,mermaidAPI:If,parse:i6t,render:tNe,init:e6t,run:ZMe,registerExternalDiagrams:t6t,registerLayoutLoaders:GP,initialize:QMe,parseError:void 0,contentLoaded:JMe,setParseErrorHandler:r6t,detectType:zm,registerIconPacks:dk,getRegisteredDiagramsMetadata:n6t},a6t=Ih;return hNe(s6t);})();
|
|
217
|
+
/*! Bundled license information:
|
|
218
|
+
|
|
219
|
+
lodash-es/lodash.js:
|
|
220
|
+
(**
|
|
221
|
+
* @license
|
|
222
|
+
* Lodash (Custom Build) <https://lodash.com/>
|
|
223
|
+
* Build: `lodash modularize exports="es" -o ./`
|
|
224
|
+
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
225
|
+
* Released under MIT license <https://lodash.com/license>
|
|
226
|
+
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
|
227
|
+
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
228
|
+
*)
|
|
229
|
+
*/
|
|
230
|
+
/*! Check if previously processed */
|
|
231
|
+
/*!
|
|
232
|
+
* Wait for document loaded before starting the execution
|
|
233
|
+
*/
|
|
234
|
+
/*! Bundled license information:
|
|
235
|
+
|
|
236
|
+
dompurify/dist/purify.es.mjs:
|
|
237
|
+
(*! @license DOMPurify 3.4.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.0/LICENSE *)
|
|
238
|
+
|
|
239
|
+
js-yaml/dist/js-yaml.mjs:
|
|
240
|
+
(*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT *)
|
|
241
|
+
|
|
242
|
+
lodash-es/lodash.js:
|
|
243
|
+
(**
|
|
244
|
+
* @license
|
|
245
|
+
* Lodash (Custom Build) <https://lodash.com/>
|
|
246
|
+
* Build: `lodash modularize exports="es" --repo lodash/lodash#4.18.1 -o ./`
|
|
247
|
+
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
248
|
+
* Released under MIT license <https://lodash.com/license>
|
|
249
|
+
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
|
250
|
+
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
251
|
+
*)
|
|
252
|
+
|
|
253
|
+
cytoscape/dist/cytoscape.esm.mjs:
|
|
254
|
+
(*!
|
|
255
|
+
Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable
|
|
256
|
+
Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)
|
|
257
|
+
Licensed under The MIT License (http://opensource.org/licenses/MIT)
|
|
258
|
+
*)
|
|
259
|
+
(*!
|
|
260
|
+
Event object based on jQuery events, MIT license
|
|
261
|
+
|
|
262
|
+
https://jquery.org/license/
|
|
263
|
+
https://tldrlegal.com/license/mit-license
|
|
264
|
+
https://github.com/jquery/jquery/blob/master/src/event.js
|
|
265
|
+
*)
|
|
266
|
+
(*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License *)
|
|
267
|
+
(*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License *)
|
|
268
|
+
*/
|
|
269
|
+
globalThis["mermaid"] = globalThis.__esbuild_esm_mermaid_nm["mermaid"].default;
|