code-server
Version:
Run VS Code on a remote server.
2 lines (1 loc) • 10.1 kB
JavaScript
import{C}from"./chunk-XRA5PP2P.js";import{a as $,b as A}from"./chunk-MZ3V5LZE.js";import{b as L,c as w,d as _,e as D,f as S,h as O,i as F}from"./chunk-DJCKKX6W.js";import{a as M,b as X,d as G,e as N}from"./chunk-WPKM2ZGX.js";import{a as B}from"./chunk-YUYBSA4E.js";import{p as b}from"./chunk-N5VMO4QT.js";import{_ as T,u as R}from"./chunk-5Z3D3SW5.js";import{b as l}from"./chunk-SNB7PWCV.js";import{a as f}from"./chunk-5ZAMBDF5.js";function H(e,{edgePathsClass:n="edges edgePath"}={}){let t=e.insert("g").attr("class","root"),s=t.insert("g").attr("class","clusters"),r=t.insert("g").attr("class",n),i=t.insert("g").attr("class","edgeLabels"),a=t.insert("g").attr("class","nodes");return{clusters:s,edgePaths:r,edgeLabels:i,nodes:a,rootGroups:t}}f(H,"createLayoutElementGroups");async function z(e,n){if(n.label){let{shapeSvg:t,bbox:s}=await B(e,n);n.labelBBox={width:s.width,height:s.height},t.remove()}else n.labelBBox={width:0,height:0}}f(z,"measureGroupLabel");async function J(e,n,t){let s=await X(e,n,t),r=s.node()?.getBBox()??{width:0,height:0};return n.width=r.width,n.height=r.height,s}f(J,"insertMeasuredNode");async function W(e,n){let t=new C({multigraph:!0,compound:!0}),s=[...n.edges],r=T(),i=H(e),{edgeLabels:a,nodes:u}=i,o=new Map,g=e.node()!=null;await Promise.all(n.nodes.map(async d=>{if(d.isGroup)g&&await z(u,d),t.setNode(d.id,{...d});else{if(g){let y=await J(u,d,{config:r,dir:d.dir});o.set(d.id,y)}t.setNode(d.id,{...d})}}));for(let d of s)g&&D(d)&&await S(a,d),t.setEdge(d.start,d.end,{...d},d.id),n.edges.some(v=>v.id===d.id)||n.edges.push(d);if(globalThis.mermaidCaptureSizes){let{captureNodeSizes:d}=await import("./sizeCapture-X5ZJPWSS-ITZSJW7P.js");d(e,n)}return{graph:t,groups:i,nodeElements:o}}f(W,"createGraphWithElements");var c=new Map,m=new Map,q=new Map,fe=f(()=>{m.clear(),q.clear(),c.clear()},"clear"),p=f((e,n)=>{let t=m.get(n)||[];return l.trace("In isDescendant",n," ",e," = ",t.includes(e)),t.includes(e)},"isDescendant"),ue=f((e,n)=>{let t=m.get(n)||[];return l.info("Descendants of ",n," is ",t),l.info("Edge is ",e),e.v===n||e.w===n?!1:t?t.includes(e.v)||p(e.v,n)||p(e.w,n)||t.includes(e.w):(l.debug("Tilt, ",n,",not in descendants"),!1)},"edgeInCluster"),K=f((e,n,t,s)=>{l.debug("Copying children of ",e,"root",s,"data",n.node(e),s);let r=n.children(e)||[];e!==s&&r.push(e),l.debug("Copying (nodes) clusterId",e,"nodes",r),r.forEach(i=>{if(n.children(i).length>0)K(i,n,t,s);else{let a=n.node(i);l.info("cp ",i," to ",s," with parent ",e),t.setNode(i,a),s!==n.parent(i)&&(l.debug("Setting parent",i,n.parent(i)),t.setParent(i,n.parent(i))),e!==s&&i!==e?(l.debug("Setting parent",i,e),t.setParent(i,e)):(l.info("In copy ",e,"root",s,"data",n.node(e),s),l.debug("Not Setting parent for node=",i,"cluster!==rootId",e!==s,"node!==clusterId",i!==e));let u=n.edges(i);l.debug("Copying Edges",u),u.forEach(o=>{l.info("Edge",o);let g=n.edge(o.v,o.w,o.name);l.info("Edge data",g,s);try{ue(o,s)?(l.info("Copying as ",o.v,o.w,g,o.name),t.setEdge(o.v,o.w,g,o.name),l.info("newGraph edges ",t.edges(),t.edge(t.edges()[0]))):l.info("Skipping copy of edge ",o.v,"-->",o.w," rootId: ",s," clusterId:",e)}catch(d){l.error(d)}})}l.debug("Removing node",i),n.removeNode(i)})},"copy"),Q=f((e,n)=>{let t=n.children(e),s=[...t];for(let r of t)q.set(r,e),s=[...s,...Q(r,n)];return s},"extractDescendants"),de=f((e,n,t)=>{let s=e.edges().filter(o=>o.v===n||o.w===n),r=e.edges().filter(o=>o.v===t||o.w===t),i=s.map(o=>({v:o.v===n?t:o.v,w:o.w===n?n:o.w})),a=r.map(o=>({v:o.v,w:o.w}));return i.filter(o=>a.some(g=>o.v===g.v&&o.w===g.w))},"findCommonEdges"),E=f((e,n,t)=>{let s=n.children(e);if(l.trace("Searching children of id ",e,s),s.length<1)return e;let r;for(let i of s){let a=E(i,n,t),u=de(n,t,a);if(a)if(u.length>0)r=a;else return a}return r},"findNonClusterChild"),j=f(e=>!c.has(e)||!c.get(e).externalConnections?e:c.has(e)?c.get(e).id:e,"getAnchorId"),xe=f((e,n)=>{if(!e||n>10){l.debug("Opting out, no graph ");return}else l.debug("Opting in, graph ");e.nodes().forEach(function(t){e.children(t).length>0&&(l.debug("Cluster identified",t," Replacement id in edges: ",E(t,e,t)),m.set(t,Q(t,e)),c.set(t,{id:E(t,e,t),clusterData:e.node(t)}))}),e.nodes().forEach(function(t){let s=e.children(t),r=e.edges();s.length>0?(l.debug("Cluster identified",t,m),r.forEach(i=>{let a=p(i.v,t),u=p(i.w,t);a^u&&(l.debug("Edge: ",i," leaves cluster ",t),l.debug("Descendants of XXX ",t,": ",m.get(t)),c.get(t).externalConnections=!0)})):l.debug("Not a cluster ",t,m)});for(let t of c.keys()){let s=c.get(t).id,r=e.parent(s);r!==t&&c.has(r)&&!c.get(r).externalConnections&&(c.get(t).id=r);let i=e.edges().some(a=>a.v===t);if(s&&c.get(t)?.externalConnections&&i&&Y(e,s,t)){let a=ge(e,t,e.parent(s));a&&(c.get(t).id=a)}}e.edges().forEach(function(t){let s=e.edge(t);l.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),l.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(e.edge(t)));let r=t.v,i=t.w;if(l.debug("Fix XXX",c,"ids:",t.v,t.w,"Translating: ",c.get(t.v)," --- ",c.get(t.w)),c.get(t.v)||c.get(t.w)){if(l.debug("Fixing and trying - removing XXX",t.v,t.w,t.name),r=j(t.v),i=j(t.w),e.removeEdge(t.v,t.w,t.name),r!==t.v){let a=e.parent(r);c.get(a).externalConnections=!0,s.fromCluster=t.v}if(i!==t.w){let a=e.parent(i);c.get(a).externalConnections=!0,s.toCluster=t.w}l.debug("Fix Replacing with XXX",r,i,t.name),e.setEdge(r,i,s,t.name)}}),U(e,0),l.trace(c)},"adjustClustersAndEdges"),U=f((e,n)=>{if(n>10){l.error("Bailing out");return}let t=e.nodes(),s=!1;for(let r of t){let i=e.children(r);s=s||i.length>0}if(!s){l.debug("Done, no node has children",e.nodes());return}l.debug("Nodes = ",t,n);for(let r of t)if(l.debug("Extracting node",r,c,c.has(r)&&!c.get(r).externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",n),!c.has(r))l.debug("Not a cluster",r,n);else if(!c.get(r).externalConnections&&e.children(r)&&e.children(r).length>0){l.debug("Cluster without external connections, without a parent and with children",r,n);let a=e.graph().rankdir==="TB"?"LR":"TB";c.get(r)?.clusterData?.dir&&(a=c.get(r).clusterData.dir,l.debug("Fixing dir",c.get(r).clusterData.dir,a));let u=new C({multigraph:!0,compound:!0}).setGraph({rankdir:a,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});K(r,e,u,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:c.get(r).clusterData,label:c.get(r).label,graph:u})}else l.debug("Cluster ** ",r," **not meeting the criteria !externalConnections:",!c.get(r).externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),n),l.debug(c);t=e.nodes(),l.debug("New list of nodes",t);for(let r of t){let i=e.node(r);l.debug(" Now next level",r,i),i?.clusterNode&&U(i.graph,n+1)}},"extractor"),V=f((e,n)=>{if(n.length===0)return[];let t=Object.assign([],n);return n.forEach(s=>{let r=e.children(s),i=V(e,r);t=[...t,...i]}),t},"sorter"),Ne=f(e=>V(e,e.children()),"sortNodesByHierarchy"),Y=f((e,n,t)=>{let s=e.parent(n);for(;s&&s!==t;){let r=c.get(s);if(r&&!r.externalConnections)return!0;s=e.parent(s)}return!1},"isNodeInExtractableCluster"),ge=f((e,n,t)=>{let s=e.children(n)??[];for(let r of s){if(r===t||p(r,t))continue;let i=E(r,e,n);if(i&&!Y(e,i,n))return i}return null},"findSafeAnchorNode");function me({prepareLayout:e,measureLayout:n,runLayoutCore:t,paintLayout:s,afterPaint:r,paintOptions:i}){let a=n??I;return f(async function(o,g,d,y){let v=g.select("g");F(v,o.markers,o.type,o.diagramId),Z();let h={element:v,helpers:d,options:y};h.preparedLayout=await e?.(o,h);let le=await a(o,h),k=await t(o,h),x={...h,measure:le};s?await s(o,x,k):await ee(o,x,i),await r?.(o,x,k)},"render")}f(me,"createCommonLayoutRenderer");function Z(){G(),_(),A(),fe()}f(Z,"clearLayoutRenderState");async function I(e,{element:n}){return await W(n,e)}f(I,"defaultMeasureLayout");async function ee(e,n,t={}){let{measure:s}=n,{groups:r}=s;for(let a of t.getNodes?.(e,n)??e.nodes)t.skipNode?.(a,n)||await te(r,a,n,t);let i=re(e.nodes);for(let a of e.edges)se(a,t)||await ie(r,a,i,e,t,n)}f(ee,"paintLayoutData");async function te(e,n,t,s){n.clusterNode?N(n):ne(n,t,s)?await $(e.clusters,n):N(n)}f(te,"paintLayoutNode");function ne(e,n,t){return e.isGroup===!0&&(t.isCluster?.(e,n)??!0)}f(ne,"shouldPaintAsCluster");function re(e){let n=new Map;for(let t of e)t?.id&&n.set(t.id,t);return n}f(re,"buildNodeLookup");function se(e,n){return e.isLayoutOnly||!!n.skipEdge?.(e)}f(se,"shouldSkipPaintEdge");async function ie(e,n,t,s,r,i){let a=O(e.edgePaths,{...n},r.clusterDb??new Map,s.type,P(n.start,n,t,i,r),P(n.end,n,t,i,r),s.diagramId,oe(n,r));D(n)&&(L.has(n.id)||await S(e.edgeLabels,n),ae(n,a))}f(ie,"paintLayoutEdge");function P(e,n,t,s,r){return r.getEdgeNode?.(e,n,s)??(e?t.get(e)??{}:{})}f(P,"getRenderedNode");function oe(e,n){return typeof n.skipIntersect=="function"?n.skipIntersect(e):n.skipIntersect??!1}f(oe,"shouldSkipIntersect");function ae(e,n){let t=n?.updatedPath??n?.originalPath,s=R(),{subGraphTitleTotalMargin:r}=M({flowchart:s.flowchart??{}});if(e.label){let i=L.get(e.id),a=e.x,u=e.y;if(t){let o=b.calcLabelPosition(t);l.debug("Moving label "+e.label+" from (",a,",",u,") to (",o.x,",",o.y,") abc88"),n?.updatedPath&&(a=o.x,u=o.y)}i.attr("transform",`translate(${a}, ${u+r/2})`)}if(e?.startLabelLeft){let i=w.get(e.id).startLeft,a=e?.x,u=e?.y;if(t){let o=b.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",t);a=o.x,u=o.y}i.attr("transform",`translate(${a}, ${u})`)}if(e.startLabelRight){let i=w.get(e.id).startRight,a=e.x,u=e.y;if(t){let o=b.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",t);a=o.x,u=o.y}i.attr("transform",`translate(${a}, ${u})`)}if(e.endLabelLeft){let i=w.get(e.id).endLeft,a=e.x,u=e.y;if(t){let o=b.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",t);a=o.x,u=o.y}i.attr("transform",`translate(${a}, ${u})`)}if(e.endLabelRight){let i=w.get(e.id).endRight,a=e.x,u=e.y;if(t){let o=b.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",t);a=o.x,u=o.y}i.attr("transform",`translate(${a}, ${u})`)}}f(ae,"positionRenderedEdgeLabel");export{H as a,J as b,c,E as d,xe as e,Ne as f,me as g};