@agent-workshop/adoc-webapp 0.1.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 (204) hide show
  1. package/LICENSE +5 -0
  2. package/THIRD_PARTY_NOTICES.md +49 -0
  3. package/dist/assets/app.css +406 -0
  4. package/dist/assets/app.js +201 -0
  5. package/dist/assets/chunks/abnfDiagram-YUKMZFIV-UTBMKFXS.js +1 -0
  6. package/dist/assets/chunks/architecture-WOLXFQ4H-S6WNHT5H.js +1 -0
  7. package/dist/assets/chunks/architectureDiagram-47P4ROYG-SQCOEPXG.js +36 -0
  8. package/dist/assets/chunks/blockDiagram-E7TT5TSB-F5DSMBHI.js +140 -0
  9. package/dist/assets/chunks/c4Diagram-CRA5TL53-G4W35RYC.js +38 -0
  10. package/dist/assets/chunks/chunk-2TCGAX73.js +1 -0
  11. package/dist/assets/chunks/chunk-35SWHG2Z.js +1 -0
  12. package/dist/assets/chunks/chunk-4UKVVSLZ.js +2 -0
  13. package/dist/assets/chunks/chunk-56PLA4MI.js +1 -0
  14. package/dist/assets/chunks/chunk-6QSLXF4I.js +1 -0
  15. package/dist/assets/chunks/chunk-7DQROAU7.js +1 -0
  16. package/dist/assets/chunks/chunk-7FXP6RHI.js +1 -0
  17. package/dist/assets/chunks/chunk-7ITQOSYJ.js +15 -0
  18. package/dist/assets/chunks/chunk-7W3KTJUJ.js +1 -0
  19. package/dist/assets/chunks/chunk-ABLFMIK7.js +1 -0
  20. package/dist/assets/chunks/chunk-AVITUR4K.js +1 -0
  21. package/dist/assets/chunks/chunk-AVJJGJEF.js +1 -0
  22. package/dist/assets/chunks/chunk-BYKZQKZN.js +1 -0
  23. package/dist/assets/chunks/chunk-CBAFHIQV.js +213 -0
  24. package/dist/assets/chunks/chunk-CMFTFM5L.js +1 -0
  25. package/dist/assets/chunks/chunk-E2AIA637.js +14 -0
  26. package/dist/assets/chunks/chunk-ENUKY65A.js +72 -0
  27. package/dist/assets/chunks/chunk-EPS7YYLR.js +2 -0
  28. package/dist/assets/chunks/chunk-FDHLSHAZ.js +1 -0
  29. package/dist/assets/chunks/chunk-GBOXGTKU.js +1 -0
  30. package/dist/assets/chunks/chunk-GDF64WIG.js +1 -0
  31. package/dist/assets/chunks/chunk-GTJDAHEV.js +2 -0
  32. package/dist/assets/chunks/chunk-H57PPMTP.js +1 -0
  33. package/dist/assets/chunks/chunk-HHYS5L3R.js +1 -0
  34. package/dist/assets/chunks/chunk-INV6BDXO.js +2 -0
  35. package/dist/assets/chunks/chunk-IR3NHMOO.js +1 -0
  36. package/dist/assets/chunks/chunk-KLF2A562.js +1 -0
  37. package/dist/assets/chunks/chunk-LZTAJOGZ.js +1 -0
  38. package/dist/assets/chunks/chunk-M3XBBO6R.js +135 -0
  39. package/dist/assets/chunks/chunk-NBZPV65B.js +62 -0
  40. package/dist/assets/chunks/chunk-NCTJNXDF.js +1 -0
  41. package/dist/assets/chunks/chunk-O4U2B2FP.js +339 -0
  42. package/dist/assets/chunks/chunk-OB665XPY.js +1 -0
  43. package/dist/assets/chunks/chunk-OFD4YTIR.js +10 -0
  44. package/dist/assets/chunks/chunk-PHKIAKHS.js +1 -0
  45. package/dist/assets/chunks/chunk-R4OZRASH.js +32 -0
  46. package/dist/assets/chunks/chunk-UAGOPMXU.js +1 -0
  47. package/dist/assets/chunks/chunk-UAQETDSH.js +3 -0
  48. package/dist/assets/chunks/chunk-UORYZEAD.js +1 -0
  49. package/dist/assets/chunks/chunk-W4ELJFHG.js +1 -0
  50. package/dist/assets/chunks/chunk-WBPRABWA.js +136 -0
  51. package/dist/assets/chunks/chunk-XISCFCXG.js +88 -0
  52. package/dist/assets/chunks/chunk-XLJVPE6C.js +1 -0
  53. package/dist/assets/chunks/chunk-XQHNSJKC.js +1 -0
  54. package/dist/assets/chunks/chunk-XYDA52BE.js +1 -0
  55. package/dist/assets/chunks/chunk-YAHQK6MQ.js +1 -0
  56. package/dist/assets/chunks/chunk-ZGUCZDEK.js +1 -0
  57. package/dist/assets/chunks/chunk-ZRBDUQXP.js +1 -0
  58. package/dist/assets/chunks/classDiagram-v2-K4WV4PDN-EMBTPOHC.js +217 -0
  59. package/dist/assets/chunks/cose-bilkent-JH36ORCC-CNYFETCT.js +1 -0
  60. package/dist/assets/chunks/cynefin-EF2NZ3EQ-2AP5N5QY.js +1 -0
  61. package/dist/assets/chunks/cynefinDiagram-3GCD6N5R-WVTLESK3.js +62 -0
  62. package/dist/assets/chunks/dagre-W4DXFKR2-FPRZGQVB.js +4 -0
  63. package/dist/assets/chunks/diagram-2UJZ2QOL-VPSSQLZN.js +200 -0
  64. package/dist/assets/chunks/diagram-OVF4WLC6-PZ2RN37Y.js +24 -0
  65. package/dist/assets/chunks/diagram-PFPMY2P6-5GPN6RRZ.js +30 -0
  66. package/dist/assets/chunks/diagram-UMYRVEAY-OHFOPEFR.js +24 -0
  67. package/dist/assets/chunks/diagram-YEKJPTXX-PFA7KRZC.js +41 -0
  68. package/dist/assets/chunks/diagram-ZIFT7M5P-XOPZR7XN.js +3 -0
  69. package/dist/assets/chunks/ebnfDiagram-VR2GEFS7-MAGCN3HN.js +1 -0
  70. package/dist/assets/chunks/elk-IJKZMXRS-FZ2NQWIX.js +27 -0
  71. package/dist/assets/chunks/erDiagram-O2IAPWRE-746JHX2P.js +99 -0
  72. package/dist/assets/chunks/eventmodeling-K75KTNOO-FKRVI4N2.js +1 -0
  73. package/dist/assets/chunks/flowDiagram-OXPTDLAJ-XYHRK7XD.js +1 -0
  74. package/dist/assets/chunks/ganttDiagram-R7TSEDQI-DN5XENJA.js +292 -0
  75. package/dist/assets/chunks/gitGraph-VSP46ZUC-YT36MSRW.js +1 -0
  76. package/dist/assets/chunks/gitGraphDiagram-XJZIOB7I-NXP267LJ.js +106 -0
  77. package/dist/assets/chunks/info-OHQRW6UA-BRTC44VB.js +1 -0
  78. package/dist/assets/chunks/infoDiagram-5W2HQ5XZ-RT6YEU7N.js +2 -0
  79. package/dist/assets/chunks/ishikawaDiagram-K3B6WC7H-EJP5H2KV.js +70 -0
  80. package/dist/assets/chunks/journeyDiagram-COXZFDF6-M6MBFVND.js +139 -0
  81. package/dist/assets/chunks/kanban-definition-P3RFRI5V-WBYRNWVT.js +89 -0
  82. package/dist/assets/chunks/katex-42FXWECD.js +257 -0
  83. package/dist/assets/chunks/mermaid.core-SMXJOLYJ.js +18 -0
  84. package/dist/assets/chunks/mindmap-definition-LZFPQGKD-KVJVOCR5.js +96 -0
  85. package/dist/assets/chunks/packet-JDAUHWVQ-SGFXPYMB.js +1 -0
  86. package/dist/assets/chunks/pegDiagram-BGZESJAR-ECEGDREM.js +1 -0
  87. package/dist/assets/chunks/pie-XZMESJXO-LSQBPXPC.js +1 -0
  88. package/dist/assets/chunks/pieDiagram-CAPJLFHJ-D75MPXOK.js +39 -0
  89. package/dist/assets/chunks/quadrantDiagram-GDMTTRAM-HMUXMSEH.js +7 -0
  90. package/dist/assets/chunks/radar-ABXABTNO-TPYHBLNO.js +1 -0
  91. package/dist/assets/chunks/railroad-I3PHUGI6-WWIXL3LY.js +1 -0
  92. package/dist/assets/chunks/railroad-abnf-LNEFI6M7-DHJUY4R6.js +1 -0
  93. package/dist/assets/chunks/railroad-ebnf-DWYD2UWJ-4OJ4ECXX.js +1 -0
  94. package/dist/assets/chunks/railroad-peg-JR7BVNR7-VUOBDVLQ.js +1 -0
  95. package/dist/assets/chunks/railroadDiagram-SM67HX2B-Z757I54E.js +1 -0
  96. package/dist/assets/chunks/requirementDiagram-X7JNWC4A-7BW46JLY.js +84 -0
  97. package/dist/assets/chunks/sankeyDiagram-UM26HJRW-273BIID3.js +40 -0
  98. package/dist/assets/chunks/sequenceDiagram-ZO4K6R2Y-KG23HXTI.js +169 -0
  99. package/dist/assets/chunks/sizeCapture-INFHLROL-5N3POCQZ.js +1 -0
  100. package/dist/assets/chunks/stateDiagram-v2-TBUQTH76-AIML3PSW.js +291 -0
  101. package/dist/assets/chunks/swimlanes-N4OXWK64-TBFQZWAR.js +1 -0
  102. package/dist/assets/chunks/swimlanesDiagram-K3J5GTZL-TREAP6RB.js +8 -0
  103. package/dist/assets/chunks/timeline-definition-YOQAKGHF-QHTD5EBR.js +120 -0
  104. package/dist/assets/chunks/treeView-D4JQ5SDB-JJEYBPMW.js +1 -0
  105. package/dist/assets/chunks/treemap-SAJKECNS-I3YRCM2B.js +1 -0
  106. package/dist/assets/chunks/usecaseDiagram-VIAY4XPW-GNNFV4RS.js +370 -0
  107. package/dist/assets/chunks/vennDiagram-BLWOH2XV-YE23JXYX.js +34 -0
  108. package/dist/assets/chunks/wardley-7MLQ67FV-AKOGXXNF.js +1 -0
  109. package/dist/assets/chunks/wardleyDiagram-YMQ3BMBF-D7XYLZCZ.js +78 -0
  110. package/dist/assets/chunks/xychartDiagram-TAQBALBS-AT4Y7JWY.js +7 -0
  111. package/dist/assets/fonts/D2Coding-Bold.woff2 +0 -0
  112. package/dist/assets/fonts/D2Coding-OFL.txt +97 -0
  113. package/dist/assets/fonts/D2Coding.woff2 +0 -0
  114. package/dist/assets/fonts/Pretendard-LICENSE.txt +94 -0
  115. package/dist/assets/fonts/PretendardVariable.woff2 +0 -0
  116. package/dist/assets/fonts/SymbolsNerdFont-LICENSE.txt +21 -0
  117. package/dist/assets/fonts/SymbolsNerdFontMono.woff2 +0 -0
  118. package/dist/assets/xterm.css +285 -0
  119. package/dist/index.html +14 -0
  120. package/dist/licenses/@braintree__sanitize-url@7.1.2/LICENSE +21 -0
  121. package/dist/licenses/@chevrotain__cst-dts-gen@13.2.0/LICENSE.txt +202 -0
  122. package/dist/licenses/@chevrotain__gast@13.2.0/LICENSE.txt +202 -0
  123. package/dist/licenses/@chevrotain__regexp-to-ast@13.2.0/LICENSE.txt +202 -0
  124. package/dist/licenses/@chevrotain__utils@13.2.0/LICENSE.txt +202 -0
  125. package/dist/licenses/@iconify__utils@3.1.7/license.txt +21 -0
  126. package/dist/licenses/@mermaid-js__parser@2.0.1/LICENSE +21 -0
  127. package/dist/licenses/@remix-run__route-pattern@0.22.1/LICENSE +21 -0
  128. package/dist/licenses/@upsetjs__venn.js@2.0.0/LICENSE +22 -0
  129. package/dist/licenses/@xterm__addon-fit@0.11.0/LICENSE +19 -0
  130. package/dist/licenses/@xterm__xterm@6.0.0/LICENSE +21 -0
  131. package/dist/licenses/chevrotain@13.2.0/LICENSE.txt +202 -0
  132. package/dist/licenses/cookie-es@3.1.1/LICENSE +28 -0
  133. package/dist/licenses/cose-base@1.0.3/LICENSE +21 -0
  134. package/dist/licenses/cose-base@2.2.0/LICENSE +21 -0
  135. package/dist/licenses/cytoscape-cose-bilkent@4.1.0/LICENSE +21 -0
  136. package/dist/licenses/cytoscape-fcose@2.2.0/LICENSE +19 -0
  137. package/dist/licenses/cytoscape@3.34.3/LICENSE +19 -0
  138. package/dist/licenses/cytoscape@3.34.3/license-update.mjs +32 -0
  139. package/dist/licenses/d3-array@2.12.1/LICENSE +27 -0
  140. package/dist/licenses/d3-array@3.2.4/LICENSE +13 -0
  141. package/dist/licenses/d3-axis@3.0.0/LICENSE +13 -0
  142. package/dist/licenses/d3-brush@3.0.0/LICENSE +13 -0
  143. package/dist/licenses/d3-chord@3.0.1/LICENSE +13 -0
  144. package/dist/licenses/d3-color@3.1.0/LICENSE +13 -0
  145. package/dist/licenses/d3-contour@4.0.2/LICENSE +13 -0
  146. package/dist/licenses/d3-delaunay@6.0.4/LICENSE +14 -0
  147. package/dist/licenses/d3-dispatch@3.0.1/LICENSE +13 -0
  148. package/dist/licenses/d3-drag@3.0.0/LICENSE +13 -0
  149. package/dist/licenses/d3-dsv@3.0.1/LICENSE +13 -0
  150. package/dist/licenses/d3-ease@3.0.1/LICENSE +28 -0
  151. package/dist/licenses/d3-fetch@3.0.1/LICENSE +13 -0
  152. package/dist/licenses/d3-force@3.0.0/LICENSE +13 -0
  153. package/dist/licenses/d3-format@3.1.2/LICENSE +13 -0
  154. package/dist/licenses/d3-geo@3.1.1/LICENSE +34 -0
  155. package/dist/licenses/d3-hierarchy@3.1.2/LICENSE +13 -0
  156. package/dist/licenses/d3-interpolate@3.0.1/LICENSE +13 -0
  157. package/dist/licenses/d3-path@1.0.9/LICENSE +27 -0
  158. package/dist/licenses/d3-path@3.1.0/LICENSE +13 -0
  159. package/dist/licenses/d3-polygon@3.0.1/LICENSE +13 -0
  160. package/dist/licenses/d3-quadtree@3.0.1/LICENSE +13 -0
  161. package/dist/licenses/d3-random@3.0.1/LICENSE +13 -0
  162. package/dist/licenses/d3-sankey@0.12.3/LICENSE +27 -0
  163. package/dist/licenses/d3-scale-chromatic@3.1.0/LICENSE +28 -0
  164. package/dist/licenses/d3-scale@4.0.2/LICENSE +13 -0
  165. package/dist/licenses/d3-selection@3.0.0/LICENSE +13 -0
  166. package/dist/licenses/d3-shape@1.3.7/LICENSE +27 -0
  167. package/dist/licenses/d3-shape@3.2.0/LICENSE +13 -0
  168. package/dist/licenses/d3-time-format@4.1.0/LICENSE +13 -0
  169. package/dist/licenses/d3-time@3.1.0/LICENSE +13 -0
  170. package/dist/licenses/d3-timer@3.0.1/LICENSE +13 -0
  171. package/dist/licenses/d3-transition@3.0.1/LICENSE +13 -0
  172. package/dist/licenses/d3-zoom@3.0.0/LICENSE +13 -0
  173. package/dist/licenses/d3@7.9.0/LICENSE +13 -0
  174. package/dist/licenses/dagre-d3-es@7.0.14/LICENSE.md +23 -0
  175. package/dist/licenses/dayjs@1.11.23/LICENSE +21 -0
  176. package/dist/licenses/delaunator@5.1.0/LICENSE +15 -0
  177. package/dist/licenses/dompurify@3.4.16/LICENSE +202 -0
  178. package/dist/licenses/dompurify@3.4.16/LICENSE-MPL +373 -0
  179. package/dist/licenses/elkjs@0.9.3/LICENSE.md +264 -0
  180. package/dist/licenses/es-toolkit@1.52.0/LICENSE +21 -0
  181. package/dist/licenses/es-toolkit@1.52.0/NOTICE +39 -0
  182. package/dist/licenses/internmap@1.0.1/LICENSE +13 -0
  183. package/dist/licenses/internmap@2.0.3/LICENSE +13 -0
  184. package/dist/licenses/katex@0.16.47/LICENSE +21 -0
  185. package/dist/licenses/khroma@2.1.0/license +21 -0
  186. package/dist/licenses/layout-base@1.0.2/LICENSE +21 -0
  187. package/dist/licenses/layout-base@2.0.1/LICENSE +21 -0
  188. package/dist/licenses/lodash-es@4.18.1/LICENSE +47 -0
  189. package/dist/licenses/lucide-react@1.50.0/LICENSE +43 -0
  190. package/dist/licenses/lucide-react@1.50.0/copyright.mjs +22 -0
  191. package/dist/licenses/marked@16.4.2/LICENSE.md +44 -0
  192. package/dist/licenses/mermaid@12.1.0/LICENSE +21 -0
  193. package/dist/licenses/packages.json +945 -0
  194. package/dist/licenses/pretendard@1.3.9/LICENSE.txt +94 -0
  195. package/dist/licenses/react-dom@19.3.0/LICENSE +21 -0
  196. package/dist/licenses/react-router@8.4.0/LICENSE.md +23 -0
  197. package/dist/licenses/react@19.3.0/LICENSE +21 -0
  198. package/dist/licenses/robust-predicates@3.0.3/LICENSE +24 -0
  199. package/dist/licenses/roughjs@4.6.6/LICENSE +21 -0
  200. package/dist/licenses/scheduler@0.28.0/LICENSE +21 -0
  201. package/dist/licenses/stylis@4.4.0/LICENSE +21 -0
  202. package/dist/licenses/ts-dedent@2.3.0/LICENSE +21 -0
  203. package/dist/licenses/uuid@14.0.2/LICENSE.md +9 -0
  204. package/package.json +44 -0
