export const __rspack_esm_id="554";export const __rspack_esm_ids=["554"];export const __webpack_modules__={50417(e,t,d){d.r(t),d.d(t,{render:()=>h});var i=d(76338),r=d(86632),a=d(58524),o=d(79723);function n(e,t){e.forEach(e=>{let d={id:e.id,labelText:e.label,height:e.height,width:e.width,padding:e.padding??0};Object.keys(e).forEach(t=>{["id","label","height","width","padding","x","y"].includes(t)||(d[t]=e[t])}),t.add({group:"nodes",data:d,position:{x:e.x??0,y:e.y??0}})})}function s(e,t){e.forEach(e=>{let d={id:e.id,source:e.start,target:e.end};Object.keys(e).forEach(t=>{["id","start","end"].includes(t)||(d[t]=e[t])}),t.add({group:"edges",data:d})})}function l(e){return new Promise(t=>{let d=(0,o.Ltv)("body").append("div").attr("id","cy").attr("style","display:none"),a=(0,r.A)({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});d.remove(),n(e.nodes,a),s(e.edges,a),a.nodes().forEach(function(e){e.layoutDimensions=()=>{let t=e.data();return{w:t.width,h:t.height}}}),a.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),a.ready(e=>{i.Rm.info("Cytoscape ready",e),t(a)})})}function g(e){return e.nodes().map(e=>{let t=e.data(),d=e.position(),i={id:t.id,x:d.x,y:d.y};return Object.keys(t).forEach(e=>{"id"!==e&&(i[e]=t[e])}),i})}function c(e){return e.edges().map(e=>{let t=e.data(),d=e._private.rscratch,i={id:t.id,source:t.source,target:t.target,startX:d.startX,startY:d.startY,midX:d.midX,midY:d.midY,endX:d.endX,endY:d.endY};return Object.keys(t).forEach(e=>{["id","source","target"].includes(e)||(i[e]=t[e])}),i})}async function u(e,t){i.Rm.debug("Starting cose-bilkent layout algorithm");try{y(e);let t=await l(e),d=g(t),r=c(t);return i.Rm.debug(`Layout completed: ${d.length} nodes, ${r.length} edges`),{nodes:d,edges:r}}catch(e){throw i.Rm.error("Error in cose-bilkent layout algorithm:",e),e}}function y(e){if(!e)throw Error("Layout data is required");if(!e.config)throw Error("Configuration is required in layout data");if(!e.rootNode)throw Error("Root node is required");if(!e.nodes||!Array.isArray(e.nodes))throw Error("No nodes found in layout data");if(!Array.isArray(e.edges))throw Error("Edges array is required in layout data");return!0}r.A.use(a),(0,i.K2)(n,"addNodes"),(0,i.K2)(s,"addEdges"),(0,i.K2)(l,"createCytoscapeInstance"),(0,i.K2)(g,"extractPositionedNodes"),(0,i.K2)(c,"extractPositionedEdges"),(0,i.K2)(u,"executeCoseBilkentLayout"),(0,i.K2)(y,"validateLayoutData");var h=(0,i.K2)(async(e,t,{insertCluster:d,insertEdge:i,insertEdgeLabel:r,insertMarkers:a,insertNode:o,log:n,positionEdgeLabel:s},{algorithm:l})=>{let g={},c={},y=t.select("g");a(y,e.markers,e.type,e.diagramId);let h=y.insert("g").attr("class","subgraphs"),m=y.insert("g").attr("class","edgePaths"),f=y.insert("g").attr("class","edgeLabels"),p=y.insert("g").attr("class","nodes");n.debug("Inserting nodes into DOM for dimension calculation"),await Promise.all(e.nodes.map(async t=>{if(t.isGroup){let e={...t};c[t.id]=e,g[t.id]=e,await d(h,t)}else{let d={...t};g[t.id]=d;let i=await o(p,t,{config:e.config,dir:e.direction||"TB"}),r=i.node().getBBox();d.width=r.width,d.height=r.height,d.domId=i,n.debug(`Node ${t.id} dimensions: ${r.width}x${r.height}`)}})),n.debug("Running cose-bilkent layout algorithm");let b={...e,nodes:e.nodes.map(e=>{let t=g[e.id];return{...e,width:t.width,height:t.height}})},w=await u(b,e.config);n.debug("Positioning nodes based on layout results"),w.nodes.forEach(e=>{let t=g[e.id];t?.domId&&(t.domId.attr("transform",`translate(${e.x}, ${e.y})`),t.x=e.x,t.y=e.y,n.debug(`Positioned node ${t.id} at center (${e.x}, ${e.y})`))}),w.edges.forEach(t=>{let d=e.edges.find(e=>e.id===t.id);d&&(d.points=[{x:t.startX,y:t.startY},{x:t.midX,y:t.midY},{x:t.endX,y:t.endY}])}),n.debug("Inserting and positioning edges"),await Promise.all(e.edges.map(async t=>{await r(f,t);let d=g[t.start??""],a=g[t.end??""];if(d&&a){let r=w.edges.find(e=>e.id===t.id);if(r){n.debug("APA01 positionedEdge",r);let o={...t},l=i(m,o,c,e.type,d,a,e.diagramId);s(o,l)}else{let r={...t,points:[{x:d.x||0,y:d.y||0},{x:a.x||0,y:a.y||0}]},o=i(m,r,c,e.type,d,a,e.diagramId);s(r,o)}}})),n.debug("Cose-bilkent rendering completed")},"render")}};