@oevery/rsp 4.0.0 → 4.2.0

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.
Files changed (141) hide show
  1. package/dist/chunk-AUZYUJ46.mjs +418 -0
  2. package/dist/chunk-DNRGBQS7.mjs +108 -0
  3. package/dist/chunk-LGDCIQYL.mjs +725 -0
  4. package/dist/chunk-P3KO3GZW.mjs +1023 -0
  5. package/dist/{chunk-HFSTLCCK.mjs → chunk-VDRXFKBP.mjs} +133 -1800
  6. package/dist/cli.mjs +286 -294
  7. package/dist/client-U2PN3VS4.mjs +108 -0
  8. package/dist/{entry-RIJQ2X46.mjs → entry-NDASTAI5.mjs} +13 -9
  9. package/dist/viewer/NOTICE.txt +299 -0
  10. package/dist/viewer/app.css +2 -0
  11. package/dist/viewer/app.js +670 -0
  12. package/dist/viewer/chunks/abnfDiagram-S7VZAUFO-K5EOZOEF.js +1 -0
  13. package/dist/viewer/chunks/architecture-WOLXFQ4H-UAT5D5BF.js +1 -0
  14. package/dist/viewer/chunks/architectureDiagram-YGSQEFNW-UNPSYM2L.js +36 -0
  15. package/dist/viewer/chunks/blockDiagram-APKKGZFW-2F7TTPAV.js +140 -0
  16. package/dist/viewer/chunks/bpmnIcons-APHXDYXF-ZWPFFN3O.js +1 -0
  17. package/dist/viewer/chunks/c4Diagram-KJ2TOQU5-KNLN6CME.js +38 -0
  18. package/dist/viewer/chunks/chunk-274PZN6B.js +1 -0
  19. package/dist/viewer/chunks/chunk-2VGDQLQD.js +1 -0
  20. package/dist/viewer/chunks/chunk-33XESOCS.js +1 -0
  21. package/dist/viewer/chunks/chunk-3ZSL2TGQ.js +1 -0
  22. package/dist/viewer/chunks/chunk-432I4U3B.js +1 -0
  23. package/dist/viewer/chunks/chunk-4PJNGS3V.js +1 -0
  24. package/dist/viewer/chunks/chunk-54NLSLTF.js +9 -0
  25. package/dist/viewer/chunks/chunk-6QRHYJ5Q.js +1 -0
  26. package/dist/viewer/chunks/chunk-6RCFKBVR.js +1 -0
  27. package/dist/viewer/chunks/chunk-6Y2HP7DC.js +213 -0
  28. package/dist/viewer/chunks/chunk-7MAT7NHP.js +1 -0
  29. package/dist/viewer/chunks/chunk-AKHBD6LT.js +2 -0
  30. package/dist/viewer/chunks/chunk-CZIM56BV.js +1 -0
  31. package/dist/viewer/chunks/chunk-DN4Y7LXJ.js +1 -0
  32. package/dist/viewer/chunks/chunk-E2UQN267.js +1 -0
  33. package/dist/viewer/chunks/chunk-GBARLDDT.js +1 -0
  34. package/dist/viewer/chunks/chunk-H4YEV7VR.js +1 -0
  35. package/dist/viewer/chunks/chunk-HUVVDQHZ.js +1 -0
  36. package/dist/viewer/chunks/chunk-IAKC32WV.js +72 -0
  37. package/dist/viewer/chunks/chunk-JTW4SY4L.js +1 -0
  38. package/dist/viewer/chunks/chunk-JZV675LF.js +1 -0
  39. package/dist/viewer/chunks/chunk-KDUDYTWO.js +1 -0
  40. package/dist/viewer/chunks/chunk-KHX3A5RZ.js +331 -0
  41. package/dist/viewer/chunks/chunk-KPXJJSUR.js +15 -0
  42. package/dist/viewer/chunks/chunk-LEGNM6PH.js +1 -0
  43. package/dist/viewer/chunks/chunk-LYY4ZY72.js +1 -0
  44. package/dist/viewer/chunks/chunk-MKDEK2LU.js +1 -0
  45. package/dist/viewer/chunks/chunk-MYJRFART.js +129 -0
  46. package/dist/viewer/chunks/chunk-NUXZBURC.js +1 -0
  47. package/dist/viewer/chunks/chunk-NXHT5I2L.js +1 -0
  48. package/dist/viewer/chunks/chunk-OF62XRVM.js +62 -0
  49. package/dist/viewer/chunks/chunk-ONCOEVBS.js +1 -0
  50. package/dist/viewer/chunks/chunk-P44SH3OO.js +1 -0
  51. package/dist/viewer/chunks/chunk-PDXKDBIX.js +1 -0
  52. package/dist/viewer/chunks/chunk-PHKIAKHS.js +1 -0
  53. package/dist/viewer/chunks/chunk-PJDMAGPE.js +2 -0
  54. package/dist/viewer/chunks/chunk-RC2NPHSX.js +88 -0
  55. package/dist/viewer/chunks/chunk-T6DM5RSK.js +10 -0
  56. package/dist/viewer/chunks/chunk-U5STX66M.js +2 -0
  57. package/dist/viewer/chunks/chunk-UIAJQPOF.js +1 -0
  58. package/dist/viewer/chunks/chunk-UX2S3LP3.js +1 -0
  59. package/dist/viewer/chunks/chunk-VEMTQQ7Y.js +2 -0
  60. package/dist/viewer/chunks/chunk-WKCPBR3C.js +1 -0
  61. package/dist/viewer/chunks/chunk-WMQ4Y2MS.js +32 -0
  62. package/dist/viewer/chunks/chunk-YPWIQAHX.js +3 -0
  63. package/dist/viewer/chunks/chunk-Z4ZDIMO2.js +136 -0
  64. package/dist/viewer/chunks/chunk-ZATQCNXH.js +1 -0
  65. package/dist/viewer/chunks/chunk-ZE5RDJX6.js +1 -0
  66. package/dist/viewer/chunks/chunk-ZO62R4L2.js +1 -0
  67. package/dist/viewer/chunks/classDiagram-v2-L25IHNXF-5F2M2CZ4.js +217 -0
  68. package/dist/viewer/chunks/cose-bilkent-JH36ORCC-S56HJ5WN.js +1 -0
  69. package/dist/viewer/chunks/cynefin-EF2NZ3EQ-6WY2NCLE.js +1 -0
  70. package/dist/viewer/chunks/cynefinDiagram-L36ESFBY-DE6PZNQA.js +62 -0
  71. package/dist/viewer/chunks/dagre-SPEB5RXH-QEOTKFV2.js +4 -0
  72. package/dist/viewer/chunks/diagram-3B7GL73J-RZPIU7FY.js +200 -0
  73. package/dist/viewer/chunks/diagram-DNEMPZML-YD26TJKC.js +24 -0
  74. package/dist/viewer/chunks/diagram-L3MUGCDN-TJUEX4QI.js +41 -0
  75. package/dist/viewer/chunks/diagram-LA4NIPWU-3PUQS6UW.js +24 -0
  76. package/dist/viewer/chunks/diagram-MHCOC4E2-YBTBD4PG.js +3 -0
  77. package/dist/viewer/chunks/diagram-XPFHEONP-VF2TQBNR.js +30 -0
  78. package/dist/viewer/chunks/ebnfDiagram-UZSYDL2S-QE7DIEME.js +1 -0
  79. package/dist/viewer/chunks/elk-XV6XMXQE-X5OZRIL3.js +27 -0
  80. package/dist/viewer/chunks/erDiagram-EYBAPDEH-5B2S7VB4.js +99 -0
  81. package/dist/viewer/chunks/eventmodeling-K75KTNOO-CHCQYZBI.js +1 -0
  82. package/dist/viewer/chunks/flowDiagram-MALGAFMO-XJFC5NTN.js +1 -0
  83. package/dist/viewer/chunks/ganttDiagram-23REXITY-TUUZ3QYO.js +292 -0
  84. package/dist/viewer/chunks/gitGraph-VSP46ZUC-VFZPJQ6A.js +1 -0
  85. package/dist/viewer/chunks/gitGraphDiagram-STJD7YCW-4CVV5LSH.js +106 -0
  86. package/dist/viewer/chunks/info-OHQRW6UA-P4744SJ6.js +1 -0
  87. package/dist/viewer/chunks/infoDiagram-KBXO4MBG-Q2WYYNNN.js +2 -0
  88. package/dist/viewer/chunks/ishikawaDiagram-M35NCXHK-PLQPTX2U.js +70 -0
  89. package/dist/viewer/chunks/journeyDiagram-OPLOXDXO-FB73RE6F.js +139 -0
  90. package/dist/viewer/chunks/kanban-definition-BZKZHSQY-6FU4TXYJ.js +89 -0
  91. package/dist/viewer/chunks/katex-IN4S3RHS.js +257 -0
  92. package/dist/viewer/chunks/mindmap-definition-I2QAS2VK-ZQ36ABVW.js +98 -0
  93. package/dist/viewer/chunks/packet-JDAUHWVQ-NYXIQQVA.js +1 -0
  94. package/dist/viewer/chunks/pegDiagram-FD4XPPHP-5XXVT6XN.js +1 -0
  95. package/dist/viewer/chunks/pie-XZMESJXO-32CUE6KZ.js +1 -0
  96. package/dist/viewer/chunks/pieDiagram-J4AKIIQI-WRTBDFM5.js +39 -0
  97. package/dist/viewer/chunks/quadrantDiagram-XTYBLID2-YPBDQIAK.js +7 -0
  98. package/dist/viewer/chunks/radar-ABXABTNO-272FILRO.js +1 -0
  99. package/dist/viewer/chunks/railroad-I3PHUGI6-6EGAH4XA.js +1 -0
  100. package/dist/viewer/chunks/railroad-abnf-LNEFI6M7-G6E7ATER.js +1 -0
  101. package/dist/viewer/chunks/railroad-ebnf-DWYD2UWJ-MR4P6BDR.js +1 -0
  102. package/dist/viewer/chunks/railroad-peg-JR7BVNR7-WXLQUGUO.js +1 -0
  103. package/dist/viewer/chunks/railroadDiagram-MRQ6NCDL-XHZQ2BLY.js +1 -0
  104. package/dist/viewer/chunks/requirementDiagram-Y7LWUY3S-W5FHRRML.js +84 -0
  105. package/dist/viewer/chunks/sankeyDiagram-WGJFYUXA-OJJIRVTI.js +40 -0
  106. package/dist/viewer/chunks/sequenceDiagram-5NDRBG5M-D6T4DRNG.js +169 -0
  107. package/dist/viewer/chunks/sizeCapture-INFHLROL-WL3FTUJX.js +1 -0
  108. package/dist/viewer/chunks/stateDiagram-v2-FJ4FJNEA-LAXL7KGG.js +291 -0
  109. package/dist/viewer/chunks/swimlanes-UMQ2AFYF-XIJBD726.js +1 -0
  110. package/dist/viewer/chunks/swimlanesDiagram-OMPLPG4O-7O7MHFW7.js +8 -0
  111. package/dist/viewer/chunks/timeline-definition-SEUHKTQE-BAZQA47I.js +120 -0
  112. package/dist/viewer/chunks/treeView-D4JQ5SDB-6YMDAAPA.js +1 -0
  113. package/dist/viewer/chunks/treemap-SAJKECNS-2X573PPS.js +1 -0
  114. package/dist/viewer/chunks/usecaseDiagram-AFA6YXN4-4YCEMWJB.js +370 -0
  115. package/dist/viewer/chunks/vennDiagram-NNMJR3RB-GEMROLAE.js +34 -0
  116. package/dist/viewer/chunks/wardley-7MLQ67FV-DGTGHYYC.js +1 -0
  117. package/dist/viewer/chunks/wardleyDiagram-S7YFUSEH-K4HVD3SS.js +78 -0
  118. package/dist/viewer/chunks/xychartDiagram-GGNKY7IX-HVLWCUEO.js +7 -0
  119. package/dist/viewer/mermaid.js +12 -0
  120. package/dist/viewer-build.json +1 -0
  121. package/dist/viewer-service.mjs +607 -0
  122. package/package.json +27 -8
  123. package/skills/rsp/SKILL.md +13 -10
  124. package/skills/rsp/references/architecture.md +39 -0
  125. package/skills/rsp/references/closeout.md +4 -4
  126. package/skills/rsp/references/durable-review.md +6 -9
  127. package/skills/rsp/references/focus-continuation.md +6 -2
  128. package/skills/rsp/references/setup-repair.md +11 -6
  129. package/skills/rsp/references/work-model.md +14 -4
  130. package/skills/rsp-commit/SKILL.md +2 -2
  131. package/skills/rsp-doc/SKILL.md +13 -10
  132. package/skills/rsp-doc/references/skill-authoring.md +2 -2
  133. package/skills/rsp-implement/SKILL.md +16 -12
  134. package/skills/rsp-review/SKILL.md +12 -12
  135. package/skills/rsp-review/references/code-review.md +11 -5
  136. package/skills/rsp-review/references/document-review.md +8 -10
  137. package/skills/rsp-shape/SKILL.md +3 -1
  138. package/skills/rsp-shape/references/planning.md +4 -4
  139. package/skills/rsp-verify/SKILL.md +9 -14
  140. package/skills/rsp-doc/references/artifact-lenses.md +0 -43
  141. package/skills/rsp-review/references/structural-review.md +0 -41
