4 lines
11 KiB
JavaScript
4 lines
11 KiB
JavaScript
|
|
import{n as e,r as t}from"./chunk-AGHRB4JF-Fz9kp2Fp.js";import{x as n}from"./chunk-CSCIHK7Q-VDPd5eNJ.js";import"./chunk-5ZQYHXKU-D-OgLpMs.js";import"./chunk-BSJP7CBP-BkJdmh17.js";import{n as r}from"./chunk-L5ZTLDWV-CzNJ_8is.js";import"./chunk-NZK2D7GU-Cte2JwiA.js";import"./chunk-O5CBEL6O-Bu7jDUJy.js";import{a as i,c as a,i as o,l as s,n as c,t as l,u}from"./chunk-3OPIFGDE-BBTvqaNI.js";import{a as d,i as f,n as p,r as m,t as h}from"./chunk-KSCS5N6A-BuXf0YOu.js";import{r as g,t as _}from"./graphlib-B8gBHxth.js";import{n as v,r as y,t as b}from"./dagre-Bx709z4p.js";var x=4;function S(e){return y(e,x)}function C(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:w(e),edges:T(e)};return g(e.graph())||(t.value=S(e.graph())),t}function w(e){return v(e.nodes(),function(t){var n=e.node(t),r=e.parent(t),i={v:t};return g(n)||(i.value=n),g(r)||(i.parent=r),i})}function T(e){return v(e.edges(),function(t){var n=e.edge(t),r={v:t.v,w:t.w};return g(t.name)||(r.name=t.name),g(n)||(r.value=n),r})}var E=new Map,D=new Map,O=new Map,k=e(()=>{D.clear(),O.clear(),E.clear()},`clear`),A=e((e,n)=>{let r=D.get(n)||[];return t.trace(`In isDescendant`,n,` `,e,` = `,r.includes(e)),r.includes(e)},`isDescendant`),j=e((e,n)=>{let r=D.get(n)||[];return t.info(`Descendants of `,n,` is `,r),t.info(`Edge is `,e),e.v===n||e.w===n?!1:r?r.includes(e.v)||A(e.v,n)||A(e.w,n)||r.includes(e.w):(t.debug(`Tilt, `,n,`,not in descendants`),!1)},`edgeInCluster`),M=e((e,n,r,i)=>{t.warn(`Copying children of `,e,`root`,i,`data`,n.node(e),i);let a=n.children(e)||[];e!==i&&a.push(e),t.warn(`Copying (nodes) clusterId`,e,`nodes`,a),a.forEach(a=>{if(n.children(a).length>0)M(a,n,r,i);else{let o=n.node(a);t.info(`cp `,a,` to `,i,` with parent `,e),r.setNode(a,o),i!==n.parent(a)&&(t.warn(`Setting parent`,a,n.parent(a)),r.setParent(a,n.parent(a))),e!==i&&a!==e?(t.debug(`Setting parent`,a,e),r.setParent(a,e)):(t.info(`In copy `,e,`root`,i,`data`,n.node(e),i),t.debug(`Not Setting parent for node=`,a,`cluster!==rootId`,e!==i,`node!==clusterId`,a!==e));let s=n.edges(a);t.debug(`Copying Edges`,s),s.forEach(a=>{t.info(`Edge`,a);let o=n.edge(a.v,a.w,a.name);t.info(`Edge data`,o,i);try{j(a,i)?(t.info(`Copying as `,a.v,a.w,o,a.name),r.setEdge(a.v,a.w,o,a.name),t.info(`newGraph edges `,r.edges(),r.edge(r.edges()[0]))):t.info(`Skipping copy of edge `,a.v,`-->`,a.w,` rootId: `,i,` clusterId:`,e)}catch(e){t.error(e)}})}t.debug(`Removing node`,a),n.removeNode(a)})},`copy`),N=e((e,t)=>{let n=t.children(e),r=[...n];for(let i of n)O.set(i,e),r=[...r,...N(i,t)];return r},`extractDescendants`),P=e((e,t,n)=>{let r=e.edges().filter(e=>e.v===t||e.w===t),i=e.edges().filter(e=>e.v===n||e.w===n),a=r.map(e=>({v:e.v===t?n:e.v,w:e.w===t?t:e.w})),o=i.map(e=>({v:e.v,w:e.w}));return a.filter(e=>o.some(t=>e.v===t.v&&e.w===t.w))},`findCommonEdges`),F=e((e,n,r)=>{let i=n.children(e);if(t.trace(`Searching children of id `,e,i),i.length<1)return e;let a;for(let e of i){let t=F(e,n,r),i=P(n,r,t);if(t)if(i.length>0)a=t;else return t}return a},`findNonClusterChild`),I=e(e=>!E.has(e)||!E.get(e).externalConnections?e:E.has(e)?E.get(e).id:e,`getAnchorId`),L=e((e,n)=>{if(!e||n>10){t.debug(`Opting out, no graph `);return}else t.debug(`Opting in, graph `);e.nodes().forEach(function(n){e.children(n).length>0&&(t.warn(`Cluster identified`,n,` Replacement id in edges: `,F(n,e,n)),D.set(n,N(n,e)),E.set(n,{id:F(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){let r=e.children(n),i=e.edges();r.length>0?(t.debug(`Cluster identified`,n,D),i.forEach(e=>{A(e.v,n)^A(e.w,n)&&(t.warn(`Edge: `,e,` leaves cluster `,n),t.warn(`Descendants of XXX `,n,`: `,D.get(n)),E.get(n).externalConnections=!0)})):t.debug(`Not a cluster `,n,D)});for(let t of E.keys()){let n=E.get(t).id,r=e.parent(n);r!==t&&E.has(r)&&!E.get(r).externalConnections&&(E.get(t).id=r)}e.edges().forEach(function(n){let r=e.edge(n);t.warn(`Edge `+n.v+` -> `+n.w+`: `+JSON.stringify(n)),t.warn(`Edge `+n.v+` -> `+n.w+`: `+JSON.stringify(e.edge(n)));let i=n.v,a=n.w;if(t.warn(`Fix XXX`,E,`ids:`,n.v,n.w,`Translating: `,E
|
||
|
|
Node.id = `,e,`
|
||
|
|
data=`,n.height,`
|
||
|
|
Parent cluster`,h.height),c.setNode(h.id,n),c.parent(e)||(t.trace(`Setting parent`,e,h.id),c.setParent(e,h.id,n))}if(t.info(`(Insert) Node XXX`+e+`: `+JSON.stringify(c.node(e))),n?.clusterNode){t.info(`Cluster identified XBX`,e,n.width,c.node(e));let{ranksep:r,nodesep:i}=c.graph();n.graph.setGraph({...n.graph.graph(),ranksep:r+25,nodesep:i});let a=await V(w,n.graph,l,f,c.node(e),g),o=a.elem;u(n,o),n.diff=a.diff||0,t.info(`New compound node after recursive render XAX`,e,`width`,n.width,`height`,n.height),s(o,n)}else c.children(e).length>0?(t.trace(`Cluster - the non recursive path XBX`,e,n.id,n,n.width,`Graph:`,c),t.trace(F(n.id,c)),E.set(n.id,{id:F(n.id,c),node:n})):(t.trace(`Node - the non recursive path XAX`,e,w,c.node(e),_),await i(w,c.node(e),{config:g,dir:_}))})),await e(async()=>{let e=c.edges().map(async function(e){let n=c.edge(e.v,e.w,e.name);t.info(`Edge `+e.v+` -> `+e.w+`: `+JSON.stringify(e)),t.info(`Edge `+e.v+` -> `+e.w+`: `,e,` `,JSON.stringify(c.edge(e))),t.info(`Fix`,E,`ids:`,e.v,e.w,`Translating: `,E.get(e.v),E.get(e.w)),await m(S,n)});await Promise.all(e)},`processEdges`)(),t.info(`Graph before layout:`,JSON.stringify(C(c))),t.info(`############################################# XXX`),t.info(`### Layout ### XXX`),t.info(`############################################# XXX`),b(c),t.info(`Graph after layout:`,JSON.stringify(C(c)));let T=0,{subGraphTitleTotalMargin:D}=r(g);return await Promise.all(B(c).map(async function(e){let n=c.node(e);if(t.info(`Position XBX => `+e+`: (`+n.x,`,`+n.y,`) width: `,n.width,` height: `,n.height),n?.clusterNode)n.y+=D,t.info(`A tainted cluster node XBX1`,e,n.id,n.width,n.height,n.x,n.y,c.parent(e)),E.get(n.id).node=n,a(n);else if(c.children(e).length>0){t.info(`A pure cluster node XBX1`,e,n.id,n.x,n.y,n.width,n.height,c.parent(e)),n.height+=D,c.node(n.parentId);let r=n?.padding/2||0,i=n?.labelBBox?.height||0,a=i-r||0;t.debug(`OffsetY`,a,`labelHeight`,i,`halfPadding`,r),await o(y,n),E.get(n.id).node=n}else{let e=c.node(n.parentId);n.y+=D/2,t.info(`A regular node XBX1 - using the padding`,n.id,`parent`,n.parentId,n.width,n.height,n.x,n.y,`offsetY`,n.offsetY,`parent`,e,e?.offsetY,n),a(n)}})),c.edges().forEach(function(e){let n=c.edge(e);t.info(`Edge `+e.v+` -> `+e.w+`: `+JSON.stringify(n),n),n.points.forEach(e=>e.y+=D/2),d(n,p(x,n,E,l,c.node(e.v),c.node(e.w),f))}),c.nodes().forEach(function(e){let n=c.node(e);t.info(e,n.type,n.diff),n.isGroup&&(T=n.diff)}),t.warn(`Returning from recursive render XAX`,v,T),{elem:v,diff:T}},`recursiveRender`),H=e(async(e,r)=>{let i=new _({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:e.config?.nodeSpacing||e.config?.flowchart?.nodeSpacing||e.nodeSpacing,ranksep:e.config?.rankSpacing||e.config?.flowchart?.rankSpacing||e.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),a=r.select(`g`);f(a,e.markers,e.type,e.diagramId),c(),h(),l(),k(),e.nodes.forEach(e=>{i.setNode(e.id,{...e}),e.parentId&&i.setParent(e.id,e.parentId)}),t.debug(`Edges:`,e.edges),e.edges.forEach(e=>{if(e.start===e.end){let t=e.start,n=t+`---`+t+`---1`,r=t+`---`+t+`---2`,a=i.node(t);i.setNode(n,{domId:n,id:n,parentId:a.parentId,labelStyle:``,label:``,padding:0,shape:`labelRect`,style:``,width:10,height:10}),i.setParent(n,a.parentId),i.setNode(r,{domId:r,id:r,parentId:a.parentId,labelStyle:``,padding:0,shape:`labelRect`,label:``,style:``,width:10,height:10}),i.setParent(r,a.parentId);let o=structuredClone(e),s=structuredClone(e),c=structuredClone(e);o.label=``,o.arrowTypeEnd=`none`,o.endLabelLeft=``,o.endLabelRight=``,o.startLabelLeft=``,o.id=t+`-cyclic-special-1`,s.startLabelRight=``,s.startLabelLeft=``,s.endLabelLeft=``,s.endLabelRight=``,s.arrowTypeStart=`none`,s.arrowTypeEnd=`none`,s.id=t+`-cyclic-special-mid`,c.label=``,c.startLabelRight=``,c.startLabelLeft=``,c.arrowTypeStart=`none`,a.isGroup&&(o.fromCluster=t,c.toCluster=t),c.id=t+`-cyclic-special-2`,c.arrowTypeStart=`none`,i.setEdge(t,n,o,t+`-cyclic-special-0`),i.setEdge(n,r,s,t+`-cyclic-special-1`),i.setEdge(r,t,c,t+`-cyc<lic-special-2`)}else i.setEdg
|