@@ -0,0 +1 @@
1
+ import{a as Io}from"./chunk-35SWHG2Z.js";import{g as Mo}from"./chunk-H57PPMTP.js";import"./chunk-E2AIA637.js";import"./chunk-IR3NHMOO.js";import"./chunk-OFD4YTIR.js";import"./chunk-ZRBDUQXP.js";import"./chunk-NBZPV65B.js";import"./chunk-NCTJNXDF.js";import"./chunk-ZGUCZDEK.js";import"./chunk-ENUKY65A.js";import"./chunk-HHYS5L3R.js";import"./chunk-KLF2A562.js";import"./chunk-GTJDAHEV.js";import"./chunk-XLJVPE6C.js";import"./chunk-M3XBBO6R.js";import{b as He}from"./chunk-W4ELJFHG.js";import{a as l}from"./chunk-UAGOPMXU.js";import"./chunk-PHKIAKHS.js";function Eo(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}));Io(e.groups.edgePaths,s,{enabled:!0,jumpRadius:6,jumpStyle:o})}l(Eo,"applySwimlaneLineJumps");var gn="__swimlane_default__",ir=21,So=20;function xn(t){return Math.max(t.padding??So,So)}l(xn,"topLaneHorizontalPadding");function Ro(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 c=n-s/2,h=Math.min(r,n+s/2),f=Math.min(ir,Math.max(0,h-c)),u=c+f;if(u<=c){delete t.groupTitleRect;return}t.groupTitleRect={left:e-o/2,right:e+o/2,top:c,bottom:u}}l(Ro,"assignTopLaneTitleRect");function wo(t){let e=t.direction,n=t.nodes??=[];for(let r of t.nodes??[])r.isGroup&&!r.parentId&&(r.shape="swimlane",e&&(r.direction=e));let o=n.filter(r=>!r.isGroup&&!r.parentId);if(o.length===0)return;let s=n.find(r=>r.id===gn);s?s.isGroup&&(s.shape="swimlane",e&&(s.direction=e)):(s={id:gn,label:"",isGroup:!0,shape:"swimlane",padding:20,look:t.config?.look,colorIndex:n.reduce((r,c)=>Math.max(r,c.colorIndex??-1),-1)+1,...e?{direction:e}:{}},n.push(s));for(let r of o)r.parentId=gn}l(wo,"prepareLayoutForSwimlanes");function Ao(t){let e=new Map;for(let f of t.nodes??[])e.set(f.id,f);let n=[];for(let f of t.edges??[]){let u=typeof f.start=="string"?f.start:void 0,y=typeof f.end=="string"?f.end:void 0;!u||!y||f.labelNodeId||n.push({id:f.id,src:u,dst:y,ref:f})}let o=t.nodes??[],s=o.filter(f=>f.isGroup),r=o.filter(f=>!f.isGroup);return{nodes:[...[...s].reverse(),...r].map(f=>f.id),edges:n,layout:t,nodeById:e}}l(Ao,"toGraphView");function No(t,e,n,o){let{layout:s}=t,r=t.nodeById,c=o?.layerGap??100,h=o?.nodeGap??40,f=0;for(let L of e.layers){let m=0;for(let d of L){let i=r.get(d);if(!i){m++;continue}i.layer=f,i.order=m;let p=n.x[d]??m*h,C=n.y[d]??f*c;i.x=p,i.y=C,m++}f++}let u=s.nodes??[],y=new Map,g=[];for(let L of u){if(!L?.isGroup)continue;L.parentId||g.push(L);let m=u.filter(I=>I.parentId===L.id),d=1/0,i=-1/0,p=1/0,C=-1/0;for(let I of m){let T=I.x??n.x[I.id],O=I.y??n.y[I.id],S=I.width??0,b=I.height??0;T!=null&&O!=null&&(d=Math.min(d,T-S/2),i=Math.max(i,T+S/2),p=Math.min(p,O-b/2),C=Math.max(C,O+b/2))}if(d===1/0||p===1/0)L.x=L.x??0,L.y=L.y??0,L.width=L.width??0,L.height=L.height??0;else{let I=L.padding??20,T=L.parentId?I:2*xn(L),O=I,S=Math.max(0,i-d)+T,b=Math.max(0,C-p)+O,E=(d+i)/2,A=(p+C)/2;L.x=E,L.y=A,L.width=S,L.height=b,y.set(L.id,{minX:d,maxX:i,minY:p,maxY:C})}}if(g.length>0&&y.size>0){let L=1/0,m=-1/0,d=0;for(let i of g){let p=i.padding??20;p>d&&(d=p);let C=y.get(i.id);C&&(L=Math.min(L,C.minY),m=Math.max(m,C.maxY))}if(L!==1/0&&m!==-1/0){let i=Math.max(0,m-L),C=Math.max(d,36),I=i+2*C,T=(L+m)/2;for(let F of g)F.y=T,F.height=I,F.swimlaneContentTop=L;let O=[...g].sort((F,w)=>{let _=F.x??0,k=w.x??0;return _-k}),S=[],b=[],E=[];for(let F of O){let w=y.get(F.id);if(!w)continue;let _=Math.max(0,w.maxX-w.minX)+2*xn(F),k=(w.minX+w.maxX)/2;S.push(F.id),b.push(k),E.push(_)}let A=S.length;if(A>0){let F=new Map;if(A===1)F.set(S[0],E[0]);else{let w=[];for(let z=0;z<A-1;z++)w.push(b[z+1]-b[z]);let _=new Array(A);_[0]=0;for(let z=0;z<A-1;z++)_[z+1]=2*w[z]-_[z];let k=0,B=Number.POSITIVE_INFINITY;for(let z=0;z<A;z++){let K=E[z];z%2===0?k=Math.max(k,K-_[z]):B=Math.min(B,_[z]-K)}let X=k;k<=B?X=(k+B)/2:X=k;for(let z=0;z<A;z++){let K=_[z]+(z%2===0?X:-X),ct=Math.max(E[z],K);F.set(S[z],ct)}}for(let w of g){let _=F.get(w.id);_!=null&&(w.width=_),Ro(w)}}}}}l(No,"writeBackToLayoutData");var cr="[EdgeLabelNodes]";function Oo(t){let e=[],n=[],o=new Map;for(let c of t.nodes)o.set(c.id,c);for(let c of t.edges){if(!c.label||c.label.length===0||c.isLayoutOnly||c.labelNodeId)continue;let h=c.start?o.get(c.start):void 0,f=c.end?o.get(c.end):void 0;if(!h||!f){He.warn(cr,`Edge ${c.id} has missing source or target node`);continue}let u=`edge-label-${c.start}-${c.end}-${c.id}`,g=h.parentId!==f.parentId?f.parentId:h.parentId,L={id:u,label:c.label,edgeStart:c.start??"",edgeEnd:c.end??"",shape:"labelRect",width:0,height:0,isEdgeLabel:!0,isDummy:!0,parentId:g,isGroup:!1,labelStyle:Array.isArray(c.labelStyle)?c.labelStyle[0]:c.labelStyle??"",...h.dir?{dir:h.dir}:{}};e.push(L),c.labelNodeId=u,c.label=void 0,c.text=void 0;let m={id:`${c.id}-to-label`,start:c.start,end:u,type:"normal",isLayoutOnly:!0},d={id:`${c.id}-from-label`,start:u,end:c.end,type:"normal",isLayoutOnly:!0};n.push(m,d)}let s=[...t.nodes,...e],r=[...t.edges,...n];return{...t,nodes:s,edges:r}}l(Oo,"createEdgeLabelNodes");var _t=.001;function Kn(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:Ee(e,n,o,s)}:void 0}l(Kn,"measuredNodeRect");function qn(t){if(t.isGroup)return;let e=Kn(t);return e?{id:String(t.id??""),cx:e.cx,cy:e.cy,rect:e.rect}:void 0}l(qn,"nodeBoundsInfoFor");function oe(t,e,n=_t){return Math.abs(t.x-e.x)<n&&Math.abs(t.y-e.y)<n}l(oe,"samePoint");function dt(t,e,n=_t){return Math.abs(t.x-e.x)<n}l(dt,"sameX");function ht(t,e,n=_t){return Math.abs(t.y-e.y)<n}l(ht,"sameY");function Et(t,e,n=_t){return ht(t,e,n)&&Math.abs(t.x-e.x)>n}l(Et,"isHorizontalSegment");function Rt(t,e,n=_t){return dt(t,e,n)&&Math.abs(t.y-e.y)>n}l(Rt,"isVerticalSegment");function $t(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)))}l($t,"overlapLength");function ie(t,e,n=_t){return t.horizontal&&e.horizontal&&ht(t.a,e.a,n)?$t(t.a.x,t.b.x,e.a.x,e.b.x):t.vertical&&e.vertical&&dt(t.a,e.a,n)?$t(t.a.y,t.b.y,e.a.y,e.b.y):0}l(ie,"sameAxisSegmentOverlapLength");function Re(t,e=_t){let n=[];for(let o=0;o<t.length-1;o++){let s=t[o],r=t[o+1],c=Et(s,r,e),h=Rt(s,r,e);(c||h)&&n.push({index:o,a:s,b:r,horizontal:c,vertical:h})}return n}l(Re,"orthogonalSegmentsForPoints");function Qt(t,e=_t){let n=Re(t,e),o=0;for(let s=1;s<n.length;s++)n[s-1].horizontal!==n[s].horizontal&&o++;return o}l(Qt,"countOrthogonalBends");function mt(t,e=_t){let n=[];for(let o of t){let s=n.length>0?n[n.length-1]:void 0;(!s||!oe(s,o,e))&&n.push({x:o.x,y:o.y})}return n}l(mt,"dedupeConsecutivePoints");function Zn(t,e=_t){if(!t||t.length!==4)return;let[n,o,s,r]=t;return Et(n,o,e)&&Rt(o,s,e)&&Et(s,r,e)?{kind:"HVH",p0:n,p1:o,p2:s,p3:r}:Rt(n,o,e)&&Et(o,s,e)&&Rt(s,r,e)?{kind:"VHV",p0:n,p1:o,p2:s,p3:r}:void 0}l(Zn,"classifyThreeSegmentRoute");function Qe(t,e,n,o=0){let s=Math.min(t.x,e.x),r=Math.max(t.x,e.x),c=Math.min(t.y,e.y),h=Math.max(t.y,e.y);return r>n.left-o&&s<n.right+o&&h>n.top-o&&c<n.bottom+o}l(Qe,"segmentBoundsOverlapRect");function Jn(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}l(Jn,"pointInsideRect");function Bo(t,e){return t.left<=e.left&&t.right>=e.right&&t.top<=e.top&&t.bottom>=e.bottom}l(Bo,"rectContainsRect");function $e(t,e){return t.left<e.right&&t.right>e.left&&t.top<e.bottom&&t.bottom>e.top}l($e,"rectsOverlap");function bn(t,e){return{left:t.left-e,right:t.right+e,top:t.top-e,bottom:t.bottom+e}}l(bn,"inflateRect");function Ee(t,e,n,o){return{left:t-n/2,right:t+n/2,top:e-o/2,bottom:e+o/2}}l(Ee,"rectFromCenterSize");function qt(t){return Kn(t)?.rect}l(qt,"rectOfNodeBounds");function Ie(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}}}l(Ie,"portForRectSide");function Qn(t,e,n,o,s,r=_t){let c=e==="left"||e==="right",h=o==="left"||o==="right";if(c&&h){if(e==="right"&&o==="left"&&t.x<n.x||e==="left"&&o==="right"&&t.x>n.x){if(ht(t,n,r))return[t,n];let g=(t.x+n.x)/2;return[t,{x:g,y:t.y},{x:g,y:n.y},n]}if(e===o){if(ht(t,n,r))return;let g=e==="left"?Math.min(t.x,n.x)-s:Math.max(t.x,n.x)+s;return[t,{x:g,y:t.y},{x:g,y:n.y},n]}return}if(!c&&!h){if(e===o){if(dt(t,n,r))return;let L=e==="top"?Math.min(t.y,n.y)-s:Math.max(t.y,n.y)+s;return[t,{x:t.x,y:L},{x:n.x,y:L},n]}if(!(e==="bottom"&&o==="top"&&t.y<n.y||e==="top"&&o==="bottom"&&t.y>n.y))return;if(dt(t,n,r))return[t,n];let g=(t.y+n.y)/2;return[t,{x:t.x,y:g},{x:n.x,y:g},n]}if(c&&!h){let y=e==="right"&&n.x>t.x||e==="left"&&n.x<t.x,g=o==="top"&&t.y<n.y||o==="bottom"&&t.y>n.y;return y&&g?[t,{x:n.x,y:t.y},n]:void 0}let f=e==="bottom"&&n.y>t.y||e==="top"&&n.y<t.y,u=o==="left"&&t.x<n.x||o==="right"&&t.x>n.x;return f&&u?[t,{x:t.x,y:n.y},n]:void 0}l(Qn,"buildOrthogonalPortPath");function to(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]}l(to,"buildSameSideTrackPath");function tn(t){let e=new Map,n=[];for(let o of t){if(o.isEdgeLabel)continue;let s=qn(o);s&&(e.set(s.id,s),n.push({id:s.id,rect:s.rect}))}return{nodeInfoById:e,realNodeRects:n}}l(tn,"collectRealNodeBounds");function me(t){let e=[],n=[];for(let o of t){let s=qn(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}}l(me,"collectNodeRectEntries");function Fo(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,c=o.width??0,h=o.height??0;n.push({nodeId:o.id,...Ee(s,r,c,h)})}return n}l(Fo,"collectLayoutNodeRects");function eo(t,e,n=_t){let o=t.start,s=t.end;if(!o||!s)return;let r=e.get(o),c=e.get(s);if(!(!r||!c))return{srcId:o,dstId:s,srcInfo:r,dstInfo:c,collinearX:Math.abs(r.cx-c.cx)<n,collinearY:Math.abs(r.cy-c.cy)<n}}l(eo,"getNodePairGeometry");function wt(t,e,n,o=[],s=0){for(let r of n)if(!o.includes(r.id)&&Qe(t,e,r.rect,-s))return!0;return!1}l(wt,"segmentHitsAnyRect");function no(t,e,n,o,s=_t,r=1e-6){let c=ht(t,e,s),h=dt(t,e,s),f=ht(n,o,s),u=dt(n,o,s);if(c&&f||h&&u||!(c||h)||!(f||u))return!1;let y=c?{a:t,b:e}:{a:n,b:o},g=h?{a:t,b:e}:{a:n,b:o},L=y.a.y,m=Math.min(y.a.x,y.b.x),d=Math.max(y.a.x,y.b.x),i=g.a.x,p=Math.min(g.a.y,g.b.y),C=Math.max(g.a.y,g.b.y);if(i<m||i>d||L<p||L>C)return!1;let I=Math.abs(i-y.a.x)<r&&Math.abs(L-y.a.y)<r||Math.abs(i-y.b.x)<r&&Math.abs(L-y.b.y)<r,T=Math.abs(i-g.a.x)<r&&Math.abs(L-g.a.y)<r||Math.abs(i-g.b.x)<r&&Math.abs(L-g.b.y)<r;return!(I&&T)}l(no,"orthogonalSegmentsCross");function Po(t,e,n,o,s=_t){let r=ht(t,e,s),c=dt(t,e,s),h=ht(n,o,s),f=dt(n,o,s);return c&&f&&dt(t,n,s)?$t(t.y,e.y,n.y,o.y)>s:r&&h&&ht(t,n,s)?$t(t.x,e.x,n.x,o.x)>s:!1}l(Po,"sameAxisSegmentsOverlap");function Ve(t,e,n,o,{epsilon:s=_t,skipDegenerateOther:r=!1}={}){for(let c of n){if(c===o||c.isLayoutOnly)continue;let h=c.points;if(!(!h||h.length<2))for(let f=0;f<h.length-1;f++){let u=h[f],y=h[f+1];if(!(r&&oe(u,y,s))&&(no(t,e,u,y,s)||Po(t,e,u,y,s)))return!0}}return!1}l(Ve,"segmentConflictsWithAnyEdge");function ae(t,e,n,o,s=_t){let r=ht(t,e,s),c=dt(t,e,s),h=ht(n,o,s),f=dt(n,o,s);if(!(r&&f||c&&h))return!1;let u=r?{a:t,b:e}:{a:n,b:o},y=r?{a:n,b:o}:{a:t,b:e},g=u.a.y,L=Math.min(u.a.x,u.b.x),m=Math.max(u.a.x,u.b.x),d=y.a.x,i=Math.min(y.a.y,y.b.y),p=Math.max(y.a.y,y.b.y);return d>L+s&&d<m-s&&g>i+s&&g<p-s}l(ae,"orthogonalSegmentsStrictlyCross");function In(t,e,n){let o=Math.min(e,n),s=Math.max(e,n);return t>o+_t&&t<s-_t}l(In,"strictlyBetween");function ko(t,e,n){return dt(t,e)&&dt(e,n)?In(e.y,t.y,n.y):ht(t,e)&&ht(e,n)?In(e.x,t.x,n.x):!1}l(ko,"isCollinearIntermediate");function _o(t){let e=!1,n=[];for(let o=0;o<t.length;o++){let s=n[n.length-1],r=t[o],c=o+1<t.length?t[o+1]:void 0;if(s&&c){if(oe(s,c)){o++,e=!0;continue}if(ko(s,r,c)){e=!0;continue}}n.push(r)}return{points:n,changed:e}}l(_o,"simplifyPolylineOnce");function Ue(t){let e=[t[0]];for(let o=1;o<t.length;o++){let s=e[e.length-1],r=t[o];if(!dt(s,r)&&!ht(s,r)){let c=e.length>=2?e[e.length-2]:void 0,f=(c?dt(c,s):!1)?{x:s.x,y:r.y}:{x:r.x,y:s.y};e.push(f)}e.push(r)}let n=[];for(let o of e){let s=n[n.length-1];(!s||!oe(s,o))&&n.push(o)}return n}l(Ue,"orthogonalizePolyline");function ce(t){if(t.length<3)return t;let e=[...t];for(let n=0;n<32;n++){let o=_o(e);if(e=o.points,!o.changed)break}return e}l(ce,"simplifyPolyline");var nt=.001,ar=.5,Co=4;function oo(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?qt(s):void 0,dstRect:r?qt(r):void 0}}l(oo,"endpointContextFor");function Ho(t,e,n){if(ht(t,e,nt))return{x:t.x<n.left?n.left:n.right,y:t.y};if(dt(t,e,nt)){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))}}l(Ho,"segmentEnterPoint");function Mn(t,e,n){let o=n?1:-1,s=n?0:t.length-1;for(;s>=0&&s<t.length&&Jn(t[s],e,ar);)s+=o;if(s<0||s>=t.length)return t;let r=s-o;if(r<0||r>=t.length)return t;let c=Ho(t[s],t[r],e);return n?[c,...t.slice(s)]:[...t.slice(0,s+1),c]}l(Mn,"clipEndpoint");function Do(t,e){for(let n of t){let o=oo(n,e,2);if(!o)continue;let s=[...o.points];o.srcRect&&(s=Mn(s,o.srcRect,!0)),o.dstRect&&(s=Mn(s,o.dstRect,!1)),s=ce(Ue(s)),s=so(s,o.srcRect,o.dstRect),o.edge.points=ce(Ue(s))}}l(Do,"clipEdgeEndpointsToNodeBoundaries");function Sn(t,e,n,o=!1){if(ht(t,e,nt)){if(e.y<n.top-nt||e.y>n.bottom+nt)return e;if(o){if(t.x<n.left-nt)return{x:n.left,y:t.y};if(t.x>n.right+nt)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(dt(t,e,nt)){if(e.x<n.left-nt||e.x>n.right+nt)return e;if(o){if(t.y<n.top-nt)return{x:t.x,y:n.top};if(t.y>n.bottom+nt)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}l(Sn,"snapEndpointToBoundary");function je(t,e,n){let o=t[e];for(let s=e+n;s>=0&&s<t.length;s+=n){let r=t[s];if(!oe(r,o,nt))return r}return t[e+n]}l(je,"firstDistinctAdjacent");function We(t,e){let n=t+Co,o=e-Co;return n<=o?{lo:n,hi:o}:{lo:(t+e)/2,hi:(t+e)/2}}l(We,"cornerClearanceRange");function Cn(t,e,n){let{lo:o,hi:s}=We(e,n);return Math.min(s,Math.max(o,t))}l(Cn,"clampToCornerClearance");function Xo(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}}l(Xo,"intersectRanges");function vn(t,e){return e==="left"||e==="right"?We(t.top,t.bottom):We(t.left,t.right)}l(vn,"clearanceRangeForSide");function Ke(t,e,n){let o=t.y>=n.top-nt&&t.y<=n.bottom+nt,s=t.x>=n.left-nt&&t.x<=n.right+nt;if(ht(t,e,nt)&&o){if(Math.abs(t.x-n.left)<nt)return"left";if(Math.abs(t.x-n.right)<nt)return"right"}if(dt(t,e,nt)&&s){if(Math.abs(t.y-n.top)<nt)return"top";if(Math.abs(t.y-n.bottom)<nt)return"bottom"}}l(Ke,"terminalSideForSegment");function Ae(t){return t==="left"||t==="right"}l(Ae,"isHorizontalSide");function Yo(t,e,n,o,s){let r=[],c=n?Ke(t,e,n):void 0,h=o?Ke(e,t,o):void 0;return n&&c&&Ae(c)===s&&r.push(vn(n,c)),o&&h&&Ae(h)===s&&r.push(vn(o,h)),r.length>0?Xo(r):void 0}l(Yo,"straightClearanceRange");function Ln(t,e,n,o,s){let r=Yo(t,e,n,o,s);if(!r)return;let c=s?t.y:t.x,h=Math.min(r.hi,Math.max(r.lo,c));if(!(Math.abs(h-c)<nt))return s?[{x:t.x,y:h},{x:e.x,y:h}]:[{x:h,y:t.y},{x:h,y:e.y}]}l(Ln,"clearStraightEndpointCornerAxis");function so(t,e,n){if(t.length!==2)return t;let[o,s]=t;return ht(o,s,nt)?Ln(o,s,e,n,!0)??t:dt(o,s,nt)?Ln(o,s,e,n,!1)??t:t}l(so,"clearStraightEndpointCornerConnections");function Go(t,e,n){return Ae(n)?{x:t.x,y:Cn(t.y,e.top,e.bottom)}:{x:Cn(t.x,e.left,e.right),y:t.y}}l(Go,"cornerClearedEndpoint");function zo(t,e,n,o,s,r){let c=t.map(h=>({...h}));for(let h=e;h>=0&&h<t.length;h+=n){let f=t[h];if(r&&!ht(f,o,nt)||!r&&!dt(f,o,nt))break;r?c[h].y=s.y:c[h].x=s.x}return c}l(zo,"moveCollinearEndpointRun");function Tn(t,e,n){if(t.length<2)return t;let o=n?0:t.length-1,s=n?1:-1,r=t[o],c=je(t,o,s);if(!c)return t;let h=Ke(r,c,e);if(!h)return t;let f=Ae(h),u=Go(r,e,h);return oe(r,u,nt)?t:zo(t,o,s,r,u,f)}l(Tn,"clearEndpointCornerConnection");function En(t,e,n){let o=Math.min(t.x,e.x)>=n.left-nt&&Math.max(t.x,e.x)<=n.right+nt,s=Math.min(t.y,e.y)>=n.top-nt&&Math.max(t.y,e.y)<=n.bottom+nt;if(Math.abs(t.y-n.top)<nt&&Math.abs(e.y-n.top)<nt&&o)return"top";if(Math.abs(t.y-n.bottom)<nt&&Math.abs(e.y-n.bottom)<nt&&o)return"bottom";if(Math.abs(t.x-n.left)<nt&&Math.abs(e.x-n.left)<nt&&s)return"left";if(Math.abs(t.x-n.right)<nt&&Math.abs(e.x-n.right)<nt&&s)return"right"}l(En,"borderSideForSegment");function Rn(t,e,n,o){switch(t){case"top":return dt(e,n,nt)&&n.y<o.top-nt;case"bottom":return dt(e,n,nt)&&n.y>o.bottom+nt;case"left":return ht(e,n,nt)&&n.x<o.left-nt;case"right":return ht(e,n,nt)&&n.x>o.right+nt}}l(Rn,"leavesOutward");function wn(t,e,n){if(t.length<3)return t;if(n){let r=En(t[0],t[1],e);return r&&Rn(r,t[1],t[2],e)?t.slice(1):t}let o=t.length-1,s=En(t[o-1],t[o],e);return s&&Rn(s,t[o-1],t[o-2],e)?t.slice(0,o):t}l(wn,"collapseOwnBorderStub");function $o(t,e,n){let o=t;if(e){let r=je(o,0,1);if(r){let c=Sn(r,o[0],e);c!==o[0]&&(o=[c,...o.slice(1)])}o=wn(o,e,!0)}if(n){let r=o.length-1,c=je(o,r,-1);if(c){let h=Sn(c,o[r],n,!0);h!==o[r]&&(o=[...o.slice(0,r),h])}o=wn(o,n,!1)}let s=so(o,e,n);return s!==o||o.length===2?s:(e&&(o=Tn(o,e,!0)),n&&(o=Tn(o,n,!1)),o)}l($o,"snapAndCollapseEndpoints");function An(t,e){for(let n of t){let o=oo(n,e,2);if(!o)continue;let s=mt(o.points,nt),r=$o(s,o.srcRect,o.dstRect);if(r.length<3){o.edge.points=r;continue}let c=[r[0],{...r[0]},...r.slice(1,-1),r[r.length-1],{...r[r.length-1]}];o.edge.points=c}}l(An,"prepareEdgeEndpointsForRenderer");function ro(t){return new Map(t.map(e=>[e.id,e]))}l(ro,"buildNodeMap");function Vo(t,e){let n=t.parentId,o=null;for(;n;){let s=e.get(n);if(!s?.isGroup)break;o=s.id,n=s.parentId}return o}l(Vo,"resolveTopLevelGroupId");function Nn(t,e){let n=0,o=t.parentId;for(;o;){let s=e.get(o);if(!s?.isGroup)break;n++,o=s.parentId}return n}l(Nn,"groupDepth");function io(t){let e=1/0,n=-1/0,o=1/0,s=-1/0;for(let r of t){let c=r.x,h=r.y;if(typeof c!="number"||typeof h!="number")continue;let f=r.width??0,u=r.height??0;e=Math.min(e,c-f/2),n=Math.max(n,c+f/2),o=Math.min(o,h-u/2),s=Math.max(s,h+u/2)}return e===1/0||o===1/0?null:{minX:e,maxX:n,minY:o,maxY:s}}l(io,"boundsForChildren");function Uo(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}l(Uo,"applyGroupBounds");function jo(t){let e=ro(t),n=t.filter(o=>o.isGroup&&o.parentId).sort((o,s)=>Nn(s,e)-Nn(o,e));for(let o of n){let s=t.filter(c=>c.parentId===o.id),r=io(s);r&&Uo(o,r)}}l(jo,"recomputeNestedGroupBounds");function qe(t,e){let n=t.nodes??[],o=t.edges??[],s=n.filter(f=>!f.isGroup),r=1/0,c=-1/0;for(let f of s){let u=f[e];typeof u=="number"&&(r=Math.min(r,u),c=Math.max(c,u))}if(!Number.isFinite(r)||!Number.isFinite(c))return!1;let h=l(f=>r+c-f,"mirror");for(let f of n){let u=f[e];typeof u=="number"&&(f[e]=h(u));let y=f.groupTitleRect;y&&(f.groupTitleRect=e==="x"?{...y,left:h(y.right),right:h(y.left)}:{...y,top:h(y.bottom),bottom:h(y.top)})}for(let f of o)for(let u of f.points??[])u[e]=h(u[e]);return!0}l(qe,"mirrorAxis");function Wo(t){return(t.nodes??[]).some(n=>!n.isGroup)?qe(t,"y"):!0}l(Wo,"applyBtDirectionTransform");function Ko(t,e="LR"){let n=t.nodes??[],o=t.edges??[],s=n.filter(B=>!B.isGroup),r=1/0,c=1/0;for(let B of s){let X=B.x??0,z=B.y??0;X<r&&(r=X),z<c&&(c=z)}if(!Number.isFinite(r)||!Number.isFinite(c))return!1;let h=36,f=0,u=0;for(let B of s)f+=B.width??0,u+=B.height??0;let y=f/s.length,g=u/s.length,L=g>0?Math.max(1,y/g):1;for(let B of s){let X=B.x??0,K=((B.y??0)-c)*L+h,ct=X-r;B.x=K,B.y=ct}for(let B of o)if(B.points)for(let X of B.points){let z=X.x,ct=(X.y-c)*L+h,pt=z-r;X.x=ct,X.y=pt}jo(n);let m=n.filter(B=>B.isGroup&&!B.parentId);if(m.length===0)return e==="RL"&&qe(t,"x"),!0;let d=ro(n),i=new Map;for(let B of n){if(B.isGroup)continue;let X=Vo(B,d);if(!X)continue;let z=i.get(X)??[];z.push(B),i.set(X,z)}let p=0;for(let B of m){let X=B.padding??0;X>p&&(p=X)}let C=[],I=1/0,T=-1/0;for(let B of m){let X=i.get(B.id)??[],z=io(X);z&&(I=Math.min(I,z.minX),T=Math.max(T,z.maxX),C.push({lane:B,contentTop:z.minY,contentBottom:z.maxY,centerY:(z.minY+z.maxY)/2}))}if(I===1/0||T===-1/0)return!0;let O=Math.max(0,T-I),S=Math.max(p,10),b=O+2*S,E=h+b,w=(I+T)/2-b/2-h,_=w+E/2,k=Math.max(p,h);C.sort((B,X)=>B.centerY-X.centerY);for(let B=0;B<C.length;B++){let X=C[B],z,K;if(B===0?z=X.contentTop-k:z=(C[B-1].contentBottom+X.contentTop)/2,B===C.length-1)K=X.contentBottom+k;else{let At=C[B+1];K=(X.contentBottom+At.contentTop)/2}let ct=Math.max(0,K-z),pt=(z+K)/2;X.lane.x=_,X.lane.y=pt,X.lane.width=E,X.lane.height=ct,X.lane.swimlaneContentTop=X.contentTop,X.lane.groupTitleRect={left:w,right:w+h,top:z,bottom:K}}return e==="RL"&&qe(t,"x"),!0}l(Ko,"applyLrDirectionTransform");var se=1e-6,lr=8,De=lr,fr=[0,De,-De,2*De,-2*De];function qo(t,e){let{nodeInfoById:n,realNodeRects:o}=tn(e);for(let s of t){if(s.isLayoutOnly)continue;let r=s.points;if(!r||r.length<4)continue;let c=Zn(mt(r,se),se);if(!c)continue;let{p3:h}=c,f=c.kind==="HVH",u=eo(s,n,se);if(!u)continue;let{srcId:y,dstId:g,srcInfo:L,dstInfo:m,collinearX:d,collinearY:i}=u;if(d||i)continue;let p,C=L.rect;for(let I of fr){let T,O,S;if(f){let _=m.cy>L.cy?C.bottom:C.top,k=L.cx+I;if(k<=C.left+se||k>=C.right-se)continue;T={x:k,y:_},O={x:k,y:h.y},S={x:h.x,y:h.y}}else{let _=m.cx>L.cx?C.right:C.left,k=L.cy+I;if(k<=C.top+se||k>=C.bottom-se)continue;T={x:_,y:k},O={x:h.x,y:k},S={x:h.x,y:h.y}}let b=oe(T,O,se),E=oe(O,S,se);if(b&&E||!b&&wt(T,O,o,[y],1)||!E&&wt(O,S,o,[g],1))continue;let A=!b&&Ve(T,O,t,s,{epsilon:se,skipDegenerateOther:!0}),F=!E&&Ve(O,S,t,s,{epsilon:se,skipDegenerateOther:!0});if(!(A||F)){b?p=[O,S]:E?p=[T,O]:p=[T,O,S];break}}p&&(s.points=p)}}l(qo,"portSwapToLShape");function Zo(t,e){let{realNodeRects:r,labelNodeRects:c}=me(e.values());for(let h of t){if(h.isLayoutOnly)continue;let f=h.points;if(!f||f.length<4)continue;let u=mt(f,.001);if(u.length<4)continue;let y=u.length-1,g=u[y],L=u[y-1],m=u[y-2],d=g.x-L.x,i=g.y-L.y,p=Math.hypot(d,i);if(p>=10||p<.001)continue;let C=L.x-m.x,I=L.y-m.y;if(Math.hypot(C,I)<.001)continue;let O=Et(L,g,.001),S=Rt(L,g,.001),b=Et(m,L,.001),E=Rt(m,L,.001);if(!(O&&E||S&&b))continue;let A=h.end,F=h.start,w=A?e.get(A):void 0;if(!w)continue;let _=w.x??0,k=w.y??0,B=qt(w);if(!B)continue;let X,z;if(E){let W=I<0;X={x:_,y:m.y},z={x:_,y:W?B.bottom:B.top}}else{let W=C>0;X={x:m.x,y:k},z={x:W?B.right:B.left,y:k}}if(wt(X,z,r,A?[A]:[],-2)||wt(X,z,c,[],-2))continue;if(F){let W=e.get(F),et=W?qt(W):void 0;if(et&&Jn(X,et,2))continue}let K=l((W,et)=>`${W.x.toFixed(3)},${W.y.toFixed(3)}|${et.x.toFixed(3)},${et.y.toFixed(3)}`,"ownSegmentKey"),ct=new Set;for(let W=0;W<u.length-1;W++)ct.add(K(u[W],u[W+1]));let pt=l((W,et)=>{for(let lt of t){if(lt===h||lt.isLayoutOnly)continue;let gt=lt.points;if(!(!gt||gt.length<2))for(let xt=0;xt<gt.length-1;xt++){let vt=gt[xt],Vt=gt[xt+1];if(!ct.has(K(vt,Vt))&&ae(W,et,vt,Vt,.001))return!0}}return!1},"segmentCrossesOtherEdge");if(pt(X,z))continue;if(y-3>=0){let W=u[y-3],et=[F,A].filter(lt=>!!lt);if(wt(W,X,r,et,-2)||pt(W,X))continue}let Ft=[...u.slice(0,y-2),X,z];h.points=Ft;let Q=h.labelNodeId;if(Q){let W=e.get(Q);if(W){let et=W.width??0,lt=W.height??0;if(et>0&&lt>0){let gt,xt,vt=-1;for(let Vt=0;Vt<Ft.length-1;Vt++){let Ut=Ft[Vt],jt=Ft[Vt+1],te=Math.hypot(jt.x-Ut.x,jt.y-Ut.y),Me=ht(Ut,jt,.001),fe=dt(Ut,jt,.001);(Me&&te>=et+2||fe&&te>=lt+2)&&te>vt&&(vt=te,gt=(Ut.x+jt.x)/2,xt=(Ut.y+jt.y)/2)}gt!==void 0&&xt!==void 0&&(W.x=gt,W.y=xt)}}}}}l(Zo,"collapseShortTerminalStub");var J=.001,kt=8,it=Re,mn=l((t,e)=>dt(t,e,J)||ht(t,e,J),"orthogonallyAligned");function Jo(t,e){let s=l((m,d)=>{let i=m.x??0,p=m.y??0,C=d.x-i,I=d.y-p,T=(m.width??0)/2,O=(m.height??0)/2;return Math.abs(I)*T>Math.abs(C)*O?(I<0&&(O=-O),{x:i+(I===0?0:O*C/I),y:p+O}):(C<0&&(T=-T),{x:i+T,y:p+(C===0?0:T*I/C)})},"rectIntersect"),r=l((m,d)=>{let i=mt(m.points??[]);if(i.length<2)return;let p=d?m.start:m.end,C=p?e.get(p):void 0,I=C?qt(C):void 0;if(!C||!p||!I)return;let T=d?i[0]:i[i.length-1],O=d?i[1]:i[i.length-2],S=s(C,T),b=T;if(mn(O,S)&&(b=O),dt(S,b,J))return{edge:m,edgeId:String(m.id??""),nodeId:p,atStart:d,orientation:"V",coord:S.x,min:Math.min(S.y,b.y),max:Math.max(S.y,b.y),boundary:S,railEnd:b,rect:I};if(ht(S,b,J))return{edge:m,edgeId:String(m.id??""),nodeId:p,atStart:d,orientation:"H",coord:S.y,min:Math.min(S.x,b.x),max:Math.max(S.x,b.x),boundary:S,railEnd:b,rect:I}},"terminalLaneFor"),c=l((m,d)=>Math.max(0,Math.min(m.max,d.max)-Math.max(m.min,d.min)),"projectedOverlapLength"),h=l((m,d)=>m.nodeId!==d.nodeId||m.orientation!==d.orientation?!1:m.orientation==="H"?(Math.abs(m.boundary.x-m.rect.left)<1||Math.abs(m.boundary.x-m.rect.right)<1)&&dt(m.boundary,d.boundary,1):(Math.abs(m.boundary.y-m.rect.top)<1||Math.abs(m.boundary.y-m.rect.bottom)<1)&&ht(m.boundary,d.boundary,1),"sameTerminalFace"),f=l((m,d)=>m.nodeId!==d.nodeId||m.orientation!==d.orientation?!1:c(m,d)>=kt&&Math.abs(m.coord-d.coord)<.5,"exactTerminalLaneConflict"),u=l((m,d)=>{if(m.nodeId!==d.nodeId||m.orientation!==d.orientation||m.orientation!=="H"||m.atStart===d.atStart)return!1;let i=c(m,d);if(i<kt)return!1;let p=m.rect.bottom-m.rect.top;return i<p||i>2*p?!1:h(m,d)&&Math.abs(m.coord-d.coord)<16},"nearTerminalLaneConflict"),y=l((m,d)=>{let i=mt(m.edge.points??[]);if(i.length<2)return;let p=m.orientation==="V"?{x:m.boundary.x+d,y:m.boundary.y}:{x:m.boundary.x,y:m.boundary.y+d},C=m.orientation==="V"?{x:m.railEnd.x+d,y:m.railEnd.y}:{x:m.railEnd.x,y:m.railEnd.y+d};if(!l(()=>Math.abs(m.boundary.y-m.rect.top)<1||Math.abs(m.boundary.y-m.rect.bottom)<1?ht(p,m.boundary,J)&&p.x>=m.rect.left+1&&p.x<=m.rect.right-1:Math.abs(m.boundary.x-m.rect.left)<1||Math.abs(m.boundary.x-m.rect.right)<1?dt(p,m.boundary,J)&&p.y>=m.rect.top+1&&p.y<=m.rect.bottom-1:!1,"boundaryStaysOnSameFace")())return;if(m.atStart){let b=i.length>1&&oe(i[1],m.railEnd,J),E=i.slice(b?2:1),A=E[0];return A&&!mn(A,C)?void 0:[p,C,...E]}let T=i.length>1&&oe(i[i.length-2],m.railEnd,J),O=i.slice(0,T?-2:-1),S=O[O.length-1];if(!(S&&!mn(S,C)))return[...O,C,p]},"shiftedCandidate"),g=l(m=>{let d=m.edge,i=mt(d.points??[]);if(i.length!==2)return!1;let p=d.start,C=d.end,I=p?e.get(p):void 0,T=C?e.get(C):void 0;if(!I||!T)return!1;let O=I.x??0,S=I.y??0,b=T.x??0,E=T.y??0,[A,F]=i;return ht(A,F,J)&&Math.abs(S-E)<1&&Math.abs(O-b)>1||dt(A,F,J)&&Math.abs(O-b)<1&&Math.abs(S-E)>1},"laneIsStraightCollinearConnector"),L=[-7,7,-14,14,-21,21];for(let m=0;m<8;m++){let d=t.filter(p=>!p.isLayoutOnly).flatMap(p=>[r(p,!0),r(p,!1)]).filter(p=>!!p),i=!1;for(let p=0;p<d.length&&!i;p++)for(let C=p+1;C<d.length&&!i;C++){let I=d[p],T=d[C];if(I.edge===T.edge||!(f(I,T)||u(I,T)))continue;let O=!f(I,T),S=[I,T].sort((b,E)=>{let A=g(b),F=g(E);return A!==F?Number(A)-Number(F):+!E.atStart-+!b.atStart});for(let b of S){for(let E of L){let A=y(b,E);if(!A)continue;let F=r({...b.edge,points:A},b.atStart);if(!(!F||d.some(w=>w.edge!==b.edge&&(f(F,w)||O&&u(F,w))))){b.edge.points=A,i=!0;break}}if(i)break}}if(!i)return}}l(Jo,"separateSharedRenderedTerminalLanes");function Qo(t,e){let{realNodeRects:s,labelNodeRects:r}=me(e.values()),c=l((f,u)=>{let y=f.start,g=f.end,L=it(u);if(L.length!==u.length-1)return!1;let m=[y,g].filter(d=>!!d);for(let d of L)if(wt(d.a,d.b,s,m,-2)||wt(d.a,d.b,r,[],-2))return!1;for(let d of t){if(d===f||d.isLayoutOnly)continue;let i=d.points;if(!(!i||i.length<2)){for(let p of L)for(let C of it(mt(i)))if(ie(p,C,.5)>=kt||ae(p.a,p.b,C.a,C.b,J))return!1}}return!0},"candidateIsSafe"),h=l((f,u)=>{if(u+4>=f.length)return;let y=f[u],g=f[u+1],L=f[u+2],m=f[u+3],d=f[u+4],i=Et(y,g)&&Rt(g,L)&&Et(L,m)&&Rt(m,d)&&dt(y,m,J)&&dt(y,d,J)&&dt(g,L,J)&&(g.x-y.x)*(m.x-L.x)<0,p=Rt(y,g)&&Et(g,L)&&Rt(L,m)&&Et(m,d)&&ht(y,m,J)&&ht(y,d,J)&&ht(g,L,J)&&(g.y-y.y)*(m.y-L.y)<0;if(i||p)return mt([...f.slice(0,u+1),d,...f.slice(u+5)]);if(u+5>=f.length)return;let C=f[u+5],I=Rt(y,g)&&Et(g,L)&&Rt(L,m)&&Et(m,d)&&Rt(d,C)&&dt(y,d,J)&&dt(y,C,J)&&dt(L,m,J)&&(L.x-g.x)*(d.x-m.x)<0,T=Et(y,g)&&Rt(g,L)&&Et(L,m)&&Rt(m,d)&&Et(d,C)&&ht(y,d,J)&&ht(y,C,J)&&ht(L,m,J)&&(L.y-g.y)*(d.y-m.y)<0;if(!(!I&&!T))return mt([...f.slice(0,u+1),C,...f.slice(u+6)])},"withoutDogleg");for(let f=0;f<8;f++){let u=!1;for(let y of t){if(y.isLayoutOnly)continue;let g=mt(y.points??[]);for(let L=0;L<=g.length-5;L++){let m=h(g,L);if(!(!m||!c(y,m))){y.points=m,u=!0;break}}if(u)break}if(!u)return}}l(Qo,"collapseRedundantRectangularDoglegs");function On(t,e){let{realNodeRects:r,labelNodeRects:c}=me(e.values()),h=t.filter(d=>!d.isLayoutOnly),f=l((d,i,p)=>mt(d===i?p??[]:d.points??[]),"pointsFor"),u=l((d,i)=>{let p=0;for(let C=0;C<h.length;C++){let I=it(f(h[C],d,i));for(let T=C+1;T<h.length;T++){let O=it(f(h[T],d,i));for(let S of I)for(let b of O)ae(S.a,S.b,b.a,b.b,J)&&p++}}return p},"strictCrossingCount"),y=l(d=>{let i=it(d);if(i.length!==3)return;let p=i[1];if(!(i[0].horizontal===p.horizontal||i[2].horizontal===p.horizontal))return{index:p.index,horizontal:p.horizontal,vertical:p.vertical,segment:p}},"middleRail"),g=l((d,i)=>{let p=[d.start,d.end].filter(C=>!!C);return r.filter(C=>{if(p.includes(C.id))return!1;let I=C.rect;return i.horizontal?$t(i.a.x,i.b.x,I.left,I.right)>=kt&&i.a.y>=I.top-2&&i.a.y<=I.bottom+2:$t(i.a.y,i.b.y,I.top,I.bottom)>=kt&&i.a.x>=I.left-2&&i.a.x<=I.right+2})},"blockingRectsFor"),L=l((d,i,p)=>{let C=d.map(T=>({...T}));if(i.horizontal)C[i.index].y=p,C[i.index+1].y=p;else if(i.vertical)C[i.index].x=p,C[i.index+1].x=p;else return;let I=ce(mt(C));return it(I).length===I.length-1?I:void 0},"candidateByMovingRail"),m=l((d,i,p)=>{let C=[d.start,d.end].filter(T=>!!T),I=it(i);if(I.length!==i.length-1)return!1;for(let T of I)if(wt(T.a,T.b,r,C,-2)||wt(T.a,T.b,c,[],-2))return!1;for(let T of h)if(T!==d){for(let O of I)for(let S of it(f(T)))if(ie(O,S,.5)>=kt)return!1}return u(d,i)<=p},"candidateIsSafe");for(let d=0;d<8;d++){let i=u(),p=!1;for(let C of h){let I=f(C),T=y(I);if(!T)continue;let O=g(C,T.segment);if(O.length===0)continue;let S=T.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 E=L(I,T.segment,b);if(!(!E||!m(C,E,i))){C.points=E,p=!0;break}}if(p)break}if(!p)return}}l(On,"liftObstacleHuggingSameSideRails");function Bn(t,e){let o=l(f=>{let u=f.groupTitleRect;if(!(!u||typeof u.left!="number"||typeof u.right!="number"||typeof u.top!="number"||typeof u.bottom!="number"||!Number.isFinite(u.left)||!Number.isFinite(u.right)||!Number.isFinite(u.top)||!Number.isFinite(u.bottom)||u.right<=u.left||u.bottom<=u.top))return{left:u.left,right:u.right,top:u.top,bottom:u.bottom}},"validTitleRect"),s=l(f=>{if(!f.isGroup||f.parentId)return;let u=f.direction,y=typeof u=="string"?u.toUpperCase():"";if(y==="LR"||y==="RL"||y==="BT")return;let g=o(f),L=f.y,m=f.height;if(!g||typeof L!="number"||typeof m!="number"||!Number.isFinite(L)||!Number.isFinite(m)||m<=0)return;let d=g.right-g.left,i=g.bottom-g.top;if(!(i<=0||d<i))return{node:f,rect:g}},"topLaneTitleFor"),r=l((f,u)=>{if(!f.horizontal)return!1;let y=f.a.y;return y<=u.top+J||y>=u.bottom-J?!1:$t(f.a.x,f.b.x,u.left,u.right)>=kt},"horizontalSegmentIntersectsTitle"),c=[...e.values()].map(s).filter(f=>!!f);if(c.length===0)return;let h=0;for(let f of t){if(f.isLayoutOnly)continue;let u=mt(f.points??[]);for(let y of it(u))for(let g of c)r(y,g.rect)&&(h=Math.max(h,g.rect.bottom-y.a.y+4))}if(!(h<=J))for(let f of c){let u=f.node.y,y=f.node.height;typeof u!="number"||typeof y!="number"||!Number.isFinite(u)||!Number.isFinite(y)||y<=0||(f.node.y=u-h/2,f.node.height=y+h,f.node.groupTitleRect={...f.rect,top:f.rect.top-h,bottom:f.rect.bottom-h})}}l(Bn,"liftTopLaneTitleBandsAboveRails");function Fn(t,e){let o=l(u=>{let y=u.groupTitleRect;if(!(!y||typeof y.left!="number"||typeof y.right!="number"||typeof y.top!="number"||typeof y.bottom!="number"||!Number.isFinite(y.left)||!Number.isFinite(y.right)||!Number.isFinite(y.top)||!Number.isFinite(y.bottom)||y.right<=y.left||y.bottom<=y.top))return{left:y.left,right:y.right,top:y.top,bottom:y.bottom}},"validTitleRect"),s=l(u=>{if(!u.isGroup||u.parentId||u.direction!=="LR")return;let g=o(u),L=u.x,m=u.width;if(!g||typeof L!="number"||typeof m!="number"||!Number.isFinite(L)||!Number.isFinite(m)||m<=0)return;let d=g.right-g.left,i=g.bottom-g.top;if(!(d<=0||i<d))return{node:u,rect:g}},"leftLaneTitleFor"),r=l((u,y)=>{if(!u.vertical)return!1;let g=u.a.x;return g<=y.left+J||g>=y.right-J?!1:$t(u.a.y,u.b.y,y.top,y.bottom)>=kt},"verticalSegmentIntersectsTitle"),c=l((u,y)=>{if(!u.horizontal)return!1;let g=u.a.y;return g<=y.top+J||g>=y.bottom-J?!1:$t(u.a.x,u.b.x,y.left,y.right)>=kt},"horizontalSegmentIntersectsTitle"),h=[...e.values()].map(s).filter(u=>!!u);if(h.length===0)return;let f=0;for(let u of t){if(u.isLayoutOnly)continue;let y=mt(u.points??[]);for(let g of it(y))for(let L of h)if(r(g,L.rect))f=Math.max(f,L.rect.right-g.a.x+4);else if(c(g,L.rect)){let m=Math.min(g.a.x,g.b.x);f=Math.max(f,L.rect.right-m+4)}}if(!(f<=J))for(let u of h){let y=u.node.x,g=u.node.width;typeof y!="number"||typeof g!="number"||!Number.isFinite(y)||!Number.isFinite(g)||g<=0||(u.node.x=y-f/2,u.node.width=g+f,u.node.groupTitleRect={...u.rect,left:u.rect.left-f,right:u.rect.right-f})}}l(Fn,"shiftLeftLaneTitleBandsLeftOfRails");function ts(t,e){let{realNodeRects:s}=me(e.values()),r=t.filter(i=>!i.isLayoutOnly),c=l((i,p=new Map)=>mt(p.get(i)??i.points??[]),"replacementPointsFor"),h=l((i=new Map)=>{let p=0;for(let C=0;C<r.length;C++){let I=it(c(r[C],i));for(let T=C+1;T<r.length;T++){let O=it(c(r[T],i));for(let S of I)for(let b of O)ae(S.a,S.b,b.a,b.b,J)&&p++}}return p},"crossingCount"),f=l((i=new Map)=>r.reduce((p,C)=>p+Qt(c(C,i)),0),"totalBends"),u=l(i=>{let p=c(i);if(p.length<4)return;let C=p[p.length-2],I=p[p.length-1];if(!(!Et(C,I,J)&&!Rt(C,I,J)))return{tailStart:C,terminal:I}},"terminalTailFor"),y=l((i,p)=>{let C=c(i);if(C.length<3)return;let I=C[0],T=C[1],O;if(Et(I,T,J))O={x:T.x,y:p.tailStart.y};else if(Rt(I,T,J))O={x:p.tailStart.x,y:T.y};else return;let S=ce(mt([I,T,O,p.tailStart,p.terminal]));return it(S).length===S.length-1?S:void 0},"candidateWithDestinationTail"),g=l((i,p)=>{let C=[i.start,i.end].filter(I=>!!I);for(let I of it(p))if(wt(I.a,I.b,s,C,-2))return!0;return!1},"pathHasNodeHit"),L=l((i,p,C)=>{for(let I of r)if(I!==i){for(let T of it(p))for(let O of it(c(I,C)))if(ie(T,O,.5)>=kt)return!0}return!1},"pathHasSharedTrack"),m=l((i,p,C)=>!g(i,p)&&!L(i,p,C),"candidateIsSafe"),d=l(()=>{let i=new Map;for(let p of r){let C=p.end;if(!C||!e.has(C)||c(p).length<4)continue;let T=i.get(C)??[];T.push(p),i.set(C,T)}return i},"edgesByDestination");for(let i=0;i<4;i++){let p=h();if(p===0)return;let C=f(),I,T=p,O=C;for(let S of d().values())for(let b=0;b<S.length;b++)for(let E=b+1;E<S.length;E++){let A=S[b],F=S[E],w=u(A),_=u(F);if(!w||!_)continue;let k=y(A,_),B=y(F,w);if(!k||!B)continue;let X=new Map([[A,k],[F,B]]);if(!m(A,k,X)||!m(F,B,X))continue;let z=h(X),K=f(X);z>=p||z>T||z===T&&K>=O||(I=X,T=z,O=K)}if(!I)return;for(let[S,b]of I)S.points=b}}l(ts,"swapDestinationTerminalTailsToReduceCrossings");function es(t,e){let{realNodeRects:c,labelNodeRects:h}=me(e.values()),f=t.filter(S=>!S.isLayoutOnly),u=l((S,b=new Map)=>mt(b.get(S)??S.points??[]),"replacementPointsFor"),y=l((S=new Map)=>{let b=0;for(let E=0;E<f.length;E++){let A=it(u(f[E],S));for(let F=E+1;F<f.length;F++){let w=it(u(f[F],S));for(let _ of A)for(let k of w)ae(_.a,_.b,k.a,k.b,J)&&b++}}return b},"strictCrossingCount"),g=l((S=new Map)=>f.reduce((b,E)=>b+Qt(u(E,S)),0),"totalBends"),L=l(S=>{let b=S.start,E=S.end,A=b?e.get(b):void 0,F=E?e.get(E):void 0,w=A?qt(A):void 0,_=F?qt(F):void 0;return w&&_?{src:w,dst:_}:void 0},"endpointRectsFor"),m=l((S,b,E)=>{if(E.index<=0||E.index+1>=b.length-1)return;let A=L(S);if(A){if(E.vertical){let F=E.a.x,w=Math.min(A.src.left,A.dst.left),_=Math.max(A.src.right,A.dst.right),k=F<w-J?"left":F>_+J?"right":void 0;return k?{edge:S,points:b,segmentIndex:E.index,axis:"vertical",side:k,coord:F,min:Math.min(E.a.y,E.b.y),max:Math.max(E.a.y,E.b.y)}:void 0}if(E.horizontal){let F=E.a.y,w=Math.min(A.src.top,A.dst.top),_=Math.max(A.src.bottom,A.dst.bottom),k=F<w-J?"top":F>_+J?"bottom":void 0;return k?{edge:S,points:b,segmentIndex:E.index,axis:"horizontal",side:k,coord:F,min:Math.min(E.a.x,E.b.x),max:Math.max(E.a.x,E.b.x)}:void 0}}},"externalRailForSegment"),d=l(()=>{let S=[];for(let b of f){let E=u(b);for(let A of it(E)){let F=m(b,E,A);F&&S.push(F)}}return S},"collectExternalRails"),i=l((S,b)=>S.edge!==b.edge&&S.axis===b.axis&&S.side===b.side&&$t(S.min,S.max,b.min,b.max)>=kt,"railsInteract"),p=l(S=>{let b=[],E=new Set;for(let A of S){if(E.has(A))continue;let F=[A],w=[];for(E.add(A);F.length>0;){let _=F.pop();w.push(_);for(let k of S)!E.has(k)&&i(_,k)&&(E.add(k),F.push(k))}w.length>1&&b.push(w)}return b},"connectedComponents"),C=l(S=>{let b=[];for(let E of S)b.some(A=>Math.abs(A-E.coord)<J)||b.push(E.coord);for(;b.length<S.length;){let E=Math.min(...b),A=Math.max(...b),F=S[0].side;b.push(F==="left"||F==="top"?E-12*(S.length-b.length):A+12*(S.length-b.length))}return b},"uniqueCoordsFor"),I=l(S=>{let b=S.map(F=>F.coord),E=C(S),A=[];if(S.length<=6){let F=new Array(E.length).fill(!1),w=[],_=l(()=>{if(w.length===S.length){w.some((k,B)=>Math.abs(k-b[B])>=J)&&A.push([...w]);return}for(let[k,B]of E.entries())F[k]||(F[k]=!0,w.push(B),_(),w.pop(),F[k]=!1)},"visit");return _(),A}for(let F=0;F<b.length;F++)for(let w=F+1;w<b.length;w++){let _=[...b];[_[F],_[w]]=[_[w],_[F]],A.push(_)}return A},"coordinateAssignmentsFor"),T=l((S,b)=>{let E=new Map;for(let[F,w]of S.entries()){let _=b[F],k=E.get(w.edge)??w.points.map(B=>({x:B.x,y:B.y}));w.axis==="vertical"?(k[w.segmentIndex].x=_,k[w.segmentIndex+1].x=_):(k[w.segmentIndex].y=_,k[w.segmentIndex+1].y=_),E.set(w.edge,k)}let A=new Map;for(let[F,w]of E){let _=ce(mt(w));if(it(_).length!==_.length-1)return;A.set(F,_)}return A},"replacementsForAssignment"),O=l(S=>{for(let[b,E]of S){let A=[b.start,b.end].filter(F=>!!F);for(let F of it(E))if(wt(F.a,F.b,c,A,-2)||wt(F.a,F.b,h,[],-2))return!1}for(let b=0;b<f.length;b++){let E=f[b],A=S.has(E),F=it(u(E,S));for(let w=b+1;w<f.length;w++){let _=f[w];if(!A&&!S.has(_))continue;let k=it(u(_,S));for(let B of F)for(let X of k)if(ie(B,X,.5)>=kt)return!1}}return!0},"candidateIsSafe");for(let S=0;S<4;S++){let b=y();if(b===0)return;let E,A=b,F=g(),w=Number.POSITIVE_INFINITY;for(let _ of p(d()))for(let k of I(_)){let B=T(_,k);if(!B||!O(B))continue;let X=y(B);if(X>=b)continue;let z=g(B),K=_.reduce((ct,pt,At)=>ct+Math.abs(k[At]-pt.coord),0);X>A||X===A&&(z>F||z===F&&K>=w)||(E=B,A=X,F=z,w=K)}if(!E)return;for(let[_,k]of E)_.points=k}}l(es,"reassignCrossingExternalRailChannels");function ns(t,e){let{realNodeRects:s,labelNodeRects:r}=me(e.values()),c=t.filter(d=>!d.isLayoutOnly),h=l((d,i,p)=>mt(d===i?p??[]:d.points??[]),"pointsFor"),f=l(d=>it(d).reduce((i,p)=>{let C=p.a.x-p.b.x,I=p.a.y-p.b.y;return i+Math.hypot(C,I)},0),"pathLength"),u=l((d,i)=>{let p=0;for(let C=0;C<c.length;C++){let I=it(h(c[C],d,i));for(let T=C+1;T<c.length;T++){let O=it(h(c[T],d,i));for(let S of I)for(let b of O)ae(S.a,S.b,b.a,b.b,J)&&p++}}return p},"strictCrossingCount"),y=l((d,i)=>{if(d.horizontal){let p=d.a.y;return(Math.abs(p-i.top)<1||Math.abs(p-i.bottom)<1)&&$t(d.a.x,d.b.x,i.left,i.right)>=kt}if(d.vertical){let p=d.a.x;return(Math.abs(p-i.left)<1||Math.abs(p-i.right)<1)&&$t(d.a.y,d.b.y,i.top,i.bottom)>=kt}return!1},"segmentRunsAlongRectBorder"),g=l(d=>{let i=[d.start,d.end].filter(C=>!!C),p=[];for(let C of i){let I=e.get(C),T=I?qt(I):void 0;T&&p.push(T)}return p},"endpointRectsFor"),L=l((d,i)=>{if(i+3>=d.length)return[];let p=d[i],C=d[i+1],I=d[i+2],T=d[i+3],O=Et(p,C,J)&&Rt(C,I,J)&&Et(I,T,J),S=Rt(p,C,J)&&Et(C,I,J)&&Rt(I,T,J);if(!O&&!S)return[];if(!(O?Math.sign(C.x-p.x)!==Math.sign(T.x-I.x):Math.sign(C.y-p.y)!==Math.sign(T.y-I.y)))return[];let E=dt(p,T,J)||ht(p,T,J)?[]:[{x:p.x,y:T.y},{x:T.x,y:p.y}],A=E.length===0?[[...d.slice(0,i+1),...d.slice(i+3)]]:E.map(w=>[...d.slice(0,i+1),w,...d.slice(i+3)]),F=new Set;return A.map(w=>ce(mt(w))).filter(w=>{if(it(w).length!==w.length-1||!w.some(k=>oe(k,T,J)))return!1;let _=w.map(k=>`${k.x.toFixed(3)},${k.y.toFixed(3)}`).join("|");return F.has(_)?!1:(F.add(_),!0)})},"shortcutCandidatesAt"),m=l((d,i,p)=>{let C=[d.start,d.end].filter(T=>!!T),I=g(d);for(let T of it(i))if(wt(T.a,T.b,s,C,-2)||wt(T.a,T.b,r,[],-2)||I.some(O=>y(T,O)))return!1;for(let T of c)if(T!==d){for(let O of it(i))for(let S of it(h(T)))if(ie(O,S,.5)>=kt)return!1}return u(d,i)<=p},"candidateIsSafe");for(let d=0;d<8;d++){let i=u(),p,C,I=i,T=Number.POSITIVE_INFINITY,O=Number.POSITIVE_INFINITY;for(let S of c){let b=h(S),E=Qt(b,J),A=f(b);for(let F=0;F<=b.length-4;F++)for(let w of L(b,F)){let _=Qt(w,J),k=f(w);if(!(_<E||_===E&&k<A-J)||!m(S,w,i))continue;let X=u(S,w);X>I||X===I&&(_>T||_===T&&k>=O)||(p=S,C=w,I=X,T=_,O=k)}}if(!p||!C)return;p.points=C}}l(ns,"shortcutRedundantOrthogonalJogs");function os(t,e){let c=[];for(let N of e.values()){if(N.isGroup||N.isEdgeLabel)continue;let H=N.x??0,D=N.y??0,U=qt(N);U&&c.push({id:String(N.id??""),cx:H,cy:D,rect:U})}if(c.length===0)return;let h=new Map(c.map(N=>[N.id,N])),f=c.map(N=>({id:N.id,rect:N.rect})),u=["top","bottom","left","right"],y={top:Math.min(...c.map(N=>N.rect.top))-20,bottom:Math.max(...c.map(N=>N.rect.bottom))+20,left:Math.min(...c.map(N=>N.rect.left))-20,right:Math.max(...c.map(N=>N.rect.right))+20},g=t.filter(N=>!N.isLayoutOnly),L=new Map(g.map((N,H)=>[N,H])),m=l(N=>{let H=N==="left"||N==="top"?-1:1,D=[];for(let U=0;U<=2;U++)D.push(y[N]+H*20*U);return D},"outwardTracksForSide"),d=l((N,H=new Map)=>mt(H.get(N)??N.points??[]),"replacementPointsFor"),i=l((N,H)=>{let D=0;for(let U of N)for(let a of H)ae(U.a,U.b,a.a,a.b,J)&&D++;return D},"crossingCountBetweenSegments"),p=l((N,H)=>i(it(N),it(H)),"crossingCountBetweenPaths"),C=l((N=new Map)=>{let H=0,D=[],U=new Set,a=[],x=l(M=>{U.has(M)||(U.add(M),a.push(M))},"addEdge");for(let M=0;M<g.length;M++){let v=g[M],R=d(v,N);for(let P=M+1;P<g.length;P++){let j=g[P],Z=p(R,d(j,N));Z>0&&(H+=Z,D.push({first:v,second:j,count:Z}),x(v),x(j))}}return a.sort((M,v)=>(L.get(M)??0)-(L.get(v)??0)),{count:H,pairs:D,edgeSet:U,edges:a}},"crossingSnapshot"),I=l((N,H)=>{let D=new Set(H.keys());if(D.size===0)return N.count;let U=0;for(let x of N.pairs)(D.has(x.first)||D.has(x.second))&&(U+=x.count);let a=0;for(let x=0;x<g.length;x++){let M=g[x],v=D.has(M),R=d(M,H);for(let P=x+1;P<g.length;P++){let j=g[P];!v&&!D.has(j)||(a+=p(R,d(j,H)))}}return N.count-U+a},"crossingCountWithReplacements"),T=l(N=>{let H=new Map;for(let a of N.pairs){let x=H.get(a.first)??new Set;x.add(a.second),H.set(a.first,x);let M=H.get(a.second)??new Set;M.add(a.first),H.set(a.second,M)}let D=[],U=new Set;for(let a of N.edges){if(U.has(a))continue;let x=[a],M=[];for(U.add(a);x.length>0;){let v=x.pop();M.push(v);for(let R of H.get(v)??[])U.has(R)||(U.add(R),x.push(R))}M.sort((v,R)=>(L.get(v)??0)-(L.get(R)??0)),M.length>1&&D.push(M)}return D},"crossingComponents"),O=l(N=>[N.start,N.end].filter(H=>!!H),"endpointIdsFor"),S=l(N=>{let H=[];for(let D of T(N)){let U=new Set(D),a=new Set(D.flatMap(M=>O(M))),x=[...D];for(let M of g)U.has(M)||O(M).some(v=>a.has(v))&&x.push(M);x.sort((M,v)=>(L.get(M)??0)-(L.get(v)??0)),H.push(x)}return H},"pairSearchGroups"),b=l((N,H,D)=>I(N,new Map([[H,D]])),"crossingCountWithSingleReplacement"),E=l(N=>{let H=new Map;for(let D of N.pairs)H.set(D.first,(H.get(D.first)??0)+D.count),H.set(D.second,(H.get(D.second)??0)+D.count);return H},"currentCrossingsByEdge"),A=l(N=>N.slice(1).reduce((H,D,U)=>{let a=N[U];return H+Math.abs(D.x-a.x)+Math.abs(D.y-a.y)},0),"pathLength"),F=l((N=new Map)=>g.reduce((H,D)=>H+Qt(d(D,N)),0),"totalBends"),w=l((N=new Map)=>g.reduce((H,D)=>H+A(d(D,N)),0),"totalLength"),_=l((N,H,D=new Map)=>{let U=it(H);for(let a of g)if(a!==N){for(let x of U)for(let M of it(d(a,D)))if(ie(x,M,.5)>=kt)return!0}return!1},"pathHasSegmentConflict"),k=l((N,H)=>{let D=[N.start,N.end].filter(U=>!!U);for(let U of it(H))if(wt(U.a,U.b,f,D,-2))return!0;return!1},"pathHitsNode"),B=l((N,H)=>{let D=ce(mt(H));it(D).length===D.length-1&&N.push(D)},"pushOrthogonalCandidate"),X=l(N=>N==="left"||N==="right","sideIsHorizontal"),z=l((N,H,D)=>{switch(H){case"left":return Math.min(N.x,D.x)-20;case"right":return Math.max(N.x,D.x)+20;case"top":return Math.min(N.y,D.y)-20;case"bottom":return Math.max(N.y,D.y)+20}},"localTrackForSameSide"),K=l((N,H,D,U)=>{let a=D==="left"||D==="top"?-1:1,x=[z(H,D,U),y[D]];for(let M of x)for(let v=0;v<=2;v++)B(N,to(H,D,U,M+a*20*v))},"addSameSideCandidates"),ct=l((N,H,D,U,a)=>{for(let x of m(D))for(let M of m(a))B(N,[H,{x,y:H.y},{x,y:M},{x:U.x,y:M},U])},"addHorizontalToVerticalCandidates"),pt=l((N,H,D,U,a)=>{for(let x of m(D))for(let M of m(a))B(N,[H,{x:H.x,y:x},{x:M,y:x},{x:M,y:U.y},U])},"addVerticalToHorizontalCandidates"),At=l((N,H,D,U,a)=>{let x=[...m("top"),...m("bottom")];for(let M of m(D))for(let v of m(a))for(let R of x)B(N,[H,{x:M,y:H.y},{x:M,y:R},{x:v,y:R},{x:v,y:U.y},U])},"addHorizontalPairCandidates"),Ft=l((N,H,D,U,a)=>{let x=[...m("left"),...m("right")];for(let M of m(D))for(let v of m(a))for(let R of x)B(N,[H,{x:H.x,y:M},{x:R,y:M},{x:R,y:v},{x:U.x,y:v},U])},"addVerticalPairCandidates"),Q=l(N=>{let H=new Set;return N.map(D=>mt(D)).filter(D=>{let U=D.map(a=>`${a.x.toFixed(3)},${a.y.toFixed(3)}`).join("|");return H.has(U)||D.length<2?!1:(H.add(U),!0)})},"dedupeCandidatePaths"),W=l((N,H,D,U)=>{let a=[],x=Qn(N,H,D,U,20,J);x&&B(a,x),H===U&&K(a,N,H,D);let M=X(H),v=X(U);return M&&!v?ct(a,N,H,D,U):!M&&v?pt(a,N,H,D,U):M?At(a,N,H,D,U):Ft(a,N,H,D,U),Q(a)},"buildCandidatesForSides"),et=l((N,H,D,U)=>{let a=[...m("left"),...m("right")],x=[...m("top"),...m("bottom")];for(let M of u){let v=Ie(U,M),R=M==="top"||M==="bottom"?m(M):x;for(let P of a){B(N,[H,D,{x:P,y:D.y},{x:P,y:v.y},v]);for(let j of R)B(N,[H,D,{x:P,y:D.y},{x:P,y:j},{x:v.x,y:j},v])}}},"addVerticalDepartureOuterTrackCandidates"),lt=l((N,H,D,U)=>{let a=[...m("left"),...m("right")],x=[...m("top"),...m("bottom")];for(let M of u){let v=Ie(U,M),R=M==="left"||M==="right"?m(M):a;for(let P of x){B(N,[H,D,{x:D.x,y:P},{x:v.x,y:P},v]);for(let j of R)B(N,[H,D,{x:D.x,y:P},{x:j,y:P},{x:j,y:v.y},v])}}},"addHorizontalDepartureOuterTrackCandidates"),gt=l(N=>{let H=N.start,D=N.end,U=D?h.get(D):void 0;if(!H||!U)return[];let a=mt(N.points??[]);if(a.length<4)return[];let x=a[0],M=a[1],v=[];return Rt(x,M,J)?et(v,x,M,U):Et(x,M,J)&&lt(v,x,M,U),v},"terminalPreservingOuterTrackCandidates"),xt=l(N=>{let H=N.start,D=N.end,U=H?h.get(H):void 0,a=D?h.get(D):void 0;if(!U||!a)return[];let x=[];for(let M of u){let v=Ie(U,M);for(let R of u)x.push(...W(v,M,Ie(a,R),R))}return x.push(...gt(N)),x},"candidatePathsFor"),vt=l(()=>new Map(g.map(N=>[N,it(d(N))])),"currentSegmentsByEdge"),Vt=l((N,H,D)=>{let U=new Set;for(let a of g){if(a===N)continue;let x=D.get(a)??it(d(a));H.some(M=>x.some(v=>ie(M,v,.5)>=kt))&&U.add(a)}return U},"sharedTrackConflictsFor"),Ut=l((N,H,D,U)=>{let a=new Set;return xt(N).map(M=>ce(mt(M))).filter(M=>{if(k(N,M))return!1;let v=M.map(R=>`${R.x.toFixed(3)},${R.y.toFixed(3)}`).join("|");return a.has(v)||M.length<2?!1:(a.add(v),!0)}).map(M=>{let v=it(M),R=0;for(let P of g)P!==N&&(R+=i(v,D.get(P)??it(d(P))));return{candidate:M,candidateSegments:v,crossings:H.count-(U.get(N)??0)+R,bends:Qt(M,J),totalBends:Qt(M),length:A(M)}}).filter(({crossings:M})=>M<=H.count).sort((M,v)=>M.crossings-v.crossings||M.bends-v.bends||M.length-v.length).slice(0,48).map(M=>({path:M.candidate,segments:M.candidateSegments,sharedTrackConflicts:Vt(N,M.candidateSegments,D),totalBends:M.totalBends,length:M.length}))},"pairCandidatesFor"),jt=l((N,H,D,U,a,x)=>{let M=0;for(let R of N.pairs)(R.first===H||R.second===H||R.first===U||R.second===U)&&(M+=R.count);let v=i(D.segments,a.segments);for(let R of g){if(R===H||R===U)continue;let P=x.get(R)??it(d(R));v+=i(D.segments,P)+i(a.segments,P)}return N.count-M+v},"pairCrossingCount"),te=l((N,H)=>{for(let D of N.sharedTrackConflicts)if(D!==H)return!1;return!0},"conflictsOnlyWith"),Me=l((N,H)=>N.segments.some(D=>H.segments.some(U=>ie(D,U,.5)>=kt)),"candidatesShareTrack"),fe=l((N,H,D,U)=>te(H,D.edge)&&te(U,N.edge)&&!Me(H,U),"pairCandidatesAreCompatible"),Se=l((N,H,D,U,a)=>{let x=jt(N.current,H.edge,D,U.edge,a,N.baseSegments);if(!(x>=N.current.count))return{replacements:new Map([[H.edge,D.path],[U.edge,a.path]]),crossings:x,bends:N.currentBends-(N.baseBendsByEdge.get(H.edge)??0)-(N.baseBendsByEdge.get(U.edge)??0)+D.totalBends+a.totalBends,length:N.currentLength-(N.baseLengthByEdge.get(H.edge)??0)-(N.baseLengthByEdge.get(U.edge)??0)+D.length+a.length}},"scorePairReplacement"),sn=l((N,H)=>N.crossings<H.crossings||N.crossings===H.crossings&&(N.bends<H.bends||N.bends===H.bends&&N.length<H.length),"pairScoreIsBetter"),rn=l((N,H,D,U)=>{let a=U;for(let x of H.candidates)for(let M of D.candidates){if(!fe(H,x,D,M))continue;let v=Se(N,H,x,D,M);v&&sn(v,a)&&(a=v)}return a},"bestScoreForOptionPair"),cn=l(N=>{let H=F(),D=w(),U=vt(),a=E(N),x=new Map(g.map(Z=>[Z,Qt(d(Z))])),M=new Map(g.map(Z=>[Z,A(d(Z))])),v=new Map,R=S(N);for(let Z of R)for(let V of Z){if(v.has(V))continue;let G=Ut(V,N,U,a);G.length>0&&v.set(V,{edge:V,candidates:G})}let P={replacements:new Map,crossings:N.count,bends:H,length:D},j={current:N,currentBends:H,currentLength:D,baseBendsByEdge:x,baseLengthByEdge:M,baseSegments:U};for(let Z of R){let V=new Set(Z.filter(ot=>N.edgeSet.has(ot))),G=Z.map(ot=>v.get(ot)).filter(ot=>!!ot);for(let ot=0;ot<G.length;ot++){let rt=G[ot];for(let st=ot+1;st<G.length;st++){let tt=G[st];!V.has(rt.edge)&&!V.has(tt.edge)||(P=rn(j,rt,tt,P))}}}return P.replacements.size>0?P.replacements:void 0},"bestPairedReplacement");for(let N=0;N<4;N++){let H=C(),D=H.count;if(D===0)return;let U,a,x=D,M=Number.POSITIVE_INFINITY;for(let R of H.edges){let P=Qt(d(R),J);for(let j of xt(R)){let Z=k(R,j),V=!Z&&_(R,j),G=b(H,R,j),ot=Qt(j,J);Z||V||!(G<D||G===D&&ot<P)||G>x||G===x&&ot>=M||(U=R,a=j,x=G,M=ot)}}if(U&&a){U.points=a;continue}let v=cn(H);if(!v)return;for(let[R,P]of v)R.points=P}}l(os,"resolveRenderedOrthogonalCrossings");var ge=.001,dr=8;function ss(t,e){let{nodeInfoById:n,realNodeRects:o}=tn(e),s=["top","bottom","left","right"],r=20,c={top:Math.min(...o.map(i=>i.rect.top))-r,bottom:Math.max(...o.map(i=>i.rect.bottom))+r,left:Math.min(...o.map(i=>i.rect.left))-r,right:Math.max(...o.map(i=>i.rect.right))+r},h=l((i,p,C,I)=>{let T=[],O=Qn(i,p,C,I,r,ge);return O&&T.push(O),p===I&&T.push(to(i,p,C,c[p])),T},"buildOrthogonalPathCandidates"),f=l((i,p)=>{for(let C=0;C<i.length-1;C++){let I=i[C],T=i[C+1];if(wt(I,T,o,p,1))return!0}return!1},"pathHitsNode"),u=l((i,p,C=!1)=>{let I=0,T=Re(i,ge),O=p.start,S=p.end;for(let b of t){if(b===p||b.isLayoutOnly)continue;let E=b.start,A=b.end;if(!C&&O&&S&&(E===O||E===S||A===O||A===S))continue;let F=b.points;if(!(!F||F.length<2))for(let w of T)for(let _ of Re(F,ge)){if(no(w.a,w.b,_.a,_.b,ge,ge)){I++;continue}ie(w,_,ge)>=dr&&I++}}return I},"pathConflictCount"),y=4,g=l((i,p)=>{let C=Math.abs(i.y-p.rect.top),I=Math.abs(i.y-p.rect.bottom),T=Math.abs(i.x-p.rect.left),O=Math.abs(i.x-p.rect.right),S="top",b=C;return I<b&&(S="bottom",b=I),T<b&&(S="left",b=T),O<b&&(S="right",b=O),S},"nearestSideOfRect"),L=new Map,m=l((i,p,C)=>{let I=L.get(i)??[];I.push({side:p,edgeId:C}),L.set(i,I)},"addFaceClaim");for(let i of t){if(i.isLayoutOnly)continue;let p=i.points??[];if(p.length<1)continue;let C=i.id??"",I=i.start,T=i.end;if(I){let O=n.get(I);O&&m(I,g(p[0],O),C)}if(T){let O=n.get(T);O&&m(T,g(p[p.length-1],O),C)}}let d=l((i,p,C)=>L.get(i)?.some(I=>I.edgeId!==C&&I.side===p)??!1,"faceIsClaimed");for(let i of t){if(i.isLayoutOnly)continue;let p=i.points;if(!p||p.length<2)continue;let C=Qt(p,ge);if(C<y)continue;let I=i.start,T=i.end;if(!I||!T)continue;let O=n.get(I),S=n.get(T);if(!O||!S)continue;let b=i.id??"",E=u(p,i,!0),A=u(p,i),F,w=E,_=C;for(let k of s){if(d(I,k,b))continue;let B=Ie(O,k);for(let X of s){if(d(T,X,b))continue;let z=Ie(S,X);for(let K of h(B,k,z,X)){if(f(K,[I,T]))continue;let ct=Qt(K,ge);if(E>0){let pt=u(K,i,!0);if(pt>w||pt===w&&ct>=_)continue;w=pt,_=ct,F=K;continue}u(K,i)>A||ct<_&&(_=ct,F=K)}}}if(F){i.points=F;let k=L.get(I);k&&L.set(I,k.filter(X=>X.edgeId!==b));let B=L.get(T);B&&L.set(T,B.filter(X=>X.edgeId!==b)),m(I,g(F[0],O),b),m(T,g(F[F.length-1],S),b)}}}l(ss,"simplifyDetouredEdges");var Kt=.001,vo=10,Xe=7;function Pn(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 c=r.x-s.x,h=r.y-s.y;if(!(Math.abs(c)+Math.abs(h)<Kt)){if(Math.abs(h)<=Kt){let u=s.x+Math.sign(c)*vo;return{left:Math.min(s.x,u),right:Math.max(s.x,u),top:s.y-Xe,bottom:s.y+Xe}}if(Math.abs(c)<=Kt){let u=s.y+Math.sign(h)*vo;return{left:s.x-Xe,right:s.x+Xe,top:Math.min(s.y,u),bottom:Math.max(s.y,u)}}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)}}}l(Pn,"markerClearanceRectFor");function rs(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)}}l(rs,"normalizeRect");function kn(t,e){let n=mt(e),o=Pn(n,!0),s=Pn(n,!1);return[o,s].some(r=>r&&$e(t,rs(r)))}l(kn,"labelOverlapsOwnMarker");function Ge(t,e){let n=[];for(let d of t){if(d.isLayoutOnly)continue;let i=d.points;if(!(!i||i.length<2))for(let p=0;p<i.length-1;p++)n.push({edgeId:d.id,p1:i[p],p2:i[p+1]})}let o=[],s=[];for(let d of e.values()){let i=d.isGroup,p=d.parentId;if(i&&!p){let I=qt(d);I&&s.push({id:d.id,rect:I});continue}if(i||d.isEdgeLabel)continue;let C=qt(d);C&&o.push({nodeId:d.id,rect:C})}let r=3,c=1,h=12,f=l((d,i)=>{let p=bn(i,r);for(let{nodeId:C,rect:I}of o)if(C!==d&&$e(p,I))return!0;return!1},"labelOverlapsForeignNode"),u=l((d,i)=>{let p=bn(i,r);for(let C of n)if(C.edgeId!==d&&Qe(C.p1,C.p2,p))return!0;return!1},"labelOverlapsForeignEdge"),y=l((d,i,p)=>f(d,p)||u(i,p),"labelOverlapsAnything"),g=[],L=l(d=>{for(let{id:i,rect:p}of s)if(Bo(p,d))return i},"findContainingLane"),m=l((d,i)=>g.some(p=>p.labelId!==d&&$e(i,p.rect)),"overlapsPlacedLabel");for(let d of t){if(d.isLayoutOnly)continue;let i=d.labelNodeId;if(!i)continue;let p=e.get(i);if(!p)continue;let C=d.points;if(!C||C.length<2)continue;let I=p.width??0,T=p.height??0;if(I<=0||T<=0)continue;let O=[];for(let Q=0;Q<C.length-1;Q++){let W=C[Q],et=C[Q+1],lt=Math.abs(W.x-et.x),gt=Math.abs(W.y-et.y);lt<Kt&&gt<Kt||lt>=Kt&&gt>=Kt||O.push({idx:Q,length:lt+gt,orientation:lt>=Kt?"horizontal":"vertical",midX:(W.x+et.x)/2,midY:(W.y+et.y)/2})}if(O.length===0)continue;let S=O.length>=3?O.filter(Q=>Q.idx>0&&Q.idx<O.length-1):O,b=S.length>0?S:O,E=I>=T?"horizontal":"vertical",A=l(Q=>[...Q].sort((W,et)=>{let lt=W.orientation===E,gt=et.orientation===E;if(lt!==gt)return lt?-1:1;let xt=W.length>=(W.orientation==="horizontal"?I:T)+2,vt=et.length>=(et.orientation==="horizontal"?I:T)+2;return xt!==vt?xt?-1:1:et.length-W.length}),"rankSegments"),F=O[0],w=O[O.length-1],_=[.5,.25,.75,.05,.95,.15,.85,.1,.9],k=l((Q,W)=>{let et=C[Q.idx],lt=C[Q.idx+1];return{midX:et.x+(lt.x-et.x)*W,midY:et.y+(lt.y-et.y)*W}},"anchorAtT"),B=l((Q,W,et)=>Math.min(et,Math.max(W,Q)),"clamp"),X=l((Q,W)=>Q.midX>=W.left-Kt&&Q.midX<=W.right+Kt&&Q.midY>=W.top-Kt&&Q.midY<=W.bottom+Kt,"pointInsideRectInclusive"),z=l(Q=>{let W=Ee(Q.midX,Q.midY,I,T),et=L(W);if(et)return{laneId:et,anchor:Q,rect:W};let lt=s.find(({rect:te})=>X(Q,te));if(!lt)return;let gt=lt.rect.left+I/2+c,xt=lt.rect.right-I/2-c,vt=lt.rect.top+T/2+c,Vt=lt.rect.bottom-T/2-c;if(gt>xt||vt>Vt)return;let Ut={midX:B(Q.midX,gt,xt),midY:B(Q.midY,vt,Vt)},jt=Ee(Ut.midX,Ut.midY,I,T);return X(Q,jt)?{laneId:lt.id,anchor:Ut,rect:jt}:void 0},"placementForAnchor"),K=l((Q,W,et)=>Q.orientation==="horizontal"?Math.abs(W.midX-et.x):Math.abs(W.midY-et.y),"distanceAlongSegment"),ct=l((Q,W)=>{let lt=(Q.orientation==="horizontal"?I/2:T/2)+h;if(Q===F){let gt=C[Q.idx];if(K(Q,W,gt)+Kt<lt)return!1}if(Q===w){let gt=C[Q.idx+1];if(K(Q,W,gt)+Kt<lt)return!1}return!0},"labelClearsTerminalEndpoints"),pt=l(Q=>{let W=A(Q);for(let et of W)for(let lt of _){let gt=k(et,lt);if(!ct(et,gt))continue;let xt=z(gt);if(xt&&!kn(xt.rect,C)&&!m(i,xt.rect)&&!y(i,d.id,xt.rect))return{laneId:xt.laneId,anchor:xt.anchor}}},"tryPool"),At=l((Q,W,et=!1)=>{let lt=A(Q);for(let gt of lt){let xt={midX:gt.midX,midY:gt.midY};if(W&&!ct(gt,xt))continue;let vt=z(xt);if(vt&&!kn(vt.rect,C)&&!m(i,vt.rect)&&!f(i,vt.rect)&&(et||!u(d.id,vt.rect)))return{laneId:vt.laneId,anchor:vt.anchor}}},"findLaneContainingFallback"),Ft=pt(b)??(b.length<O.length?pt(O):void 0)??At(O,!0)??At(O,!1)??At(O,!1,!0);if(Ft){p.x=Ft.anchor.midX,p.y=Ft.anchor.midY,p.parentId=Ft.laneId;let Q=Ee(Ft.anchor.midX,Ft.anchor.midY,I,T),W=g.findIndex(et=>et.labelId===i);W>=0?g[W]={labelId:i,rect:Q}:g.push({labelId:i,rect:Q})}}}l(Ge,"anchorLabelsToPolyline");var pn=1e-6,ur=8,Lo=ur/2,hr=3;function _n(t,e){return t<e?`${t}::${e}`:`${e}::${t}`}l(_n,"pairKey");function is(t,e){let{nodeInfoById:n,realNodeRects:o}=tn(e),s=new Map;for(let c of e){let h=c.id;if(!c.isGroup&&c.isEdgeLabel){s.set(h,{w:c.width??0,h:c.height??0});continue}}let r=l((c,h,f,u)=>{let y=_n(h,f),g=0,L=l(m=>{if(!m)return;let d=s.get(m);if(!d)return;let i=u==="x"?d.w/2:d.h/2;i>g&&(g=i)},"consider");L(c.labelNodeId);for(let m of t){if(m===c||m.isLayoutOnly)continue;let d=m.start,i=m.end;!d||!i||_n(d,i)===y&&L(m.labelNodeId)}return g>0?g+hr:0},"labelClearanceFor");for(let c of t){if(c.isLayoutOnly)continue;let h=c.points;if(!Zn(h,pn))continue;let f=eo(c,n,pn);if(!f)continue;let{srcId:u,dstId:y,srcInfo:g,dstInfo:L,collinearX:m,collinearY:d}=f;if(m===d)continue;let i,p;if(m){let S=L.cy>g.cy;i={x:g.cx,y:S?g.rect.bottom:g.rect.top},p={x:L.cx,y:S?L.rect.top:L.rect.bottom}}else{let S=L.cx>g.cx;i={x:S?g.rect.right:g.rect.left,y:g.cy},p={x:S?L.rect.left:L.rect.right,y:L.cy}}if(wt(i,p,o,[u,y],1))continue;let I=r(c,u,y,m?"x":"y"),T=I>Lo?I:Lo,O=[0,T,-T];for(let S of O){let b={...i},E={...p};if(m){if(b.x+=S,E.x+=S,b.x<=g.rect.left||b.x>=g.rect.right||E.x<=L.rect.left||E.x>=L.rect.right)continue}else if(b.y+=S,E.y+=S,b.y<=g.rect.top||b.y>=g.rect.bottom||E.y<=L.rect.top||E.y>=L.rect.bottom)continue;if(!wt(b,E,o,[u,y],1)&&!Ve(b,E,t,c,{epsilon:pn})){c.points=[b,E];break}}}}l(is,"straightenCollinearSiblingDetours");function Hn(t,e){let{realNodeRects:u,labelNodeRects:y}=me(e.values()),g=l((b,E)=>Re(E,.001).map(A=>({...A,edge:b,interior:A.index>=1&&A.index<=E.length-3})),"segmentsFor"),L=l(()=>{let b=[];for(let E of t){if(E.isLayoutOnly)continue;let A=E.points;!A||A.length<2||b.push(...g(E,mt(A)))}return b},"allSegments"),m=l((b,E)=>b.horizontal&&E.horizontal?$t(b.a.x,b.b.x,E.a.x,E.b.x)>=8&&Math.abs(b.a.y-E.a.y)<7:b.vertical&&E.vertical?$t(b.a.y,b.b.y,E.a.y,E.b.y)>=8&&Math.abs(b.a.x-E.a.x)<7:!1,"hasCrowdedParallelTrack"),d=l((b,E)=>{let A=b.start,F=b.end,w=g(b,E);if(w.length!==E.length-1)return!1;let _=[A,F].filter(B=>!!B),k=b.labelNodeId?[b.labelNodeId]:[];for(let B of w)if(wt(B.a,B.b,u,_,-2)||wt(B.a,B.b,y,k,-2))return!1;for(let B of t){if(B===b||B.isLayoutOnly)continue;let X=B.points;if(!(!X||X.length<2)){for(let z of w)for(let K of g(B,mt(X)))if(m(z,K)||ae(z.a,z.b,K.a,K.b,.001))return!1}}return!0},"candidateIsSafe"),i=l((b,E)=>{let A=mt(b.edge.points??[]);if(A.length<4||b.index>=A.length-1)return;let F=A.map(w=>({...w}));if(b.horizontal)F[b.index].y+=E,F[b.index+1].y+=E;else if(b.vertical)F[b.index].x+=E,F[b.index+1].x+=E;else return;return g(b.edge,F).length===F.length-1?F:void 0},"shiftedCandidate"),p=l((b,E)=>({x:b.x??(E.left+E.right)/2,y:b.y??(E.top+E.bottom)/2}),"nodeCenter"),C=l(b=>{let E=b.edge,A=mt(E.points??[]);if(A.length!==4||b.index!==1)return;let F=E.start?e.get(E.start):void 0,w=E.end?e.get(E.end):void 0,_=F?qt(F):void 0,k=w?qt(w):void 0,B=A.slice(b.index+2);if(!(!F||!w||!_||!k||B.length===0))return{sourceCenter:p(F,_),targetCenter:p(w,k),sourceRect:_,tail:B}},"sourceDetourContextFor"),I=l((b,E,A,F,w,_)=>{let k=F.y>=A.y,B=k?w.bottom:w.top,X=B+(k?20:-20);if(k&&b.b.y<=X+.001||!k&&b.b.y>=X-.001)return;let z=b.a.x+E;return mt([{x:A.x,y:B},{x:A.x,y:X},{x:z,y:X},{x:z,y:b.b.y},..._],.001)},"verticalSourceDetour"),T=l((b,E,A,F,w,_)=>{let k=F.x>=A.x,B=k?w.right:w.left,X=B+(k?20:-20);if(k&&b.b.x<=X+.001||!k&&b.b.x>=X-.001)return;let z=b.a.y+E;return mt([{x:B,y:A.y},{x:X,y:A.y},{x:X,y:z},{x:b.b.x,y:z},..._],.001)},"horizontalSourceDetour"),O=l((b,E)=>{let A=C(b);if(A){if(b.vertical)return I(b,E,A.sourceCenter,A.targetCenter,A.sourceRect,A.tail);if(b.horizontal)return T(b,E,A.sourceCenter,A.targetCenter,A.sourceRect,A.tail)}},"sourceDetourCandidate"),S=[-7,7,-14,14,-21,21];for(let b=0;b<12;b++){let E=L(),A=!1;for(let F=0;F<E.length&&!A;F++)for(let w=F+1;w<E.length&&!A;w++){let _=E[F],k=E[w];if(_.edge===k.edge||!m(_,k))continue;let B=[_,k].filter(X=>X.interior);for(let X of B){for(let z of S){let K=i(X,z);if(K&&d(X.edge,K)){X.edge.points=K,A=!0;break}let ct=O(X,z);if(ct&&d(X.edge,ct)){X.edge.points=ct,A=!0;break}}if(A)break}}if(!A)return}}l(Hn,"nudgeSharedInteriorSubpaths");function cs(t,e,n,o){let s=e.x-t.x,r=e.y-t.y,c=o.x-n.x,h=o.y-n.y,f=s*h-r*c;if(Math.abs(f)<1e-10)return!1;let u=n.x-t.x,y=n.y-t.y,g=(u*h-y*c)/f,L=(u*r-y*s)/f,m=.01;return g>m&&g<1-m&&L>m&&L<1-m}l(cs,"segmentsIntersect");function as(t){let e=t.nodes??[],n=t.edges??[],o=[];if(!n.length||!e.length)return o;let s=Fo(e),r=1,c=[];for(let f of n){if(f.isLayoutOnly)continue;let u=f.points;if(!u||u.length<2)continue;let y=f.start,g=f.end,L=f.labelNodeId,m=f.id??`${y}->${g}`;for(let d of s)if(!(d.nodeId===y||d.nodeId===g)&&!(L&&d.nodeId===L)){for(let i=0;i<u.length-1;i++)if(Qe(u[i],u[i+1],d,-r)){o.push({type:"edge-node-overlap",edgeId:m,targetId:d.nodeId,detail:`segment ${i} passes through node "${d.nodeId}"`});break}}for(let d=0;d<u.length-1;d++)c.push({edgeId:m,start:y,end:g,p1:u[d],p2:u[d+1]})}let h=new Set;for(let f=0;f<c.length;f++)for(let u=f+1;u<c.length;u++){let y=c[f],g=c[u];if(y.edgeId!==g.edgeId&&!(y.start===g.start||y.start===g.end||y.end===g.start||y.end===g.end)&&cs(y.p1,y.p2,g.p1,g.p2)){let L=y.edgeId<g.edgeId?`${y.edgeId}|${g.edgeId}`:`${g.edgeId}|${y.edgeId}`;h.has(L)||(h.add(L),o.push({type:"edge-edge-crossing",edgeId:y.edgeId,targetId:g.edgeId,detail:`edges "${y.edgeId}" and "${g.edgeId}" cross`}))}}if(o.length>0){let f=o.filter(y=>y.type==="edge-node-overlap").length,u=o.filter(y=>y.type==="edge-edge-crossing").length;He.warn(`[SWIMLANE_VALIDATE] ${o.length} issue(s) detected: ${f} edge-node overlap(s), ${u} edge crossing(s)`);for(let y of o)He.warn(`[SWIMLANE_VALIDATE] ${y.type}: ${y.detail}`)}return o}l(as,"validateSwimlanesLayout");function ls(t,e){let n=t.nodes??[],o=t.edges??[],s=n.filter(h=>!h.isGroup);if((e==="LR"||e==="RL")&&s.length>0&&!Ko(t,e)||e==="BT"&&s.length>0&&!Wo(t))return;for(let h of o){if(h.isLayoutOnly)continue;let f=h.points;!f||f.length<2||(h.points=ce(Ue(f)))}ss(o,n),is(o,n),qo(o,n);let r=new Map;for(let h of n)r.set(String(h.id),h);Ge(o,r),Do(o,r),Zo(o,r),Hn(o,r),Jo(o,r),Qo(o,r),On(o,r),ts(o,r);let c=l(()=>{os(o,r),es(o,r),ns(o,r),Ge(o,r),An(o,r),On(o,r),Ge(o,r),An(o,r)},"finalizeRenderedEdges");c(),Hn(o,r),c(),Bn(o,r),Fn(o,r),Bn(o,r),Fn(o,r)}l(ls,"postProcessSwimlaneLayout");function pe(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 c=`${r.id}:${r.src}->${r.dst}`;n.has(c)||(n.add(c),o.push(r))}return{nodes:[...e.keys()],edges:o,layout:t.layout,nodeById:e}}l(pe,"normalizeGraph");function co(t,e){return t.edges.filter(n=>n.dst===e)}l(co,"incoming");function fs(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}l(fs,"buildSuccessorMap");function ao(t){let e=fs(t);for(let n of e.values())n.sort((o,s)=>o.localeCompare(s));return e}l(ao,"buildSortedSuccessorMap");function en(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}l(en,"buildInDegreeMap");function lo(t){return[...t.entries()].filter(([,e])=>e===0).map(([e])=>e).sort((e,n)=>e.localeCompare(n))}l(lo,"sortedZeroInDegreeNodes");function nn(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}}l(nn,"buildPredecessorSuccessorMaps");function fo(t,e,n,o){let s=0;for(let c of t.nodes)o?.skipGroups&&t.nodeById.get(c)?.isGroup||(s=Math.max(s,n[c]??0));let r=Array.from({length:s+1},()=>[]);for(let c of e)o?.skipGroups&&t.nodeById.get(c)?.isGroup||r[Math.max(0,n[c]??0)].push(c);return r}l(fo,"buildLayersFromRanks");function Ne(t){let e=en(t),n=lo(e),o=[],s=ao(t);for(;n.length;){let r=n.shift();o.push(r);for(let c of s.get(r)??[])if(e.set(c,(e.get(c)??0)-1),(e.get(c)??0)===0){let h=0;for(;h<n.length&&n[h]<c;)h++;n.splice(h,0,c)}}return o.length===t.nodes.length?o:null}l(Ne,"topoSortIfAcyclic");function we(t){let e=new Map,n=0;for(let o of t)e.set(o,n),n++;return e}l(we,"buildLayerIndex");function uo(t){let e=new Array(t.length),n=l((o,s)=>{if(s-o<=1)return 0;let r=o+s>>1,c=n(o,r)+n(r,s),h=o,f=r,u=o;for(;h<r||f<s;)f>=s||h<r&&t[h]<=t[f]?e[u++]=t[h++]:(e[u++]=t[f++],c+=r-h);for(let y=o;y<s;y++)t[y]=e[y];return c},"count");return n(0,t.length)}l(uo,"countInversions");function ds(t){let e=pe(t),n=new Map;for(let g of e.nodes)n.set(g,[]);for(let g of e.edges)n.get(g.src).push(g);for(let g of n.values())g.sort((L,m)=>L.dst===m.dst?L.id.localeCompare(m.id):L.dst.localeCompare(m.dst));let o=Object.create(null);for(let g of e.nodes)o[g]=0;let s=[],r=l(g=>{o[g]=1;for(let L of n.get(g)??[]){let m=L.dst;o[m]===0?r(m):o[m]===1&&s.push(L)}o[g]=2},"dfs"),c=en(e),h=[...e.nodes.filter(g=>(c.get(g)??0)===0),...e.nodes.filter(g=>(c.get(g)??0)!==0)];for(let g of h)o[g]===0&&r(g);let f=new Set(s.map(g=>`${g.id}:${g.src}->${g.dst}`)),u=e.edges.map(g=>f.has(`${g.id}:${g.src}->${g.dst}`)?{id:g.id,src:g.dst,dst:g.src,weight:g.weight,ref:g.ref}:g);return{acyclic:{nodes:[...e.nodes],edges:u,layout:e.layout,nodeById:new Map(e.nodeById)},reversed:s}}l(ds,"removeCycles_DFS");function us(t){let e=new Map,n=l(o=>{if(e.has(o))return e.get(o);let s=t.nodeById.get(o);if(!s)return e.set(o,null),null;let r=s.parentId;if(!r)return e.set(o,null),null;let h=n(r)??r;return e.set(o,h),h},"resolve");for(let o of t.nodes)n(o);return e}l(us,"buildTopLaneMap");function le(t){let e=us(t);return n=>e.get(n)??null}l(le,"createTopLaneResolver");function on(t){let e=[];for(let n of t.layout.nodes??[])n.isGroup&&!n.parentId&&e.push(n.id);return[...new Set(e)].reverse()}l(on,"buildTopLaneOrder");function ho(t,e){let n=on(t);if(!e||e.length===0)return n;let o=new Set(n),s=new Set,r=[];for(let c of e)!o.has(c)||s.has(c)||(s.add(c),r.push(c));for(let c of n)s.has(c)||r.push(c);return r}l(ho,"resolveTopLaneOrder");var gr={EPSILON:1e-6},Ze={GRAVITY_ITERATIONS:8,MAX_CROSSING_OPTIMIZATION_PASSES:4,DEFAULT_COMPACT_SINGLE_INPUT:!0},To={DEFAULT_LAYER_GAP:100,DEFAULT_NODE_GAP:40};function hs(t,e){let n=pe(t),o=e?.laneOf??(()=>null),s=e?.rankHint,{preds:r}=nn(n);for(let S of r.values())S.sort((b,E)=>b.localeCompare(E));let c=Ne(n)??[...n.nodes].sort((S,b)=>S.localeCompare(b)),h=new Map;for(let[S,b]of c.entries())h.set(b,S);let f=new Map,u=new Map;for(let S of n.nodes)u.set(S,[]);for(let S of c){let b=(r.get(S)??[]).filter(E=>f.has(E));if(b.length>0){let E=gs(S,b,{laneOf:o,rankHint:s,topoIndex:h});f.set(S,E),u.get(E).push(S)}else f.has(S)||f.set(S,null)}for(let S of n.nodes)f.has(S)||f.set(S,null);let y=new Set;for(let S of n.nodes)(f.get(S)??null)===null&&y.add(S);let g=[...y].sort((S,b)=>{let E=h.get(S)??0,A=h.get(b)??0;return E===A?S.localeCompare(b):E-A}),L=ms(n),m=new Map;for(let[S,b]of L.entries())m.set(S,[...b].sort((E,A)=>E.localeCompare(A)));let d=ps(m),i=ys(m),p=new Map;for(let S of n.nodes)p.set(S,[]);for(let S of i)for(let b of S.nodes){let E=p.get(b);E?E.push(S.id):p.set(b,[S.id])}let C=[],I=[],T=new Set,O=l(S=>{if(!T.has(S)){T.add(S),C.push(S);for(let b of u.get(S)??[])O(b);I.push(S)}},"walk");for(let S of g)O(S);for(let S of c)O(S);return{parent:f,children:u,roots:g,componentOf:d,blocks:i,nodeBlocks:p,adjacency:m,preorder:C,postorder:I,topologicalOrder:c}}l(hs,"buildDrivingTree");function gs(t,e,n){let o=n.laneOf(t);return[...e].sort((r,c)=>{let h=n.laneOf(r),f=n.laneOf(c),u=h!=null&&h===o,y=f!=null&&f===o;if(u!==y)return u?-1:1;let g=n.rankHint?.[r],L=n.rankHint?.[c];if(g!=null&&L!=null&&g!==L)return L-g;let m=n.topoIndex.get(r)??0,d=n.topoIndex.get(c)??0;return m!==d?m-d:r.localeCompare(c)})[0]}l(gs,"chooseParent");function ms(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}l(ms,"buildAdjacency");function ps(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 c of t.get(r)??[])e.has(c)||s.push(c)}}n++}return e}l(ps,"assignComponents");function ys(t){let e=new Map,n=new Map,o=[],s=[],r=0,c=l((h,f)=>{e.set(h,++r),n.set(h,r);for(let u of t.get(h)??[])u!==f&&(e.has(u)?(e.get(u)??0)<(e.get(h)??0)&&(o.push([h,u]),n.set(h,Math.min(n.get(h)??r,e.get(u)??r))):(o.push([h,u]),c(u,h),n.set(h,Math.min(n.get(h)??r,n.get(u)??r)),(n.get(u)??0)>=(e.get(h)??0)&&s.push(xs(h,u,o,s.length))))},"visit");for(let h of t.keys())e.has(h)||c(h,null);return s}l(ys,"computeBlocks");function xs(t,e,n,o){let s=[],r=new Set;for(;n.length>0;){let c=n.pop();if(s.push(c),r.add(c[0]),r.add(c[1]),c[0]===t&&c[1]===e||c[0]===e&&c[1]===t)break}return{id:o,edges:s,nodes:[...r]}}l(xs,"popBlock");function bs(t,e,n){let o=[...t.nodes],s=new Map;for(let[I,T]of o.entries())s.set(T,I);let r=o.length,c=new Array(r).fill(-1),h=new Array(r).fill(0),f=[],u=new Set;for(let I of o){let T=n.parent.get(I)??null,O=s.get(I);O!=null&&T==null&&(c[O]=-1,h[O]=0,u.has(I)||(u.add(I),f.push(I)))}for(;f.length>0;){let I=f.shift(),T=s.get(I);if(T==null)continue;let O=n.children.get(I)??[];for(let S of O){if(u.has(S))continue;let b=s.get(S);b!=null&&(c[b]=T,h[b]=h[T]+1,u.add(S),f.push(S))}}for(let I of o){if(u.has(I))continue;let T=s.get(I);T!=null&&(c[T]=-1,h[T]=0,u.add(I))}let y=Math.max(1,Math.ceil(Math.log2(Math.max(1,r)))+1),g=Array.from({length:y},()=>new Array(r).fill(-1));for(let I=0;I<r;I++)g[0][I]=c[I];for(let I=1;I<y;I++)for(let T=0;T<r;T++){let O=g[I-1][T];g[I][T]=O===-1?-1:g[I-1][O]}let L=l((I,T)=>{if(I===-1||T===-1)return-1;h[I]<h[T]&&([I,T]=[T,I]);let O=h[I]-h[T];for(let S=0;S<y;S++)if(O>>S&1&&(I=g[S][I],I===-1))return-1;if(I===T)return I;for(let S=y-1;S>=0;S--){let b=g[S][I],E=g[S][T];b===-1||E===-1||b!==E&&(I=b,T=E)}return g[0][I]},"lcaIndex"),m=Array.from({length:r},()=>new Map);for(let I of t.edges){let T=I.src,O=I.dst,S=e[T],b=e[O];if(S==null||b==null||(S>b&&([T,O]=[O,T],[S,b]=[b,S]),S==null||b==null||S===b))continue;let E=s.get(T),A=s.get(O);if(E==null||A==null)continue;let F=L(E,A);if(F===-1)continue;let w=m[F];for(let _=S;_<b;_++)w.set(_,(w.get(_)??0)+1)}let d=new Map,i=l((I,T)=>{if(T.size!==0)for(let[O,S]of T)I.set(O,(I.get(O)??0)+S)},"mergeInto"),p=new Set,C=l(I=>{let T=s.get(I);p.add(I);let O=T==null?void 0:m[T],S=O?new Map(O):new Map,b=n.children.get(I)??[];for(let E of b){let A=C(E),F=e[I];if(F!=null){let w=d.get(I);w||(w=new Map,d.set(I,w));let _=A.get(F)??0,k=e[E];k!=null&&k>F&&(_+=1),w.set(E,_)}i(S,A)}return S},"dfs");for(let I of n.roots)p.has(I)||C(I);for(let I of o)p.has(I)||C(I);return d}l(bs,"computeSubtreeCrossCounts");function Is(t,e,n){let o=new Map,s=l(r=>{let c=n[r]??0,h=[...e.get(r)??[]];h.sort(go(n));for(let f of h){s(f);let u=o.get(f);u!=null&&(c=Math.min(c,u))}o.set(r,c)},"annotate");for(let r of t)s(r);return o}l(Is,"annotateMinimumLayers");function go(t){return(e,n)=>{let o=t[e]??0,s=t[n]??0;return o===s?e.localeCompare(n):o-s}}l(go,"compareByRankThenId");function Ms(t,e,n,o){let s=0;for(let f of e){let u=n[f]??0;u>s&&(s=u)}let r=Array.from({length:s+1},()=>[]),c=new Set,h=l(f=>{if(c.has(f))return;c.add(f);let u=n[f]??0;r[u]||(r[u]=[]),r[u].push(f);for(let y of o(f))h(y)},"emit");for(let f of t)h(f);for(let f of e)if(!c.has(f)){let u=n[f]??0;r[u]||(r[u]=[]),r[u].push(f),c.add(f)}return r}l(Ms,"emitNodesInTreeOrder");function Ss(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}l(Ss,"deduplicateLayers");function Cs(t,e,n,o){return s=>{let r=t.get(s)??[];if(r.length===0)return[];let c=e[s]??0,h=[],f=[],u=n.get(s);for(let y of r){let g=o.get(y)??c;g>c?h.push({child:y,min:g}):f.push(y)}return h.sort((y,g)=>y.min===g.min?y.child.localeCompare(g.child):y.min-g.min),f.sort((y,g)=>{let L=u?.get(y)??0,m=u?.get(g)??0;if(L!==m)return L-m;let d=o.get(y)??c,i=o.get(g)??c;return d!==i?d-i:y.localeCompare(g)}),[...h.map(y=>y.child),...f]}}l(Cs,"createChildOrderer");function Je(t,e,n){let o=hs(t,{rankHint:e,laneOf:n}),{children:s,roots:r}=o;for(let g of t.nodes)s.has(g)||s.set(g,[]);let c=bs(t,e,o),h=[...r].sort(go(e)),f=Is(h,s,e),u=Cs(s,e,c,f),y=Ms(h,t.nodes,e,u);return y=Ss(y),y}l(Je,"buildMultitreeLayerOrder");function vs(t,e,n){let o=new Set(t),s=new Set(e),r=we(e),c=[];for(let h of n)o.has(h.src)&&s.has(h.dst)&&c.push(r.get(h.dst));return uo(c)}l(vs,"countCrossingsBetweenAdjacent");function Dn(t,e,n){let o=[];for(let r of e){let c=n[r.src],h=n[r.dst];if(c==null||h==null||c===h)continue;let f=r.src,u=r.dst,y=c,g=h;c>h&&(f=r.dst,u=r.src,y=h,g=c);for(let L=y;L<g;L++)o.push({id:`${r.id}@${L}`,src:f,dst:u,ref:r.ref})}let s=0;for(let r=0;r+1<t.length;r++)s+=vs(t[r],t[r+1],o);return s}l(Dn,"totalCrossings");function Ls(t,e){let n={...e},{preds:o}=nn(t),s=le(t),r=Je(t,n,s),c=Dn(r,t.edges,n),h=Ze.MAX_CROSSING_OPTIMIZATION_PASSES;for(let f=0;f<h;f++){let u=!1,y=[...t.nodes].sort((g,L)=>(n[L]??0)-(n[g]??0));for(let g of y){let L=n[g]??0;if(L===0)continue;let m=0;for(let C of o.get(g)??[])m=Math.max(m,(n[C]??0)+1);if(m>=L)continue;let d=L;n[g]=m;let i=Je(t,n,s),p=Dn(i,t.edges,n);p<c?(c=p,u=!0):n[g]=d}if(!u)break}return n}l(Ls,"optimizeRanksByCrossings");function Ts(t,e){let n=le(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 c=t.edges.filter(i=>i.src===s);if(c.length===0)continue;let h=!1,f=0;for(let i of c){let p=n(i.dst);p==null||p===r?h=!0:f++}if(f===0||h)continue;let u=0,y=!1;for(let i of t.edges){if(i.dst!==s)continue;let p=n(i.src);p&&(p===r?y=!0:u++)}if(u>0||!y)continue;let g=e[s]??0,L=g+f,m=0;for(let i of t.edges)i.dst===s&&(m=Math.max(m,(e[i.src]??0)+1));let d=Math.max(g,m,L);d!==g&&(e[s]=d)}}l(Ts,"adjustCrossLaneSources");function Es(t,e){let n=pe(t),o=Ne(n)??[...n.nodes].sort(),s=e?.compactSingleInput??!1,r=le(n),c=Object.create(null);for(let f of o){let u=co(n,f),y=e?.ignoreCrossLaneEdges?u.filter(g=>{let L=r(g.src),m=r(f);return!L||!m?!0:L===m}):u;if(y.length===0)c[f]=0;else if(s&&y.length===1){let g=y[0].src,L=r(g),m=r(f);L!==m?c[f]=c[g]??0:c[f]=(c[g]??0)+1}else{let g=-1/0;for(let L of y)g=Math.max(g,(c[L.src]??0)+1);c[f]=g===-1/0?0:g}}return(e?.optimizeRanksByCrossings??!1)&&(c=Ls(n,c)),e?.ignoreCrossLaneEdges&&Ts(n,c),{layers:Je(n,c,r),rankOf:c,dummy:new Set}}l(Es,"assignLayers_LongestPath");function Rs(t,e){let n=pe(t),s={...Es(n,{compactSingleInput:e?.compactSingleInput,ignoreCrossLaneEdges:e?.ignoreCrossLaneEdges,optimizeRanksByCrossings:e?.optimizeRanksByCrossings}).rankOf},r=le(n),{preds:c,succs:h}=nn(n,d=>{if(e?.ignoreCrossLaneEdges){let i=r(d.src),p=r(d.dst);if(i&&p&&i!==p)return!1}return!0}),f=Ne(n)??[...n.nodes],u=[...f].reverse(),y=l((d,i)=>{let p=0;for(let T of c.get(d)??[])p=Math.max(p,(s[T]??0)+1);let C=Number.POSITIVE_INFINITY,I=h.get(d)??[];return I.length>0&&(C=Math.min(...I.map(T=>(s[T]??0)-1))),Number.isFinite(C)||(C=Math.max(p,i)),Math.min(Math.max(i,p),C)},"clampFeasible"),g=Ze.GRAVITY_ITERATIONS,L=l(d=>{let i=!1;for(let p of d){let C=c.get(p)??[],I=h.get(p)??[];if(C.length===0&&I.length===0)continue;let T=C.length>0?C.reduce((E,A)=>E+(s[A]??0)+1,0)/C.length:s[p]??0,O=I.length>0?I.reduce((E,A)=>E+(s[A]??0)-1,0)/I.length:s[p]??0,S=Math.round((T+O)/2),b=y(p,S);b!==s[p]&&(s[p]=b,i=!0)}return i},"relaxOrder");for(let d=0;d<g;d++){let i=L(f),p=L(u);if(!i&&!p)break}for(let d of f){let i=0;for(let p of c.get(d)??[])i=Math.max(i,(s[p]??0)+1);(s[d]??0)<i&&(s[d]=i)}for(let d of u){let i=h.get(d)??[];if(i.length>0){let p=Math.min(...i.map(C=>(s[C]??0)-1));(s[d]??0)>p&&(s[d]=p)}}return{layers:fo(n,f,s),rankOf:s,dummy:new Set}}l(Rs,"assignLayers_Gravity");function ws(t){let e=en(t),n=ao(t),o=lo(e),s=[];for(;o.length>0;){let r=[];for(let c of o){s.push(c);for(let h of n.get(c)??[])e.set(h,(e.get(h)??0)-1),(e.get(h)??0)===0&&r.push(h)}o=r.sort((c,h)=>c.localeCompare(h))}return s.length===t.nodes.length?s:null}l(ws,"topoSortByGenerationIfAcyclic");function As(t,e){let n=pe(t),o=e?.direction==="LR"?ws(n)??[...n.nodes].sort():Ne(n)??[...n.nodes].sort(),s=le(n),r=l(y=>s(y)??y,"laneOf"),c=Object.create(null),h=new Map,f=l((y,g)=>e?.ignoreCrossLaneEdges??!0?r(y)===r(g)?1:0:1,"edgeWeight");for(let y of o){if(n.nodeById.get(y)?.isGroup)continue;let L=co(n,y),m=0;if(L.length>0)for(let C of L){let I=C.src,T=c[I]??0;m=Math.max(m,T+f(I,y))}let d=r(y),i=h.get(d)??0,p=Math.max(m,i);c[y]=p,h.set(d,p+1)}return{layers:fo(n,o,c,{skipGroups:!0}),rankOf:c,dummy:new Set}}l(As,"assignLayers_LaneAwareCompact");function Ns(t,e){let n=pe(e),{rankOf:o}=t,s=t.layers.map(m=>[...m]),r=new Set(t.dummy?[...t.dummy]:[]),c=0,h=new Map(n.nodeById),f=l(m=>{let d=`placeholder-${c++}`,i={id:d,isGroup:!1,isDummy:!0,width:0,height:0};for(h.set(d,i),r.add(d);s.length<=m;)s.push([]);return s[m].push(d),o[d]=m,d},"addDummyAt"),u=[...n.edges].sort((m,d)=>m.id===d.id?m.src===d.src?m.dst.localeCompare(d.dst):m.src.localeCompare(d.src):m.id.localeCompare(d.id)),y=[];for(let m of u){let d=o[m.src]??0,i=o[m.dst]??0;if(i-d<=1){y.push(m);continue}let p=m.src;for(let I=d+1,T=0;I<i;I++,T++){let O=f(I);y.push({id:`${m.id}#${T}`,src:p,dst:O,weight:m.weight,ref:m.ref}),p=O}let C=i-d-2;y.push({id:`${m.id}#${Math.max(C+1,0)}`,src:p,dst:m.dst,weight:m.weight,ref:m.ref})}let L={nodes:[...n.nodes,...[...r].filter(m=>!n.nodes.includes(m))],edges:y,layout:n.layout,nodeById:h};return{layering:{layers:s,rankOf:o,dummy:r},graphWithDummies:L}}l(Ns,"makeProperLayering");function Xn(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])}l(Xn,"median");function Yn(t){return t.length===0?Number.POSITIVE_INFINITY:t.reduce((n,o)=>n+o,0)/t.length}l(Yn,"barycenter");function Os(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}l(Os,"neighborPositionsFor");function Bs(t,e,n){let o=n.get(t)??0,s=n.get(e)??0;return o!==s?o-s:t.localeCompare(e)}l(Bs,"currentOrderTieBreak");function Gn(t,e,n){let o=new Set(t),s=new Set(e),r=we(t),c=we(e),h=[];for(let u of n)o.has(u.src)&&s.has(u.dst)&&h.push({u:r.get(u.src),v:c.get(u.dst)});h.sort((u,y)=>u.u===y.u?u.v-y.v:u.u-y.u);let f=h.map(u=>u.v);return uo(f)}l(Gn,"countCrossingsBetweenAdjacent");function ze(t,e,n){return[...t].sort((o,s)=>{let r=Xn(e.get(o)??[]),c=Xn(e.get(s)??[]);return r===c?Bs(o,s,n):isFinite(r)?isFinite(c)?r-c:-1:1})}l(ze,"sortByHeuristic");function zn(t,e,n,o,s,r){let c=we(t),h=we(e),f=Os(e,c,n,o);if(!s||!r||r.length===0)return ze(e,f,h);let u=new Map;for(let L of e){let m=s(L),d=u.get(m)??[];d.push(L),u.set(m,d)}let y=[];for(let L of r){let m=u.get(L);if(!m||m.length===0)continue;let d=ze(m,f,h);y.push(...d)}let g=u.get(null);if(g&&g.length>0){let L=ze(g,f,h);for(let m of L){let d=Yn(f.get(m)??[]),i=y.length;if(isFinite(d))for(let[p,C]of y.entries()){let I=Yn(f.get(C)??[]);if(d<I){i=p;break}}y.splice(i,0,m)}}return y}l(zn,"reorderLayer");function $n(t,e,n,o,s){let r=[...e],c=new Set(t),h=new Set(e),f=o?new Set(o):null,u=n.filter(i=>c.has(i.src)&&h.has(i.dst)),y=f?n.filter(i=>h.has(i.src)&&f.has(i.dst)):void 0,g=l(i=>{let p=Gn(t,i,u);return y&&o&&(p+=Gn(i,o,y)),p},"crossingScore"),L=s?new Map:null;if(s&&L)for(let i of e)L.set(i,s(i));let m=!0,d=g(r);for(;m;){m=!1;for(let i=0;i+1<r.length;i++){if(L){let I=L.get(r[i]),T=L.get(r[i+1]);if(I!==T)continue}let p=d;[r[i],r[i+1]]=[r[i+1],r[i]];let C=g(r);C<p?(d=C,m=!0):[r[i],r[i+1]]=[r[i+1],r[i]]}}return r}l($n,"transposeImprove");function Fs(t,e,n){let o=t.layers.map(h=>[...h]),s=e.edges,r=le(e),c=ho(e,n?.laneOrder);for(let h=0;h<3;h++){for(let f=1;f<o.length;f++)o[f]=zn(o[f-1],o[f],s,"down",r,c),o[f]=$n(o[f-1],o[f],s,o[f+1],r);for(let f=o.length-2;f>=0;f--)o[f]=zn(o[f+1],o[f],s,"up",r,c),o[f]=$n(o[f+1],o[f],s,o[f-1],r)}return{layers:o}}l(Fs,"orderLayers");function Ps(t,e,n){let o=n?.layerGap??To.DEFAULT_LAYER_GAP,s=n?.nodeGap??To.DEFAULT_NODE_GAP,r=n?.laneGap??s*2,c=n?.direction??"TB",h=c==="LR"||c==="RL",f=t.layers,u=Object.create(null),y=Object.create(null),g=l(w=>e.nodeById.get(w),"getNode"),L=l(w=>g(w)?.width??0,"getWidth"),m=l(w=>g(w)?.height??0,"getHeight"),d=le(e),i=ho(e,n?.laneOrder),p=f.map(w=>w.reduce((_,k)=>Math.max(_,m(k)),0)),C=[];if(h)for(let w=0;w+1<f.length;w++){let _=f[w].reduce((pt,At)=>Math.max(pt,L(At)),0),k=f[w+1].reduce((pt,At)=>Math.max(pt,L(At)),0),B=p[w],X=p[w+1],z=B/2+X/2,K=(_+k)/2,ct=Math.max(0,K-z-o);C.push(ct)}let I=new Set;for(let w of f)for(let _ of w)I.add(d(_));let T=I.has(null),O=i.filter(w=>I.has(w)),S=[...T?[null]:[],...O],b=Object.create(null);for(let w of O)b[w]=0;T&&(b.null=0);for(let w of f){let _=Object.create(null),k=[];for(let B of w){let X=d(B);X===null?k.push(B):(_[X]||=[]).push(B)}for(let[B,X]of Object.entries(_)){let z=X.reduce((K,ct)=>K+L(ct),0)+s*Math.max(0,X.length-1);b[B]=Math.max(b[B]??0,z)}if(T&&k.length){let B=k.reduce((X,z)=>X+L(z),0)+s*Math.max(0,k.length-1);b.null=Math.max(b.null??0,B)}}let E=new Map;{let w=S.map(B=>(B===null?b.null:b[B])??0),k=-(w.reduce((B,X)=>B+X,0)+r*Math.max(0,S.length-1))/2;for(let B=0;B<S.length;B++){let X=S[B],z=w[B]??0,K=k+z/2;E.set(X,K),k+=z,B<S.length-1&&(k+=r)}}let A=0;for(let[w,_]of f.entries()){let k=p[w]??0,B=new Map;for(let z of _){let K=d(z),ct=B.get(K)??[];ct.push(z),B.set(K,ct)}for(let z of S){let K=B.get(z)??[];if(K.length===0)continue;let ct=E.get(z);if(K.length===1){let pt=K[0];u[pt]=ct,y[pt]=A+k/2}else{let pt=K.map(Q=>L(Q)),At=pt.reduce((Q,W)=>Q+W,0)+s*(K.length-1),Ft=ct-At/2;for(let[Q,W]of K.entries()){let et=pt[Q];u[W]=Ft+et/2,y[W]=A+k/2,Ft+=et+s}}}let X=C[w]??0;A+=k+o+X}let F=new Map;for(let w of e.edges){let _=w.ref.id;F.has(_)||F.set(_,[]),F.get(_).push(w)}for(let[,w]of F){if(w.length===0)continue;let _=w[0].ref,k=_.start,B=_.end;if(k==null||B==null)continue;let X=Math.round(((u[k]??0)+(u[B]??0))/2),z=new Set;for(let K of w)z.add(K.src),z.add(K.dst);for(let K of z){if(K===k||K===B)continue;e.nodeById.get(K)?.isDummy&&(u[K]=X)}}return{x:u,y}}l(Ps,"assignCoordinates");var ks=8;function _s(t){let e=2166136261;for(let n=0;n<t.length;n++)e^=t.charCodeAt(n),e=Math.imul(e,16777619);return e>>>0}l(_s,"hashString");function Hs(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}}l(Hs,"mulberry32");function Ds(t,e){let n=[...t],o=Hs(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}l(Ds,"deterministicShuffle");function Xs(t,e){let n=0;for(let[o,s]of t.entries())n+=Math.abs(o-(e.get(s)??o));return n}l(Xs,"sourceDistance");function Vn(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:c}of e){let h=n.get(s),f=n.get(r);h==null||f==null||(o+=c*Math.abs(h-f))}return o}l(Vn,"laneArrangementCost");function Ys(t){let e=on(t);if(e.length<2)return[];let n=new Map(e.map((r,c)=>[r,c])),o=le(t),s=new Map;for(let r of t.layout.edges??[]){if(r.isLayoutOnly)continue;let c=typeof r.start=="string"?r.start:void 0,h=typeof r.end=="string"?r.end:void 0;if(!c||!h||!t.nodeById.has(c)||!t.nodeById.has(h))continue;let f=o(c),u=o(h);if(!f||!u||f===u)continue;let y=n.get(f),g=n.get(u);if(y==null||g==null)continue;let[L,m]=y<=g?[f,u]:[u,f],d=`${L}\0${m}`,i=s.get(d);i?i.weight++:s.set(d,{a:L,b:m,weight:1})}return[...s.values()]}l(Ys,"buildWeightedLaneEdges");function Un(t,e,n){let o=[...t],s=Vn(o,e),r=!0,c=0,h=Math.max(1,o.length);for(;r&&c<h;){r=!1,c++;for(let f=0;f+1<o.length;f++){[o[f],o[f+1]]=[o[f+1],o[f]];let u=Vn(o,e);u<s?(s=u,r=!0):[o[f],o[f+1]]=[o[f+1],o[f]]}}return{order:o,cost:s,sourceDistance:Xs(o,n)}}l(Un,"greedySwitch");function Gs(t,e){return t.cost!==e.cost?t.cost<e.cost:t.sourceDistance<e.sourceDistance}l(Gs,"isBetterCandidate");function zs(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:c})=>`${s}:${r}:${c}`).join("|");return _s(`${t.join("|")}#${o}#${n}`)}l(zs,"seedForRestart");function $s(t,e={}){let n=on(t);if(n.length<2)return n;let o=Ys(t);if(o.length===0)return n;let s=new Map(n.map((h,f)=>[h,f])),r=Un(n,o,s),c=Math.max(0,e.restarts??ks);for(let h=0;h<c;h++){let f=zs(n,o,h),u=Ds(n,f),y=Un(u,o,s);Gs(y,r)&&(r=y)}return r.order}l($s,"optimizeTopLaneOrder");function Vs(t,e){let n=e?.ignoreCrossLaneEdges??!0,o=e?.optimizeRanksByCrossings??!0,s=pe(t),r=e?.automaticLaneOrdering?$s(s,{restarts:ks}):void 0,c=ds(s),h=c.acyclic,f=n?As(h,{compactSingleInput:e?.compactSingleInput??Ze.DEFAULT_COMPACT_SINGLE_INPUT,ignoreCrossLaneEdges:!0,direction:e?.direction}):Rs(h,{compactSingleInput:e?.compactSingleInput??Ze.DEFAULT_COMPACT_SINGLE_INPUT,ignoreCrossLaneEdges:!1,optimizeRanksByCrossings:o}),{layering:u,graphWithDummies:y}=Ns(f,h),g=Fs(u,y,{laneOrder:r}),L=Ps(g,y,{layerGap:e?.layerGap,nodeGap:e?.nodeGap,direction:e?.direction,laneOrder:r});return{acyclic:h,reversed:c.reversed,layering:u,ordered:g,coordinates:L}}l(Vs,"sugiyamaLayout");var at=gr.EPSILON,mr=8,xe=15,Te=15,Ye=25,ne=20,yn=10;function jn(t,e,n){let o=t.x??0,s=t.y??0,r=e.x-o,c=e.y-s,h=Math.abs(r),f=Math.abs(c);return h<at&&f<at?n:f>at&&f*3>=h?c>0?"bottom":"top":h>at?r>0?"right":"left":n}l(jn,"chooseOrthogonalSide");function Wn(t,e){return Math.abs(t.to-e.from)<at||Math.abs(t.to-e.to)<at?t.to:t.from}l(Wn,"sharedLineEndpointCoord");function be(t,e){return t.orient==="vertical"?{x:t.coord,y:e}:{x:e,y:t.coord}}l(be,"pointOnLine");function Us(t,e){let n=t.nodes??[],o=t.edges??[],s=[];for(let a of o)a.isLayoutOnly||s.push({...a,__originalEdge:a});let r=new Map,c=new Map,h=[],f=e==="LR";for(let a of n)r.set(a.id,a);let u=n.filter(a=>a.isGroup&&!a.parentId);for(let a of u){let x={id:a.id},M=l(v=>{c.set(v.id,x),n.filter(R=>R.parentId===v.id).forEach(M)},"assignLane");M(a)}let y=n.filter(a=>!a.isGroup&&!a.isEdgeLabel).map(a=>{let x=a.width??10,M=a.height??10,v=a.x??0,R=a.y??0,P=mr;return{nodeId:a.id,minX:v-x/2-P,maxX:v+x/2+P,minY:R-M/2-P,maxY:R+M/2+P,visualXHalfExtent:f?M/2+P:x/2+P}}),g=l((a,x,M,v)=>{let R=h.find(P=>P.orientation===a&&Math.abs(P.coord-x)<1);return R||(R={id:`pipe-${a}-${x.toFixed(0)}`,orientation:a,coord:x,spanMin:M,spanMax:v,tracks:[]},h.push(R)),R.spanMin=Math.min(R.spanMin,M),R.spanMax=Math.max(R.spanMax,v),R},"getOrAddPipe"),L=l((a,x)=>{let M=a.width??10,v=a.height??10,R=a.x??0,P=a.y??0;switch(x){case"top":return{x:R,y:P-v/2};case"bottom":return{x:R,y:P+v/2};case"left":return{x:R-M/2,y:P};case"right":return{x:R+M/2,y:P}}},"portForSide"),m=l((a,x,M)=>L(a,jn(a,x,M?"bottom":"top")),"getOrthogonalPort"),d=[],i=[],p=new Set,C=1e3,I=l((a,x,M)=>{if(d.length===0)return 0;let v=Math.abs(x.y-M.y)<at,R=Math.abs(x.x-M.x)<at;if(!v&&!R)return 0;let P=0;if(v){let j=x.y,Z=Math.min(x.x,M.x)-at,V=Math.max(x.x,M.x)+at;if(V<=Z)return 0;for(let G of d)G.edgeIndex===a||G.orientation!=="vertical"||G.pipe.coord<Z||G.pipe.coord>V||G.from-at<=j&&G.to+at>=j&&(P+=C)}else if(R){let j=x.x,Z=Math.min(x.y,M.y)-at,V=Math.max(x.y,M.y)+at;if(V<=Z)return 0;for(let G of d)G.edgeIndex===a||G.orientation!=="horizontal"||G.pipe.coord<Z||G.pipe.coord>V||G.from-at<=j&&G.to+at>=j&&(P+=C)}return P},"crossingPenalty"),T=s.map((a,x)=>{if(!a.start||!a.end)return{idx:x,crossLane:0,dx:0,dy:0};let M=r.get(a.start),v=r.get(a.end),R=c.get(a.start),P=c.get(a.end),j=R&&P&&R.id!==P.id?1:0,Z=M&&v?Math.abs((v.x??0)-(M.x??0)):0,V=M&&v?Math.abs((v.y??0)-(M.y??0)):0;return{idx:x,crossLane:j,dx:Z,dy:V}}).sort((a,x)=>{if(a.crossLane!==x.crossLane)return x.crossLane-a.crossLane;let M=a.dx+a.dy,v=x.dx+x.dy;return Math.abs(M-v)>1?M-v:a.idx-x.idx}).map(a=>a.idx),O=l((a,x,M,v)=>{let R=Math.min(a.x,x.x),P=Math.max(a.x,x.x),j=Math.min(a.y,x.y),Z=Math.max(a.y,x.y);return!!y.find(G=>M&&G.nodeId===M||v&&G.nodeId===v?!1:Math.abs(a.x-x.x)>at?G.minY<a.y&&G.maxY>a.y&&G.maxX>R&&G.minX<P:G.minX<a.x&&G.maxX>a.x&&G.maxY>j&&G.minY<Z)},"isSegmentBlocked"),S=new Map,b=new Map;for(let a of s)!a.start||!a.end||a.start===a.end||(b.set(a.start,(b.get(a.start)??0)+1),b.set(a.end,(b.get(a.end)??0)+1));let E=l((a,x)=>jn(a,x,"bottom"),"determineSide"),A=new Map;for(let[a,x]of s.entries()){if(!x.start||!x.end||x.start===x.end||x.points&&x.points.length>0)continue;let M=r.get(x.start),v=r.get(x.end);if(!M||!v)continue;let R=(v.x??0)-(M.x??0),P=(v.y??0)-(M.y??0);A.set(a,{edgeIdx:a,srcId:x.start,dstId:x.end,srcSide:E(M,{x:v.x??0,y:v.y??0}),dstSide:E(v,{x:M.x??0,y:M.y??0}),absDx:Math.abs(R),absDy:Math.abs(P),dxSign:Math.sign(R),dySign:Math.sign(P)})}let F=l(a=>a.srcSide==="top"||a.srcSide==="bottom"?a.absDx===0?1/0:a.absDy/a.absDx:a.absDy===0?1/0:a.absDx/a.absDy,"preferenceStrength"),w=l(a=>a.srcSide==="top"||a.srcSide==="bottom"?a.dxSign>=0?"right":"left":a.dySign>=0?"bottom":"top","secondarySide"),_=new Map;for(let a of A.values()){let x=`${a.srcId}:${a.srcSide}`;_.has(x)||_.set(x,[]),_.get(x).push(a)}let k=new Map,B=l((a,x)=>`${a}:${x}`,"loadKey");for(let a of A.values())k.set(B(a.srcId,a.srcSide),(k.get(B(a.srcId,a.srcSide))??0)+1),k.set(B(a.dstId,a.dstSide),(k.get(B(a.dstId,a.dstSide))??0)+1);for(let a of _.values())if(!(a.length<2)){a.sort((x,M)=>{let v=F(x),R=F(M);return Math.abs(v-R)>1e-9?R-v:x.edgeIdx-M.edgeIdx});for(let x=1;x<a.length;x++){let M=a[x],v=w(M),R=k.get(B(M.srcId,M.srcSide))??0,P=k.get(B(M.srcId,v))??0;P>=R||(k.set(B(M.srcId,M.srcSide),R-1),k.set(B(M.srcId,v),P+1),M.srcSide=v)}}let X=l(a=>{let x=a?.shape;return x==="question"||x==="diamond"},"isDiamondNode"),z=new Map;for(let a of A.values())z.has(a.dstId)||z.set(a.dstId,new Set),z.get(a.dstId).add(a.dstSide);for(let a of A.values()){if(!X(r.get(a.srcId)))continue;let x=z.get(a.srcId);if(!x?.has(a.srcSide))continue;let M=w(a);if(x.has(M)||(k.get(B(a.srcId,M))??0)>0)continue;let v=k.get(B(a.srcId,a.srcSide))??0;k.set(B(a.srcId,a.srcSide),Math.max(0,v-1)),k.set(B(a.srcId,M),1),a.srcSide=M}for(let a of A.values()){let{edgeIdx:x,srcId:M,dstId:v,srcSide:R,dstSide:P}=a,j=r.get(M),Z=r.get(v),V=`${M}:${R}:src`,G=R==="top"||R==="bottom"?Z.x??0:Z.y??0;S.has(V)||S.set(V,[]),S.get(V).push({edgeIdx:x,oppositeCoord:G});let ot=`${v}:${P}:dst`,rt=P==="top"||P==="bottom"?j.x??0:j.y??0;S.has(ot)||S.set(ot,[]),S.get(ot).push({edgeIdx:x,oppositeCoord:rt})}let K=new Map,ct=8;for(let[a,x]of S){if(x.length<2)continue;x.sort((Lt,Ht)=>Lt.oppositeCoord-Ht.oppositeCoord);let M=a.split(":"),v=M.slice(0,-2).join(":"),R=M[M.length-2],P=M[M.length-1],j=r.get(v);if(!j)continue;let V=R==="left"||R==="right"?j.height??10:j.width??10,G=j.shape,rt=G==="question"||G==="diamond"?V*.3:V,tt=Math.min(20,Math.max(ct,rt/(x.length+1))),Nt=-(tt*(x.length-1))/2;for(let[Lt,Ht]of x.entries()){let Zt=Nt+Lt*tt,an=`${Ht.edgeIdx}:${P}`;K.set(an,Zt)}}let pt=l(a=>!!s[a]?.labelNodeId,"edgeHasLabelNode"),At=l((a,x)=>a?(S.get(`${a}:${x}:src`)??[]).some(({edgeIdx:M})=>pt(M))||(S.get(`${a}:${x}:dst`)??[]).some(({edgeIdx:M})=>pt(M)):!1,"faceHasLabelNode"),Ft=l((a,x,M)=>x==="top"||x==="bottom"?{x:a.x+M,y:a.y}:{x:a.x,y:a.y+M},"applyPortOffset"),Q=l((a,x,M)=>{let v=A.get(a),R={x:M.x??0,y:M.y??0},P={x:x.x??0,y:x.y??0},j=v?.srcSide??E(x,R),Z=v?.dstSide??E(M,P),V=v?L(x,v.srcSide):m(x,R,!0),G=v?L(M,v.dstSide):m(M,P,!1),ot=K.get(`${a}:src`),rt=K.get(`${a}:dst`);return ot!==void 0&&(V=Ft(V,j,ot)),rt!==void 0&&(G=Ft(G,Z,rt)),{pSrcPort:V,pDstPort:G,srcSide:j,dstSide:Z}},"portsForEdge");for(let a of T){let x=s[a];if(i[a]=[],!x.start||!x.end||x.points&&x.points.length>0||x.start===x.end)continue;let M=r.get(x.start),v=r.get(x.end);if(!M||!v)continue;let{pSrcPort:R,pDstPort:P,srcSide:j,dstSide:Z}=Q(a,M,v),V={...R},G={...P},ot=j==="top"||j==="bottom",rt=Z==="top"||Z==="bottom";if(ot){let Y=R.y>(M.y??0);V.y=Y?R.y+ne:R.y-ne}else{let Y=R.x>(M.x??0);V.x=Y?R.x+ne:R.x-ne}if(rt){let Y=P.y>(v.y??0);G.y=Y?P.y+ne:P.y-ne}else{let Y=P.x>(v.x??0);G.x=Y?P.x+ne:P.x-ne}let st=l((Y,$)=>{for(let q of y)if(!$.includes(q.nodeId)&&Y.x>q.minX&&Y.x<q.maxX&&Y.y>q.minY&&Y.y<q.maxY)return{inside:!0,obstacle:q};return{inside:!1}},"isPointInObstacle"),tt=l((Y,$,q,ft,Ct)=>{if(Ct){let Ot=Y.y>($.y??0);return{x:(q.x??0)>=Y.x?ft.maxX+xe:ft.minX-xe,y:Ot?ft.maxY+Te:ft.minY-Te,leavesPositiveSide:Ot}}let bt=Y.x>($.x??0),Tt=(q.y??0)>=Y.y;return{x:bt?ft.maxX+xe:ft.minX-xe,y:Tt?ft.maxY+Te:ft.minY-Te,leavesPositiveSide:bt}},"obstacleDetour"),yt=[],Nt=[x.start,x.end],Lt=st(V,Nt);if(Lt.inside&&Lt.obstacle){let Y=Lt.obstacle;if(ot){let $=tt(R,M,v,Y,!0);V.x=$.x,V.y=$.y;let q=$.leavesPositiveSide?Math.min(Y.minY-2,R.y+ne):Math.max(Y.maxY+2,R.y-ne);yt=[{x:R.x,y:q},{x:$.x,y:q},{x:$.x,y:$.y}]}else{let $=tt(R,M,v,Y,!1),q=$.leavesPositiveSide?Math.min(Y.minX-2,R.x+ne):Math.max(Y.maxX+2,R.x-ne);V.x=$.x,V.y=$.y,yt=[{x:q,y:R.y},{x:q,y:$.y},{x:$.x,y:$.y}]}}let Ht=[],Zt=st(G,Nt);if(Zt.inside&&Zt.obstacle){let Y=Zt.obstacle;if(rt){let $=tt(P,v,M,Y,!0);G.x=$.x,G.y=$.y,Ht=[{x:$.x,y:$.y},{x:P.x,y:$.y}]}else{let $=tt(P,v,M,Y,!1);G.x=$.x,G.y=$.y,Ht=[{x:$.x,y:$.y},{x:$.x,y:P.y}]}}if(yt.length===0&&Ht.length===0){let Y=xe,$=Math.abs(V.x-G.x)<Y,q=Math.abs(V.y-G.y)<Y,ft=K.get(`${a}:src`)!==void 0||K.get(`${a}:dst`)!==void 0,Ct=(S.get(`${x.start??""}:${j}:src`)?.length??0)+(S.get(`${x.start??""}:${j}:dst`)?.length??0),bt=(S.get(`${x.end??""}:${Z}:src`)?.length??0)+(S.get(`${x.end??""}:${Z}:dst`)?.length??0),Tt=Ct>1||bt>1,Ot=b.get(x.start??"")??0,ut=b.get(x.end??"")??0,Yt=Ct>1&&At(x.start,j)||bt>1&&At(x.end,Z),ee=Ct<=1||Ot<=2,Pt=bt<=1||ut<=2;if(($||q)&&!ft&&(!Tt||Tt&&!Yt&&ee&&Pt)&&!O(R,P,x.start,x.end)){x.points=[{...R},{...V},{...G},{...P}],p.add(a);let It=q?"horizontal":"vertical",zt=q?R.y:R.x,Mt=q?Math.min(R.x,P.x):Math.min(R.y,P.y),St=q?Math.max(R.x,P.x):Math.max(R.y,P.y),Wt={id:`fast-path-${It}-${zt.toFixed(0)}-${a}`,orientation:It,coord:zt,spanMin:Mt,spanMax:St,tracks:[]};d.push({edgeIndex:a,segmentIndex:0,orientation:It,pipe:Wt,trackIndex:0,from:Mt,to:St});continue}}let an=g("vertical",V.x,V.y,V.y);V.x=an.coord;let qs=g("vertical",G.x,G.y,G.y);G.x=qs.coord;let de=Math.min(V.x,G.x)-50,ue=Math.max(V.x,G.x)+50,Ce=Math.min(V.y,G.y)-50,ve=Math.max(V.y,G.y)+50;for(let Y of y){let $=Math.min(V.x,G.x),q=Math.max(V.x,G.x),ft=Math.min(V.y,G.y),Ct=Math.max(V.y,G.y);Y.minX<q&&Y.maxX>$&&Y.minY<Ct&&Y.maxY>ft&&(de=Math.min(de,Y.minX-Ye),ue=Math.max(ue,Y.maxX+Ye),Ce=Math.min(Ce,Y.minY-Ye),ve=Math.max(ve,Y.maxY+Ye))}for(let Y of y){if(Y.maxX<de||Y.minX>ue||Y.maxY<Ce||Y.minY>ve)continue;let $=xe;g("horizontal",Y.minY-$,de,ue),g("horizontal",Y.maxY+$,de,ue);let q=Te;g("vertical",Y.minX-q,Ce,ve),g("vertical",Y.maxX+q,Ce,ve)}g("horizontal",V.y,de,ue),g("horizontal",G.y,de,ue);let Zs=h.filter(Y=>Y.orientation==="horizontal"&&Y.coord>=Ce&&Y.coord<=ve),Js=h.filter(Y=>Y.orientation==="vertical"&&Y.coord>=de&&Y.coord<=ue),Oe=l((Y,$)=>`${Y.toFixed(1)},${$.toFixed(1)}`,"getKey"),Be=Oe(V.x,V.y),mo=Oe(G.x,G.y),Fe=new Map,ln=new Map,fn=new Map,Pe=new Set,ye=[];Fe.set(Be,0),fn.set(Be,"n"),ye.push({key:Be,f:Math.hypot(G.x-V.x,G.y-V.y),pt:V}),Pe.add(Be);let Dt=[],he=l((Y,$)=>O(Y,$,x.start,x.end),"checkSegmentBlocked"),dn={x:G.x,y:V.y},Qs=he(V,dn),tr=he(dn,G),er=Qs||tr,un={x:V.x,y:G.y},nr=he(V,un),or=he(un,G);if(er?nr||or||(Math.abs(V.x-G.x)<at?Dt=[V,G]:Dt=[V,un,G]):Math.abs(V.y-G.y)<at||Math.abs(V.x-G.x)<at?Dt=[V,G]:Dt=[V,dn,G],Dt.length===0)for(;ye.length>0;){ye.sort((ut,Yt)=>ut.f-Yt.f);let Y=ye.shift();if(Pe.delete(Y.key),Y.key===mo){let ut=mo,Yt=G;for(Dt=[Yt];ln.has(ut);){let ee=ln.get(ut);Dt.unshift(ee),Yt=ee,ut=Oe(ee.x,ee.y)}break}let $=Y.pt.x,q=Y.pt.y,ft=Js.sort((ut,Yt)=>ut.coord-Yt.coord),Ct=ft.findIndex(ut=>Math.abs(ut.coord-$)<1),bt=Zs.sort((ut,Yt)=>ut.coord-Yt.coord),Tt=bt.findIndex(ut=>Math.abs(ut.coord-q)<1),Ot=[];Ct>0&&Ot.push({x:ft[Ct-1].coord,y:q}),Ct>=0&&Ct<ft.length-1&&Ot.push({x:ft[Ct+1].coord,y:q}),Tt>0&&Ot.push({x:$,y:bt[Tt-1].coord}),Tt>=0&&Tt<bt.length-1&&Ot.push({x:$,y:bt[Tt+1].coord});for(let ut of Ot){let Yt=Math.min($,ut.x),ee=Math.max($,ut.x),Pt=Math.min(q,ut.y),Gt=Math.max(q,ut.y);if(y.some(Jt=>Jt.nodeId===x.start||Jt.nodeId===x.end?!1:Yt!==ee?Jt.minY<q&&Jt.maxY>q&&Jt.maxX>Yt&&Jt.minX<ee:Jt.minX<$&&Jt.maxX>$&&Jt.maxY>Pt&&Jt.minY<Gt))continue;let It=Oe(ut.x,ut.y),zt=Math.abs(ut.x-$)+Math.abs(ut.y-q),Mt=I(a,Y.pt,ut),St=0,Wt=G.x-V.x,Le=G.y-V.y,ke=ut.x-$,hn=ut.y-q;(Le>10&&hn<-5||Le<-10&&hn>5)&&(St=Math.abs(hn)*100),(Wt>10&&ke<-5||Wt<-10&&ke>5)&&(St+=Math.abs(ke)*50);let po=0,yo=fn.get(Y.key)??"n",xo=Math.abs(ke)>at?"h":"v";yo!=="n"&&yo!==xo&&(po=50);let sr=zt+Mt+St+po,_e=(Fe.get(Y.key)??1/0)+sr,bo=Math.abs(G.x-ut.x)+Math.abs(G.y-ut.y);if(_e<(Fe.get(It)??1/0))if(ln.set(It,Y.pt),Fe.set(It,_e),fn.set(It,xo),!Pe.has(It))ye.push({key:It,f:_e+bo,pt:ut}),Pe.add(It);else{let Jt=ye.findIndex(rr=>rr.key===It);Jt!==-1&&(ye[Jt].f=_e+bo)}}}if(Dt.length===0&&(Dt=[V,{x:V.x,y:G.y},G]),Dt.length>4){let Y=Dt[0],$=Dt[Dt.length-1],q=Math.min(Y.x,$.x),ft=Math.max(Y.x,$.x),Ct=Math.min(Y.y,$.y),bt=Math.max(Y.y,$.y);for(let Pt of Dt)q=Math.min(q,Pt.x),ft=Math.max(ft,Pt.x),Ct=Math.min(Ct,Pt.y),bt=Math.max(bt,Pt.y);let Tt=ft>Math.max(Y.x,$.x),Ot=q<Math.min(Y.x,$.x);if(f){let Pt=Te;if(Tt){let Gt=Math.max(Y.x,$.x),Bt=Math.min(Y.y,$.y),It=Math.max(Y.y,$.y),zt=y.filter(Mt=>Mt.minX<Gt&&Mt.maxX>Gt&&Mt.minY<It&&Mt.maxY>Bt);if(zt.length>0){let Mt=Math.max(Y.x,$.x);for(let St of zt){let Wt=(St.minX+St.maxX)/2;if(St.visualXHalfExtent===void 0||isNaN(St.visualXHalfExtent))continue;let Le=Wt+St.visualXHalfExtent+Pt;Mt=Math.max(Mt,Le)}isNaN(Mt)||(ft=Mt)}}if(Ot){let Gt=y.filter(Bt=>Bt.minX<Math.min(Y.x,$.x)+Pt&&Bt.minY<Math.max(Y.y,$.y)&&Bt.maxY>Math.min(Y.y,$.y));if(Gt.length>0){let Bt=Math.min(Y.x,$.x);for(let It of Gt){let Mt=(It.minX+It.maxX)/2-It.visualXHalfExtent-Pt;Bt=Math.min(Bt,Mt)}q=Bt}}}let ut=l(Pt=>{let Gt=$.y>Y.y,Bt=y.filter(Mt=>{let St=Math.min(Y.x,$.x)<Mt.maxX&&Math.max(Y.x,$.x)>Mt.minX,Wt=Math.min(Y.y,$.y)<Mt.maxY&&Math.max(Y.y,$.y)>Mt.minY;return St&&Wt}),It=Bt;if(f&&Bt.length>0){let Mt=Bt.filter(St=>St.minX<Pt&&St.maxX>Pt);Mt.length>0&&(It=Mt)}if(It.length===0)return $.y;let zt=xe;if(Gt){let St=Math.max(...It.map(Wt=>Wt.maxY))+zt;if(St<$.y-at)return St}else{let St=Math.min(...It.map(Wt=>Wt.minY))-zt;if(St>$.y+at)return St}return $.y},"findBestReturnY"),Yt=l(Pt=>{let Gt=ut(Pt),Bt={x:Pt,y:Y.y},It={x:Pt,y:Gt},zt={x:$.x,y:Gt},Mt=he(Y,Bt),St=he(Bt,It),Wt=he(It,zt),Le=Gt!==$.y?he(zt,$):!1;return!Mt&&!St&&!Wt&&!Le?Math.abs(Gt-$.y)<at?[Y,Bt,It,$]:[Y,Bt,It,zt,$]:null},"trySimplifyWithDetourX"),ee=Tt&&!Ot?Yt(ft):Ot&&!Tt?Yt(q):null;ee&&(Dt=ee)}let Xt=[R,...yt,...Dt,...Ht.reverse(),P];if(Xt.length>=3){let Y=Xt[Xt.length-1],$=Xt[Xt.length-2],q=Xt[Xt.length-3],ft=Math.abs(q.y-$.y)<at&&Math.abs($.y-Y.y)<at,Ct=Math.abs(q.x-$.x)<at&&Math.abs($.x-Y.x)<at;if(ft){let bt=Math.sign($.x-q.x),Tt=Math.sign(Y.x-q.x);bt!==0&&bt===Tt&&Math.abs($.x-q.x)>Math.abs(Y.x-q.x)&&Xt.splice(-2,1)}else if(Ct){let bt=Math.sign($.y-q.y),Tt=Math.sign(Y.y-q.y);bt!==0&&bt===Tt&&Math.abs($.y-q.y)>Math.abs(Y.y-q.y)&&Xt.splice(-2,1)}}let re=[Xt[0]];for(let Y=1;Y<Xt.length-1;Y++){if(Y===1){re.push(Xt[Y]);continue}let $=re[re.length-1],q=Xt[Y],ft=Xt[Y+1];if(Math.abs($.y-q.y)<at&&Math.abs(q.y-ft.y)<at){let Ct=q.x>$.x,bt=ft.x>q.x;if(Ct!==bt){re.push(q);continue}continue}if(Math.abs($.x-q.x)<at&&Math.abs(q.x-ft.x)<at){let Ct=q.y>$.y,bt=ft.y>q.y;if(Ct!==bt){re.push(q);continue}continue}re.push(q)}re.push(Xt[Xt.length-1]);for(let Y=0;Y<re.length-1;Y++){let $=re[Y],q=re[Y+1],ft=Math.abs($.x-q.x)<at?"vertical":"horizontal",Ct=ft==="vertical"?$.x:$.y,bt=ft==="vertical"?Math.min($.y,q.y):Math.min($.x,q.x),Tt=ft==="vertical"?Math.max($.y,q.y):Math.max($.x,q.x),Ot=g(ft,Ct,bt,Tt),ut={edgeIndex:a,segmentIndex:Y,orientation:ft,pipe:Ot,trackIndex:0,from:bt,to:Tt};d.push(ut),i[a].push(d.length-1),Ot.tracks[0]||(Ot.tracks[0]={index:0,coord:Ot.coord,segments:[]}),Ot.tracks[0].segments.push({edgeIndex:a,segmentIndex:Y,from:bt,to:Tt})}}let W=l((a,x)=>a.from<x.to&&x.from<a.to,"segmentsOverlap"),et=l((a,x,M,v)=>{let R=!v.segments.some(j=>(j.edgeIndex!==x.edgeIndex||j.segmentIndex!==x.segmentIndex)&&W(j,a)),P=!M.segments.some(j=>(j.edgeIndex!==a.edgeIndex||j.segmentIndex!==a.segmentIndex)&&W(j,x));return R&&P?(a.trackIndex=v.index,x.trackIndex=M.index,M.segments=[...M.segments.filter(j=>j.edgeIndex!==a.edgeIndex||j.segmentIndex!==a.segmentIndex),{edgeIndex:x.edgeIndex,segmentIndex:x.segmentIndex,from:x.from,to:x.to}],v.segments=[...v.segments.filter(j=>j.edgeIndex!==x.edgeIndex||j.segmentIndex!==x.segmentIndex),{edgeIndex:a.edgeIndex,segmentIndex:a.segmentIndex,from:a.from,to:a.to}],!0):!1},"trySwapSegmentsAcrossTracks"),lt=l(a=>{let x=a.tracks.length;return a.tracks[x]={index:x,coord:a.coord,segments:[]},x},"createNewTrack"),gt=l((a,x)=>{let M=a.pipe.tracks[a.trackIndex];M.segments=M.segments.filter(R=>R.edgeIndex!==a.edgeIndex||R.segmentIndex!==a.segmentIndex),a.trackIndex=x,a.pipe.tracks[x].segments.push({edgeIndex:a.edgeIndex,segmentIndex:a.segmentIndex,from:a.from,to:a.to})},"moveSegmentToTrack"),xt=l((a,x)=>{let M=i[a.edgeIndex];for(let v of M){let R=d[v];R.pipe===a.pipe&&gt(R,x)}},"moveSegmentChainToTrack"),vt=l(a=>{let x=i[a.edgeIndex],M=x.indexOf(d.indexOf(a)),v=[];return M>0&&v.push(d[x[M-1]]),M<x.length-1&&v.push(d[x[M+1]]),v},"getAdjacentSegmentsAlongEdge"),Vt=l((a,x)=>{if(a.orientation===x.orientation)return!1;let M=a.orientation==="horizontal"?a:x,v=a.orientation==="horizontal"?x:a;return v.pipe.coord>M.from&&v.pipe.coord<M.to&&M.pipe.coord>v.from&&M.pipe.coord<v.to},"haveAnyCrossing"),Ut=l((a,x)=>{for(let M of a.tracks)if(!M.segments.some(R=>(R.edgeIndex!==x.edgeIndex||R.segmentIndex!==x.segmentIndex)&&W(R,x)))return M.index;return-1},"findAvailableTrack"),jt=l((a,x)=>{if(a.trackIndex===x.trackIndex)return W(a,x);let M=vt(a),v=vt(x);return M.some(R=>v.some(P=>Vt(R,P)))},"segmentsConflict"),te=l((a,x,M)=>{if(et(a,x,a.pipe.tracks[a.trackIndex],x.pipe.tracks[x.trackIndex]))return;let v=Ut(a.pipe,x);M(x,v!==-1?v:lt(a.pipe))},"resolveTrackConflict"),Me=l(a=>{let x=0;for(let M=0;M<a.length;M++)for(let v=M+1;v<a.length;v++){let R=a[M],P=a[v];R.pipe===P.pipe&&jt(R,P)&&(x++,te(R,P,xt))}return x},"resolveHandleConflicts"),fe=new Map,Se=l(a=>{if(fe.has(a))return fe.get(a);let x=i[a];if(x.length===0){let Z={dest:0,deviation:0,base:0,delta:0};return fe.set(a,Z),Z}let v=d[x[0]].pipe.coord,R=v;for(let Z=1;Z<x.length;Z++){let V=d[x[Z]];if(V.orientation==="horizontal"){let G=V.from,ot=V.to;R=Math.abs(G-v)>Math.abs(ot-v)?G:ot;break}}let P=Math.abs(R-v),j={dest:R,deviation:P,base:v,delta:R-v};return fe.set(a,j),j},"getDestInfo"),sn=l(()=>{let a=0,x=new Map;for(let[v,R]of s.entries())i[v].length!==0&&R.start&&(x.has(R.start)||x.set(R.start,[]),x.get(R.start).push(v));let M=l(v=>{let R=s[v];if(!R.start||!R.end)return 0;let P=r.get(R.start),j=r.get(R.end);if(!P||!j)return 0;let Z=(j.x??0)-(P.x??0),V=(j.y??0)-(P.y??0);return Math.abs(Z)+Math.abs(V)},"getEdgeDistance");for(let v of x.values()){v.sort((P,j)=>{let Z=Se(P),V=Se(j);if(Math.abs(Z.deviation-V.deviation)>1)return Z.deviation-V.deviation;if(Math.abs(Z.dest-V.dest)>1)return Z.dest-V.dest;let G=M(P),ot=M(j);if(Math.abs(G-ot)>1)return ot-G;let rt=i[P].length,st=i[j].length;if(rt!==st)return rt-st;if(rt===1){let tt=i[P][0],yt=i[j][0];if(d[tt]&&d[yt]){let Nt=d[tt],Lt=d[yt],Ht=Math.abs(Nt.to-Nt.from),Zt=Math.abs(Lt.to-Lt.from);if(Math.abs(Ht-Zt)>1)return Ht-Zt}}return 0});let R=v.map(P=>d[i[P][0]]);a+=Me(R)}return a},"fixSourceHandleCrossings"),rn=l(()=>{let a=0,x=new Map;for(let[M,v]of s.entries())i[M].length!==0&&v.end&&(x.has(v.end)||x.set(v.end,[]),x.get(v.end).push(M));for(let M of x.values()){M.sort((R,P)=>{let j=l(G=>{let ot=i[G];if(ot.length<2)return 0;let rt=d[ot[ot.length-2]];return Math.abs(rt.to-rt.from)},"getDist"),Z=j(R),V=j(P);return Math.abs(Z-V)>.1?Z-V:R-P});let v=M.map(R=>d[i[R][i[R].length-1]]);a+=Me(v)}return a},"fixTargetHandleCrossings"),cn=l(()=>{let a=0;for(let x of h){let M=[];for(let v of x.tracks)for(let R of v.segments){let P=i[R.edgeIndex].find(j=>d[j].segmentIndex===R.segmentIndex);P!==void 0&&M.push(d[P])}M.sort((v,R)=>v.edgeIndex-R.edgeIndex||v.segmentIndex-R.segmentIndex);for(let v=0;v<M.length;v++)for(let R=v+1;R<M.length;R++){let P=M[v],j=M[R];jt(P,j)&&(a++,te(P,j,gt))}}return a},"fixPipeCrossings"),N=0,H=10;for(;N<H;){let a=0;if(a+=sn(),a+=rn(),a+=cn(),a===0)break;N++}let D=new Map;for(let a of h){let x=[];a.tracks.forEach(v=>{v.segments.forEach(R=>{x.push({edgeIndex:R.edgeIndex,segmentIndex:R.segmentIndex,trackIndex:v.index,from:R.from,to:R.to})})}),x.sort((v,R)=>v.from-R.from);let M=[];if(x.length>0){let v=[x[0]],R=x[0].to;for(let P=1;P<x.length;P++){let j=x[P];j.from<R?(v.push(j),R=Math.max(R,j.to)):(M.push(v),v=[j],R=j.to)}M.push(v)}for(let v of M){let R=new Set;v.forEach(tt=>R.add(tt.trackIndex));let P=new Map;v.forEach(tt=>{let yt=Se(tt.edgeIndex);P.set(tt.trackIndex,(P.get(tt.trackIndex)??0)+yt.delta)});let j=[...R].filter(tt=>(P.get(tt)??0)<-1),Z=[...R].filter(tt=>(P.get(tt)??0)>1),V=[...R].filter(tt=>Math.abs(P.get(tt)??0)<=1);j.sort((tt,yt)=>(P.get(yt)??0)-(P.get(tt)??0)),Z.sort((tt,yt)=>(P.get(tt)??0)-(P.get(yt)??0));let G=l((tt,yt)=>{v.filter(Nt=>Nt.trackIndex===tt).forEach(Nt=>{let Lt=p.has(Nt.edgeIndex)?a.coord:yt;D.set(`${Nt.edgeIndex}-${Nt.segmentIndex}`,Lt)})},"assignCoord"),ot=0;for(let tt of j)ot++,G(tt,a.coord-ot*yn);if(V.length===0&&R.size>0){let tt=[...R].sort((Lt,Ht)=>Math.abs(P.get(Lt)??0)-Math.abs(P.get(Ht)??0))[0],yt=j.indexOf(tt);yt!==-1&&j.splice(yt,1);let Nt=Z.indexOf(tt);Nt!==-1&&Z.splice(Nt,1),V.push(tt)}let rt=0;for(let tt of V){if(rt===0)G(tt,a.coord);else{let yt=rt%2===1?1:-1,Nt=Math.ceil(rt/2);G(tt,a.coord+yt*Nt*yn*.5)}rt++}let st=0;for(let tt of Z)st++,G(tt,a.coord+st*yn)}}for(let[a,x]of s.entries()){let M=i[a]??[];if(M.length===0)continue;let v=[],R=r.get(x.start),P=r.get(x.end),{pSrcPort:j,pDstPort:Z}=Q(a,R,P),V=M.map(rt=>{let st=d[rt],tt=D.get(`${st.edgeIndex}-${st.segmentIndex}`)??st.pipe.coord;return{orient:st.orientation,coord:tt,from:st.from,to:st.to}});v.push(j);for(let rt=0;rt<V.length;rt++){let st=V[rt],tt=v[v.length-1],yt=st.orient==="vertical"?tt.y:tt.x,Nt=st.orient==="vertical"?tt.x:tt.y,Lt=V[rt+1],Ht=rt<V.length-1;if(Math.abs(Nt-st.coord)>at&&v.push(be(st,yt)),Ht&&Lt.orient===st.orient)if(Math.abs(st.coord-Lt.coord)>at){let Zt=st.orient==="vertical"?(yt+Lt.from)/2:Wn(st,Lt);v.push(be(st,Zt),be(Lt,Zt))}else(rt===0||rt===V.length-2)&&v.push(be(st,Wn(st,Lt)));else if(Ht)v.push(be(st,Lt.coord));else{let Zt=Math.abs(st.from-yt)<Math.abs(st.to-yt)?st.to:st.from;v.push(be(st,Zt))}}let G=v[v.length-1];(Math.abs(G.x-Z.x)>at||Math.abs(G.y-Z.y)>at)&&v.push(Z);let ot=[];v.length>0&&ot.push(v[0]);for(let rt=1;rt<v.length;rt++){let st=v[rt],tt=ot[ot.length-1];(Math.abs(st.x-tt.x)>at||Math.abs(st.y-tt.y)>at)&&ot.push(st)}x.points=ot}for(let a of s){let x=a.__originalEdge;x&&a.points&&(x.points=a.points)}t.edges=(t.edges??[]).filter(a=>!a.isLayoutOnly);let U=l((a,x)=>{let M=x.x??0,v=x.y??0,R=x.width??0,P=x.height??0;if(R<=0||P<=0)return a;let j=M-R/2,Z=M+R/2,V=v-P/2,G=v+P/2;if(a.x<j||a.x>Z||a.y<V||a.y>G)return a;let ot=a.x-j,rt=Z-a.x,st=a.y-V,tt=G-a.y,yt=Math.min(ot,rt,st,tt);return yt===ot?{x:j,y:a.y}:yt===rt?{x:Z,y:a.y}:yt===st?{x:a.x,y:V}:{x:a.x,y:G}},"nodeBoundaryClamp");for(let a of t.edges){let x=a.points;if(!x||x.length<2)continue;let M=a.start,v=a.end,R=M?r.get(M):void 0,P=v?r.get(v):void 0;R&&(x[0]=U(x[0],R)),P&&(x[x.length-1]=U(x[x.length-1],P))}return t}l(Us,"routeEdgesOrthogonal");function js(t){return t.direction??"TB"}l(js,"getSwimlaneDirection");function Ws(t){let e=Ao(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,c=t.config.swimlane?.automaticLaneOrdering??!1,h=js(t),{ordered:f,coordinates:u}=Vs(e,{nodeGap:n,layerGap:o,ignoreCrossLaneEdges:s,optimizeRanksByCrossings:r,automaticLaneOrdering:c,direction:h});No(e,f,u,{nodeGap:n,layerGap:o});for(let y of t.edges??[])delete y.points;Us(t,h);for(let y of t.edges??[])(!y.curve||y.curve==="basis")&&(y.curve="rounded");return ls(t,h),as(t),h}l(Ws,"runSwimlaneLayoutCore");function Ks(t){wo(t);let e=Oo(t);t.nodes=e.nodes,t.edges=e.edges}l(Ks,"prepareSwimlaneLayout");var Nr=Mo({prepareLayout:Ks,runLayoutCore:Ws,afterPaint:Eo});export{Nr as render};
@@ -0,0 +1,8 @@
1
+ import{a as o,b as m}from"./chunk-CBAFHIQV.js";import"./chunk-R4OZRASH.js";import"./chunk-7ITQOSYJ.js";import"./chunk-BYKZQKZN.js";import"./chunk-GBOXGTKU.js";import"./chunk-7DQROAU7.js";import"./chunk-XYDA52BE.js";import"./chunk-IR3NHMOO.js";import"./chunk-OFD4YTIR.js";import"./chunk-ZRBDUQXP.js";import"./chunk-6QSLXF4I.js";import"./chunk-NBZPV65B.js";import"./chunk-NCTJNXDF.js";import"./chunk-ZGUCZDEK.js";import"./chunk-ENUKY65A.js";import"./chunk-HHYS5L3R.js";import"./chunk-KLF2A562.js";import"./chunk-GTJDAHEV.js";import"./chunk-XLJVPE6C.js";import"./chunk-M3XBBO6R.js";import"./chunk-W4ELJFHG.js";import{a as r}from"./chunk-UAGOPMXU.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 vt}from"./chunk-LZTAJOGZ.js";import{c as wt,f as J}from"./chunk-KLF2A562.js";import{o as _t}from"./chunk-GTJDAHEV.js";import"./chunk-XLJVPE6C.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-M3XBBO6R.js";import{F as at,b as _,h as K}from"./chunk-W4ELJFHG.js";import{a as o,b as ft}from"./chunk-UAGOPMXU.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=vt(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]=_t(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=wt(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-GDF64WIG.js";import"./chunk-WBPRABWA.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-ABLFMIK7.js";import"./chunk-WBPRABWA.js";import"./chunk-PHKIAKHS.js";export{e as TreemapModule,r as createTreemapServices};