@@ -0,0 +1 @@
1
+ import{a as _o}from"./chunk-ZO62R4L2.js";import{g as Ho}from"./chunk-NUXZBURC.js";import"./chunk-54NLSLTF.js";import"./chunk-JTW4SY4L.js";import"./chunk-T6DM5RSK.js";import"./chunk-PDXKDBIX.js";import"./chunk-OF62XRVM.js";import"./chunk-4PJNGS3V.js";import"./chunk-ZATQCNXH.js";import"./chunk-IAKC32WV.js";import"./chunk-KDUDYTWO.js";import"./chunk-MKDEK2LU.js";import"./chunk-VEMTQQ7Y.js";import"./chunk-NXHT5I2L.js";import"./chunk-MYJRFART.js";import{b as _e}from"./chunk-3ZSL2TGQ.js";import{a as c}from"./chunk-ZE5RDJX6.js";import"./chunk-PHKIAKHS.js";function Uo(t,{measure:e}){let n=t.config?.swimlane?.lineHops;if(n===!1)return;let o=n==="gap"?"gap":"arc",s=t.edges.filter(r=>Array.isArray(r.points)&&r.points.length>=2).map(r=>({id:r.id,points:r.points,curve:r.curve,arrowTypeStart:r.arrowTypeStart,arrowTypeEnd:r.arrowTypeEnd}));_o(e.groups.edgePaths,s,{enabled:!0,jumpRadius:6,jumpStyle:o})}c(Uo,"applySwimlaneLineJumps");function jo(t){let e=t?.metadata?.laneRole;return e==="pool"||e==="lane"?e:void 0}c(jo,"readLaneRole");function en(t){let e=t?.metadata?.laneIndex;return typeof e=="number"&&Number.isFinite(e)?e:void 0}c(en,"readLaneIndex");function ue(t){let e=new Map,n=new Map;for(let p of t)e.set(p.id,p),p.isGroup&&p.parentId&&n.set(p.parentId,(n.get(p.parentId)??0)+1);let o=new Set;for(let p of t)p.isGroup&&jo(p)==="pool"&&(n.get(p.id)??0)>0&&o.add(p.id);let s=new Set,r=new Map;for(let p of t)if(!(!p.isGroup||o.has(p.id)))if(p.parentId&&o.has(p.parentId)){s.add(p.id);let y=r.get(p.parentId)??[];y.push(p.id),r.set(p.parentId,y)}else p.parentId||s.add(p.id);let i=c((p,y)=>{let a=new Set([p]),x=e.get(p)?.parentId;for(;x&&!a.has(x);){if(y.has(x))return x;a.add(x),x=e.get(x)?.parentId}return null},"walk"),f=new Map;return{isPool:c(p=>o.has(p),"isPool"),isLane:c(p=>s.has(p),"isLane"),laneIdOf:c(p=>{let y=f.get(p);if(y!==void 0)return y;let a=i(p,s);return f.set(p,a),a},"laneIdOf"),poolIdOf:c(p=>o.has(p)?p:i(p,o),"poolIdOf"),lanesByPool:r,hasPools:o.size>0}}c(ue,"buildLaneModel");var Ur=new Set(["top","right","bottom","left"]),Nn=8,jr=1e4;function Ge(t){let e=t?.metadata?.anchorTo;if(!e||typeof e!="object")return;let{hostId:n,side:o,slot:s,gap:r}=e;if(!(typeof n!="string"||n.length===0||n===t?.id))return{hostId:n,...typeof o=="string"&&Ur.has(o)?{side:o}:{},...typeof s=="number"&&Number.isFinite(s)?{slot:s}:{},...typeof r=="number"&&Number.isFinite(r)&&r>0?{gap:Math.min(r,jr)}:{}}}c(Ge,"readAnchor");function pn(t,e){let n=new Set([t]),o=Ge(e.get(t))?.hostId;for(;o&&!n.has(o);){let s=e.get(o);if(!s)return;let r=Ge(s)?.hostId;if(!r)return o;n.add(o),o=r}}c(pn,"resolveAnchorHostId");function ze(t){let e=new Map(t.map(o=>[o.id,o])),n=new Set;for(let o of t)Ge(o)&&pn(o.id,e)&&n.add(o.id);return n}c(ze,"collectAnchoredIds");function Wo(t,e){return t==="canonical"?"right":e==="LR"||e==="RL"?"bottom":"right"}c(Wo,"defaultAnchorSide");function Ko(t,e){let n=t.anchor.slot,o=e.anchor.slot;return n!==void 0&&o!==void 0&&n!==o?n-o:n!==void 0&&o===void 0?-1:n===void 0&&o!==void 0?1:t.index-e.index}c(Ko,"compareBucketEntries");function qo(t){let e=t.reduce((s,r)=>s+r,0)+Nn*Math.max(0,t.length-1),n=[],o=-e/2;for(let s of t)n.push(o+s/2),o+=s+Nn;return{offsets:n,total:e}}c(qo,"packAlongBorder");var Wr=c(t=>[t.width,t.height].every(e=>e===void 0||Number.isFinite(e)),"hasUsableSize");function Zo(t,e){let n=new Map(t.map(s=>[s.id,s])),o=new Map;t.forEach((s,r)=>{let i=Ge(s);if(!i||!Wr(s))return;let f=pn(s.id,n);if(!f)return;let u=e(i),p=`${u}:${f}`,y=o.get(p)??[];y.push({node:s,anchor:i,index:r,side:u,hostId:f}),o.set(p,y)});for(let s of o.values())s.sort(Ko);return o}c(Zo,"bucketByHostAndSide");function Jo(t,e,n,o){let s=!e&&n>0?-(o+Nn):0;return t+s}c(Jo,"centreAlongBorder");function Qo(t,e){let n=e==="top"||e==="bottom",o=c(p=>n?p.width??0:p.height??0,"alongBorder"),s=c(p=>n?p.height??0:p.width??0,"reach"),{offsets:r}=qo(t.map(p=>o(p.node))),i=0,f=0,u=0;return t.forEach((p,y)=>{let a=p.anchor.gap??0,x=o(p.node)/2,m=Jo(r[y],n,a,x);i=Math.max(i,x-m),f=Math.max(f,m+x),u=Math.max(u,a>0?a+s(p.node):0)}),{before:i,after:f,beyond:u}}c(Qo,"footprintOf");function ts(t,e){let n=Wo("final",e??"TB"),o=new Map;for(let s of Zo(t,r=>r.side??n).values()){if(!s.some(f=>f.anchor.gap))continue;let{hostId:r,side:i}=s[0];o.set(r,{...o.get(r),[i]:Qo(s,i)})}return o}c(ts,"anchorFootprints");var En="__swimlane_default__",Kr=21,Do=20;function Bn(t){return Math.max(t.padding??Do,Do)}c(Bn,"topLaneHorizontalPadding");function es(t){let{x:e,y:n,width:o,height:s}=t,r=t.swimlaneContentTop;if(typeof e!="number"||typeof n!="number"||typeof o!="number"||typeof s!="number"||typeof r!="number"||!Number.isFinite(e)||!Number.isFinite(n)||!Number.isFinite(o)||!Number.isFinite(s)||!Number.isFinite(r)||o<=0||s<=0){delete t.groupTitleRect;return}let i=n-s/2,f=Math.min(r,n+s/2),u=Math.min(Kr,Math.max(0,f-i)),p=i+u;if(p<=i){delete t.groupTitleRect;return}t.groupTitleRect={left:e-o/2,right:e+o/2,top:i,bottom:p}}c(es,"assignTopLaneTitleRect");function ns(t){let e=t.other?.droppedSubGraphMembers;return Array.isArray(e)?e:[]}c(ns,"sharedMembers");var qr=c((t,e,n)=>!e.some(o=>o.parentId===n)&&!(t.edges??[]).some(o=>o.start===n||o.end===n),"isEmptyLane");function os(t,e){return t.isLane(e)?e:t.laneIdOf(e)??void 0}c(os,"laneIdOrSelf");function ss(t,e,n){for(let o of n){let s=e.findIndex(r=>r.id===o);s>=0&&qr(t,e,o)&&e.splice(s,1)}}c(ss,"removeEmptyLanes");function rs(t,e){let n=ue(e),o=new Set(e.filter(r=>n.isLane(r.id)).map(r=>r.id)),s=new Set;for(let{node:r,keptBy:i,droppedFrom:f}of ns(t)){let u=os(n,i);u&&u!==f&&o.has(f)&&(_e.warn(`Swimlane node "${r}" is listed in lanes "${u}" and "${f}"; it is drawn in "${u}" only.`),s.add(f))}ss(t,e,s)}c(rs,"dropLanesEmptiedBySharedNodes");function is(t,e){for(let n of t)n.isGroup&&!e.isLane(n.id)&&!e.isPool(n.id)&&_e.warn(`Swimlane subgraph "${n.id}" is nested in "${n.parentId}"; only top-level subgraphs are lanes, so it is drawn as a plain box.`)}c(is,"warnAboutNestedGroups");function cs(t){let e=t.direction,n=t.nodes??=[];rs(t,n);let o=ue(n);is(n,o);for(let i of n){let f=o.isLane(i.id);!f&&!o.isPool(i.id)||(i.shape=f?"swimlane":"pool",e&&(i.direction=e))}let s=n.filter(i=>!i.isGroup&&!i.parentId);if(s.length===0)return;let r=n.find(i=>i.id===En);r?r.isGroup&&(r.shape="swimlane",e&&(r.direction=e)):(r={id:En,label:"",isGroup:!0,shape:"swimlane",padding:20,look:t.config?.look,colorIndex:n.reduce((i,f)=>Math.max(i,f.colorIndex??-1),-1)+1,...e?{direction:e}:{}},n.push(r));for(let i of s)i.parentId=En}c(cs,"prepareLayoutForSwimlanes");function as(t){let e=(t.nodes??[]).filter(a=>!a.isEdgeLabel),n=new Map(e.map(a=>[a.id,a])),o=ze(e),s=c(a=>o.has(a)?pn(a,n)??a:a,"hostOf"),r=new Map;for(let a of e)o.has(a.id)||r.set(a.id,a);let i=[];for(let a of t.edges??[]){let x=typeof a.start=="string"?a.start:void 0,m=typeof a.end=="string"?a.end:void 0;if(!x||!m||a.isLayoutOnly)continue;let h=s(x),l=s(m);h!==l&&i.push({id:a.id,src:h,dst:l,ref:a})}let f=e.filter(a=>a.isGroup&&!o.has(a.id)),u=e.filter(a=>!a.isGroup&&!o.has(a.id));return{nodes:[...[...f].reverse(),...u].map(a=>a.id),edges:i,layout:t,nodeById:r}}c(as,"toGraphView");function ls(t){let e=new Map(t.map(o=>[o.id,o])),n=c(o=>{let s=0,r=o.parentId,i=new Set([o.id]);for(;r!=null&&!i.has(r);)i.add(r),s++,r=e.get(r)?.parentId;return s},"depthOf");return t.filter(o=>o?.isGroup).map(o=>({node:o,depth:n(o)})).sort((o,s)=>s.depth-o.depth).map(o=>o.node)}c(ls,"groupsDeepestFirst");function fs(t,e,n,o){let{layout:s}=t,r=t.nodeById,i=o?.layerGap??100,f=o?.nodeGap??40,u=0;for(let h of e.layers){let l=0;for(let g of h){let I=r.get(g);if(!I){l++;continue}I.layer=u,I.order=l;let M=n.x[g]??l*f,v=n.y[g]??u*i;I.x=M,I.y=v,l++}u++}let p=s.nodes??[],y=ze(p);for(let h of p)h.isEdgeLabel&&n.x[h.id]!=null&&n.y[h.id]!=null&&(h.x=n.x[h.id],h.y=n.y[h.id]);let a=new Map,x=ue(p),m=[];for(let h of ls(p)){x.isLane(h.id)&&m.push(h);let l=p.filter(O=>O.parentId===h.id&&!y.has(O.id)),g=1/0,I=-1/0,M=1/0,v=-1/0;for(let O of l){let S=O.x??n.x[O.id],b=O.y??n.y[O.id],L=O.width??0,w=O.height??0;S!=null&&b!=null&&(O.isEdgeLabel||(g=Math.min(g,S-L/2),I=Math.max(I,S+L/2)),M=Math.min(M,b-w/2),v=Math.max(v,b+w/2))}if(g===1/0||M===1/0)h.x=h.x??0,h.y=h.y??0,h.width=h.width??0,h.height=h.height??0;else{let O=h.padding??20,S=h.parentId?O:2*Bn(h),b=O,L=Math.max(0,I-g)+S,w=Math.max(0,v-M)+b,B=(g+I)/2,P=(M+v)/2;h.x=B,h.y=P,h.width=L,h.height=w,a.set(h.id,{minX:g,maxX:I,minY:M,maxY:v})}}if(m.length>0&&a.size>0){let h=1/0,l=-1/0,g=0;for(let I of m){let M=I.padding??20;M>g&&(g=M);let v=a.get(I.id);v&&(h=Math.min(h,v.minY),l=Math.max(l,v.maxY))}if(h!==1/0&&l!==-1/0){let I=Math.max(0,l-h),v=Math.max(g,36),O=I+2*v,S=(h+l)/2;for(let N of m)N.y=S,N.height=O,N.swimlaneContentTop=h;let b=[...m].sort((N,F)=>{let V=N.x??0,Y=F.x??0;return V-Y}),L=[],w=[],B=[];for(let N of b){let F=a.get(N.id);if(!F)continue;let V=Math.max(0,F.maxX-F.minX)+2*Bn(N),Y=(F.minX+F.maxX)/2;L.push(N.id),w.push(Y),B.push(V)}let P=L.length;if(P>0){let N=new Map;if(P===1)N.set(L[0],B[0]);else{let F=[];for(let dt=0;dt<P-1;dt++)F.push(w[dt+1]-w[dt]);let V=new Array(P);V[0]=0;for(let dt=0;dt<P-1;dt++)V[dt+1]=2*F[dt]-V[dt];let Y=0,J=Number.POSITIVE_INFINITY;for(let dt=0;dt<P;dt++){let At=B[dt];dt%2===0?Y=Math.max(Y,At-V[dt]):J=Math.min(J,V[dt]-At)}let it=Y;Y<=J?it=(Y+J)/2:it=Y;for(let dt=0;dt<P;dt++){let At=V[dt]+(dt%2===0?it:-it),te=Math.max(B[dt],At);N.set(L[dt],te)}}for(let F of m){let V=N.get(F.id);V!=null&&(F.width=V),es(F)}}}}}c(fs,"writeBackToLayoutData");var Zr="[EdgeLabelNodes]";function ds(t){let e=[],n=[],o=new Map;for(let i of t.nodes)o.set(i.id,i);for(let i of t.edges){if(!i.label||i.label.length===0||i.isLayoutOnly||i.labelNodeId)continue;let f=i.start?o.get(i.start):void 0,u=i.end?o.get(i.end):void 0;if(!f||!u){_e.warn(Zr,`Edge ${i.id} has missing source or target node`);continue}let p=`edge-label-${i.start}-${i.end}-${i.id}`,a=f.parentId!==u.parentId?u.parentId:f.parentId,x={id:p,label:i.label,edgeStart:i.start??"",edgeEnd:i.end??"",shape:"labelRect",width:0,height:0,isEdgeLabel:!0,isDummy:!0,parentId:a,isGroup:!1,labelStyle:Array.isArray(i.labelStyle)?i.labelStyle[0]:i.labelStyle??"",...f.dir?{dir:f.dir}:{}};e.push(x),i.labelNodeId=p,i.label=void 0,i.text=void 0;let m={id:`${i.id}-to-label`,start:i.start,end:p,type:"normal",isLayoutOnly:!0},h={id:`${i.id}-from-label`,start:p,end:i.end,type:"normal",isLayoutOnly:!0};n.push(m,h)}let s=[...t.nodes,...e],r=[...t.edges,...n];return{...t,nodes:s,edges:r}}c(ds,"createEdgeLabelNodes");var jt=.001;function ho(t){let e=t.x??0,n=t.y??0,o=t.width??0,s=t.height??0;return o>0&&s>0?{cx:e,cy:n,rect:De(e,n,o,s)}:void 0}c(ho,"measuredNodeRect");function go(t){if(t.isGroup)return;let e=ho(t);return e?{id:String(t.id??""),cx:e.cx,cy:e.cy,rect:e.rect}:void 0}c(go,"nodeBoundsInfoFor");function fe(t,e,n=jt){return Math.abs(t.x-e.x)<n&&Math.abs(t.y-e.y)<n}c(fe,"samePoint");function It(t,e,n=jt){return Math.abs(t.x-e.x)<n}c(It,"sameX");function Ct(t,e,n=jt){return Math.abs(t.y-e.y)<n}c(Ct,"sameY");function _t(t,e,n=jt){return Ct(t,e,n)&&Math.abs(t.x-e.x)>n}c(_t,"isHorizontalSegment");function Ht(t,e,n=jt){return It(t,e,n)&&Math.abs(t.y-e.y)>n}c(Ht,"isVerticalSegment");function Qt(t,e,n,o){return Math.max(0,Math.min(Math.max(t,e),Math.max(n,o))-Math.max(Math.min(t,e),Math.min(n,o)))}c(Qt,"overlapLength");function ge(t,e,n=jt){return t.horizontal&&e.horizontal&&Ct(t.a,e.a,n)?Qt(t.a.x,t.b.x,e.a.x,e.b.x):t.vertical&&e.vertical&&It(t.a,e.a,n)?Qt(t.a.y,t.b.y,e.a.y,e.b.y):0}c(ge,"sameAxisSegmentOverlapLength");function Le(t,e=jt){let n=[];for(let o=0;o<t.length-1;o++){let s=t[o],r=t[o+1],i=_t(s,r,e),f=Ht(s,r,e);(i||f)&&n.push({index:o,a:s,b:r,horizontal:i,vertical:f})}return n}c(Le,"orthogonalSegmentsForPoints");function ce(t,e=jt){let n=Le(t,e),o=0;for(let s=1;s<n.length;s++)n[s-1].horizontal!==n[s].horizontal&&o++;return o}c(ce,"countOrthogonalBends");function us(t){let e=Le(vt(t));return e.slice(1).flatMap((n,o)=>e[o].horizontal===n.horizontal?[]:[n.a])}c(us,"bendPoints");function hs(t,e){let n=Math.max(Math.min(e.a.x,e.b.x)-t.x,0,t.x-Math.max(e.a.x,e.b.x)),o=Math.max(Math.min(e.a.y,e.b.y)-t.y,0,t.y-Math.max(e.a.y,e.b.y));return Math.hypot(n,o)}c(hs,"distanceToSegment");function gs(t,e,n){let o=c((s,r)=>{let i=Le(vt(r));return us(s).some(f=>i.some(u=>hs(f,u)<n))},"touches");return o(t,e)||o(e,t)}c(gs,"routesTouchAtBend");function vt(t,e=jt){let n=[];for(let o of t){let s=n.length>0?n[n.length-1]:void 0;(!s||!fe(s,o,e))&&n.push({x:o.x,y:o.y})}return n}c(vt,"dedupeConsecutivePoints");function po(t,e=jt){if(!t||t.length!==4)return;let[n,o,s,r]=t;return _t(n,o,e)&&Ht(o,s,e)&&_t(s,r,e)?{kind:"HVH",p0:n,p1:o,p2:s,p3:r}:Ht(n,o,e)&&_t(o,s,e)&&Ht(s,r,e)?{kind:"VHV",p0:n,p1:o,p2:s,p3:r}:void 0}c(po,"classifyThreeSegmentRoute");function mn(t,e,n,o=0){let s=Math.min(t.x,e.x),r=Math.max(t.x,e.x),i=Math.min(t.y,e.y),f=Math.max(t.y,e.y);return r>n.left-o&&s<n.right+o&&f>n.top-o&&i<n.bottom+o}c(mn,"segmentBoundsOverlapRect");function mo(t,e,n=0){return t.x>e.left+n&&t.x<e.right-n&&t.y>e.top+n&&t.y<e.bottom-n}c(mo,"pointInsideRect");function ps(t,e){return t.left<=e.left&&t.right>=e.right&&t.top<=e.top&&t.bottom>=e.bottom}c(ps,"rectContainsRect");function rn(t,e){return t.left<e.right&&t.right>e.left&&t.top<e.bottom&&t.bottom>e.top}c(rn,"rectsOverlap");function Fn(t,e){return{left:t.left-e,right:t.right+e,top:t.top-e,bottom:t.bottom+e}}c(Fn,"inflateRect");function De(t,e,n,o){return{left:t-n/2,right:t+n/2,top:e-o/2,bottom:e+o/2}}c(De,"rectFromCenterSize");function se(t){return ho(t)?.rect}c(se,"rectOfNodeBounds");function Be(t,e){switch(e){case"top":return{x:t.cx,y:t.rect.top};case"bottom":return{x:t.cx,y:t.rect.bottom};case"left":return{x:t.rect.left,y:t.cy};case"right":return{x:t.rect.right,y:t.cy}}}c(Be,"portForRectSide");function yo(t,e,n,o,s,r=jt){let i=e==="left"||e==="right",f=o==="left"||o==="right";if(i&&f){if(e==="right"&&o==="left"&&t.x<n.x||e==="left"&&o==="right"&&t.x>n.x){if(Ct(t,n,r))return[t,n];let a=(t.x+n.x)/2;return[t,{x:a,y:t.y},{x:a,y:n.y},n]}if(e===o){if(Ct(t,n,r))return;let a=e==="left"?Math.min(t.x,n.x)-s:Math.max(t.x,n.x)+s;return[t,{x:a,y:t.y},{x:a,y:n.y},n]}return}if(!i&&!f){if(e===o){if(It(t,n,r))return;let x=e==="top"?Math.min(t.y,n.y)-s:Math.max(t.y,n.y)+s;return[t,{x:t.x,y:x},{x:n.x,y:x},n]}if(!(e==="bottom"&&o==="top"&&t.y<n.y||e==="top"&&o==="bottom"&&t.y>n.y))return;if(It(t,n,r))return[t,n];let a=(t.y+n.y)/2;return[t,{x:t.x,y:a},{x:n.x,y:a},n]}if(i&&!f){let y=e==="right"&&n.x>t.x||e==="left"&&n.x<t.x,a=o==="top"&&t.y<n.y||o==="bottom"&&t.y>n.y;return y&&a?[t,{x:n.x,y:t.y},n]:void 0}let u=e==="bottom"&&n.y>t.y||e==="top"&&n.y<t.y,p=o==="left"&&t.x<n.x||o==="right"&&t.x>n.x;return u&&p?[t,{x:t.x,y:n.y},n]:void 0}c(yo,"buildOrthogonalPortPath");function xo(t,e,n,o){return e==="left"||e==="right"?[t,{x:o,y:t.y},{x:o,y:n.y},n]:[t,{x:t.x,y:o},{x:n.x,y:o},n]}c(xo,"buildSameSideTrackPath");function yn(t){let e=new Map,n=[];for(let o of t){if(o.isEdgeLabel)continue;let s=go(o);s&&(e.set(s.id,s),n.push({id:s.id,rect:s.rect}))}return{nodeInfoById:e,realNodeRects:n}}c(yn,"collectRealNodeBounds");function we(t){let e=[],n=[];for(let o of t){let s=go(o);if(!s)continue;let r={id:s.id,rect:s.rect};o.isEdgeLabel?n.push(r):e.push(r)}return{realNodeRects:e,labelNodeRects:n}}c(we,"collectNodeRectEntries");function ms(t,{includeEdgeLabels:e=!0}={}){let n=[];for(let o of t){if(o.isGroup||!e&&o.isEdgeLabel)continue;let s=o.x??0,r=o.y??0,i=o.width??0,f=o.height??0;n.push({nodeId:o.id,...De(s,r,i,f)})}return n}c(ms,"collectLayoutNodeRects");function bo(t,e,n=jt){let o=t.start,s=t.end;if(!o||!s)return;let r=e.get(o),i=e.get(s);if(!(!r||!i))return{srcId:o,dstId:s,srcInfo:r,dstInfo:i,collinearX:Math.abs(r.cx-i.cx)<n,collinearY:Math.abs(r.cy-i.cy)<n}}c(bo,"getNodePairGeometry");function Xt(t,e,n,o=[],s=0){for(let r of n)if(!o.includes(r.id)&&mn(t,e,r.rect,-s))return!0;return!1}c(Xt,"segmentHitsAnyRect");function Mo(t,e,n,o,s=jt,r=1e-6){let i=Ct(t,e,s),f=It(t,e,s),u=Ct(n,o,s),p=It(n,o,s);if(i&&u||f&&p||!(i||f)||!(u||p))return!1;let y=i?{a:t,b:e}:{a:n,b:o},a=f?{a:t,b:e}:{a:n,b:o},x=y.a.y,m=Math.min(y.a.x,y.b.x),h=Math.max(y.a.x,y.b.x),l=a.a.x,g=Math.min(a.a.y,a.b.y),I=Math.max(a.a.y,a.b.y);if(l<m||l>h||x<g||x>I)return!1;let M=Math.abs(l-y.a.x)<r&&Math.abs(x-y.a.y)<r||Math.abs(l-y.b.x)<r&&Math.abs(x-y.b.y)<r,v=Math.abs(l-a.a.x)<r&&Math.abs(x-a.a.y)<r||Math.abs(l-a.b.x)<r&&Math.abs(x-a.b.y)<r;return!(M&&v)}c(Mo,"orthogonalSegmentsCross");function ys(t,e,n,o,s=jt){let r=Ct(t,e,s),i=It(t,e,s),f=Ct(n,o,s),u=It(n,o,s);return i&&u&&It(t,n,s)?Qt(t.y,e.y,n.y,o.y)>s:r&&f&&Ct(t,n,s)?Qt(t.x,e.x,n.x,o.x)>s:!1}c(ys,"sameAxisSegmentsOverlap");function cn(t,e,n,o,{epsilon:s=jt,skipDegenerateOther:r=!1}={}){for(let i of n){if(i===o||i.isLayoutOnly)continue;let f=i.points;if(!(!f||f.length<2))for(let u=0;u<f.length-1;u++){let p=f[u],y=f[u+1];if(!(r&&fe(p,y,s))&&(Mo(t,e,p,y,s)||ys(t,e,p,y,s)))return!0}}return!1}c(cn,"segmentConflictsWithAnyEdge");function xe(t,e,n,o,s=jt){let r=Ct(t,e,s),i=It(t,e,s),f=Ct(n,o,s),u=It(n,o,s);if(!(r&&u||i&&f))return!1;let p=r?{a:t,b:e}:{a:n,b:o},y=r?{a:n,b:o}:{a:t,b:e},a=p.a.y,x=Math.min(p.a.x,p.b.x),m=Math.max(p.a.x,p.b.x),h=y.a.x,l=Math.min(y.a.y,y.b.y),g=Math.max(y.a.y,y.b.y);return h>x+s&&h<m-s&&a>l+s&&a<g-s}c(xe,"orthogonalSegmentsStrictlyCross");function Pn(t,e,n){let o=Math.min(e,n),s=Math.max(e,n);return t>o+jt&&t<s-jt}c(Pn,"strictlyBetween");function xs(t,e,n){return It(t,e)&&It(e,n)?Pn(e.y,t.y,n.y):Ct(t,e)&&Ct(e,n)?Pn(e.x,t.x,n.x):!1}c(xs,"isCollinearIntermediate");function bs(t){let e=!1,n=[];for(let o=0;o<t.length;o++){let s=n[n.length-1],r=t[o],i=o+1<t.length?t[o+1]:void 0;if(s&&i){if(fe(s,i)){o++,e=!0;continue}if(xs(s,r,i)){e=!0;continue}}n.push(r)}return{points:n,changed:e}}c(bs,"simplifyPolylineOnce");function an(t){let e=[t[0]];for(let o=1;o<t.length;o++){let s=e[e.length-1],r=t[o];if(!It(s,r)&&!Ct(s,r)){let i=e.length>=2?e[e.length-2]:void 0,u=(i?It(i,s):!1)?{x:s.x,y:r.y}:{x:r.x,y:s.y};e.push(u)}e.push(r)}let n=[];for(let o of e){let s=n[n.length-1];(!s||!fe(s,o))&&n.push(o)}return n}c(an,"orthogonalizePolyline");function pe(t){if(t.length<3)return t;let e=[...t];for(let n=0;n<32;n++){let o=bs(e);if(e=o.points,!o.changed)break}return e}c(pe,"simplifyPolyline");var ht=.001,Jr=.5,Xo=4;function Io(t,e,n){let o=t;if(o.isLayoutOnly||!o.points||o.points.length<n)return;let s=o.start?e.get(o.start):void 0,r=o.end?e.get(o.end):void 0;return{edge:o,points:o.points,srcRect:s?se(s):void 0,dstRect:r?se(r):void 0}}c(Io,"endpointContextFor");function Ms(t,e,n){if(Ct(t,e,ht))return{x:t.x<n.left?n.left:n.right,y:t.y};if(It(t,e,ht)){let o=t.y<n.top?n.top:n.bottom;return{x:t.x,y:o}}return{x:Math.min(n.right,Math.max(n.left,t.x)),y:Math.min(n.bottom,Math.max(n.top,t.y))}}c(Ms,"segmentEnterPoint");function kn(t,e,n){let o=n?1:-1,s=n?0:t.length-1;for(;s>=0&&s<t.length&&mo(t[s],e,Jr);)s+=o;if(s<0||s>=t.length)return t;let r=s-o;if(r<0||r>=t.length)return t;let i=Ms(t[s],t[r],e);return n?[i,...t.slice(s)]:[...t.slice(0,s+1),i]}c(kn,"clipEndpoint");function Is(t,e){for(let n of t){let o=Io(n,e,2);if(!o)continue;let s=[...o.points];o.srcRect&&(s=kn(s,o.srcRect,!0)),o.dstRect&&(s=kn(s,o.dstRect,!1)),s=pe(an(s)),s=So(s,o.srcRect,o.dstRect),o.edge.points=pe(an(s))}}c(Is,"clipEdgeEndpointsToNodeBoundaries");function _n(t,e,n,o=!1){if(Ct(t,e,ht)){if(e.y<n.top-ht||e.y>n.bottom+ht)return e;if(o){if(t.x<n.left-ht)return{x:n.left,y:t.y};if(t.x>n.right+ht)return{x:n.right,y:t.y}}return{x:Math.abs(e.x-n.left)<=Math.abs(e.x-n.right)?n.left:n.right,y:t.y}}if(It(t,e,ht)){if(e.x<n.left-ht||e.x>n.right+ht)return e;if(o){if(t.y<n.top-ht)return{x:t.x,y:n.top};if(t.y>n.bottom+ht)return{x:t.x,y:n.bottom}}let s=Math.abs(e.y-n.top)<=Math.abs(e.y-n.bottom);return{x:t.x,y:s?n.top:n.bottom}}return e}c(_n,"snapEndpointToBoundary");function ln(t,e,n){let o=t[e];for(let s=e+n;s>=0&&s<t.length;s+=n){let r=t[s];if(!fe(r,o,ht))return r}return t[e+n]}c(ln,"firstDistinctAdjacent");function fn(t,e){let n=t+Xo,o=e-Xo;return n<=o?{lo:n,hi:o}:{lo:(t+e)/2,hi:(t+e)/2}}c(fn,"cornerClearanceRange");function Hn(t,e,n){let{lo:o,hi:s}=fn(e,n);return Math.min(s,Math.max(o,t))}c(Hn,"clampToCornerClearance");function Ss(t){let e=Math.max(...t.map(o=>o.lo)),n=Math.min(...t.map(o=>o.hi));if(!(e>n))return{lo:e,hi:n}}c(Ss,"intersectRanges");function Dn(t,e){return e==="left"||e==="right"?fn(t.top,t.bottom):fn(t.left,t.right)}c(Dn,"clearanceRangeForSide");function dn(t,e,n){let o=t.y>=n.top-ht&&t.y<=n.bottom+ht,s=t.x>=n.left-ht&&t.x<=n.right+ht;if(Ct(t,e,ht)&&o){if(Math.abs(t.x-n.left)<ht)return"left";if(Math.abs(t.x-n.right)<ht)return"right"}if(It(t,e,ht)&&s){if(Math.abs(t.y-n.top)<ht)return"top";if(Math.abs(t.y-n.bottom)<ht)return"bottom"}}c(dn,"terminalSideForSegment");function Ye(t){return t==="left"||t==="right"}c(Ye,"isHorizontalSide");function Cs(t,e,n,o,s){let r=[],i=n?dn(t,e,n):void 0,f=o?dn(e,t,o):void 0;return n&&i&&Ye(i)===s&&r.push(Dn(n,i)),o&&f&&Ye(f)===s&&r.push(Dn(o,f)),r.length>0?Ss(r):void 0}c(Cs,"straightClearanceRange");function Xn(t,e,n,o,s){let r=Cs(t,e,n,o,s);if(!r)return;let i=s?t.y:t.x,f=Math.min(r.hi,Math.max(r.lo,i));if(!(Math.abs(f-i)<ht))return s?[{x:t.x,y:f},{x:e.x,y:f}]:[{x:f,y:t.y},{x:f,y:e.y}]}c(Xn,"clearStraightEndpointCornerAxis");function So(t,e,n){if(t.length!==2)return t;let[o,s]=t;return Ct(o,s,ht)?Xn(o,s,e,n,!0)??t:It(o,s,ht)?Xn(o,s,e,n,!1)??t:t}c(So,"clearStraightEndpointCornerConnections");function vs(t,e,n){return Ye(n)?{x:t.x,y:Hn(t.y,e.top,e.bottom)}:{x:Hn(t.x,e.left,e.right),y:t.y}}c(vs,"cornerClearedEndpoint");function Ls(t,e,n,o,s,r){let i=t.map(f=>({...f}));for(let f=e;f>=0&&f<t.length;f+=n){let u=t[f];if(r&&!Ct(u,o,ht)||!r&&!It(u,o,ht))break;r?i[f].y=s.y:i[f].x=s.x}return i}c(Ls,"moveCollinearEndpointRun");function Gn(t,e,n){if(t.length<2)return t;let o=n?0:t.length-1,s=n?1:-1,r=t[o],i=ln(t,o,s);if(!i)return t;let f=dn(r,i,e);if(!f)return t;let u=Ye(f),p=vs(r,e,f);return fe(r,p,ht)?t:Ls(t,o,s,r,p,u)}c(Gn,"clearEndpointCornerConnection");function Yn(t,e,n){let o=Math.min(t.x,e.x)>=n.left-ht&&Math.max(t.x,e.x)<=n.right+ht,s=Math.min(t.y,e.y)>=n.top-ht&&Math.max(t.y,e.y)<=n.bottom+ht;if(Math.abs(t.y-n.top)<ht&&Math.abs(e.y-n.top)<ht&&o)return"top";if(Math.abs(t.y-n.bottom)<ht&&Math.abs(e.y-n.bottom)<ht&&o)return"bottom";if(Math.abs(t.x-n.left)<ht&&Math.abs(e.x-n.left)<ht&&s)return"left";if(Math.abs(t.x-n.right)<ht&&Math.abs(e.x-n.right)<ht&&s)return"right"}c(Yn,"borderSideForSegment");function zn(t,e,n,o){switch(t){case"top":return It(e,n,ht)&&n.y<o.top-ht;case"bottom":return It(e,n,ht)&&n.y>o.bottom+ht;case"left":return Ct(e,n,ht)&&n.x<o.left-ht;case"right":return Ct(e,n,ht)&&n.x>o.right+ht}}c(zn,"leavesOutward");function $n(t,e,n){if(t.length<3)return t;if(n){let r=Yn(t[0],t[1],e);return r&&zn(r,t[1],t[2],e)?t.slice(1):t}let o=t.length-1,s=Yn(t[o-1],t[o],e);return s&&zn(s,t[o-1],t[o-2],e)?t.slice(0,o):t}c($n,"collapseOwnBorderStub");function ws(t,e,n){let o=t;if(e){let r=ln(o,0,1);if(r){let i=_n(r,o[0],e);i!==o[0]&&(o=[i,...o.slice(1)])}o=$n(o,e,!0)}if(n){let r=o.length-1,i=ln(o,r,-1);if(i){let f=_n(i,o[r],n,!0);f!==o[r]&&(o=[...o.slice(0,r),f])}o=$n(o,n,!1)}let s=So(o,e,n);return s!==o||o.length===2?s:(e&&(o=Gn(o,e,!0)),n&&(o=Gn(o,n,!1)),o)}c(ws,"snapAndCollapseEndpoints");function Vn(t,e){for(let n of t){let o=Io(n,e,2);if(!o)continue;let s=vt(o.points,ht),r=ws(s,o.srcRect,o.dstRect);if(r.length<3){o.edge.points=r;continue}let i=[r[0],{...r[0]},...r.slice(1,-1),r[r.length-1],{...r[r.length-1]}];o.edge.points=i}}c(Vn,"prepareEdgeEndpointsForRenderer");function Es(t){return new Map(t.map(e=>[e.id,e]))}c(Es,"buildNodeMap");function Un(t,e){let n=new Set([t.id]),o=0,s=t.parentId;for(;s&&!n.has(s);){let r=e.get(s);if(!r?.isGroup)break;n.add(s),o++,s=r.parentId}return o}c(Un,"groupDepth");function Co(t){let e=1/0,n=-1/0,o=1/0,s=-1/0;for(let r of t){let i=r.x,f=r.y;if(typeof i!="number"||typeof f!="number")continue;let u=r.width??0,p=r.height??0;e=Math.min(e,i-u/2),n=Math.max(n,i+u/2),o=Math.min(o,f-p/2),s=Math.max(s,f+p/2)}return e===1/0||o===1/0?null:{minX:e,maxX:n,minY:o,maxY:s}}c(Co,"boundsForChildren");function As(t,e){let n=t.padding??20;t.x=(e.minX+e.maxX)/2,t.y=(e.minY+e.maxY)/2,t.width=Math.max(0,e.maxX-e.minX)+n,t.height=Math.max(0,e.maxY-e.minY)+n}c(As,"applyGroupBounds");function Rs(t){let e=Es(t),n=t.filter(o=>o.isGroup&&o.parentId).sort((o,s)=>Un(s,e)-Un(o,e));for(let o of n){let s=t.filter(i=>i.parentId===o.id),r=Co(s);r&&As(o,r)}}c(Rs,"recomputeNestedGroupBounds");function un(t,e){let n=t.nodes??[],o=t.edges??[],s=n.filter(u=>!u.isGroup),r=1/0,i=-1/0;for(let u of s){let p=u[e];typeof p=="number"&&(r=Math.min(r,p),i=Math.max(i,p))}if(!Number.isFinite(r)||!Number.isFinite(i))return!1;let f=c(u=>r+i-u,"mirror");for(let u of n){let p=u[e];typeof p=="number"&&(u[e]=f(p));let y=u.groupTitleRect;y&&(u.groupTitleRect=e==="x"?{...y,left:f(y.right),right:f(y.left)}:{...y,top:f(y.bottom),bottom:f(y.top)})}for(let u of o)for(let p of u.points??[])p[e]=f(p[e]);return!0}c(un,"mirrorAxis");function Ts(t){return(t.nodes??[]).some(n=>!n.isGroup)?un(t,"y"):!0}c(Ts,"applyBtDirectionTransform");function vo(t){let e=t.filter(i=>!i.isGroup&&!i.isEdgeLabel);if(e.length===0)return 1;let n=0,o=0;for(let i of e)n+=i.width??0,o+=i.height??0;let s=n/e.length,r=o/e.length;return r>0?Math.max(1,s/r):1}c(vo,"flowAxisStretch");var Qr=36,ti=["top","right","bottom","left"];function Os(t){return t==="left"?"right":t==="right"?"left":t}c(Os,"mirroredSide");function Ns(t,e,n,o,s){if(n==="top"||n==="bottom"){let i=(e.left+e.right)/2,[f,u]=s?[o.after,o.before]:[o.before,o.after];t.left=Math.min(t.left,i-f),t.right=Math.max(t.right,i+u);return}let r=(e.top+e.bottom)/2;t.top=Math.min(t.top,r-o.before),t.bottom=Math.max(t.bottom,r+o.after)}c(Ns,"growAlongBorder");var ei={top:c((t,e,n)=>{t.top=Math.min(t.top,e.top-n)},"top"),bottom:c((t,e,n)=>{t.bottom=Math.max(t.bottom,e.bottom+n)},"bottom"),left:c((t,e,n)=>{t.left=Math.min(t.left,e.left-n)},"left"),right:c((t,e,n)=>{t.right=Math.max(t.right,e.right+n)},"right")};function Bs(t,e,n,o,s){Ns(t,e,n,o,s),ei[n](t,e,o.beyond)}c(Bs,"reserveOnSide");function Fs(t,e,n){let o=t.x??0,s=t.y??0,r=(t.width??0)/2,i=(t.height??0)/2,f={left:o-r,right:o+r,top:s-i,bottom:s+i},u={...f},p=n==="RL";for(let y of ti){let a=e[y];a&&Bs(u,f,p?Os(y):y,a,p)}return{...t,x:(u.left+u.right)/2,y:(u.top+u.bottom)/2,width:u.right-u.left,height:u.bottom-u.top}}c(Fs,"withAnchorFootprints");function Ps(t,e="LR"){let n=t.nodes??[],o=t.edges??[],s=ze(n),r=n.filter(N=>!N.isGroup&&!s.has(N.id)),i=1/0,f=1/0;for(let N of r){let F=N.x??0,V=N.y??0;F<i&&(i=F),V<f&&(f=V)}if(!Number.isFinite(i)||!Number.isFinite(f))return!1;let u=Qr,p=vo(r);for(let N of r){let F=N.x??0,Y=((N.y??0)-f)*p+u,J=F-i;N.x=Y,N.y=J}for(let N of o)if(N.points)for(let F of N.points){let V=F.x,J=(F.y-f)*p+u,it=V-i;F.x=J,F.y=it}Rs(n);let y=ue(n),a=n.filter(N=>y.isLane(N.id));if(a.length===0)return e==="RL"&&un(t,"x"),!0;let x=new Map,m=ts(n,e);for(let N of n){if(y.isLane(N.id)||y.isPool(N.id)||s.has(N.id))continue;let F=y.laneIdOf(N.id);if(!F)continue;let V=x.get(F)??[],Y=m.get(N.id);V.push(Y?Fs(N,Y,e):N),x.set(F,V)}let h=0;for(let N of a){let F=N.padding??0;F>h&&(h=F)}let l=[],g=1/0,I=-1/0;for(let N of a){let F=x.get(N.id)??[],V=Co(F);V&&(g=Math.min(g,V.minX),I=Math.max(I,V.maxX),l.push({lane:N,contentTop:V.minY,contentBottom:V.maxY,centerY:(V.minY+V.maxY)/2}))}if(g===1/0||I===-1/0)return!0;let M=Math.max(0,I-g),v=Math.max(h,10),O=M+2*v,S=u+O,w=(g+I)/2-O/2-u,B=w+S/2,P=Math.max(h,u);l.sort((N,F)=>N.centerY-F.centerY);for(let N=0;N<l.length;N++){let F=l[N],V,Y;if(N===0?V=F.contentTop-P:V=(l[N-1].contentBottom+F.contentTop)/2,N===l.length-1)Y=F.contentBottom+P;else{let dt=l[N+1];Y=(F.contentBottom+dt.contentTop)/2}let J=Math.max(0,Y-V),it=(V+Y)/2;F.lane.x=B,F.lane.y=it,F.lane.width=S,F.lane.height=J,F.lane.swimlaneContentTop=F.contentTop,F.lane.groupTitleRect={left:w,right:w+u,top:V,bottom:Y}}return e==="RL"&&un(t,"x"),!0}c(Ps,"applyLrDirectionTransform");var de=1e-6,ni=8,Je=ni,oi=[0,Je,-Je,2*Je,-2*Je];function ks(t,e){let{nodeInfoById:n,realNodeRects:o}=yn(e);for(let s of t){if(s.isLayoutOnly)continue;let r=s.points;if(!r||r.length<4)continue;let i=po(vt(r,de),de);if(!i)continue;let{p3:f}=i,u=i.kind==="HVH",p=bo(s,n,de);if(!p)continue;let{srcId:y,dstId:a,srcInfo:x,dstInfo:m,collinearX:h,collinearY:l}=p;if(h||l)continue;let g,I=x.rect;for(let M of oi){let v,O,S;if(u){let N=m.cy>x.cy?I.bottom:I.top,F=x.cx+M;if(F<=I.left+de||F>=I.right-de)continue;v={x:F,y:N},O={x:F,y:f.y},S={x:f.x,y:f.y}}else{let N=m.cx>x.cx?I.right:I.left,F=x.cy+M;if(F<=I.top+de||F>=I.bottom-de)continue;v={x:N,y:F},O={x:f.x,y:F},S={x:f.x,y:f.y}}let b=fe(v,O,de),L=fe(O,S,de);if(b&&L||!b&&Xt(v,O,o,[y],1)||!L&&Xt(O,S,o,[a],1))continue;let w=!b&&cn(v,O,t,s,{epsilon:de,skipDegenerateOther:!0}),B=!L&&cn(O,S,t,s,{epsilon:de,skipDegenerateOther:!0});if(!(w||B)){b?g=[O,S]:L?g=[v,O]:g=[v,O,S];break}}g&&(s.points=g)}}c(ks,"portSwapToLShape");function _s(t,e){let{realNodeRects:r,labelNodeRects:i}=we(e.values());for(let f of t){if(f.isLayoutOnly)continue;let u=f.points;if(!u||u.length<4)continue;let p=vt(u,.001);if(p.length<4)continue;let y=p.length-1,a=p[y],x=p[y-1],m=p[y-2],h=a.x-x.x,l=a.y-x.y,g=Math.hypot(h,l);if(g>=10||g<.001)continue;let I=x.x-m.x,M=x.y-m.y;if(Math.hypot(I,M)<.001)continue;let O=_t(x,a,.001),S=Ht(x,a,.001),b=_t(m,x,.001),L=Ht(m,x,.001);if(!(O&&L||S&&b))continue;let w=f.end,B=f.start,P=w?e.get(w):void 0;if(!P)continue;let N=P.x??0,F=P.y??0,V=se(P);if(!V)continue;let Y,J;if(L){let Q=M<0;Y={x:N,y:m.y},J={x:N,y:Q?V.bottom:V.top}}else{let Q=I>0;Y={x:m.x,y:F},J={x:Q?V.right:V.left,y:F}}if(Xt(Y,J,r,w?[w]:[],-2)||Xt(Y,J,i,[],-2))continue;if(B){let Q=e.get(B),lt=Q?se(Q):void 0;if(lt&&mo(Y,lt,2))continue}let it=c((Q,lt)=>`${Q.x.toFixed(3)},${Q.y.toFixed(3)}|${lt.x.toFixed(3)},${lt.y.toFixed(3)}`,"ownSegmentKey"),dt=new Set;for(let Q=0;Q<p.length-1;Q++)dt.add(it(p[Q],p[Q+1]));let At=c((Q,lt)=>{for(let _ of t){if(_===f||_.isLayoutOnly)continue;let z=_.points;if(!(!z||z.length<2))for(let tt=0;tt<z.length-1;tt++){let q=z[tt],st=z[tt+1];if(!dt.has(it(q,st))&&xe(Q,lt,q,st,.001))return!0}}return!1},"segmentCrossesOtherEdge");if(At(Y,J))continue;if(y-3>=0){let Q=p[y-3],lt=[B,w].filter(_=>!!_);if(Xt(Q,Y,r,lt,-2)||At(Q,Y))continue}let $t=[...p.slice(0,y-2),Y,J];f.points=$t;let Vt=f.labelNodeId;if(Vt){let Q=e.get(Vt);if(Q){let lt=Q.width??0,_=Q.height??0;if(lt>0&&_>0){let z,tt,q=-1;for(let st=0;st<$t.length-1;st++){let ut=$t[st],gt=$t[st+1],pt=Math.hypot(gt.x-ut.x,gt.y-ut.y),xt=Ct(ut,gt,.001),Ft=It(ut,gt,.001);(xt&&pt>=lt+2||Ft&&pt>=_+2)&&pt>q&&(q=pt,z=(ut.x+gt.x)/2,tt=(ut.y+gt.y)/2)}z!==void 0&&tt!==void 0&&(Q.x=z,Q.y=tt)}}}}}c(_s,"collapseShortTerminalStub");var Go=4,Yo=2,Hs={EDGE_GAP:12,LANE_MARGIN:20,ARROWHEAD_SIZE:8,ARROWHEAD_GAP:Go,MIN_ARROWHEAD_SPACING:12,EDGE_STROKE_WIDTH:Yo,ROUTE_TOUCH_TOLERANCE:Go+Yo},si={EPSILON:1e-6},hn={GRAVITY_ITERATIONS:8,MAX_CROSSING_OPTIMIZATION_PASSES:4,DEFAULT_COMPACT_SINGLE_INPUT:!0},An={DEFAULT_LAYER_GAP:100,DEFAULT_NODE_GAP:40,EDGE_LABEL_CLEARANCE:16},ct=.001,Ut=8,Ds=c(t=>typeof t=="string"?t.toUpperCase():"","upperCaseDirection"),yt=Le,Rn=c((t,e)=>It(t,e,ct)||Ct(t,e,ct),"orthogonallyAligned");function jn(t,e){let s=c((m,h)=>{let l=m.x??0,g=m.y??0,I=h.x-l,M=h.y-g,v=(m.width??0)/2,O=(m.height??0)/2;return Math.abs(M)*v>Math.abs(I)*O?(M<0&&(O=-O),{x:l+(M===0?0:O*I/M),y:g+O}):(I<0&&(v=-v),{x:l+v,y:g+(I===0?0:v*M/I)})},"rectIntersect"),r=c((m,h)=>{let l=vt(m.points??[]);if(l.length<2)return;let g=h?m.start:m.end,I=g?e.get(g):void 0,M=I?se(I):void 0;if(!I||!g||!M)return;let v=h?l[0]:l[l.length-1],O=h?l[1]:l[l.length-2],S=s(I,v),b=v;if(Rn(O,S)&&(b=O),It(S,b,ct))return{edge:m,edgeId:String(m.id??""),nodeId:g,atStart:h,orientation:"V",coord:S.x,min:Math.min(S.y,b.y),max:Math.max(S.y,b.y),boundary:S,railEnd:b,rect:M};if(Ct(S,b,ct))return{edge:m,edgeId:String(m.id??""),nodeId:g,atStart:h,orientation:"H",coord:S.y,min:Math.min(S.x,b.x),max:Math.max(S.x,b.x),boundary:S,railEnd:b,rect:M}},"terminalLaneFor"),i=c((m,h)=>Math.max(0,Math.min(m.max,h.max)-Math.max(m.min,h.min)),"projectedOverlapLength"),f=c((m,h)=>m.nodeId!==h.nodeId||m.orientation!==h.orientation?!1:m.orientation==="H"?(Math.abs(m.boundary.x-m.rect.left)<1||Math.abs(m.boundary.x-m.rect.right)<1)&&It(m.boundary,h.boundary,1):(Math.abs(m.boundary.y-m.rect.top)<1||Math.abs(m.boundary.y-m.rect.bottom)<1)&&Ct(m.boundary,h.boundary,1),"sameTerminalFace"),u=c((m,h)=>m.nodeId!==h.nodeId||m.orientation!==h.orientation?!1:i(m,h)>=Ut&&Math.abs(m.coord-h.coord)<.5,"exactTerminalLaneConflict"),p=c((m,h)=>{if(m.nodeId!==h.nodeId||m.orientation!==h.orientation||m.orientation!=="H"||m.atStart===h.atStart)return!1;let l=i(m,h);if(l<Ut)return!1;let g=m.rect.bottom-m.rect.top;return l<g||l>2*g?!1:f(m,h)&&Math.abs(m.coord-h.coord)<16},"nearTerminalLaneConflict"),y=c((m,h)=>{let l=vt(m.edge.points??[]);if(l.length<2)return;let g=m.orientation==="V"?{x:m.boundary.x+h,y:m.boundary.y}:{x:m.boundary.x,y:m.boundary.y+h},I=m.orientation==="V"?{x:m.railEnd.x+h,y:m.railEnd.y}:{x:m.railEnd.x,y:m.railEnd.y+h};if(!c(()=>Math.abs(m.boundary.y-m.rect.top)<1||Math.abs(m.boundary.y-m.rect.bottom)<1?Ct(g,m.boundary,ct)&&g.x>=m.rect.left+1&&g.x<=m.rect.right-1:Math.abs(m.boundary.x-m.rect.left)<1||Math.abs(m.boundary.x-m.rect.right)<1?It(g,m.boundary,ct)&&g.y>=m.rect.top+1&&g.y<=m.rect.bottom-1:!1,"boundaryStaysOnSameFace")())return;if(m.atStart){let b=l.length>1&&fe(l[1],m.railEnd,ct),L=l.slice(b?2:1),w=L[0];return w&&!Rn(w,I)?void 0:[g,I,...L]}let v=l.length>1&&fe(l[l.length-2],m.railEnd,ct),O=l.slice(0,v?-2:-1),S=O[O.length-1];if(!(S&&!Rn(S,I)))return[...O,I,g]},"shiftedCandidate"),a=c(m=>{let h=m.edge,l=vt(h.points??[]);if(l.length!==2)return!1;let g=h.start,I=h.end,M=g?e.get(g):void 0,v=I?e.get(I):void 0;if(!M||!v)return!1;let O=M.x??0,S=M.y??0,b=v.x??0,L=v.y??0,[w,B]=l;return Ct(w,B,ct)&&Math.abs(S-L)<1&&Math.abs(O-b)>1||It(w,B,ct)&&Math.abs(O-b)<1&&Math.abs(S-L)>1},"laneIsStraightCollinearConnector"),x=[-7,7,-14,14,-21,21];for(let m=0;m<8;m++){let h=t.filter(g=>!g.isLayoutOnly).flatMap(g=>[r(g,!0),r(g,!1)]).filter(g=>!!g),l=!1;for(let g=0;g<h.length&&!l;g++)for(let I=g+1;I<h.length&&!l;I++){let M=h[g],v=h[I];if(M.edge===v.edge||!(u(M,v)||p(M,v)))continue;let O=!u(M,v),S=[M,v].sort((b,L)=>{let w=a(b),B=a(L);return w!==B?Number(w)-Number(B):+!L.atStart-+!b.atStart});for(let b of S){for(let L of x){let w=y(b,L);if(!w)continue;let B=r({...b.edge,points:w},b.atStart);if(!(!B||h.some(P=>P.edge!==b.edge&&(u(B,P)||O&&p(B,P))))){b.edge.points=w,l=!0;break}}if(l)break}}if(!l)return}}c(jn,"separateSharedRenderedTerminalLanes");function Xs(t,e){let{realNodeRects:s,labelNodeRects:r}=we(e.values()),i=c((u,p)=>{let y=u.start,a=u.end,x=yt(p);if(x.length!==p.length-1)return!1;let m=[y,a].filter(h=>!!h);for(let h of x)if(Xt(h.a,h.b,s,m,-2)||Xt(h.a,h.b,r,[],-2))return!1;for(let h of t){if(h===u||h.isLayoutOnly)continue;let l=h.points;if(!(!l||l.length<2)){for(let g of x)for(let I of yt(vt(l)))if(ge(g,I,.5)>=Ut||xe(g.a,g.b,I.a,I.b,ct))return!1}}return!0},"candidateIsSafe"),f=c((u,p)=>{if(p+4>=u.length)return;let y=u[p],a=u[p+1],x=u[p+2],m=u[p+3],h=u[p+4],l=_t(y,a)&&Ht(a,x)&&_t(x,m)&&Ht(m,h)&&It(y,m,ct)&&It(y,h,ct)&&It(a,x,ct)&&(a.x-y.x)*(m.x-x.x)<0,g=Ht(y,a)&&_t(a,x)&&Ht(x,m)&&_t(m,h)&&Ct(y,m,ct)&&Ct(y,h,ct)&&Ct(a,x,ct)&&(a.y-y.y)*(m.y-x.y)<0;if(l||g)return vt([...u.slice(0,p+1),h,...u.slice(p+5)]);if(p+5>=u.length)return;let I=u[p+5],M=Ht(y,a)&&_t(a,x)&&Ht(x,m)&&_t(m,h)&&Ht(h,I)&&It(y,h,ct)&&It(y,I,ct)&&It(x,m,ct)&&(x.x-a.x)*(h.x-m.x)<0,v=_t(y,a)&&Ht(a,x)&&_t(x,m)&&Ht(m,h)&&_t(h,I)&&Ct(y,h,ct)&&Ct(y,I,ct)&&Ct(x,m,ct)&&(x.y-a.y)*(h.y-m.y)<0;if(!(!M&&!v))return vt([...u.slice(0,p+1),I,...u.slice(p+6)])},"withoutDogleg");for(let u=0;u<8;u++){let p=!1;for(let y of t){if(y.isLayoutOnly)continue;let a=vt(y.points??[]);for(let x=0;x<=a.length-5;x++){let m=f(a,x);if(!(!m||!i(y,m))){y.points=m,p=!0;break}}if(p)break}if(!p)return}}c(Xs,"collapseRedundantRectangularDoglegs");function Wn(t,e){let{realNodeRects:r,labelNodeRects:i}=we(e.values()),f=t.filter(h=>!h.isLayoutOnly),u=c((h,l,g)=>vt(h===l?g??[]:h.points??[]),"pointsFor"),p=c((h,l)=>{let g=0;for(let I=0;I<f.length;I++){let M=yt(u(f[I],h,l));for(let v=I+1;v<f.length;v++){let O=yt(u(f[v],h,l));for(let S of M)for(let b of O)xe(S.a,S.b,b.a,b.b,ct)&&g++}}return g},"strictCrossingCount"),y=c(h=>{let l=yt(h);if(l.length!==3)return;let g=l[1];if(!(l[0].horizontal===g.horizontal||l[2].horizontal===g.horizontal))return{index:g.index,horizontal:g.horizontal,vertical:g.vertical,segment:g}},"middleRail"),a=c((h,l)=>{let g=[h.start,h.end].filter(I=>!!I);return r.filter(I=>{if(g.includes(I.id))return!1;let M=I.rect;return l.horizontal?Qt(l.a.x,l.b.x,M.left,M.right)>=Ut&&l.a.y>=M.top-2&&l.a.y<=M.bottom+2:Qt(l.a.y,l.b.y,M.top,M.bottom)>=Ut&&l.a.x>=M.left-2&&l.a.x<=M.right+2})},"blockingRectsFor"),x=c((h,l,g)=>{let I=h.map(v=>({...v}));if(l.horizontal)I[l.index].y=g,I[l.index+1].y=g;else if(l.vertical)I[l.index].x=g,I[l.index+1].x=g;else return;let M=pe(vt(I));return yt(M).length===M.length-1?M:void 0},"candidateByMovingRail"),m=c((h,l,g)=>{let I=[h.start,h.end].filter(v=>!!v),M=yt(l);if(M.length!==l.length-1)return!1;for(let v of M)if(Xt(v.a,v.b,r,I,-2)||Xt(v.a,v.b,i,[],-2))return!1;for(let v of f)if(v!==h){for(let O of M)for(let S of yt(u(v)))if(ge(O,S,.5)>=Ut)return!1}return p(h,l)<=g},"candidateIsSafe");for(let h=0;h<8;h++){let l=p(),g=!1;for(let I of f){let M=u(I),v=y(M);if(!v)continue;let O=a(I,v.segment);if(O.length===0)continue;let S=v.horizontal?[Math.min(...O.map(b=>b.rect.top))-20,Math.max(...O.map(b=>b.rect.bottom))+20]:[Math.min(...O.map(b=>b.rect.left))-20,Math.max(...O.map(b=>b.rect.right))+20];for(let b of S){let L=x(M,v.segment,b);if(!(!L||!m(I,L,l))){I.points=L,g=!0;break}}if(g)break}if(!g)return}}c(Wn,"liftObstacleHuggingSameSideRails");function Kn(t,e,n){let s=c(y=>{let a=y.groupTitleRect;if(!(!a||typeof a.left!="number"||typeof a.right!="number"||typeof a.top!="number"||typeof a.bottom!="number"||!Number.isFinite(a.left)||!Number.isFinite(a.right)||!Number.isFinite(a.top)||!Number.isFinite(a.bottom)||a.right<=a.left||a.bottom<=a.top))return{left:a.left,right:a.right,top:a.top,bottom:a.bottom}},"validTitleRect"),r=ue([...e.values()]),i=c(y=>{if(!r.isLane(y.id))return;let a=Ds(y.direction??n);if(a==="LR"||a==="RL"||a==="BT")return;let x=s(y),m=y.y,h=y.height;if(!x||typeof m!="number"||typeof h!="number"||!Number.isFinite(m)||!Number.isFinite(h)||h<=0)return;let l=x.right-x.left,g=x.bottom-x.top;if(!(g<=0||l<g))return{node:y,rect:x}},"topLaneTitleFor"),f=c((y,a)=>{if(!y.horizontal)return!1;let x=y.a.y;return x<a.top-ct||x>a.bottom+ct?!1:Qt(y.a.x,y.b.x,a.left,a.right)>=Ut},"horizontalSegmentIntersectsTitle"),u=[...e.values()].map(i).filter(y=>!!y);if(u.length===0)return;let p=0;for(let y of t){if(y.isLayoutOnly)continue;let a=vt(y.points??[]);for(let x of yt(a))for(let m of u)f(x,m.rect)&&(p=Math.max(p,m.rect.bottom-x.a.y+4))}if(!(p<=ct))for(let y of u){let a=y.node.y,x=y.node.height;typeof a!="number"||typeof x!="number"||!Number.isFinite(a)||!Number.isFinite(x)||x<=0||(y.node.y=a-p/2,y.node.height=x+p,y.node.groupTitleRect={...y.rect,top:y.rect.top-p,bottom:y.rect.bottom-p})}}c(Kn,"liftTopLaneTitleBandsAboveRails");function qn(t,e,n){let s=c(a=>{let x=a.groupTitleRect;if(!(!x||typeof x.left!="number"||typeof x.right!="number"||typeof x.top!="number"||typeof x.bottom!="number"||!Number.isFinite(x.left)||!Number.isFinite(x.right)||!Number.isFinite(x.top)||!Number.isFinite(x.bottom)||x.right<=x.left||x.bottom<=x.top))return{left:x.left,right:x.right,top:x.top,bottom:x.bottom}},"validTitleRect"),r=ue([...e.values()]),i=c(a=>{if(!r.isLane(a.id)||Ds(a.direction??n)!=="LR")return;let m=s(a),h=a.x,l=a.width;if(!m||typeof h!="number"||typeof l!="number"||!Number.isFinite(h)||!Number.isFinite(l)||l<=0)return;let g=m.right-m.left,I=m.bottom-m.top;if(!(g<=0||I<g))return{node:a,rect:m}},"leftLaneTitleFor"),f=c((a,x)=>{if(!a.vertical)return!1;let m=a.a.x;return m<x.left-ct||m>x.right+ct?!1:Qt(a.a.y,a.b.y,x.top,x.bottom)>=Ut},"verticalSegmentIntersectsTitle"),u=c((a,x)=>{if(!a.horizontal)return!1;let m=a.a.y;return m<x.top-ct||m>x.bottom+ct?!1:Qt(a.a.x,a.b.x,x.left,x.right)>=Ut},"horizontalSegmentIntersectsTitle"),p=[...e.values()].map(i).filter(a=>!!a);if(p.length===0)return;let y=0;for(let a of t){if(a.isLayoutOnly)continue;let x=vt(a.points??[]);for(let m of yt(x))for(let h of p)if(f(m,h.rect))y=Math.max(y,h.rect.right-m.a.x+4);else if(u(m,h.rect)){let l=Math.min(m.a.x,m.b.x);y=Math.max(y,h.rect.right-l+4)}}if(!(y<=ct))for(let a of p){let x=a.node.x,m=a.node.width;typeof x!="number"||typeof m!="number"||!Number.isFinite(x)||!Number.isFinite(m)||m<=0||(a.node.x=x-y/2,a.node.width=m+y,a.node.groupTitleRect={...a.rect,left:a.rect.left-y,right:a.rect.right-y})}}c(qn,"shiftLeftLaneTitleBandsLeftOfRails");function Gs(t,e){let{realNodeRects:s}=we(e.values()),r=t.filter(l=>!l.isLayoutOnly),i=c((l,g=new Map)=>vt(g.get(l)??l.points??[]),"replacementPointsFor"),f=c((l=new Map)=>{let g=0;for(let I=0;I<r.length;I++){let M=yt(i(r[I],l));for(let v=I+1;v<r.length;v++){let O=yt(i(r[v],l));for(let S of M)for(let b of O)xe(S.a,S.b,b.a,b.b,ct)&&g++}}return g},"crossingCount"),u=c((l=new Map)=>r.reduce((g,I)=>g+ce(i(I,l)),0),"totalBends"),p=c(l=>{let g=i(l);if(g.length<4)return;let I=g[g.length-2],M=g[g.length-1];if(!(!_t(I,M,ct)&&!Ht(I,M,ct)))return{tailStart:I,terminal:M}},"terminalTailFor"),y=c((l,g)=>{let I=i(l);if(I.length<3)return;let M=I[0],v=I[1],O;if(_t(M,v,ct))O={x:v.x,y:g.tailStart.y};else if(Ht(M,v,ct))O={x:g.tailStart.x,y:v.y};else return;let S=pe(vt([M,v,O,g.tailStart,g.terminal]));return yt(S).length===S.length-1?S:void 0},"candidateWithDestinationTail"),a=c((l,g)=>{let I=[l.start,l.end].filter(M=>!!M);for(let M of yt(g))if(Xt(M.a,M.b,s,I,-2))return!0;return!1},"pathHasNodeHit"),x=c((l,g,I)=>{for(let M of r)if(M!==l){for(let v of yt(g))for(let O of yt(i(M,I)))if(ge(v,O,.5)>=Ut)return!0}return!1},"pathHasSharedTrack"),m=c((l,g,I)=>!a(l,g)&&!x(l,g,I),"candidateIsSafe"),h=c(()=>{let l=new Map;for(let g of r){let I=g.end;if(!I||!e.has(I)||i(g).length<4)continue;let v=l.get(I)??[];v.push(g),l.set(I,v)}return l},"edgesByDestination");for(let l=0;l<4;l++){let g=f();if(g===0)return;let I=u(),M,v=g,O=I;for(let S of h().values())for(let b=0;b<S.length;b++)for(let L=b+1;L<S.length;L++){let w=S[b],B=S[L],P=p(w),N=p(B);if(!P||!N)continue;let F=y(w,N),V=y(B,P);if(!F||!V)continue;let Y=new Map([[w,F],[B,V]]);if(!m(w,F,Y)||!m(B,V,Y))continue;let J=f(Y),it=u(Y);J>=g||J>v||J===v&&it>=O||(M=Y,v=J,O=it)}if(!M)return;for(let[S,b]of M)S.points=b}}c(Gs,"swapDestinationTerminalTailsToReduceCrossings");function Ys(t,e){let{realNodeRects:i,labelNodeRects:f}=we(e.values()),u=t.filter(S=>!S.isLayoutOnly),p=c((S,b=new Map)=>vt(b.get(S)??S.points??[]),"replacementPointsFor"),y=c((S=new Map)=>{let b=0;for(let L=0;L<u.length;L++){let w=yt(p(u[L],S));for(let B=L+1;B<u.length;B++){let P=yt(p(u[B],S));for(let N of w)for(let F of P)xe(N.a,N.b,F.a,F.b,ct)&&b++}}return b},"strictCrossingCount"),a=c((S=new Map)=>u.reduce((b,L)=>b+ce(p(L,S)),0),"totalBends"),x=c(S=>{let b=S.start,L=S.end,w=b?e.get(b):void 0,B=L?e.get(L):void 0,P=w?se(w):void 0,N=B?se(B):void 0;return P&&N?{src:P,dst:N}:void 0},"endpointRectsFor"),m=c((S,b,L)=>{if(L.index<=0||L.index+1>=b.length-1)return;let w=x(S);if(w){if(L.vertical){let B=L.a.x,P=Math.min(w.src.left,w.dst.left),N=Math.max(w.src.right,w.dst.right),F=B<P-ct?"left":B>N+ct?"right":void 0;return F?{edge:S,points:b,segmentIndex:L.index,axis:"vertical",side:F,coord:B,min:Math.min(L.a.y,L.b.y),max:Math.max(L.a.y,L.b.y)}:void 0}if(L.horizontal){let B=L.a.y,P=Math.min(w.src.top,w.dst.top),N=Math.max(w.src.bottom,w.dst.bottom),F=B<P-ct?"top":B>N+ct?"bottom":void 0;return F?{edge:S,points:b,segmentIndex:L.index,axis:"horizontal",side:F,coord:B,min:Math.min(L.a.x,L.b.x),max:Math.max(L.a.x,L.b.x)}:void 0}}},"externalRailForSegment"),h=c(()=>{let S=[];for(let b of u){let L=p(b);for(let w of yt(L)){let B=m(b,L,w);B&&S.push(B)}}return S},"collectExternalRails"),l=c((S,b)=>S.edge!==b.edge&&S.axis===b.axis&&S.side===b.side&&Qt(S.min,S.max,b.min,b.max)>=Ut,"railsInteract"),g=c(S=>{let b=[],L=new Set;for(let w of S){if(L.has(w))continue;let B=[w],P=[];for(L.add(w);B.length>0;){let N=B.pop();P.push(N);for(let F of S)!L.has(F)&&l(N,F)&&(L.add(F),B.push(F))}P.length>1&&b.push(P)}return b},"connectedComponents"),I=c(S=>{let b=[];for(let L of S)b.some(w=>Math.abs(w-L.coord)<ct)||b.push(L.coord);for(;b.length<S.length;){let L=Math.min(...b),w=Math.max(...b),B=S[0].side;b.push(B==="left"||B==="top"?L-12*(S.length-b.length):w+12*(S.length-b.length))}return b},"uniqueCoordsFor"),M=c(S=>{let b=S.map(B=>B.coord),L=I(S),w=[];if(S.length<=6){let B=new Array(L.length).fill(!1),P=[],N=c(()=>{if(P.length===S.length){P.some((F,V)=>Math.abs(F-b[V])>=ct)&&w.push([...P]);return}for(let[F,V]of L.entries())B[F]||(B[F]=!0,P.push(V),N(),P.pop(),B[F]=!1)},"visit");return N(),w}for(let B=0;B<b.length;B++)for(let P=B+1;P<b.length;P++){let N=[...b];[N[B],N[P]]=[N[P],N[B]],w.push(N)}return w},"coordinateAssignmentsFor"),v=c((S,b)=>{let L=new Map;for(let[B,P]of S.entries()){let N=b[B],F=L.get(P.edge)??P.points.map(V=>({x:V.x,y:V.y}));P.axis==="vertical"?(F[P.segmentIndex].x=N,F[P.segmentIndex+1].x=N):(F[P.segmentIndex].y=N,F[P.segmentIndex+1].y=N),L.set(P.edge,F)}let w=new Map;for(let[B,P]of L){let N=pe(vt(P));if(yt(N).length!==N.length-1)return;w.set(B,N)}return w},"replacementsForAssignment"),O=c(S=>{for(let[b,L]of S){let w=[b.start,b.end].filter(B=>!!B);for(let B of yt(L))if(Xt(B.a,B.b,i,w,-2)||Xt(B.a,B.b,f,[],-2))return!1}for(let b=0;b<u.length;b++){let L=u[b],w=S.has(L),B=yt(p(L,S));for(let P=b+1;P<u.length;P++){let N=u[P];if(!w&&!S.has(N))continue;let F=yt(p(N,S));for(let V of B)for(let Y of F)if(ge(V,Y,.5)>=Ut)return!1}}return!0},"candidateIsSafe");for(let S=0;S<4;S++){let b=y();if(b===0)return;let L,w=b,B=a(),P=Number.POSITIVE_INFINITY;for(let N of g(h()))for(let F of M(N)){let V=v(N,F);if(!V||!O(V))continue;let Y=y(V);if(Y>=b)continue;let J=a(V),it=N.reduce((dt,At,te)=>dt+Math.abs(F[te]-At.coord),0);Y>w||Y===w&&(J>B||J===B&&it>=P)||(L=V,w=Y,B=J,P=it)}if(!L)return;for(let[N,F]of L)N.points=F}}c(Ys,"reassignCrossingExternalRailChannels");function zs(t,e){let{realNodeRects:s,labelNodeRects:r}=we(e.values()),i=t.filter(h=>!h.isLayoutOnly),f=c((h,l,g)=>vt(h===l?g??[]:h.points??[]),"pointsFor"),u=c(h=>yt(h).reduce((l,g)=>{let I=g.a.x-g.b.x,M=g.a.y-g.b.y;return l+Math.hypot(I,M)},0),"pathLength"),p=c((h,l)=>{let g=0;for(let I=0;I<i.length;I++){let M=yt(f(i[I],h,l));for(let v=I+1;v<i.length;v++){let O=yt(f(i[v],h,l));for(let S of M)for(let b of O)xe(S.a,S.b,b.a,b.b,ct)&&g++}}return g},"strictCrossingCount"),y=c((h,l)=>{if(h.horizontal){let g=h.a.y;return(Math.abs(g-l.top)<1||Math.abs(g-l.bottom)<1)&&Qt(h.a.x,h.b.x,l.left,l.right)>=Ut}if(h.vertical){let g=h.a.x;return(Math.abs(g-l.left)<1||Math.abs(g-l.right)<1)&&Qt(h.a.y,h.b.y,l.top,l.bottom)>=Ut}return!1},"segmentRunsAlongRectBorder"),a=c(h=>{let l=[h.start,h.end].filter(I=>!!I),g=[];for(let I of l){let M=e.get(I),v=M?se(M):void 0;v&&g.push(v)}return g},"endpointRectsFor"),x=c((h,l)=>{if(l+3>=h.length)return[];let g=h[l],I=h[l+1],M=h[l+2],v=h[l+3],O=_t(g,I,ct)&&Ht(I,M,ct)&&_t(M,v,ct),S=Ht(g,I,ct)&&_t(I,M,ct)&&Ht(M,v,ct);if(!O&&!S)return[];if(!(O?Math.sign(I.x-g.x)!==Math.sign(v.x-M.x):Math.sign(I.y-g.y)!==Math.sign(v.y-M.y)))return[];let L=It(g,v,ct)||Ct(g,v,ct)?[]:[{x:g.x,y:v.y},{x:v.x,y:g.y}],w=L.length===0?[[...h.slice(0,l+1),...h.slice(l+3)]]:L.map(P=>[...h.slice(0,l+1),P,...h.slice(l+3)]),B=new Set;return w.map(P=>pe(vt(P))).filter(P=>{if(yt(P).length!==P.length-1||!P.some(F=>fe(F,v,ct)))return!1;let N=P.map(F=>`${F.x.toFixed(3)},${F.y.toFixed(3)}`).join("|");return B.has(N)?!1:(B.add(N),!0)})},"shortcutCandidatesAt"),m=c((h,l,g)=>{let I=[h.start,h.end].filter(v=>!!v),M=a(h);for(let v of yt(l))if(Xt(v.a,v.b,s,I,-2)||Xt(v.a,v.b,r,[],-2)||M.some(O=>y(v,O)))return!1;for(let v of i)if(v!==h){for(let O of yt(l))for(let S of yt(f(v)))if(ge(O,S,.5)>=Ut)return!1}return p(h,l)<=g},"candidateIsSafe");for(let h=0;h<8;h++){let l=p(),g,I,M=l,v=Number.POSITIVE_INFINITY,O=Number.POSITIVE_INFINITY;for(let S of i){let b=f(S),L=ce(b,ct),w=u(b);for(let B=0;B<=b.length-4;B++)for(let P of x(b,B)){let N=ce(P,ct),F=u(P);if(!(N<L||N===L&&F<w-ct)||!m(S,P,l))continue;let Y=p(S,P);Y>M||Y===M&&(N>v||N===v&&F>=O)||(g=S,I=P,M=Y,v=N,O=F)}}if(!g||!I)return;g.points=I}}c(zs,"shortcutRedundantOrthogonalJogs");function $s(t,e){let i=[];for(let T of e.values()){if(T.isGroup||T.isEdgeLabel)continue;let k=T.x??0,D=T.y??0,j=se(T);j&&i.push({id:String(T.id??""),cx:k,cy:D,rect:j})}if(i.length===0)return;let f=new Map(i.map(T=>[T.id,T])),u=i.map(T=>({id:T.id,rect:T.rect})),p=["top","bottom","left","right"],y={top:Math.min(...i.map(T=>T.rect.top))-20,bottom:Math.max(...i.map(T=>T.rect.bottom))+20,left:Math.min(...i.map(T=>T.rect.left))-20,right:Math.max(...i.map(T=>T.rect.right))+20},a=t.filter(T=>!T.isLayoutOnly),x=new Map(a.map((T,k)=>[T,k])),m=c(T=>{let k=T==="left"||T==="top"?-1:1,D=[];for(let j=0;j<=2;j++)D.push(y[T]+k*20*j);return D},"outwardTracksForSide"),h=c((T,k=new Map)=>vt(k.get(T)??T.points??[]),"replacementPointsFor"),l=c((T,k)=>{let D=0;for(let j of T)for(let K of k)xe(j.a,j.b,K.a,K.b,ct)&&D++;return D},"crossingCountBetweenSegments"),g=c((T,k)=>l(yt(T),yt(k)),"crossingCountBetweenPaths"),I=c((T=new Map)=>{let k=0,D=[],j=new Set,K=[],et=c(G=>{j.has(G)||(j.add(G),K.push(G))},"addEdge");for(let G=0;G<a.length;G++){let nt=a[G],ft=h(nt,T);for(let d=G+1;d<a.length;d++){let C=a[d],E=g(ft,h(C,T));E>0&&(k+=E,D.push({first:nt,second:C,count:E}),et(nt),et(C))}}return K.sort((G,nt)=>(x.get(G)??0)-(x.get(nt)??0)),{count:k,pairs:D,edgeSet:j,edges:K}},"crossingSnapshot"),M=c((T,k)=>{let D=new Set(k.keys());if(D.size===0)return T.count;let j=0;for(let et of T.pairs)(D.has(et.first)||D.has(et.second))&&(j+=et.count);let K=0;for(let et=0;et<a.length;et++){let G=a[et],nt=D.has(G),ft=h(G,k);for(let d=et+1;d<a.length;d++){let C=a[d];!nt&&!D.has(C)||(K+=g(ft,h(C,k)))}}return T.count-j+K},"crossingCountWithReplacements"),v=c(T=>{let k=new Map;for(let K of T.pairs){let et=k.get(K.first)??new Set;et.add(K.second),k.set(K.first,et);let G=k.get(K.second)??new Set;G.add(K.first),k.set(K.second,G)}let D=[],j=new Set;for(let K of T.edges){if(j.has(K))continue;let et=[K],G=[];for(j.add(K);et.length>0;){let nt=et.pop();G.push(nt);for(let ft of k.get(nt)??[])j.has(ft)||(j.add(ft),et.push(ft))}G.sort((nt,ft)=>(x.get(nt)??0)-(x.get(ft)??0)),G.length>1&&D.push(G)}return D},"crossingComponents"),O=c(T=>[T.start,T.end].filter(k=>!!k),"endpointIdsFor"),S=c(T=>{let k=[];for(let D of v(T)){let j=new Set(D),K=new Set(D.flatMap(G=>O(G))),et=[...D];for(let G of a)j.has(G)||O(G).some(nt=>K.has(nt))&&et.push(G);et.sort((G,nt)=>(x.get(G)??0)-(x.get(nt)??0)),k.push(et)}return k},"pairSearchGroups"),b=c((T,k,D)=>M(T,new Map([[k,D]])),"crossingCountWithSingleReplacement"),L=c(T=>{let k=new Map;for(let D of T.pairs)k.set(D.first,(k.get(D.first)??0)+D.count),k.set(D.second,(k.get(D.second)??0)+D.count);return k},"currentCrossingsByEdge"),w=c(T=>T.slice(1).reduce((k,D,j)=>{let K=T[j];return k+Math.abs(D.x-K.x)+Math.abs(D.y-K.y)},0),"pathLength"),B=c((T=new Map)=>a.reduce((k,D)=>k+ce(h(D,T)),0),"totalBends"),P=c((T=new Map)=>a.reduce((k,D)=>k+w(h(D,T)),0),"totalLength"),N=c((T,k)=>gs(T,k,Hs.ROUTE_TOUCH_TOLERANCE),"touchesAtBend"),F=c((T,k,D=new Map)=>{let j=yt(k);for(let K of a)if(K!==T){for(let et of j)for(let G of yt(h(K,D)))if(ge(et,G,.5)>=Ut)return!0;if(N(k,h(K,D)))return!0}return!1},"pathHasSegmentConflict"),V=c((T,k)=>{let D=[T.start,T.end].filter(j=>!!j);for(let j of yt(k))if(Xt(j.a,j.b,u,D,-2))return!0;return!1},"pathHitsNode"),Y=c((T,k)=>{let D=pe(vt(k));yt(D).length===D.length-1&&T.push(D)},"pushOrthogonalCandidate"),J=c(T=>T==="left"||T==="right","sideIsHorizontal"),it=c((T,k,D)=>{switch(k){case"left":return Math.min(T.x,D.x)-20;case"right":return Math.max(T.x,D.x)+20;case"top":return Math.min(T.y,D.y)-20;case"bottom":return Math.max(T.y,D.y)+20}},"localTrackForSameSide"),dt=c((T,k,D,j)=>{let K=D==="left"||D==="top"?-1:1,et=[it(k,D,j),y[D]];for(let G of et)for(let nt=0;nt<=2;nt++)Y(T,xo(k,D,j,G+K*20*nt))},"addSameSideCandidates"),At=c((T,k,D,j,K)=>{for(let et of m(D))for(let G of m(K))Y(T,[k,{x:et,y:k.y},{x:et,y:G},{x:j.x,y:G},j])},"addHorizontalToVerticalCandidates"),te=c((T,k,D,j,K)=>{for(let et of m(D))for(let G of m(K))Y(T,[k,{x:k.x,y:et},{x:G,y:et},{x:G,y:j.y},j])},"addVerticalToHorizontalCandidates"),$t=c((T,k,D,j,K)=>{let et=[...m("top"),...m("bottom")];for(let G of m(D))for(let nt of m(K))for(let ft of et)Y(T,[k,{x:G,y:k.y},{x:G,y:ft},{x:nt,y:ft},{x:nt,y:j.y},j])},"addHorizontalPairCandidates"),Vt=c((T,k,D,j,K)=>{let et=[...m("left"),...m("right")];for(let G of m(D))for(let nt of m(K))for(let ft of et)Y(T,[k,{x:k.x,y:G},{x:ft,y:G},{x:ft,y:nt},{x:j.x,y:nt},j])},"addVerticalPairCandidates"),Q=c(T=>{let k=new Set;return T.map(D=>vt(D)).filter(D=>{let j=D.map(K=>`${K.x.toFixed(3)},${K.y.toFixed(3)}`).join("|");return k.has(j)||D.length<2?!1:(k.add(j),!0)})},"dedupeCandidatePaths"),lt=c((T,k,D,j)=>{let K=[],et=yo(T,k,D,j,20,ct);et&&Y(K,et),k===j&&dt(K,T,k,D);let G=J(k),nt=J(j);return G&&!nt?At(K,T,k,D,j):!G&&nt?te(K,T,k,D,j):G?$t(K,T,k,D,j):Vt(K,T,k,D,j),Q(K)},"buildCandidatesForSides"),_=c((T,k,D,j)=>{let K=[...m("left"),...m("right")],et=[...m("top"),...m("bottom")];for(let G of p){let nt=Be(j,G),ft=G==="top"||G==="bottom"?m(G):et;for(let d of K){J(G)&&Y(T,[k,D,{x:d,y:D.y},{x:d,y:nt.y},nt]);for(let C of ft)Y(T,[k,D,{x:d,y:D.y},{x:d,y:C},{x:nt.x,y:C},nt])}}},"addVerticalDepartureOuterTrackCandidates"),z=c((T,k,D,j)=>{let K=[...m("left"),...m("right")],et=[...m("top"),...m("bottom")];for(let G of p){let nt=Be(j,G),ft=G==="left"||G==="right"?m(G):K;for(let d of et){J(G)||Y(T,[k,D,{x:D.x,y:d},{x:nt.x,y:d},nt]);for(let C of ft)Y(T,[k,D,{x:D.x,y:d},{x:C,y:d},{x:C,y:nt.y},nt])}}},"addHorizontalDepartureOuterTrackCandidates"),tt=c(T=>{let k=T.start,D=T.end,j=D?f.get(D):void 0;if(!k||!j)return[];let K=vt(T.points??[]);if(K.length<4)return[];let et=K[0],G=K[1],nt=[];return Ht(et,G,ct)?_(nt,et,G,j):_t(et,G,ct)&&z(nt,et,G,j),nt},"terminalPreservingOuterTrackCandidates"),q=c(T=>{let k=T.start,D=T.end,j=k?f.get(k):void 0,K=D?f.get(D):void 0;if(!j||!K)return[];let et=[];for(let G of p){let nt=Be(j,G);for(let ft of p)et.push(...lt(nt,G,Be(K,ft),ft))}return et.push(...tt(T)),et},"candidatePathsFor"),st=c(()=>new Map(a.map(T=>[T,yt(h(T))])),"currentSegmentsByEdge"),ut=c((T,k,D,j)=>{let K=new Set;for(let et of a){if(et===T)continue;let G=j.get(et)??yt(h(et));(D.some(nt=>G.some(ft=>ge(nt,ft,.5)>=Ut))||N(k,h(et)))&&K.add(et)}return K},"sharedTrackConflictsFor"),gt=c((T,k,D,j)=>{let K=new Set;return q(T).map(G=>pe(vt(G))).filter(G=>{if(V(T,G))return!1;let nt=G.map(ft=>`${ft.x.toFixed(3)},${ft.y.toFixed(3)}`).join("|");return K.has(nt)||G.length<2?!1:(K.add(nt),!0)}).map(G=>{let nt=yt(G),ft=0;for(let d of a)d!==T&&(ft+=l(nt,D.get(d)??yt(h(d))));return{candidate:G,candidateSegments:nt,crossings:k.count-(j.get(T)??0)+ft,bends:ce(G,ct),totalBends:ce(G),length:w(G)}}).filter(({crossings:G})=>G<=k.count).sort((G,nt)=>G.crossings-nt.crossings||G.bends-nt.bends||G.length-nt.length).slice(0,48).map(G=>({path:G.candidate,segments:G.candidateSegments,sharedTrackConflicts:ut(T,G.candidate,G.candidateSegments,D),totalBends:G.totalBends,length:G.length}))},"pairCandidatesFor"),pt=c((T,k,D,j,K,et)=>{let G=0;for(let ft of T.pairs)(ft.first===k||ft.second===k||ft.first===j||ft.second===j)&&(G+=ft.count);let nt=l(D.segments,K.segments);for(let ft of a){if(ft===k||ft===j)continue;let d=et.get(ft)??yt(h(ft));nt+=l(D.segments,d)+l(K.segments,d)}return T.count-G+nt},"pairCrossingCount"),xt=c((T,k)=>{for(let D of T.sharedTrackConflicts)if(D!==k)return!1;return!0},"conflictsOnlyWith"),Ft=c((T,k)=>T.segments.some(D=>k.segments.some(j=>ge(D,j,.5)>=Ut))||N(T.path,k.path),"candidatesShareTrack"),Ae=c((T,k,D,j)=>xt(k,D.edge)&&xt(j,T.edge)&&!Ft(k,j),"pairCandidatesAreCompatible"),me=c((T,k,D,j,K)=>{let et=pt(T.current,k.edge,D,j.edge,K,T.baseSegments);if(!(et>=T.current.count))return{replacements:new Map([[k.edge,D.path],[j.edge,K.path]]),crossings:et,bends:T.currentBends-(T.baseBendsByEdge.get(k.edge)??0)-(T.baseBendsByEdge.get(j.edge)??0)+D.totalBends+K.totalBends,length:T.currentLength-(T.baseLengthByEdge.get(k.edge)??0)-(T.baseLengthByEdge.get(j.edge)??0)+D.length+K.length}},"scorePairReplacement"),ye=c((T,k)=>T.crossings<k.crossings||T.crossings===k.crossings&&(T.bends<k.bends||T.bends===k.bends&&T.length<k.length),"pairScoreIsBetter"),Re=c((T,k,D,j)=>{let K=j;for(let et of k.candidates)for(let G of D.candidates){if(!Ae(k,et,D,G))continue;let nt=me(T,k,et,D,G);nt&&ye(nt,K)&&(K=nt)}return K},"bestScoreForOptionPair"),Ve=c(T=>{let k=B(),D=P(),j=st(),K=L(T),et=new Map(a.map(E=>[E,ce(h(E))])),G=new Map(a.map(E=>[E,w(h(E))])),nt=new Map,ft=S(T);for(let E of ft)for(let A of E){if(nt.has(A))continue;let R=gt(A,T,j,K);R.length>0&&nt.set(A,{edge:A,candidates:R})}let d={replacements:new Map,crossings:T.count,bends:k,length:D},C={current:T,currentBends:k,currentLength:D,baseBendsByEdge:et,baseLengthByEdge:G,baseSegments:j};for(let E of ft){let A=new Set(E.filter(H=>T.edgeSet.has(H))),R=E.map(H=>nt.get(H)).filter(H=>!!H);for(let H=0;H<R.length;H++){let Z=R[H];for(let at=H+1;at<R.length;at++){let W=R[at];!A.has(Z.edge)&&!A.has(W.edge)||(d=Re(C,Z,W,d))}}}return d.replacements.size>0?d.replacements:void 0},"bestPairedReplacement");for(let T=0;T<4;T++){let k=I(),D=k.count;if(D===0)return;let j,K,et=D,G=Number.POSITIVE_INFINITY;for(let ft of k.edges){let d=ce(h(ft),ct);for(let C of q(ft)){let E=V(ft,C),A=!E&&F(ft,C),R=b(k,ft,C),H=ce(C,ct);E||A||!(R<D||R===D&&H<d)||R>et||R===et&&H>=G||(j=ft,K=C,et=R,G=H)}}if(j&&K){j.points=K;continue}let nt=Ve(k);if(!nt)return;for(let[ft,d]of nt)ft.points=d}}c($s,"resolveRenderedOrthogonalCrossings");var ve=.001,ri=8;function Vs(t,e){let{nodeInfoById:n,realNodeRects:o}=yn(e),s=["top","bottom","left","right"],r=20,i={top:Math.min(...o.map(l=>l.rect.top))-r,bottom:Math.max(...o.map(l=>l.rect.bottom))+r,left:Math.min(...o.map(l=>l.rect.left))-r,right:Math.max(...o.map(l=>l.rect.right))+r},f=c((l,g,I,M)=>{let v=[],O=yo(l,g,I,M,r,ve);return O&&v.push(O),g===M&&v.push(xo(l,g,I,i[g])),v},"buildOrthogonalPathCandidates"),u=c((l,g)=>{for(let I=0;I<l.length-1;I++){let M=l[I],v=l[I+1];if(Xt(M,v,o,g,1))return!0}return!1},"pathHitsNode"),p=c((l,g,I=!1)=>{let M=0,v=Le(l,ve),O=g.start,S=g.end;for(let b of t){if(b===g||b.isLayoutOnly)continue;let L=b.start,w=b.end;if(!I&&O&&S&&(L===O||L===S||w===O||w===S))continue;let B=b.points;if(!(!B||B.length<2))for(let P of v)for(let N of Le(B,ve)){if(Mo(P.a,P.b,N.a,N.b,ve,ve)){M++;continue}ge(P,N,ve)>=ri&&M++}}return M},"pathConflictCount"),y=4,a=c((l,g)=>{let I=Math.abs(l.y-g.rect.top),M=Math.abs(l.y-g.rect.bottom),v=Math.abs(l.x-g.rect.left),O=Math.abs(l.x-g.rect.right),S="top",b=I;return M<b&&(S="bottom",b=M),v<b&&(S="left",b=v),O<b&&(S="right",b=O),S},"nearestSideOfRect"),x=new Map,m=c((l,g,I)=>{let M=x.get(l)??[];M.push({side:g,edgeId:I}),x.set(l,M)},"addFaceClaim");for(let l of t){if(l.isLayoutOnly)continue;let g=l.points??[];if(g.length<1)continue;let I=l.id??"",M=l.start,v=l.end;if(M){let O=n.get(M);O&&m(M,a(g[0],O),I)}if(v){let O=n.get(v);O&&m(v,a(g[g.length-1],O),I)}}let h=c((l,g,I)=>x.get(l)?.some(M=>M.edgeId!==I&&M.side===g)??!1,"faceIsClaimed");for(let l of t){if(l.isLayoutOnly)continue;let g=l.points;if(!g||g.length<2)continue;let I=ce(g,ve);if(I<y)continue;let M=l.start,v=l.end;if(!M||!v)continue;let O=n.get(M),S=n.get(v);if(!O||!S)continue;let b=l.id??"",L=p(g,l,!0),w=p(g,l),B,P=L,N=I;for(let F of s){if(h(M,F,b))continue;let V=Be(O,F);for(let Y of s){if(h(v,Y,b))continue;let J=Be(S,Y);for(let it of f(V,F,J,Y)){if(u(it,[M,v]))continue;let dt=ce(it,ve);if(L>0){let At=p(it,l,!0);if(At>P||At===P&&dt>=N)continue;P=At,N=dt,B=it;continue}p(it,l)>w||dt<N&&(N=dt,B=it)}}}if(B){l.points=B;let F=x.get(M);F&&x.set(M,F.filter(Y=>Y.edgeId!==b));let V=x.get(v);V&&x.set(v,V.filter(Y=>Y.edgeId!==b)),m(M,a(B[0],O),b),m(v,a(B[B.length-1],S),b)}}}c(Vs,"simplifyDetouredEdges");var oe=.001,zo=10,Qe=7;function Zn(t,e){let n=e?0:t.length-1,o=e?1:-1,s=t[n],r=t[n+o];if(!s||!r)return;let i=r.x-s.x,f=r.y-s.y;if(!(Math.abs(i)+Math.abs(f)<oe)){if(Math.abs(f)<=oe){let p=s.x+Math.sign(i)*zo;return{left:Math.min(s.x,p),right:Math.max(s.x,p),top:s.y-Qe,bottom:s.y+Qe}}if(Math.abs(i)<=oe){let p=s.y+Math.sign(f)*zo;return{left:s.x-Qe,right:s.x+Qe,top:Math.min(s.y,p),bottom:Math.max(s.y,p)}}return{left:Math.min(s.x,r.x),right:Math.max(s.x,r.x),top:Math.min(s.y,r.y),bottom:Math.max(s.y,r.y)}}}c(Zn,"markerClearanceRectFor");function Us(t){return{left:Math.min(t.left,t.right),right:Math.max(t.left,t.right),top:Math.min(t.top,t.bottom),bottom:Math.max(t.top,t.bottom)}}c(Us,"normalizeRect");function Jn(t,e){let n=vt(e),o=Zn(n,!0),s=Zn(n,!1);return[o,s].some(r=>r&&rn(t,Us(r)))}c(Jn,"labelOverlapsOwnMarker");function nn(t,e){let n=[];for(let l of t){if(l.isLayoutOnly)continue;let g=l.points;if(!(!g||g.length<2))for(let I=0;I<g.length-1;I++)n.push({edgeId:l.id,p1:g[I],p2:g[I+1]})}let o=[],s=[],r=ue([...e.values()]);for(let l of e.values()){let g=l.isGroup;if(r.isLane(l.id)){let M=se(l);M&&s.push({id:l.id,rect:M});continue}if(g||l.isEdgeLabel)continue;let I=se(l);I&&o.push({nodeId:l.id,rect:I})}let i=3,f=1,u=12,p=c((l,g)=>{let I=Fn(g,i);for(let{nodeId:M,rect:v}of o)if(M!==l&&rn(I,v))return!0;return!1},"labelOverlapsForeignNode"),y=c((l,g)=>{let I=Fn(g,i);for(let M of n)if(M.edgeId!==l&&mn(M.p1,M.p2,I))return!0;return!1},"labelOverlapsForeignEdge"),a=c((l,g,I)=>p(l,I)||y(g,I),"labelOverlapsAnything"),x=[],m=c(l=>{for(let{id:g,rect:I}of s)if(ps(I,l))return g},"findContainingLane"),h=c((l,g)=>x.some(I=>I.labelId!==l&&rn(g,I.rect)),"overlapsPlacedLabel");for(let l of t){if(l.isLayoutOnly)continue;let g=l.labelNodeId;if(!g)continue;let I=e.get(g);if(!I)continue;let M=l.points;if(!M||M.length<2)continue;let v=I.width??0,O=I.height??0;if(v<=0||O<=0)continue;let S=[];for(let Q=0;Q<M.length-1;Q++){let lt=M[Q],_=M[Q+1],z=Math.abs(lt.x-_.x),tt=Math.abs(lt.y-_.y);z<oe&&tt<oe||z>=oe&&tt>=oe||S.push({idx:Q,length:z+tt,orientation:z>=oe?"horizontal":"vertical",midX:(lt.x+_.x)/2,midY:(lt.y+_.y)/2})}if(S.length===0)continue;let b=S.length>=3?S.filter(Q=>Q.idx>0&&Q.idx<S.length-1):S,L=b.length>0?b:S,w=v>=O?"horizontal":"vertical",B=c(Q=>[...Q].sort((lt,_)=>{let z=lt.orientation===w,tt=_.orientation===w;if(z!==tt)return z?-1:1;let q=lt.length>=(lt.orientation==="horizontal"?v:O)+2,st=_.length>=(_.orientation==="horizontal"?v:O)+2;return q!==st?q?-1:1:_.length-lt.length}),"rankSegments"),P=S[0],N=S[S.length-1],F=[.5,.25,.75,.05,.95,.15,.85,.1,.9],V=c((Q,lt)=>{let _=M[Q.idx],z=M[Q.idx+1];return{midX:_.x+(z.x-_.x)*lt,midY:_.y+(z.y-_.y)*lt}},"anchorAtT"),Y=c((Q,lt,_)=>Math.min(_,Math.max(lt,Q)),"clamp"),J=c((Q,lt)=>Q.midX>=lt.left-oe&&Q.midX<=lt.right+oe&&Q.midY>=lt.top-oe&&Q.midY<=lt.bottom+oe,"pointInsideRectInclusive"),it=c(Q=>{let lt=De(Q.midX,Q.midY,v,O),_=m(lt);if(_)return{laneId:_,anchor:Q,rect:lt};let z=s.find(({rect:xt})=>J(Q,xt));if(!z)return;let tt=z.rect.left+v/2+f,q=z.rect.right-v/2-f,st=z.rect.top+O/2+f,ut=z.rect.bottom-O/2-f;if(tt>q||st>ut)return;let gt={midX:Y(Q.midX,tt,q),midY:Y(Q.midY,st,ut)},pt=De(gt.midX,gt.midY,v,O);return J(Q,pt)?{laneId:z.id,anchor:gt,rect:pt}:void 0},"placementForAnchor"),dt=c((Q,lt,_)=>Q.orientation==="horizontal"?Math.abs(lt.midX-_.x):Math.abs(lt.midY-_.y),"distanceAlongSegment"),At=c((Q,lt)=>{let z=(Q.orientation==="horizontal"?v/2:O/2)+u;if(Q===P){let tt=M[Q.idx];if(dt(Q,lt,tt)+oe<z)return!1}if(Q===N){let tt=M[Q.idx+1];if(dt(Q,lt,tt)+oe<z)return!1}return!0},"labelClearsTerminalEndpoints"),te=c(Q=>{let lt=B(Q);for(let _ of lt)for(let z of F){let tt=V(_,z);if(!At(_,tt))continue;let q=it(tt);if(q&&!Jn(q.rect,M)&&!h(g,q.rect)&&!a(g,l.id,q.rect))return{laneId:q.laneId,anchor:q.anchor}}},"tryPool"),$t=c((Q,lt,_=!1)=>{let z=B(Q);for(let tt of z){let q={midX:tt.midX,midY:tt.midY};if(lt&&!At(tt,q))continue;let st=it(q);if(st&&!Jn(st.rect,M)&&!h(g,st.rect)&&!p(g,st.rect)&&(_||!y(l.id,st.rect)))return{laneId:st.laneId,anchor:st.anchor}}},"findLaneContainingFallback"),Vt=te(L)??(L.length<S.length?te(S):void 0)??$t(S,!0)??$t(S,!1)??$t(S,!1,!0);if(Vt){I.x=Vt.anchor.midX,I.y=Vt.anchor.midY,I.parentId=Vt.laneId;let Q=De(Vt.anchor.midX,Vt.anchor.midY,v,O),lt=x.findIndex(_=>_.labelId===g);lt>=0?x[lt]={labelId:g,rect:Q}:x.push({labelId:g,rect:Q})}}}c(nn,"anchorLabelsToPolyline");var Tn=1e-6,ii=8,$o=ii/2,ci=3;function Qn(t,e,n,{cx:o,cy:s},r,i){let f={x:o,y:s},u=i==="x"?"y":"x",p=Math.sign(r[u]-f[u]);for(let y of t){if(y===e||y.isLayoutOnly||!y.points?.length)continue;if([...y.end===n?[y.points.at(-1)]:[],...y.start===n?[y.points[0]]:[]].some(x=>Math.sign(x[u]-f[u])===p&&Math.abs(x[i]-r[i])<Hs.MIN_ARROWHEAD_SPACING))return!0}return!1}c(Qn,"crowdsFaceNeighbour");function to(t,e){return t<e?`${t}::${e}`:`${e}::${t}`}c(to,"pairKey");function js(t,e){let{nodeInfoById:n,realNodeRects:o}=yn(e),s=new Map;for(let i of e){let f=i.id;if(!i.isGroup&&i.isEdgeLabel){s.set(f,{w:i.width??0,h:i.height??0});continue}}let r=c((i,f,u,p)=>{let y=to(f,u),a=0,x=c(m=>{if(!m)return;let h=s.get(m);if(!h)return;let l=p==="x"?h.w/2:h.h/2;l>a&&(a=l)},"consider");x(i.labelNodeId);for(let m of t){if(m===i||m.isLayoutOnly)continue;let h=m.start,l=m.end;!h||!l||to(h,l)===y&&x(m.labelNodeId)}return a>0?a+ci:0},"labelClearanceFor");for(let i of t){if(i.isLayoutOnly)continue;let f=i.points;if(!po(f,Tn))continue;let u=bo(i,n,Tn);if(!u)continue;let{srcId:p,dstId:y,srcInfo:a,dstInfo:x,collinearX:m,collinearY:h}=u;if(m===h)continue;let l,g;if(m){let b=x.cy>a.cy;l={x:a.cx,y:b?a.rect.bottom:a.rect.top},g={x:x.cx,y:b?x.rect.top:x.rect.bottom}}else{let b=x.cx>a.cx;l={x:b?a.rect.right:a.rect.left,y:a.cy},g={x:b?x.rect.left:x.rect.right,y:x.cy}}if(Xt(l,g,o,[p,y],1))continue;let I=m?"x":"y",M=r(i,p,y,I),v=M>$o?M:$o,O=[0,v,-v],S;for(let b of O){let L={...l},w={...g};if(m){if(L.x+=b,w.x+=b,L.x<=a.rect.left||L.x>=a.rect.right||w.x<=x.rect.left||w.x>=x.rect.right)continue}else if(L.y+=b,w.y+=b,L.y<=a.rect.top||L.y>=a.rect.bottom||w.y<=x.rect.top||w.y>=x.rect.bottom)continue;if(Xt(L,w,o,[p,y],1)||cn(L,w,t,i,{epsilon:Tn}))continue;let B=[L,w];if(Qn(t,i,p,a,L,I)||Qn(t,i,y,x,w,I)){S??=B;continue}i.points=B,S=void 0;break}S&&(i.points=S)}}c(js,"straightenCollinearSiblingDetours");function eo(t,e){let{realNodeRects:p,labelNodeRects:y}=we(e.values()),a=c((b,L)=>Le(L,.001).map(w=>({...w,edge:b,interior:w.index>=1&&w.index<=L.length-3})),"segmentsFor"),x=c(()=>{let b=[];for(let L of t){if(L.isLayoutOnly)continue;let w=L.points;!w||w.length<2||b.push(...a(L,vt(w)))}return b},"allSegments"),m=c((b,L)=>b.horizontal&&L.horizontal?Qt(b.a.x,b.b.x,L.a.x,L.b.x)>=8&&Math.abs(b.a.y-L.a.y)<7:b.vertical&&L.vertical?Qt(b.a.y,b.b.y,L.a.y,L.b.y)>=8&&Math.abs(b.a.x-L.a.x)<7:!1,"hasCrowdedParallelTrack"),h=c((b,L)=>{let w=b.start,B=b.end,P=a(b,L);if(P.length!==L.length-1)return!1;let N=[w,B].filter(V=>!!V),F=b.labelNodeId?[b.labelNodeId]:[];for(let V of P)if(Xt(V.a,V.b,p,N,-2)||Xt(V.a,V.b,y,F,-2))return!1;for(let V of t){if(V===b||V.isLayoutOnly)continue;let Y=V.points;if(!(!Y||Y.length<2)){for(let J of P)for(let it of a(V,vt(Y)))if(m(J,it)||xe(J.a,J.b,it.a,it.b,.001))return!1}}return!0},"candidateIsSafe"),l=c((b,L)=>{let w=vt(b.edge.points??[]);if(w.length<4||b.index>=w.length-1)return;let B=w.map(P=>({...P}));if(b.horizontal)B[b.index].y+=L,B[b.index+1].y+=L;else if(b.vertical)B[b.index].x+=L,B[b.index+1].x+=L;else return;return a(b.edge,B).length===B.length-1?B:void 0},"shiftedCandidate"),g=c((b,L)=>({x:b.x??(L.left+L.right)/2,y:b.y??(L.top+L.bottom)/2}),"nodeCenter"),I=c(b=>{let L=b.edge,w=vt(L.points??[]);if(w.length!==4||b.index!==1)return;let B=L.start?e.get(L.start):void 0,P=L.end?e.get(L.end):void 0,N=B?se(B):void 0,F=P?se(P):void 0,V=w.slice(b.index+2);if(!(!B||!P||!N||!F||V.length===0))return{sourceCenter:g(B,N),targetCenter:g(P,F),sourceRect:N,tail:V}},"sourceDetourContextFor"),M=c((b,L,w,B,P,N)=>{let F=B.y>=w.y,V=F?P.bottom:P.top,Y=V+(F?20:-20);if(F&&b.b.y<=Y+.001||!F&&b.b.y>=Y-.001)return;let J=b.a.x+L;return vt([{x:w.x,y:V},{x:w.x,y:Y},{x:J,y:Y},{x:J,y:b.b.y},...N],.001)},"verticalSourceDetour"),v=c((b,L,w,B,P,N)=>{let F=B.x>=w.x,V=F?P.right:P.left,Y=V+(F?20:-20);if(F&&b.b.x<=Y+.001||!F&&b.b.x>=Y-.001)return;let J=b.a.y+L;return vt([{x:V,y:w.y},{x:Y,y:w.y},{x:Y,y:J},{x:b.b.x,y:J},...N],.001)},"horizontalSourceDetour"),O=c((b,L)=>{let w=I(b);if(w){if(b.vertical)return M(b,L,w.sourceCenter,w.targetCenter,w.sourceRect,w.tail);if(b.horizontal)return v(b,L,w.sourceCenter,w.targetCenter,w.sourceRect,w.tail)}},"sourceDetourCandidate"),S=[-7,7,-14,14,-21,21];for(let b=0;b<12;b++){let L=x(),w=!1;for(let B=0;B<L.length&&!w;B++)for(let P=B+1;P<L.length&&!w;P++){let N=L[B],F=L[P];if(N.edge===F.edge||!m(N,F))continue;let V=[N,F].filter(Y=>Y.interior);for(let Y of V){for(let J of S){let it=l(Y,J);if(it&&h(Y.edge,it)){Y.edge.points=it,w=!0;break}let dt=O(Y,J);if(dt&&h(Y.edge,dt)){Y.edge.points=dt,w=!0;break}}if(w)break}}if(!w)return}}c(eo,"nudgeSharedInteriorSubpaths");function Ws(t,e,n,o){let s=e.x-t.x,r=e.y-t.y,i=o.x-n.x,f=o.y-n.y,u=s*f-r*i;if(Math.abs(u)<1e-10)return!1;let p=n.x-t.x,y=n.y-t.y,a=(p*f-y*i)/u,x=(p*r-y*s)/u,m=.01;return a>m&&a<1-m&&x>m&&x<1-m}c(Ws,"segmentsIntersect");function Ks(t){let e=t.nodes??[],n=t.edges??[],o=[];if(!n.length||!e.length)return o;let s=ms(e),r=1,i=[];for(let u of n){if(u.isLayoutOnly)continue;let p=u.points;if(!p||p.length<2)continue;let y=u.start,a=u.end,x=u.labelNodeId,m=u.id??`${y}->${a}`;for(let h of s)if(!(h.nodeId===y||h.nodeId===a)&&!(x&&h.nodeId===x)){for(let l=0;l<p.length-1;l++)if(mn(p[l],p[l+1],h,-r)){o.push({type:"edge-node-overlap",edgeId:m,targetId:h.nodeId,detail:`segment ${l} passes through node "${h.nodeId}"`});break}}for(let h=0;h<p.length-1;h++)i.push({edgeId:m,start:y,end:a,p1:p[h],p2:p[h+1]})}let f=new Set;for(let u=0;u<i.length;u++)for(let p=u+1;p<i.length;p++){let y=i[u],a=i[p];if(y.edgeId!==a.edgeId&&!(y.start===a.start||y.start===a.end||y.end===a.start||y.end===a.end)&&Ws(y.p1,y.p2,a.p1,a.p2)){let x=y.edgeId<a.edgeId?`${y.edgeId}|${a.edgeId}`:`${a.edgeId}|${y.edgeId}`;f.has(x)||(f.add(x),o.push({type:"edge-edge-crossing",edgeId:y.edgeId,targetId:a.edgeId,detail:`edges "${y.edgeId}" and "${a.edgeId}" cross`}))}}if(o.length>0){let u=o.filter(y=>y.type==="edge-node-overlap").length,p=o.filter(y=>y.type==="edge-edge-crossing").length;_e.warn(`[SWIMLANE_VALIDATE] ${o.length} issue(s) detected: ${u} edge-node overlap(s), ${p} edge crossing(s)`);for(let y of o)_e.warn(`[SWIMLANE_VALIDATE] ${y.type}: ${y.detail}`)}return o}c(Ks,"validateSwimlanesLayout");function qs(t,e){let n=t.nodes??[],o=t.edges??[],s=n.filter(f=>!f.isGroup);if((e==="LR"||e==="RL")&&s.length>0&&!Ps(t,e)||e==="BT"&&s.length>0&&!Ts(t))return;for(let f of o){if(f.isLayoutOnly)continue;let u=f.points;!u||u.length<2||(f.points=pe(an(u)))}Vs(o,n),js(o,n),ks(o,n);let r=new Map;for(let f of n)r.set(String(f.id),f);nn(o,r),Is(o,r),_s(o,r),eo(o,r),jn(o,r),Xs(o,r),Wn(o,r),Gs(o,r);let i=c(()=>{$s(o,r),jn(o,r),Ys(o,r),zs(o,r),nn(o,r),Vn(o,r),Wn(o,r),nn(o,r),Vn(o,r)},"finalizeRenderedEdges");i(),eo(o,r),i(),Kn(o,r,e),qn(o,r,e),Kn(o,r,e),qn(o,r,e)}c(qs,"postProcessSwimlaneLayout");function Ee(t){let e=new Map(t.nodeById),n=new Set,o=[];for(let r of t.edges){if(!e.has(r.src)||!e.has(r.dst))continue;let i=`${r.id}:${r.src}->${r.dst}`;n.has(i)||(n.add(i),o.push(r))}return{nodes:[...e.keys()],edges:o,layout:t.layout,nodeById:e}}c(Ee,"normalizeGraph");function Lo(t,e){return t.edges.filter(n=>n.dst===e)}c(Lo,"incoming");function Zs(t){let e=new Map;for(let n of t.nodes)e.set(n,[]);for(let n of t.edges)e.get(n.src).push(n.dst);return e}c(Zs,"buildSuccessorMap");function wo(t){let e=Zs(t);for(let n of e.values())n.sort((o,s)=>o.localeCompare(s));return e}c(wo,"buildSortedSuccessorMap");function xn(t){let e=new Map;for(let n of t.nodes)e.set(n,0);for(let n of t.edges)e.set(n.dst,(e.get(n.dst)??0)+1);return e}c(xn,"buildInDegreeMap");function Eo(t,e){let n=[...e.entries()].filter(([,f])=>f===0).map(([f])=>f).sort((f,u)=>f.localeCompare(u)),o=new Set(t.edges.flatMap(f=>[f.src,f.dst])),s=c(f=>!o.has(f)&&!t.nodeById.get(f)?.isGroup,"isUnconnected"),r=[...e.keys()].filter(f=>e.get(f)===0&&s(f)),i=0;return n.map(f=>s(f)?r[i++]:f)}c(Eo,"sortedZeroInDegreeNodes");function bn(t,e=()=>!0){let n=new Map,o=new Map;for(let s of t.nodes)n.set(s,[]),o.set(s,[]);for(let s of t.edges)e(s)&&(o.get(s.src).push(s.dst),n.get(s.dst).push(s.src));return{preds:n,succs:o}}c(bn,"buildPredecessorSuccessorMaps");function Ao(t,e,n,o){let s=0;for(let i of t.nodes)o?.skipGroups&&t.nodeById.get(i)?.isGroup||(s=Math.max(s,n[i]??0));let r=Array.from({length:s+1},()=>[]);for(let i of e)o?.skipGroups&&t.nodeById.get(i)?.isGroup||r[Math.max(0,n[i]??0)].push(i);return r}c(Ao,"buildLayersFromRanks");function $e(t){let e=xn(t),n=Eo(t,e),o=[],s=wo(t);for(;n.length;){let r=n.shift();o.push(r);for(let i of s.get(r)??[])if(e.set(i,(e.get(i)??0)-1),(e.get(i)??0)===0){let f=0;for(;f<n.length&&n[f]<i;)f++;n.splice(f,0,i)}}return o.length===t.nodes.length?o:null}c($e,"topoSortIfAcyclic");function Xe(t){let e=new Map,n=0;for(let o of t)e.set(o,n),n++;return e}c(Xe,"buildLayerIndex");function Ro(t){let e=new Array(t.length),n=c((o,s)=>{if(s-o<=1)return 0;let r=o+s>>1,i=n(o,r)+n(r,s),f=o,u=r,p=o;for(;f<r||u<s;)u>=s||f<r&&t[f]<=t[u]?e[p++]=t[f++]:(e[p++]=t[u++],i+=r-f);for(let y=o;y<s;y++)t[y]=e[y];return i},"count");return n(0,t.length)}c(Ro,"countInversions");function Js(t){let e=Ee(t),n=new Map;for(let a of e.nodes)n.set(a,[]);for(let a of e.edges)n.get(a.src).push(a);for(let a of n.values())a.sort((x,m)=>x.dst===m.dst?x.id.localeCompare(m.id):x.dst.localeCompare(m.dst));let o=Object.create(null);for(let a of e.nodes)o[a]=0;let s=[],r=c(a=>{o[a]=1;for(let x of n.get(a)??[]){let m=x.dst;o[m]===0?r(m):o[m]===1&&s.push(x)}o[a]=2},"dfs"),i=xn(e),f=[...e.nodes.filter(a=>(i.get(a)??0)===0),...e.nodes.filter(a=>(i.get(a)??0)!==0)];for(let a of f)o[a]===0&&r(a);let u=new Set(s.map(a=>`${a.id}:${a.src}->${a.dst}`)),p=e.edges.map(a=>u.has(`${a.id}:${a.src}->${a.dst}`)?{id:a.id,src:a.dst,dst:a.src,weight:a.weight,ref:a.ref}:a);return{acyclic:{nodes:[...e.nodes],edges:p,layout:e.layout,nodeById:new Map(e.nodeById)},reversed:s}}c(Js,"removeCycles_DFS");function Qs(t){let e=ue(t.layout.nodes??[]),n=new Map;for(let o of t.nodes)n.set(o,e.laneIdOf(o));return n}c(Qs,"buildTopLaneMap");function be(t){let e=Qs(t);return n=>e.get(n)??null}c(be,"createTopLaneResolver");function Mn(t){let e=t.layout.nodes??[],n=ue(e),o=e.filter(i=>n.isLane(i.id)),s=o.filter(i=>en(i)!==void 0);if(s.length>0&&s.length===o.length)return[...s].sort((i,f)=>(en(i)??0)-(en(f)??0)).map(i=>i.id);if(!n.hasPools)return[...new Set(o.map(i=>i.id))].reverse();let r=[];for(let i of e)i.parentId||(n.isPool(i.id)?r.push(...n.lanesByPool.get(i.id)??[]):n.isLane(i.id)&&r.push(i.id));return[...new Set(r)].reverse()}c(Mn,"buildTopLaneOrder");function To(t,e){let n=Mn(t);if(!e||e.length===0)return n;let o=new Set(n),s=new Set,r=[];for(let i of e)!o.has(i)||s.has(i)||(s.add(i),r.push(i));for(let i of n)s.has(i)||r.push(i);return r}c(To,"resolveTopLaneOrder");function tr(t,e){let n=Ee(t),o=e?.laneOf??(()=>null),s=e?.rankHint,{preds:r}=bn(n);for(let S of r.values())S.sort((b,L)=>b.localeCompare(L));let i=$e(n)??[...n.nodes].sort((S,b)=>S.localeCompare(b)),f=new Map;for(let[S,b]of i.entries())f.set(b,S);let u=new Map,p=new Map;for(let S of n.nodes)p.set(S,[]);for(let S of i){let b=(r.get(S)??[]).filter(L=>u.has(L));if(b.length>0){let L=er(S,b,{laneOf:o,rankHint:s,topoIndex:f});u.set(S,L),p.get(L).push(S)}else u.has(S)||u.set(S,null)}for(let S of n.nodes)u.has(S)||u.set(S,null);let y=new Set;for(let S of n.nodes)(u.get(S)??null)===null&&y.add(S);let a=[...y].sort((S,b)=>{let L=f.get(S)??0,w=f.get(b)??0;return L===w?S.localeCompare(b):L-w}),x=nr(n),m=new Map;for(let[S,b]of x.entries())m.set(S,[...b].sort((L,w)=>L.localeCompare(w)));let h=or(m),l=sr(m),g=new Map;for(let S of n.nodes)g.set(S,[]);for(let S of l)for(let b of S.nodes){let L=g.get(b);L?L.push(S.id):g.set(b,[S.id])}let I=[],M=[],v=new Set,O=c(S=>{if(!v.has(S)){v.add(S),I.push(S);for(let b of p.get(S)??[])O(b);M.push(S)}},"walk");for(let S of a)O(S);for(let S of i)O(S);return{parent:u,children:p,roots:a,componentOf:h,blocks:l,nodeBlocks:g,adjacency:m,preorder:I,postorder:M,topologicalOrder:i}}c(tr,"buildDrivingTree");function er(t,e,n){let o=n.laneOf(t);return[...e].sort((r,i)=>{let f=n.laneOf(r),u=n.laneOf(i),p=f!=null&&f===o,y=u!=null&&u===o;if(p!==y)return p?-1:1;let a=n.rankHint?.[r],x=n.rankHint?.[i];if(a!=null&&x!=null&&a!==x)return x-a;let m=n.topoIndex.get(r)??0,h=n.topoIndex.get(i)??0;return m!==h?m-h:r.localeCompare(i)})[0]}c(er,"chooseParent");function nr(t){let e=new Map;for(let n of t.nodes)e.set(n,new Set);for(let n of t.edges)e.get(n.src).add(n.dst),e.get(n.dst).add(n.src);return e}c(nr,"buildAdjacency");function or(t){let e=new Map,n=0;for(let o of t.keys()){if(e.has(o))continue;let s=[o];for(;s.length>0;){let r=s.pop();if(!e.has(r)){e.set(r,n);for(let i of t.get(r)??[])e.has(i)||s.push(i)}}n++}return e}c(or,"assignComponents");function sr(t){let e=new Map,n=new Map,o=[],s=[],r=0,i=c((f,u)=>{e.set(f,++r),n.set(f,r);for(let p of t.get(f)??[])p!==u&&(e.has(p)?(e.get(p)??0)<(e.get(f)??0)&&(o.push([f,p]),n.set(f,Math.min(n.get(f)??r,e.get(p)??r))):(o.push([f,p]),i(p,f),n.set(f,Math.min(n.get(f)??r,n.get(p)??r)),(n.get(p)??0)>=(e.get(f)??0)&&s.push(rr(f,p,o,s.length))))},"visit");for(let f of t.keys())e.has(f)||i(f,null);return s}c(sr,"computeBlocks");function rr(t,e,n,o){let s=[],r=new Set;for(;n.length>0;){let i=n.pop();if(s.push(i),r.add(i[0]),r.add(i[1]),i[0]===t&&i[1]===e||i[0]===e&&i[1]===t)break}return{id:o,edges:s,nodes:[...r]}}c(rr,"popBlock");function ir(t,e,n){let o=[...t.nodes],s=new Map;for(let[M,v]of o.entries())s.set(v,M);let r=o.length,i=new Array(r).fill(-1),f=new Array(r).fill(0),u=[],p=new Set;for(let M of o){let v=n.parent.get(M)??null,O=s.get(M);O!=null&&v==null&&(i[O]=-1,f[O]=0,p.has(M)||(p.add(M),u.push(M)))}for(;u.length>0;){let M=u.shift(),v=s.get(M);if(v==null)continue;let O=n.children.get(M)??[];for(let S of O){if(p.has(S))continue;let b=s.get(S);b!=null&&(i[b]=v,f[b]=f[v]+1,p.add(S),u.push(S))}}for(let M of o){if(p.has(M))continue;let v=s.get(M);v!=null&&(i[v]=-1,f[v]=0,p.add(M))}let y=Math.max(1,Math.ceil(Math.log2(Math.max(1,r)))+1),a=Array.from({length:y},()=>new Array(r).fill(-1));for(let M=0;M<r;M++)a[0][M]=i[M];for(let M=1;M<y;M++)for(let v=0;v<r;v++){let O=a[M-1][v];a[M][v]=O===-1?-1:a[M-1][O]}let x=c((M,v)=>{if(M===-1||v===-1)return-1;f[M]<f[v]&&([M,v]=[v,M]);let O=f[M]-f[v];for(let S=0;S<y;S++)if(O>>S&1&&(M=a[S][M],M===-1))return-1;if(M===v)return M;for(let S=y-1;S>=0;S--){let b=a[S][M],L=a[S][v];b===-1||L===-1||b!==L&&(M=b,v=L)}return a[0][M]},"lcaIndex"),m=Array.from({length:r},()=>new Map);for(let M of t.edges){let v=M.src,O=M.dst,S=e[v],b=e[O];if(S==null||b==null||(S>b&&([v,O]=[O,v],[S,b]=[b,S]),S==null||b==null||S===b))continue;let L=s.get(v),w=s.get(O);if(L==null||w==null)continue;let B=x(L,w);if(B===-1)continue;let P=m[B];for(let N=S;N<b;N++)P.set(N,(P.get(N)??0)+1)}let h=new Map,l=c((M,v)=>{if(v.size!==0)for(let[O,S]of v)M.set(O,(M.get(O)??0)+S)},"mergeInto"),g=new Set,I=c(M=>{let v=s.get(M);g.add(M);let O=v==null?void 0:m[v],S=O?new Map(O):new Map,b=n.children.get(M)??[];for(let L of b){let w=I(L),B=e[M];if(B!=null){let P=h.get(M);P||(P=new Map,h.set(M,P));let N=w.get(B)??0,F=e[L];F!=null&&F>B&&(N+=1),P.set(L,N)}l(S,w)}return S},"dfs");for(let M of n.roots)g.has(M)||I(M);for(let M of o)g.has(M)||I(M);return h}c(ir,"computeSubtreeCrossCounts");function cr(t,e,n){let o=new Map,s=c(r=>{let i=n[r]??0,f=[...e.get(r)??[]];f.sort(Oo(n));for(let u of f){s(u);let p=o.get(u);p!=null&&(i=Math.min(i,p))}o.set(r,i)},"annotate");for(let r of t)s(r);return o}c(cr,"annotateMinimumLayers");function Oo(t){return(e,n)=>{let o=t[e]??0,s=t[n]??0;return o===s?e.localeCompare(n):o-s}}c(Oo,"compareByRankThenId");function ar(t,e,n,o){let s=0;for(let u of e){let p=n[u]??0;p>s&&(s=p)}let r=Array.from({length:s+1},()=>[]),i=new Set,f=c(u=>{if(i.has(u))return;i.add(u);let p=n[u]??0;r[p]||(r[p]=[]),r[p].push(u);for(let y of o(u))f(y)},"emit");for(let u of t)f(u);for(let u of e)if(!i.has(u)){let p=n[u]??0;r[p]||(r[p]=[]),r[p].push(u),i.add(u)}return r}c(ar,"emitNodesInTreeOrder");function lr(t){let e=[];for(let n of t){let o=new Set,s=[];for(let r of n)o.has(r)||(o.add(r),s.push(r));e.push(s)}return e}c(lr,"deduplicateLayers");function fr(t,e,n,o){return s=>{let r=t.get(s)??[];if(r.length===0)return[];let i=e[s]??0,f=[],u=[],p=n.get(s);for(let y of r){let a=o.get(y)??i;a>i?f.push({child:y,min:a}):u.push(y)}return f.sort((y,a)=>y.min===a.min?y.child.localeCompare(a.child):y.min-a.min),u.sort((y,a)=>{let x=p?.get(y)??0,m=p?.get(a)??0;if(x!==m)return x-m;let h=o.get(y)??i,l=o.get(a)??i;return h!==l?h-l:y.localeCompare(a)}),[...f.map(y=>y.child),...u]}}c(fr,"createChildOrderer");function gn(t,e,n){let o=tr(t,{rankHint:e,laneOf:n}),{children:s,roots:r}=o;for(let a of t.nodes)s.has(a)||s.set(a,[]);let i=ir(t,e,o),f=[...r].sort(Oo(e)),u=cr(f,s,e),p=fr(s,e,i,u),y=ar(f,t.nodes,e,p);return y=lr(y),y}c(gn,"buildMultitreeLayerOrder");function dr(t,e,n){let o=new Set(t),s=new Set(e),r=Xe(e),i=[];for(let f of n)o.has(f.src)&&s.has(f.dst)&&i.push(r.get(f.dst));return Ro(i)}c(dr,"countCrossingsBetweenAdjacent");function no(t,e,n){let o=[];for(let r of e){let i=n[r.src],f=n[r.dst];if(i==null||f==null||i===f)continue;let u=r.src,p=r.dst,y=i,a=f;i>f&&(u=r.dst,p=r.src,y=f,a=i);for(let x=y;x<a;x++)o.push({id:`${r.id}@${x}`,src:u,dst:p,ref:r.ref})}let s=0;for(let r=0;r+1<t.length;r++)s+=dr(t[r],t[r+1],o);return s}c(no,"totalCrossings");function ur(t,e){let n={...e},{preds:o}=bn(t),s=be(t),r=gn(t,n,s),i=no(r,t.edges,n),f=hn.MAX_CROSSING_OPTIMIZATION_PASSES;for(let u=0;u<f;u++){let p=!1,y=[...t.nodes].sort((a,x)=>(n[x]??0)-(n[a]??0));for(let a of y){let x=n[a]??0;if(x===0)continue;let m=0;for(let I of o.get(a)??[])m=Math.max(m,(n[I]??0)+1);if(m>=x)continue;let h=x;n[a]=m;let l=gn(t,n,s),g=no(l,t.edges,n);g<i?(i=g,p=!0):n[a]=h}if(!p)break}return n}c(ur,"optimizeRanksByCrossings");function hr(t,e){let n=be(t),o=[...t.nodes].sort((s,r)=>(e[s]??0)-(e[r]??0)||s.localeCompare(r));for(let s of o){let r=n(s);if(!r)continue;let i=t.edges.filter(l=>l.src===s);if(i.length===0)continue;let f=!1,u=0;for(let l of i){let g=n(l.dst);g==null||g===r?f=!0:u++}if(u===0||f)continue;let p=0,y=!1;for(let l of t.edges){if(l.dst!==s)continue;let g=n(l.src);g&&(g===r?y=!0:p++)}if(p>0||!y)continue;let a=e[s]??0,x=a+u,m=0;for(let l of t.edges)l.dst===s&&(m=Math.max(m,(e[l.src]??0)+1));let h=Math.max(a,m,x);h!==a&&(e[s]=h)}}c(hr,"adjustCrossLaneSources");function gr(t,e){let n=Ee(t),o=$e(n)??[...n.nodes].sort(),s=e?.compactSingleInput??!1,r=be(n),i=Object.create(null);for(let u of o){let p=Lo(n,u),y=e?.ignoreCrossLaneEdges?p.filter(a=>{let x=r(a.src),m=r(u);return!x||!m?!0:x===m}):p;if(y.length===0)i[u]=0;else if(s&&y.length===1){let a=y[0].src,x=r(a),m=r(u);x!==m?i[u]=i[a]??0:i[u]=(i[a]??0)+1}else{let a=-1/0;for(let x of y)a=Math.max(a,(i[x.src]??0)+1);i[u]=a===-1/0?0:a}}return(e?.optimizeRanksByCrossings??!1)&&(i=ur(n,i)),e?.ignoreCrossLaneEdges&&hr(n,i),{layers:gn(n,i,r),rankOf:i,dummy:new Set}}c(gr,"assignLayers_LongestPath");function pr(t,e){let n=Ee(t),s={...gr(n,{compactSingleInput:e?.compactSingleInput,ignoreCrossLaneEdges:e?.ignoreCrossLaneEdges,optimizeRanksByCrossings:e?.optimizeRanksByCrossings}).rankOf},r=be(n),{preds:i,succs:f}=bn(n,h=>{if(e?.ignoreCrossLaneEdges){let l=r(h.src),g=r(h.dst);if(l&&g&&l!==g)return!1}return!0}),u=$e(n)??[...n.nodes],p=[...u].reverse(),y=c((h,l)=>{let g=0;for(let v of i.get(h)??[])g=Math.max(g,(s[v]??0)+1);let I=Number.POSITIVE_INFINITY,M=f.get(h)??[];return M.length>0&&(I=Math.min(...M.map(v=>(s[v]??0)-1))),Number.isFinite(I)||(I=Math.max(g,l)),Math.min(Math.max(l,g),I)},"clampFeasible"),a=hn.GRAVITY_ITERATIONS,x=c(h=>{let l=!1;for(let g of h){let I=i.get(g)??[],M=f.get(g)??[];if(I.length===0&&M.length===0)continue;let v=I.length>0?I.reduce((L,w)=>L+(s[w]??0)+1,0)/I.length:s[g]??0,O=M.length>0?M.reduce((L,w)=>L+(s[w]??0)-1,0)/M.length:s[g]??0,S=Math.round((v+O)/2),b=y(g,S);b!==s[g]&&(s[g]=b,l=!0)}return l},"relaxOrder");for(let h=0;h<a;h++){let l=x(u),g=x(p);if(!l&&!g)break}for(let h of u){let l=0;for(let g of i.get(h)??[])l=Math.max(l,(s[g]??0)+1);(s[h]??0)<l&&(s[h]=l)}for(let h of p){let l=f.get(h)??[];if(l.length>0){let g=Math.min(...l.map(I=>(s[I]??0)-1));(s[h]??0)>g&&(s[h]=g)}}return{layers:Ao(n,u,s),rankOf:s,dummy:new Set}}c(pr,"assignLayers_Gravity");function mr(t){let e=xn(t),n=wo(t),o=Eo(t,e),s=[];for(;o.length>0;){let r=[];for(let i of o){s.push(i);for(let f of n.get(i)??[])e.set(f,(e.get(f)??0)-1),(e.get(f)??0)===0&&r.push(f)}o=r.sort((i,f)=>i.localeCompare(f))}return s.length===t.nodes.length?s:null}c(mr,"topoSortByGenerationIfAcyclic");function yr(t,e){let n=Ee(t),o=e?.direction==="LR"?mr(n)??[...n.nodes].sort():$e(n)??[...n.nodes].sort(),s=be(n),r=c(y=>s(y)??y,"laneOf"),i=Object.create(null),f=new Map,u=c((y,a)=>e?.ignoreCrossLaneEdges??!0?r(y)===r(a)?1:0:1,"edgeWeight");for(let y of o){if(n.nodeById.get(y)?.isGroup)continue;let x=Lo(n,y),m=0;if(x.length>0)for(let I of x){let M=I.src,v=i[M]??0;m=Math.max(m,v+u(M,y))}let h=r(y),l=f.get(h)??0,g=Math.max(m,l);i[y]=g,f.set(h,g+1)}return{layers:Ao(n,o,i,{skipGroups:!0}),rankOf:i,dummy:new Set}}c(yr,"assignLayers_LaneAwareCompact");function xr(t,e){let n=Ee(e),{rankOf:o}=t,s=t.layers.map(m=>[...m]),r=new Set(t.dummy?[...t.dummy]:[]),i=0,f=new Map(n.nodeById),u=c(m=>{let h=`placeholder-${i++}`,l={id:h,isGroup:!1,isDummy:!0,width:0,height:0};for(f.set(h,l),r.add(h);s.length<=m;)s.push([]);return s[m].push(h),o[h]=m,h},"addDummyAt"),p=[...n.edges].sort((m,h)=>m.id===h.id?m.src===h.src?m.dst.localeCompare(h.dst):m.src.localeCompare(h.src):m.id.localeCompare(h.id)),y=[];for(let m of p){let h=o[m.src]??0,l=o[m.dst]??0;if(l-h<=1){y.push(m);continue}let g=m.src;for(let M=h+1,v=0;M<l;M++,v++){let O=u(M);y.push({id:`${m.id}#${v}`,src:g,dst:O,weight:m.weight,ref:m.ref}),g=O}let I=l-h-2;y.push({id:`${m.id}#${Math.max(I+1,0)}`,src:g,dst:m.dst,weight:m.weight,ref:m.ref})}let x={nodes:[...n.nodes,...[...r].filter(m=>!n.nodes.includes(m))],edges:y,layout:n.layout,nodeById:f};return{layering:{layers:s,rankOf:o,dummy:r},graphWithDummies:x}}c(xr,"makeProperLayering");function oo(t){let e=t.length;if(e===0)return Number.POSITIVE_INFINITY;let n=[...t].sort((o,s)=>o-s);return e%2===1?n[(e-1)/2]:.5*(n[e/2-1]+n[e/2])}c(oo,"median");function so(t){return t.length===0?Number.POSITIVE_INFINITY:t.reduce((n,o)=>n+o,0)/t.length}c(so,"barycenter");function br(t,e,n,o){let s=new Map;for(let r of t)s.set(r,[]);for(let r of n)o==="down"?e.has(r.src)&&s.has(r.dst)&&s.get(r.dst).push(e.get(r.src)):e.has(r.dst)&&s.has(r.src)&&s.get(r.src).push(e.get(r.dst));return s}c(br,"neighborPositionsFor");function Mr(t,e,n){let o=n.get(t)??0,s=n.get(e)??0;return o!==s?o-s:t.localeCompare(e)}c(Mr,"currentOrderTieBreak");function ro(t,e,n){let o=new Set(t),s=new Set(e),r=Xe(t),i=Xe(e),f=[];for(let p of n)o.has(p.src)&&s.has(p.dst)&&f.push({u:r.get(p.src),v:i.get(p.dst)});f.sort((p,y)=>p.u===y.u?p.v-y.v:p.u-y.u);let u=f.map(p=>p.v);return Ro(u)}c(ro,"countCrossingsBetweenAdjacent");function on(t,e,n){return[...t].sort((o,s)=>{let r=oo(e.get(o)??[]),i=oo(e.get(s)??[]);return r===i?Mr(o,s,n):isFinite(r)?isFinite(i)?r-i:-1:1})}c(on,"sortByHeuristic");function io(t,e,n,o,s,r){let i=Xe(t),f=Xe(e),u=br(e,i,n,o);if(!s||!r||r.length===0)return on(e,u,f);let p=new Map;for(let x of e){let m=s(x),h=p.get(m)??[];h.push(x),p.set(m,h)}let y=[];for(let x of r){let m=p.get(x);if(!m||m.length===0)continue;let h=on(m,u,f);y.push(...h)}let a=p.get(null);if(a&&a.length>0){let x=on(a,u,f);for(let m of x){let h=so(u.get(m)??[]),l=y.length;if(isFinite(h))for(let[g,I]of y.entries()){let M=so(u.get(I)??[]);if(h<M){l=g;break}}y.splice(l,0,m)}}return y}c(io,"reorderLayer");function co(t,e,n,o,s){let r=[...e],i=new Set(t),f=new Set(e),u=o?new Set(o):null,p=n.filter(l=>i.has(l.src)&&f.has(l.dst)),y=u?n.filter(l=>f.has(l.src)&&u.has(l.dst)):void 0,a=c(l=>{let g=ro(t,l,p);return y&&o&&(g+=ro(l,o,y)),g},"crossingScore"),x=s?new Map:null;if(s&&x)for(let l of e)x.set(l,s(l));let m=!0,h=a(r);for(;m;){m=!1;for(let l=0;l+1<r.length;l++){if(x){let M=x.get(r[l]),v=x.get(r[l+1]);if(M!==v)continue}let g=h;[r[l],r[l+1]]=[r[l+1],r[l]];let I=a(r);I<g?(h=I,m=!0):[r[l],r[l+1]]=[r[l+1],r[l]]}}return r}c(co,"transposeImprove");function Ir(t,e,n){let o=t.layers.map(f=>[...f]),s=e.edges,r=be(e),i=To(e,n?.laneOrder);for(let f=0;f<3;f++){for(let u=1;u<o.length;u++)o[u]=io(o[u-1],o[u],s,"down",r,i),o[u]=co(o[u-1],o[u],s,o[u+1],r);for(let u=o.length-2;u>=0;u--)o[u]=io(o[u+1],o[u],s,"up",r,i),o[u]=co(o[u+1],o[u],s,o[u-1],r)}return{layers:o}}c(Ir,"orderLayers");function Sr(t,e,n){let o=n?.layerGap??An.DEFAULT_LAYER_GAP,s=n?.nodeGap??An.DEFAULT_NODE_GAP,r=n?.laneGap??s*2,i=n?.direction??"TB",f=i==="LR"||i==="RL",u=Object.create(null),p=Object.create(null),y=new Map((e.layout?.nodes??[]).filter(_=>_.isEdgeLabel).map(_=>[_.id,_])),a=c(_=>y.get(_)??e.nodeById.get(_),"getNode"),x=c(_=>a(_)?.width??0,"getWidth"),m=c(_=>a(_)?.height??0,"getHeight"),h=be(e),l=new Map,g=c(_=>l.has(_)?l.get(_)??null:h(_),"topLaneOf"),I=To(e,n?.laneOrder),M=new Set;for(let _ of t.layers)for(let z of _)M.add(h(z));let v=M.has(null),O=I.filter(_=>M.has(_)),S=[...v?[null]:[],...O],b=t.layers,L=new Map;for(let[_,z]of b.entries())for(let tt of z)L.set(tt,_);let w=[],B=[],P=[];for(let _ of e.layout?.edges??[]){let z=_.labelNodeId,tt=_.start,q=_.end;if(!z||!y.has(z)||tt==null||q==null)continue;let st=L.get(tt),ut=L.get(q);if(st==null||ut==null){P.push({labelId:z,near:st==null?q:tt});continue}if(l.set(z,h(q)),st===ut){let xt=c(Ft=>S.indexOf(h(Ft)),"column");w.push({labelId:z,rank:ut,lane:h(q),side:tt!==q&&xt(tt)<xt(q)?"before":"after"});continue}let gt=Math.min(st,ut),pt=Math.max(st,ut);B.push({labelId:z,start:tt,end:q,gap:gt+Math.floor((pt-gt-1)/2),crossesLanes:h(tt)!==h(q)})}let N=b.map(_=>_.reduce((z,tt)=>Math.max(z,m(tt)),0));for(let{labelId:_,rank:z}of w)N[z]=Math.max(N[z],m(_));let F=b.map(()=>0);if(f)for(let _=0;_+1<b.length;_++){let z=b[_].reduce((pt,xt)=>Math.max(pt,x(xt)),0),tt=b[_+1].reduce((pt,xt)=>Math.max(pt,x(xt)),0),q=N[_],st=N[_+1],ut=q/2+st/2,gt=(z+tt)/2;F[_]=Math.max(0,gt-ut-o)}let V=f?vo(e.layout?.nodes??[]):1,Y=b.map(()=>0);for(let{labelId:_,gap:z}of B){let q=((f?x(_):m(_))+2*An.EDGE_LABEL_CLEARANCE)/V;Y[z]=Math.max(Y[z],q)}for(let[_,z]of Y.entries())F[_]+=z;let J=Object.create(null);for(let _ of O)J[_]=0;v&&(J.null=0);for(let _ of b){let z=Object.create(null),tt=[];for(let q of _){let st=g(q);st===null?tt.push(q):(z[st]||=[]).push(q)}for(let[q,st]of Object.entries(z)){let ut=st.reduce((gt,pt)=>gt+x(pt),0)+s*Math.max(0,st.length-1);J[q]=Math.max(J[q]??0,ut)}if(v&&tt.length){let q=tt.reduce((st,ut)=>st+x(ut),0)+s*Math.max(0,tt.length-1);J.null=Math.max(J.null??0,q)}}let it=new Map;for(let _ of B){let z=`${_.gap}:${g(_.labelId)}`,tt=it.get(z);tt?tt.push(_):it.set(z,[_])}for(let _ of it.values()){let z=g(_[0].labelId);if(z!==null){let tt=_.reduce((q,st,ut)=>q+x(st.labelId)+(ut>0?s:0),0);J[z]=Math.max(J[z]??0,tt)}}let dt=new Map;for(let{labelId:_,rank:z,lane:tt,side:q}of w){let st=`${z}:${tt}:${q}`;dt.set(st,(dt.get(st)??0)+s+x(_))}let At=c((_,z,tt)=>dt.get(`${_}:${z}:${tt}`)??0,"rowLabelSpan");for(let{rank:_,lane:z}of w){let tt=b[_].filter(ut=>g(ut)===z).reduce((ut,gt,pt)=>ut+x(gt)+(pt>0?s:0),0),q=Math.max(At(_,z,"before"),At(_,z,"after")),st=z??"null";J[st]=Math.max(J[st]??0,tt+2*q)}let te=new Map;{let _=S.map(q=>(q===null?J.null:J[q])??0),tt=-(_.reduce((q,st)=>q+st,0)+r*Math.max(0,S.length-1))/2;for(let q=0;q<S.length;q++){let st=S[q],ut=_[q]??0,gt=tt+ut/2;te.set(st,gt),tt+=ut,q<S.length-1&&(tt+=r)}}let $t=[],Vt=0;for(let[_,z]of b.entries()){let tt=N[_]??0,q=new Map;for(let ut of z){let gt=g(ut),pt=q.get(gt)??[];pt.push(ut),q.set(gt,pt)}for(let ut of S){let gt=q.get(ut)??[];if(gt.length===0)continue;let pt=te.get(ut);if(gt.length===1){let xt=gt[0];u[xt]=pt,p[xt]=Vt+tt/2}else{let xt=gt.map(me=>x(me)),Ft=xt.reduce((me,ye)=>me+ye,0)+s*(gt.length-1),Ae=pt-Ft/2;for(let[me,ye]of gt.entries()){let Re=xt[me];u[ye]=Ae+Re/2,p[ye]=Vt+tt/2,Ae+=Re+s}}}let st=o+(F[_]??0);$t[_]=Vt+tt+st/2,Vt+=tt+st}let Q=new Map;for(let{labelId:_,rank:z,lane:tt,side:q}of w){let st=`${z}:${tt}:${q}`;if(!Q.has(st)){let xt=b[z].filter(Ft=>g(Ft)===tt).map(Ft=>q==="before"?u[Ft]-x(Ft)/2:u[Ft]+x(Ft)/2);Q.set(st,q==="before"?Math.min(...xt):Math.max(...xt))}let ut=x(_),gt=Q.get(st)+(q==="before"?-1:1)*(s+ut/2);u[_]=gt,p[_]=p[b[z].find(pt=>g(pt)===tt)],Q.set(st,gt+(q==="before"?-1:1)*(ut/2))}for(let _ of it.values()){let z=_.map(({start:pt,end:xt,crossesLanes:Ft})=>Ft?u[xt]:((u[pt]??0)+(u[xt]??0))/2),tt=_.map((pt,xt)=>xt).sort((pt,xt)=>z[pt]-z[xt]||pt-xt),q=[],st=-1/0;for(let pt of tt){let xt=x(_[pt].labelId);q[pt]=Math.max(z[pt],st+s+xt/2),st=q[pt]+xt/2}let ut=c(pt=>pt.reduce((xt,Ft)=>xt+Ft,0)/pt.length,"mean"),gt=ut(z)-ut(q);for(let[pt,{labelId:xt,gap:Ft}]of _.entries())u[xt]=q[pt]+gt,p[xt]=$t[Ft]}for(let{labelId:_,near:z}of P)u[_]=u[z]??0,p[_]=p[z]??0;let lt=new Map;for(let _ of e.edges){let z=_.ref.id;lt.has(z)||lt.set(z,[]),lt.get(z).push(_)}for(let[,_]of lt){if(_.length===0)continue;let z=_[0].ref,tt=z.start,q=z.end;if(tt==null||q==null)continue;let st=Math.round(((u[tt]??0)+(u[q]??0))/2),ut=new Set;for(let gt of _)ut.add(gt.src),ut.add(gt.dst);for(let gt of ut){if(gt===tt||gt===q)continue;e.nodeById.get(gt)?.isDummy&&(u[gt]=st)}}return{x:u,y:p}}c(Sr,"assignCoordinates");var Cr=8;function vr(t){let e=2166136261;for(let n=0;n<t.length;n++)e^=t.charCodeAt(n),e=Math.imul(e,16777619);return e>>>0}c(vr,"hashString");function Lr(t){let e=t>>>0;return()=>{e+=1831565813;let n=e;return n=Math.imul(n^n>>>15,n|1),n^=n+Math.imul(n^n>>>7,n|61),((n^n>>>14)>>>0)/4294967296}}c(Lr,"mulberry32");function wr(t,e){let n=[...t],o=Lr(e);for(let s=n.length-1;s>0;s--){let r=Math.floor(o()*(s+1));[n[s],n[r]]=[n[r],n[s]]}return n}c(wr,"deterministicShuffle");function Er(t,e){let n=0;for(let[o,s]of t.entries())n+=Math.abs(o-(e.get(s)??o));return n}c(Er,"sourceDistance");function ao(t,e){let n=new Map;for(let[s,r]of t.entries())n.set(r,s);let o=0;for(let{a:s,b:r,weight:i}of e){let f=n.get(s),u=n.get(r);f==null||u==null||(o+=i*Math.abs(f-u))}return o}c(ao,"laneArrangementCost");function Ar(t){let e=Mn(t);if(e.length<2)return[];let n=new Map(e.map((r,i)=>[r,i])),o=be(t),s=new Map;for(let r of t.layout.edges??[]){if(r.isLayoutOnly)continue;let i=typeof r.start=="string"?r.start:void 0,f=typeof r.end=="string"?r.end:void 0;if(!i||!f||!t.nodeById.has(i)||!t.nodeById.has(f))continue;let u=o(i),p=o(f);if(!u||!p||u===p)continue;let y=n.get(u),a=n.get(p);if(y==null||a==null)continue;let[x,m]=y<=a?[u,p]:[p,u],h=`${x}\0${m}`,l=s.get(h);l?l.weight++:s.set(h,{a:x,b:m,weight:1})}return[...s.values()]}c(Ar,"buildWeightedLaneEdges");function lo(t,e,n){let o=[...t],s=ao(o,e),r=!0,i=0,f=Math.max(1,o.length);for(;r&&i<f;){r=!1,i++;for(let u=0;u+1<o.length;u++){[o[u],o[u+1]]=[o[u+1],o[u]];let p=ao(o,e);p<s?(s=p,r=!0):[o[u],o[u+1]]=[o[u+1],o[u]]}}return{order:o,cost:s,sourceDistance:Er(o,n)}}c(lo,"greedySwitch");function Rr(t,e){return t.cost!==e.cost?t.cost<e.cost:t.sourceDistance<e.sourceDistance}c(Rr,"isBetterCandidate");function Tr(t,e,n){let o=[...e].sort((s,r)=>s.a===r.a?s.b.localeCompare(r.b):s.a.localeCompare(r.a)).map(({a:s,b:r,weight:i})=>`${s}:${r}:${i}`).join("|");return vr(`${t.join("|")}#${o}#${n}`)}c(Tr,"seedForRestart");function Or(t,e={}){let n=Mn(t);if(n.length<2)return n;let o=Ar(t);if(o.length===0)return n;let s=new Map(n.map((f,u)=>[f,u])),r=lo(n,o,s),i=Math.max(0,e.restarts??Cr);for(let f=0;f<i;f++){let u=Tr(n,o,f),p=wr(n,u),y=lo(p,o,s);Rr(y,r)&&(r=y)}return r.order}c(Or,"optimizeTopLaneOrder");function Nr(t,e){let n=e?.ignoreCrossLaneEdges??!0,o=e?.optimizeRanksByCrossings??!0,s=Ee(t),r=e?.automaticLaneOrdering?Or(s,{restarts:Cr}):void 0,i=Js(s),f=i.acyclic,u=n?yr(f,{compactSingleInput:e?.compactSingleInput??hn.DEFAULT_COMPACT_SINGLE_INPUT,ignoreCrossLaneEdges:!0,direction:e?.direction}):pr(f,{compactSingleInput:e?.compactSingleInput??hn.DEFAULT_COMPACT_SINGLE_INPUT,ignoreCrossLaneEdges:!1,optimizeRanksByCrossings:o}),{layering:p,graphWithDummies:y}=xr(u,f),a=Ir(p,y,{laneOrder:r}),x=Sr(a,y,{layerGap:e?.layerGap,nodeGap:e?.nodeGap,direction:e?.direction,laneOrder:r});return{acyclic:f,reversed:i.reversed,layering:p,ordered:a,coordinates:x}}c(Nr,"sugiyamaLayout");var mt=si.EPSILON,ai=8,Oe=15,He=15,tn=25,le=20,On=10;function fo(t,e,n){let o=t.x??0,s=t.y??0,r=e.x-o,i=e.y-s,f=Math.abs(r),u=Math.abs(i);return f<mt&&u<mt?n:u>mt&&u*3>=f?i>0?"bottom":"top":f>mt?r>0?"right":"left":n}c(fo,"chooseOrthogonalSide");var Vo=c(t=>typeof t=="number"&&Number.isFinite(t)&&t>0,"isDrawableSize");function sn(t,e){let n=t.metadata?.drawnExtent;return{w:Vo(n?.width)?n.width:t.width??e,h:Vo(n?.height)?n.height:t.height??e}}c(sn,"drawnSize");function uo(t,e){return Math.abs(t.to-e.from)<mt||Math.abs(t.to-e.to)<mt?t.to:t.from}c(uo,"sharedLineEndpointCoord");function Ne(t,e){return t.orient==="vertical"?{x:t.coord,y:e}:{x:e,y:t.coord}}c(Ne,"pointOnLine");function Br(t,e){let n=t.nodes??[],o=t.edges??[],s=[];for(let d of o)d.isLayoutOnly||s.push({...d,__originalEdge:d});let r=new Map,i=new Map,f=[],u=e==="LR";for(let d of n)r.set(d.id,d);let p=ue(n),y=n.filter(d=>p.isLane(d.id));for(let d of y){let C={id:d.id},E=c(A=>{i.set(A.id,C),n.filter(R=>R.parentId===A.id).forEach(E)},"assignLane");E(d)}let a=ze(n),x=n.filter(d=>!d.isGroup&&!d.isEdgeLabel&&!a.has(d.id)).map(d=>{let C=d.width??10,E=d.height??10,A=d.x??0,R=d.y??0,H=ai;return{nodeId:d.id,minX:A-C/2-H,maxX:A+C/2+H,minY:R-E/2-H,maxY:R+E/2+H,visualXHalfExtent:u?E/2+H:C/2+H}}),m=c((d,C,E,A)=>{let R=f.find(H=>H.orientation===d&&Math.abs(H.coord-C)<1);return R||(R={id:`pipe-${d}-${C.toFixed(0)}`,orientation:d,coord:C,spanMin:E,spanMax:A,tracks:[]},f.push(R)),R.spanMin=Math.min(R.spanMin,E),R.spanMax=Math.max(R.spanMax,A),R},"getOrAddPipe"),h=c((d,C)=>{let{w:E,h:A}=sn(d,10),R=d.x??0,H=d.y??0;switch(C){case"top":return{x:R,y:H-A/2};case"bottom":return{x:R,y:H+A/2};case"left":return{x:R-E/2,y:H};case"right":return{x:R+E/2,y:H}}},"portForSide"),l=c((d,C,E)=>h(d,fo(d,C,E?"bottom":"top")),"getOrthogonalPort"),g=[],I=[],M=new Set,v=1e3,O=c((d,C,E)=>{if(g.length===0)return 0;let A=Math.abs(C.y-E.y)<mt,R=Math.abs(C.x-E.x)<mt;if(!A&&!R)return 0;let H=0;if(A){let Z=C.y,at=Math.min(C.x,E.x)-mt,W=Math.max(C.x,E.x)+mt;if(W<=at)return 0;for(let U of g)U.edgeIndex===d||U.orientation!=="vertical"||U.pipe.coord<at||U.pipe.coord>W||U.from-mt<=Z&&U.to+mt>=Z&&(H+=v)}else if(R){let Z=C.x,at=Math.min(C.y,E.y)-mt,W=Math.max(C.y,E.y)+mt;if(W<=at)return 0;for(let U of g)U.edgeIndex===d||U.orientation!=="horizontal"||U.pipe.coord<at||U.pipe.coord>W||U.from-mt<=Z&&U.to+mt>=Z&&(H+=v)}return H},"crossingPenalty"),S=s.map((d,C)=>{if(!d.start||!d.end)return{idx:C,crossLane:0,dx:0,dy:0};let E=r.get(d.start),A=r.get(d.end),R=i.get(d.start),H=i.get(d.end),Z=R&&H&&R.id!==H.id?1:0,at=E&&A?Math.abs((A.x??0)-(E.x??0)):0,W=E&&A?Math.abs((A.y??0)-(E.y??0)):0;return{idx:C,crossLane:Z,dx:at,dy:W}}).sort((d,C)=>{if(d.crossLane!==C.crossLane)return C.crossLane-d.crossLane;let E=d.dx+d.dy,A=C.dx+C.dy;return Math.abs(E-A)>1?E-A:d.idx-C.idx}).map(d=>d.idx),b=c((d,C,E,A)=>{let R=Math.min(d.x,C.x),H=Math.max(d.x,C.x),Z=Math.min(d.y,C.y),at=Math.max(d.y,C.y);return!!x.find(U=>E&&U.nodeId===E||A&&U.nodeId===A?!1:Math.abs(d.x-C.x)>mt?U.minY<d.y&&U.maxY>d.y&&U.maxX>R&&U.minX<H:U.minX<d.x&&U.maxX>d.x&&U.maxY>Z&&U.minY<at)},"isSegmentBlocked"),L=new Map,w=new Map;for(let d of s)!d.start||!d.end||d.start===d.end||(w.set(d.start,(w.get(d.start)??0)+1),w.set(d.end,(w.get(d.end)??0)+1));let B=c((d,C)=>fo(d,C,"bottom"),"determineSide"),P=new Map;for(let[d,C]of s.entries()){if(!C.start||!C.end||C.start===C.end||C.points&&C.points.length>0)continue;let E=r.get(C.start),A=r.get(C.end);if(!E||!A)continue;let R=(A.x??0)-(E.x??0),H=(A.y??0)-(E.y??0);P.set(d,{edgeIdx:d,srcId:C.start,dstId:C.end,srcSide:B(E,{x:A.x??0,y:A.y??0}),dstSide:B(A,{x:E.x??0,y:E.y??0}),absDx:Math.abs(R),absDy:Math.abs(H),dxSign:Math.sign(R),dySign:Math.sign(H)})}let N=c(d=>d.srcSide==="top"||d.srcSide==="bottom"?d.absDx===0?1/0:d.absDy/d.absDx:d.absDy===0?1/0:d.absDx/d.absDy,"preferenceStrength"),F=c(d=>d.srcSide==="top"||d.srcSide==="bottom"?d.dxSign===0?["right","left"]:[d.dxSign>0?"right":"left"]:d.dySign===0?["bottom","top"]:[d.dySign>0?"bottom":"top"],"secondarySides"),V=c(d=>F(d)[0],"secondarySide"),Y=new Map;for(let d of P.values()){let C=`${d.srcId}:${d.srcSide}`;Y.has(C)||Y.set(C,[]),Y.get(C).push(d)}let J=new Map,it=c((d,C)=>`${d}:${C}`,"loadKey");for(let d of P.values())J.set(it(d.srcId,d.srcSide),(J.get(it(d.srcId,d.srcSide))??0)+1),J.set(it(d.dstId,d.dstSide),(J.get(it(d.dstId,d.dstSide))??0)+1);for(let d of Y.values())if(!(d.length<2)){d.sort((C,E)=>{let A=N(C),R=N(E);return Math.abs(A-R)>1e-9?R-A:C.edgeIdx-E.edgeIdx});for(let C=1;C<d.length;C++){let E=d[C],A=J.get(it(E.srcId,E.srcSide))??0,R=F(E).reduce((Z,at)=>(J.get(it(E.srcId,at))??0)<(J.get(it(E.srcId,Z))??0)?at:Z),H=J.get(it(E.srcId,R))??0;H>=A||(J.set(it(E.srcId,E.srcSide),A-1),J.set(it(E.srcId,R),H+1),E.srcSide=R)}}let dt=c(d=>{let C=d?.shape;return C==="question"||C==="diamond"},"isDiamondNode"),At=new Map;for(let d of P.values())At.has(d.dstId)||At.set(d.dstId,new Set),At.get(d.dstId).add(d.dstSide);for(let d of P.values()){if(!dt(r.get(d.srcId)))continue;let C=At.get(d.srcId);if(!C?.has(d.srcSide))continue;let E=V(d);if(C.has(E)||(J.get(it(d.srcId,E))??0)>0)continue;let A=J.get(it(d.srcId,d.srcSide))??0;J.set(it(d.srcId,d.srcSide),Math.max(0,A-1)),J.set(it(d.srcId,E),1),d.srcSide=E}let te=c(d=>{let C=d?.shape;return C==="hexagon"||C==="notch-pent"},"hasVertexFaces"),$t=new Map;for(let d of P.values())$t.has(d.srcId)||$t.set(d.srcId,new Set),$t.get(d.srcId).add(d.srcSide);let Vt=c(d=>d.dstSide==="top"||d.dstSide==="bottom"?d.dxSign>=0?"left":"right":d.dySign>=0?"top":"bottom","secondaryDstSide");for(let d of P.values()){if(!te(r.get(d.dstId)))continue;let C=$t.get(d.dstId);if(!C?.has(d.dstSide))continue;let E=Vt(d);if(C.has(E)||(J.get(it(d.dstId,E))??0)>0)continue;let A=J.get(it(d.dstId,d.dstSide))??0;J.set(it(d.dstId,d.dstSide),Math.max(0,A-1)),J.set(it(d.dstId,E),1),d.dstSide=E;let R=d.dySign>=0?"bottom":"top";if((E==="top"||E==="bottom")&&At.get(d.srcId)?.has(d.srcSide)&&!At.get(d.srcId)?.has(R)&&(J.get(it(d.srcId,R))??0)===0){let H=J.get(it(d.srcId,d.srcSide))??0;J.set(it(d.srcId,d.srcSide),Math.max(0,H-1)),J.set(it(d.srcId,R),1),d.srcSide=R}}for(let d of P.values()){let{edgeIdx:C,srcId:E,dstId:A,srcSide:R,dstSide:H}=d,Z=r.get(E),at=r.get(A),W=`${E}:${R}:src`,U=R==="top"||R==="bottom"?at.x??0:at.y??0;L.has(W)||L.set(W,[]),L.get(W).push({edgeIdx:C,oppositeCoord:U});let Lt=`${A}:${H}:dst`,wt=H==="top"||H==="bottom"?Z.x??0:Z.y??0;L.has(Lt)||L.set(Lt,[]),L.get(Lt).push({edgeIdx:C,oppositeCoord:wt})}let Q=new Map,lt=8;for(let[d,C]of L){if(C.length<2)continue;C.sort((Dt,re)=>Dt.oppositeCoord-re.oppositeCoord);let E=d.split(":"),A=E.slice(0,-2).join(":"),R=E[E.length-2],H=E[E.length-1],Z=r.get(A);if(!Z)continue;let at=R==="left"||R==="right",W=sn(Z,10),U=at?W.h:W.w,Lt=Z.shape,Rt=Lt==="question"||Lt==="diamond"?U*.3:U,bt=Math.min(20,Rt/(C.length-1),Math.max(lt,Rt/(C.length+1))),ee=-(bt*(C.length-1))/2;for(let[Dt,re]of C.entries()){let Me=ee+Dt*bt,In=`${re.edgeIdx}:${H}`;Q.set(In,Me)}}let _=c(d=>!!s[d]?.labelNodeId,"edgeHasLabelNode"),z=c((d,C)=>d?(L.get(`${d}:${C}:src`)??[]).some(({edgeIdx:E})=>_(E))||(L.get(`${d}:${C}:dst`)??[]).some(({edgeIdx:E})=>_(E)):!1,"faceHasLabelNode"),tt=c((d,C,E)=>C==="top"||C==="bottom"?{x:d.x+E,y:d.y}:{x:d.x,y:d.y+E},"applyPortOffset"),q=c((d,C,E)=>{let A=P.get(d),R={x:E.x??0,y:E.y??0},H={x:C.x??0,y:C.y??0},Z=A?.srcSide??B(C,R),at=A?.dstSide??B(E,H),W=A?h(C,A.srcSide):l(C,R,!0),U=A?h(E,A.dstSide):l(E,H,!1),Lt=Q.get(`${d}:src`),wt=Q.get(`${d}:dst`);return Lt!==void 0&&(W=tt(W,Z,Lt)),wt!==void 0&&(U=tt(U,at,wt)),{pSrcPort:W,pDstPort:U,srcSide:Z,dstSide:at}},"portsForEdge");for(let d of S){let C=s[d];if(I[d]=[],!C.start||!C.end||C.points&&C.points.length>0||C.start===C.end)continue;let E=r.get(C.start),A=r.get(C.end);if(!E||!A)continue;let{pSrcPort:R,pDstPort:H,srcSide:Z,dstSide:at}=q(d,E,A),W={...R},U={...H},Lt=Z==="top"||Z==="bottom",wt=at==="top"||at==="bottom";if(Lt){let X=R.y>(E.y??0);W.y=X?R.y+le:R.y-le}else{let X=R.x>(E.x??0);W.x=X?R.x+le:R.x-le}if(wt){let X=H.y>(A.y??0);U.y=X?H.y+le:H.y-le}else{let X=H.x>(A.x??0);U.x=X?H.x+le:H.x-le}let Rt=c((X,$)=>{for(let ot of x)if(!$.includes(ot.nodeId)&&X.x>ot.minX&&X.x<ot.maxX&&X.y>ot.minY&&X.y<ot.maxY)return{inside:!0,obstacle:ot};return{inside:!1}},"isPointInObstacle"),rt=c((X,$,ot,Mt,Bt)=>{if(Bt){let Gt=X.y>($.y??0);return{x:(ot.x??0)>=X.x?Mt.maxX+Oe:Mt.minX-Oe,y:Gt?Mt.maxY+He:Mt.minY-He,leavesPositiveSide:Gt}}let Et=X.x>($.x??0),kt=(ot.y??0)>=X.y;return{x:Et?Mt.maxX+Oe:Mt.minX-Oe,y:kt?Mt.maxY+He:Mt.minY-He,leavesPositiveSide:Et}},"obstacleDetour"),bt=[],Pt=[C.start,C.end],ee=Rt(W,Pt);if(ee.inside&&ee.obstacle){let X=ee.obstacle;if(Lt){let $=rt(R,E,A,X,!0);W.x=$.x,W.y=$.y;let ot=$.leavesPositiveSide?Math.min(X.minY-2,R.y+le):Math.max(X.maxY+2,R.y-le);bt=[{x:R.x,y:ot},{x:$.x,y:ot},{x:$.x,y:$.y}]}else{let $=rt(R,E,A,X,!1),ot=$.leavesPositiveSide?Math.min(X.minX-2,R.x+le):Math.max(X.maxX+2,R.x-le);W.x=$.x,W.y=$.y,bt=[{x:ot,y:R.y},{x:ot,y:$.y},{x:$.x,y:$.y}]}}let Dt=[],re=Rt(U,Pt);if(re.inside&&re.obstacle){let X=re.obstacle;if(wt){let $=rt(H,A,E,X,!0);U.x=$.x,U.y=$.y,Dt=[{x:$.x,y:$.y},{x:H.x,y:$.y}]}else{let $=rt(H,A,E,X,!1);U.x=$.x,U.y=$.y,Dt=[{x:$.x,y:$.y},{x:$.x,y:H.y}]}}if(bt.length===0&&Dt.length===0){let X=Oe,$=Math.abs(W.x-U.x)<X,ot=Math.abs(W.y-U.y)<X,Mt=Q.get(`${d}:src`)!==void 0||Q.get(`${d}:dst`)!==void 0,Bt=(L.get(`${C.start??""}:${Z}:src`)?.length??0)+(L.get(`${C.start??""}:${Z}:dst`)?.length??0),Et=(L.get(`${C.end??""}:${at}:src`)?.length??0)+(L.get(`${C.end??""}:${at}:dst`)?.length??0),kt=Bt>1||Et>1,Gt=w.get(C.start??"")??0,St=w.get(C.end??"")??0,qt=Bt>1&&z(C.start,Z)||Et>1&&z(C.end,at),ae=Bt<=1||Gt<=2,zt=Et<=1||St<=2;if(($||ot)&&!Mt&&(!kt||kt&&!qt&&ae&&zt)&&!b(R,H,C.start,C.end)){C.points=[{...R},{...W},{...U},{...H}],M.add(d);let Tt=ot?"horizontal":"vertical",Jt=ot?R.y:R.x,Ot=ot?Math.min(R.x,H.x):Math.min(R.y,H.y),Nt=ot?Math.max(R.x,H.x):Math.max(R.y,H.y),ne={id:`fast-path-${Tt}-${Jt.toFixed(0)}-${d}`,orientation:Tt,coord:Jt,spanMin:Ot,spanMax:Nt,tracks:[]};g.push({edgeIndex:d,segmentIndex:0,orientation:Tt,pipe:ne,trackIndex:0,from:Ot,to:Nt});continue}}let Me=m("vertical",W.x,W.y,W.y);W.x=Me.coord;let In=m("vertical",U.x,U.y,U.y);U.x=In.coord;let Ie=Math.min(W.x,U.x)-50,Se=Math.max(W.x,U.x)+50,Fe=Math.min(W.y,U.y)-50,Pe=Math.max(W.y,U.y)+50;for(let X of x){let $=Math.min(W.x,U.x),ot=Math.max(W.x,U.x),Mt=Math.min(W.y,U.y),Bt=Math.max(W.y,U.y);X.minX<ot&&X.maxX>$&&X.minY<Bt&&X.maxY>Mt&&(Ie=Math.min(Ie,X.minX-tn),Se=Math.max(Se,X.maxX+tn),Fe=Math.min(Fe,X.minY-tn),Pe=Math.max(Pe,X.maxY+tn))}for(let X of x){if(X.maxX<Ie||X.minX>Se||X.maxY<Fe||X.minY>Pe)continue;let $=Oe;m("horizontal",X.minY-$,Ie,Se),m("horizontal",X.maxY+$,Ie,Se);let ot=He;m("vertical",X.minX-ot,Fe,Pe),m("vertical",X.maxX+ot,Fe,Pe)}m("horizontal",W.y,Ie,Se),m("horizontal",U.y,Ie,Se);let _r=f.filter(X=>X.orientation==="horizontal"&&X.coord>=Fe&&X.coord<=Pe),Hr=f.filter(X=>X.orientation==="vertical"&&X.coord>=Ie&&X.coord<=Se),Ue=c((X,$)=>`${X.toFixed(1)},${$.toFixed(1)}`,"getKey"),je=Ue(W.x,W.y),No=Ue(U.x,U.y),We=new Map,Sn=new Map,Cn=new Map,Ke=new Set,Te=[];We.set(je,0),Cn.set(je,"n"),Te.push({key:je,f:Math.hypot(U.x-W.x,U.y-W.y),pt:W}),Ke.add(je);let Wt=[],Ce=c((X,$)=>b(X,$,C.start,C.end),"checkSegmentBlocked"),vn={x:U.x,y:W.y},Dr=Ce(W,vn),Xr=Ce(vn,U),Gr=Dr||Xr,Ln={x:W.x,y:U.y},Yr=Ce(W,Ln),zr=Ce(Ln,U);if(Gr?Yr||zr||(Math.abs(W.x-U.x)<mt?Wt=[W,U]:Wt=[W,Ln,U]):Math.abs(W.y-U.y)<mt||Math.abs(W.x-U.x)<mt?Wt=[W,U]:Wt=[W,vn,U],Wt.length===0)for(;Te.length>0;){Te.sort((St,qt)=>St.f-qt.f);let X=Te.shift();if(Ke.delete(X.key),X.key===No){let St=No,qt=U;for(Wt=[qt];Sn.has(St);){let ae=Sn.get(St);Wt.unshift(ae),qt=ae,St=Ue(ae.x,ae.y)}break}let $=X.pt.x,ot=X.pt.y,Mt=Hr.sort((St,qt)=>St.coord-qt.coord),Bt=Mt.findIndex(St=>Math.abs(St.coord-$)<1),Et=_r.sort((St,qt)=>St.coord-qt.coord),kt=Et.findIndex(St=>Math.abs(St.coord-ot)<1),Gt=[];Bt>0&&Gt.push({x:Mt[Bt-1].coord,y:ot}),Bt>=0&&Bt<Mt.length-1&&Gt.push({x:Mt[Bt+1].coord,y:ot}),kt>0&&Gt.push({x:$,y:Et[kt-1].coord}),kt>=0&&kt<Et.length-1&&Gt.push({x:$,y:Et[kt+1].coord});for(let St of Gt){let qt=Math.min($,St.x),ae=Math.max($,St.x),zt=Math.min(ot,St.y),Zt=Math.max(ot,St.y);if(x.some(ie=>ie.nodeId===C.start||ie.nodeId===C.end?!1:qt!==ae?ie.minY<ot&&ie.maxY>ot&&ie.maxX>qt&&ie.minX<ae:ie.minX<$&&ie.maxX>$&&ie.maxY>zt&&ie.minY<Zt))continue;let Tt=Ue(St.x,St.y),Jt=Math.abs(St.x-$)+Math.abs(St.y-ot),Ot=O(d,X.pt,St),Nt=0,ne=U.x-W.x,ke=U.y-W.y,qe=St.x-$,wn=St.y-ot;(ke>10&&wn<-5||ke<-10&&wn>5)&&(Nt=Math.abs(wn)*100),(ne>10&&qe<-5||ne<-10&&qe>5)&&(Nt+=Math.abs(qe)*50);let Bo=0,Fo=Cn.get(X.key)??"n",Po=Math.abs(qe)>mt?"h":"v";Fo!=="n"&&Fo!==Po&&(Bo=50);let $r=Jt+Ot+Nt+Bo,Ze=(We.get(X.key)??1/0)+$r,ko=Math.abs(U.x-St.x)+Math.abs(U.y-St.y);if(Ze<(We.get(Tt)??1/0))if(Sn.set(Tt,X.pt),We.set(Tt,Ze),Cn.set(Tt,Po),!Ke.has(Tt))Te.push({key:Tt,f:Ze+ko,pt:St}),Ke.add(Tt);else{let ie=Te.findIndex(Vr=>Vr.key===Tt);ie!==-1&&(Te[ie].f=Ze+ko)}}}if(Wt.length===0&&(Wt=[W,{x:W.x,y:U.y},U]),Wt.length>4){let X=Wt[0],$=Wt[Wt.length-1],ot=Math.min(X.x,$.x),Mt=Math.max(X.x,$.x),Bt=Math.min(X.y,$.y),Et=Math.max(X.y,$.y);for(let zt of Wt)ot=Math.min(ot,zt.x),Mt=Math.max(Mt,zt.x),Bt=Math.min(Bt,zt.y),Et=Math.max(Et,zt.y);let kt=Mt>Math.max(X.x,$.x),Gt=ot<Math.min(X.x,$.x);if(u){let zt=He;if(kt){let Zt=Math.max(X.x,$.x),Yt=Math.min(X.y,$.y),Tt=Math.max(X.y,$.y),Jt=x.filter(Ot=>Ot.minX<Zt&&Ot.maxX>Zt&&Ot.minY<Tt&&Ot.maxY>Yt);if(Jt.length>0){let Ot=Math.max(X.x,$.x);for(let Nt of Jt){let ne=(Nt.minX+Nt.maxX)/2;if(Nt.visualXHalfExtent===void 0||isNaN(Nt.visualXHalfExtent))continue;let ke=ne+Nt.visualXHalfExtent+zt;Ot=Math.max(Ot,ke)}isNaN(Ot)||(Mt=Ot)}}if(Gt){let Zt=x.filter(Yt=>Yt.minX<Math.min(X.x,$.x)+zt&&Yt.minY<Math.max(X.y,$.y)&&Yt.maxY>Math.min(X.y,$.y));if(Zt.length>0){let Yt=Math.min(X.x,$.x);for(let Tt of Zt){let Ot=(Tt.minX+Tt.maxX)/2-Tt.visualXHalfExtent-zt;Yt=Math.min(Yt,Ot)}ot=Yt}}}let St=c(zt=>{let Zt=$.y>X.y,Yt=x.filter(Ot=>{let Nt=Math.min(X.x,$.x)<Ot.maxX&&Math.max(X.x,$.x)>Ot.minX,ne=Math.min(X.y,$.y)<Ot.maxY&&Math.max(X.y,$.y)>Ot.minY;return Nt&&ne}),Tt=Yt;if(u&&Yt.length>0){let Ot=Yt.filter(Nt=>Nt.minX<zt&&Nt.maxX>zt);Ot.length>0&&(Tt=Ot)}if(Tt.length===0)return $.y;let Jt=Oe;if(Zt){let Nt=Math.max(...Tt.map(ne=>ne.maxY))+Jt;if(Nt<$.y-mt)return Nt}else{let Nt=Math.min(...Tt.map(ne=>ne.minY))-Jt;if(Nt>$.y+mt)return Nt}return $.y},"findBestReturnY"),qt=c(zt=>{let Zt=St(zt),Yt={x:zt,y:X.y},Tt={x:zt,y:Zt},Jt={x:$.x,y:Zt},Ot=Ce(X,Yt),Nt=Ce(Yt,Tt),ne=Ce(Tt,Jt),ke=Zt!==$.y?Ce(Jt,$):!1;return!Ot&&!Nt&&!ne&&!ke?Math.abs(Zt-$.y)<mt?[X,Yt,Tt,$]:[X,Yt,Tt,Jt,$]:null},"trySimplifyWithDetourX"),ae=kt&&!Gt?qt(Mt):Gt&&!kt?qt(ot):null;ae&&(Wt=ae)}let Kt=[R,...bt,...Wt,...Dt.reverse(),H];if(Kt.length>=3){let X=Kt[Kt.length-1],$=Kt[Kt.length-2],ot=Kt[Kt.length-3],Mt=Math.abs(ot.y-$.y)<mt&&Math.abs($.y-X.y)<mt,Bt=Math.abs(ot.x-$.x)<mt&&Math.abs($.x-X.x)<mt;if(Mt){let Et=Math.sign($.x-ot.x),kt=Math.sign(X.x-ot.x);Et!==0&&Et===kt&&Math.abs($.x-ot.x)>Math.abs(X.x-ot.x)&&Kt.splice(-2,1)}else if(Bt){let Et=Math.sign($.y-ot.y),kt=Math.sign(X.y-ot.y);Et!==0&&Et===kt&&Math.abs($.y-ot.y)>Math.abs(X.y-ot.y)&&Kt.splice(-2,1)}}let he=[Kt[0]];for(let X=1;X<Kt.length-1;X++){if(X===1){he.push(Kt[X]);continue}let $=he[he.length-1],ot=Kt[X],Mt=Kt[X+1];if(Math.abs($.y-ot.y)<mt&&Math.abs(ot.y-Mt.y)<mt){let Bt=ot.x>$.x,Et=Mt.x>ot.x;if(Bt!==Et){he.push(ot);continue}continue}if(Math.abs($.x-ot.x)<mt&&Math.abs(ot.x-Mt.x)<mt){let Bt=ot.y>$.y,Et=Mt.y>ot.y;if(Bt!==Et){he.push(ot);continue}continue}he.push(ot)}he.push(Kt[Kt.length-1]);for(let X=0;X<he.length-1;X++){let $=he[X],ot=he[X+1],Mt=Math.abs($.x-ot.x)<mt?"vertical":"horizontal",Bt=Mt==="vertical"?$.x:$.y,Et=Mt==="vertical"?Math.min($.y,ot.y):Math.min($.x,ot.x),kt=Mt==="vertical"?Math.max($.y,ot.y):Math.max($.x,ot.x),Gt=m(Mt,Bt,Et,kt),St={edgeIndex:d,segmentIndex:X,orientation:Mt,pipe:Gt,trackIndex:0,from:Et,to:kt};g.push(St),I[d].push(g.length-1),Gt.tracks[0]||(Gt.tracks[0]={index:0,coord:Gt.coord,segments:[]}),Gt.tracks[0].segments.push({edgeIndex:d,segmentIndex:X,from:Et,to:kt})}}let st=c((d,C)=>d.from<C.to&&C.from<d.to,"segmentsOverlap"),ut=c((d,C,E,A)=>{let R=!A.segments.some(Z=>(Z.edgeIndex!==C.edgeIndex||Z.segmentIndex!==C.segmentIndex)&&st(Z,d)),H=!E.segments.some(Z=>(Z.edgeIndex!==d.edgeIndex||Z.segmentIndex!==d.segmentIndex)&&st(Z,C));return R&&H?(d.trackIndex=A.index,C.trackIndex=E.index,E.segments=[...E.segments.filter(Z=>Z.edgeIndex!==d.edgeIndex||Z.segmentIndex!==d.segmentIndex),{edgeIndex:C.edgeIndex,segmentIndex:C.segmentIndex,from:C.from,to:C.to}],A.segments=[...A.segments.filter(Z=>Z.edgeIndex!==C.edgeIndex||Z.segmentIndex!==C.segmentIndex),{edgeIndex:d.edgeIndex,segmentIndex:d.segmentIndex,from:d.from,to:d.to}],!0):!1},"trySwapSegmentsAcrossTracks"),gt=c(d=>{let C=d.tracks.length;return d.tracks[C]={index:C,coord:d.coord,segments:[]},C},"createNewTrack"),pt=c((d,C)=>{let E=d.pipe.tracks[d.trackIndex];E.segments=E.segments.filter(R=>R.edgeIndex!==d.edgeIndex||R.segmentIndex!==d.segmentIndex),d.trackIndex=C,d.pipe.tracks[C].segments.push({edgeIndex:d.edgeIndex,segmentIndex:d.segmentIndex,from:d.from,to:d.to})},"moveSegmentToTrack"),xt=c((d,C)=>{let E=I[d.edgeIndex];for(let A of E){let R=g[A];R.pipe===d.pipe&&pt(R,C)}},"moveSegmentChainToTrack"),Ft=c(d=>{let C=I[d.edgeIndex],E=C.indexOf(g.indexOf(d)),A=[];return E>0&&A.push(g[C[E-1]]),E<C.length-1&&A.push(g[C[E+1]]),A},"getAdjacentSegmentsAlongEdge"),Ae=c((d,C)=>{if(d.orientation===C.orientation)return!1;let E=d.orientation==="horizontal"?d:C,A=d.orientation==="horizontal"?C:d;return A.pipe.coord>E.from&&A.pipe.coord<E.to&&E.pipe.coord>A.from&&E.pipe.coord<A.to},"haveAnyCrossing"),me=c((d,C)=>{for(let E of d.tracks)if(!E.segments.some(R=>(R.edgeIndex!==C.edgeIndex||R.segmentIndex!==C.segmentIndex)&&st(R,C)))return E.index;return-1},"findAvailableTrack"),ye=c((d,C)=>{if(d.trackIndex===C.trackIndex)return st(d,C);let E=Ft(d),A=Ft(C);return E.some(R=>A.some(H=>Ae(R,H)))},"segmentsConflict"),Re=c((d,C,E)=>{if(ut(d,C,d.pipe.tracks[d.trackIndex],C.pipe.tracks[C.trackIndex]))return;let A=me(d.pipe,C);E(C,A!==-1?A:gt(d.pipe))},"resolveTrackConflict"),Ve=c(d=>{let C=0;for(let E=0;E<d.length;E++)for(let A=E+1;A<d.length;A++){let R=d[E],H=d[A];R.pipe===H.pipe&&ye(R,H)&&(C++,Re(R,H,xt))}return C},"resolveHandleConflicts"),T=new Map,k=c(d=>{if(T.has(d))return T.get(d);let C=I[d];if(C.length===0){let at={dest:0,deviation:0,base:0,delta:0};return T.set(d,at),at}let A=g[C[0]].pipe.coord,R=A;for(let at=1;at<C.length;at++){let W=g[C[at]];if(W.orientation==="horizontal"){let U=W.from,Lt=W.to;R=Math.abs(U-A)>Math.abs(Lt-A)?U:Lt;break}}let H=Math.abs(R-A),Z={dest:R,deviation:H,base:A,delta:R-A};return T.set(d,Z),Z},"getDestInfo"),D=c(()=>{let d=0,C=new Map;for(let[A,R]of s.entries())I[A].length!==0&&R.start&&(C.has(R.start)||C.set(R.start,[]),C.get(R.start).push(A));let E=c(A=>{let R=s[A];if(!R.start||!R.end)return 0;let H=r.get(R.start),Z=r.get(R.end);if(!H||!Z)return 0;let at=(Z.x??0)-(H.x??0),W=(Z.y??0)-(H.y??0);return Math.abs(at)+Math.abs(W)},"getEdgeDistance");for(let A of C.values()){A.sort((H,Z)=>{let at=k(H),W=k(Z);if(Math.abs(at.deviation-W.deviation)>1)return at.deviation-W.deviation;if(Math.abs(at.dest-W.dest)>1)return at.dest-W.dest;let U=E(H),Lt=E(Z);if(Math.abs(U-Lt)>1)return Lt-U;let wt=I[H].length,Rt=I[Z].length;if(wt!==Rt)return wt-Rt;if(wt===1){let rt=I[H][0],bt=I[Z][0];if(g[rt]&&g[bt]){let Pt=g[rt],ee=g[bt],Dt=Math.abs(Pt.to-Pt.from),re=Math.abs(ee.to-ee.from);if(Math.abs(Dt-re)>1)return Dt-re}}return 0});let R=A.map(H=>g[I[H][0]]);d+=Ve(R)}return d},"fixSourceHandleCrossings"),j=c(()=>{let d=0,C=new Map;for(let[E,A]of s.entries())I[E].length!==0&&A.end&&(C.has(A.end)||C.set(A.end,[]),C.get(A.end).push(E));for(let E of C.values()){E.sort((R,H)=>{let Z=c(U=>{let Lt=I[U];if(Lt.length<2)return 0;let wt=g[Lt[Lt.length-2]];return Math.abs(wt.to-wt.from)},"getDist"),at=Z(R),W=Z(H);return Math.abs(at-W)>.1?at-W:R-H});let A=E.map(R=>g[I[R][I[R].length-1]]);d+=Ve(A)}return d},"fixTargetHandleCrossings"),K=c(()=>{let d=0;for(let C of f){let E=[];for(let A of C.tracks)for(let R of A.segments){let H=I[R.edgeIndex].find(Z=>g[Z].segmentIndex===R.segmentIndex);H!==void 0&&E.push(g[H])}E.sort((A,R)=>A.edgeIndex-R.edgeIndex||A.segmentIndex-R.segmentIndex);for(let A=0;A<E.length;A++)for(let R=A+1;R<E.length;R++){let H=E[A],Z=E[R];ye(H,Z)&&(d++,Re(H,Z,pt))}}return d},"fixPipeCrossings"),et=0,G=10;for(;et<G;){let d=0;if(d+=D(),d+=j(),d+=K(),d===0)break;et++}let nt=new Map;for(let d of f){let C=[];d.tracks.forEach(A=>{A.segments.forEach(R=>{C.push({edgeIndex:R.edgeIndex,segmentIndex:R.segmentIndex,trackIndex:A.index,from:R.from,to:R.to})})}),C.sort((A,R)=>A.from-R.from);let E=[];if(C.length>0){let A=[C[0]],R=C[0].to;for(let H=1;H<C.length;H++){let Z=C[H];Z.from<R?(A.push(Z),R=Math.max(R,Z.to)):(E.push(A),A=[Z],R=Z.to)}E.push(A)}for(let A of E){let R=new Set;A.forEach(rt=>R.add(rt.trackIndex));let H=new Map;A.forEach(rt=>{let bt=k(rt.edgeIndex);H.set(rt.trackIndex,(H.get(rt.trackIndex)??0)+bt.delta)});let Z=[...R].filter(rt=>(H.get(rt)??0)<-1),at=[...R].filter(rt=>(H.get(rt)??0)>1),W=[...R].filter(rt=>Math.abs(H.get(rt)??0)<=1);Z.sort((rt,bt)=>(H.get(bt)??0)-(H.get(rt)??0)),at.sort((rt,bt)=>(H.get(rt)??0)-(H.get(bt)??0));let U=c((rt,bt)=>{A.filter(Pt=>Pt.trackIndex===rt).forEach(Pt=>{let ee=M.has(Pt.edgeIndex)?d.coord:bt;nt.set(`${Pt.edgeIndex}-${Pt.segmentIndex}`,ee)})},"assignCoord"),Lt=0;for(let rt of Z)Lt++,U(rt,d.coord-Lt*On);if(W.length===0&&R.size>0){let rt=[...R].sort((ee,Dt)=>Math.abs(H.get(ee)??0)-Math.abs(H.get(Dt)??0))[0],bt=Z.indexOf(rt);bt!==-1&&Z.splice(bt,1);let Pt=at.indexOf(rt);Pt!==-1&&at.splice(Pt,1),W.push(rt)}let wt=0;for(let rt of W){if(wt===0)U(rt,d.coord);else{let bt=wt%2===1?1:-1,Pt=Math.ceil(wt/2);U(rt,d.coord+bt*Pt*On*.5)}wt++}let Rt=0;for(let rt of at)Rt++,U(rt,d.coord+Rt*On)}}for(let[d,C]of s.entries()){let E=I[d]??[];if(E.length===0)continue;let A=[],R=r.get(C.start),H=r.get(C.end),{pSrcPort:Z,pDstPort:at}=q(d,R,H),W=E.map(Rt=>{let rt=g[Rt],bt=nt.get(`${rt.edgeIndex}-${rt.segmentIndex}`)??rt.pipe.coord;return{orient:rt.orientation,coord:bt,from:rt.from,to:rt.to}});A.push(Z);for(let Rt=0;Rt<W.length;Rt++){let rt=W[Rt],bt=A[A.length-1],Pt=rt.orient==="vertical"?bt.y:bt.x,ee=rt.orient==="vertical"?bt.x:bt.y,Dt=W[Rt+1],re=Rt<W.length-1;if(Math.abs(ee-rt.coord)>mt&&A.push(Ne(rt,Pt)),re&&Dt.orient===rt.orient)if(Math.abs(rt.coord-Dt.coord)>mt){let Me=rt.orient==="vertical"?(Pt+Dt.from)/2:uo(rt,Dt);A.push(Ne(rt,Me),Ne(Dt,Me))}else(Rt===0||Rt===W.length-2)&&A.push(Ne(rt,uo(rt,Dt)));else if(re)A.push(Ne(rt,Dt.coord));else{let Me=Math.abs(rt.from-Pt)<Math.abs(rt.to-Pt)?rt.to:rt.from;A.push(Ne(rt,Me))}}let U=A[A.length-1];(Math.abs(U.x-at.x)>mt||Math.abs(U.y-at.y)>mt)&&A.push(at);let Lt=A[0];Lt&&(Math.abs(Lt.x-Z.x)>mt||Math.abs(Lt.y-Z.y)>mt)&&A.unshift(Z);let wt=[];A.length>0&&wt.push(A[0]);for(let Rt=1;Rt<A.length;Rt++){let rt=A[Rt],bt=wt[wt.length-1];(Math.abs(rt.x-bt.x)>mt||Math.abs(rt.y-bt.y)>mt)&&wt.push(rt)}C.points=wt}for(let d of s){let C=d.__originalEdge;C&&d.points&&(C.points=d.points)}t.edges=(t.edges??[]).filter(d=>!d.isLayoutOnly);let ft=c((d,C)=>{let E=C.x??0,A=C.y??0,{w:R,h:H}=sn(C,0);if(R<=0||H<=0)return d;let Z=E-R/2,at=E+R/2,W=A-H/2,U=A+H/2;if(d.x<Z||d.x>at||d.y<W||d.y>U)return d;let Lt=d.x-Z,wt=at-d.x,Rt=d.y-W,rt=U-d.y,bt=Math.min(Lt,wt,Rt,rt);return bt===Lt?{x:Z,y:d.y}:bt===wt?{x:at,y:d.y}:bt===Rt?{x:d.x,y:W}:{x:d.x,y:U}},"nodeBoundaryClamp");for(let d of t.edges){let C=d.points;if(!C||C.length<2)continue;let E=d.start,A=d.end,R=E?r.get(E):void 0,H=A?r.get(A):void 0;R&&(C[0]=ft(C[0],R)),H&&(C[C.length-1]=ft(C[C.length-1],H))}return t}c(Br,"routeEdgesOrthogonal");function Fr(t){return t.direction??"TB"}c(Fr,"getSwimlaneDirection");function Pr(t){let e=as(t),n=t.config.flowchart?.nodeSpacing??40,o=t.config.flowchart?.rankSpacing??100,s=t.config.swimlane?.ignoreCrossLaneEdges??!0,r=t.config.swimlane?.optimizeRanksByCrossings??!0,i=t.config.swimlane?.automaticLaneOrdering??!1,f=Fr(t),{ordered:u,coordinates:p}=Nr(e,{nodeGap:n,layerGap:o,ignoreCrossLaneEdges:s,optimizeRanksByCrossings:r,automaticLaneOrdering:i,direction:f});fs(e,u,p,{nodeGap:n,layerGap:o});for(let y of t.edges??[])delete y.points;Br(t,f);for(let y of t.edges??[])(!y.curve||y.curve==="basis")&&(y.curve="rounded");return qs(t,f),Ks(t),f}c(Pr,"runSwimlaneLayoutCore");function kr(t){cs(t);let e=ds(t);t.nodes=e.nodes,t.edges=e.edges}c(kr,"prepareSwimlaneLayout");var vi=Ho({prepareLayout:kr,runLayoutCore:Pr,afterPaint:Uo});export{vi as render};
@@ -0,0 +1,8 @@
1
+ import{a as o,b as m}from"./chunk-6Y2HP7DC.js";import"./chunk-KPXJJSUR.js";import"./chunk-LYY4ZY72.js";import"./chunk-2VGDQLQD.js";import"./chunk-274PZN6B.js";import"./chunk-WMQ4Y2MS.js";import"./chunk-33XESOCS.js";import"./chunk-P44SH3OO.js";import"./chunk-JTW4SY4L.js";import"./chunk-T6DM5RSK.js";import"./chunk-PDXKDBIX.js";import"./chunk-OF62XRVM.js";import"./chunk-4PJNGS3V.js";import"./chunk-ZATQCNXH.js";import"./chunk-IAKC32WV.js";import"./chunk-KDUDYTWO.js";import"./chunk-MKDEK2LU.js";import"./chunk-VEMTQQ7Y.js";import"./chunk-NXHT5I2L.js";import"./chunk-MYJRFART.js";import"./chunk-3ZSL2TGQ.js";import{a as r}from"./chunk-ZE5RDJX6.js";import"./chunk-PHKIAKHS.js";var i=r(t=>`${o(t)}
2
+ .swimlane.cluster:not([data-color-id]) rect {
3
+ stroke: ${t.clusterBorder} !important;
4
+ }
5
+ [data-look="neo"].cluster rect {
6
+ filter: none;
7
+ }
8
+ `,"getStyles"),e=i,F=m({styles:e});export{F as diagram};
@@ -0,0 +1,120 @@
1
+ import{a as wt}from"./chunk-UX2S3LP3.js";import{c as _t,f as J}from"./chunk-MKDEK2LU.js";import{o as vt}from"./chunk-VEMTQQ7Y.js";import{b as at}from"./chunk-NXHT5I2L.js";import{$ as st,C as nt,Q as it,T as kt,U as bt,c as yt,d as mt,e as xt}from"./chunk-MYJRFART.js";import{b as _,d as K}from"./chunk-3ZSL2TGQ.js";import{a as o,b as ft}from"./chunk-ZE5RDJX6.js";import"./chunk-PHKIAKHS.js";var ot=(function(){var e=o(function(k,a,d,c){for(d=d||{},c=k.length;c--;d[k[c]]=a);return d},"o"),t=[6,11,13,14,15,17,19,20,23,24],i=[1,12],n=[1,13],r=[1,14],h=[1,15],l=[1,16],s=[1,19],y=[1,20],g={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline_header:4,document:5,EOF:6,timeline:7,timeline_lr:8,timeline_td:9,line:10,SPACE:11,statement:12,NEWLINE:13,title:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,period_statement:21,event_statement:22,period:23,event:24,$accept:0,$end:1},terminals_:{2:"error",6:"EOF",7:"timeline",8:"timeline_lr",9:"timeline_td",11:"SPACE",13:"NEWLINE",14:"title",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",23:"period",24:"event"},productions_:[0,[3,3],[4,1],[4,1],[4,1],[5,0],[5,2],[10,2],[10,1],[10,1],[10,1],[12,1],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[21,1],[22,1]],performAction:o(function(a,d,c,p,m,u,w){var b=u.length-1;switch(m){case 1:return u[b-1];case 3:p.setDirection("LR");break;case 4:p.setDirection("TD");break;case 5:this.$=[];break;case 6:u[b-1].push(u[b]),this.$=u[b-1];break;case 7:case 8:this.$=u[b];break;case 9:case 10:this.$=[];break;case 11:p.getCommonDb().setDiagramTitle(u[b].substr(6)),this.$=u[b].substr(6);break;case 12:this.$=u[b].trim(),p.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=u[b].trim(),p.getCommonDb().setAccDescription(this.$);break;case 15:p.addSection(u[b].substr(8)),this.$=u[b].substr(8);break;case 18:p.addTask(u[b],0,""),this.$=u[b];break;case 19:p.addEvent(u[b].substr(2)),this.$=u[b];break}},"anonymous"),table:[{3:1,4:2,7:[1,3],8:[1,4],9:[1,5]},{1:[3]},e(t,[2,5],{5:6}),e(t,[2,2]),e(t,[2,3]),e(t,[2,4]),{6:[1,7],10:8,11:[1,9],12:10,13:[1,11],14:i,15:n,17:r,19:h,20:l,21:17,22:18,23:s,24:y},e(t,[2,10],{1:[2,1]}),e(t,[2,6]),{12:21,14:i,15:n,17:r,19:h,20:l,21:17,22:18,23:s,24:y},e(t,[2,8]),e(t,[2,9]),e(t,[2,11]),{16:[1,22]},{18:[1,23]},e(t,[2,14]),e(t,[2,15]),e(t,[2,16]),e(t,[2,17]),e(t,[2,18]),e(t,[2,19]),e(t,[2,7]),e(t,[2,12]),e(t,[2,13])],defaultActions:{},parseError:o(function(a,d){if(d.recoverable)this.trace(a);else{var c=new Error(a);throw c.hash=d,c}},"parseError"),parse:o(function(a){var d=this,c=[0],p=[],m=[null],u=[],w=this.table,b="",I=0,P=0,B=0,G=2,L=1,R=u.slice.call(arguments,1),E=Object.create(this.lexer),A={yy:{}};for(var V in this.yy)Object.prototype.hasOwnProperty.call(this.yy,V)&&(A.yy[V]=this.yy[V]);E.setInput(a,A.yy),A.yy.lexer=E,A.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var D=E.yylloc;u.push(D);var $=E.options&&E.options.ranges;typeof A.yy.parseError=="function"?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function v(W){c.length=c.length-2*W,m.length=m.length-W,u.length=u.length-W}o(v,"popStack");function T(){var W;return W=p.pop()||E.lex()||L,typeof W!="number"&&(W instanceof Array&&(p=W,W=p.pop()),W=d.symbols_[W]||W),W}o(T,"lex");for(var S,H,M,N,et,Z,O={},j,F,gt,q;;){if(M=c[c.length-1],this.defaultActions[M]?N=this.defaultActions[M]:((S===null||typeof S>"u")&&(S=T()),N=w[M]&&w[M][S]),typeof N>"u"||!N.length||!N[0]){var rt="";q=[];for(j in w[M])this.terminals_[j]&&j>G&&q.push("'"+this.terminals_[j]+"'");E.showPosition?rt="Parse error on line "+(I+1)+`:
2
+ `+E.showPosition()+`
3
+ Expecting `+q.join(", ")+", got '"+(this.terminals_[S]||S)+"'":rt="Parse error on line "+(I+1)+": Unexpected "+(S==L?"end of input":"'"+(this.terminals_[S]||S)+"'"),this.parseError(rt,{text:E.match,token:this.terminals_[S]||S,line:E.yylineno,loc:D,expected:q})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+M+", token: "+S);switch(N[0]){case 1:c.push(S),m.push(E.yytext),u.push(E.yylloc),c.push(N[1]),S=null,H?(S=H,H=null):(P=E.yyleng,b=E.yytext,I=E.yylineno,D=E.yylloc,B>0&&B--);break;case 2:if(F=this.productions_[N[1]][1],O.$=m[m.length-F],O._$={first_line:u[u.length-(F||1)].first_line,last_line:u[u.length-1].last_line,first_column:u[u.length-(F||1)].first_column,last_column:u[u.length-1].last_column},$&&(O._$.range=[u[u.length-(F||1)].range[0],u[u.length-1].range[1]]),Z=this.performAction.apply(O,[b,P,I,A.yy,N[1],m,u].concat(R)),typeof Z<"u")return Z;F&&(c=c.slice(0,-1*F*2),m=m.slice(0,-1*F),u=u.slice(0,-1*F)),c.push(this.productions_[N[1]][0]),m.push(O.$),u.push(O._$),gt=w[c[c.length-2]][c[c.length-1]],c.push(gt);break;case 3:return!0}}return!0},"parse")},x=(function(){var k={EOF:1,parseError:o(function(d,c){if(this.yy.parser)this.yy.parser.parseError(d,c);else throw new Error(d)},"parseError"),setInput:o(function(a,d){return this.yy=d||this.yy||{},this._input=a,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 a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var d=a.match(/(?:\r\n?|\n).*/g);return d?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},"input"),unput:o(function(a){var d=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-d),this.offset-=d;var p=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 m=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===p.length?this.yylloc.first_column:0)+p[p.length-c.length].length-c[0].length:this.yylloc.first_column-d},this.options.ranges&&(this.yylloc.range=[m[0],m[0]+this.yyleng-d]),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).
4
+ `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(a){this.unput(this.match.slice(a))},"less"),pastInput:o(function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var a=this.pastInput(),d=new Array(a.length+1).join("-");return a+this.upcomingInput()+`
5
+ `+d+"^"},"showPosition"),test_match:o(function(a,d){var c,p,m;if(this.options.backtrack_lexer&&(m={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&&(m.yylloc.range=this.yylloc.range.slice(0))),p=a[0].match(/(?:\r\n?|\n).*/g),p&&(this.yylineno+=p.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:p?p[p.length-1].length-p[p.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+a[0].length},this.yytext+=a[0],this.match+=a[0],this.matches=a,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(a[0].length),this.matched+=a[0],c=this.performAction.call(this,this.yy,this,d,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var u in m)this[u]=m[u];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,d,c,p;this._more||(this.yytext="",this.match="");for(var m=this._currentRules(),u=0;u<m.length;u++)if(c=this._input.match(this.rules[m[u]]),c&&(!d||c[0].length>d[0].length)){if(d=c,p=u,this.options.backtrack_lexer){if(a=this.test_match(c,m[u]),a!==!1)return a;if(this._backtrack){d=!1;continue}else return!1}else if(!this.options.flex)break}return d?(a=this.test_match(d,m[p]),a!==!1?a:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
6
+ `+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var d=this.next();return d||this.lex()},"lex"),begin:o(function(d){this.conditionStack.push(d)},"begin"),popState:o(function(){var d=this.conditionStack.length-1;return d>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(d){return d=this.conditionStack.length-1-Math.abs(d||0),d>=0?this.conditionStack[d]:"INITIAL"},"topState"),pushState:o(function(d){this.begin(d)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(d,c,p,m){var u=m;switch(p){case 0:break;case 1:break;case 2:return 13;case 3:break;case 4:break;case 5:return 8;case 6:return 9;case 7:return 7;case 8:return 14;case 9:return this.begin("acc_title"),15;break;case 10:return this.popState(),"acc_title_value";break;case 11:return this.begin("acc_descr"),17;break;case 12:return this.popState(),"acc_descr_value";break;case 13:this.begin("acc_descr_multiline");break;case 14:this.popState();break;case 15:return"acc_descr_multiline_value";case 16:return 20;case 17:return 24;case 18:return 23;case 19:return 6;case 20:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline[ \t]+LR\b)/i,/^(?:timeline[ \t]+TD\b)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s(?:[^:\n]|:(?!\s))+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[14,15],inclusive:!1},acc_descr:{rules:[12],inclusive:!1},acc_title:{rules:[10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,11,13,16,17,18,19,20],inclusive:!0}}};return k})();g.lexer=x;function f(){this.yy={}}return o(f,"Parser"),f.prototype=g,g.Parser=f,new f})();ot.parser=ot;var Xt=ot,It={};ft(It,{addEvent:()=>Vt,addSection:()=>Rt,addTask:()=>Bt,addTaskOrg:()=>Ft,clear:()=>Mt,default:()=>Zt,getCommonDb:()=>Lt,getDirection:()=>Ct,getSections:()=>Wt,getTasks:()=>Pt,setDirection:()=>At});var U="",Ht=0,ct="LR",ht=[],Q=[],X=[],Lt=o(()=>kt,"getCommonDb"),Mt=o(function(){ht.length=0,Q.length=0,U="",X.length=0,ct="LR",bt()},"clear"),At=o(function(e){ct=e},"setDirection"),Ct=o(function(){return ct},"getDirection"),Rt=o(function(e){U=e,ht.push(e)},"addSection"),Wt=o(function(){return ht},"getSections"),Pt=o(function(){let e=St(),t=100,i=0;for(;!e&&i<t;)e=St(),i++;return Q.push(...X),Q},"getTasks"),Bt=o(function(e,t,i){let n={id:Ht++,section:U,type:U,task:e,score:t||0,events:i?[i]:[]};X.push(n)},"addTask"),Vt=o(function(e){X.find(i=>i.id===Ht-1).events.push(e)},"addEvent"),Ft=o(function(e){let t={section:U,type:U,description:e,task:e,classes:[]};Q.push(t)},"addTaskOrg"),St=o(function(){let e=o(function(i){return X[i].processed},"compileTask"),t=!0;for(let[i,n]of X.entries())e(i),t=t&&n.processed;return t},"compileTasks"),Zt={clear:Mt,getCommonDb:Lt,getDirection:Ct,setDirection:At,addSection:Rt,getSections:Wt,getTasks:Pt,addTask:Bt,addTaskOrg:Ft,addEvent:Vt},zt=0,Y=o(function(e,t){let i=e.append("rect");return i.attr("x",t.x),i.attr("y",t.y),i.attr("fill",t.fill),i.attr("stroke",t.stroke),i.attr("width",t.width),i.attr("height",t.height),i.attr("rx",t.rx),i.attr("ry",t.ry),t.class!==void 0&&i.attr("class",t.class),i},"drawRect"),jt=o(function(e,t){let n=e.append("circle").attr("cx",t.cx).attr("cy",t.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),r=e.append("g");r.append("circle").attr("cx",t.cx-15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),r.append("circle").attr("cx",t.cx+15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function h(y){let g=at().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);y.append("path").attr("class","mouth").attr("d",g).attr("transform","translate("+t.cx+","+(t.cy+2)+")")}o(h,"smile");function l(y){let g=at().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);y.append("path").attr("class","mouth").attr("d",g).attr("transform","translate("+t.cx+","+(t.cy+7)+")")}o(l,"sad");function s(y){y.append("line").attr("class","mouth").attr("stroke",2).attr("x1",t.cx-5).attr("y1",t.cy+7).attr("x2",t.cx+5).attr("y2",t.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(s,"ambivalent"),t.score>3?h(r):t.score<3?l(r):s(r),n},"drawFace"),qt=o(function(e,t){let i=e.append("circle");return i.attr("cx",t.cx),i.attr("cy",t.cy),i.attr("class","actor-"+t.pos),i.attr("fill",t.fill),i.attr("stroke",t.stroke),i.attr("r",t.r),i.class!==void 0&&i.attr("class",i.class),t.title!==void 0&&i.append("title").text(t.title),i},"drawCircle"),Ot=o(function(e,t){let i=t.text.replace(/<br\s*\/?>/gi," "),n=e.append("text");n.attr("x",t.x),n.attr("y",t.y),n.attr("class","legend"),n.style("text-anchor",t.anchor),t.class!==void 0&&n.attr("class",t.class);let r=n.append("tspan");return r.attr("x",t.x+t.textMargin*2),r.text(i),n},"drawText"),Jt=o(function(e,t){function i(r,h,l,s,y){return r+","+h+" "+(r+l)+","+h+" "+(r+l)+","+(h+s-y)+" "+(r+l-y*1.2)+","+(h+s)+" "+r+","+(h+s)}o(i,"genPoints");let n=e.append("polygon");n.attr("points",i(t.x,t.y,50,20,7)),n.attr("class","labelBox"),t.y=t.y+t.labelMargin,t.x=t.x+.5*t.labelMargin,Ot(e,t)},"drawLabel"),Qt=o(function(e,t,i){let n=e.append("g"),r=dt();r.x=t.x,r.y=t.y,r.fill=t.fill,r.width=i.width,r.height=i.height,r.class="journey-section section-type-"+t.num,r.rx=3,r.ry=3,Y(n,r),Gt(i)(t.text,n,r.x,r.y,r.width,r.height,{class:"journey-section section-type-"+t.num},i,t.colour)},"drawSection"),lt=-1,Yt=o(function(e,t,i,n){let r=t.x+i.width/2,h=e.append("g");lt++,h.append("line").attr("id",n+"-task"+lt).attr("x1",r).attr("y1",t.y).attr("x2",r).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),jt(h,{cx:r,cy:300+(5-t.score)*30,score:t.score});let s=dt();s.x=t.x,s.y=t.y,s.fill=t.fill,s.width=i.width,s.height=i.height,s.class="task task-type-"+t.num,s.rx=3,s.ry=3,Y(h,s),Gt(i)(t.task,h,s.x,s.y,s.width,s.height,{class:"task"},i,t.colour)},"drawTask"),te=o(function(e,t){Y(e,{x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,class:"rect"}).lower()},"drawBackgroundRect"),ee=o(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),dt=o(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),Gt=(function(){function e(r,h,l,s,y,g,x,f){let k=h.append("text").attr("x",l+y/2).attr("y",s+g/2+5).style("font-color",f).style("text-anchor","middle").text(r);n(k,x)}o(e,"byText");function t(r,h,l,s,y,g,x,f,k){let{taskFontSize:a,taskFontFamily:d}=f,c=r.split(/<br\s*\/?>/gi);for(let p=0;p<c.length;p++){let m=p*a-a*(c.length-1)/2,u=h.append("text").attr("x",l+y/2).attr("y",s).attr("fill",k).style("text-anchor","middle").style("font-size",a).style("font-family",d);u.append("tspan").attr("x",l+y/2).attr("dy",m).text(c[p]),u.attr("y",s+g/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),n(u,x)}}o(t,"byTspan");function i(r,h,l,s,y,g,x,f){let k=h.append("switch"),d=k.append("foreignObject").attr("x",l).attr("y",s).attr("width",y).attr("height",g).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(r),t(r,k,l,s,y,g,x,f),n(d,x)}o(i,"byFo");function n(r,h){for(let l in h)l in h&&r.attr(l,h[l])}return o(n,"_setTextAttrs"),function(r){return r.textPlacement==="fo"?i:r.textPlacement==="old"?e:t}})(),re=o(function(e,t){zt=0,lt=-1,e.append("defs").append("marker").attr("id",t+"-arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},"initGraphics");function ut(e,t){e.each(function(){var i=K(this),n=i.text().split(/(\s+|<br>)/).reverse(),r,h=[],l=1.1,s=i.attr("y"),y=parseFloat(i.attr("dy")),g=i.text(null).append("tspan").attr("x",0).attr("y",s).attr("dy",y+"em");for(let x=0;x<n.length;x++)r=n[n.length-1-x],h.push(r),g.text(h.join(" ").trim()),(g.node().getComputedTextLength()>t||r==="<br>")&&(h.pop(),g.text(h.join(" ").trim()),r==="<br>"?h=[""]:h=[r],g=i.append("tspan").attr("x",0).attr("y",s).attr("dy",l+"em").text(r))})}o(ut,"wrap");var ne=o(function(e,t,i,n,r,h=!1){let{theme:l,look:s}=n,y=l?.includes("redux"),g=n?.themeVariables?.THEME_COLOR_LIMIT??12,x=i%g-1,f=e.append("g");t.section=x,f.attr("class",(t.class?t.class+" ":"")+"timeline-node "+("section-"+x));let k=f.append("g"),a=f.append("g"),c=a.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(ut,t.width).node().getBBox(),p=n.fontSize?.replace?n.fontSize.replace("px",""):n.fontSize;if(t.height=c.height+p*1.1*.5+t.padding,t.height=Math.max(t.height,t.maxHeight),t.width=t.width+2*t.padding,a.attr("transform","translate("+t.width/2+", "+t.padding/2+")"),y&&a.attr("transform",`translate(${t.width/2}, ${h?t.padding/2+3:t.padding})`),se(k,t,x,r,n),s==="neo"&&(f.attr("data-look","neo"),y)){let m=l.includes("dark"),u=e.node()?.ownerSVGElement??e.node(),w=K(u),b=w.attr("id")??"",I=b?`${b}-drop-shadow`:"drop-shadow";if(w.select(`#${I}`).empty()){let P=w.select("defs");(P.empty()?w.append("defs"):P).append("filter").attr("id",I).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity",m?"0.2":"0.06").attr("flood-color",m?"#FFFFFF":"#000000")}}return t},"drawNode"),ie=o(function(e,t,i){let n=e.append("g"),h=n.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(ut,t.width).node().getBBox(),l=i.fontSize?.replace?i.fontSize.replace("px",""):i.fontSize;return n.remove(),h.height+l*1.1*.5+t.padding},"getVirtualNodeHeight"),se=o(function(e,t,i,n,r){let{theme:h}=r,l=h?.includes("redux")?0:5,s=5,y=l>0?`M0 ${t.height-s} v${-t.height+2*s} q0,-${l},${l},-${l} h${t.width-2*s} q${l},0,${l},${l} v${t.height-s} H0 Z`:`M0 ${t.height-s} v${-(t.height-s)} h${t.width} v${t.height} H0 Z`;e.append("path").attr("id",n+"-node-"+zt++).attr("class","node-bkg node-"+t.type).attr("d",y),h?.includes("redux")||e.append("line").attr("class","node-line-"+i).attr("x1",0).attr("y1",t.height).attr("x2",t.width).attr("y2",t.height)},"defaultBkg"),C={drawRect:Y,drawCircle:qt,drawSection:Qt,drawText:Ot,drawLabel:Jt,drawTask:Yt,drawBackgroundRect:te,getTextObj:ee,getNoteRect:dt,initGraphics:re,drawNode:ne,getVirtualNodeHeight:ie},ae=o(function(e,t,i,n){let r=st(),{look:h,theme:l,themeVariables:s}=r,{useGradient:y,gradientStart:g,gradientStop:x}=s,f=r.timeline?.leftMargin??50;_.debug("timeline",n.db);let k=r.securityLevel,a;k==="sandbox"&&(a=K("#i"+t));let c=(k==="sandbox"?K(a.nodes()[0].contentDocument.body):K("body")).select("#"+t);c.append("g");let p=n.db.getTasks(),m=n.db.getCommonDb().getDiagramTitle();_.debug("task",p),C.initGraphics(c,t);let u=n.db.getSections();_.debug("sections",u);let w=0,b=0,I=0,P=0,B=50+f,G=50;P=50;let L=0,R=!0;u.forEach(function($){let v={number:L,descr:$,section:L,width:150,padding:20,maxHeight:w},T=C.getVirtualNodeHeight(c,v,r);_.debug("sectionHeight before draw",T),w=Math.max(w,T+20)});let E=0,A=0;_.debug("tasks.length",p.length);for(let[$,v]of p.entries()){let T={number:$,descr:v,section:v.section,width:150,padding:20,maxHeight:b},S=C.getVirtualNodeHeight(c,T,r);_.debug("taskHeight before draw",S),b=Math.max(b,S+20),E=Math.max(E,v.events.length);let H=0;for(let M of v.events){let N={descr:M,section:v.section,number:v.section,width:150,padding:20,maxHeight:50};H+=C.getVirtualNodeHeight(c,N,r)}v.events.length>0&&(H+=(v.events.length-1)*10),A=Math.max(A,H)}_.debug("maxSectionHeight before draw",w),_.debug("maxTaskHeight before draw",b),u&&u.length>0?u.forEach($=>{let v=p.filter(M=>M.section===$),T={number:L,descr:$,section:L,width:200*Math.max(v.length,1)-50,padding:20,maxHeight:w};_.debug("sectionNode",T);let S=c.append("g"),H=C.drawNode(S,T,L,r,t);_.debug("sectionNode output",H),S.attr("transform",`translate(${B}, ${P})`),G+=w+50,v.length>0&&Et(c,v,L,B,G,b,r,E,A,w,!1,t),B+=200*Math.max(v.length,1),G=P,L++}):(R=!1,Et(c,p,L,B,G,b,r,E,A,w,!0,t));let V=c.node().getBBox();if(_.debug("bounds",V),m&&c.append("text").text(m).attr("x",h==="neo"?V.x*2+f:V.width/2-f).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),I=R?w+b+150:b+100,c.append("g").attr("class","lineWrapper").append("line").attr("x1",f).attr("y1",I).attr("x2",V.width+3*f).attr("y2",I).attr("stroke-width",4).attr("stroke","black").attr("marker-end",`url(#${t}-arrowhead)`),h==="neo"&&y&&l!=="neutral"){let $=c.select("defs"),T=($.empty()?c.append("defs"):$).append("linearGradient").attr("id",c.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");T.append("stop").attr("offset","0%").attr("stop-color",g).attr("stop-opacity",1),T.append("stop").attr("offset","100%").attr("stop-color",x).attr("stop-opacity",1)}it(void 0,c,r.timeline?.padding??50,r.timeline?.useMaxWidth??!1)},"draw"),Et=o(function(e,t,i,n,r,h,l,s,y,g,x,f){for(let k of t){let a={descr:k.task,section:i,number:i,width:150,padding:20,maxHeight:h};_.debug("taskNode",a);let d=e.append("g").attr("class","taskWrapper"),p=C.drawNode(d,a,i,l,f).height;if(_.debug("taskHeight after draw",p),d.attr("transform",`translate(${n}, ${r})`),h=Math.max(h,p),k.events){let m=e.append("g").attr("class","lineWrapper"),u=h;r+=100,u=u+oe(e,k.events,i,n,r,l,f),r-=100,m.append("line").attr("x1",n+190/2).attr("y1",r+h).attr("x2",n+190/2).attr("y2",r+h+100+y+100).attr("stroke-width",2).attr("stroke","black").attr("marker-end",`url(#${f}-arrowhead)`).attr("stroke-dasharray","5,5")}n=n+200,x&&!l.timeline?.disableMulticolor&&i++}r=r-10},"drawTasks"),oe=o(function(e,t,i,n,r,h,l){let s=0,y=r;r=r+100;for(let g of t){let x={descr:g,section:i,number:i,width:150,padding:20,maxHeight:50};_.debug("eventNode",x);let f=e.append("g").attr("class","eventWrapper"),a=C.drawNode(f,x,i,h,l,!0).height;s=s+a,f.attr("transform",`translate(${n}, ${r})`),r=r+10+a}return r=y,s},"drawEvents"),le={setConf:o(()=>{},"setConf"),draw:ae},tt=200,z=5,ce=tt+z*2,pt=tt+100,he=pt+z*2,Dt=10,de=0,Tt=20,Kt=20,$t=30,Ut=50,ue=o(function(e,t,i,n){let r=st(),h=r.timeline?.leftMargin??50;_.debug("timeline",n.db);let l=wt(t);l.append("g");let s=n.db.getTasks(),y=n.db.getCommonDb().getDiagramTitle();_.debug("task",s),C.initGraphics(l);let g=n.db.getSections();_.debug("sections",g);let x=0,f=0,k=50+h,a=50,d=a,c=k,p=ce+Kt,m=he+Ut,u=c+p,w=0,b=g&&g.length>0,I=b?u:k+p,P=Math.max(50,p+m-z*2);g.forEach(function($){let v={number:w,descr:$,section:w,width:P,padding:z,maxHeight:x},T=C.getVirtualNodeHeight(l,v,r);_.debug("sectionHeight before draw",T),x=Math.max(x,T)});let B=0;_.debug("tasks.length",s.length);for(let[$,v]of s.entries()){let T={number:$,descr:v,section:v.section,width:tt,padding:z,maxHeight:f},S=C.getVirtualNodeHeight(l,T,r);_.debug("taskHeight before draw",S),f=Math.max(f,S);let H=0;for(let M of v.events){let N={descr:M,section:v.section,number:v.section,width:pt,padding:z,maxHeight:50};H+=C.getVirtualNodeHeight(l,N,r)}v.events.length>0&&(H+=(v.events.length-1)*Dt),B=Math.max(B,H)+de}_.debug("maxSectionHeight before draw",x),_.debug("maxTaskHeight before draw",f);let L=Math.max(f,B)+$t;b?g.forEach($=>{let v=s.filter(O=>O.section===$),T={number:w,descr:$,section:w,width:P,padding:z,maxHeight:x};_.debug("sectionNode",T);let S=l.append("g"),H=C.drawNode(S,T,w,r);_.debug("sectionNode output",H);let M=I-p;S.attr("transform",`translate(${M}, ${a})`);let N=a+H.height+Tt;v.length>0&&Nt(l,v,w,I,N,f,r,L,!1);let et=v.length,Z=H.height+Tt+L*Math.max(et,1)-(et>0?$t*2:0);a+=Z,w++}):Nt(l,s,w,I,a,f,r,L,!0);let R=l.node()?.getBBox();if(!R)throw new Error("bbox not found");if(_.debug("bounds",R),y){if(l.append("text").text(y).attr("x",R.width/2-h).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),R=l.node()?.getBBox(),!R)throw new Error("bbox not found");_.debug("bounds after title",R)}let[E]=vt(r.fontSize),A=(E??16)*2,V=(E??16)*.5+20,D=l.append("g").attr("class","lineWrapper");D.append("line").attr("x1",I).attr("y1",d-A).attr("x2",I).attr("y2",R.y+R.height+V).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),D.lower(),it(void 0,l,r.timeline?.padding??50,r.timeline?.useMaxWidth??!1)},"draw"),Nt=o(function(e,t,i,n,r,h,l,s,y){for(let g of t){let x={descr:g.task,section:i,number:i,width:tt,padding:z,maxHeight:h};_.debug("taskNode",x);let f=e.append("g").attr("class","taskWrapper"),k=C.drawNode(f,x,i,l),a=k.height;_.debug("taskHeight after draw",a);let d=n-Kt-k.width;if(f.attr("transform",`translate(${d}, ${r})`),h=Math.max(h,a),g.events&&g.events.length>0){let c=r,p=n+Ut;pe(e,g.events,i,n,p,c,l)}r=r+s,y&&!l.timeline?.disableMulticolor&&i++}},"drawTasks"),pe=o(function(e,t,i,n,r,h,l){let s=h;for(let y of t){let g={descr:y,section:i,number:i,width:pt,padding:z,maxHeight:0};_.debug("eventNode",g);let x=e.append("g").attr("class","eventWrapper"),k=C.drawNode(x,g,i,l).height;x.attr("transform",`translate(${r}, ${s})`);let a=e.append("g").attr("class","lineWrapper"),d=s+k/2;a.append("line").attr("x1",n).attr("y1",d).attr("x2",r).attr("y2",d).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5"),s=s+k+Dt}return s-h},"drawEvents"),ge={setConf:o(()=>{},"setConf"),draw:ue},fe=o(e=>{let{theme:t}=nt(),i=t?.includes("dark"),n=_t(t,e.borderColorArray),r=e.svgId?.replace(/^#/,"")??"",h=r?`url(#${r}-drop-shadow)`:e.dropShadow??"none",l="";for(let s=0;s<J(e.THEME_COLOR_LIMIT);s++){let y=`${17-3*s}`,g=n?e.borderColorArray[s%e.borderColorArray.length]:void 0,x=g??e.mainBkg,f=g??e.nodeBorder;l+=`
7
+ .section-${s-1} rect,
8
+ .section-${s-1} path,
9
+ .section-${s-1} circle {
10
+ fill: ${i&&n?e.mainBkg:x};
11
+ stroke: ${f};
12
+ stroke-width: ${e.strokeWidth};
13
+ filter: ${h};
14
+ }
15
+
16
+ .section-${s-1} text {
17
+ fill: ${e.nodeBorder};
18
+ font-weight: ${e.fontWeight}
19
+ }
20
+
21
+ .node-icon-${s-1} {
22
+ font-size: 40px;
23
+ color: ${e["cScaleLabel"+s]};
24
+ }
25
+
26
+ .section-edge-${s-1} {
27
+ stroke: ${e["cScale"+s]};
28
+ }
29
+
30
+ .edge-depth-${s-1} {
31
+ stroke-width: ${y};
32
+ }
33
+
34
+ .section-${s-1} line {
35
+ stroke: ${e["cScaleInv"+s]};
36
+ stroke-width: 3;
37
+ }
38
+
39
+ .lineWrapper line {
40
+ stroke: ${e.nodeBorder};
41
+ stroke-width:${e.strokeWidth}
42
+ }
43
+
44
+ .disabled,
45
+ .disabled circle,
46
+ .disabled text {
47
+ fill: ${e.tertiaryColor??"lightgray"};
48
+ }
49
+
50
+ .disabled text {
51
+ fill: ${e.clusterBorder??"#efefef"};
52
+ }
53
+ `}return l},"genReduxSections"),ye=o(e=>{let t="",i=J(e.THEME_COLOR_LIMIT);for(let n=0;n<i;n++)e["lineColor"+n]=e["lineColor"+n]??e["cScaleInv"+n],yt(e["lineColor"+n])?e["lineColor"+n]=mt(e["lineColor"+n],20):e["lineColor"+n]=xt(e["lineColor"+n],20);for(let n=0;n<i;n++){let r=""+(17-3*n);t+=`
54
+ .section-${n-1} rect, .section-${n-1} path, .section-${n-1} circle, .section-${n-1} path {
55
+ fill: ${e["cScale"+n]};
56
+ }
57
+ .section-${n-1} text {
58
+ fill: ${e["cScaleLabel"+n]};
59
+ }
60
+ .node-icon-${n-1} {
61
+ font-size: 40px;
62
+ color: ${e["cScaleLabel"+n]};
63
+ }
64
+ .section-edge-${n-1}{
65
+ stroke: ${e["cScale"+n]};
66
+ }
67
+ .edge-depth-${n-1}{
68
+ stroke-width: ${r};
69
+ }
70
+ .section-${n-1} line {
71
+ stroke: ${e["cScaleInv"+n]} ;
72
+ stroke-width: 3;
73
+ }
74
+
75
+ .lineWrapper line{
76
+ stroke: ${e["cScaleLabel"+n]} ;
77
+ }
78
+
79
+ .disabled, .disabled circle, .disabled text {
80
+ fill: ${e.tertiaryColor??"lightgray"};
81
+ }
82
+ .disabled text {
83
+ fill: ${e.clusterBorder??"#efefef"};
84
+ }
85
+ `}return t},"genSections"),me=o(e=>{let{theme:t}=nt(),i=t?.includes("redux"),n=t==="neutral",r=e.svgId?.replace(/^#/,"")??"",h="";if(e.useGradient&&r&&e.THEME_COLOR_LIMIT&&!n){let l=J(e.THEME_COLOR_LIMIT);for(let s=0;s<l;s++)h+=`
86
+ .section-${s-1}[data-look="neo"] rect,
87
+ .section-${s-1}[data-look="neo"] path,
88
+ .section-${s-1}[data-look="neo"] circle {
89
+ fill: ${e.mainBkg};
90
+ stroke: url(#${r}-gradient);
91
+ stroke-width: 2;
92
+ }
93
+ .section-${s-1}[data-look="neo"] line {
94
+ stroke: url(#${r}-gradient);
95
+ stroke-width: 2;
96
+ }`}return`
97
+ .edge {
98
+ stroke-width: 3;
99
+ }
100
+ ${i?fe(e):ye(e)}
101
+ ${h}
102
+ .section-root rect, .section-root path, .section-root circle {
103
+ fill: ${e.git0};
104
+ }
105
+ .section-root text {
106
+ fill: ${e.gitBranchLabel0};
107
+ }
108
+ .icon-container {
109
+ height:100%;
110
+ display: flex;
111
+ justify-content: center;
112
+ align-items: center;
113
+ }
114
+ .edge {
115
+ fill: none;
116
+ }
117
+ .eventWrapper {
118
+ filter: brightness(120%);
119
+ }
120
+ `},"getStyles"),xe=me,ke={setConf:o(()=>{},"setConf"),draw:o((e,t,i,n)=>(n?.db?.getDirection?.()??"LR")==="TD"?ge.draw(e,t,i,n):le.draw(e,t,i,n),"draw")},Ie={db:It,renderer:ke,parser:Xt,styles:xe};export{Ie as diagram};
@@ -0,0 +1 @@
1
+ import{a as e,b as r}from"./chunk-E2UQN267.js";import"./chunk-Z4ZDIMO2.js";import"./chunk-PHKIAKHS.js";export{e as TreeViewModule,r as createTreeViewServices};
@@ -0,0 +1 @@
1
+ import{a as e,b as r}from"./chunk-DN4Y7LXJ.js";import"./chunk-Z4ZDIMO2.js";import"./chunk-PHKIAKHS.js";export{e as TreemapModule,r as createTreemapServices};