@marimo-team/frontend 0.24.1-dev3 → 0.24.1-dev30

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 (588) hide show
  1. package/dist/assets/{CellStatus-B_dBNTJO.js → CellStatus-DdKYN88d.js} +1 -1
  2. package/dist/assets/{ConnectedDataExplorerComponent-DLvmqIcV.js → ConnectedDataExplorerComponent-CbTaTBJ8.js} +1 -1
  3. package/dist/assets/{JsonOutput-C5g_bqiZ.js → JsonOutput-htT793Wj.js} +7 -7
  4. package/dist/assets/LazyAnyLanguageCodeMirror-Bx0i_n8B.js +2 -0
  5. package/dist/assets/{MarimoErrorOutput-Cb0evuEp.js → MarimoErrorOutput-Db7coyFA.js} +7 -7
  6. package/dist/assets/{RenderHTML-BoN8Qu7U.js → RenderHTML-Cu5JtYZJ.js} +1 -1
  7. package/dist/assets/{RunButton-C3V3v58F.js → RunButton-BOnl_Dk8.js} +1 -1
  8. package/dist/assets/{abnfDiagram-N423BO3Z-BBbWbiyb.js → abnfDiagram-N423BO3Z-BhqlQxDe.js} +1 -1
  9. package/dist/assets/{add-cell-with-ai--yrESuLb.js → add-cell-with-ai-Chy4ITIT.js} +12 -12
  10. package/dist/assets/add-connection-dialog-DGYhyXo6.js +181 -0
  11. package/dist/assets/{agent-panel-i9R2vDC5.js → agent-panel--Nt4UmNj.js} +6 -6
  12. package/dist/assets/{ai-model-dropdown-Wvw4ot3v.js → ai-model-dropdown-BUCPZ0ND.js} +4 -4
  13. package/dist/assets/{any-language-editor-B92E_2Sy.js → any-language-editor-CV_jRt2A.js} +1 -1
  14. package/dist/assets/apl-sEsRK68R.js +1 -0
  15. package/dist/assets/app-config-button-BOxbrv3L.js +1 -0
  16. package/dist/assets/architecture-TIHT7OUA-CkB6_TwN.js +1 -0
  17. package/dist/assets/{architectureDiagram-T3A2C74G-DoGbg0qs.js → architectureDiagram-T3A2C74G-D_0znduP.js} +1 -1
  18. package/dist/assets/asciiarmor-CwCv7Lne.js +1 -0
  19. package/dist/assets/asn1-CuzWg-fh.js +1 -0
  20. package/dist/assets/{blob-XD7AvCQ1.js → blob-BVQSODqn.js} +1 -1
  21. package/dist/assets/{blockDiagram-VBNYF7ZC-Fapk5G8q.js → blockDiagram-VBNYF7ZC-DhnQkFJt.js} +1 -1
  22. package/dist/assets/brainfuck-CnnfS_cI.js +1 -0
  23. package/dist/assets/{c4Diagram-5PPSVZJV-DHpoGw8m.js → c4Diagram-5PPSVZJV-DAZWLixJ.js} +1 -1
  24. package/dist/assets/{cell-editor-CrWparei.js → cell-editor-DgOfL9Xv.js} +15 -15
  25. package/dist/assets/cell-link-Bx8FWjns.js +1 -0
  26. package/dist/assets/{cells-BvgwUKB9.js → cells-Biwqg0z6.js} +80 -80
  27. package/dist/assets/channel-97-i68Z5.js +1 -0
  28. package/dist/assets/{chat-display-CvI32cPI.js → chat-display-B2qUbgnh.js} +1 -1
  29. package/dist/assets/{chat-panel-nbCWEZX-.js → chat-panel-gxL2S-HQ.js} +2 -2
  30. package/dist/assets/{chat-ui-BmrjRgsi.js → chat-ui-BhnwgDpa.js} +1 -1
  31. package/dist/assets/{chunk-2GRJ4B5K-B92Uwj7z.js → chunk-2GRJ4B5K-BJlW2T7a.js} +1 -1
  32. package/dist/assets/{chunk-2Q5K7J3B-CjxRf8HM.js → chunk-2Q5K7J3B-BKHkc-hn.js} +1 -1
  33. package/dist/assets/{chunk-3NCLNEKW-D7adDEkj.js → chunk-3NCLNEKW-DYppyU2y.js} +1 -1
  34. package/dist/assets/{chunk-4I5QYGJK-Cce-HuZg.js → chunk-4I5QYGJK-o2gGFKEO.js} +1 -1
  35. package/dist/assets/{chunk-5FCAYU7R-BJ04i5uO.js → chunk-5FCAYU7R-B4Jz9Jv5.js} +1 -1
  36. package/dist/assets/{chunk-5FQGJX7Z-B4N_BMo6.js → chunk-5FQGJX7Z-BIDn9QG0.js} +2 -2
  37. package/dist/assets/{chunk-5HE753X5-DRFzJ7WN.js → chunk-5HE753X5-DySWu3WO.js} +1 -1
  38. package/dist/assets/{chunk-5JV3BV7I-BEi9dboc.js → chunk-5JV3BV7I-EFAb-cXP.js} +1 -1
  39. package/dist/assets/{chunk-5RXB4S5H-B63Jmiyu.js → chunk-5RXB4S5H-Bsyeqyau.js} +1 -1
  40. package/dist/assets/{chunk-5TONJI2A-C5JJwzzL.js → chunk-5TONJI2A-BtGpymP5.js} +1 -1
  41. package/dist/assets/{chunk-5VM5RSS4-CQG8Gkf2.js → chunk-5VM5RSS4-De48wE7I.js} +1 -1
  42. package/dist/assets/{chunk-6Q2QTUOP-CjNw1snm.js → chunk-6Q2QTUOP-UhOQcBq_.js} +1 -1
  43. package/dist/assets/{chunk-7BUUIJ7U-DFO0zbY5.js → chunk-7BUUIJ7U-VPkRElaC.js} +1 -1
  44. package/dist/assets/{chunk-7Z6QIM7H-BahVaiTb.js → chunk-7Z6QIM7H-CSiw9nlS.js} +1 -1
  45. package/dist/assets/{chunk-BIQX33UG-B1y9dy0P.js → chunk-BIQX33UG-Clm0kIyq.js} +1 -1
  46. package/dist/assets/{chunk-CQNSW5MT-BOOyLCfW.js → chunk-CQNSW5MT-CxPDGEiS.js} +1 -1
  47. package/dist/assets/{chunk-CYSBUYHQ-DAWZpY6r.js → chunk-CYSBUYHQ-Cx6JgR38.js} +1 -1
  48. package/dist/assets/{chunk-EMLP6XTP-Bj2I2iEi.js → chunk-EMLP6XTP-DrNgCa2u.js} +1 -1
  49. package/dist/assets/{chunk-GF5L2VYU-BA39vN3k.js → chunk-GF5L2VYU-B88HnHN4.js} +1 -1
  50. package/dist/assets/{chunk-I66GZJ75-CgJN5WrL.js → chunk-I66GZJ75-BWcitPjS.js} +3 -3
  51. package/dist/assets/{chunk-J7OUQ5F2-DK5phbYO.js → chunk-J7OUQ5F2-DuBXnQXx.js} +2 -2
  52. package/dist/assets/{chunk-JG7HCLWE-BEfUAeKb.js → chunk-JG7HCLWE-D4-rg2bS.js} +1 -1
  53. package/dist/assets/{chunk-JQJVKLGR-vTeSeIY7.js → chunk-JQJVKLGR-L5fl0mYk.js} +1 -1
  54. package/dist/assets/{chunk-JWPE2WC7-C-mBVSJi.js → chunk-JWPE2WC7-CIIO5B1k.js} +1 -1
  55. package/dist/assets/{chunk-KBJHAD2P-BKxl1MSu.js → chunk-KBJHAD2P-MvrqGNli.js} +1 -1
  56. package/dist/assets/{chunk-MOZMSUNE-C-RMDvp_.js → chunk-MOZMSUNE-t37mHxNa.js} +1 -1
  57. package/dist/assets/{chunk-NSK5VX7P-bxC5WUDr.js → chunk-NSK5VX7P-B_lLBcNS.js} +1 -1
  58. package/dist/assets/{chunk-OSBZ3O6U-DEYDoDYT.js → chunk-OSBZ3O6U-3f38erx3.js} +1 -1
  59. package/dist/assets/{chunk-QBLGF6JB-CBncH5PS.js → chunk-QBLGF6JB-CHob4JDY.js} +1 -1
  60. package/dist/assets/{chunk-QR6OTTB3-gGVLoYpg.js → chunk-QR6OTTB3-Xk5It1Th.js} +1 -1
  61. package/dist/assets/{chunk-R7FJI6CG-DWxNgy5y.js → chunk-R7FJI6CG-ClJ6eR5G.js} +1 -1
  62. package/dist/assets/{chunk-RYQCIY6F-DkXJx61e.js → chunk-RYQCIY6F-CZjjwaqg.js} +1 -1
  63. package/dist/assets/{chunk-U6XO7XAA-DWWxQ-OA.js → chunk-U6XO7XAA-Ct1fe-tp.js} +1 -1
  64. package/dist/assets/{chunk-UBXNYLIW-elhI8GOz.js → chunk-UBXNYLIW-XbwBj9py.js} +1 -1
  65. package/dist/assets/{chunk-W5SLKNZC-D_QNHYYQ.js → chunk-W5SLKNZC-DBMPI1Hf.js} +1 -1
  66. package/dist/assets/{chunk-WRU74C26-BU1GwH6E.js → chunk-WRU74C26-HbDQnuwB.js} +1 -1
  67. package/dist/assets/{chunk-XXDRQBXY-D_KNH1wc.js → chunk-XXDRQBXY-DyGGngH3.js} +1 -1
  68. package/dist/assets/{chunk-YOTPTUD7-Nm5N45o4.js → chunk-YOTPTUD7-CC6lxUuz.js} +1 -1
  69. package/dist/assets/{chunk-ZIRB5QZD-DKs4kfC7.js → chunk-ZIRB5QZD-Giz-iAOC.js} +1 -1
  70. package/dist/assets/classDiagram-JCYQIIEL-Bi4N77rq.js +1 -0
  71. package/dist/assets/classDiagram-v2-OCEON4UE-DDmVp-9r.js +1 -0
  72. package/dist/assets/{clike-BAN6KopO.js → clike-tfWZyYoN.js} +1 -1
  73. package/dist/assets/clojure-Bninbb7T.js +1 -0
  74. package/dist/assets/cmake-BpuaQxBS.js +1 -0
  75. package/dist/assets/cobol-GPJ0dHQG.js +1 -0
  76. package/dist/assets/{code-block-37QAKDTI-DYj4t0uu.js → code-block-37QAKDTI-CxkZZ2yu.js} +1 -1
  77. package/dist/assets/coffeescript-D7gQHdB-.js +1 -0
  78. package/dist/assets/{column-preview-DMqGohE5.js → column-preview-BaRqZ9P8.js} +1 -1
  79. package/dist/assets/{command-palette-DCAiZSda.js → command-palette-Cbie8JV9.js} +1 -1
  80. package/dist/assets/{common-Dx_4ekWj.js → common-sBRwGAKy.js} +1 -1
  81. package/dist/assets/commonlisp-Cr4KGe18.js +1 -0
  82. package/dist/assets/{components-CozWCL5N.js → components-CGGSwziZ.js} +1 -1
  83. package/dist/assets/components-DsJAWbBR.js +1 -0
  84. package/dist/assets/{cose-bilkent-JH36ORCC-BItWxPmu.js → cose-bilkent-JH36ORCC-Bgowgmmd.js} +1 -1
  85. package/dist/assets/crystal-CsTMAwME.js +1 -0
  86. package/dist/assets/{css-DWLxGm3Z.js → css-COZ77Eal.js} +1 -1
  87. package/dist/assets/cynefin-VYW2F7L2-mNpr4SbP.js +1 -0
  88. package/dist/assets/{cynefinDiagram-MW4NZA55-xRolnN9H.js → cynefinDiagram-MW4NZA55-BjhYqu92.js} +1 -1
  89. package/dist/assets/cypher-CY21sZiF.js +1 -0
  90. package/dist/assets/d-CURHSrpr.js +1 -0
  91. package/dist/assets/{dagre-VZM6K2ZE--7CAsOPi.js → dagre-VZM6K2ZE-BEuyIkT6.js} +1 -1
  92. package/dist/assets/{data-grid-overlay-editor-CP2bSduR.js → data-grid-overlay-editor-BQUij2ly.js} +1 -1
  93. package/dist/assets/data-source-discovery-DCNYJylO.js +1 -0
  94. package/dist/assets/{datasource-Le540Ng6.js → datasource-DxCwZdAq.js} +2 -2
  95. package/dist/assets/dependency-graph-panel-CLOQ_RvL.js +5 -0
  96. package/dist/assets/{diagram-7IWD3JNH-B55VSdpL.js → diagram-7IWD3JNH-Bs3lgu-c.js} +1 -1
  97. package/dist/assets/{diagram-B4RE2ZJO-BDn7ASqI.js → diagram-B4RE2ZJO-Dth7brNz.js} +1 -1
  98. package/dist/assets/{diagram-LBJQPF4R-B51MZG2V.js → diagram-LBJQPF4R-BTVLtL0d.js} +1 -1
  99. package/dist/assets/{diagram-Q27KOJAE-Cwk0Mlin.js → diagram-Q27KOJAE-CP204u9a.js} +1 -1
  100. package/dist/assets/{diagram-UB23O5K3-BdYFaMnx.js → diagram-UB23O5K3-ClHQzHar.js} +1 -1
  101. package/dist/assets/diff-oDNdZgsT.js +1 -0
  102. package/dist/assets/dist-2VJQDijP.js +1 -0
  103. package/dist/assets/{dist-etjVl5BO.js → dist-BB2m_pT9.js} +1 -1
  104. package/dist/assets/{dist-CAHB5I2V.js → dist-BIoV7ItK.js} +1 -1
  105. package/dist/assets/{dist-D5yi7Y8o.js → dist-BKZjRJh7.js} +1 -1
  106. package/dist/assets/dist-BSndAsl2.js +1 -0
  107. package/dist/assets/{dist-CF4ci481.js → dist-BrBdlR-1.js} +1 -1
  108. package/dist/assets/dist-CULUasdr.js +1 -0
  109. package/dist/assets/{dist-CG7o1Txo.js → dist-CgdeWOxv.js} +1 -1
  110. package/dist/assets/{dist-x-uwJAB2.js → dist-D7Pn6TvC.js} +1 -1
  111. package/dist/assets/{dist-Ci0ANOWc.js → dist-DoCsyl8V.js} +1 -1
  112. package/dist/assets/{dist-BhAom09b.js → dist-Q_HuxBl8.js} +1 -1
  113. package/dist/assets/{dist-UMYZc9Uw.js → dist-URSEPeIQ.js} +1 -1
  114. package/dist/assets/dist-e3TiiDdA.js +1 -0
  115. package/dist/assets/{dist-0tTkix79.js → dist-gKSpDGw2.js} +1 -1
  116. package/dist/assets/{dist-5AUFDACg.js → dist-ziD6OB9m.js} +1 -1
  117. package/dist/assets/{dockerfile-vQlfzaHL.js → dockerfile-L84t-MVG.js} +1 -1
  118. package/dist/assets/{documentation-panel-RJNMjUK6.js → documentation-panel-D9w8PAT9.js} +1 -1
  119. package/dist/assets/{download-B8NwKEtr.js → download-CfUkZlw7.js} +1 -1
  120. package/dist/assets/dtd-Cy2_BeYL.js +1 -0
  121. package/dist/assets/dylan-Crd9Fb_0.js +1 -0
  122. package/dist/assets/{ebnfDiagram-BXEA7PRR-BeNZBLGl.js → ebnfDiagram-BXEA7PRR-D5itfLTD.js} +1 -1
  123. package/dist/assets/ecl-CfCmFoo0.js +1 -0
  124. package/dist/assets/{edit-page-CvL5WAqs.js → edit-page-DKAg2YW9.js} +6 -6
  125. package/dist/assets/eiffel-gIaoJqnl.js +1 -0
  126. package/dist/assets/elm-BFWuf0zw.js +1 -0
  127. package/dist/assets/{erDiagram-JOGREHBK-Md316MnW.js → erDiagram-JOGREHBK-8nttFkHX.js} +1 -1
  128. package/dist/assets/erlang-o_h5GHv6.js +1 -0
  129. package/dist/assets/{error-entries-yYB8PZoo.js → error-entries-DpvSrZSw.js} +3 -3
  130. package/dist/assets/{error-panel-Dr928gBs.js → error-panel-uRl1_l47.js} +1 -1
  131. package/dist/assets/{esm-CpCa6w8Q.js → esm-B7G79VOo.js} +1 -1
  132. package/dist/assets/eventmodeling-45OFAUF4-CmCnqr0B.js +1 -0
  133. package/dist/assets/factor-DhP48x0i.js +1 -0
  134. package/dist/assets/{factor-D96xahcJ.js → factor-aNENtHLj.js} +1 -1
  135. package/dist/assets/file-explorer-panel-DwA9Lprz.js +37 -0
  136. package/dist/assets/{file-icons-D39zbjsS.js → file-icons-DpREEjwW.js} +1 -1
  137. package/dist/assets/{file-name-input-BLH5fTEA.js → file-name-input-C7AQKuoU.js} +1 -1
  138. package/dist/assets/{floating-outline-UPrDtFZF.js → floating-outline-4I6DvqaR.js} +1 -1
  139. package/dist/assets/flowDiagram-UKHOOZJN-BBKoHcjJ.js +1 -0
  140. package/dist/assets/{focus-BArgHYf8.js → focus-CeTtpVjV.js} +1 -1
  141. package/dist/assets/{form-BvzcNsxB.js → form-B10bgcbQ.js} +1 -1
  142. package/dist/assets/{form-BN1AKD58.js → form-Cj9BLARR.js} +1 -1
  143. package/dist/assets/forth-B9culvwH.js +1 -0
  144. package/dist/assets/fortran-P9CMHntW.js +1 -0
  145. package/dist/assets/{ganttDiagram-PKOTCBZU-ZWAQtEyO.js → ganttDiagram-PKOTCBZU-lYZ3LZM4.js} +1 -1
  146. package/dist/assets/gas-aBeBIUA2.js +1 -0
  147. package/dist/assets/gherkin-BKojMN6Q.js +1 -0
  148. package/dist/assets/gitGraph-TEB2WS4Q-lhsXnAif.js +1 -0
  149. package/dist/assets/{gitGraphDiagram-DS77QQ5N-BLejYVyQ.js → gitGraphDiagram-DS77QQ5N-BMWEqU01.js} +1 -1
  150. package/dist/assets/{glide-data-editor-BNZxtmKn.js → glide-data-editor-Bo6hLXbn.js} +6 -6
  151. package/dist/assets/groovy-CePAd7wh.js +1 -0
  152. package/dist/assets/haskell-QHmsrbZx.js +1 -0
  153. package/dist/assets/haxe-CQV_8vKL.js +1 -0
  154. package/dist/assets/{home-page-DcO0NzuV.js → home-page-BNJihtii.js} +2 -2
  155. package/dist/assets/{html-to-image-DKEUbBwc.js → html-to-image-ChfBVn8-.js} +1 -1
  156. package/dist/assets/idl-Dd8N44Cm.js +1 -0
  157. package/dist/assets/index-CxZ6uZaz.css +2 -0
  158. package/dist/assets/index-T5Rre8Dj.js +38 -0
  159. package/dist/assets/info-DKCQHKI2-C7T8UDyU.js +1 -0
  160. package/dist/assets/infoDiagram-6WML65LV-DF1s-6Vl.js +2 -0
  161. package/dist/assets/{ishikawaDiagram-WSZJBQD7-DsUyhPdP.js → ishikawaDiagram-WSZJBQD7-DaG24pVU.js} +1 -1
  162. package/dist/assets/javascript-DSNeo7JU.js +1 -0
  163. package/dist/assets/{journeyDiagram-NVQOT4AX-Dtytysty.js → journeyDiagram-NVQOT4AX-Bjv5KPQN.js} +1 -1
  164. package/dist/assets/julia-noK_uk9P.js +1 -0
  165. package/dist/assets/{kanban-definition-27J2QSJJ-CtSUWi1q.js → kanban-definition-27J2QSJJ-3QfkEp5c.js} +1 -1
  166. package/dist/assets/katex-D7rQd2tt.js +1 -0
  167. package/dist/assets/{layout-C5In1pVG.js → layout-YPBtS2D6.js} +5 -5
  168. package/dist/assets/livescript-YKkeujLh.js +1 -0
  169. package/dist/assets/{logs-panel-DItocggZ.js → logs-panel-ClE58_4G.js} +1 -1
  170. package/dist/assets/{loro_wasm_bg-Cei5H7n0.js → loro_wasm_bg-Bhj1szFH.js} +1 -1
  171. package/dist/assets/lua-fLqC1mOj.js +1 -0
  172. package/dist/assets/{markdown-renderer-D7RLn6TA.js → markdown-renderer-BOS4jZLt.js} +3 -3
  173. package/dist/assets/mathematica-BEqGrvB0.js +1 -0
  174. package/dist/assets/mbox-9uehSvC8.js +1 -0
  175. package/dist/assets/{mermaid-4DMBBIKO-oaGD2RAq.js → mermaid-4DMBBIKO-VnWrwEGQ.js} +1 -1
  176. package/dist/assets/{mermaid-D7qPJTl5.js → mermaid-DrH-G40O.js} +3 -3
  177. package/dist/assets/{mermaid-parser.core-C1pvq6V4.js → mermaid-parser.core-7L0n-40M.js} +2 -2
  178. package/dist/assets/{mhchem-ByBXJmVs.js → mhchem-jUQ3W9QS.js} +1 -1
  179. package/dist/assets/{mindmap-definition-FAOFIHXS-BdiofJNg.js → mindmap-definition-FAOFIHXS-BI-5PR09.js} +1 -1
  180. package/dist/assets/mirc-BTX_WxCv.js +1 -0
  181. package/dist/assets/mllike-LThTvO6F.js +1 -0
  182. package/dist/assets/modelica-ClexNQK-.js +1 -0
  183. package/dist/assets/mscgen-Cr-Z_Sdd.js +1 -0
  184. package/dist/assets/mumps-G_BfPdvs.js +1 -0
  185. package/dist/assets/{name-cell-input-jausH-CL.js → name-cell-input-UMsLssMV.js} +1 -1
  186. package/dist/assets/nsis-CBRC0JIr.js +1 -0
  187. package/dist/assets/{nsis-gzbsJ5t0.js → nsis-CNBWu0HQ.js} +1 -1
  188. package/dist/assets/ntriples-DrvRq09t.js +1 -0
  189. package/dist/assets/{number-overlay-editor-CrwfeUrx.js → number-overlay-editor-C-zZ00cy.js} +1 -1
  190. package/dist/assets/octave-BiPC57kS.js +1 -0
  191. package/dist/assets/{outline-panel-C_pASL6b.js → outline-panel-DweKocZK.js} +1 -1
  192. package/dist/assets/oz-DacpSh-q.js +1 -0
  193. package/dist/assets/{packages-panel-DTqur75g.js → packages-panel-Cbw5J5QD.js} +1 -1
  194. package/dist/assets/packet-7NZHBO7P-CJZ85ye7.js +1 -0
  195. package/dist/assets/panel-accordion-state-CgvX-ElJ.js +1 -0
  196. package/dist/assets/panels-DRv39UwA.js +4 -0
  197. package/dist/assets/pascal-BQpBPSms.js +1 -0
  198. package/dist/assets/{pegDiagram-VL7TDLO6-CUhl_uoo.js → pegDiagram-VL7TDLO6-Dr2AgOs7.js} +1 -1
  199. package/dist/assets/perl-BhMGfluR.js +1 -0
  200. package/dist/assets/pie-RZYD4A2V-DowYgF53.js +1 -0
  201. package/dist/assets/{pieDiagram-7S7Q4E2Y-BUJuppkz.js → pieDiagram-7S7Q4E2Y-CrBge38F.js} +1 -1
  202. package/dist/assets/pig-lTm9qLoi.js +1 -0
  203. package/dist/assets/powershell-3wPcC3I5.js +1 -0
  204. package/dist/assets/{process-output-ClE9lj2U.js → process-output-BMxr8Z3g.js} +1 -1
  205. package/dist/assets/properties-CfDlOPua.js +1 -0
  206. package/dist/assets/protobuf-DqtB_3Ds.js +1 -0
  207. package/dist/assets/pug-BendPilS.js +1 -0
  208. package/dist/assets/{pug-CfBtO6QD.js → pug-IDpseMj2.js} +1 -1
  209. package/dist/assets/puppet-CS4oS8k4.js +1 -0
  210. package/dist/assets/python-DwXz2aVG.js +1 -0
  211. package/dist/assets/q-CAmiN8ZZ.js +1 -0
  212. package/dist/assets/{quadrantDiagram-CIZ2JOQS-D1kqQfB1.js → quadrantDiagram-CIZ2JOQS-BE2ggXL5.js} +1 -1
  213. package/dist/assets/r-BVrS7OVn.js +1 -0
  214. package/dist/assets/radar-I7S5WNFK-CTSSWmoj.js +1 -0
  215. package/dist/assets/{radio-group-CSwRGU0A.js → radio-group-YNmbPL7y.js} +1 -1
  216. package/dist/assets/railroad-3IZDKUUU-B7NYUsSF.js +1 -0
  217. package/dist/assets/railroad-abnf-AHOZXSZD-YHDI2QY9.js +1 -0
  218. package/dist/assets/railroad-ebnf-EBAXGLYW-C63c8OB7.js +1 -0
  219. package/dist/assets/railroad-peg-LSFZ7HO6-Cjglh51C.js +1 -0
  220. package/dist/assets/{railroadDiagram-AXF67PYL-A0Qm-6po.js → railroadDiagram-AXF67PYL-DCQRdlxt.js} +1 -1
  221. package/dist/assets/{readonly-code-display-kRUXu5aJ.js → readonly-code-display-N9tCXdCz.js} +1 -1
  222. package/dist/assets/{readonly-python-code-BCOkadQf.js → readonly-python-code-BHrAhtGV.js} +1 -1
  223. package/dist/assets/{requirementDiagram-LRYGKXZP-Cq2ghiHc.js → requirementDiagram-LRYGKXZP-DwT1P9SV.js} +1 -1
  224. package/dist/assets/{reveal-component-DpjFw5UY.js → reveal-component-Cl6cd65E.js} +2 -2
  225. package/dist/assets/rpm-CdnUar42.js +1 -0
  226. package/dist/assets/ruby-BCel59B2.js +1 -0
  227. package/dist/assets/{run-page-BXPaOWqZ.js → run-page-Phwq7OJt.js} +1 -1
  228. package/dist/assets/{sankeyDiagram-W5VNT64P-RT9P6FJq.js → sankeyDiagram-W5VNT64P-DI3BRqfo.js} +1 -1
  229. package/dist/assets/sas-BmzKenFt.js +1 -0
  230. package/dist/assets/scheme-DkHD_m5P.js +1 -0
  231. package/dist/assets/{scratchpad-panel-GyB5PjiV.js → scratchpad-panel-CvihhlAP.js} +1 -1
  232. package/dist/assets/{sequenceDiagram-SI44F4Z6-Dk9UNsG3.js → sequenceDiagram-SI44F4Z6-BBkZRxiN.js} +1 -1
  233. package/dist/assets/session-panel-BmQ0PDHO.js +1 -0
  234. package/dist/assets/shell-BoNNN3zm.js +1 -0
  235. package/dist/assets/sieve-BXXK8f92.js +1 -0
  236. package/dist/assets/{sizeCapture-X5ZJPWSS-ce6Hf1Mn.js → sizeCapture-X5ZJPWSS-BwnqWK01.js} +1 -1
  237. package/dist/assets/{skeleton-CHVfqr51.js → skeleton-BsZq3Vmq.js} +1 -1
  238. package/dist/assets/smalltalk-BOqQhpHI.js +1 -0
  239. package/dist/assets/{snippets-panel-V4x4wLMQ.js → snippets-panel-cYP0GMUf.js} +1 -1
  240. package/dist/assets/sparql-edyZVkfL.js +1 -0
  241. package/dist/assets/spec-C_psFYbu.js +1 -0
  242. package/dist/assets/{src-Be2gSjc_.js → src-BydIU0H9.js} +1 -1
  243. package/dist/assets/{state-m2zUPztG.js → state-DJon00Ew.js} +1 -1
  244. package/dist/assets/{state-C7arWhwL.js → state-Dc5AjWPq.js} +2 -2
  245. package/dist/assets/{stateDiagram-OKZ733FA-b4p2-xPQ.js → stateDiagram-OKZ733FA-CKgejYo0.js} +1 -1
  246. package/dist/assets/stateDiagram-v2-UEYNNEHI-DGOHmIHi.js +1 -0
  247. package/dist/assets/stylus-D7JxHbZj.js +1 -0
  248. package/dist/assets/swift-BVf4glc7.js +1 -0
  249. package/dist/assets/{swimlanes-SLNWSIFB-BU8BFEOR.js → swimlanes-SLNWSIFB-CaRk1UjW.js} +2 -2
  250. package/dist/assets/swimlanesDiagram-ULZ7WXOC-B3waQOQb.js +8 -0
  251. package/dist/assets/tcl-Dj0fCfAi.js +1 -0
  252. package/dist/assets/textile-C2t_E40o.js +1 -0
  253. package/dist/assets/{timeline-definition-Z64GVDOM-D1kTYo17.js → timeline-definition-Z64GVDOM-eczfm7Uw.js} +1 -1
  254. package/dist/assets/toml-DaFUQW6l.js +1 -0
  255. package/dist/assets/{tracing-Cmwuiwj9.js → tracing-dGSNt8Nm.js} +1 -1
  256. package/dist/assets/{tracing-panel-CCXeYfOu.js → tracing-panel-CQCgx3e4.js} +2 -2
  257. package/dist/assets/{tree-actions-QMLf8Qhz.js → tree-actions-pW_UgP3m.js} +1 -1
  258. package/dist/assets/treeView-QDETBFTQ-CSvxEE7M.js +1 -0
  259. package/dist/assets/treemap-6X3UGDF4-CmweKwGi.js +1 -0
  260. package/dist/assets/troff-CYzkeKir.js +1 -0
  261. package/dist/assets/ttcn-CXYORWfg.js +1 -0
  262. package/dist/assets/ttcn-cfg-CaYX34bx.js +1 -0
  263. package/dist/assets/turtle-5bfs3D9s.js +1 -0
  264. package/dist/assets/{useCellActionButton-D8qyXNKv.js → useCellActionButton-De17Z9R3.js} +1 -1
  265. package/dist/assets/{useDeleteCell-Ctnxl8AT.js → useDeleteCell-BgFMPTmg.js} +1 -1
  266. package/dist/assets/{useDependencyPanelTab-CYSEZi6j.js → useDependencyPanelTab-w8VLtsK3.js} +1 -1
  267. package/dist/assets/{useNotebookActions-CxMrxNFT.js → useNotebookActions-BI53NQV3.js} +4 -4
  268. package/dist/assets/{useRunCells-DjQN3XYP.js → useRunCells-CAfRBo7h.js} +1 -1
  269. package/dist/assets/{useSplitCell-BG8Zd4lw.js → useSplitCell-N8Ohs-Pp.js} +1 -1
  270. package/dist/assets/{utils-Y4n-X10o.js → utils-Bp3MLwWq.js} +1 -1
  271. package/dist/assets/vb-CXQ5pSkV.js +1 -0
  272. package/dist/assets/vbscript-BZP_4BaN.js +1 -0
  273. package/dist/assets/{vega-component-1VoQOWvU.js → vega-component-DpKA6PEU.js} +1 -1
  274. package/dist/assets/{vega-embed-container-CH1lX0V6.js → vega-embed-container-D0V0wn9T.js} +1 -1
  275. package/dist/assets/velocity-BbHSi60j.js +1 -0
  276. package/dist/assets/{vennDiagram-T6HMQDX7-BhQR7L7x.js → vennDiagram-T6HMQDX7-BKrC4vk_.js} +1 -1
  277. package/dist/assets/verilog-Bw8NaRo-.js +1 -0
  278. package/dist/assets/vhdl-CkM1aKBX.js +1 -0
  279. package/dist/assets/wardley-OPB4EBWU-DKu5fTFq.js +1 -0
  280. package/dist/assets/{wardleyDiagram-T6FBY63Y-C6iZTOEK.js → wardleyDiagram-T6FBY63Y-BsBjXAQS.js} +1 -1
  281. package/dist/assets/webidl-C8MAcuKq.js +1 -0
  282. package/dist/assets/xquery-a81J2h4S.js +1 -0
  283. package/dist/assets/{xychartDiagram-ELKLHX3M-Hl9zZZJW.js → xychartDiagram-ELKLHX3M-i4ykddaR.js} +1 -1
  284. package/dist/assets/yacas-CjV2u_g7.js +1 -0
  285. package/dist/assets/z80-C0uVpBhe.js +1 -0
  286. package/dist/index.html +28 -28
  287. package/package.json +1 -1
  288. package/src/components/app-config/optional-features.test.ts +78 -0
  289. package/src/components/app-config/optional-features.tsx +33 -6
  290. package/src/components/data-table/__tests__/column_formatting.test.ts +7 -0
  291. package/src/components/data-table/charts/__tests__/schemas.test.ts +17 -2
  292. package/src/components/data-table/charts/chart-spec/types.ts +2 -0
  293. package/src/components/data-table/column-formatting/feature.ts +1 -0
  294. package/src/components/data-table/column-formatting/types.ts +1 -0
  295. package/src/components/data-table/column-summary/chart-spec-model.tsx +1 -0
  296. package/src/components/data-table/column-summary/column-summary.tsx +1 -0
  297. package/src/components/data-table/columns.tsx +4 -3
  298. package/src/components/datasets/__tests__/icons.test.ts +10 -2
  299. package/src/components/datasets/icons.tsx +4 -0
  300. package/src/components/datasources/__tests__/components.test.tsx +14 -1
  301. package/src/components/datasources/datasources.tsx +2 -40
  302. package/src/components/editor/chrome/panels/components.tsx +35 -0
  303. package/src/components/editor/chrome/panels/file-explorer-panel.tsx +10 -0
  304. package/src/components/editor/chrome/panels/session-panel.tsx +12 -4
  305. package/src/components/editor/connections/__tests__/quick-add-data-sources.test.tsx +2 -0
  306. package/src/components/editor/connections/add-connection-dialog.tsx +5 -1
  307. package/src/components/editor/connections/quick-add-data-sources.tsx +11 -7
  308. package/src/components/editor/connections/storage/__tests__/__snapshots__/as-code.test.ts.snap +43 -0
  309. package/src/components/editor/connections/storage/__tests__/as-code.test.ts +127 -0
  310. package/src/components/editor/connections/storage/add-storage-form.tsx +11 -1
  311. package/src/components/editor/connections/storage/as-code.ts +30 -1
  312. package/src/components/editor/connections/storage/schemas.ts +63 -0
  313. package/src/core/codemirror/code-lens/__tests__/popover.test.ts +13 -0
  314. package/src/core/codemirror/code-lens/popover.tsx +11 -5
  315. package/src/core/codemirror/language/languages/sql/__tests__/renderers.test.tsx +15 -4
  316. package/src/core/codemirror/language/languages/sql/renderers.tsx +1 -0
  317. package/src/core/datasets/__tests__/data-source-discovery.test.ts +277 -0
  318. package/src/core/datasets/data-source-connections.ts +36 -0
  319. package/src/core/datasets/data-source-discovery.ts +92 -0
  320. package/src/core/kernel/messages.ts +1 -0
  321. package/src/core/websocket/useMarimoKernelConnection.tsx +11 -3
  322. package/src/hooks/useDataSourceDiscovery.ts +50 -9
  323. package/src/plugins/impl/MatrixPlugin.tsx +256 -35
  324. package/src/plugins/impl/__tests__/DataEditorPlugin.test.ts +13 -1
  325. package/src/plugins/impl/__tests__/MatrixPlugin.test.tsx +540 -3
  326. package/src/plugins/impl/data-editor/glide-data-editor.tsx +1 -0
  327. package/src/plugins/impl/data-editor/glide-utils.ts +1 -0
  328. package/src/plugins/impl/data-frames/__tests__/schema.test.ts +9 -1
  329. package/src/plugins/impl/data-frames/utils/__tests__/operators.test.ts +8 -0
  330. package/src/plugins/impl/data-frames/utils/operators.ts +1 -1
  331. package/src/plugins/impl/vega/__tests__/vega.test.ts +22 -4
  332. package/src/plugins/impl/vega/utils.ts +3 -0
  333. package/dist/assets/LazyAnyLanguageCodeMirror-DUvRReKp.js +0 -2
  334. package/dist/assets/add-connection-dialog-DHyonb9T.js +0 -178
  335. package/dist/assets/apl-B-7blH-b.js +0 -1
  336. package/dist/assets/app-config-button-DnmQED8O.js +0 -1
  337. package/dist/assets/architecture-TIHT7OUA-YhortkiJ.js +0 -1
  338. package/dist/assets/asciiarmor-D3K8amZ9.js +0 -1
  339. package/dist/assets/asn1-UGGn98tp.js +0 -1
  340. package/dist/assets/brainfuck-B4y4U3tg.js +0 -1
  341. package/dist/assets/cell-link-WDIIwzUn.js +0 -1
  342. package/dist/assets/channel-B8YARzTa.js +0 -1
  343. package/dist/assets/classDiagram-JCYQIIEL-CjNLIEON.js +0 -1
  344. package/dist/assets/classDiagram-v2-OCEON4UE-DB1cPPS3.js +0 -1
  345. package/dist/assets/clojure-BAZ-ejkG.js +0 -1
  346. package/dist/assets/cmake-jWn0xN9y.js +0 -1
  347. package/dist/assets/cobol-XqY9jaWP.js +0 -1
  348. package/dist/assets/coffeescript-DI1jfZHX.js +0 -1
  349. package/dist/assets/commonlisp-UKb01OlU.js +0 -1
  350. package/dist/assets/components-DVs9Yu7X.js +0 -1
  351. package/dist/assets/crystal-DOvjTBWA.js +0 -1
  352. package/dist/assets/cynefin-VYW2F7L2-Dob7zmDv.js +0 -1
  353. package/dist/assets/cypher-CLDhu2ae.js +0 -1
  354. package/dist/assets/d-C0ecUZk9.js +0 -1
  355. package/dist/assets/dependency-graph-panel-BsdBM_AS.js +0 -5
  356. package/dist/assets/diff-657cCCVc.js +0 -1
  357. package/dist/assets/dist-BbNJKBqf.js +0 -1
  358. package/dist/assets/dist-CJU3fYUR.js +0 -1
  359. package/dist/assets/dist-ClAayqDs.js +0 -1
  360. package/dist/assets/dist-Dk7PW1P8.js +0 -1
  361. package/dist/assets/dtd-DSiK7Qgi.js +0 -1
  362. package/dist/assets/dylan-07d5-7Q9.js +0 -1
  363. package/dist/assets/ecl-CSTUHiwq.js +0 -1
  364. package/dist/assets/eiffel-DR99GcsM.js +0 -1
  365. package/dist/assets/elm-Cmh0iW6J.js +0 -1
  366. package/dist/assets/erlang-CS9Yc6UC.js +0 -1
  367. package/dist/assets/eventmodeling-45OFAUF4-Dfz56MmV.js +0 -1
  368. package/dist/assets/factor-DjB27Lcf.js +0 -1
  369. package/dist/assets/file-explorer-panel-Brf39GIG.js +0 -37
  370. package/dist/assets/flowDiagram-UKHOOZJN-DuIOw7R3.js +0 -1
  371. package/dist/assets/forth-UwTUu7NY.js +0 -1
  372. package/dist/assets/fortran-cptiB4gJ.js +0 -1
  373. package/dist/assets/gas-ajMbd9Us.js +0 -1
  374. package/dist/assets/gherkin-ClYkalzE.js +0 -1
  375. package/dist/assets/gitGraph-TEB2WS4Q-DHatMnz3.js +0 -1
  376. package/dist/assets/groovy-BY-gt7AW.js +0 -1
  377. package/dist/assets/haskell-D1BeJ7SR.js +0 -1
  378. package/dist/assets/haxe-QOq5WFXx.js +0 -1
  379. package/dist/assets/idl-3-UcEGx7.js +0 -1
  380. package/dist/assets/index-CXJA6BU5.js +0 -38
  381. package/dist/assets/index-WoaGtlKd.css +0 -2
  382. package/dist/assets/info-DKCQHKI2-DL5sXjlh.js +0 -1
  383. package/dist/assets/infoDiagram-6WML65LV-w0LSkwW5.js +0 -2
  384. package/dist/assets/javascript-CorD44JN.js +0 -1
  385. package/dist/assets/julia-BYqTtTAl.js +0 -1
  386. package/dist/assets/katex-DWt0esek.js +0 -1
  387. package/dist/assets/livescript-qYgfNnNE.js +0 -1
  388. package/dist/assets/lua-BCqCjdfz.js +0 -1
  389. package/dist/assets/mathematica-XKwMfn0d.js +0 -1
  390. package/dist/assets/mbox-BnkeOnif.js +0 -1
  391. package/dist/assets/mirc-ipoElhai.js +0 -1
  392. package/dist/assets/mllike-DmouQ5Dp.js +0 -1
  393. package/dist/assets/modelica-BtmmVsUf.js +0 -1
  394. package/dist/assets/mscgen-BHZmHZgz.js +0 -1
  395. package/dist/assets/mumps-oKfoFTl_.js +0 -1
  396. package/dist/assets/nsis-DDOPnuAW.js +0 -1
  397. package/dist/assets/ntriples-Dsyl_sOF.js +0 -1
  398. package/dist/assets/octave-CI5RGMPa.js +0 -1
  399. package/dist/assets/oz-D01pKAWx.js +0 -1
  400. package/dist/assets/packet-7NZHBO7P-Btbo_lPa.js +0 -1
  401. package/dist/assets/panel-accordion-state-DaMmC7UV.js +0 -1
  402. package/dist/assets/panels-B2LHXcJf.js +0 -4
  403. package/dist/assets/pascal-DGXfnIFD.js +0 -1
  404. package/dist/assets/perl-gZ7qIkF-.js +0 -1
  405. package/dist/assets/pie-RZYD4A2V-DHlhKt-c.js +0 -1
  406. package/dist/assets/pig-Cb90ayl-.js +0 -1
  407. package/dist/assets/powershell-_YxddSL3.js +0 -1
  408. package/dist/assets/properties-sU50dmvt.js +0 -1
  409. package/dist/assets/protobuf-DFdF-yfo.js +0 -1
  410. package/dist/assets/pug-DwUB-C24.js +0 -1
  411. package/dist/assets/puppet-DtKzwiZ6.js +0 -1
  412. package/dist/assets/python-BMLOKYmk.js +0 -1
  413. package/dist/assets/q-BF1zXMdP.js +0 -1
  414. package/dist/assets/r-BQiKhVSI.js +0 -1
  415. package/dist/assets/radar-I7S5WNFK-DZTiwd45.js +0 -1
  416. package/dist/assets/railroad-3IZDKUUU-DxAKHi3X.js +0 -1
  417. package/dist/assets/railroad-abnf-AHOZXSZD-DgPW-bTs.js +0 -1
  418. package/dist/assets/railroad-ebnf-EBAXGLYW-6hsaKhfa.js +0 -1
  419. package/dist/assets/railroad-peg-LSFZ7HO6-Sj3gnwID.js +0 -1
  420. package/dist/assets/rpm-v7UTuaHo.js +0 -1
  421. package/dist/assets/ruby-Cw43FpG3.js +0 -1
  422. package/dist/assets/sas-BIKscqlp.js +0 -1
  423. package/dist/assets/scheme-CGic3hSV.js +0 -1
  424. package/dist/assets/session-panel-CidCOM4_.js +0 -1
  425. package/dist/assets/shell-DAh545tm.js +0 -1
  426. package/dist/assets/sieve-bGkng63-.js +0 -1
  427. package/dist/assets/smalltalk-fIw53lm8.js +0 -1
  428. package/dist/assets/sparql-CHbJrAY_.js +0 -1
  429. package/dist/assets/spec-NeCHOv2Z.js +0 -1
  430. package/dist/assets/stateDiagram-v2-UEYNNEHI-DVggkZEP.js +0 -1
  431. package/dist/assets/stylus-3Q5WfXqT.js +0 -1
  432. package/dist/assets/swift-MKxc2knl.js +0 -1
  433. package/dist/assets/swimlanesDiagram-ULZ7WXOC-Dl8Izbnv.js +0 -8
  434. package/dist/assets/tcl-D3fKhQc_.js +0 -1
  435. package/dist/assets/textile-Bi_LEJQ3.js +0 -1
  436. package/dist/assets/toml-Dt-PBqwt.js +0 -1
  437. package/dist/assets/treeView-QDETBFTQ-DI-AuAry.js +0 -1
  438. package/dist/assets/treemap-6X3UGDF4-BikstUU5.js +0 -1
  439. package/dist/assets/troff-BSU-rxoD.js +0 -1
  440. package/dist/assets/ttcn-BmLjonVM.js +0 -1
  441. package/dist/assets/ttcn-cfg-TPTcP0Eh.js +0 -1
  442. package/dist/assets/turtle-HafmShQq.js +0 -1
  443. package/dist/assets/vb-CUif5uGR.js +0 -1
  444. package/dist/assets/vbscript-DWVPFl59.js +0 -1
  445. package/dist/assets/velocity-BJl8UzB4.js +0 -1
  446. package/dist/assets/verilog-B4LUPYXy.js +0 -1
  447. package/dist/assets/vhdl-C91h3ipk.js +0 -1
  448. package/dist/assets/wardley-OPB4EBWU-CeBjkYYY.js +0 -1
  449. package/dist/assets/webidl-DOay1zbU.js +0 -1
  450. package/dist/assets/xquery-Cez7jD_4.js +0 -1
  451. package/dist/assets/yacas-CSQEXB_S.js +0 -1
  452. package/dist/assets/z80-CJbYj7Wr.js +0 -1
  453. package/src/hooks/__tests__/useDataSourceDiscovery.test.ts +0 -80
  454. /package/dist/assets/{ImageComparisonComponent-BcnwhFjf.js → ImageComparisonComponent-f3_KuPvA.js} +0 -0
  455. /package/dist/assets/{Inputs-DrAa-p6i.js → Inputs-S6F4fq1S.js} +0 -0
  456. /package/dist/assets/{Plot-93LEWfvh.js → Plot-BKmsCw4V.js} +0 -0
  457. /package/dist/assets/{apl-CPlG1HX3.js → apl-HjCOpvY9.js} +0 -0
  458. /package/dist/assets/{asciiarmor-DV_pcocJ.js → asciiarmor-CZUdQ8YG.js} +0 -0
  459. /package/dist/assets/{asn1-DPxWcGvG.js → asn1-D9fbSxQp.js} +0 -0
  460. /package/dist/assets/{asterisk-1BK_fEUT.js → asterisk-GbGHf9GU.js} +0 -0
  461. /package/dist/assets/{brainfuck-CGDdBVNO.js → brainfuck-DoACnXtY.js} +0 -0
  462. /package/dist/assets/{chunk-KEIR6QF5-Dy1GNnFZ.js → chunk-KEIR6QF5-DALP8ow3.js} +0 -0
  463. /package/dist/assets/{chunk-Y2CYZVJY-Ci6ix4_L.js → chunk-Y2CYZVJY-BLNiTciS.js} +0 -0
  464. /package/dist/assets/{clear-button-D_bGby_-.js → clear-button-ChZ5WLVn.js} +0 -0
  465. /package/dist/assets/{click-outside-container-Ble4snjv.js → click-outside-container-B_JD95Fi.js} +0 -0
  466. /package/dist/assets/{clike-D91DrsBh.js → clike-BvT_OTqG.js} +0 -0
  467. /package/dist/assets/{clojure-B0eb_-2q.js → clojure-DObunWgq.js} +0 -0
  468. /package/dist/assets/{cmake-COzUvjiS.js → cmake-Bn1dmbG8.js} +0 -0
  469. /package/dist/assets/{cobol-DW4FSnmb.js → cobol-CJ0xj-s7.js} +0 -0
  470. /package/dist/assets/{coffeescript-CommR2mv.js → coffeescript-DSHpWjh8.js} +0 -0
  471. /package/dist/assets/{common-keywords-CL5lDC0w.js → common-keywords-DpBQRN1C.js} +0 -0
  472. /package/dist/assets/{commonlisp-FR_N9RJL.js → commonlisp-C8BmLRoV.js} +0 -0
  473. /package/dist/assets/{crystal-CAN7bz25.js → crystal-Ca8nJT--.js} +0 -0
  474. /package/dist/assets/{css-DmLg8a0m.js → css-CY56PGqI.js} +0 -0
  475. /package/dist/assets/{cypher-BzSJn05x.js → cypher-DkMgpwTD.js} +0 -0
  476. /package/dist/assets/{cytoscape.esm-DMX0DoYf.js → cytoscape.esm-ohuTJsWI.js} +0 -0
  477. /package/dist/assets/{d-UpmnByGo.js → d-De6gURe0.js} +0 -0
  478. /package/dist/assets/{diff-DRpitNo9.js → diff-D9jknSNL.js} +0 -0
  479. /package/dist/assets/{dist-CjgCY_Ws.js → dist-B8OryoSI.js} +0 -0
  480. /package/dist/assets/{dist-DcguuZEe.js → dist-B_Q1ayL4.js} +0 -0
  481. /package/dist/assets/{dist-BY5C0xw-.js → dist-BdgY02GB.js} +0 -0
  482. /package/dist/assets/{dist-5zzK1Bpl.js → dist-BpyRMlx3.js} +0 -0
  483. /package/dist/assets/{dist-Bp45OWJJ.js → dist-BvDn6jZn.js} +0 -0
  484. /package/dist/assets/{dist-CSEj3YUH.js → dist-C1_zNuc7.js} +0 -0
  485. /package/dist/assets/{dist-CYcHr3tv.js → dist-C3M1h1bY.js} +0 -0
  486. /package/dist/assets/{dist-iZqQ8eEZ.js → dist-CiELQ2ik.js} +0 -0
  487. /package/dist/assets/{dist-Op2xySIC.js → dist-CnESRnx2.js} +0 -0
  488. /package/dist/assets/{dist-SgSQKL07.js → dist-Cnb7x5X_.js} +0 -0
  489. /package/dist/assets/{dist-CqO2FBHV.js → dist-CtsSPT78.js} +0 -0
  490. /package/dist/assets/{dist-BQMAD-re.js → dist-DDuxOj5E.js} +0 -0
  491. /package/dist/assets/{dist-C3YC038-.js → dist-DXl-iyI_.js} +0 -0
  492. /package/dist/assets/{dist-VHnyClcl.js → dist-DcwGajoh.js} +0 -0
  493. /package/dist/assets/{dist-ChJa98Av.js → dist-M9OI1ywz.js} +0 -0
  494. /package/dist/assets/{dist-BTX2QySO.js → dist-oc6kOhWh.js} +0 -0
  495. /package/dist/assets/{dist-AhQW5KN1.js → dist-rcsCwDst.js} +0 -0
  496. /package/dist/assets/{dtd-CQV9N2ok.js → dtd-B5FJ4BXV.js} +0 -0
  497. /package/dist/assets/{duckdb-keywords-CKBoTxEb.js → duckdb-keywords-DrrKcwLz.js} +0 -0
  498. /package/dist/assets/{dylan-Bp98yT5y.js → dylan-zZheNs86.js} +0 -0
  499. /package/dist/assets/{ebnf-CviyCkP7.js → ebnf-DuKzoTsP.js} +0 -0
  500. /package/dist/assets/{ecl-BgtQ3zu5.js → ecl-BcK76Ow3.js} +0 -0
  501. /package/dist/assets/{eiffel-Cu14O7Gi.js → eiffel-KaaY88la.js} +0 -0
  502. /package/dist/assets/{elm-Dp1dn40k.js → elm-B7-LHWcm.js} +0 -0
  503. /package/dist/assets/{erlang-DdogJjdp.js → erlang-DaphDTvj.js} +0 -0
  504. /package/dist/assets/{esm-DbAcs2Px.js → esm-BKF5e2-i.js} +0 -0
  505. /package/dist/assets/{fcl-DjfeL5F6.js → fcl-DopXl_Cb.js} +0 -0
  506. /package/dist/assets/{forth-Dd0r86IP.js → forth-BKlt87ew.js} +0 -0
  507. /package/dist/assets/{fortran-4qvtlW4z.js → fortran-DDZOpuZf.js} +0 -0
  508. /package/dist/assets/{gallery-page-CtBVFIhS.js → gallery-page-4_c4sSjL.js} +0 -0
  509. /package/dist/assets/{gas-DqwqZHXy.js → gas-CDn7Y-Gk.js} +0 -0
  510. /package/dist/assets/{gherkin-DMxJEDh5.js → gherkin-eZ5FXLoA.js} +0 -0
  511. /package/dist/assets/{github-6F3RzPv3.js → github-CE-ZvKrv.js} +0 -0
  512. /package/dist/assets/{groovy-DA_MxBua.js → groovy-BwhPb7Fz.js} +0 -0
  513. /package/dist/assets/{haskell-B_hi8VEK.js → haskell-Dnk7SiND.js} +0 -0
  514. /package/dist/assets/{haxe-D-I6YeRN.js → haxe-lllox-eQ.js} +0 -0
  515. /package/dist/assets/{http-VleqgIZJ.js → http-BxcKXOao.js} +0 -0
  516. /package/dist/assets/{idl-CteRrHSs.js → idl-DgcPYEkx.js} +0 -0
  517. /package/dist/assets/{javascript-Cq9DsvSW.js → javascript-COkX3Xca.js} +0 -0
  518. /package/dist/assets/{julia-bHGj6eLp.js → julia-D-oyKrif.js} +0 -0
  519. /package/dist/assets/{katex-B9FkzyvX.js → katex-DX0AbnS9.js} +0 -0
  520. /package/dist/assets/{kiosk-mode-B8UhlOLw.js → kiosk-mode-CNguD0K4.js} +0 -0
  521. /package/dist/assets/{links-STGde2qx.js → links-CWv16njv.js} +0 -0
  522. /package/dist/assets/{livescript-C72YlTeO.js → livescript-D_iKnN6P.js} +0 -0
  523. /package/dist/assets/{loro_wasm_bg-DIEeF9jI.js → loro_wasm_bg-wiZiHqmd.js} +0 -0
  524. /package/dist/assets/{lua-DAtJrHXr.js → lua-DvA1dcWk.js} +0 -0
  525. /package/dist/assets/{marimo-icons-CW8-Txe-.js → marimo-icons-BT3Q9hP-.js} +0 -0
  526. /package/dist/assets/{mathematica-DGp7b8Lx.js → mathematica-BsU_wLgp.js} +0 -0
  527. /package/dist/assets/{mbox-C35KjfEV.js → mbox-C0XhbFpn.js} +0 -0
  528. /package/dist/assets/{mirc-BRCHEPv1.js → mirc-CHTyPhxQ.js} +0 -0
  529. /package/dist/assets/{mllike-D7ajla-U.js → mllike-CUPiTPoj.js} +0 -0
  530. /package/dist/assets/{modelica-0RGVL4ie.js → modelica-CY01YUSk.js} +0 -0
  531. /package/dist/assets/{mscgen-C7Ohs4Tl.js → mscgen-DrdJ4BfA.js} +0 -0
  532. /package/dist/assets/{mumps-Cgag5Xef.js → mumps-oDd7O1nq.js} +0 -0
  533. /package/dist/assets/{nginx-D7OKXoUe.js → nginx-BFZZWp0k.js} +0 -0
  534. /package/dist/assets/{node-sql-parser-DE2GpgS7.js → node-sql-parser-BAQ3SN57.js} +0 -0
  535. /package/dist/assets/{ntriples-oQv5c69K.js → ntriples-Kz6Omt8T.js} +0 -0
  536. /package/dist/assets/{octave-BMTXs4lo.js → octave-D4G4nAd-.js} +0 -0
  537. /package/dist/assets/{oz-CuHYwo8r.js → oz-BMPClN8a.js} +0 -0
  538. /package/dist/assets/{pascal-eFKoVV2p.js → pascal-PjzHq8gx.js} +0 -0
  539. /package/dist/assets/{perl-B1OqOW8w.js → perl-BJehkHc4.js} +0 -0
  540. /package/dist/assets/{pig-gIrBDx27.js → pig-BErUKXIE.js} +0 -0
  541. /package/dist/assets/{powershell-3fQF2XND.js → powershell-C9VPAjfT.js} +0 -0
  542. /package/dist/assets/{properties-D4HHpZmU.js → properties-C9_sS9KX.js} +0 -0
  543. /package/dist/assets/{protobuf-DFSTKR0L.js → protobuf-CTL_9hGv.js} +0 -0
  544. /package/dist/assets/{puppet-BAISgXk9.js → puppet-DiwkFvYr.js} +0 -0
  545. /package/dist/assets/{python-mPctBCbA.js → python-B6qWXHOF.js} +0 -0
  546. /package/dist/assets/{q-CYeV5Dbb.js → q-DK2HS4ce.js} +0 -0
  547. /package/dist/assets/{r-Ds4UrjIV.js → r-DaU8ID7q.js} +0 -0
  548. /package/dist/assets/{rough.esm-CR3HSVpq.js → rough.esm-DsKVbNkz.js} +0 -0
  549. /package/dist/assets/{rpm-DV5-r6dM.js → rpm-B1zWd_-L.js} +0 -0
  550. /package/dist/assets/{ruby-B9qrycrI.js → ruby-e8Zeo08a.js} +0 -0
  551. /package/dist/assets/{runs-B8nVipXz.js → runs-0Fl_whti.js} +0 -0
  552. /package/dist/assets/{sas-Cd7L1ZOe.js → sas-CtNe7N_s.js} +0 -0
  553. /package/dist/assets/{scheme-L6Kva-Kc.js → scheme-D7VUNgy0.js} +0 -0
  554. /package/dist/assets/{secrets-panel-CVQIJOsr.js → secrets-panel-C51QhQhQ.js} +0 -0
  555. /package/dist/assets/{shell-Ck42V1Kn.js → shell-95QiTNIY.js} +0 -0
  556. /package/dist/assets/{sieve-DfSJcUfS.js → sieve-4wk3Woa7.js} +0 -0
  557. /package/dist/assets/{simple-mode-CfoR0Lvg.js → simple-mode-C1B3ue4E.js} +0 -0
  558. /package/dist/assets/{smalltalk-CT418Iph.js → smalltalk-BFPyGpl7.js} +0 -0
  559. /package/dist/assets/{solr-CDPrSrj5.js → solr-BCnpA4mK.js} +0 -0
  560. /package/dist/assets/{sparql-BlJ_cLEt.js → sparql-BMyoR-t0.js} +0 -0
  561. /package/dist/assets/{spreadsheet-BsJYzkOI.js → spreadsheet-C39QEIvH.js} +0 -0
  562. /package/dist/assets/{sql-F2Gt8FSJ.js → sql-CE9Btgz4.js} +0 -0
  563. /package/dist/assets/{stylus-92qIiGm1.js → stylus-BbMWgEUg.js} +0 -0
  564. /package/dist/assets/{swift-gZzicbJu.js → swift-BCakwsWN.js} +0 -0
  565. /package/dist/assets/{swiper-component-LOm8fzBm.js → swiper-component-DpFUDvyR.js} +0 -0
  566. /package/dist/assets/{tcl-CtgoBYkk.js → tcl-Dupz7YXC.js} +0 -0
  567. /package/dist/assets/{terminal-Bo6pnmSU.js → terminal-RAduwztq.js} +0 -0
  568. /package/dist/assets/{textile-Du3RzJ2D.js → textile-CMQNVB0J.js} +0 -0
  569. /package/dist/assets/{tiddlywiki-BiVbsin5.js → tiddlywiki-CIp8hgce.js} +0 -0
  570. /package/dist/assets/{tiki-BjQr6gnj.js → tiki-C22wqq7_.js} +0 -0
  571. /package/dist/assets/{toml-HcF44TVB.js → toml-CDlujHqn.js} +0 -0
  572. /package/dist/assets/{troff-xbwT4huN.js → troff-Dxr_rPl0.js} +0 -0
  573. /package/dist/assets/{ttcn-cfg-jWDg1i50.js → ttcn-cfg-_MoagO29.js} +0 -0
  574. /package/dist/assets/{ttcn-phKysj_0.js → ttcn-iRE0hZ1i.js} +0 -0
  575. /package/dist/assets/{turtle-CPC48wcy.js → turtle-C00vzWJK.js} +0 -0
  576. /package/dist/assets/{types-C7hjolXC.js → types-l38AsXoI.js} +0 -0
  577. /package/dist/assets/{useInterval-CTStcSBb.js → useInterval-WeprorQN.js} +0 -0
  578. /package/dist/assets/{vb-BTubZ2rB.js → vb-CkVClY4-.js} +0 -0
  579. /package/dist/assets/{vbscript-B52mDFWM.js → vbscript-BAyqwxih.js} +0 -0
  580. /package/dist/assets/{velocity-BO3M1iFD.js → velocity-DizPkX9R.js} +0 -0
  581. /package/dist/assets/{verilog-CBz90JJu.js → verilog-BHLL_Z-1.js} +0 -0
  582. /package/dist/assets/{vhdl-CeQ1lGlV.js → vhdl-kw8S8KSM.js} +0 -0
  583. /package/dist/assets/{web-vitals-BaWpTOd5.js → web-vitals-DEQqQ7mh.js} +0 -0
  584. /package/dist/assets/{webidl-CRtF5pmu.js → webidl-BArrMnhe.js} +0 -0
  585. /package/dist/assets/{ws-CNqquaud.js → ws-B3l5rS71.js} +0 -0
  586. /package/dist/assets/{xquery-CFnbrHav.js → xquery-BVt_izxN.js} +0 -0
  587. /package/dist/assets/{yacas-KIC_JO6M.js → yacas-BFgb66eo.js} +0 -0
  588. /package/dist/assets/{z80-kGpw5_me.js → z80-CLywz-dK.js} +0 -0
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./sizeCapture-X5ZJPWSS-ce6Hf1Mn.js","./chunk-Y2CYZVJY-Ci6ix4_L.js"])))=>i.map(i=>d[i]);
2
- import{t as Bi}from"./graphlib-DZLM-yn_.js";import{n as Ai}from"./chunk-RYQCIY6F-DkXJx61e.js";import{t as Pi}from"./preload-helper-BPPi7vOr.js";import"./purify.es-Bwm8T4QC.js";import{_ as Pe}from"./chunk-NSK5VX7P-bxC5WUDr.js";import"./src-DRYM6eUR.js";import{n as c}from"./chunk-Y2CYZVJY-Ci6ix4_L.js";import{t as cn}from"./src-Be2gSjc_.js";import{b as Xi,x as Yi,__tla as _i}from"./chunk-I66GZJ75-CgJN5WrL.js";import"./chunk-W5SLKNZC-D_QNHYYQ.js";import"./dist-BY5C0xw-.js";import{n as zi}from"./chunk-UBXNYLIW-elhI8GOz.js";import"./chunk-4I5QYGJK-Cce-HuZg.js";import"./chunk-WRU74C26-BU1GwH6E.js";import{a as Gi,c as Di,i as Hi,n as ji,t as Vi}from"./chunk-QR6OTTB3-gGVLoYpg.js";import{r as mi}from"./chunk-7BUUIJ7U-DFO0zbY5.js";import{a as Wi,i as Ui,n as qi,r as Ji,s as gn,t as Ki}from"./chunk-7Z6QIM7H-BahVaiTb.js";let wr,Zi=Promise.all([(()=>{try{return _i}catch{}})()]).then(async()=>{async function vr(t,e){let n=new Bi({multigraph:!0,compound:!0}),r=[...e.edges],o=Yi(),i=t.insert("g").attr("class","root"),l=i.insert("g").attr("class","clusters"),a=i.insert("g").attr("class","edges edgePath"),f=i.insert("g").attr("class","edgeLabels"),d=i.insert("g").attr("class","nodes"),g=new Map,h=t.node()!=null;await Promise.all(e.nodes.map(async s=>{var u;if(s.isGroup)n.setNode(s.id,{...s});else{if(h){let p=await Gi(d,s,{config:o,dir:s.dir}),x=((u=p.node())==null?void 0:u.getBBox())??{width:0,height:0};g.set(s.id,p),s.width=x.width,s.height=x.height}n.setNode(s.id,{...s})}}));for(let s of r)n.setEdge(s.start,s.end,{...s},s.id),e.edges.some(u=>u.id===s.id)||e.edges.push(s);if(globalThis.mermaidCaptureSizes){let{captureNodeSizes:s}=await Pi(async()=>{let{captureNodeSizes:u}=await import("./sizeCapture-X5ZJPWSS-ce6Hf1Mn.js").then(async p=>(await p.__tla,p));return{captureNodeSizes:u}},__vite__mapDeps([0,1]),import.meta.url);s(t,e)}return{graph:n,groups:{clusters:l,edgePaths:a,edgeLabels:f,nodes:d,rootGroups:i},nodeElements:g}}c(vr,"createGraphWithElements");var Lr=5,Xe=1e-5,Ye=1e-6;function _e(t){let e=[];for(let n=0;n<t.length-1;n++)e.push({a:t[n],b:t[n+1]});return e}c(_e,"buildSegmentList");function Cr(t,e,n,r){let o=e.x-t.x,i=e.y-t.y,l=r.x-n.x,a=r.y-n.y,f=o*a-i*l;if(f===0)return null;let d=n.x-t.x,g=n.y-t.y,h=(d*a-g*l)/f,s=(d*i-g*o)/f;return h<=Ye||h>=1-Ye||s<=Ye||s>=1-Ye?null:{point:{x:t.x+h*o,y:t.y+h*i},tA:h,tB:s}}c(Cr,"segmentIntersection");function pn(t){return Math.abs(t.b.x-t.a.x)>=Math.abs(t.b.y-t.a.y)}c(pn,"isHorizontalSeg");function Tr(t){let e=[];for(let n=0;n<t.length;n++){let r=t[n],o=_e(r.points);for(let i=n+1;i<t.length;i++){let l=t[i],a=_e(l.points);for(let[f,d]of o.entries())for(let[g,h]of a.entries()){let s=Cr(d.a,d.b,h.a,h.b);if(!s)continue;let u=pn(d);u!==pn(h)&&u?e.push({jumpEdgeId:r.id,otherEdgeId:l.id,segIndex:f,t:s.tA,point:s.point}):e.push({jumpEdgeId:l.id,otherEdgeId:r.id,segIndex:g,t:s.tB,point:s.point})}}}return e}c(Tr,"findEdgeIntersections");function re(t){return`${Math.round(t*1e3)/1e3}`}c(re,"fmt");function ve(t){return`${re(t.x)},${re(t.y)}`}c(ve,"pointToString");function kr(t){let e=t.b.x-t.a.x,n=t.b.y-t.a.y;return Math.abs(e)>=Math.abs(n)?e>=0?1:0:n>=0?1:0}c(kr,"getArcSweepFlag");var xi=.001;function Or(t,e){if(t.length<2)return t.map(i=>({...i}));let n=t.map(i=>({...i})),r=e.arrowTypeStart&&mi[e.arrowTypeStart];if(r){let i=t[0],l=t[1],a=Math.atan2(l.y-i.y,l.x-i.x);n[0].x=i.x+r*Math.cos(a),n[0].y=i.y+r*Math.sin(a)}let o=e.arrowTypeEnd&&mi[e.arrowTypeEnd];if(o){let i=t.length,l=t[i-2],a=t[i-1],f=Math.atan2(a.y-l.y,a.x-l.x);n[i-1].x=a.x-o*Math.cos(f),n[i-1].y=a.y-o*Math.sin(f)}return n}c(Or,"applyMarkerOffsets");function Rr(t,e,n,r,o){let i=t.point.x,l=t.point.y,a={x:i-e*t.r,y:l-n*t.r},f={x:i+e*t.r,y:l+n*t.r},d=[`L${ve(a)}`];return o==="arc"?d.push(`A${re(t.r)},${re(t.r)} 0 0 ${r} ${ve(f)}`):d.push(`M${ve(f)}`),d}c(Rr,"emitJump");function mn(t,e,n,r){let o=e.x-t.x,i=e.y-t.y,l=n.x-e.x,a=n.y-e.y,f=Math.hypot(o,i),d=Math.hypot(l,a);if(f<Xe||d<Xe)return null;let g=o/f,h=i/f,s=l/d,u=a/d,p=g*s+h*u,x=Math.max(-1,Math.min(1,p)),M=Math.acos(x);if(M<Xe||Math.abs(Math.PI-M)<Xe)return null;let m=Math.min(r/Math.sin(M/2),f/2,d/2);return{startX:e.x-g*m,startY:e.y-h*m,endX:e.x+s*m,endY:e.y+u*m,ctrlX:e.x,ctrlY:e.y,cutLen:m}}c(mn,"computeRoundedCorner");function Er(t,e,n){let r=t.points;if(r.length<2)return"";let o=Or(r,t),i=t.curve==="rounded",l=_e(o),a=new Map;for(let d of e){let g=l[d.segIndex];if(!g)continue;let h=Math.hypot(g.b.x-g.a.x,g.b.y-g.a.y),s=a.get(d.segIndex)??[];s.push({t:d.t,point:d.point,d:d.t*h,r:n.jumpRadius}),a.set(d.segIndex,s)}let f=[`M${ve(o[0])}`];for(let d=0;d<l.length;d++){let g=l[d],h=Math.hypot(g.b.x-g.a.x,g.b.y-g.a.y),s=h===0?0:(g.b.x-g.a.x)/h,u=h===0?0:(g.b.y-g.a.y)/h,p=kr(g),x=0;if(i&&d>0){let I=mn(o[d-1],o[d],o[d+1]??o[d],Lr);I&&(x=I.cutLen)}let M=h,m=null;i&&d<l.length-1&&(m=mn(o[d],o[d+1],o[d+2]??o[d+1],Lr),m&&(M=h-m.cutLen));let b=[...a.get(d)??[]].sort((I,v)=>I.t-v.t);for(let I of b)I.r=Math.min(I.r,I.d-x,M-I.d);for(let I=0;I<b.length-1;I++){let v=b[I+1].d-b[I].d;if(b[I].r+b[I+1].r>v){let S=v/2;b[I].r=Math.min(b[I].r,S),b[I+1].r=Math.min(b[I+1].r,S)}}for(let I of b)I.r<xi||f.push(...Rr(I,s,u,p,n.jumpStyle));i&&m?(f.push(`L${re(m.startX)},${re(m.startY)}`),f.push(`Q${re(m.ctrlX)},${re(m.ctrlY)} ${re(m.endX)},${re(m.endY)}`)):f.push(`L${ve(g.b)}`)}return f.join(" ")}c(Er,"rewriteEdgePath");function $r(t){return/^[\d\s+,.LMelm-]*$/.test(t)}c($r,"isStraightPath");function Nr(t){return t?t==="linear"||t==="rounded"||t==="step"||t==="stepBefore"||t==="stepAfter":!0}c(Nr,"curveSupportsLineHops");function Fr(t){if(!t)return null;try{let e=typeof atob=="function"?atob(t):Buffer.from(t,"base64").toString(),n=JSON.parse(e);if(!Array.isArray(n))return null;let r=[];for(let o of n)o&&typeof o.x=="number"&&typeof o.y=="number"&&r.push({x:o.x,y:o.y});return r.length>=2?r:null}catch{return null}}c(Fr,"decodeDataPoints");function Br(t,e,n){var d;if(!n.enabled)return;let r=t.node();if(!r)return;let o=new Map;for(let g of e)o.set(g.id,g);let i=[],l=new Map;for(let g of e){let h=typeof CSS<"u"&&CSS.escape?CSS.escape(g.id):g.id,s=r.querySelector(`path[data-id="${h}"]`);if(!s)continue;l.set(g.id,s);let u=Fr(s.getAttribute("data-points"))??g.points;i.push({...g,points:u})}let a=Tr(i);if(a.length===0)return;let f=new Map;for(let g of a){let h=f.get(g.jumpEdgeId)??[];h.push(g),f.set(g.jumpEdgeId,h)}for(let g of i){let h=f.get(g.id);if(!h||h.length===0)continue;let s=(d=o.get(g.id))==null?void 0:d.curve;if(s!==void 0&&!Nr(s))continue;let u=l.get(g.id);if(!u||s===void 0&&!$r(u.getAttribute("d")??""))continue;let p=u.getAttribute("style")??"",x=/stroke-dasharray\s*:\s*0\s+([\d.]+)\s+[\d.]+\s+([\d.]+)/.exec(p),M=x?Number.parseFloat(x[1]):null,m=x?Number.parseFloat(x[2]):null,b=Er(g,h,n);if(u.setAttribute("d",b),M!==null&&m!==null&&typeof u.getTotalLength=="function"){let I=u.getTotalLength(),v=`0 ${M} ${Math.max(0,I-M-m)} ${m}`,S=p.replace(/stroke-dasharray\s*:[^;]*;?/g,`stroke-dasharray: ${v};`).replace(/;\s*;+/g,";");u.setAttribute("style",S)}}}c(Br,"applyLineJumpsToSvg");async function Ar(t,e){var o,i;for(let l of t.nodes)l.isGroup?await Hi(e.clusters,l):Di(l);let n=new Map;for(let l of t.nodes)l!=null&&l.id&&n.set(l.id,l);for(let l of t.edges){let a=l.start?n.get(l.start)??{}:{},f=l.end?n.get(l.end)??{}:{},d=Ji(e.edgePaths,{...l},{},t.type,a,f,t.diagramId);l.label&&await Ui(e.rootGroups,l),l.label&&Pr(l,d)}let r=(i=(o=t.config)==null?void 0:o.swimlane)==null?void 0:i.lineHops;if(r!==!1){let l=r==="gap"?"gap":"arc",a=t.edges.filter(f=>Array.isArray(f.points)&&f.points.length>=2).map(f=>({id:f.id,points:f.points,curve:f.curve,arrowTypeStart:f.arrowTypeStart,arrowTypeEnd:f.arrowTypeEnd}));Br(e.edgePaths,a,{enabled:!0,jumpRadius:6,jumpStyle:l})}}c(Ar,"adjustLayout");function Pr(t,e){let n=(e==null?void 0:e.updatedPath)??(e==null?void 0:e.originalPath),{subGraphTitleTotalMargin:r}=zi({flowchart:Xi().flowchart??{}});if(t.label){let o=qi.get(t.id),i=t.x,l=t.y;if(n){let a=Pe.calcLabelPosition(n);cn.debug("Moving label "+t.label+" from (",i,",",l,") to (",a.x,",",a.y,") abc88"),e&&(i=a.x,l=a.y)}o.attr("transform",`translate(${i}, ${l+r/2})`)}if(t!=null&&t.startLabelLeft){let o=gn.get(t.id).startLeft,i=t==null?void 0:t.x,l=t==null?void 0:t.y;if(n){let a=Pe.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",n);i=a.x,l=a.y}o.attr("transform",`translate(${i}, ${l})`)}if(t.startLabelRight){let o=gn.get(t.id).startRight,i=t.x,l=t.y;if(n){let a=Pe.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",n);i=a.x,l=a.y}o.attr("transform",`translate(${i}, ${l})`)}if(t.endLabelLeft){let o=gn.get(t.id).endLeft,i=t.x,l=t.y;if(n){let a=Pe.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",n);i=a.x,l=a.y}o.attr("transform",`translate(${i}, ${l})`)}if(t.endLabelRight){let o=gn.get(t.id).endRight,i=t.x,l=t.y;if(n){let a=Pe.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",n);i=a.x,l=a.y}o.attr("transform",`translate(${i}, ${l})`)}}c(Pr,"positionEdgeLabel");var xn="__swimlane_default__",yi=21,Xr=20;function yn(t){return Math.max(t.padding??Xr,Xr)}c(yn,"topLaneHorizontalPadding");function Yr(t){let{x:e,y:n,width:r,height:o}=t,i=t.swimlaneContentTop;if(typeof e!="number"||typeof n!="number"||typeof r!="number"||typeof o!="number"||typeof i!="number"||!Number.isFinite(e)||!Number.isFinite(n)||!Number.isFinite(r)||!Number.isFinite(o)||!Number.isFinite(i)||r<=0||o<=0){delete t.groupTitleRect;return}let l=n-o/2,a=Math.min(i,n+o/2),f=l+Math.min(yi,Math.max(0,a-l));if(f<=l){delete t.groupTitleRect;return}t.groupTitleRect={left:e-r/2,right:e+r/2,top:l,bottom:f}}c(Yr,"assignTopLaneTitleRect");function _r(t){let e=t.direction,n=t.nodes??(t.nodes=[]);for(let i of t.nodes??[])i.isGroup&&!i.parentId&&(i.shape="swimlane",e&&(i.direction=e));let r=n.filter(i=>!i.isGroup&&!i.parentId);if(r.length===0)return;let o=n.find(i=>i.id===xn);o?o.isGroup&&(o.shape="swimlane",e&&(o.direction=e)):(o={id:xn,label:"",isGroup:!0,shape:"swimlane",padding:20,...e?{direction:e}:{}},n.push(o));for(let i of r)i.parentId=xn}c(_r,"prepareLayoutForSwimlanes");function zr(t){let e=new Map;for(let l of t.nodes??[])e.set(l.id,l);let n=[];for(let l of t.edges??[]){let a=typeof l.start=="string"?l.start:void 0,f=typeof l.end=="string"?l.end:void 0;!a||!f||l.labelNodeId||n.push({id:l.id,src:a,dst:f,ref:l})}let r=t.nodes??[],o=r.filter(l=>l.isGroup),i=r.filter(l=>!l.isGroup);return{nodes:[...[...o].reverse(),...i].map(l=>l.id),edges:n,layout:t,nodeById:e}}c(zr,"toGraphView");function Gr(t,e,n,r){let{layout:o}=t,i=t.nodeById,l=(r==null?void 0:r.layerGap)??100,a=(r==null?void 0:r.nodeGap)??40,f=0;for(let s of e.layers){let u=0;for(let p of s){let x=i.get(p);if(!x){u++;continue}x.layer=f,x.order=u;let M=n.x[p]??u*a,m=n.y[p]??f*l;x.x=M,x.y=m,u++}f++}let d=o.nodes??[],g=new Map,h=[];for(let s of d){if(!(s!=null&&s.isGroup))continue;s.parentId||h.push(s);let u=d.filter(b=>b.parentId===s.id),p=1/0,x=-1/0,M=1/0,m=-1/0;for(let b of u){let I=b.x??n.x[b.id],v=b.y??n.y[b.id],S=b.width??0,L=b.height??0;I!=null&&v!=null&&(p=Math.min(p,I-S/2),x=Math.max(x,I+S/2),M=Math.min(M,v-L/2),m=Math.max(m,v+L/2))}if(p===1/0||M===1/0)s.x=s.x??0,s.y=s.y??0,s.width=s.width??0,s.height=s.height??0;else{let b=s.padding??20,I=s.parentId?b:2*yn(s),v=b,S=Math.max(0,x-p)+I,L=Math.max(0,m-M)+v,T=(p+x)/2,O=(M+m)/2;s.x=T,s.y=O,s.width=S,s.height=L,g.set(s.id,{minX:p,maxX:x,minY:M,maxY:m})}}if(h.length>0&&g.size>0){let s=1/0,u=-1/0,p=0;for(let x of h){let M=x.padding??20;M>p&&(p=M);let m=g.get(x.id);m&&(s=Math.min(s,m.minY),u=Math.max(u,m.maxY))}if(s!==1/0&&u!==-1/0){let x=Math.max(0,u-s)+2*Math.max(p,36),M=(s+u)/2;for(let L of h)L.y=M,L.height=x,L.swimlaneContentTop=s;let m=[...h].sort((L,T)=>(L.x??0)-(T.x??0)),b=[],I=[],v=[];for(let L of m){let T=g.get(L.id);if(!T)continue;let O=Math.max(0,T.maxX-T.minX)+2*yn(L),$=(T.minX+T.maxX)/2;b.push(L.id),I.push($),v.push(O)}let S=b.length;if(S>0){let L=new Map;if(S===1)L.set(b[0],v[0]);else{let T=[];for(let X=0;X<S-1;X++)T.push(I[X+1]-I[X]);let O=Array(S);O[0]=0;for(let X=0;X<S-1;X++)O[X+1]=2*T[X]-O[X];let $=0,U=1/0;for(let X=0;X<S;X++){let Z=v[X];X%2==0?$=Math.max($,Z-O[X]):U=Math.min(U,O[X]-Z)}let A=$;A=$<=U?($+U)/2:$;for(let X=0;X<S;X++){let Z=O[X]+(X%2==0?A:-A),it=Math.max(v[X],Z);L.set(b[X],it)}}for(let T of h){let O=L.get(T.id);O!=null&&(T.width=O),Yr(T)}}}}}c(Gr,"writeBackToLayoutData");var bi="[EdgeLabelNodes]";function Dr(t){let e=[],n=[],r=new Map;for(let l of t.nodes)r.set(l.id,l);for(let l of t.edges){if(!l.label||l.label.length===0||l.isLayoutOnly||l.labelNodeId)continue;let a=l.start?r.get(l.start):void 0,f=l.end?r.get(l.end):void 0;if(!a||!f){cn.warn(bi,`Edge ${l.id} has missing source or target node`);continue}let d=`edge-label-${l.start}-${l.end}-${l.id}`,g=a.parentId===f.parentId?a.parentId:f.parentId,h={id:d,label:l.label,edgeStart:l.start??"",edgeEnd:l.end??"",shape:"labelRect",width:0,height:0,isEdgeLabel:!0,isDummy:!0,parentId:g,isGroup:!1,labelStyle:Array.isArray(l.labelStyle)?l.labelStyle[0]:l.labelStyle??"",...a.dir?{dir:a.dir}:{}};e.push(h),l.labelNodeId=d,l.label=void 0,l.text=void 0;let s={id:`${l.id}-to-label`,start:l.start,end:d,type:"normal",isLayoutOnly:!0},u={id:`${l.id}-from-label`,start:d,end:l.end,type:"normal",isLayoutOnly:!0};n.push(s,u)}let o=[...t.nodes,...e],i=[...t.edges,...n];return{...t,nodes:o,edges:i}}c(Dr,"createEdgeLabelNodes");var Xt=.001;function bn(t){let e=t.x??0,n=t.y??0,r=t.width??0,o=t.height??0;return r>0&&o>0?{cx:e,cy:n,rect:Ce(e,n,r,o)}:void 0}c(bn,"measuredNodeRect");function Mn(t){if(t.isGroup)return;let e=bn(t);if(e)return{id:String(t.id??""),cx:e.cx,cy:e.cy,rect:e.rect}}c(Mn,"nodeBoundsInfoFor");function te(t,e,n=Xt){return Math.abs(t.x-e.x)<n&&Math.abs(t.y-e.y)<n}c(te,"samePoint");function ht(t,e,n=Xt){return Math.abs(t.x-e.x)<n}c(ht,"sameX");function pt(t,e,n=Xt){return Math.abs(t.y-e.y)<n}c(pt,"sameY");function Tt(t,e,n=Xt){return pt(t,e,n)&&Math.abs(t.x-e.x)>n}c(Tt,"isHorizontalSegment");function kt(t,e,n=Xt){return ht(t,e,n)&&Math.abs(t.y-e.y)>n}c(kt,"isVerticalSegment");function Dt(t,e,n,r){return Math.max(0,Math.min(Math.max(t,e),Math.max(n,r))-Math.max(Math.min(t,e),Math.min(n,r)))}c(Dt,"overlapLength");function ie(t,e,n=Xt){return t.horizontal&&e.horizontal&&pt(t.a,e.a,n)?Dt(t.a.x,t.b.x,e.a.x,e.b.x):t.vertical&&e.vertical&&ht(t.a,e.a,n)?Dt(t.a.y,t.b.y,e.a.y,e.b.y):0}c(ie,"sameAxisSegmentOverlapLength");function Le(t,e=Xt){let n=[];for(let r=0;r<t.length-1;r++){let o=t[r],i=t[r+1],l=Tt(o,i,e),a=kt(o,i,e);(l||a)&&n.push({index:r,a:o,b:i,horizontal:l,vertical:a})}return n}c(Le,"orthogonalSegmentsForPoints");function Jt(t,e=Xt){let n=Le(t,e),r=0;for(let o=1;o<n.length;o++)n[o-1].horizontal!==n[o].horizontal&&r++;return r}c(Jt,"countOrthogonalBends");function Mt(t,e=Xt){let n=[];for(let r of t){let o=n.length>0?n[n.length-1]:void 0;(!o||!te(o,r,e))&&n.push({x:r.x,y:r.y})}return n}c(Mt,"dedupeConsecutivePoints");function In(t,e=Xt){if(!t||t.length!==4)return;let[n,r,o,i]=t;return Tt(n,r,e)&&kt(r,o,e)&&Tt(o,i,e)?{kind:"HVH",p0:n,p1:r,p2:o,p3:i}:kt(n,r,e)&&Tt(r,o,e)&&kt(o,i,e)?{kind:"VHV",p0:n,p1:r,p2:o,p3:i}:void 0}c(In,"classifyThreeSegmentRoute");function ze(t,e,n,r=0){let o=Math.min(t.x,e.x),i=Math.max(t.x,e.x),l=Math.min(t.y,e.y),a=Math.max(t.y,e.y);return i>n.left-r&&o<n.right+r&&a>n.top-r&&l<n.bottom+r}c(ze,"segmentBoundsOverlapRect");function Sn(t,e,n=0){return t.x>e.left+n&&t.x<e.right-n&&t.y>e.top+n&&t.y<e.bottom-n}c(Sn,"pointInsideRect");function Hr(t,e){return t.left<=e.left&&t.right>=e.right&&t.top<=e.top&&t.bottom>=e.bottom}c(Hr,"rectContainsRect");function Ge(t,e){return t.left<e.right&&t.right>e.left&&t.top<e.bottom&&t.bottom>e.top}c(Ge,"rectsOverlap");function wn(t,e){return{left:t.left-e,right:t.right+e,top:t.top-e,bottom:t.bottom+e}}c(wn,"inflateRect");function Ce(t,e,n,r){return{left:t-n/2,right:t+n/2,top:e-r/2,bottom:e+r/2}}c(Ce,"rectFromCenterSize");function Vt(t){var e;return(e=bn(t))==null?void 0:e.rect}c(Vt,"rectOfNodeBounds");function be(t,e){switch(e){case"top":return{x:t.cx,y:t.rect.top};case"bottom":return{x:t.cx,y:t.rect.bottom};case"left":return{x:t.rect.left,y:t.cy};case"right":return{x:t.rect.right,y:t.cy}}}c(be,"portForRectSide");function vn(t,e,n,r,o,i=Xt){let l=e==="left"||e==="right",a=r==="left"||r==="right";if(l&&a){if(e==="right"&&r==="left"&&t.x<n.x||e==="left"&&r==="right"&&t.x>n.x){if(pt(t,n,i))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===r){if(pt(t,n,i))return;let g=e==="left"?Math.min(t.x,n.x)-o:Math.max(t.x,n.x)+o;return[t,{x:g,y:t.y},{x:g,y:n.y},n]}return}if(!l&&!a){if(e===r){if(ht(t,n,i))return;let h=e==="top"?Math.min(t.y,n.y)-o:Math.max(t.y,n.y)+o;return[t,{x:t.x,y:h},{x:n.x,y:h},n]}if(!(e==="bottom"&&r==="top"&&t.y<n.y||e==="top"&&r==="bottom"&&t.y>n.y))return;if(ht(t,n,i))return[t,n];let g=(t.y+n.y)/2;return[t,{x:t.x,y:g},{x:n.x,y:g},n]}if(l&&!a){let g=e==="right"&&n.x>t.x||e==="left"&&n.x<t.x,h=r==="top"&&t.y<n.y||r==="bottom"&&t.y>n.y;return g&&h?[t,{x:n.x,y:t.y},n]:void 0}let f=e==="bottom"&&n.y>t.y||e==="top"&&n.y<t.y,d=r==="left"&&t.x<n.x||r==="right"&&t.x>n.x;return f&&d?[t,{x:t.x,y:n.y},n]:void 0}c(vn,"buildOrthogonalPortPath");function Ln(t,e,n,r){return e==="left"||e==="right"?[t,{x:r,y:t.y},{x:r,y:n.y},n]:[t,{x:t.x,y:r},{x:n.x,y:r},n]}c(Ln,"buildSameSideTrackPath");function De(t){let e=new Map,n=[];for(let r of t){if(r.isEdgeLabel)continue;let o=Mn(r);o&&(e.set(o.id,o),n.push({id:o.id,rect:o.rect}))}return{nodeInfoById:e,realNodeRects:n}}c(De,"collectRealNodeBounds");function ue(t){let e=[],n=[];for(let r of t){let o=Mn(r);if(!o)continue;let i={id:o.id,rect:o.rect};r.isEdgeLabel?n.push(i):e.push(i)}return{realNodeRects:e,labelNodeRects:n}}c(ue,"collectNodeRectEntries");function jr(t,{includeEdgeLabels:e=!0}={}){let n=[];for(let r of t){if(r.isGroup||!e&&r.isEdgeLabel)continue;let o=r.x??0,i=r.y??0,l=r.width??0,a=r.height??0;n.push({nodeId:r.id,...Ce(o,i,l,a)})}return n}c(jr,"collectLayoutNodeRects");function Cn(t,e,n=Xt){let r=t.start,o=t.end;if(!r||!o)return;let i=e.get(r),l=e.get(o);if(!(!i||!l))return{srcId:r,dstId:o,srcInfo:i,dstInfo:l,collinearX:Math.abs(i.cx-l.cx)<n,collinearY:Math.abs(i.cy-l.cy)<n}}c(Cn,"getNodePairGeometry");function Rt(t,e,n,r=[],o=0){for(let i of n)if(!r.includes(i.id)&&ze(t,e,i.rect,-o))return!0;return!1}c(Rt,"segmentHitsAnyRect");function Tn(t,e,n,r,o=Xt,i=1e-6){let l=pt(t,e,o),a=ht(t,e,o),f=pt(n,r,o),d=ht(n,r,o);if(l&&f||a&&d||!(l||a)||!(f||d))return!1;let g=l?{a:t,b:e}:{a:n,b:r},h=a?{a:t,b:e}:{a:n,b:r},s=g.a.y,u=Math.min(g.a.x,g.b.x),p=Math.max(g.a.x,g.b.x),x=h.a.x,M=Math.min(h.a.y,h.b.y),m=Math.max(h.a.y,h.b.y);if(x<u||x>p||s<M||s>m)return!1;let b=Math.abs(x-g.a.x)<i&&Math.abs(s-g.a.y)<i||Math.abs(x-g.b.x)<i&&Math.abs(s-g.b.y)<i,I=Math.abs(x-h.a.x)<i&&Math.abs(s-h.a.y)<i||Math.abs(x-h.b.x)<i&&Math.abs(s-h.b.y)<i;return!(b&&I)}c(Tn,"orthogonalSegmentsCross");function Vr(t,e,n,r,o=Xt){let i=pt(t,e,o),l=ht(t,e,o),a=pt(n,r,o),f=ht(n,r,o);return l&&f&&ht(t,n,o)?Dt(t.y,e.y,n.y,r.y)>o:i&&a&&pt(t,n,o)?Dt(t.x,e.x,n.x,r.x)>o:!1}c(Vr,"sameAxisSegmentsOverlap");function He(t,e,n,r,{epsilon:o=Xt,skipDegenerateOther:i=!1}={}){for(let l of n){if(l===r||l.isLayoutOnly)continue;let a=l.points;if(!(!a||a.length<2))for(let f=0;f<a.length-1;f++){let d=a[f],g=a[f+1];if(!(i&&te(d,g,o))&&(Tn(t,e,d,g,o)||Vr(t,e,d,g,o)))return!0}}return!1}c(He,"segmentConflictsWithAnyEdge");function se(t,e,n,r,o=Xt){let i=pt(t,e,o),l=ht(t,e,o),a=pt(n,r,o),f=ht(n,r,o);if(!(i&&f||l&&a))return!1;let d=i?{a:t,b:e}:{a:n,b:r},g=i?{a:n,b:r}:{a:t,b:e},h=d.a.y,s=Math.min(d.a.x,d.b.x),u=Math.max(d.a.x,d.b.x),p=g.a.x,x=Math.min(g.a.y,g.b.y),M=Math.max(g.a.y,g.b.y);return p>s+o&&p<u-o&&h>x+o&&h<M-o}c(se,"orthogonalSegmentsStrictlyCross");function kn(t,e,n){let r=Math.min(e,n),o=Math.max(e,n);return t>r+Xt&&t<o-Xt}c(kn,"strictlyBetween");function Wr(t,e,n){return ht(t,e)&&ht(e,n)?kn(e.y,t.y,n.y):pt(t,e)&&pt(e,n)?kn(e.x,t.x,n.x):!1}c(Wr,"isCollinearIntermediate");function Ur(t){let e=!1,n=[];for(let r=0;r<t.length;r++){let o=n[n.length-1],i=t[r],l=r+1<t.length?t[r+1]:void 0;if(o&&l){if(te(o,l)){r++,e=!0;continue}if(Wr(o,i,l)){e=!0;continue}}n.push(i)}return{points:n,changed:e}}c(Ur,"simplifyPolylineOnce");function je(t){let e=[t[0]];for(let r=1;r<t.length;r++){let o=e[e.length-1],i=t[r];if(!ht(o,i)&&!pt(o,i)){let l=e.length>=2?e[e.length-2]:void 0,a=l&&ht(l,o)?{x:o.x,y:i.y}:{x:i.x,y:o.y};e.push(a)}e.push(i)}let n=[];for(let r of e){let o=n[n.length-1];(!o||!te(o,r))&&n.push(r)}return n}c(je,"orthogonalizePolyline");function le(t){if(t.length<3)return t;let e=[...t];for(let n=0;n<32;n++){let r=Ur(e);if(e=r.points,!r.changed)break}return e}c(le,"simplifyPolyline");var ot=.001,Mi=.5,qr=4;function On(t,e,n){let r=t;if(r.isLayoutOnly||!r.points||r.points.length<n)return;let o=r.start?e.get(r.start):void 0,i=r.end?e.get(r.end):void 0;return{edge:r,points:r.points,srcRect:o?Vt(o):void 0,dstRect:i?Vt(i):void 0}}c(On,"endpointContextFor");function Jr(t,e,n){if(pt(t,e,ot))return{x:t.x<n.left?n.left:n.right,y:t.y};if(ht(t,e,ot)){let r=t.y<n.top?n.top:n.bottom;return{x:t.x,y:r}}return{x:Math.min(n.right,Math.max(n.left,t.x)),y:Math.min(n.bottom,Math.max(n.top,t.y))}}c(Jr,"segmentEnterPoint");function Rn(t,e,n){let r=n?1:-1,o=n?0:t.length-1;for(;o>=0&&o<t.length&&Sn(t[o],e,Mi);)o+=r;if(o<0||o>=t.length)return t;let i=o-r;if(i<0||i>=t.length)return t;let l=Jr(t[o],t[i],e);return n?[l,...t.slice(o)]:[...t.slice(0,o+1),l]}c(Rn,"clipEndpoint");function Kr(t,e){for(let n of t){let r=On(n,e,2);if(!r)continue;let o=[...r.points];r.srcRect&&(o=Rn(o,r.srcRect,!0)),r.dstRect&&(o=Rn(o,r.dstRect,!1)),o=le(je(o)),o=Bn(o,r.srcRect,r.dstRect),r.edge.points=le(je(o))}}c(Kr,"clipEdgeEndpointsToNodeBoundaries");function En(t,e,n,r=!1){if(pt(t,e,ot)){if(e.y<n.top-ot||e.y>n.bottom+ot)return e;if(r){if(t.x<n.left-ot)return{x:n.left,y:t.y};if(t.x>n.right+ot)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(ht(t,e,ot)){if(e.x<n.left-ot||e.x>n.right+ot)return e;if(r){if(t.y<n.top-ot)return{x:t.x,y:n.top};if(t.y>n.bottom+ot)return{x:t.x,y:n.bottom}}let o=Math.abs(e.y-n.top)<=Math.abs(e.y-n.bottom);return{x:t.x,y:o?n.top:n.bottom}}return e}c(En,"snapEndpointToBoundary");function Ve(t,e,n){let r=t[e];for(let o=e+n;o>=0&&o<t.length;o+=n){let i=t[o];if(!te(i,r,ot))return i}return t[e+n]}c(Ve,"firstDistinctAdjacent");function We(t,e){let n=t+qr,r=e-qr;return n<=r?{lo:n,hi:r}:{lo:(t+e)/2,hi:(t+e)/2}}c(We,"cornerClearanceRange");function $n(t,e,n){let{lo:r,hi:o}=We(e,n);return Math.min(o,Math.max(r,t))}c($n,"clampToCornerClearance");function Zr(t){let e=Math.max(...t.map(r=>r.lo)),n=Math.min(...t.map(r=>r.hi));if(!(e>n))return{lo:e,hi:n}}c(Zr,"intersectRanges");function Nn(t,e){return e==="left"||e==="right"?We(t.top,t.bottom):We(t.left,t.right)}c(Nn,"clearanceRangeForSide");function Ue(t,e,n){let r=t.y>=n.top-ot&&t.y<=n.bottom+ot,o=t.x>=n.left-ot&&t.x<=n.right+ot;if(pt(t,e,ot)&&r){if(Math.abs(t.x-n.left)<ot)return"left";if(Math.abs(t.x-n.right)<ot)return"right"}if(ht(t,e,ot)&&o){if(Math.abs(t.y-n.top)<ot)return"top";if(Math.abs(t.y-n.bottom)<ot)return"bottom"}}c(Ue,"terminalSideForSegment");function Fe(t){return t==="left"||t==="right"}c(Fe,"isHorizontalSide");function Qr(t,e,n,r,o){let i=[],l=n?Ue(t,e,n):void 0,a=r?Ue(e,t,r):void 0;return n&&l&&Fe(l)===o&&i.push(Nn(n,l)),r&&a&&Fe(a)===o&&i.push(Nn(r,a)),i.length>0?Zr(i):void 0}c(Qr,"straightClearanceRange");function Fn(t,e,n,r,o){let i=Qr(t,e,n,r,o);if(!i)return;let l=o?t.y:t.x,a=Math.min(i.hi,Math.max(i.lo,l));if(!(Math.abs(a-l)<ot))return o?[{x:t.x,y:a},{x:e.x,y:a}]:[{x:a,y:t.y},{x:a,y:e.y}]}c(Fn,"clearStraightEndpointCornerAxis");function Bn(t,e,n){if(t.length!==2)return t;let[r,o]=t;return pt(r,o,ot)?Fn(r,o,e,n,!0)??t:ht(r,o,ot)?Fn(r,o,e,n,!1)??t:t}c(Bn,"clearStraightEndpointCornerConnections");function to(t,e,n){return Fe(n)?{x:t.x,y:$n(t.y,e.top,e.bottom)}:{x:$n(t.x,e.left,e.right),y:t.y}}c(to,"cornerClearedEndpoint");function eo(t,e,n,r,o,i){let l=t.map(a=>({...a}));for(let a=e;a>=0&&a<t.length;a+=n){let f=t[a];if(i&&!pt(f,r,ot)||!i&&!ht(f,r,ot))break;i?l[a].y=o.y:l[a].x=o.x}return l}c(eo,"moveCollinearEndpointRun");function An(t,e,n){if(t.length<2)return t;let r=n?0:t.length-1,o=n?1:-1,i=t[r],l=Ve(t,r,o);if(!l)return t;let a=Ue(i,l,e);if(!a)return t;let f=Fe(a),d=to(i,e,a);return te(i,d,ot)?t:eo(t,r,o,i,d,f)}c(An,"clearEndpointCornerConnection");function Pn(t,e,n){let r=Math.min(t.x,e.x)>=n.left-ot&&Math.max(t.x,e.x)<=n.right+ot,o=Math.min(t.y,e.y)>=n.top-ot&&Math.max(t.y,e.y)<=n.bottom+ot;if(Math.abs(t.y-n.top)<ot&&Math.abs(e.y-n.top)<ot&&r)return"top";if(Math.abs(t.y-n.bottom)<ot&&Math.abs(e.y-n.bottom)<ot&&r)return"bottom";if(Math.abs(t.x-n.left)<ot&&Math.abs(e.x-n.left)<ot&&o)return"left";if(Math.abs(t.x-n.right)<ot&&Math.abs(e.x-n.right)<ot&&o)return"right"}c(Pn,"borderSideForSegment");function Xn(t,e,n,r){switch(t){case"top":return ht(e,n,ot)&&n.y<r.top-ot;case"bottom":return ht(e,n,ot)&&n.y>r.bottom+ot;case"left":return pt(e,n,ot)&&n.x<r.left-ot;case"right":return pt(e,n,ot)&&n.x>r.right+ot}}c(Xn,"leavesOutward");function Yn(t,e,n){if(t.length<3)return t;if(n){let i=Pn(t[0],t[1],e);return i&&Xn(i,t[1],t[2],e)?t.slice(1):t}let r=t.length-1,o=Pn(t[r-1],t[r],e);return o&&Xn(o,t[r-1],t[r-2],e)?t.slice(0,r):t}c(Yn,"collapseOwnBorderStub");function no(t,e,n){let r=t;if(e){let i=Ve(r,0,1);if(i){let l=En(i,r[0],e);l!==r[0]&&(r=[l,...r.slice(1)])}r=Yn(r,e,!0)}if(n){let i=r.length-1,l=Ve(r,i,-1);if(l){let a=En(l,r[i],n,!0);a!==r[i]&&(r=[...r.slice(0,i),a])}r=Yn(r,n,!1)}let o=Bn(r,e,n);return o!==r||r.length===2?o:(e&&(r=An(r,e,!0)),n&&(r=An(r,n,!1)),r)}c(no,"snapAndCollapseEndpoints");function _n(t,e){for(let n of t){let r=On(n,e,2);if(!r)continue;let o=no(Mt(r.points,ot),r.srcRect,r.dstRect);if(o.length<3){r.edge.points=o;continue}let i=[o[0],{...o[0]},...o.slice(1,-1),o[o.length-1],{...o[o.length-1]}];r.edge.points=i}}c(_n,"prepareEdgeEndpointsForRenderer");function zn(t){return new Map(t.map(e=>[e.id,e]))}c(zn,"buildNodeMap");function ro(t,e){let n=t.parentId,r=null;for(;n;){let o=e.get(n);if(!(o!=null&&o.isGroup))break;r=o.id,n=o.parentId}return r}c(ro,"resolveTopLevelGroupId");function Gn(t,e){let n=0,r=t.parentId;for(;r;){let o=e.get(r);if(!(o!=null&&o.isGroup))break;n++,r=o.parentId}return n}c(Gn,"groupDepth");function Dn(t){let e=1/0,n=-1/0,r=1/0,o=-1/0;for(let i of t){let l=i.x,a=i.y;if(typeof l!="number"||typeof a!="number")continue;let f=i.width??0,d=i.height??0;e=Math.min(e,l-f/2),n=Math.max(n,l+f/2),r=Math.min(r,a-d/2),o=Math.max(o,a+d/2)}return e===1/0||r===1/0?null:{minX:e,maxX:n,minY:r,maxY:o}}c(Dn,"boundsForChildren");function oo(t,e){let n=t.padding??20;t.x=(e.minX+e.maxX)/2,t.y=(e.minY+e.maxY)/2,t.width=Math.max(0,e.maxX-e.minX)+n,t.height=Math.max(0,e.maxY-e.minY)+n}c(oo,"applyGroupBounds");function io(t){let e=zn(t),n=t.filter(r=>r.isGroup&&r.parentId).sort((r,o)=>Gn(o,e)-Gn(r,e));for(let r of n){let o=Dn(t.filter(i=>i.parentId===r.id));o&&oo(r,o)}}c(io,"recomputeNestedGroupBounds");function qe(t,e){let n=t.nodes??[],r=t.edges??[],o=n.filter(f=>!f.isGroup),i=1/0,l=-1/0;for(let f of o){let d=f[e];typeof d=="number"&&(i=Math.min(i,d),l=Math.max(l,d))}if(!Number.isFinite(i)||!Number.isFinite(l))return!1;let a=c(f=>i+l-f,"mirror");for(let f of n){let d=f[e];typeof d=="number"&&(f[e]=a(d));let g=f.groupTitleRect;g&&(f.groupTitleRect=e==="x"?{...g,left:a(g.right),right:a(g.left)}:{...g,top:a(g.bottom),bottom:a(g.top)})}for(let f of r)for(let d of f.points??[])d[e]=a(d[e]);return!0}c(qe,"mirrorAxis");function lo(t){return(t.nodes??[]).some(e=>!e.isGroup)?qe(t,"y"):!0}c(lo,"applyBtDirectionTransform");function ao(t,e="LR"){let n=t.nodes??[],r=t.edges??[],o=n.filter(O=>!O.isGroup),i=1/0,l=1/0;for(let O of o){let $=O.x??0,U=O.y??0;$<i&&(i=$),U<l&&(l=U)}if(!Number.isFinite(i)||!Number.isFinite(l))return!1;let a=0,f=0;for(let O of o)a+=O.width??0,f+=O.height??0;let d=a/o.length,g=f/o.length,h=g>0?Math.max(1,d/g):1;for(let O of o){let $=O.x??0,U=((O.y??0)-l)*h+36,A=$-i;O.x=U,O.y=A}for(let O of r)if(O.points)for(let $ of O.points){let U=$.x,A=($.y-l)*h+36,X=U-i;$.x=A,$.y=X}io(n);let s=n.filter(O=>O.isGroup&&!O.parentId);if(s.length===0)return e==="RL"&&qe(t,"x"),!0;let u=zn(n),p=new Map;for(let O of n){if(O.isGroup)continue;let $=ro(O,u);if(!$)continue;let U=p.get($)??[];U.push(O),p.set($,U)}let x=0;for(let O of s){let $=O.padding??0;$>x&&(x=$)}let M=[],m=1/0,b=-1/0;for(let O of s){let $=Dn(p.get(O.id)??[]);$&&(m=Math.min(m,$.minX),b=Math.max(b,$.maxX),M.push({lane:O,contentTop:$.minY,contentBottom:$.maxY,centerY:($.minY+$.maxY)/2}))}if(m===1/0||b===-1/0)return!0;let I=Math.max(0,b-m)+2*Math.max(x,10),v=36+I,S=(m+b)/2-I/2-36,L=S+v/2,T=Math.max(x,36);M.sort((O,$)=>O.centerY-$.centerY);for(let O=0;O<M.length;O++){let $=M[O],U,A;if(U=O===0?$.contentTop-T:(M[O-1].contentBottom+$.contentTop)/2,O===M.length-1)A=$.contentBottom+T;else{let it=M[O+1];A=($.contentBottom+it.contentTop)/2}let X=Math.max(0,A-U),Z=(U+A)/2;$.lane.x=L,$.lane.y=Z,$.lane.width=v,$.lane.height=X,$.lane.swimlaneContentTop=$.contentTop,$.lane.groupTitleRect={left:S,right:S+36,top:U,bottom:A}}return e==="RL"&&qe(t,"x"),!0}c(ao,"applyLrDirectionTransform");var oe=1e-6,Je=8,Ii=[0,Je,-Je,2*Je,-2*Je];function so(t,e){let{nodeInfoById:n,realNodeRects:r}=De(e);for(let o of t){if(o.isLayoutOnly)continue;let i=o.points;if(!i||i.length<4)continue;let l=In(Mt(i,oe),oe);if(!l)continue;let{p3:a}=l,f=l.kind==="HVH",d=Cn(o,n,oe);if(!d)continue;let{srcId:g,dstId:h,srcInfo:s,dstInfo:u,collinearX:p,collinearY:x}=d;if(p||x)continue;let M,m=s.rect;for(let b of Ii){let I,v,S;if(f){let U=u.cy>s.cy?m.bottom:m.top,A=s.cx+b;if(A<=m.left+oe||A>=m.right-oe)continue;I={x:A,y:U},v={x:A,y:a.y},S={x:a.x,y:a.y}}else{let U=u.cx>s.cx?m.right:m.left,A=s.cy+b;if(A<=m.top+oe||A>=m.bottom-oe)continue;I={x:U,y:A},v={x:a.x,y:A},S={x:a.x,y:a.y}}let L=te(I,v,oe),T=te(v,S,oe);if(L&&T||!L&&Rt(I,v,r,[g],1)||!T&&Rt(v,S,r,[h],1))continue;let O=!L&&He(I,v,t,o,{epsilon:oe,skipDegenerateOther:!0}),$=!T&&He(v,S,t,o,{epsilon:oe,skipDegenerateOther:!0});if(!(O||$)){M=L?[v,S]:T?[I,v]:[I,v,S];break}}M&&(o.points=M)}}c(so,"portSwapToLShape");function fo(t,e){let n=.001,{realNodeRects:r,labelNodeRects:o}=ue(e.values());for(let i of t){if(i.isLayoutOnly)continue;let l=i.points;if(!l||l.length<4)continue;let a=Mt(l,n);if(a.length<4)continue;let f=a.length-1,d=a[f],g=a[f-1],h=a[f-2],s=d.x-g.x,u=d.y-g.y,p=Math.hypot(s,u);if(p>=10||p<n)continue;let x=g.x-h.x,M=g.y-h.y;if(Math.hypot(x,M)<n)continue;let m=Tt(g,d,n),b=kt(g,d,n),I=Tt(h,g,n),v=kt(h,g,n);if(!(m&&v||b&&I))continue;let S=i.end,L=i.start,T=S?e.get(S):void 0;if(!T)continue;let O=T.x??0,$=T.y??0,U=Vt(T);if(!U)continue;let A,X;if(v){let W=M<0;A={x:O,y:h.y},X={x:O,y:W?U.bottom:U.top}}else{let W=x>0;A={x:h.x,y:$},X={x:W?U.right:U.left,y:$}}if(Rt(A,X,r,S?[S]:[],-2)||Rt(A,X,o,[],-2))continue;if(L){let W=e.get(L),Q=W?Vt(W):void 0;if(Q&&Sn(A,Q,2))continue}let Z=c((W,Q)=>`${W.x.toFixed(3)},${W.y.toFixed(3)}|${Q.x.toFixed(3)},${Q.y.toFixed(3)}`,"ownSegmentKey"),it=new Set;for(let W=0;W<a.length-1;W++)it.add(Z(a[W],a[W+1]));let dt=c((W,Q)=>{for(let et of t){if(et===i||et.isLayoutOnly)continue;let lt=et.points;if(!(!lt||lt.length<2))for(let mt=0;mt<lt.length-1;mt++){let vt=lt[mt],Ct=lt[mt+1];if(!it.has(Z(vt,Ct))&&se(W,Q,vt,Ct,n))return!0}}return!1},"segmentCrossesOtherEdge");if(dt(A,X))continue;if(f-3>=0){let W=a[f-3],Q=[L,S].filter(et=>!!et);if(Rt(W,A,r,Q,-2)||dt(W,A))continue}let ut=[...a.slice(0,f-2),A,X];i.points=ut;let ct=i.labelNodeId;if(ct){let W=e.get(ct);if(W){let Q=W.width??0,et=W.height??0;if(Q>0&&et>0){let lt,mt,vt=-1;for(let Ct=0;Ct<ut.length-1;Ct++){let Kt=ut[Ct],Ht=ut[Ct+1],ne=Math.hypot(Ht.x-Kt.x,Ht.y-Kt.y),Se=pt(Kt,Ht,n),Oe=ht(Kt,Ht,n);(Se&&ne>=Q+2||Oe&&ne>=et+2)&&ne>vt&&(vt=ne,lt=(Kt.x+Ht.x)/2,mt=(Kt.y+Ht.y)/2)}lt!==void 0&&mt!==void 0&&(W.x=lt,W.y=mt)}}}}}c(fo,"collapseShortTerminalStub");var K=.001,Yt=8,st=Le,Hn=c((t,e)=>ht(t,e,K)||pt(t,e,K),"orthogonallyAligned");function uo(t,e){let n=c((h,s)=>{let u=h.x??0,p=h.y??0,x=s.x-u,M=s.y-p,m=(h.width??0)/2,b=(h.height??0)/2;return Math.abs(M)*m>Math.abs(x)*b?(M<0&&(b=-b),{x:u+(M===0?0:b*x/M),y:p+b}):(x<0&&(m=-m),{x:u+m,y:p+(x===0?0:m*M/x)})},"rectIntersect"),r=c((h,s)=>{let u=Mt(h.points??[]);if(u.length<2)return;let p=s?h.start:h.end,x=p?e.get(p):void 0,M=x?Vt(x):void 0;if(!x||!p||!M)return;let m=s?u[0]:u[u.length-1],b=s?u[1]:u[u.length-2],I=n(x,m),v=m;if(Hn(b,I)&&(v=b),ht(I,v,K))return{edge:h,edgeId:String(h.id??""),nodeId:p,atStart:s,orientation:"V",coord:I.x,min:Math.min(I.y,v.y),max:Math.max(I.y,v.y),boundary:I,railEnd:v,rect:M};if(pt(I,v,K))return{edge:h,edgeId:String(h.id??""),nodeId:p,atStart:s,orientation:"H",coord:I.y,min:Math.min(I.x,v.x),max:Math.max(I.x,v.x),boundary:I,railEnd:v,rect:M}},"terminalLaneFor"),o=c((h,s)=>Math.max(0,Math.min(h.max,s.max)-Math.max(h.min,s.min)),"projectedOverlapLength"),i=c((h,s)=>h.nodeId!==s.nodeId||h.orientation!==s.orientation?!1:h.orientation==="H"?(Math.abs(h.boundary.x-h.rect.left)<1||Math.abs(h.boundary.x-h.rect.right)<1)&&ht(h.boundary,s.boundary,1):(Math.abs(h.boundary.y-h.rect.top)<1||Math.abs(h.boundary.y-h.rect.bottom)<1)&&pt(h.boundary,s.boundary,1),"sameTerminalFace"),l=c((h,s)=>h.nodeId!==s.nodeId||h.orientation!==s.orientation?!1:o(h,s)>=Yt&&Math.abs(h.coord-s.coord)<.5,"exactTerminalLaneConflict"),a=c((h,s)=>{if(h.nodeId!==s.nodeId||h.orientation!==s.orientation||h.orientation!=="H"||h.atStart===s.atStart)return!1;let u=o(h,s);if(u<Yt)return!1;let p=h.rect.bottom-h.rect.top;return u<p||u>2*p?!1:i(h,s)&&Math.abs(h.coord-s.coord)<16},"nearTerminalLaneConflict"),f=c((h,s)=>{let u=Mt(h.edge.points??[]);if(u.length<2)return;let p=h.orientation==="V"?{x:h.boundary.x+s,y:h.boundary.y}:{x:h.boundary.x,y:h.boundary.y+s},x=h.orientation==="V"?{x:h.railEnd.x+s,y:h.railEnd.y}:{x:h.railEnd.x,y:h.railEnd.y+s};if(!c(()=>Math.abs(h.boundary.y-h.rect.top)<1||Math.abs(h.boundary.y-h.rect.bottom)<1?pt(p,h.boundary,K)&&p.x>=h.rect.left+1&&p.x<=h.rect.right-1:Math.abs(h.boundary.x-h.rect.left)<1||Math.abs(h.boundary.x-h.rect.right)<1?ht(p,h.boundary,K)&&p.y>=h.rect.top+1&&p.y<=h.rect.bottom-1:!1,"boundaryStaysOnSameFace")())return;if(h.atStart){let I=u.length>1&&te(u[1],h.railEnd,K),v=u.slice(I?2:1),S=v[0];return S&&!Hn(S,x)?void 0:[p,x,...v]}let M=u.length>1&&te(u[u.length-2],h.railEnd,K),m=u.slice(0,M?-2:-1),b=m[m.length-1];if(!(b&&!Hn(b,x)))return[...m,x,p]},"shiftedCandidate"),d=c(h=>{let s=h.edge,u=Mt(s.points??[]);if(u.length!==2)return!1;let p=s.start,x=s.end,M=p?e.get(p):void 0,m=x?e.get(x):void 0;if(!M||!m)return!1;let b=M.x??0,I=M.y??0,v=m.x??0,S=m.y??0,[L,T]=u;return pt(L,T,K)&&Math.abs(I-S)<1&&Math.abs(b-v)>1||ht(L,T,K)&&Math.abs(b-v)<1&&Math.abs(I-S)>1},"laneIsStraightCollinearConnector"),g=[-7,7,-14,14,-21,21];for(let h=0;h<8;h++){let s=t.filter(p=>!p.isLayoutOnly).flatMap(p=>[r(p,!0),r(p,!1)]).filter(p=>!!p),u=!1;for(let p=0;p<s.length&&!u;p++)for(let x=p+1;x<s.length&&!u;x++){let M=s[p],m=s[x];if(M.edge===m.edge||!(l(M,m)||a(M,m)))continue;let b=!l(M,m),I=[M,m].sort((v,S)=>{let L=d(v),T=d(S);return L===T?+!S.atStart-+!v.atStart:Number(L)-Number(T)});for(let v of I){for(let S of g){let L=f(v,S);if(!L)continue;let T=r({...v.edge,points:L},v.atStart);if(!(!T||s.some(O=>O.edge!==v.edge&&(l(T,O)||b&&a(T,O))))){v.edge.points=L,u=!0;break}}if(u)break}}if(!u)return}}c(uo,"separateSharedRenderedTerminalLanes");function ho(t,e){let{realNodeRects:n,labelNodeRects:r}=ue(e.values()),o=c((l,a)=>{let f=l.start,d=l.end,g=st(a);if(g.length!==a.length-1)return!1;let h=[f,d].filter(s=>!!s);for(let s of g)if(Rt(s.a,s.b,n,h,-2)||Rt(s.a,s.b,r,[],-2))return!1;for(let s of t){if(s===l||s.isLayoutOnly)continue;let u=s.points;if(!(!u||u.length<2)){for(let p of g)for(let x of st(Mt(u)))if(ie(p,x,.5)>=Yt||se(p.a,p.b,x.a,x.b,K))return!1}}return!0},"candidateIsSafe"),i=c((l,a)=>{if(a+4>=l.length)return;let f=l[a],d=l[a+1],g=l[a+2],h=l[a+3],s=l[a+4],u=Tt(f,d)&&kt(d,g)&&Tt(g,h)&&kt(h,s)&&ht(f,h,K)&&ht(f,s,K)&&ht(d,g,K)&&(d.x-f.x)*(h.x-g.x)<0,p=kt(f,d)&&Tt(d,g)&&kt(g,h)&&Tt(h,s)&&pt(f,h,K)&&pt(f,s,K)&&pt(d,g,K)&&(d.y-f.y)*(h.y-g.y)<0;if(u||p)return Mt([...l.slice(0,a+1),s,...l.slice(a+5)]);if(a+5>=l.length)return;let x=l[a+5],M=kt(f,d)&&Tt(d,g)&&kt(g,h)&&Tt(h,s)&&kt(s,x)&&ht(f,s,K)&&ht(f,x,K)&&ht(g,h,K)&&(g.x-d.x)*(s.x-h.x)<0,m=Tt(f,d)&&kt(d,g)&&Tt(g,h)&&kt(h,s)&&Tt(s,x)&&pt(f,s,K)&&pt(f,x,K)&&pt(g,h,K)&&(g.y-d.y)*(s.y-h.y)<0;if(!(!M&&!m))return Mt([...l.slice(0,a+1),x,...l.slice(a+6)])},"withoutDogleg");for(let l=0;l<8;l++){let a=!1;for(let f of t){if(f.isLayoutOnly)continue;let d=Mt(f.points??[]);for(let g=0;g<=d.length-5;g++){let h=i(d,g);if(!(!h||!o(f,h))){f.points=h,a=!0;break}}if(a)break}if(!a)return}}c(ho,"collapseRedundantRectangularDoglegs");function jn(t,e){let{realNodeRects:n,labelNodeRects:r}=ue(e.values()),o=t.filter(h=>!h.isLayoutOnly),i=c((h,s,u)=>Mt(h===s?u??[]:h.points??[]),"pointsFor"),l=c((h,s)=>{let u=0;for(let p=0;p<o.length;p++){let x=st(i(o[p],h,s));for(let M=p+1;M<o.length;M++){let m=st(i(o[M],h,s));for(let b of x)for(let I of m)se(b.a,b.b,I.a,I.b,K)&&u++}}return u},"strictCrossingCount"),a=c(h=>{let s=st(h);if(s.length!==3)return;let u=s[1];if(!(s[0].horizontal===u.horizontal||s[2].horizontal===u.horizontal))return{index:u.index,horizontal:u.horizontal,vertical:u.vertical,segment:u}},"middleRail"),f=c((h,s)=>{let u=[h.start,h.end].filter(p=>!!p);return n.filter(p=>{if(u.includes(p.id))return!1;let x=p.rect;return s.horizontal?Dt(s.a.x,s.b.x,x.left,x.right)>=Yt&&s.a.y>=x.top-2&&s.a.y<=x.bottom+2:Dt(s.a.y,s.b.y,x.top,x.bottom)>=Yt&&s.a.x>=x.left-2&&s.a.x<=x.right+2})},"blockingRectsFor"),d=c((h,s,u)=>{let p=h.map(M=>({...M}));if(s.horizontal)p[s.index].y=u,p[s.index+1].y=u;else if(s.vertical)p[s.index].x=u,p[s.index+1].x=u;else return;let x=le(Mt(p));return st(x).length===x.length-1?x:void 0},"candidateByMovingRail"),g=c((h,s,u)=>{let p=[h.start,h.end].filter(M=>!!M),x=st(s);if(x.length!==s.length-1)return!1;for(let M of x)if(Rt(M.a,M.b,n,p,-2)||Rt(M.a,M.b,r,[],-2))return!1;for(let M of o)if(M!==h){for(let m of x)for(let b of st(i(M)))if(ie(m,b,.5)>=Yt)return!1}return l(h,s)<=u},"candidateIsSafe");for(let h=0;h<8;h++){let s=l(),u=!1;for(let p of o){let x=i(p),M=a(x);if(!M)continue;let m=f(p,M.segment);if(m.length===0)continue;let b=M.horizontal?[Math.min(...m.map(I=>I.rect.top))-20,Math.max(...m.map(I=>I.rect.bottom))+20]:[Math.min(...m.map(I=>I.rect.left))-20,Math.max(...m.map(I=>I.rect.right))+20];for(let I of b){let v=d(x,M.segment,I);if(!(!v||!g(p,v,s))){p.points=v,u=!0;break}}if(u)break}if(!u)return}}c(jn,"liftObstacleHuggingSameSideRails");function Vn(t,e){let n=c(a=>{let f=a.groupTitleRect;if(!(!f||typeof f.left!="number"||typeof f.right!="number"||typeof f.top!="number"||typeof f.bottom!="number"||!Number.isFinite(f.left)||!Number.isFinite(f.right)||!Number.isFinite(f.top)||!Number.isFinite(f.bottom)||f.right<=f.left||f.bottom<=f.top))return{left:f.left,right:f.right,top:f.top,bottom:f.bottom}},"validTitleRect"),r=c(a=>{if(!a.isGroup||a.parentId)return;let f=a.direction,d=typeof f=="string"?f.toUpperCase():"";if(d==="LR"||d==="RL"||d==="BT")return;let g=n(a),h=a.y,s=a.height;if(!g||typeof h!="number"||typeof s!="number"||!Number.isFinite(h)||!Number.isFinite(s)||s<=0)return;let u=g.right-g.left,p=g.bottom-g.top;if(!(p<=0||u<p))return{node:a,rect:g}},"topLaneTitleFor"),o=c((a,f)=>{if(!a.horizontal)return!1;let d=a.a.y;return d<=f.top+K||d>=f.bottom-K?!1:Dt(a.a.x,a.b.x,f.left,f.right)>=Yt},"horizontalSegmentIntersectsTitle"),i=[...e.values()].map(r).filter(a=>!!a);if(i.length===0)return;let l=0;for(let a of t){if(a.isLayoutOnly)continue;let f=Mt(a.points??[]);for(let d of st(f))for(let g of i)o(d,g.rect)&&(l=Math.max(l,g.rect.bottom-d.a.y+4))}if(!(l<=K))for(let a of i){let f=a.node.y,d=a.node.height;typeof f!="number"||typeof d!="number"||!Number.isFinite(f)||!Number.isFinite(d)||d<=0||(a.node.y=f-l/2,a.node.height=d+l,a.node.groupTitleRect={...a.rect,top:a.rect.top-l,bottom:a.rect.bottom-l})}}c(Vn,"liftTopLaneTitleBandsAboveRails");function Wn(t,e){let n=c(f=>{let d=f.groupTitleRect;if(!(!d||typeof d.left!="number"||typeof d.right!="number"||typeof d.top!="number"||typeof d.bottom!="number"||!Number.isFinite(d.left)||!Number.isFinite(d.right)||!Number.isFinite(d.top)||!Number.isFinite(d.bottom)||d.right<=d.left||d.bottom<=d.top))return{left:d.left,right:d.right,top:d.top,bottom:d.bottom}},"validTitleRect"),r=c(f=>{if(!f.isGroup||f.parentId||f.direction!=="LR")return;let d=n(f),g=f.x,h=f.width;if(!d||typeof g!="number"||typeof h!="number"||!Number.isFinite(g)||!Number.isFinite(h)||h<=0)return;let s=d.right-d.left,u=d.bottom-d.top;if(!(s<=0||u<s))return{node:f,rect:d}},"leftLaneTitleFor"),o=c((f,d)=>{if(!f.vertical)return!1;let g=f.a.x;return g<=d.left+K||g>=d.right-K?!1:Dt(f.a.y,f.b.y,d.top,d.bottom)>=Yt},"verticalSegmentIntersectsTitle"),i=c((f,d)=>{if(!f.horizontal)return!1;let g=f.a.y;return g<=d.top+K||g>=d.bottom-K?!1:Dt(f.a.x,f.b.x,d.left,d.right)>=Yt},"horizontalSegmentIntersectsTitle"),l=[...e.values()].map(r).filter(f=>!!f);if(l.length===0)return;let a=0;for(let f of t){if(f.isLayoutOnly)continue;let d=Mt(f.points??[]);for(let g of st(d))for(let h of l)if(o(g,h.rect))a=Math.max(a,h.rect.right-g.a.x+4);else if(i(g,h.rect)){let s=Math.min(g.a.x,g.b.x);a=Math.max(a,h.rect.right-s+4)}}if(!(a<=K))for(let f of l){let d=f.node.x,g=f.node.width;typeof d!="number"||typeof g!="number"||!Number.isFinite(d)||!Number.isFinite(g)||g<=0||(f.node.x=d-a/2,f.node.width=g+a,f.node.groupTitleRect={...f.rect,left:f.rect.left-a,right:f.rect.right-a})}}c(Wn,"shiftLeftLaneTitleBandsLeftOfRails");function co(t,e){let{realNodeRects:n}=ue(e.values()),r=t.filter(u=>!u.isLayoutOnly),o=c((u,p=new Map)=>Mt(p.get(u)??u.points??[]),"replacementPointsFor"),i=c((u=new Map)=>{let p=0;for(let x=0;x<r.length;x++){let M=st(o(r[x],u));for(let m=x+1;m<r.length;m++){let b=st(o(r[m],u));for(let I of M)for(let v of b)se(I.a,I.b,v.a,v.b,K)&&p++}}return p},"crossingCount"),l=c((u=new Map)=>r.reduce((p,x)=>p+Jt(o(x,u)),0),"totalBends"),a=c(u=>{let p=o(u);if(p.length<4)return;let x=p[p.length-2],M=p[p.length-1];if(!(!Tt(x,M,K)&&!kt(x,M,K)))return{tailStart:x,terminal:M}},"terminalTailFor"),f=c((u,p)=>{let x=o(u);if(x.length<3)return;let M=x[0],m=x[1],b;if(Tt(M,m,K))b={x:m.x,y:p.tailStart.y};else if(kt(M,m,K))b={x:p.tailStart.x,y:m.y};else return;let I=le(Mt([M,m,b,p.tailStart,p.terminal]));return st(I).length===I.length-1?I:void 0},"candidateWithDestinationTail"),d=c((u,p)=>{let x=[u.start,u.end].filter(M=>!!M);for(let M of st(p))if(Rt(M.a,M.b,n,x,-2))return!0;return!1},"pathHasNodeHit"),g=c((u,p,x)=>{for(let M of r)if(M!==u){for(let m of st(p))for(let b of st(o(M,x)))if(ie(m,b,.5)>=Yt)return!0}return!1},"pathHasSharedTrack"),h=c((u,p,x)=>!d(u,p)&&!g(u,p,x),"candidateIsSafe"),s=c(()=>{let u=new Map;for(let p of r){let x=p.end;if(!x||!e.has(x)||o(p).length<4)continue;let M=u.get(x)??[];M.push(p),u.set(x,M)}return u},"edgesByDestination");for(let u=0;u<4;u++){let p=i();if(p===0)return;let x=l(),M,m=p,b=x;for(let I of s().values())for(let v=0;v<I.length;v++)for(let S=v+1;S<I.length;S++){let L=I[v],T=I[S],O=a(L),$=a(T);if(!O||!$)continue;let U=f(L,$),A=f(T,O);if(!U||!A)continue;let X=new Map([[L,U],[T,A]]);if(!h(L,U,X)||!h(T,A,X))continue;let Z=i(X),it=l(X);Z>=p||Z>m||Z===m&&it>=b||(M=X,m=Z,b=it)}if(!M)return;for(let[I,v]of M)I.points=v}}c(co,"swapDestinationTerminalTailsToReduceCrossings");function go(t,e){let{realNodeRects:n,labelNodeRects:r}=ue(e.values()),o=t.filter(m=>!m.isLayoutOnly),i=c((m,b=new Map)=>Mt(b.get(m)??m.points??[]),"replacementPointsFor"),l=c((m=new Map)=>{let b=0;for(let I=0;I<o.length;I++){let v=st(i(o[I],m));for(let S=I+1;S<o.length;S++){let L=st(i(o[S],m));for(let T of v)for(let O of L)se(T.a,T.b,O.a,O.b,K)&&b++}}return b},"strictCrossingCount"),a=c((m=new Map)=>o.reduce((b,I)=>b+Jt(i(I,m)),0),"totalBends"),f=c(m=>{let b=m.start,I=m.end,v=b?e.get(b):void 0,S=I?e.get(I):void 0,L=v?Vt(v):void 0,T=S?Vt(S):void 0;return L&&T?{src:L,dst:T}:void 0},"endpointRectsFor"),d=c((m,b,I)=>{if(I.index<=0||I.index+1>=b.length-1)return;let v=f(m);if(v){if(I.vertical){let S=I.a.x,L=Math.min(v.src.left,v.dst.left),T=Math.max(v.src.right,v.dst.right),O=S<L-K?"left":S>T+K?"right":void 0;return O?{edge:m,points:b,segmentIndex:I.index,axis:"vertical",side:O,coord:S,min:Math.min(I.a.y,I.b.y),max:Math.max(I.a.y,I.b.y)}:void 0}if(I.horizontal){let S=I.a.y,L=Math.min(v.src.top,v.dst.top),T=Math.max(v.src.bottom,v.dst.bottom),O=S<L-K?"top":S>T+K?"bottom":void 0;return O?{edge:m,points:b,segmentIndex:I.index,axis:"horizontal",side:O,coord:S,min:Math.min(I.a.x,I.b.x),max:Math.max(I.a.x,I.b.x)}:void 0}}},"externalRailForSegment"),g=c(()=>{let m=[];for(let b of o){let I=i(b);for(let v of st(I)){let S=d(b,I,v);S&&m.push(S)}}return m},"collectExternalRails"),h=c((m,b)=>m.edge!==b.edge&&m.axis===b.axis&&m.side===b.side&&Dt(m.min,m.max,b.min,b.max)>=Yt,"railsInteract"),s=c(m=>{let b=[],I=new Set;for(let v of m){if(I.has(v))continue;let S=[v],L=[];for(I.add(v);S.length>0;){let T=S.pop();L.push(T);for(let O of m)!I.has(O)&&h(T,O)&&(I.add(O),S.push(O))}L.length>1&&b.push(L)}return b},"connectedComponents"),u=c(m=>{let b=[];for(let I of m)b.some(v=>Math.abs(v-I.coord)<K)||b.push(I.coord);for(;b.length<m.length;){let I=Math.min(...b),v=Math.max(...b),S=m[0].side;b.push(S==="left"||S==="top"?I-12*(m.length-b.length):v+12*(m.length-b.length))}return b},"uniqueCoordsFor"),p=c(m=>{let b=m.map(S=>S.coord),I=u(m),v=[];if(m.length<=6){let S=Array(I.length).fill(!1),L=[],T=c(()=>{if(L.length===m.length){L.some((O,$)=>Math.abs(O-b[$])>=K)&&v.push([...L]);return}for(let[O,$]of I.entries())S[O]||(S[O]=!0,L.push($),T(),L.pop(),S[O]=!1)},"visit");return T(),v}for(let S=0;S<b.length;S++)for(let L=S+1;L<b.length;L++){let T=[...b];[T[S],T[L]]=[T[L],T[S]],v.push(T)}return v},"coordinateAssignmentsFor"),x=c((m,b)=>{let I=new Map;for(let[S,L]of m.entries()){let T=b[S],O=I.get(L.edge)??L.points.map($=>({x:$.x,y:$.y}));L.axis==="vertical"?(O[L.segmentIndex].x=T,O[L.segmentIndex+1].x=T):(O[L.segmentIndex].y=T,O[L.segmentIndex+1].y=T),I.set(L.edge,O)}let v=new Map;for(let[S,L]of I){let T=le(Mt(L));if(st(T).length!==T.length-1)return;v.set(S,T)}return v},"replacementsForAssignment"),M=c(m=>{for(let[b,I]of m){let v=[b.start,b.end].filter(S=>!!S);for(let S of st(I))if(Rt(S.a,S.b,n,v,-2)||Rt(S.a,S.b,r,[],-2))return!1}for(let b=0;b<o.length;b++){let I=o[b],v=m.has(I),S=st(i(I,m));for(let L=b+1;L<o.length;L++){let T=o[L];if(!v&&!m.has(T))continue;let O=st(i(T,m));for(let $ of S)for(let U of O)if(ie($,U,.5)>=Yt)return!1}}return!0},"candidateIsSafe");for(let m=0;m<4;m++){let b=l();if(b===0)return;let I,v=b,S=a(),L=1/0;for(let T of s(g()))for(let O of p(T)){let $=x(T,O);if(!$||!M($))continue;let U=l($);if(U>=b)continue;let A=a($),X=T.reduce((Z,it,dt)=>Z+Math.abs(O[dt]-it.coord),0);U>v||U===v&&(A>S||A===S&&X>=L)||(I=$,v=U,S=A,L=X)}if(!I)return;for(let[T,O]of I)T.points=O}}c(go,"reassignCrossingExternalRailChannels");function po(t,e){let{realNodeRects:n,labelNodeRects:r}=ue(e.values()),o=t.filter(s=>!s.isLayoutOnly),i=c((s,u,p)=>Mt(s===u?p??[]:s.points??[]),"pointsFor"),l=c(s=>st(s).reduce((u,p)=>{let x=p.a.x-p.b.x,M=p.a.y-p.b.y;return u+Math.hypot(x,M)},0),"pathLength"),a=c((s,u)=>{let p=0;for(let x=0;x<o.length;x++){let M=st(i(o[x],s,u));for(let m=x+1;m<o.length;m++){let b=st(i(o[m],s,u));for(let I of M)for(let v of b)se(I.a,I.b,v.a,v.b,K)&&p++}}return p},"strictCrossingCount"),f=c((s,u)=>{if(s.horizontal){let p=s.a.y;return(Math.abs(p-u.top)<1||Math.abs(p-u.bottom)<1)&&Dt(s.a.x,s.b.x,u.left,u.right)>=Yt}if(s.vertical){let p=s.a.x;return(Math.abs(p-u.left)<1||Math.abs(p-u.right)<1)&&Dt(s.a.y,s.b.y,u.top,u.bottom)>=Yt}return!1},"segmentRunsAlongRectBorder"),d=c(s=>{let u=[s.start,s.end].filter(x=>!!x),p=[];for(let x of u){let M=e.get(x),m=M?Vt(M):void 0;m&&p.push(m)}return p},"endpointRectsFor"),g=c((s,u)=>{if(u+3>=s.length)return[];let p=s[u],x=s[u+1],M=s[u+2],m=s[u+3],b=Tt(p,x,K)&&kt(x,M,K)&&Tt(M,m,K),I=kt(p,x,K)&&Tt(x,M,K)&&kt(M,m,K);if(!b&&!I||!(b?Math.sign(x.x-p.x)!==Math.sign(m.x-M.x):Math.sign(x.y-p.y)!==Math.sign(m.y-M.y)))return[];let v=ht(p,m,K)||pt(p,m,K)?[]:[{x:p.x,y:m.y},{x:m.x,y:p.y}],S=v.length===0?[[...s.slice(0,u+1),...s.slice(u+3)]]:v.map(T=>[...s.slice(0,u+1),T,...s.slice(u+3)]),L=new Set;return S.map(T=>le(Mt(T))).filter(T=>{if(st(T).length!==T.length-1||!T.some($=>te($,m,K)))return!1;let O=T.map($=>`${$.x.toFixed(3)},${$.y.toFixed(3)}`).join("|");return L.has(O)?!1:(L.add(O),!0)})},"shortcutCandidatesAt"),h=c((s,u,p)=>{let x=[s.start,s.end].filter(m=>!!m),M=d(s);for(let m of st(u))if(Rt(m.a,m.b,n,x,-2)||Rt(m.a,m.b,r,[],-2)||M.some(b=>f(m,b)))return!1;for(let m of o)if(m!==s){for(let b of st(u))for(let I of st(i(m)))if(ie(b,I,.5)>=Yt)return!1}return a(s,u)<=p},"candidateIsSafe");for(let s=0;s<8;s++){let u=a(),p,x,M=u,m=1/0,b=1/0;for(let I of o){let v=i(I),S=Jt(v,K),L=l(v);for(let T=0;T<=v.length-4;T++)for(let O of g(v,T)){let $=Jt(O,K),U=l(O);if(!($<S||$===S&&U<L-K)||!h(I,O,u))continue;let A=a(I,O);A>M||A===M&&($>m||$===m&&U>=b)||(p=I,x=O,M=A,m=$,b=U)}}if(!p||!x)return;p.points=x}}c(po,"shortcutRedundantOrthogonalJogs");function mo(t,e){let n=[];for(let R of e.values()){if(R.isGroup||R.isEdgeLabel)continue;let N=R.x??0,F=R.y??0,_=Vt(R);_&&n.push({id:String(R.id??""),cx:N,cy:F,rect:_})}if(n.length===0)return;let r=new Map(n.map(R=>[R.id,R])),o=n.map(R=>({id:R.id,rect:R.rect})),i=["top","bottom","left","right"],l={top:Math.min(...n.map(R=>R.rect.top))-20,bottom:Math.max(...n.map(R=>R.rect.bottom))+20,left:Math.min(...n.map(R=>R.rect.left))-20,right:Math.max(...n.map(R=>R.rect.right))+20},a=t.filter(R=>!R.isLayoutOnly),f=new Map(a.map((R,N)=>[R,N])),d=c(R=>{let N=R==="left"||R==="top"?-1:1,F=[];for(let _=0;_<=2;_++)F.push(l[R]+N*20*_);return F},"outwardTracksForSide"),g=c((R,N=new Map)=>Mt(N.get(R)??R.points??[]),"replacementPointsFor"),h=c((R,N)=>{let F=0;for(let _ of R)for(let j of N)se(_.a,_.b,j.a,j.b,K)&&F++;return F},"crossingCountBetweenSegments"),s=c((R,N)=>h(st(R),st(N)),"crossingCountBetweenPaths"),u=c((R=new Map)=>{let N=0,F=[],_=new Set,j=[],D=c(H=>{_.has(H)||(_.add(H),j.push(H))},"addEdge");for(let H=0;H<a.length;H++){let J=a[H],nt=g(J,R);for(let It=H+1;It<a.length;It++){let y=a[It],w=s(nt,g(y,R));w>0&&(N+=w,F.push({first:J,second:y,count:w}),D(J),D(y))}}return j.sort((H,J)=>(f.get(H)??0)-(f.get(J)??0)),{count:N,pairs:F,edgeSet:_,edges:j}},"crossingSnapshot"),p=c((R,N)=>{let F=new Set(N.keys());if(F.size===0)return R.count;let _=0;for(let D of R.pairs)(F.has(D.first)||F.has(D.second))&&(_+=D.count);let j=0;for(let D=0;D<a.length;D++){let H=a[D],J=F.has(H),nt=g(H,N);for(let It=D+1;It<a.length;It++){let y=a[It];!J&&!F.has(y)||(j+=s(nt,g(y,N)))}}return R.count-_+j},"crossingCountWithReplacements"),x=c(R=>{let N=new Map;for(let j of R.pairs){let D=N.get(j.first)??new Set;D.add(j.second),N.set(j.first,D);let H=N.get(j.second)??new Set;H.add(j.first),N.set(j.second,H)}let F=[],_=new Set;for(let j of R.edges){if(_.has(j))continue;let D=[j],H=[];for(_.add(j);D.length>0;){let J=D.pop();H.push(J);for(let nt of N.get(J)??[])_.has(nt)||(_.add(nt),D.push(nt))}H.sort((J,nt)=>(f.get(J)??0)-(f.get(nt)??0)),H.length>1&&F.push(H)}return F},"crossingComponents"),M=c(R=>[R.start,R.end].filter(N=>!!N),"endpointIdsFor"),m=c(R=>{let N=[];for(let F of x(R)){let _=new Set(F),j=new Set(F.flatMap(H=>M(H))),D=[...F];for(let H of a)_.has(H)||M(H).some(J=>j.has(J))&&D.push(H);D.sort((H,J)=>(f.get(H)??0)-(f.get(J)??0)),N.push(D)}return N},"pairSearchGroups"),b=c((R,N,F)=>p(R,new Map([[N,F]])),"crossingCountWithSingleReplacement"),I=c(R=>{let N=new Map;for(let F of R.pairs)N.set(F.first,(N.get(F.first)??0)+F.count),N.set(F.second,(N.get(F.second)??0)+F.count);return N},"currentCrossingsByEdge"),v=c(R=>R.slice(1).reduce((N,F,_)=>{let j=R[_];return N+Math.abs(F.x-j.x)+Math.abs(F.y-j.y)},0),"pathLength"),S=c((R=new Map)=>a.reduce((N,F)=>N+Jt(g(F,R)),0),"totalBends"),L=c((R=new Map)=>a.reduce((N,F)=>N+v(g(F,R)),0),"totalLength"),T=c((R,N,F=new Map)=>{let _=st(N);for(let j of a)if(j!==R){for(let D of _)for(let H of st(g(j,F)))if(ie(D,H,.5)>=Yt)return!0}return!1},"pathHasSegmentConflict"),O=c((R,N)=>{let F=[R.start,R.end].filter(_=>!!_);for(let _ of st(N))if(Rt(_.a,_.b,o,F,-2))return!0;return!1},"pathHitsNode"),$=c((R,N)=>{let F=le(Mt(N));st(F).length===F.length-1&&R.push(F)},"pushOrthogonalCandidate"),U=c(R=>R==="left"||R==="right","sideIsHorizontal"),A=c((R,N,F)=>{switch(N){case"left":return Math.min(R.x,F.x)-20;case"right":return Math.max(R.x,F.x)+20;case"top":return Math.min(R.y,F.y)-20;case"bottom":return Math.max(R.y,F.y)+20}},"localTrackForSameSide"),X=c((R,N,F,_)=>{let j=F==="left"||F==="top"?-1:1,D=[A(N,F,_),l[F]];for(let H of D)for(let J=0;J<=2;J++)$(R,Ln(N,F,_,H+j*20*J))},"addSameSideCandidates"),Z=c((R,N,F,_,j)=>{for(let D of d(F))for(let H of d(j))$(R,[N,{x:D,y:N.y},{x:D,y:H},{x:_.x,y:H},_])},"addHorizontalToVerticalCandidates"),it=c((R,N,F,_,j)=>{for(let D of d(F))for(let H of d(j))$(R,[N,{x:N.x,y:D},{x:H,y:D},{x:H,y:_.y},_])},"addVerticalToHorizontalCandidates"),dt=c((R,N,F,_,j)=>{let D=[...d("top"),...d("bottom")];for(let H of d(F))for(let J of d(j))for(let nt of D)$(R,[N,{x:H,y:N.y},{x:H,y:nt},{x:J,y:nt},{x:J,y:_.y},_])},"addHorizontalPairCandidates"),ut=c((R,N,F,_,j)=>{let D=[...d("left"),...d("right")];for(let H of d(F))for(let J of d(j))for(let nt of D)$(R,[N,{x:N.x,y:H},{x:nt,y:H},{x:nt,y:J},{x:_.x,y:J},_])},"addVerticalPairCandidates"),ct=c(R=>{let N=new Set;return R.map(F=>Mt(F)).filter(F=>{let _=F.map(j=>`${j.x.toFixed(3)},${j.y.toFixed(3)}`).join("|");return N.has(_)||F.length<2?!1:(N.add(_),!0)})},"dedupeCandidatePaths"),W=c((R,N,F,_)=>{let j=[],D=vn(R,N,F,_,20,K);D&&$(j,D),N===_&&X(j,R,N,F);let H=U(N),J=U(_);return H&&!J?Z(j,R,N,F,_):!H&&J?it(j,R,N,F,_):H?dt(j,R,N,F,_):ut(j,R,N,F,_),ct(j)},"buildCandidatesForSides"),Q=c((R,N,F,_)=>{let j=[...d("left"),...d("right")],D=[...d("top"),...d("bottom")];for(let H of i){let J=be(_,H),nt=H==="top"||H==="bottom"?d(H):D;for(let It of j){$(R,[N,F,{x:It,y:F.y},{x:It,y:J.y},J]);for(let y of nt)$(R,[N,F,{x:It,y:F.y},{x:It,y},{x:J.x,y},J])}}},"addVerticalDepartureOuterTrackCandidates"),et=c((R,N,F,_)=>{let j=[...d("left"),...d("right")],D=[...d("top"),...d("bottom")];for(let H of i){let J=be(_,H),nt=H==="left"||H==="right"?d(H):j;for(let It of D){$(R,[N,F,{x:F.x,y:It},{x:J.x,y:It},J]);for(let y of nt)$(R,[N,F,{x:F.x,y:It},{x:y,y:It},{x:y,y:J.y},J])}}},"addHorizontalDepartureOuterTrackCandidates"),lt=c(R=>{let N=R.start,F=R.end,_=F?r.get(F):void 0;if(!N||!_)return[];let j=Mt(R.points??[]);if(j.length<4)return[];let D=j[0],H=j[1],J=[];return kt(D,H,K)?Q(J,D,H,_):Tt(D,H,K)&&et(J,D,H,_),J},"terminalPreservingOuterTrackCandidates"),mt=c(R=>{let N=R.start,F=R.end,_=N?r.get(N):void 0,j=F?r.get(F):void 0;if(!_||!j)return[];let D=[];for(let H of i){let J=be(_,H);for(let nt of i)D.push(...W(J,H,be(j,nt),nt))}return D.push(...lt(R)),D},"candidatePathsFor"),vt=c(()=>new Map(a.map(R=>[R,st(g(R))])),"currentSegmentsByEdge"),Ct=c((R,N,F)=>{let _=new Set;for(let j of a){if(j===R)continue;let D=F.get(j)??st(g(j));N.some(H=>D.some(J=>ie(H,J,.5)>=Yt))&&_.add(j)}return _},"sharedTrackConflictsFor"),Kt=c((R,N,F,_)=>{let j=new Set;return mt(R).map(D=>le(Mt(D))).filter(D=>{if(O(R,D))return!1;let H=D.map(J=>`${J.x.toFixed(3)},${J.y.toFixed(3)}`).join("|");return j.has(H)||D.length<2?!1:(j.add(H),!0)}).map(D=>{let H=st(D),J=0;for(let nt of a)nt!==R&&(J+=h(H,F.get(nt)??st(g(nt))));return{candidate:D,candidateSegments:H,crossings:N.count-(_.get(R)??0)+J,bends:Jt(D,K),totalBends:Jt(D),length:v(D)}}).filter(({crossings:D})=>D<=N.count).sort((D,H)=>D.crossings-H.crossings||D.bends-H.bends||D.length-H.length).slice(0,48).map(D=>({path:D.candidate,segments:D.candidateSegments,sharedTrackConflicts:Ct(R,D.candidateSegments,F),totalBends:D.totalBends,length:D.length}))},"pairCandidatesFor"),Ht=c((R,N,F,_,j,D)=>{let H=0;for(let nt of R.pairs)(nt.first===N||nt.second===N||nt.first===_||nt.second===_)&&(H+=nt.count);let J=h(F.segments,j.segments);for(let nt of a){if(nt===N||nt===_)continue;let It=D.get(nt)??st(g(nt));J+=h(F.segments,It)+h(j.segments,It)}return R.count-H+J},"pairCrossingCount"),ne=c((R,N)=>{for(let F of R.sharedTrackConflicts)if(F!==N)return!1;return!0},"conflictsOnlyWith"),Se=c((R,N)=>R.segments.some(F=>N.segments.some(_=>ie(F,_,.5)>=Yt)),"candidatesShareTrack"),Oe=c((R,N,F,_)=>ne(N,F.edge)&&ne(_,R.edge)&&!Se(N,_),"pairCandidatesAreCompatible"),ln=c((R,N,F,_,j)=>{let D=Ht(R.current,N.edge,F,_.edge,j,R.baseSegments);if(!(D>=R.current.count))return{replacements:new Map([[N.edge,F.path],[_.edge,j.path]]),crossings:D,bends:R.currentBends-(R.baseBendsByEdge.get(N.edge)??0)-(R.baseBendsByEdge.get(_.edge)??0)+F.totalBends+j.totalBends,length:R.currentLength-(R.baseLengthByEdge.get(N.edge)??0)-(R.baseLengthByEdge.get(_.edge)??0)+F.length+j.length}},"scorePairReplacement"),an=c((R,N)=>R.crossings<N.crossings||R.crossings===N.crossings&&(R.bends<N.bends||R.bends===N.bends&&R.length<N.length),"pairScoreIsBetter"),Re=c((R,N,F,_)=>{let j=_;for(let D of N.candidates)for(let H of F.candidates){if(!Oe(N,D,F,H))continue;let J=ln(R,N,D,F,H);J&&an(J,j)&&(j=J)}return j},"bestScoreForOptionPair"),Ae=c(R=>{let N=S(),F=L(),_=vt(),j=I(R),D=new Map(a.map(w=>[w,Jt(g(w))])),H=new Map(a.map(w=>[w,v(g(w))])),J=new Map,nt=m(R);for(let w of nt)for(let k of w){if(J.has(k))continue;let C=Kt(k,R,_,j);C.length>0&&J.set(k,{edge:k,candidates:C})}let It={replacements:new Map,crossings:R.count,bends:N,length:F},y={current:R,currentBends:N,currentLength:F,baseBendsByEdge:D,baseLengthByEdge:H,baseSegments:_};for(let w of nt){let k=new Set(w.filter(E=>R.edgeSet.has(E))),C=w.map(E=>J.get(E)).filter(E=>!!E);for(let E=0;E<C.length;E++){let B=C[E];for(let V=E+1;V<C.length;V++){let rt=C[V];!k.has(B.edge)&&!k.has(rt.edge)||(It=Re(y,B,rt,It))}}}return It.replacements.size>0?It.replacements:void 0},"bestPairedReplacement");for(let R=0;R<4;R++){let N=u(),F=N.count;if(F===0)return;let _,j,D=F,H=1/0;for(let nt of N.edges){let It=Jt(g(nt),K);for(let y of mt(nt)){let w=O(nt,y),k=!w&&T(nt,y),C=b(N,nt,y),E=Jt(y,K);w||k||(C<F||C===F&&E<It)&&(C>D||C===D&&E>=H||(_=nt,j=y,D=C,H=E))}}if(_&&j){_.points=j;continue}let J=Ae(N);if(!J)return;for(let[nt,It]of J)nt.points=It}}c(mo,"resolveRenderedOrthogonalCrossings");var he=.001,Si=8;function xo(t,e){let{nodeInfoById:n,realNodeRects:r}=De(e),o=["top","bottom","left","right"],i={top:Math.min(...r.map(u=>u.rect.top))-20,bottom:Math.max(...r.map(u=>u.rect.bottom))+20,left:Math.min(...r.map(u=>u.rect.left))-20,right:Math.max(...r.map(u=>u.rect.right))+20},l=c((u,p,x,M)=>{let m=[],b=vn(u,p,x,M,20,he);return b&&m.push(b),p===M&&m.push(Ln(u,p,x,i[p])),m},"buildOrthogonalPathCandidates"),a=c((u,p)=>{for(let x=0;x<u.length-1;x++){let M=u[x],m=u[x+1];if(Rt(M,m,r,p,1))return!0}return!1},"pathHitsNode"),f=c((u,p,x=!1)=>{let M=0,m=Le(u,he),b=p.start,I=p.end;for(let v of t){if(v===p||v.isLayoutOnly)continue;let S=v.start,L=v.end;if(!x&&b&&I&&(S===b||S===I||L===b||L===I))continue;let T=v.points;if(!(!T||T.length<2))for(let O of m)for(let $ of Le(T,he)){if(Tn(O.a,O.b,$.a,$.b,he,he)){M++;continue}ie(O,$,he)>=Si&&M++}}return M},"pathConflictCount"),d=c((u,p)=>{let x=Math.abs(u.y-p.rect.top),M=Math.abs(u.y-p.rect.bottom),m=Math.abs(u.x-p.rect.left),b=Math.abs(u.x-p.rect.right),I="top",v=x;return M<v&&(I="bottom",v=M),m<v&&(I="left",v=m),b<v&&(I="right",v=b),I},"nearestSideOfRect"),g=new Map,h=c((u,p,x)=>{let M=g.get(u)??[];M.push({side:p,edgeId:x}),g.set(u,M)},"addFaceClaim");for(let u of t){if(u.isLayoutOnly)continue;let p=u.points??[];if(p.length<1)continue;let x=u.id??"",M=u.start,m=u.end;if(M){let b=n.get(M);b&&h(M,d(p[0],b),x)}if(m){let b=n.get(m);b&&h(m,d(p[p.length-1],b),x)}}let s=c((u,p,x)=>{var M;return((M=g.get(u))==null?void 0:M.some(m=>m.edgeId!==x&&m.side===p))??!1},"faceIsClaimed");for(let u of t){if(u.isLayoutOnly)continue;let p=u.points;if(!p||p.length<2)continue;let x=Jt(p,he);if(x<4)continue;let M=u.start,m=u.end;if(!M||!m)continue;let b=n.get(M),I=n.get(m);if(!b||!I)continue;let v=u.id??"",S=f(p,u,!0),L=f(p,u),T,O=S,$=x;for(let U of o){if(s(M,U,v))continue;let A=be(b,U);for(let X of o){if(s(m,X,v))continue;let Z=be(I,X);for(let it of l(A,U,Z,X)){if(a(it,[M,m]))continue;let dt=Jt(it,he);if(S>0){let ut=f(it,u,!0);if(ut>O||ut===O&&dt>=$)continue;O=ut,$=dt,T=it;continue}f(it,u)>L||dt<$&&($=dt,T=it)}}}if(T){u.points=T;let U=g.get(M);U&&g.set(M,U.filter(X=>X.edgeId!==v));let A=g.get(m);A&&g.set(m,A.filter(X=>X.edgeId!==v)),h(M,d(T[0],b),v),h(m,d(T[T.length-1],I),v)}}}c(xo,"simplifyDetouredEdges");var Wt=.001,yo=10,Ke=7;function Un(t,e){let n=e?0:t.length-1,r=e?1:-1,o=t[n],i=t[n+r];if(!o||!i)return;let l=i.x-o.x,a=i.y-o.y;if(!(Math.abs(l)+Math.abs(a)<Wt)){if(Math.abs(a)<=Wt){let f=o.x+Math.sign(l)*yo;return{left:Math.min(o.x,f),right:Math.max(o.x,f),top:o.y-Ke,bottom:o.y+Ke}}if(Math.abs(l)<=Wt){let f=o.y+Math.sign(a)*yo;return{left:o.x-Ke,right:o.x+Ke,top:Math.min(o.y,f),bottom:Math.max(o.y,f)}}return{left:Math.min(o.x,i.x),right:Math.max(o.x,i.x),top:Math.min(o.y,i.y),bottom:Math.max(o.y,i.y)}}}c(Un,"markerClearanceRectFor");function bo(t){return{left:Math.min(t.left,t.right),right:Math.max(t.left,t.right),top:Math.min(t.top,t.bottom),bottom:Math.max(t.top,t.bottom)}}c(bo,"normalizeRect");function qn(t,e){let n=Mt(e);return[Un(n,!0),Un(n,!1)].some(r=>r&&Ge(t,bo(r)))}c(qn,"labelOverlapsOwnMarker");function Ze(t,e){let n=[];for(let h of t){if(h.isLayoutOnly)continue;let s=h.points;if(!(!s||s.length<2))for(let u=0;u<s.length-1;u++)n.push({edgeId:h.id,p1:s[u],p2:s[u+1]})}let r=[],o=[];for(let h of e.values()){let s=h.isGroup,u=h.parentId;if(s&&!u){let x=Vt(h);x&&o.push({id:h.id,rect:x});continue}if(s||h.isEdgeLabel)continue;let p=Vt(h);p&&r.push({nodeId:h.id,rect:p})}let i=c((h,s)=>{let u=wn(s,3);for(let{nodeId:p,rect:x}of r)if(p!==h&&Ge(u,x))return!0;return!1},"labelOverlapsForeignNode"),l=c((h,s)=>{let u=wn(s,3);for(let p of n)if(p.edgeId!==h&&ze(p.p1,p.p2,u))return!0;return!1},"labelOverlapsForeignEdge"),a=c((h,s,u)=>i(h,u)||l(s,u),"labelOverlapsAnything"),f=[],d=c(h=>{for(let{id:s,rect:u}of o)if(Hr(u,h))return s},"findContainingLane"),g=c((h,s)=>f.some(u=>u.labelId!==h&&Ge(s,u.rect)),"overlapsPlacedLabel");for(let h of t){if(h.isLayoutOnly)continue;let s=h.labelNodeId;if(!s)continue;let u=e.get(s);if(!u)continue;let p=h.points;if(!p||p.length<2)continue;let x=u.width??0,M=u.height??0;if(x<=0||M<=0)continue;let m=[];for(let W=0;W<p.length-1;W++){let Q=p[W],et=p[W+1],lt=Math.abs(Q.x-et.x),mt=Math.abs(Q.y-et.y);lt<Wt&&mt<Wt||lt>=Wt&&mt>=Wt||m.push({idx:W,length:lt+mt,orientation:lt>=Wt?"horizontal":"vertical",midX:(Q.x+et.x)/2,midY:(Q.y+et.y)/2})}if(m.length===0)continue;let b=m.length>=3?m.filter(W=>W.idx>0&&W.idx<m.length-1):m,I=b.length>0?b:m,v=x>=M?"horizontal":"vertical",S=c(W=>[...W].sort((Q,et)=>{let lt=Q.orientation===v;if(lt!==(et.orientation===v))return lt?-1:1;let mt=Q.length>=(Q.orientation==="horizontal"?x:M)+2;return mt===et.length>=(et.orientation==="horizontal"?x:M)+2?et.length-Q.length:mt?-1:1}),"rankSegments"),L=m[0],T=m[m.length-1],O=[.5,.25,.75,.05,.95,.15,.85,.1,.9],$=c((W,Q)=>{let et=p[W.idx],lt=p[W.idx+1];return{midX:et.x+(lt.x-et.x)*Q,midY:et.y+(lt.y-et.y)*Q}},"anchorAtT"),U=c((W,Q,et)=>Math.min(et,Math.max(Q,W)),"clamp"),A=c((W,Q)=>W.midX>=Q.left-Wt&&W.midX<=Q.right+Wt&&W.midY>=Q.top-Wt&&W.midY<=Q.bottom+Wt,"pointInsideRectInclusive"),X=c(W=>{let Q=Ce(W.midX,W.midY,x,M),et=d(Q);if(et)return{laneId:et,anchor:W,rect:Q};let lt=o.find(({rect:Se})=>A(W,Se));if(!lt)return;let mt=lt.rect.left+x/2+1,vt=lt.rect.right-x/2-1,Ct=lt.rect.top+M/2+1,Kt=lt.rect.bottom-M/2-1;if(mt>vt||Ct>Kt)return;let Ht={midX:U(W.midX,mt,vt),midY:U(W.midY,Ct,Kt)},ne=Ce(Ht.midX,Ht.midY,x,M);return A(W,ne)?{laneId:lt.id,anchor:Ht,rect:ne}:void 0},"placementForAnchor"),Z=c((W,Q,et)=>W.orientation==="horizontal"?Math.abs(Q.midX-et.x):Math.abs(Q.midY-et.y),"distanceAlongSegment"),it=c((W,Q)=>{let et=(W.orientation==="horizontal"?x/2:M/2)+12;if(W===L){let lt=p[W.idx];if(Z(W,Q,lt)+Wt<et)return!1}if(W===T){let lt=p[W.idx+1];if(Z(W,Q,lt)+Wt<et)return!1}return!0},"labelClearsTerminalEndpoints"),dt=c(W=>{let Q=S(W);for(let et of Q)for(let lt of O){let mt=$(et,lt);if(!it(et,mt))continue;let vt=X(mt);if(vt&&!qn(vt.rect,p)&&!g(s,vt.rect)&&!a(s,h.id,vt.rect))return{laneId:vt.laneId,anchor:vt.anchor}}},"tryPool"),ut=c((W,Q,et=!1)=>{let lt=S(W);for(let mt of lt){let vt={midX:mt.midX,midY:mt.midY};if(Q&&!it(mt,vt))continue;let Ct=X(vt);if(Ct&&!qn(Ct.rect,p)&&!g(s,Ct.rect)&&!i(s,Ct.rect)&&(et||!l(h.id,Ct.rect)))return{laneId:Ct.laneId,anchor:Ct.anchor}}},"findLaneContainingFallback"),ct=dt(I)??(I.length<m.length?dt(m):void 0)??ut(m,!0)??ut(m,!1)??ut(m,!1,!0);if(ct){u.x=ct.anchor.midX,u.y=ct.anchor.midY,u.parentId=ct.laneId;let W=Ce(ct.anchor.midX,ct.anchor.midY,x,M),Q=f.findIndex(et=>et.labelId===s);Q>=0?f[Q]={labelId:s,rect:W}:f.push({labelId:s,rect:W})}}}c(Ze,"anchorLabelsToPolyline");var Jn=1e-6,Mo=8/2,wi=3;function Kn(t,e){return t<e?`${t}::${e}`:`${e}::${t}`}c(Kn,"pairKey");function Io(t,e){let{nodeInfoById:n,realNodeRects:r}=De(e),o=new Map;for(let l of e){let a=l.id;if(!l.isGroup&&l.isEdgeLabel){o.set(a,{w:l.width??0,h:l.height??0});continue}}let i=c((l,a,f,d)=>{let g=Kn(a,f),h=0,s=c(u=>{if(!u)return;let p=o.get(u);if(!p)return;let x=d==="x"?p.w/2:p.h/2;x>h&&(h=x)},"consider");s(l.labelNodeId);for(let u of t){if(u===l||u.isLayoutOnly)continue;let p=u.start,x=u.end;!p||!x||Kn(p,x)===g&&s(u.labelNodeId)}return h>0?h+wi:0},"labelClearanceFor");for(let l of t){if(l.isLayoutOnly)continue;let a=l.points;if(!In(a,Jn))continue;let f=Cn(l,n,Jn);if(!f)continue;let{srcId:d,dstId:g,srcInfo:h,dstInfo:s,collinearX:u,collinearY:p}=f;if(u===p)continue;let x,M;if(u){let v=s.cy>h.cy;x={x:h.cx,y:v?h.rect.bottom:h.rect.top},M={x:s.cx,y:v?s.rect.top:s.rect.bottom}}else{let v=s.cx>h.cx;x={x:v?h.rect.right:h.rect.left,y:h.cy},M={x:v?s.rect.left:s.rect.right,y:s.cy}}if(Rt(x,M,r,[d,g],1))continue;let m=i(l,d,g,u?"x":"y"),b=m>Mo?m:Mo,I=[0,b,-b];for(let v of I){let S={...x},L={...M};if(u){if(S.x+=v,L.x+=v,S.x<=h.rect.left||S.x>=h.rect.right||L.x<=s.rect.left||L.x>=s.rect.right)continue}else if(S.y+=v,L.y+=v,S.y<=h.rect.top||S.y>=h.rect.bottom||L.y<=s.rect.top||L.y>=s.rect.bottom)continue;if(!Rt(S,L,r,[d,g],1)&&!He(S,L,t,l,{epsilon:Jn})){l.points=[S,L];break}}}}c(Io,"straightenCollinearSiblingDetours");function Zn(t,e){let n=.001,{realNodeRects:r,labelNodeRects:o}=ue(e.values()),i=c((M,m)=>Le(m,n).map(b=>({...b,edge:M,interior:b.index>=1&&b.index<=m.length-3})),"segmentsFor"),l=c(()=>{let M=[];for(let m of t){if(m.isLayoutOnly)continue;let b=m.points;!b||b.length<2||M.push(...i(m,Mt(b)))}return M},"allSegments"),a=c((M,m)=>M.horizontal&&m.horizontal?Dt(M.a.x,M.b.x,m.a.x,m.b.x)>=8&&Math.abs(M.a.y-m.a.y)<7:M.vertical&&m.vertical?Dt(M.a.y,M.b.y,m.a.y,m.b.y)>=8&&Math.abs(M.a.x-m.a.x)<7:!1,"hasCrowdedParallelTrack"),f=c((M,m)=>{let b=M.start,I=M.end,v=i(M,m);if(v.length!==m.length-1)return!1;let S=[b,I].filter(T=>!!T),L=M.labelNodeId?[M.labelNodeId]:[];for(let T of v)if(Rt(T.a,T.b,r,S,-2)||Rt(T.a,T.b,o,L,-2))return!1;for(let T of t){if(T===M||T.isLayoutOnly)continue;let O=T.points;if(!(!O||O.length<2)){for(let $ of v)for(let U of i(T,Mt(O)))if(a($,U)||se($.a,$.b,U.a,U.b,n))return!1}}return!0},"candidateIsSafe"),d=c((M,m)=>{let b=Mt(M.edge.points??[]);if(b.length<4||M.index>=b.length-1)return;let I=b.map(v=>({...v}));if(M.horizontal)I[M.index].y+=m,I[M.index+1].y+=m;else if(M.vertical)I[M.index].x+=m,I[M.index+1].x+=m;else return;return i(M.edge,I).length===I.length-1?I:void 0},"shiftedCandidate"),g=c((M,m)=>({x:M.x??(m.left+m.right)/2,y:M.y??(m.top+m.bottom)/2}),"nodeCenter"),h=c(M=>{let m=M.edge,b=Mt(m.points??[]);if(b.length!==4||M.index!==1)return;let I=m.start?e.get(m.start):void 0,v=m.end?e.get(m.end):void 0,S=I?Vt(I):void 0,L=v?Vt(v):void 0,T=b.slice(M.index+2);if(!(!I||!v||!S||!L||T.length===0))return{sourceCenter:g(I,S),targetCenter:g(v,L),sourceRect:S,tail:T}},"sourceDetourContextFor"),s=c((M,m,b,I,v,S)=>{let L=I.y>=b.y,T=L?v.bottom:v.top,O=T+(L?20:-20);if(L&&M.b.y<=O+n||!L&&M.b.y>=O-n)return;let $=M.a.x+m;return Mt([{x:b.x,y:T},{x:b.x,y:O},{x:$,y:O},{x:$,y:M.b.y},...S],n)},"verticalSourceDetour"),u=c((M,m,b,I,v,S)=>{let L=I.x>=b.x,T=L?v.right:v.left,O=T+(L?20:-20);if(L&&M.b.x<=O+n||!L&&M.b.x>=O-n)return;let $=M.a.y+m;return Mt([{x:T,y:b.y},{x:O,y:b.y},{x:O,y:$},{x:M.b.x,y:$},...S],n)},"horizontalSourceDetour"),p=c((M,m)=>{let b=h(M);if(b){if(M.vertical)return s(M,m,b.sourceCenter,b.targetCenter,b.sourceRect,b.tail);if(M.horizontal)return u(M,m,b.sourceCenter,b.targetCenter,b.sourceRect,b.tail)}},"sourceDetourCandidate"),x=[-7,7,-14,14,-21,21];for(let M=0;M<12;M++){let m=l(),b=!1;for(let I=0;I<m.length&&!b;I++)for(let v=I+1;v<m.length&&!b;v++){let S=m[I],L=m[v];if(S.edge===L.edge||!a(S,L))continue;let T=[S,L].filter(O=>O.interior);for(let O of T){for(let $ of x){let U=d(O,$);if(U&&f(O.edge,U)){O.edge.points=U,b=!0;break}let A=p(O,$);if(A&&f(O.edge,A)){O.edge.points=A,b=!0;break}}if(b)break}}if(!b)return}}c(Zn,"nudgeSharedInteriorSubpaths");function So(t,e,n,r){let o=e.x-t.x,i=e.y-t.y,l=r.x-n.x,a=r.y-n.y,f=o*a-i*l;if(Math.abs(f)<1e-10)return!1;let d=n.x-t.x,g=n.y-t.y,h=(d*a-g*l)/f,s=(d*i-g*o)/f,u=.01;return h>u&&h<1-u&&s>u&&s<1-u}c(So,"segmentsIntersect");function wo(t){let e=t.nodes??[],n=t.edges??[],r=[];if(!n.length||!e.length)return r;let o=jr(e),i=[];for(let a of n){if(a.isLayoutOnly)continue;let f=a.points;if(!f||f.length<2)continue;let d=a.start,g=a.end,h=a.labelNodeId,s=a.id??`${d}->${g}`;for(let u of o)if(!(u.nodeId===d||u.nodeId===g)&&!(h&&u.nodeId===h)){for(let p=0;p<f.length-1;p++)if(ze(f[p],f[p+1],u,-1)){r.push({type:"edge-node-overlap",edgeId:s,targetId:u.nodeId,detail:`segment ${p} passes through node "${u.nodeId}"`});break}}for(let u=0;u<f.length-1;u++)i.push({edgeId:s,start:d,end:g,p1:f[u],p2:f[u+1]})}let l=new Set;for(let a=0;a<i.length;a++)for(let f=a+1;f<i.length;f++){let d=i[a],g=i[f];if(d.edgeId!==g.edgeId&&!(d.start===g.start||d.start===g.end||d.end===g.start||d.end===g.end)&&So(d.p1,d.p2,g.p1,g.p2)){let h=d.edgeId<g.edgeId?`${d.edgeId}|${g.edgeId}`:`${g.edgeId}|${d.edgeId}`;l.has(h)||(l.add(h),r.push({type:"edge-edge-crossing",edgeId:d.edgeId,targetId:g.edgeId,detail:`edges "${d.edgeId}" and "${g.edgeId}" cross`}))}}if(r.length>0){let a=r.filter(d=>d.type==="edge-node-overlap").length,f=r.filter(d=>d.type==="edge-edge-crossing").length;cn.warn(`[SWIMLANE_VALIDATE] ${r.length} issue(s) detected: ${a} edge-node overlap(s), ${f} edge crossing(s)`);for(let d of r)cn.warn(`[SWIMLANE_VALIDATE] ${d.type}: ${d.detail}`)}return r}c(wo,"validateSwimlanesLayout");function vo(t,e){let n=t.nodes??[],r=t.edges??[],o=n.filter(a=>!a.isGroup);if((e==="LR"||e==="RL")&&o.length>0&&!ao(t,e)||e==="BT"&&o.length>0&&!lo(t))return;for(let a of r){if(a.isLayoutOnly)continue;let f=a.points;!f||f.length<2||(a.points=le(je(f)))}xo(r,n),Io(r,n),so(r,n);let i=new Map;for(let a of n)i.set(String(a.id),a);Ze(r,i),Kr(r,i),fo(r,i),Zn(r,i),uo(r,i),ho(r,i),jn(r,i),co(r,i);let l=c(()=>{mo(r,i),go(r,i),po(r,i),Ze(r,i),_n(r,i),jn(r,i),Ze(r,i),_n(r,i)},"finalizeRenderedEdges");l(),Zn(r,i),l(),Vn(r,i),Wn(r,i),Vn(r,i),Wn(r,i)}c(vo,"postProcessSwimlaneLayout");function ce(t){let e=new Map(t.nodeById),n=new Set,r=[];for(let o of t.edges){if(!e.has(o.src)||!e.has(o.dst))continue;let i=`${o.id}:${o.src}->${o.dst}`;n.has(i)||(n.add(i),r.push(o))}return{nodes:[...e.keys()],edges:r,layout:t.layout,nodeById:e}}c(ce,"normalizeGraph");function Qn(t,e){return t.edges.filter(n=>n.dst===e)}c(Qn,"incoming");function Lo(t){let e=new Map;for(let n of t.nodes)e.set(n,[]);for(let n of t.edges)e.get(n.src).push(n.dst);return e}c(Lo,"buildSuccessorMap");function tr(t){let e=Lo(t);for(let n of e.values())n.sort((r,o)=>r.localeCompare(o));return e}c(tr,"buildSortedSuccessorMap");function er(t){let e=new Map;for(let n of t.nodes)e.set(n,0);for(let n of t.edges)e.set(n.dst,(e.get(n.dst)??0)+1);return e}c(er,"buildInDegreeMap");function nr(t){return[...t.entries()].filter(([,e])=>e===0).map(([e])=>e).sort((e,n)=>e.localeCompare(n))}c(nr,"sortedZeroInDegreeNodes");function Qe(t,e=()=>!0){let n=new Map,r=new Map;for(let o of t.nodes)n.set(o,[]),r.set(o,[]);for(let o of t.edges)e(o)&&(r.get(o.src).push(o.dst),n.get(o.dst).push(o.src));return{preds:n,succs:r}}c(Qe,"buildPredecessorSuccessorMaps");function rr(t,e,n,r){var l,a;let o=0;for(let f of t.nodes)r!=null&&r.skipGroups&&((l=t.nodeById.get(f))!=null&&l.isGroup)||(o=Math.max(o,n[f]??0));let i=Array.from({length:o+1},()=>[]);for(let f of e)r!=null&&r.skipGroups&&((a=t.nodeById.get(f))!=null&&a.isGroup)||i[Math.max(0,n[f]??0)].push(f);return i}c(rr,"buildLayersFromRanks");function Be(t){let e=er(t),n=nr(e),r=[],o=tr(t);for(;n.length;){let i=n.shift();r.push(i);for(let l of o.get(i)??[])if(e.set(l,(e.get(l)??0)-1),(e.get(l)??0)===0){let a=0;for(;a<n.length&&n[a]<l;)a++;n.splice(a,0,l)}}return r.length===t.nodes.length?r:null}c(Be,"topoSortIfAcyclic");function Te(t){let e=new Map,n=0;for(let r of t)e.set(r,n),n++;return e}c(Te,"buildLayerIndex");function or(t){let e=Array(t.length),n=c((r,o)=>{if(o-r<=1)return 0;let i=r+o>>1,l=n(r,i)+n(i,o),a=r,f=i,d=r;for(;a<i||f<o;)f>=o||a<i&&t[a]<=t[f]?e[d++]=t[a++]:(e[d++]=t[f++],l+=i-a);for(let g=r;g<o;g++)t[g]=e[g];return l},"count");return n(0,t.length)}c(or,"countInversions");function Co(t){let e=ce(t),n=new Map;for(let d of e.nodes)n.set(d,[]);for(let d of e.edges)n.get(d.src).push(d);for(let d of n.values())d.sort((g,h)=>g.dst===h.dst?g.id.localeCompare(h.id):g.dst.localeCompare(h.dst));let r=Object.create(null);for(let d of e.nodes)r[d]=0;let o=[],i=c(d=>{r[d]=1;for(let g of n.get(d)??[]){let h=g.dst;r[h]===0?i(h):r[h]===1&&o.push(g)}r[d]=2},"dfs"),l=[...e.nodes].sort((d,g)=>d.localeCompare(g));for(let d of l)r[d]===0&&i(d);let a=new Set(o.map(d=>`${d.id}:${d.src}->${d.dst}`)),f=e.edges.map(d=>a.has(`${d.id}:${d.src}->${d.dst}`)?{id:d.id,src:d.dst,dst:d.src,weight:d.weight,ref:d.ref}:d);return{acyclic:{nodes:[...e.nodes],edges:f,layout:e.layout,nodeById:new Map(e.nodeById)},reversed:o}}c(Co,"removeCycles_DFS");function To(t){let e=new Map,n=c(r=>{if(e.has(r))return e.get(r);let o=t.nodeById.get(r);if(!o)return e.set(r,null),null;let i=o.parentId;if(!i)return e.set(r,null),null;let l=n(i)??i;return e.set(r,l),l},"resolve");for(let r of t.nodes)n(r);return e}c(To,"buildTopLaneMap");function fe(t){let e=To(t);return n=>e.get(n)??null}c(fe,"createTopLaneResolver");function tn(t){let e=[];for(let n of t.layout.nodes??[])n.isGroup&&!n.parentId&&e.push(n.id);return[...new Set(e)].reverse()}c(tn,"buildTopLaneOrder");function ir(t,e){let n=tn(t);if(!e||e.length===0)return n;let r=new Set(n),o=new Set,i=[];for(let l of e)!r.has(l)||o.has(l)||(o.add(l),i.push(l));for(let l of n)o.has(l)||i.push(l);return i}c(ir,"resolveTopLaneOrder");var vi={EPSILON:1e-6},en={GRAVITY_ITERATIONS:8,MAX_CROSSING_OPTIMIZATION_PASSES:4,DEFAULT_COMPACT_SINGLE_INPUT:!0},ko={DEFAULT_LAYER_GAP:100,DEFAULT_NODE_GAP:40};function Oo(t,e){let n=ce(t),r=(e==null?void 0:e.laneOf)??(()=>null),o=e==null?void 0:e.rankHint,{preds:i}=Qe(n);for(let S of i.values())S.sort((L,T)=>L.localeCompare(T));let l=Be(n)??[...n.nodes].sort((S,L)=>S.localeCompare(L)),a=new Map;for(let[S,L]of l.entries())a.set(L,S);let f=new Map,d=new Map;for(let S of n.nodes)d.set(S,[]);for(let S of l){let L=(i.get(S)??[]).filter(T=>f.has(T));if(L.length>0){let T=Ro(S,L,{laneOf:r,rankHint:o,topoIndex:a});f.set(S,T),d.get(T).push(S)}else f.has(S)||f.set(S,null)}for(let S of n.nodes)f.has(S)||f.set(S,null);let g=new Set;for(let S of n.nodes)(f.get(S)??null)===null&&g.add(S);let h=[...g].sort((S,L)=>{let T=a.get(S)??0,O=a.get(L)??0;return T===O?S.localeCompare(L):T-O}),s=Eo(n),u=new Map;for(let[S,L]of s.entries())u.set(S,[...L].sort((T,O)=>T.localeCompare(O)));let p=$o(u),x=No(u),M=new Map;for(let S of n.nodes)M.set(S,[]);for(let S of x)for(let L of S.nodes){let T=M.get(L);T?T.push(S.id):M.set(L,[S.id])}let m=[],b=[],I=new Set,v=c(S=>{if(!I.has(S)){I.add(S),m.push(S);for(let L of d.get(S)??[])v(L);b.push(S)}},"walk");for(let S of h)v(S);for(let S of l)v(S);return{parent:f,children:d,roots:h,componentOf:p,blocks:x,nodeBlocks:M,adjacency:u,preorder:m,postorder:b,topologicalOrder:l}}c(Oo,"buildDrivingTree");function Ro(t,e,n){let r=n.laneOf(t);return[...e].sort((o,i)=>{var u,p;let l=n.laneOf(o),a=n.laneOf(i),f=l!=null&&l===r;if(f!==(a!=null&&a===r))return f?-1:1;let d=(u=n.rankHint)==null?void 0:u[o],g=(p=n.rankHint)==null?void 0:p[i];if(d!=null&&g!=null&&d!==g)return g-d;let h=n.topoIndex.get(o)??0,s=n.topoIndex.get(i)??0;return h===s?o.localeCompare(i):h-s})[0]}c(Ro,"chooseParent");function Eo(t){let e=new Map;for(let n of t.nodes)e.set(n,new Set);for(let n of t.edges)e.get(n.src).add(n.dst),e.get(n.dst).add(n.src);return e}c(Eo,"buildAdjacency");function $o(t){let e=new Map,n=0;for(let r of t.keys()){if(e.has(r))continue;let o=[r];for(;o.length>0;){let i=o.pop();if(!e.has(i)){e.set(i,n);for(let l of t.get(i)??[])e.has(l)||o.push(l)}}n++}return e}c($o,"assignComponents");function No(t){let e=new Map,n=new Map,r=[],o=[],i=0,l=c((a,f)=>{e.set(a,++i),n.set(a,i);for(let d of t.get(a)??[])d!==f&&(e.has(d)?(e.get(d)??0)<(e.get(a)??0)&&(r.push([a,d]),n.set(a,Math.min(n.get(a)??i,e.get(d)??i))):(r.push([a,d]),l(d,a),n.set(a,Math.min(n.get(a)??i,n.get(d)??i)),(n.get(d)??0)>=(e.get(a)??0)&&o.push(Fo(a,d,r,o.length))))},"visit");for(let a of t.keys())e.has(a)||l(a,null);return o}c(No,"computeBlocks");function Fo(t,e,n,r){let o=[],i=new Set;for(;n.length>0;){let l=n.pop();if(o.push(l),i.add(l[0]),i.add(l[1]),l[0]===t&&l[1]===e||l[0]===e&&l[1]===t)break}return{id:r,edges:o,nodes:[...i]}}c(Fo,"popBlock");function Bo(t,e,n){let r=[...t.nodes],o=new Map;for(let[b,I]of r.entries())o.set(I,b);let i=r.length,l=Array(i).fill(-1),a=Array(i).fill(0),f=[],d=new Set;for(let b of r){let I=n.parent.get(b)??null,v=o.get(b);v!=null&&(I??(l[v]=-1,a[v]=0,d.has(b)||(d.add(b),f.push(b))))}for(;f.length>0;){let b=f.shift(),I=o.get(b);if(I==null)continue;let v=n.children.get(b)??[];for(let S of v){if(d.has(S))continue;let L=o.get(S);L!=null&&(l[L]=I,a[L]=a[I]+1,d.add(S),f.push(S))}}for(let b of r){if(d.has(b))continue;let I=o.get(b);I!=null&&(l[I]=-1,a[I]=0,d.add(b))}let g=Math.max(1,Math.ceil(Math.log2(Math.max(1,i)))+1),h=Array.from({length:g},()=>Array(i).fill(-1));for(let b=0;b<i;b++)h[0][b]=l[b];for(let b=1;b<g;b++)for(let I=0;I<i;I++){let v=h[b-1][I];h[b][I]=v===-1?-1:h[b-1][v]}let s=c((b,I)=>{if(b===-1||I===-1)return-1;a[b]<a[I]&&([b,I]=[I,b]);let v=a[b]-a[I];for(let S=0;S<g;S++)if(v>>S&1&&(b=h[S][b],b===-1))return-1;if(b===I)return b;for(let S=g-1;S>=0;S--){let L=h[S][b],T=h[S][I];L===-1||T===-1||L!==T&&(b=L,I=T)}return h[0][b]},"lcaIndex"),u=Array.from({length:i},()=>new Map);for(let b of t.edges){let I=b.src,v=b.dst,S=e[I],L=e[v];if(S==null||L==null||(S>L&&([I,v]=[v,I],[S,L]=[L,S]),S==null||L==null||S===L))continue;let T=o.get(I),O=o.get(v);if(T==null||O==null)continue;let $=s(T,O);if($===-1)continue;let U=u[$];for(let A=S;A<L;A++)U.set(A,(U.get(A)??0)+1)}let p=new Map,x=c((b,I)=>{if(I.size!==0)for(let[v,S]of I)b.set(v,(b.get(v)??0)+S)},"mergeInto"),M=new Set,m=c(b=>{let I=o.get(b);M.add(b);let v=I==null?void 0:u[I],S=v?new Map(v):new Map,L=n.children.get(b)??[];for(let T of L){let O=m(T),$=e[b];if($!=null){let U=p.get(b);U||(U=new Map,p.set(b,U));let A=O.get($)??0,X=e[T];X!=null&&X>$&&(A+=1),U.set(T,A)}x(S,O)}return S},"dfs");for(let b of n.roots)M.has(b)||m(b);for(let b of r)M.has(b)||m(b);return p}c(Bo,"computeSubtreeCrossCounts");function Ao(t,e,n){let r=new Map,o=c(i=>{let l=n[i]??0,a=[...e.get(i)??[]];a.sort(lr(n));for(let f of a){o(f);let d=r.get(f);d!=null&&(l=Math.min(l,d))}r.set(i,l)},"annotate");for(let i of t)o(i);return r}c(Ao,"annotateMinimumLayers");function lr(t){return(e,n)=>{let r=t[e]??0,o=t[n]??0;return r===o?e.localeCompare(n):r-o}}c(lr,"compareByRankThenId");function Po(t,e,n,r){let o=0;for(let f of e){let d=n[f]??0;d>o&&(o=d)}let i=Array.from({length:o+1},()=>[]),l=new Set,a=c(f=>{if(l.has(f))return;l.add(f);let d=n[f]??0;i[d]||(i[d]=[]),i[d].push(f);for(let g of r(f))a(g)},"emit");for(let f of t)a(f);for(let f of e)if(!l.has(f)){let d=n[f]??0;i[d]||(i[d]=[]),i[d].push(f),l.add(f)}return i}c(Po,"emitNodesInTreeOrder");function Xo(t){let e=[];for(let n of t){let r=new Set,o=[];for(let i of n)r.has(i)||(r.add(i),o.push(i));e.push(o)}return e}c(Xo,"deduplicateLayers");function Yo(t,e,n,r){return o=>{let i=t.get(o)??[];if(i.length===0)return[];let l=e[o]??0,a=[],f=[],d=n.get(o);for(let g of i){let h=r.get(g)??l;h>l?a.push({child:g,min:h}):f.push(g)}return a.sort((g,h)=>g.min===h.min?g.child.localeCompare(h.child):g.min-h.min),f.sort((g,h)=>{let s=(d==null?void 0:d.get(g))??0,u=(d==null?void 0:d.get(h))??0;if(s!==u)return s-u;let p=r.get(g)??l,x=r.get(h)??l;return p===x?g.localeCompare(h):p-x}),[...a.map(g=>g.child),...f]}}c(Yo,"createChildOrderer");function nn(t,e,n){let r=Oo(t,{rankHint:e,laneOf:n}),{children:o,roots:i}=r;for(let g of t.nodes)o.has(g)||o.set(g,[]);let l=Bo(t,e,r),a=[...i].sort(lr(e)),f=Yo(o,e,l,Ao(a,o,e)),d=Po(a,t.nodes,e,f);return d=Xo(d),d}c(nn,"buildMultitreeLayerOrder");function _o(t,e,n){let r=new Set(t),o=new Set(e),i=Te(e),l=[];for(let a of n)r.has(a.src)&&o.has(a.dst)&&l.push(i.get(a.dst));return or(l)}c(_o,"countCrossingsBetweenAdjacent");function ar(t,e,n){let r=[];for(let i of e){let l=n[i.src],a=n[i.dst];if(l==null||a==null||l===a)continue;let f=i.src,d=i.dst,g=l,h=a;l>a&&(f=i.dst,d=i.src,g=a,h=l);for(let s=g;s<h;s++)r.push({id:`${i.id}@${s}`,src:f,dst:d,ref:i.ref})}let o=0;for(let i=0;i+1<t.length;i++)o+=_o(t[i],t[i+1],r);return o}c(ar,"totalCrossings");function zo(t,e){let n={...e},{preds:r}=Qe(t),o=fe(t),i=ar(nn(t,n,o),t.edges,n),l=en.MAX_CROSSING_OPTIMIZATION_PASSES;for(let a=0;a<l;a++){let f=!1,d=[...t.nodes].sort((g,h)=>(n[h]??0)-(n[g]??0));for(let g of d){let h=n[g]??0;if(h===0)continue;let s=0;for(let x of r.get(g)??[])s=Math.max(s,(n[x]??0)+1);if(s>=h)continue;let u=h;n[g]=s;let p=ar(nn(t,n,o),t.edges,n);p<i?(i=p,f=!0):n[g]=u}if(!f)break}return n}c(zo,"optimizeRanksByCrossings");function Go(t,e){let n=fe(t),r=[...t.nodes].sort((o,i)=>(e[o]??0)-(e[i]??0)||o.localeCompare(i));for(let o of r){let i=n(o);if(!i)continue;let l=t.edges.filter(x=>x.src===o);if(l.length===0)continue;let a=!1,f=0;for(let x of l){let M=n(x.dst);M==null||M===i?a=!0:f++}if(f===0||a)continue;let d=0,g=!1;for(let x of t.edges){if(x.dst!==o)continue;let M=n(x.src);M&&(M===i?g=!0:d++)}if(d>0||!g)continue;let h=e[o]??0,s=h+f,u=0;for(let x of t.edges)x.dst===o&&(u=Math.max(u,(e[x.src]??0)+1));let p=Math.max(h,u,s);p!==h&&(e[o]=p)}}c(Go,"adjustCrossLaneSources");function Do(t,e){let n=ce(t),r=Be(n)??[...n.nodes].sort(),o=(e==null?void 0:e.compactSingleInput)??!1,i=fe(n),l=Object.create(null);for(let a of r){let f=Qn(n,a),d=e!=null&&e.ignoreCrossLaneEdges?f.filter(g=>{let h=i(g.src),s=i(a);return!h||!s?!0:h===s}):f;if(d.length===0)l[a]=0;else if(o&&d.length===1){let g=d[0].src;i(g)===i(a)?l[a]=(l[g]??0)+1:l[a]=l[g]??0}else{let g=-1/0;for(let h of d)g=Math.max(g,(l[h.src]??0)+1);l[a]=g===-1/0?0:g}}return((e==null?void 0:e.optimizeRanksByCrossings)??!1)&&(l=zo(n,l)),e!=null&&e.ignoreCrossLaneEdges&&Go(n,l),{layers:nn(n,l,i),rankOf:l,dummy:new Set}}c(Do,"assignLayers_LongestPath");function Ho(t,e){let n=ce(t),r={...Do(n,{compactSingleInput:e==null?void 0:e.compactSingleInput,ignoreCrossLaneEdges:e==null?void 0:e.ignoreCrossLaneEdges,optimizeRanksByCrossings:e==null?void 0:e.optimizeRanksByCrossings}).rankOf},o=fe(n),{preds:i,succs:l}=Qe(n,s=>{if(e!=null&&e.ignoreCrossLaneEdges){let u=o(s.src),p=o(s.dst);if(u&&p&&u!==p)return!1}return!0}),a=Be(n)??[...n.nodes],f=[...a].reverse(),d=c((s,u)=>{let p=0;for(let m of i.get(s)??[])p=Math.max(p,(r[m]??0)+1);let x=1/0,M=l.get(s)??[];return M.length>0&&(x=Math.min(...M.map(m=>(r[m]??0)-1))),Number.isFinite(x)||(x=Math.max(p,u)),Math.min(Math.max(u,p),x)},"clampFeasible"),g=en.GRAVITY_ITERATIONS,h=c(s=>{let u=!1;for(let p of s){let x=i.get(p)??[],M=l.get(p)??[];if(x.length===0&&M.length===0)continue;let m=x.length>0?x.reduce((v,S)=>v+(r[S]??0)+1,0)/x.length:r[p]??0,b=M.length>0?M.reduce((v,S)=>v+(r[S]??0)-1,0)/M.length:r[p]??0,I=d(p,Math.round((m+b)/2));I!==r[p]&&(r[p]=I,u=!0)}return u},"relaxOrder");for(let s=0;s<g;s++){let u=h(a),p=h(f);if(!u&&!p)break}for(let s of a){let u=0;for(let p of i.get(s)??[])u=Math.max(u,(r[p]??0)+1);(r[s]??0)<u&&(r[s]=u)}for(let s of f){let u=l.get(s)??[];if(u.length>0){let p=Math.min(...u.map(x=>(r[x]??0)-1));(r[s]??0)>p&&(r[s]=p)}}return{layers:rr(n,a,r),rankOf:r,dummy:new Set}}c(Ho,"assignLayers_Gravity");function jo(t){let e=er(t),n=tr(t),r=nr(e),o=[];for(;r.length>0;){let i=[];for(let l of r){o.push(l);for(let a of n.get(l)??[])e.set(a,(e.get(a)??0)-1),(e.get(a)??0)===0&&i.push(a)}r=i.sort((l,a)=>l.localeCompare(a))}return o.length===t.nodes.length?o:null}c(jo,"topoSortByGenerationIfAcyclic");function Vo(t,e){var d;let n=ce(t),r=(e==null?void 0:e.direction)==="LR"?jo(n)??[...n.nodes].sort():Be(n)??[...n.nodes].sort(),o=fe(n),i=c(g=>o(g)??g,"laneOf"),l=Object.create(null),a=new Map,f=c((g,h)=>(e==null?void 0:e.ignoreCrossLaneEdges)??!0?i(g)===i(h)?1:0:1,"edgeWeight");for(let g of r){if((d=n.nodeById.get(g))!=null&&d.isGroup)continue;let h=Qn(n,g),s=0;if(h.length>0)for(let M of h){let m=M.src,b=l[m]??0;s=Math.max(s,b+f(m,g))}let u=i(g),p=a.get(u)??0,x=Math.max(s,p);l[g]=x,a.set(u,x+1)}return{layers:rr(n,r,l,{skipGroups:!0}),rankOf:l,dummy:new Set}}c(Vo,"assignLayers_LaneAwareCompact");function Wo(t,e){let n=ce(e),{rankOf:r}=t,o=t.layers.map(s=>[...s]),i=new Set(t.dummy?[...t.dummy]:[]),l=0,a=new Map(n.nodeById),f=c(s=>{let u=`placeholder-${l++}`,p={id:u,isGroup:!1,isDummy:!0,width:0,height:0};for(a.set(u,p),i.add(u);o.length<=s;)o.push([]);return o[s].push(u),r[u]=s,u},"addDummyAt"),d=[...n.edges].sort((s,u)=>s.id===u.id?s.src===u.src?s.dst.localeCompare(u.dst):s.src.localeCompare(u.src):s.id.localeCompare(u.id)),g=[];for(let s of d){let u=r[s.src]??0,p=r[s.dst]??0;if(p-u<=1){g.push(s);continue}let x=s.src;for(let m=u+1,b=0;m<p;m++,b++){let I=f(m);g.push({id:`${s.id}#${b}`,src:x,dst:I,weight:s.weight,ref:s.ref}),x=I}let M=p-u-2;g.push({id:`${s.id}#${Math.max(M+1,0)}`,src:x,dst:s.dst,weight:s.weight,ref:s.ref})}let h={nodes:[...n.nodes,...[...i].filter(s=>!n.nodes.includes(s))],edges:g,layout:n.layout,nodeById:a};return{layering:{layers:o,rankOf:r,dummy:i},graphWithDummies:h}}c(Wo,"makeProperLayering");function sr(t){let e=t.length;if(e===0)return 1/0;let n=[...t].sort((r,o)=>r-o);return e%2==1?n[(e-1)/2]:.5*(n[e/2-1]+n[e/2])}c(sr,"median");function fr(t){return t.length===0?1/0:t.reduce((e,n)=>e+n,0)/t.length}c(fr,"barycenter");function Uo(t,e,n,r){let o=new Map;for(let i of t)o.set(i,[]);for(let i of n)r==="down"?e.has(i.src)&&o.has(i.dst)&&o.get(i.dst).push(e.get(i.src)):e.has(i.dst)&&o.has(i.src)&&o.get(i.src).push(e.get(i.dst));return o}c(Uo,"neighborPositionsFor");function qo(t,e,n){let r=n.get(t)??0,o=n.get(e)??0;return r===o?t.localeCompare(e):r-o}c(qo,"currentOrderTieBreak");function dr(t,e,n){let r=new Set(t),o=new Set(e),i=Te(t),l=Te(e),a=[];for(let f of n)r.has(f.src)&&o.has(f.dst)&&a.push({u:i.get(f.src),v:l.get(f.dst)});return a.sort((f,d)=>f.u===d.u?f.v-d.v:f.u-d.u),or(a.map(f=>f.v))}c(dr,"countCrossingsBetweenAdjacent");function rn(t,e,n){return[...t].sort((r,o)=>{let i=sr(e.get(r)??[]),l=sr(e.get(o)??[]);return i===l?qo(r,o,n):isFinite(i)?isFinite(l)?i-l:-1:1})}c(rn,"sortByHeuristic");function ur(t,e,n,r,o,i){let l=Te(t),a=Te(e),f=Uo(e,l,n,r);if(!o||!i||i.length===0)return rn(e,f,a);let d=new Map;for(let s of e){let u=o(s),p=d.get(u)??[];p.push(s),d.set(u,p)}let g=[];for(let s of i){let u=d.get(s);if(!u||u.length===0)continue;let p=rn(u,f,a);g.push(...p)}let h=d.get(null);if(h&&h.length>0){let s=rn(h,f,a);for(let u of s){let p=fr(f.get(u)??[]),x=g.length;if(isFinite(p)){for(let[M,m]of g.entries())if(p<fr(f.get(m)??[])){x=M;break}}g.splice(x,0,u)}}return g}c(ur,"reorderLayer");function hr(t,e,n,r,o){let i=[...e],l=new Set(t),a=new Set(e),f=r?new Set(r):null,d=n.filter(x=>l.has(x.src)&&a.has(x.dst)),g=f?n.filter(x=>a.has(x.src)&&f.has(x.dst)):void 0,h=c(x=>{let M=dr(t,x,d);return g&&r&&(M+=dr(x,r,g)),M},"crossingScore"),s=o?new Map:null;if(o&&s)for(let x of e)s.set(x,o(x));let u=!0,p=h(i);for(;u;){u=!1;for(let x=0;x+1<i.length;x++){if(s&&s.get(i[x])!==s.get(i[x+1]))continue;let M=p;[i[x],i[x+1]]=[i[x+1],i[x]];let m=h(i);m<M?(p=m,u=!0):[i[x],i[x+1]]=[i[x+1],i[x]]}}return i}c(hr,"transposeImprove");function Jo(t,e,n){let r=t.layers.map(a=>[...a]),o=e.edges,i=fe(e),l=ir(e,n==null?void 0:n.laneOrder);for(let a=0;a<3;a++){for(let f=1;f<r.length;f++)r[f]=ur(r[f-1],r[f],o,"down",i,l),r[f]=hr(r[f-1],r[f],o,r[f+1],i);for(let f=r.length-2;f>=0;f--)r[f]=ur(r[f+1],r[f],o,"up",i,l),r[f]=hr(r[f+1],r[f],o,r[f-1],i)}return{layers:r}}c(Jo,"orderLayers");function Ko(t,e,n){var U;let r=(n==null?void 0:n.layerGap)??ko.DEFAULT_LAYER_GAP,o=(n==null?void 0:n.nodeGap)??ko.DEFAULT_NODE_GAP,i=(n==null?void 0:n.laneGap)??o*2,l=(n==null?void 0:n.direction)??"TB",a=l==="LR"||l==="RL",f=t.layers,d=Object.create(null),g=Object.create(null),h=c(A=>e.nodeById.get(A),"getNode"),s=c(A=>{var X;return((X=h(A))==null?void 0:X.width)??0},"getWidth"),u=c(A=>{var X;return((X=h(A))==null?void 0:X.height)??0},"getHeight"),p=fe(e),x=ir(e,n==null?void 0:n.laneOrder),M=f.map(A=>A.reduce((X,Z)=>Math.max(X,u(Z)),0)),m=[];if(a)for(let A=0;A+1<f.length;A++){let X=f[A].reduce((Q,et)=>Math.max(Q,s(et)),0),Z=f[A+1].reduce((Q,et)=>Math.max(Q,s(et)),0),it=M[A],dt=M[A+1],ut=it/2+dt/2,ct=(X+Z)/2,W=Math.max(0,ct-ut-r);m.push(W)}let b=new Set;for(let A of f)for(let X of A)b.add(p(X));let I=b.has(null),v=x.filter(A=>b.has(A)),S=[...I?[null]:[],...v],L=Object.create(null);for(let A of v)L[A]=0;I&&(L.null=0);for(let A of f){let X=Object.create(null),Z=[];for(let it of A){let dt=p(it);dt===null?Z.push(it):(X[dt]||(X[dt]=[])).push(it)}for(let[it,dt]of Object.entries(X)){let ut=dt.reduce((ct,W)=>ct+s(W),0)+o*Math.max(0,dt.length-1);L[it]=Math.max(L[it]??0,ut)}if(I&&Z.length){let it=Z.reduce((dt,ut)=>dt+s(ut),0)+o*Math.max(0,Z.length-1);L.null=Math.max(L.null??0,it)}}let T=new Map;{let A=S.map(Z=>(Z===null?L.null:L[Z])??0),X=-(A.reduce((Z,it)=>Z+it,0)+i*Math.max(0,S.length-1))/2;for(let Z=0;Z<S.length;Z++){let it=S[Z],dt=A[Z]??0,ut=X+dt/2;T.set(it,ut),X+=dt,Z<S.length-1&&(X+=i)}}let O=0;for(let[A,X]of f.entries()){let Z=M[A]??0,it=new Map;for(let ut of X){let ct=p(ut),W=it.get(ct)??[];W.push(ut),it.set(ct,W)}for(let ut of S){let ct=it.get(ut)??[];if(ct.length===0)continue;let W=T.get(ut);if(ct.length===1){let Q=ct[0];d[Q]=W,g[Q]=O+Z/2}else{let Q=ct.map(lt=>s(lt)),et=W-(Q.reduce((lt,mt)=>lt+mt,0)+o*(ct.length-1))/2;for(let[lt,mt]of ct.entries()){let vt=Q[lt];d[mt]=et+vt/2,g[mt]=O+Z/2,et+=vt+o}}}let dt=m[A]??0;O+=Z+r+dt}let $=new Map;for(let A of e.edges){let X=A.ref.id;$.has(X)||$.set(X,[]),$.get(X).push(A)}for(let[,A]of $){if(A.length===0)continue;let X=A[0].ref,Z=X.start,it=X.end;if(Z==null||it==null)continue;let dt=Math.round(((d[Z]??0)+(d[it]??0))/2),ut=new Set;for(let ct of A)ut.add(ct.src),ut.add(ct.dst);for(let ct of ut)ct===Z||ct===it||(U=e.nodeById.get(ct))!=null&&U.isDummy&&(d[ct]=dt)}return{x:d,y:g}}c(Ko,"assignCoordinates");var Zo=8;function Qo(t){let e=2166136261;for(let n=0;n<t.length;n++)e^=t.charCodeAt(n),e=Math.imul(e,16777619);return e>>>0}c(Qo,"hashString");function ti(t){let e=t>>>0;return()=>{e+=1831565813;let n=e;return n=Math.imul(n^n>>>15,n|1),n^=n+Math.imul(n^n>>>7,n|61),((n^n>>>14)>>>0)/4294967296}}c(ti,"mulberry32");function ei(t,e){let n=[...t],r=ti(e);for(let o=n.length-1;o>0;o--){let i=Math.floor(r()*(o+1));[n[o],n[i]]=[n[i],n[o]]}return n}c(ei,"deterministicShuffle");function ni(t,e){let n=0;for(let[r,o]of t.entries())n+=Math.abs(r-(e.get(o)??r));return n}c(ni,"sourceDistance");function cr(t,e){let n=new Map;for(let[o,i]of t.entries())n.set(i,o);let r=0;for(let{a:o,b:i,weight:l}of e){let a=n.get(o),f=n.get(i);a==null||f==null||(r+=l*Math.abs(a-f))}return r}c(cr,"laneArrangementCost");function ri(t){let e=tn(t);if(e.length<2)return[];let n=new Map(e.map((i,l)=>[i,l])),r=fe(t),o=new Map;for(let i of t.layout.edges??[]){if(i.isLayoutOnly)continue;let l=typeof i.start=="string"?i.start:void 0,a=typeof i.end=="string"?i.end:void 0;if(!l||!a||!t.nodeById.has(l)||!t.nodeById.has(a))continue;let f=r(l),d=r(a);if(!f||!d||f===d)continue;let g=n.get(f),h=n.get(d);if(g==null||h==null)continue;let[s,u]=g<=h?[f,d]:[d,f],p=`${s}\0${u}`,x=o.get(p);x?x.weight++:o.set(p,{a:s,b:u,weight:1})}return[...o.values()]}c(ri,"buildWeightedLaneEdges");function gr(t,e,n){let r=[...t],o=cr(r,e),i=!0,l=0,a=Math.max(1,r.length);for(;i&&l<a;){i=!1,l++;for(let f=0;f+1<r.length;f++){[r[f],r[f+1]]=[r[f+1],r[f]];let d=cr(r,e);d<o?(o=d,i=!0):[r[f],r[f+1]]=[r[f+1],r[f]]}}return{order:r,cost:o,sourceDistance:ni(r,n)}}c(gr,"greedySwitch");function oi(t,e){return t.cost===e.cost?t.sourceDistance<e.sourceDistance:t.cost<e.cost}c(oi,"isBetterCandidate");function ii(t,e,n){let r=[...e].sort((o,i)=>o.a===i.a?o.b.localeCompare(i.b):o.a.localeCompare(i.a)).map(({a:o,b:i,weight:l})=>`${o}:${i}:${l}`).join("|");return Qo(`${t.join("|")}#${r}#${n}`)}c(ii,"seedForRestart");function li(t,e={}){let n=tn(t);if(n.length<2)return n;let r=ri(t);if(r.length===0)return n;let o=new Map(n.map((a,f)=>[a,f])),i=gr(n,r,o),l=Math.max(0,e.restarts??Zo);for(let a=0;a<l;a++){let f=gr(ei(n,ii(n,r,a)),r,o);oi(f,i)&&(i=f)}return i.order}c(li,"optimizeTopLaneOrder");function ai(t,e){let n=(e==null?void 0:e.ignoreCrossLaneEdges)??!0,r=(e==null?void 0:e.optimizeRanksByCrossings)??!0,o=ce(t),i=e!=null&&e.automaticLaneOrdering?li(o,{restarts:Zo}):void 0,l=Co(o),a=l.acyclic,{layering:f,graphWithDummies:d}=Wo(n?Vo(a,{compactSingleInput:(e==null?void 0:e.compactSingleInput)??en.DEFAULT_COMPACT_SINGLE_INPUT,ignoreCrossLaneEdges:!0,direction:e==null?void 0:e.direction}):Ho(a,{compactSingleInput:(e==null?void 0:e.compactSingleInput)??en.DEFAULT_COMPACT_SINGLE_INPUT,ignoreCrossLaneEdges:!1,optimizeRanksByCrossings:r}),a),g=Jo(f,d,{laneOrder:i}),h=Ko(g,d,{layerGap:e==null?void 0:e.layerGap,nodeGap:e==null?void 0:e.nodeGap,direction:e==null?void 0:e.direction,laneOrder:i});return{acyclic:a,reversed:l.reversed,layering:f,ordered:g,coordinates:h}}c(ai,"sugiyamaLayout");var ft=vi.EPSILON,Li=8,Me=15,ke=15,on=25,ee=20,pr=10;function mr(t,e,n){let r=t.x??0,o=t.y??0,i=e.x-r,l=e.y-o,a=Math.abs(i),f=Math.abs(l);return a<ft&&f<ft?n:f>ft&&f*3>=a?l>0?"bottom":"top":a>ft?i>0?"right":"left":n}c(mr,"chooseOrthogonalSide");function xr(t,e){return Math.abs(t.to-e.from)<ft||Math.abs(t.to-e.to)<ft?t.to:t.from}c(xr,"sharedLineEndpointCoord");function Ie(t,e){return t.orient==="vertical"?{x:t.coord,y:e}:{x:e,y:t.coord}}c(Ie,"pointOnLine");function si(t,e){var H,J,nt,It;let n=t.nodes??[],r=t.edges??[],o=[];for(let y of r)y.isLayoutOnly||o.push({...y,__originalEdge:y});let i=new Map,l=new Map,a=[],f=e==="LR";for(let y of n)i.set(y.id,y);let d=n.filter(y=>y.isGroup&&!y.parentId);for(let y of d){let w={id:y.id},k=c(C=>{l.set(C.id,w),n.filter(E=>E.parentId===C.id).forEach(k)},"assignLane");k(y)}let g=n.filter(y=>!y.isGroup&&!y.isEdgeLabel).map(y=>{let w=y.width??10,k=y.height??10,C=y.x??0,E=y.y??0,B=Li;return{nodeId:y.id,minX:C-w/2-B,maxX:C+w/2+B,minY:E-k/2-B,maxY:E+k/2+B,visualXHalfExtent:f?k/2+B:w/2+B}}),h=c((y,w,k,C)=>{let E=a.find(B=>B.orientation===y&&Math.abs(B.coord-w)<1);return E||(E={id:`pipe-${y}-${w.toFixed(0)}`,orientation:y,coord:w,spanMin:k,spanMax:C,tracks:[]},a.push(E)),E.spanMin=Math.min(E.spanMin,k),E.spanMax=Math.max(E.spanMax,C),E},"getOrAddPipe"),s=c((y,w)=>{let k=y.width??10,C=y.height??10,E=y.x??0,B=y.y??0;switch(w){case"top":return{x:E,y:B-C/2};case"bottom":return{x:E,y:B+C/2};case"left":return{x:E-k/2,y:B};case"right":return{x:E+k/2,y:B}}},"portForSide"),u=c((y,w,k)=>s(y,mr(y,w,k?"bottom":"top")),"getOrthogonalPort"),p=[],x=[],M=new Set,m=1e3,b=c((y,w,k)=>{if(p.length===0)return 0;let C=Math.abs(w.y-k.y)<ft,E=Math.abs(w.x-k.x)<ft;if(!C&&!E)return 0;let B=0;if(C){let V=w.y,rt=Math.min(w.x,k.x)-ft,z=Math.max(w.x,k.x)+ft;if(z<=rt)return 0;for(let G of p)G.edgeIndex===y||G.orientation!=="vertical"||G.pipe.coord<rt||G.pipe.coord>z||G.from-ft<=V&&G.to+ft>=V&&(B+=m)}else if(E){let V=w.x,rt=Math.min(w.y,k.y)-ft,z=Math.max(w.y,k.y)+ft;if(z<=rt)return 0;for(let G of p)G.edgeIndex===y||G.orientation!=="horizontal"||G.pipe.coord<rt||G.pipe.coord>z||G.from-ft<=V&&G.to+ft>=V&&(B+=m)}return B},"crossingPenalty"),I=o.map((y,w)=>{if(!y.start||!y.end)return{idx:w,crossLane:0,dx:0,dy:0};let k=i.get(y.start),C=i.get(y.end),E=l.get(y.start),B=l.get(y.end);return{idx:w,crossLane:E&&B&&E.id!==B.id?1:0,dx:k&&C?Math.abs((C.x??0)-(k.x??0)):0,dy:k&&C?Math.abs((C.y??0)-(k.y??0)):0}}).sort((y,w)=>{if(y.crossLane!==w.crossLane)return w.crossLane-y.crossLane;let k=y.dx+y.dy,C=w.dx+w.dy;return Math.abs(k-C)>1?k-C:y.idx-w.idx}).map(y=>y.idx),v=c((y,w,k,C)=>{let E=Math.min(y.x,w.x),B=Math.max(y.x,w.x),V=Math.min(y.y,w.y),rt=Math.max(y.y,w.y);return!!g.find(z=>k&&z.nodeId===k||C&&z.nodeId===C?!1:Math.abs(y.x-w.x)>ft?z.minY<y.y&&z.maxY>y.y&&z.maxX>E&&z.minX<B:z.minX<y.x&&z.maxX>y.x&&z.maxY>V&&z.minY<rt)},"isSegmentBlocked"),S=new Map,L=new Map;for(let y of o)!y.start||!y.end||y.start===y.end||(L.set(y.start,(L.get(y.start)??0)+1),L.set(y.end,(L.get(y.end)??0)+1));let T=c((y,w)=>mr(y,w,"bottom"),"determineSide"),O=new Map;for(let[y,w]of o.entries()){if(!w.start||!w.end||w.start===w.end||w.points&&w.points.length>0)continue;let k=i.get(w.start),C=i.get(w.end);if(!k||!C)continue;let E=(C.x??0)-(k.x??0),B=(C.y??0)-(k.y??0);O.set(y,{edgeIdx:y,srcId:w.start,dstId:w.end,srcSide:T(k,{x:C.x??0,y:C.y??0}),dstSide:T(C,{x:k.x??0,y:k.y??0}),absDx:Math.abs(E),absDy:Math.abs(B),dxSign:Math.sign(E),dySign:Math.sign(B)})}let $=c(y=>y.srcSide==="top"||y.srcSide==="bottom"?y.absDx===0?1/0:y.absDy/y.absDx:y.absDy===0?1/0:y.absDx/y.absDy,"preferenceStrength"),U=c(y=>y.srcSide==="top"||y.srcSide==="bottom"?y.dxSign>=0?"right":"left":y.dySign>=0?"bottom":"top","secondarySide"),A=new Map;for(let y of O.values()){let w=`${y.srcId}:${y.srcSide}`;A.has(w)||A.set(w,[]),A.get(w).push(y)}let X=new Map,Z=c((y,w)=>`${y}:${w}`,"loadKey");for(let y of O.values())X.set(Z(y.srcId,y.srcSide),(X.get(Z(y.srcId,y.srcSide))??0)+1),X.set(Z(y.dstId,y.dstSide),(X.get(Z(y.dstId,y.dstSide))??0)+1);for(let y of A.values())if(!(y.length<2)){y.sort((w,k)=>{let C=$(w),E=$(k);return Math.abs(C-E)>1e-9?E-C:w.edgeIdx-k.edgeIdx});for(let w=1;w<y.length;w++){let k=y[w],C=U(k),E=X.get(Z(k.srcId,k.srcSide))??0,B=X.get(Z(k.srcId,C))??0;B>=E||(X.set(Z(k.srcId,k.srcSide),E-1),X.set(Z(k.srcId,C),B+1),k.srcSide=C)}}let it=c(y=>{let w=y==null?void 0:y.shape;return w==="question"||w==="diamond"},"isDiamondNode"),dt=new Map;for(let y of O.values())dt.has(y.dstId)||dt.set(y.dstId,new Set),dt.get(y.dstId).add(y.dstSide);for(let y of O.values()){if(!it(i.get(y.srcId)))continue;let w=dt.get(y.srcId);if(!(w!=null&&w.has(y.srcSide)))continue;let k=U(y);if(w.has(k)||(X.get(Z(y.srcId,k))??0)>0)continue;let C=X.get(Z(y.srcId,y.srcSide))??0;X.set(Z(y.srcId,y.srcSide),Math.max(0,C-1)),X.set(Z(y.srcId,k),1),y.srcSide=k}for(let y of O.values()){let{edgeIdx:w,srcId:k,dstId:C,srcSide:E,dstSide:B}=y,V=i.get(k),rt=i.get(C),z=`${k}:${E}:src`,G=E==="top"||E==="bottom"?rt.x??0:rt.y??0;S.has(z)||S.set(z,[]),S.get(z).push({edgeIdx:w,oppositeCoord:G});let tt=`${C}:${B}:dst`,xt=B==="top"||B==="bottom"?V.x??0:V.y??0;S.has(tt)||S.set(tt,[]),S.get(tt).push({edgeIdx:w,oppositeCoord:xt})}let ut=new Map;for(let[y,w]of S){if(w.length<2)continue;w.sort(($t,at)=>$t.oppositeCoord-at.oppositeCoord);let k=y.split(":"),C=k.slice(0,-2).join(":"),E=k[k.length-2],B=k[k.length-1],V=i.get(C);if(!V)continue;let rt=E==="left"||E==="right"?V.height??10:V.width??10,z=V.shape,G=z==="question"||z==="diamond"?rt*.3:rt,tt=Math.min(20,Math.max(8,G/(w.length+1))),xt=-(tt*(w.length-1))/2;for(let[$t,at]of w.entries()){let yt=xt+$t*tt,Et=`${at.edgeIdx}:${B}`;ut.set(Et,yt)}}let ct=c(y=>{var w;return!!((w=o[y])!=null&&w.labelNodeId)},"edgeHasLabelNode"),W=c((y,w)=>y?(S.get(`${y}:${w}:src`)??[]).some(({edgeIdx:k})=>ct(k))||(S.get(`${y}:${w}:dst`)??[]).some(({edgeIdx:k})=>ct(k)):!1,"faceHasLabelNode"),Q=c((y,w,k)=>w==="top"||w==="bottom"?{x:y.x+k,y:y.y}:{x:y.x,y:y.y+k},"applyPortOffset"),et=c((y,w,k)=>{let C=O.get(y),E={x:k.x??0,y:k.y??0},B={x:w.x??0,y:w.y??0},V=(C==null?void 0:C.srcSide)??T(w,E),rt=(C==null?void 0:C.dstSide)??T(k,B),z=C?s(w,C.srcSide):u(w,E,!0),G=C?s(k,C.dstSide):u(k,B,!1),tt=ut.get(`${y}:src`),xt=ut.get(`${y}:dst`);return tt!==void 0&&(z=Q(z,V,tt)),xt!==void 0&&(G=Q(G,rt,xt)),{pSrcPort:z,pDstPort:G,srcSide:V,dstSide:rt}},"portsForEdge");for(let y of I){let w=o[y];if(x[y]=[],!w.start||!w.end||w.points&&w.points.length>0||w.start===w.end)continue;let k=i.get(w.start),C=i.get(w.end);if(!k||!C)continue;let{pSrcPort:E,pDstPort:B,srcSide:V,dstSide:rt}=et(y,k,C),z={...E},G={...B},tt=V==="top"||V==="bottom",xt=rt==="top"||rt==="bottom";tt?z.y=E.y>(k.y??0)?E.y+ee:E.y-ee:z.x=E.x>(k.x??0)?E.x+ee:E.x-ee,xt?G.y=B.y>(C.y??0)?B.y+ee:B.y-ee:G.x=B.x>(C.x??0)?B.x+ee:B.x-ee;let $t=c((P,Y)=>{for(let q of g)if(!Y.includes(q.nodeId)&&P.x>q.minX&&P.x<q.maxX&&P.y>q.minY&&P.y<q.maxY)return{inside:!0,obstacle:q};return{inside:!1}},"isPointInObstacle"),at=c((P,Y,q,gt,Nt)=>{if(Nt){let Ft=P.y>(Y.y??0);return{x:(q.x??0)>=P.x?gt.maxX+Me:gt.minX-Me,y:Ft?gt.maxY+ke:gt.minY-ke,leavesPositiveSide:Ft}}let Lt=P.x>(Y.x??0),Ot=(q.y??0)>=P.y;return{x:Lt?gt.maxX+Me:gt.minX-Me,y:Ot?gt.maxY+ke:gt.minY-ke,leavesPositiveSide:Lt}},"obstacleDetour"),yt=[],Et=[w.start,w.end],jt=$t(z,Et);if(jt.inside&&jt.obstacle){let P=jt.obstacle;if(tt){let Y=at(E,k,C,P,!0);z.x=Y.x,z.y=Y.y;let q=Y.leavesPositiveSide?Math.min(P.minY-2,E.y+ee):Math.max(P.maxY+2,E.y-ee);yt=[{x:E.x,y:q},{x:Y.x,y:q},{x:Y.x,y:Y.y}]}else{let Y=at(E,k,C,P,!1),q=Y.leavesPositiveSide?Math.min(P.minX-2,E.x+ee):Math.max(P.maxX+2,E.x-ee);z.x=Y.x,z.y=Y.y,yt=[{x:q,y:E.y},{x:q,y:Y.y},{x:Y.x,y:Y.y}]}}let de=[],Ee=$t(G,Et);if(Ee.inside&&Ee.obstacle){let P=Ee.obstacle;if(xt){let Y=at(B,C,k,P,!0);G.x=Y.x,G.y=Y.y,de=[{x:Y.x,y:Y.y},{x:B.x,y:Y.y}]}else{let Y=at(B,C,k,P,!1);G.x=Y.x,G.y=Y.y,de=[{x:Y.x,y:Y.y},{x:Y.x,y:B.y}]}}if(yt.length===0&&de.length===0){let P=Me,Y=Math.abs(z.x-G.x)<P,q=Math.abs(z.y-G.y)<P,gt=ut.get(`${y}:src`)!==void 0||ut.get(`${y}:dst`)!==void 0,Nt=(((H=S.get(`${w.start??""}:${V}:src`))==null?void 0:H.length)??0)+(((J=S.get(`${w.start??""}:${V}:dst`))==null?void 0:J.length)??0),Lt=(((nt=S.get(`${w.end??""}:${rt}:src`))==null?void 0:nt.length)??0)+(((It=S.get(`${w.end??""}:${rt}:dst`))==null?void 0:It.length)??0),Ot=Nt>1||Lt>1,Ft=L.get(w.start??"")??0,bt=L.get(w.end??"")??0,Gt=Nt>1&&W(w.start,V)||Lt>1&&W(w.end,rt);if((Y||q)&&!gt&&(!Ot||Ot&&!Gt&&(Nt<=1||Ft<=2)&&(Lt<=1||bt<=2))&&!v(E,B,w.start,w.end)){w.points=[{...E},{...z},{...G},{...B}],M.add(y);let qt=q?"horizontal":"vertical",Bt=q?E.y:E.x,_t=q?Math.min(E.x,B.x):Math.min(E.y,B.y),St=q?Math.max(E.x,B.x):Math.max(E.y,B.y),At={id:`fast-path-${qt}-${Bt.toFixed(0)}-${y}`,orientation:qt,coord:Bt,spanMin:_t,spanMax:St,tracks:[]};p.push({edgeIndex:y,segmentIndex:0,orientation:qt,pipe:At,trackIndex:0,from:_t,to:St});continue}}z.x=h("vertical",z.x,z.y,z.y).coord,G.x=h("vertical",G.x,G.y,G.y).coord;let ge=Math.min(z.x,G.x)-50,pe=Math.max(z.x,G.x)+50,$e=Math.min(z.y,G.y)-50,Ne=Math.max(z.y,G.y)+50;for(let P of g){let Y=Math.min(z.x,G.x),q=Math.max(z.x,G.x),gt=Math.min(z.y,G.y),Nt=Math.max(z.y,G.y);P.minX<q&&P.maxX>Y&&P.minY<Nt&&P.maxY>gt&&(ge=Math.min(ge,P.minX-on),pe=Math.max(pe,P.maxX+on),$e=Math.min($e,P.minY-on),Ne=Math.max(Ne,P.maxY+on))}for(let P of g){if(P.maxX<ge||P.minX>pe||P.maxY<$e||P.minY>Ne)continue;let Y=Me;h("horizontal",P.minY-Y,ge,pe),h("horizontal",P.maxY+Y,ge,pe);let q=ke;h("vertical",P.minX-q,$e,Ne),h("vertical",P.maxX+q,$e,Ne)}h("horizontal",z.y,ge,pe),h("horizontal",G.y,ge,pe);let Ci=a.filter(P=>P.orientation==="horizontal"&&P.coord>=$e&&P.coord<=Ne),Ti=a.filter(P=>P.orientation==="vertical"&&P.coord>=ge&&P.coord<=pe),sn=c((P,Y)=>`${P.toFixed(1)},${Y.toFixed(1)}`,"getKey"),fn=sn(z.x,z.y),ui=sn(G.x,G.y),dn=new Map,yr=new Map,br=new Map,un=new Set,we=[];dn.set(fn,0),br.set(fn,"n"),we.push({key:fn,f:Math.hypot(G.x-z.x,G.y-z.y),pt:z}),un.add(fn);let Ut=[],me=c((P,Y)=>v(P,Y,w.start,w.end),"checkSegmentBlocked"),Mr={x:G.x,y:z.y},ki=me(z,Mr),Oi=me(Mr,G),Ri=ki||Oi,Ir={x:z.x,y:G.y},Ei=me(z,Ir),$i=me(Ir,G);if(Ri?Ei||$i||(Ut=Math.abs(z.x-G.x)<ft?[z,G]:[z,Ir,G]):Ut=Math.abs(z.y-G.y)<ft||Math.abs(z.x-G.x)<ft?[z,G]:[z,Mr,G],Ut.length===0)for(;we.length>0;){we.sort((bt,Gt)=>bt.f-Gt.f);let P=we.shift();if(un.delete(P.key),P.key===ui){let bt=ui,Gt=G;for(Ut=[Gt];yr.has(bt);){let qt=yr.get(bt);Ut.unshift(qt),Gt=qt,bt=sn(qt.x,qt.y)}break}let Y=P.pt.x,q=P.pt.y,gt=Ti.sort((bt,Gt)=>bt.coord-Gt.coord),Nt=gt.findIndex(bt=>Math.abs(bt.coord-Y)<1),Lt=Ci.sort((bt,Gt)=>bt.coord-Gt.coord),Ot=Lt.findIndex(bt=>Math.abs(bt.coord-q)<1),Ft=[];Nt>0&&Ft.push({x:gt[Nt-1].coord,y:q}),Nt>=0&&Nt<gt.length-1&&Ft.push({x:gt[Nt+1].coord,y:q}),Ot>0&&Ft.push({x:Y,y:Lt[Ot-1].coord}),Ot>=0&&Ot<Lt.length-1&&Ft.push({x:Y,y:Lt[Ot+1].coord});for(let bt of Ft){let Gt=Math.min(Y,bt.x),qt=Math.max(Y,bt.x),Bt=Math.min(q,bt.y),_t=Math.max(q,bt.y);if(g.some(Qt=>Qt.nodeId===w.start||Qt.nodeId===w.end?!1:Gt===qt?Qt.minX<Y&&Qt.maxX>Y&&Qt.maxY>Bt&&Qt.minY<_t:Qt.minY<q&&Qt.maxY>q&&Qt.maxX>Gt&&Qt.minX<qt))continue;let St=sn(bt.x,bt.y),At=Math.abs(bt.x-Y)+Math.abs(bt.y-q),Zt=b(y,P.pt,bt),wt=0,Pt=G.x-z.x,xe=G.y-z.y,ye=bt.x-Y,Sr=bt.y-q;(xe>10&&Sr<-5||xe<-10&&Sr>5)&&(wt=Math.abs(Sr)*100),(Pt>10&&ye<-5||Pt<-10&&ye>5)&&(wt+=Math.abs(ye)*50);let hi=0,ci=br.get(P.key)??"n",gi=Math.abs(ye)>ft?"h":"v";ci!=="n"&&ci!==gi&&(hi=50);let Ni=At+Zt+wt+hi,hn=(dn.get(P.key)??1/0)+Ni,pi=Math.abs(G.x-bt.x)+Math.abs(G.y-bt.y);if(hn<(dn.get(St)??1/0))if(yr.set(St,P.pt),dn.set(St,hn),br.set(St,gi),!un.has(St))we.push({key:St,f:hn+pi,pt:bt}),un.add(St);else{let Qt=we.findIndex(Fi=>Fi.key===St);Qt!==-1&&(we[Qt].f=hn+pi)}}}if(Ut.length===0&&(Ut=[z,{x:z.x,y:G.y},G]),Ut.length>4){let P=Ut[0],Y=Ut[Ut.length-1],q=Math.min(P.x,Y.x),gt=Math.max(P.x,Y.x),Nt=Math.min(P.y,Y.y),Lt=Math.max(P.y,Y.y);for(let Bt of Ut)q=Math.min(q,Bt.x),gt=Math.max(gt,Bt.x),Nt=Math.min(Nt,Bt.y),Lt=Math.max(Lt,Bt.y);let Ot=gt>Math.max(P.x,Y.x),Ft=q<Math.min(P.x,Y.x);if(f){let Bt=ke;if(Ot){let _t=Math.max(P.x,Y.x),St=Math.min(P.y,Y.y),At=Math.max(P.y,Y.y),Zt=g.filter(wt=>wt.minX<_t&&wt.maxX>_t&&wt.minY<At&&wt.maxY>St);if(Zt.length>0){let wt=Math.max(P.x,Y.x);for(let Pt of Zt){let xe=(Pt.minX+Pt.maxX)/2;if(Pt.visualXHalfExtent===void 0||isNaN(Pt.visualXHalfExtent))continue;let ye=xe+Pt.visualXHalfExtent+Bt;wt=Math.max(wt,ye)}isNaN(wt)||(gt=wt)}}if(Ft){let _t=g.filter(St=>St.minX<Math.min(P.x,Y.x)+Bt&&St.minY<Math.max(P.y,Y.y)&&St.maxY>Math.min(P.y,Y.y));if(_t.length>0){let St=Math.min(P.x,Y.x);for(let At of _t){let Zt=(At.minX+At.maxX)/2-At.visualXHalfExtent-Bt;St=Math.min(St,Zt)}q=St}}}let bt=c(Bt=>{let _t=Y.y>P.y,St=g.filter(wt=>{let Pt=Math.min(P.x,Y.x)<wt.maxX&&Math.max(P.x,Y.x)>wt.minX,xe=Math.min(P.y,Y.y)<wt.maxY&&Math.max(P.y,Y.y)>wt.minY;return Pt&&xe}),At=St;if(f&&St.length>0){let wt=St.filter(Pt=>Pt.minX<Bt&&Pt.maxX>Bt);wt.length>0&&(At=wt)}if(At.length===0)return Y.y;let Zt=Me;if(_t){let wt=Math.max(...At.map(Pt=>Pt.maxY))+Zt;if(wt<Y.y-ft)return wt}else{let wt=Math.min(...At.map(Pt=>Pt.minY))-Zt;if(wt>Y.y+ft)return wt}return Y.y},"findBestReturnY"),Gt=c(Bt=>{let _t=bt(Bt),St={x:Bt,y:P.y},At={x:Bt,y:_t},Zt={x:Y.x,y:_t},wt=me(P,St),Pt=me(St,At),xe=me(At,Zt),ye=_t===Y.y?!1:me(Zt,Y);return!wt&&!Pt&&!xe&&!ye?Math.abs(_t-Y.y)<ft?[P,St,At,Y]:[P,St,At,Zt,Y]:null},"trySimplifyWithDetourX"),qt=Ot&&!Ft?Gt(gt):Ft&&!Ot?Gt(q):null;qt&&(Ut=qt)}let zt=[E,...yt,...Ut,...de.reverse(),B];if(zt.length>=3){let P=zt[zt.length-1],Y=zt[zt.length-2],q=zt[zt.length-3],gt=Math.abs(q.y-Y.y)<ft&&Math.abs(Y.y-P.y)<ft,Nt=Math.abs(q.x-Y.x)<ft&&Math.abs(Y.x-P.x)<ft;if(gt){let Lt=Math.sign(Y.x-q.x),Ot=Math.sign(P.x-q.x);Lt!==0&&Lt===Ot&&Math.abs(Y.x-q.x)>Math.abs(P.x-q.x)&&zt.splice(-2,1)}else if(Nt){let Lt=Math.sign(Y.y-q.y),Ot=Math.sign(P.y-q.y);Lt!==0&&Lt===Ot&&Math.abs(Y.y-q.y)>Math.abs(P.y-q.y)&&zt.splice(-2,1)}}let ae=[zt[0]];for(let P=1;P<zt.length-1;P++){if(P===1){ae.push(zt[P]);continue}let Y=ae[ae.length-1],q=zt[P],gt=zt[P+1];if(Math.abs(Y.y-q.y)<ft&&Math.abs(q.y-gt.y)<ft){if(q.x>Y.x!=gt.x>q.x){ae.push(q);continue}continue}if(Math.abs(Y.x-q.x)<ft&&Math.abs(q.x-gt.x)<ft){if(q.y>Y.y!=gt.y>q.y){ae.push(q);continue}continue}ae.push(q)}ae.push(zt[zt.length-1]);for(let P=0;P<ae.length-1;P++){let Y=ae[P],q=ae[P+1],gt=Math.abs(Y.x-q.x)<ft?"vertical":"horizontal",Nt=gt==="vertical"?Y.x:Y.y,Lt=gt==="vertical"?Math.min(Y.y,q.y):Math.min(Y.x,q.x),Ot=gt==="vertical"?Math.max(Y.y,q.y):Math.max(Y.x,q.x),Ft=h(gt,Nt,Lt,Ot),bt={edgeIndex:y,segmentIndex:P,orientation:gt,pipe:Ft,trackIndex:0,from:Lt,to:Ot};p.push(bt),x[y].push(p.length-1),Ft.tracks[0]||(Ft.tracks[0]={index:0,coord:Ft.coord,segments:[]}),Ft.tracks[0].segments.push({edgeIndex:y,segmentIndex:P,from:Lt,to:Ot})}}let lt=c((y,w)=>y.from<w.to&&w.from<y.to,"segmentsOverlap"),mt=c((y,w,k,C)=>{let E=!C.segments.some(V=>(V.edgeIndex!==w.edgeIndex||V.segmentIndex!==w.segmentIndex)&&lt(V,y)),B=!k.segments.some(V=>(V.edgeIndex!==y.edgeIndex||V.segmentIndex!==y.segmentIndex)&&lt(V,w));return E&&B?(y.trackIndex=C.index,w.trackIndex=k.index,k.segments=[...k.segments.filter(V=>V.edgeIndex!==y.edgeIndex||V.segmentIndex!==y.segmentIndex),{edgeIndex:w.edgeIndex,segmentIndex:w.segmentIndex,from:w.from,to:w.to}],C.segments=[...C.segments.filter(V=>V.edgeIndex!==w.edgeIndex||V.segmentIndex!==w.segmentIndex),{edgeIndex:y.edgeIndex,segmentIndex:y.segmentIndex,from:y.from,to:y.to}],!0):!1},"trySwapSegmentsAcrossTracks"),vt=c(y=>{let w=y.tracks.length;return y.tracks[w]={index:w,coord:y.coord,segments:[]},w},"createNewTrack"),Ct=c((y,w)=>{let k=y.pipe.tracks[y.trackIndex];k.segments=k.segments.filter(C=>C.edgeIndex!==y.edgeIndex||C.segmentIndex!==y.segmentIndex),y.trackIndex=w,y.pipe.tracks[w].segments.push({edgeIndex:y.edgeIndex,segmentIndex:y.segmentIndex,from:y.from,to:y.to})},"moveSegmentToTrack"),Kt=c((y,w)=>{let k=x[y.edgeIndex];for(let C of k){let E=p[C];E.pipe===y.pipe&&Ct(E,w)}},"moveSegmentChainToTrack"),Ht=c(y=>{let w=x[y.edgeIndex],k=w.indexOf(p.indexOf(y)),C=[];return k>0&&C.push(p[w[k-1]]),k<w.length-1&&C.push(p[w[k+1]]),C},"getAdjacentSegmentsAlongEdge"),ne=c((y,w)=>{if(y.orientation===w.orientation)return!1;let k=y.orientation==="horizontal"?y:w,C=y.orientation==="horizontal"?w:y;return C.pipe.coord>k.from&&C.pipe.coord<k.to&&k.pipe.coord>C.from&&k.pipe.coord<C.to},"haveAnyCrossing"),Se=c((y,w)=>{for(let k of y.tracks)if(!k.segments.some(C=>(C.edgeIndex!==w.edgeIndex||C.segmentIndex!==w.segmentIndex)&&lt(C,w)))return k.index;return-1},"findAvailableTrack"),Oe=c((y,w)=>{if(y.trackIndex===w.trackIndex)return lt(y,w);let k=Ht(y),C=Ht(w);return k.some(E=>C.some(B=>ne(E,B)))},"segmentsConflict"),ln=c((y,w,k)=>{if(mt(y,w,y.pipe.tracks[y.trackIndex],w.pipe.tracks[w.trackIndex]))return;let C=Se(y.pipe,w);k(w,C===-1?vt(y.pipe):C)},"resolveTrackConflict"),an=c(y=>{let w=0;for(let k=0;k<y.length;k++)for(let C=k+1;C<y.length;C++){let E=y[k],B=y[C];E.pipe===B.pipe&&Oe(E,B)&&(w++,ln(E,B,Kt))}return w},"resolveHandleConflicts"),Re=new Map,Ae=c(y=>{if(Re.has(y))return Re.get(y);let w=x[y];if(w.length===0){let V={dest:0,deviation:0,base:0,delta:0};return Re.set(y,V),V}let k=p[w[0]].pipe.coord,C=k;for(let V=1;V<w.length;V++){let rt=p[w[V]];if(rt.orientation==="horizontal"){let z=rt.from,G=rt.to;C=Math.abs(z-k)>Math.abs(G-k)?z:G;break}}let E=Math.abs(C-k),B={dest:C,deviation:E,base:k,delta:C-k};return Re.set(y,B),B},"getDestInfo"),R=c(()=>{let y=0,w=new Map;for(let[C,E]of o.entries())x[C].length!==0&&E.start&&(w.has(E.start)||w.set(E.start,[]),w.get(E.start).push(C));let k=c(C=>{let E=o[C];if(!E.start||!E.end)return 0;let B=i.get(E.start),V=i.get(E.end);if(!B||!V)return 0;let rt=(V.x??0)-(B.x??0),z=(V.y??0)-(B.y??0);return Math.abs(rt)+Math.abs(z)},"getEdgeDistance");for(let C of w.values()){C.sort((B,V)=>{let rt=Ae(B),z=Ae(V);if(Math.abs(rt.deviation-z.deviation)>1)return rt.deviation-z.deviation;if(Math.abs(rt.dest-z.dest)>1)return rt.dest-z.dest;let G=k(B),tt=k(V);if(Math.abs(G-tt)>1)return tt-G;let xt=x[B].length,$t=x[V].length;if(xt!==$t)return xt-$t;if(xt===1){let at=x[B][0],yt=x[V][0];if(p[at]&&p[yt]){let Et=p[at],jt=p[yt],de=Math.abs(Et.to-Et.from),Ee=Math.abs(jt.to-jt.from);if(Math.abs(de-Ee)>1)return de-Ee}}return 0});let E=C.map(B=>p[x[B][0]]);y+=an(E)}return y},"fixSourceHandleCrossings"),N=c(()=>{let y=0,w=new Map;for(let[k,C]of o.entries())x[k].length!==0&&C.end&&(w.has(C.end)||w.set(C.end,[]),w.get(C.end).push(k));for(let k of w.values()){k.sort((E,B)=>{let V=c(G=>{let tt=x[G];if(tt.length<2)return 0;let xt=p[tt[tt.length-2]];return Math.abs(xt.to-xt.from)},"getDist"),rt=V(E),z=V(B);return Math.abs(rt-z)>.1?rt-z:E-B});let C=k.map(E=>p[x[E][x[E].length-1]]);y+=an(C)}return y},"fixTargetHandleCrossings"),F=c(()=>{let y=0;for(let w of a){let k=[];for(let C of w.tracks)for(let E of C.segments){let B=x[E.edgeIndex].find(V=>p[V].segmentIndex===E.segmentIndex);B!==void 0&&k.push(p[B])}k.sort((C,E)=>C.edgeIndex-E.edgeIndex||C.segmentIndex-E.segmentIndex);for(let C=0;C<k.length;C++)for(let E=C+1;E<k.length;E++){let B=k[C],V=k[E];Oe(B,V)&&(y++,ln(B,V,Ct))}}return y},"fixPipeCrossings"),_=0;for(;_<10;){let y=0;if(y+=R(),y+=N(),y+=F(),y===0)break;_++}let j=new Map;for(let y of a){let w=[];y.tracks.forEach(C=>{C.segments.forEach(E=>{w.push({edgeIndex:E.edgeIndex,segmentIndex:E.segmentIndex,trackIndex:C.index,from:E.from,to:E.to})})}),w.sort((C,E)=>C.from-E.from);let k=[];if(w.length>0){let C=[w[0]],E=w[0].to;for(let B=1;B<w.length;B++){let V=w[B];V.from<E?(C.push(V),E=Math.max(E,V.to)):(k.push(C),C=[V],E=V.to)}k.push(C)}for(let C of k){let E=new Set;C.forEach(at=>E.add(at.trackIndex));let B=new Map;C.forEach(at=>{let yt=Ae(at.edgeIndex);B.set(at.trackIndex,(B.get(at.trackIndex)??0)+yt.delta)});let V=[...E].filter(at=>(B.get(at)??0)<-1),rt=[...E].filter(at=>(B.get(at)??0)>1),z=[...E].filter(at=>Math.abs(B.get(at)??0)<=1);V.sort((at,yt)=>(B.get(yt)??0)-(B.get(at)??0)),rt.sort((at,yt)=>(B.get(at)??0)-(B.get(yt)??0));let G=c((at,yt)=>{C.filter(Et=>Et.trackIndex===at).forEach(Et=>{let jt=M.has(Et.edgeIndex)?y.coord:yt;j.set(`${Et.edgeIndex}-${Et.segmentIndex}`,jt)})},"assignCoord"),tt=0;for(let at of V)tt++,G(at,y.coord-tt*pr);if(z.length===0&&E.size>0){let at=[...E].sort((jt,de)=>Math.abs(B.get(jt)??0)-Math.abs(B.get(de)??0))[0],yt=V.indexOf(at);yt!==-1&&V.splice(yt,1);let Et=rt.indexOf(at);Et!==-1&&rt.splice(Et,1),z.push(at)}let xt=0;for(let at of z){if(xt===0)G(at,y.coord);else{let yt=xt%2==1?1:-1,Et=Math.ceil(xt/2);G(at,y.coord+yt*Et*pr*.5)}xt++}let $t=0;for(let at of rt)$t++,G(at,y.coord+$t*pr)}}for(let[y,w]of o.entries()){let k=x[y]??[];if(k.length===0)continue;let C=[],{pSrcPort:E,pDstPort:B}=et(y,i.get(w.start),i.get(w.end)),V=k.map(G=>{let tt=p[G],xt=j.get(`${tt.edgeIndex}-${tt.segmentIndex}`)??tt.pipe.coord;return{orient:tt.orientation,coord:xt,from:tt.from,to:tt.to}});C.push(E);for(let G=0;G<V.length;G++){let tt=V[G],xt=C[C.length-1],$t=tt.orient==="vertical"?xt.y:xt.x,at=tt.orient==="vertical"?xt.x:xt.y,yt=V[G+1],Et=G<V.length-1;if(Math.abs(at-tt.coord)>ft&&C.push(Ie(tt,$t)),Et&&yt.orient===tt.orient)if(Math.abs(tt.coord-yt.coord)>ft){let jt=tt.orient==="vertical"?($t+yt.from)/2:xr(tt,yt);C.push(Ie(tt,jt),Ie(yt,jt))}else(G===0||G===V.length-2)&&C.push(Ie(tt,xr(tt,yt)));else if(Et)C.push(Ie(tt,yt.coord));else{let jt=Math.abs(tt.from-$t)<Math.abs(tt.to-$t)?tt.to:tt.from;C.push(Ie(tt,jt))}}let rt=C[C.length-1];(Math.abs(rt.x-B.x)>ft||Math.abs(rt.y-B.y)>ft)&&C.push(B);let z=[];C.length>0&&z.push(C[0]);for(let G=1;G<C.length;G++){let tt=C[G],xt=z[z.length-1];(Math.abs(tt.x-xt.x)>ft||Math.abs(tt.y-xt.y)>ft)&&z.push(tt)}w.points=z}for(let y of o){let w=y.__originalEdge;w&&y.points&&(w.points=y.points)}t.edges=(t.edges??[]).filter(y=>!y.isLayoutOnly);let D=c((y,w)=>{let k=w.x??0,C=w.y??0,E=w.width??0,B=w.height??0;if(E<=0||B<=0)return y;let V=k-E/2,rt=k+E/2,z=C-B/2,G=C+B/2;if(y.x<V||y.x>rt||y.y<z||y.y>G)return y;let tt=y.x-V,xt=rt-y.x,$t=y.y-z,at=G-y.y,yt=Math.min(tt,xt,$t,at);return yt===tt?{x:V,y:y.y}:yt===xt?{x:rt,y:y.y}:yt===$t?{x:y.x,y:z}:{x:y.x,y:G}},"nodeBoundaryClamp");for(let y of t.edges){let w=y.points;if(!w||w.length<2)continue;let k=y.start,C=y.end,E=k?i.get(k):void 0,B=C?i.get(C):void 0;E&&(w[0]=D(w[0],E)),B&&(w[w.length-1]=D(w[w.length-1],B))}return t}c(si,"routeEdgesOrthogonal");function fi(t){return t.direction??"TB"}c(fi,"getSwimlaneDirection");function di(t){var g,h,s,u,p;let e=zr(t),n=((g=t.config.flowchart)==null?void 0:g.nodeSpacing)??40,r=((h=t.config.flowchart)==null?void 0:h.rankSpacing)??100,o=((s=t.config.swimlane)==null?void 0:s.ignoreCrossLaneEdges)??!0,i=((u=t.config.swimlane)==null?void 0:u.optimizeRanksByCrossings)??!0,l=((p=t.config.swimlane)==null?void 0:p.automaticLaneOrdering)??!1,a=fi(t),{ordered:f,coordinates:d}=ai(e,{nodeGap:n,layerGap:r,ignoreCrossLaneEdges:o,optimizeRanksByCrossings:i,automaticLaneOrdering:l,direction:a});Gr(e,f,d,{nodeGap:n,layerGap:r});for(let x of t.edges??[])delete x.points;si(t,a);for(let x of t.edges??[])(!x.curve||x.curve==="basis")&&(x.curve="rounded");return vo(t,a),wo(t),a}c(di,"runSwimlaneLayoutCore"),wr=async function(t,e){let n=e.select("g");Wi(n,t.markers,t.type,t.diagramId),ji(),Ki(),Vi(),Ai(),_r(t);let r=Dr(t);t.nodes=r.nodes,t.edges=r.edges;let{groups:o}=await vr(n,t);di(t),await Ar(t,o)},c(wr,"render")});export{Zi as __tla,wr as render};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./sizeCapture-X5ZJPWSS-BwnqWK01.js","./chunk-Y2CYZVJY-BLNiTciS.js"])))=>i.map(i=>d[i]);
2
+ import{t as Bi}from"./graphlib-DZLM-yn_.js";import{n as Ai}from"./chunk-RYQCIY6F-CZjjwaqg.js";import{t as Pi}from"./preload-helper-BPPi7vOr.js";import"./purify.es-Bwm8T4QC.js";import{_ as Pe}from"./chunk-NSK5VX7P-B_lLBcNS.js";import"./src-DRYM6eUR.js";import{n as c}from"./chunk-Y2CYZVJY-BLNiTciS.js";import{t as cn}from"./src-BydIU0H9.js";import{b as Xi,x as Yi,__tla as _i}from"./chunk-I66GZJ75-BWcitPjS.js";import"./chunk-W5SLKNZC-DBMPI1Hf.js";import"./dist-BdgY02GB.js";import{n as zi}from"./chunk-UBXNYLIW-XbwBj9py.js";import"./chunk-4I5QYGJK-o2gGFKEO.js";import"./chunk-WRU74C26-HbDQnuwB.js";import{a as Gi,c as Di,i as Hi,n as ji,t as Vi}from"./chunk-QR6OTTB3-Xk5It1Th.js";import{r as mi}from"./chunk-7BUUIJ7U-VPkRElaC.js";import{a as Wi,i as Ui,n as qi,r as Ji,s as gn,t as Ki}from"./chunk-7Z6QIM7H-CSiw9nlS.js";let wr,Zi=Promise.all([(()=>{try{return _i}catch{}})()]).then(async()=>{async function vr(t,e){let n=new Bi({multigraph:!0,compound:!0}),r=[...e.edges],o=Yi(),i=t.insert("g").attr("class","root"),l=i.insert("g").attr("class","clusters"),a=i.insert("g").attr("class","edges edgePath"),f=i.insert("g").attr("class","edgeLabels"),d=i.insert("g").attr("class","nodes"),g=new Map,h=t.node()!=null;await Promise.all(e.nodes.map(async s=>{var u;if(s.isGroup)n.setNode(s.id,{...s});else{if(h){let p=await Gi(d,s,{config:o,dir:s.dir}),x=((u=p.node())==null?void 0:u.getBBox())??{width:0,height:0};g.set(s.id,p),s.width=x.width,s.height=x.height}n.setNode(s.id,{...s})}}));for(let s of r)n.setEdge(s.start,s.end,{...s},s.id),e.edges.some(u=>u.id===s.id)||e.edges.push(s);if(globalThis.mermaidCaptureSizes){let{captureNodeSizes:s}=await Pi(async()=>{let{captureNodeSizes:u}=await import("./sizeCapture-X5ZJPWSS-BwnqWK01.js").then(async p=>(await p.__tla,p));return{captureNodeSizes:u}},__vite__mapDeps([0,1]),import.meta.url);s(t,e)}return{graph:n,groups:{clusters:l,edgePaths:a,edgeLabels:f,nodes:d,rootGroups:i},nodeElements:g}}c(vr,"createGraphWithElements");var Lr=5,Xe=1e-5,Ye=1e-6;function _e(t){let e=[];for(let n=0;n<t.length-1;n++)e.push({a:t[n],b:t[n+1]});return e}c(_e,"buildSegmentList");function Cr(t,e,n,r){let o=e.x-t.x,i=e.y-t.y,l=r.x-n.x,a=r.y-n.y,f=o*a-i*l;if(f===0)return null;let d=n.x-t.x,g=n.y-t.y,h=(d*a-g*l)/f,s=(d*i-g*o)/f;return h<=Ye||h>=1-Ye||s<=Ye||s>=1-Ye?null:{point:{x:t.x+h*o,y:t.y+h*i},tA:h,tB:s}}c(Cr,"segmentIntersection");function pn(t){return Math.abs(t.b.x-t.a.x)>=Math.abs(t.b.y-t.a.y)}c(pn,"isHorizontalSeg");function Tr(t){let e=[];for(let n=0;n<t.length;n++){let r=t[n],o=_e(r.points);for(let i=n+1;i<t.length;i++){let l=t[i],a=_e(l.points);for(let[f,d]of o.entries())for(let[g,h]of a.entries()){let s=Cr(d.a,d.b,h.a,h.b);if(!s)continue;let u=pn(d);u!==pn(h)&&u?e.push({jumpEdgeId:r.id,otherEdgeId:l.id,segIndex:f,t:s.tA,point:s.point}):e.push({jumpEdgeId:l.id,otherEdgeId:r.id,segIndex:g,t:s.tB,point:s.point})}}}return e}c(Tr,"findEdgeIntersections");function re(t){return`${Math.round(t*1e3)/1e3}`}c(re,"fmt");function ve(t){return`${re(t.x)},${re(t.y)}`}c(ve,"pointToString");function kr(t){let e=t.b.x-t.a.x,n=t.b.y-t.a.y;return Math.abs(e)>=Math.abs(n)?e>=0?1:0:n>=0?1:0}c(kr,"getArcSweepFlag");var xi=.001;function Or(t,e){if(t.length<2)return t.map(i=>({...i}));let n=t.map(i=>({...i})),r=e.arrowTypeStart&&mi[e.arrowTypeStart];if(r){let i=t[0],l=t[1],a=Math.atan2(l.y-i.y,l.x-i.x);n[0].x=i.x+r*Math.cos(a),n[0].y=i.y+r*Math.sin(a)}let o=e.arrowTypeEnd&&mi[e.arrowTypeEnd];if(o){let i=t.length,l=t[i-2],a=t[i-1],f=Math.atan2(a.y-l.y,a.x-l.x);n[i-1].x=a.x-o*Math.cos(f),n[i-1].y=a.y-o*Math.sin(f)}return n}c(Or,"applyMarkerOffsets");function Rr(t,e,n,r,o){let i=t.point.x,l=t.point.y,a={x:i-e*t.r,y:l-n*t.r},f={x:i+e*t.r,y:l+n*t.r},d=[`L${ve(a)}`];return o==="arc"?d.push(`A${re(t.r)},${re(t.r)} 0 0 ${r} ${ve(f)}`):d.push(`M${ve(f)}`),d}c(Rr,"emitJump");function mn(t,e,n,r){let o=e.x-t.x,i=e.y-t.y,l=n.x-e.x,a=n.y-e.y,f=Math.hypot(o,i),d=Math.hypot(l,a);if(f<Xe||d<Xe)return null;let g=o/f,h=i/f,s=l/d,u=a/d,p=g*s+h*u,x=Math.max(-1,Math.min(1,p)),M=Math.acos(x);if(M<Xe||Math.abs(Math.PI-M)<Xe)return null;let m=Math.min(r/Math.sin(M/2),f/2,d/2);return{startX:e.x-g*m,startY:e.y-h*m,endX:e.x+s*m,endY:e.y+u*m,ctrlX:e.x,ctrlY:e.y,cutLen:m}}c(mn,"computeRoundedCorner");function Er(t,e,n){let r=t.points;if(r.length<2)return"";let o=Or(r,t),i=t.curve==="rounded",l=_e(o),a=new Map;for(let d of e){let g=l[d.segIndex];if(!g)continue;let h=Math.hypot(g.b.x-g.a.x,g.b.y-g.a.y),s=a.get(d.segIndex)??[];s.push({t:d.t,point:d.point,d:d.t*h,r:n.jumpRadius}),a.set(d.segIndex,s)}let f=[`M${ve(o[0])}`];for(let d=0;d<l.length;d++){let g=l[d],h=Math.hypot(g.b.x-g.a.x,g.b.y-g.a.y),s=h===0?0:(g.b.x-g.a.x)/h,u=h===0?0:(g.b.y-g.a.y)/h,p=kr(g),x=0;if(i&&d>0){let I=mn(o[d-1],o[d],o[d+1]??o[d],Lr);I&&(x=I.cutLen)}let M=h,m=null;i&&d<l.length-1&&(m=mn(o[d],o[d+1],o[d+2]??o[d+1],Lr),m&&(M=h-m.cutLen));let b=[...a.get(d)??[]].sort((I,v)=>I.t-v.t);for(let I of b)I.r=Math.min(I.r,I.d-x,M-I.d);for(let I=0;I<b.length-1;I++){let v=b[I+1].d-b[I].d;if(b[I].r+b[I+1].r>v){let S=v/2;b[I].r=Math.min(b[I].r,S),b[I+1].r=Math.min(b[I+1].r,S)}}for(let I of b)I.r<xi||f.push(...Rr(I,s,u,p,n.jumpStyle));i&&m?(f.push(`L${re(m.startX)},${re(m.startY)}`),f.push(`Q${re(m.ctrlX)},${re(m.ctrlY)} ${re(m.endX)},${re(m.endY)}`)):f.push(`L${ve(g.b)}`)}return f.join(" ")}c(Er,"rewriteEdgePath");function $r(t){return/^[\d\s+,.LMelm-]*$/.test(t)}c($r,"isStraightPath");function Nr(t){return t?t==="linear"||t==="rounded"||t==="step"||t==="stepBefore"||t==="stepAfter":!0}c(Nr,"curveSupportsLineHops");function Fr(t){if(!t)return null;try{let e=typeof atob=="function"?atob(t):Buffer.from(t,"base64").toString(),n=JSON.parse(e);if(!Array.isArray(n))return null;let r=[];for(let o of n)o&&typeof o.x=="number"&&typeof o.y=="number"&&r.push({x:o.x,y:o.y});return r.length>=2?r:null}catch{return null}}c(Fr,"decodeDataPoints");function Br(t,e,n){var d;if(!n.enabled)return;let r=t.node();if(!r)return;let o=new Map;for(let g of e)o.set(g.id,g);let i=[],l=new Map;for(let g of e){let h=typeof CSS<"u"&&CSS.escape?CSS.escape(g.id):g.id,s=r.querySelector(`path[data-id="${h}"]`);if(!s)continue;l.set(g.id,s);let u=Fr(s.getAttribute("data-points"))??g.points;i.push({...g,points:u})}let a=Tr(i);if(a.length===0)return;let f=new Map;for(let g of a){let h=f.get(g.jumpEdgeId)??[];h.push(g),f.set(g.jumpEdgeId,h)}for(let g of i){let h=f.get(g.id);if(!h||h.length===0)continue;let s=(d=o.get(g.id))==null?void 0:d.curve;if(s!==void 0&&!Nr(s))continue;let u=l.get(g.id);if(!u||s===void 0&&!$r(u.getAttribute("d")??""))continue;let p=u.getAttribute("style")??"",x=/stroke-dasharray\s*:\s*0\s+([\d.]+)\s+[\d.]+\s+([\d.]+)/.exec(p),M=x?Number.parseFloat(x[1]):null,m=x?Number.parseFloat(x[2]):null,b=Er(g,h,n);if(u.setAttribute("d",b),M!==null&&m!==null&&typeof u.getTotalLength=="function"){let I=u.getTotalLength(),v=`0 ${M} ${Math.max(0,I-M-m)} ${m}`,S=p.replace(/stroke-dasharray\s*:[^;]*;?/g,`stroke-dasharray: ${v};`).replace(/;\s*;+/g,";");u.setAttribute("style",S)}}}c(Br,"applyLineJumpsToSvg");async function Ar(t,e){var o,i;for(let l of t.nodes)l.isGroup?await Hi(e.clusters,l):Di(l);let n=new Map;for(let l of t.nodes)l!=null&&l.id&&n.set(l.id,l);for(let l of t.edges){let a=l.start?n.get(l.start)??{}:{},f=l.end?n.get(l.end)??{}:{},d=Ji(e.edgePaths,{...l},{},t.type,a,f,t.diagramId);l.label&&await Ui(e.rootGroups,l),l.label&&Pr(l,d)}let r=(i=(o=t.config)==null?void 0:o.swimlane)==null?void 0:i.lineHops;if(r!==!1){let l=r==="gap"?"gap":"arc",a=t.edges.filter(f=>Array.isArray(f.points)&&f.points.length>=2).map(f=>({id:f.id,points:f.points,curve:f.curve,arrowTypeStart:f.arrowTypeStart,arrowTypeEnd:f.arrowTypeEnd}));Br(e.edgePaths,a,{enabled:!0,jumpRadius:6,jumpStyle:l})}}c(Ar,"adjustLayout");function Pr(t,e){let n=(e==null?void 0:e.updatedPath)??(e==null?void 0:e.originalPath),{subGraphTitleTotalMargin:r}=zi({flowchart:Xi().flowchart??{}});if(t.label){let o=qi.get(t.id),i=t.x,l=t.y;if(n){let a=Pe.calcLabelPosition(n);cn.debug("Moving label "+t.label+" from (",i,",",l,") to (",a.x,",",a.y,") abc88"),e&&(i=a.x,l=a.y)}o.attr("transform",`translate(${i}, ${l+r/2})`)}if(t!=null&&t.startLabelLeft){let o=gn.get(t.id).startLeft,i=t==null?void 0:t.x,l=t==null?void 0:t.y;if(n){let a=Pe.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",n);i=a.x,l=a.y}o.attr("transform",`translate(${i}, ${l})`)}if(t.startLabelRight){let o=gn.get(t.id).startRight,i=t.x,l=t.y;if(n){let a=Pe.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",n);i=a.x,l=a.y}o.attr("transform",`translate(${i}, ${l})`)}if(t.endLabelLeft){let o=gn.get(t.id).endLeft,i=t.x,l=t.y;if(n){let a=Pe.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",n);i=a.x,l=a.y}o.attr("transform",`translate(${i}, ${l})`)}if(t.endLabelRight){let o=gn.get(t.id).endRight,i=t.x,l=t.y;if(n){let a=Pe.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",n);i=a.x,l=a.y}o.attr("transform",`translate(${i}, ${l})`)}}c(Pr,"positionEdgeLabel");var xn="__swimlane_default__",yi=21,Xr=20;function yn(t){return Math.max(t.padding??Xr,Xr)}c(yn,"topLaneHorizontalPadding");function Yr(t){let{x:e,y:n,width:r,height:o}=t,i=t.swimlaneContentTop;if(typeof e!="number"||typeof n!="number"||typeof r!="number"||typeof o!="number"||typeof i!="number"||!Number.isFinite(e)||!Number.isFinite(n)||!Number.isFinite(r)||!Number.isFinite(o)||!Number.isFinite(i)||r<=0||o<=0){delete t.groupTitleRect;return}let l=n-o/2,a=Math.min(i,n+o/2),f=l+Math.min(yi,Math.max(0,a-l));if(f<=l){delete t.groupTitleRect;return}t.groupTitleRect={left:e-r/2,right:e+r/2,top:l,bottom:f}}c(Yr,"assignTopLaneTitleRect");function _r(t){let e=t.direction,n=t.nodes??(t.nodes=[]);for(let i of t.nodes??[])i.isGroup&&!i.parentId&&(i.shape="swimlane",e&&(i.direction=e));let r=n.filter(i=>!i.isGroup&&!i.parentId);if(r.length===0)return;let o=n.find(i=>i.id===xn);o?o.isGroup&&(o.shape="swimlane",e&&(o.direction=e)):(o={id:xn,label:"",isGroup:!0,shape:"swimlane",padding:20,...e?{direction:e}:{}},n.push(o));for(let i of r)i.parentId=xn}c(_r,"prepareLayoutForSwimlanes");function zr(t){let e=new Map;for(let l of t.nodes??[])e.set(l.id,l);let n=[];for(let l of t.edges??[]){let a=typeof l.start=="string"?l.start:void 0,f=typeof l.end=="string"?l.end:void 0;!a||!f||l.labelNodeId||n.push({id:l.id,src:a,dst:f,ref:l})}let r=t.nodes??[],o=r.filter(l=>l.isGroup),i=r.filter(l=>!l.isGroup);return{nodes:[...[...o].reverse(),...i].map(l=>l.id),edges:n,layout:t,nodeById:e}}c(zr,"toGraphView");function Gr(t,e,n,r){let{layout:o}=t,i=t.nodeById,l=(r==null?void 0:r.layerGap)??100,a=(r==null?void 0:r.nodeGap)??40,f=0;for(let s of e.layers){let u=0;for(let p of s){let x=i.get(p);if(!x){u++;continue}x.layer=f,x.order=u;let M=n.x[p]??u*a,m=n.y[p]??f*l;x.x=M,x.y=m,u++}f++}let d=o.nodes??[],g=new Map,h=[];for(let s of d){if(!(s!=null&&s.isGroup))continue;s.parentId||h.push(s);let u=d.filter(b=>b.parentId===s.id),p=1/0,x=-1/0,M=1/0,m=-1/0;for(let b of u){let I=b.x??n.x[b.id],v=b.y??n.y[b.id],S=b.width??0,L=b.height??0;I!=null&&v!=null&&(p=Math.min(p,I-S/2),x=Math.max(x,I+S/2),M=Math.min(M,v-L/2),m=Math.max(m,v+L/2))}if(p===1/0||M===1/0)s.x=s.x??0,s.y=s.y??0,s.width=s.width??0,s.height=s.height??0;else{let b=s.padding??20,I=s.parentId?b:2*yn(s),v=b,S=Math.max(0,x-p)+I,L=Math.max(0,m-M)+v,T=(p+x)/2,O=(M+m)/2;s.x=T,s.y=O,s.width=S,s.height=L,g.set(s.id,{minX:p,maxX:x,minY:M,maxY:m})}}if(h.length>0&&g.size>0){let s=1/0,u=-1/0,p=0;for(let x of h){let M=x.padding??20;M>p&&(p=M);let m=g.get(x.id);m&&(s=Math.min(s,m.minY),u=Math.max(u,m.maxY))}if(s!==1/0&&u!==-1/0){let x=Math.max(0,u-s)+2*Math.max(p,36),M=(s+u)/2;for(let L of h)L.y=M,L.height=x,L.swimlaneContentTop=s;let m=[...h].sort((L,T)=>(L.x??0)-(T.x??0)),b=[],I=[],v=[];for(let L of m){let T=g.get(L.id);if(!T)continue;let O=Math.max(0,T.maxX-T.minX)+2*yn(L),$=(T.minX+T.maxX)/2;b.push(L.id),I.push($),v.push(O)}let S=b.length;if(S>0){let L=new Map;if(S===1)L.set(b[0],v[0]);else{let T=[];for(let X=0;X<S-1;X++)T.push(I[X+1]-I[X]);let O=Array(S);O[0]=0;for(let X=0;X<S-1;X++)O[X+1]=2*T[X]-O[X];let $=0,U=1/0;for(let X=0;X<S;X++){let Z=v[X];X%2==0?$=Math.max($,Z-O[X]):U=Math.min(U,O[X]-Z)}let A=$;A=$<=U?($+U)/2:$;for(let X=0;X<S;X++){let Z=O[X]+(X%2==0?A:-A),it=Math.max(v[X],Z);L.set(b[X],it)}}for(let T of h){let O=L.get(T.id);O!=null&&(T.width=O),Yr(T)}}}}}c(Gr,"writeBackToLayoutData");var bi="[EdgeLabelNodes]";function Dr(t){let e=[],n=[],r=new Map;for(let l of t.nodes)r.set(l.id,l);for(let l of t.edges){if(!l.label||l.label.length===0||l.isLayoutOnly||l.labelNodeId)continue;let a=l.start?r.get(l.start):void 0,f=l.end?r.get(l.end):void 0;if(!a||!f){cn.warn(bi,`Edge ${l.id} has missing source or target node`);continue}let d=`edge-label-${l.start}-${l.end}-${l.id}`,g=a.parentId===f.parentId?a.parentId:f.parentId,h={id:d,label:l.label,edgeStart:l.start??"",edgeEnd:l.end??"",shape:"labelRect",width:0,height:0,isEdgeLabel:!0,isDummy:!0,parentId:g,isGroup:!1,labelStyle:Array.isArray(l.labelStyle)?l.labelStyle[0]:l.labelStyle??"",...a.dir?{dir:a.dir}:{}};e.push(h),l.labelNodeId=d,l.label=void 0,l.text=void 0;let s={id:`${l.id}-to-label`,start:l.start,end:d,type:"normal",isLayoutOnly:!0},u={id:`${l.id}-from-label`,start:d,end:l.end,type:"normal",isLayoutOnly:!0};n.push(s,u)}let o=[...t.nodes,...e],i=[...t.edges,...n];return{...t,nodes:o,edges:i}}c(Dr,"createEdgeLabelNodes");var Xt=.001;function bn(t){let e=t.x??0,n=t.y??0,r=t.width??0,o=t.height??0;return r>0&&o>0?{cx:e,cy:n,rect:Ce(e,n,r,o)}:void 0}c(bn,"measuredNodeRect");function Mn(t){if(t.isGroup)return;let e=bn(t);if(e)return{id:String(t.id??""),cx:e.cx,cy:e.cy,rect:e.rect}}c(Mn,"nodeBoundsInfoFor");function te(t,e,n=Xt){return Math.abs(t.x-e.x)<n&&Math.abs(t.y-e.y)<n}c(te,"samePoint");function ht(t,e,n=Xt){return Math.abs(t.x-e.x)<n}c(ht,"sameX");function pt(t,e,n=Xt){return Math.abs(t.y-e.y)<n}c(pt,"sameY");function Tt(t,e,n=Xt){return pt(t,e,n)&&Math.abs(t.x-e.x)>n}c(Tt,"isHorizontalSegment");function kt(t,e,n=Xt){return ht(t,e,n)&&Math.abs(t.y-e.y)>n}c(kt,"isVerticalSegment");function Dt(t,e,n,r){return Math.max(0,Math.min(Math.max(t,e),Math.max(n,r))-Math.max(Math.min(t,e),Math.min(n,r)))}c(Dt,"overlapLength");function ie(t,e,n=Xt){return t.horizontal&&e.horizontal&&pt(t.a,e.a,n)?Dt(t.a.x,t.b.x,e.a.x,e.b.x):t.vertical&&e.vertical&&ht(t.a,e.a,n)?Dt(t.a.y,t.b.y,e.a.y,e.b.y):0}c(ie,"sameAxisSegmentOverlapLength");function Le(t,e=Xt){let n=[];for(let r=0;r<t.length-1;r++){let o=t[r],i=t[r+1],l=Tt(o,i,e),a=kt(o,i,e);(l||a)&&n.push({index:r,a:o,b:i,horizontal:l,vertical:a})}return n}c(Le,"orthogonalSegmentsForPoints");function Jt(t,e=Xt){let n=Le(t,e),r=0;for(let o=1;o<n.length;o++)n[o-1].horizontal!==n[o].horizontal&&r++;return r}c(Jt,"countOrthogonalBends");function Mt(t,e=Xt){let n=[];for(let r of t){let o=n.length>0?n[n.length-1]:void 0;(!o||!te(o,r,e))&&n.push({x:r.x,y:r.y})}return n}c(Mt,"dedupeConsecutivePoints");function In(t,e=Xt){if(!t||t.length!==4)return;let[n,r,o,i]=t;return Tt(n,r,e)&&kt(r,o,e)&&Tt(o,i,e)?{kind:"HVH",p0:n,p1:r,p2:o,p3:i}:kt(n,r,e)&&Tt(r,o,e)&&kt(o,i,e)?{kind:"VHV",p0:n,p1:r,p2:o,p3:i}:void 0}c(In,"classifyThreeSegmentRoute");function ze(t,e,n,r=0){let o=Math.min(t.x,e.x),i=Math.max(t.x,e.x),l=Math.min(t.y,e.y),a=Math.max(t.y,e.y);return i>n.left-r&&o<n.right+r&&a>n.top-r&&l<n.bottom+r}c(ze,"segmentBoundsOverlapRect");function Sn(t,e,n=0){return t.x>e.left+n&&t.x<e.right-n&&t.y>e.top+n&&t.y<e.bottom-n}c(Sn,"pointInsideRect");function Hr(t,e){return t.left<=e.left&&t.right>=e.right&&t.top<=e.top&&t.bottom>=e.bottom}c(Hr,"rectContainsRect");function Ge(t,e){return t.left<e.right&&t.right>e.left&&t.top<e.bottom&&t.bottom>e.top}c(Ge,"rectsOverlap");function wn(t,e){return{left:t.left-e,right:t.right+e,top:t.top-e,bottom:t.bottom+e}}c(wn,"inflateRect");function Ce(t,e,n,r){return{left:t-n/2,right:t+n/2,top:e-r/2,bottom:e+r/2}}c(Ce,"rectFromCenterSize");function Vt(t){var e;return(e=bn(t))==null?void 0:e.rect}c(Vt,"rectOfNodeBounds");function be(t,e){switch(e){case"top":return{x:t.cx,y:t.rect.top};case"bottom":return{x:t.cx,y:t.rect.bottom};case"left":return{x:t.rect.left,y:t.cy};case"right":return{x:t.rect.right,y:t.cy}}}c(be,"portForRectSide");function vn(t,e,n,r,o,i=Xt){let l=e==="left"||e==="right",a=r==="left"||r==="right";if(l&&a){if(e==="right"&&r==="left"&&t.x<n.x||e==="left"&&r==="right"&&t.x>n.x){if(pt(t,n,i))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===r){if(pt(t,n,i))return;let g=e==="left"?Math.min(t.x,n.x)-o:Math.max(t.x,n.x)+o;return[t,{x:g,y:t.y},{x:g,y:n.y},n]}return}if(!l&&!a){if(e===r){if(ht(t,n,i))return;let h=e==="top"?Math.min(t.y,n.y)-o:Math.max(t.y,n.y)+o;return[t,{x:t.x,y:h},{x:n.x,y:h},n]}if(!(e==="bottom"&&r==="top"&&t.y<n.y||e==="top"&&r==="bottom"&&t.y>n.y))return;if(ht(t,n,i))return[t,n];let g=(t.y+n.y)/2;return[t,{x:t.x,y:g},{x:n.x,y:g},n]}if(l&&!a){let g=e==="right"&&n.x>t.x||e==="left"&&n.x<t.x,h=r==="top"&&t.y<n.y||r==="bottom"&&t.y>n.y;return g&&h?[t,{x:n.x,y:t.y},n]:void 0}let f=e==="bottom"&&n.y>t.y||e==="top"&&n.y<t.y,d=r==="left"&&t.x<n.x||r==="right"&&t.x>n.x;return f&&d?[t,{x:t.x,y:n.y},n]:void 0}c(vn,"buildOrthogonalPortPath");function Ln(t,e,n,r){return e==="left"||e==="right"?[t,{x:r,y:t.y},{x:r,y:n.y},n]:[t,{x:t.x,y:r},{x:n.x,y:r},n]}c(Ln,"buildSameSideTrackPath");function De(t){let e=new Map,n=[];for(let r of t){if(r.isEdgeLabel)continue;let o=Mn(r);o&&(e.set(o.id,o),n.push({id:o.id,rect:o.rect}))}return{nodeInfoById:e,realNodeRects:n}}c(De,"collectRealNodeBounds");function ue(t){let e=[],n=[];for(let r of t){let o=Mn(r);if(!o)continue;let i={id:o.id,rect:o.rect};r.isEdgeLabel?n.push(i):e.push(i)}return{realNodeRects:e,labelNodeRects:n}}c(ue,"collectNodeRectEntries");function jr(t,{includeEdgeLabels:e=!0}={}){let n=[];for(let r of t){if(r.isGroup||!e&&r.isEdgeLabel)continue;let o=r.x??0,i=r.y??0,l=r.width??0,a=r.height??0;n.push({nodeId:r.id,...Ce(o,i,l,a)})}return n}c(jr,"collectLayoutNodeRects");function Cn(t,e,n=Xt){let r=t.start,o=t.end;if(!r||!o)return;let i=e.get(r),l=e.get(o);if(!(!i||!l))return{srcId:r,dstId:o,srcInfo:i,dstInfo:l,collinearX:Math.abs(i.cx-l.cx)<n,collinearY:Math.abs(i.cy-l.cy)<n}}c(Cn,"getNodePairGeometry");function Rt(t,e,n,r=[],o=0){for(let i of n)if(!r.includes(i.id)&&ze(t,e,i.rect,-o))return!0;return!1}c(Rt,"segmentHitsAnyRect");function Tn(t,e,n,r,o=Xt,i=1e-6){let l=pt(t,e,o),a=ht(t,e,o),f=pt(n,r,o),d=ht(n,r,o);if(l&&f||a&&d||!(l||a)||!(f||d))return!1;let g=l?{a:t,b:e}:{a:n,b:r},h=a?{a:t,b:e}:{a:n,b:r},s=g.a.y,u=Math.min(g.a.x,g.b.x),p=Math.max(g.a.x,g.b.x),x=h.a.x,M=Math.min(h.a.y,h.b.y),m=Math.max(h.a.y,h.b.y);if(x<u||x>p||s<M||s>m)return!1;let b=Math.abs(x-g.a.x)<i&&Math.abs(s-g.a.y)<i||Math.abs(x-g.b.x)<i&&Math.abs(s-g.b.y)<i,I=Math.abs(x-h.a.x)<i&&Math.abs(s-h.a.y)<i||Math.abs(x-h.b.x)<i&&Math.abs(s-h.b.y)<i;return!(b&&I)}c(Tn,"orthogonalSegmentsCross");function Vr(t,e,n,r,o=Xt){let i=pt(t,e,o),l=ht(t,e,o),a=pt(n,r,o),f=ht(n,r,o);return l&&f&&ht(t,n,o)?Dt(t.y,e.y,n.y,r.y)>o:i&&a&&pt(t,n,o)?Dt(t.x,e.x,n.x,r.x)>o:!1}c(Vr,"sameAxisSegmentsOverlap");function He(t,e,n,r,{epsilon:o=Xt,skipDegenerateOther:i=!1}={}){for(let l of n){if(l===r||l.isLayoutOnly)continue;let a=l.points;if(!(!a||a.length<2))for(let f=0;f<a.length-1;f++){let d=a[f],g=a[f+1];if(!(i&&te(d,g,o))&&(Tn(t,e,d,g,o)||Vr(t,e,d,g,o)))return!0}}return!1}c(He,"segmentConflictsWithAnyEdge");function se(t,e,n,r,o=Xt){let i=pt(t,e,o),l=ht(t,e,o),a=pt(n,r,o),f=ht(n,r,o);if(!(i&&f||l&&a))return!1;let d=i?{a:t,b:e}:{a:n,b:r},g=i?{a:n,b:r}:{a:t,b:e},h=d.a.y,s=Math.min(d.a.x,d.b.x),u=Math.max(d.a.x,d.b.x),p=g.a.x,x=Math.min(g.a.y,g.b.y),M=Math.max(g.a.y,g.b.y);return p>s+o&&p<u-o&&h>x+o&&h<M-o}c(se,"orthogonalSegmentsStrictlyCross");function kn(t,e,n){let r=Math.min(e,n),o=Math.max(e,n);return t>r+Xt&&t<o-Xt}c(kn,"strictlyBetween");function Wr(t,e,n){return ht(t,e)&&ht(e,n)?kn(e.y,t.y,n.y):pt(t,e)&&pt(e,n)?kn(e.x,t.x,n.x):!1}c(Wr,"isCollinearIntermediate");function Ur(t){let e=!1,n=[];for(let r=0;r<t.length;r++){let o=n[n.length-1],i=t[r],l=r+1<t.length?t[r+1]:void 0;if(o&&l){if(te(o,l)){r++,e=!0;continue}if(Wr(o,i,l)){e=!0;continue}}n.push(i)}return{points:n,changed:e}}c(Ur,"simplifyPolylineOnce");function je(t){let e=[t[0]];for(let r=1;r<t.length;r++){let o=e[e.length-1],i=t[r];if(!ht(o,i)&&!pt(o,i)){let l=e.length>=2?e[e.length-2]:void 0,a=l&&ht(l,o)?{x:o.x,y:i.y}:{x:i.x,y:o.y};e.push(a)}e.push(i)}let n=[];for(let r of e){let o=n[n.length-1];(!o||!te(o,r))&&n.push(r)}return n}c(je,"orthogonalizePolyline");function le(t){if(t.length<3)return t;let e=[...t];for(let n=0;n<32;n++){let r=Ur(e);if(e=r.points,!r.changed)break}return e}c(le,"simplifyPolyline");var ot=.001,Mi=.5,qr=4;function On(t,e,n){let r=t;if(r.isLayoutOnly||!r.points||r.points.length<n)return;let o=r.start?e.get(r.start):void 0,i=r.end?e.get(r.end):void 0;return{edge:r,points:r.points,srcRect:o?Vt(o):void 0,dstRect:i?Vt(i):void 0}}c(On,"endpointContextFor");function Jr(t,e,n){if(pt(t,e,ot))return{x:t.x<n.left?n.left:n.right,y:t.y};if(ht(t,e,ot)){let r=t.y<n.top?n.top:n.bottom;return{x:t.x,y:r}}return{x:Math.min(n.right,Math.max(n.left,t.x)),y:Math.min(n.bottom,Math.max(n.top,t.y))}}c(Jr,"segmentEnterPoint");function Rn(t,e,n){let r=n?1:-1,o=n?0:t.length-1;for(;o>=0&&o<t.length&&Sn(t[o],e,Mi);)o+=r;if(o<0||o>=t.length)return t;let i=o-r;if(i<0||i>=t.length)return t;let l=Jr(t[o],t[i],e);return n?[l,...t.slice(o)]:[...t.slice(0,o+1),l]}c(Rn,"clipEndpoint");function Kr(t,e){for(let n of t){let r=On(n,e,2);if(!r)continue;let o=[...r.points];r.srcRect&&(o=Rn(o,r.srcRect,!0)),r.dstRect&&(o=Rn(o,r.dstRect,!1)),o=le(je(o)),o=Bn(o,r.srcRect,r.dstRect),r.edge.points=le(je(o))}}c(Kr,"clipEdgeEndpointsToNodeBoundaries");function En(t,e,n,r=!1){if(pt(t,e,ot)){if(e.y<n.top-ot||e.y>n.bottom+ot)return e;if(r){if(t.x<n.left-ot)return{x:n.left,y:t.y};if(t.x>n.right+ot)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(ht(t,e,ot)){if(e.x<n.left-ot||e.x>n.right+ot)return e;if(r){if(t.y<n.top-ot)return{x:t.x,y:n.top};if(t.y>n.bottom+ot)return{x:t.x,y:n.bottom}}let o=Math.abs(e.y-n.top)<=Math.abs(e.y-n.bottom);return{x:t.x,y:o?n.top:n.bottom}}return e}c(En,"snapEndpointToBoundary");function Ve(t,e,n){let r=t[e];for(let o=e+n;o>=0&&o<t.length;o+=n){let i=t[o];if(!te(i,r,ot))return i}return t[e+n]}c(Ve,"firstDistinctAdjacent");function We(t,e){let n=t+qr,r=e-qr;return n<=r?{lo:n,hi:r}:{lo:(t+e)/2,hi:(t+e)/2}}c(We,"cornerClearanceRange");function $n(t,e,n){let{lo:r,hi:o}=We(e,n);return Math.min(o,Math.max(r,t))}c($n,"clampToCornerClearance");function Zr(t){let e=Math.max(...t.map(r=>r.lo)),n=Math.min(...t.map(r=>r.hi));if(!(e>n))return{lo:e,hi:n}}c(Zr,"intersectRanges");function Nn(t,e){return e==="left"||e==="right"?We(t.top,t.bottom):We(t.left,t.right)}c(Nn,"clearanceRangeForSide");function Ue(t,e,n){let r=t.y>=n.top-ot&&t.y<=n.bottom+ot,o=t.x>=n.left-ot&&t.x<=n.right+ot;if(pt(t,e,ot)&&r){if(Math.abs(t.x-n.left)<ot)return"left";if(Math.abs(t.x-n.right)<ot)return"right"}if(ht(t,e,ot)&&o){if(Math.abs(t.y-n.top)<ot)return"top";if(Math.abs(t.y-n.bottom)<ot)return"bottom"}}c(Ue,"terminalSideForSegment");function Fe(t){return t==="left"||t==="right"}c(Fe,"isHorizontalSide");function Qr(t,e,n,r,o){let i=[],l=n?Ue(t,e,n):void 0,a=r?Ue(e,t,r):void 0;return n&&l&&Fe(l)===o&&i.push(Nn(n,l)),r&&a&&Fe(a)===o&&i.push(Nn(r,a)),i.length>0?Zr(i):void 0}c(Qr,"straightClearanceRange");function Fn(t,e,n,r,o){let i=Qr(t,e,n,r,o);if(!i)return;let l=o?t.y:t.x,a=Math.min(i.hi,Math.max(i.lo,l));if(!(Math.abs(a-l)<ot))return o?[{x:t.x,y:a},{x:e.x,y:a}]:[{x:a,y:t.y},{x:a,y:e.y}]}c(Fn,"clearStraightEndpointCornerAxis");function Bn(t,e,n){if(t.length!==2)return t;let[r,o]=t;return pt(r,o,ot)?Fn(r,o,e,n,!0)??t:ht(r,o,ot)?Fn(r,o,e,n,!1)??t:t}c(Bn,"clearStraightEndpointCornerConnections");function to(t,e,n){return Fe(n)?{x:t.x,y:$n(t.y,e.top,e.bottom)}:{x:$n(t.x,e.left,e.right),y:t.y}}c(to,"cornerClearedEndpoint");function eo(t,e,n,r,o,i){let l=t.map(a=>({...a}));for(let a=e;a>=0&&a<t.length;a+=n){let f=t[a];if(i&&!pt(f,r,ot)||!i&&!ht(f,r,ot))break;i?l[a].y=o.y:l[a].x=o.x}return l}c(eo,"moveCollinearEndpointRun");function An(t,e,n){if(t.length<2)return t;let r=n?0:t.length-1,o=n?1:-1,i=t[r],l=Ve(t,r,o);if(!l)return t;let a=Ue(i,l,e);if(!a)return t;let f=Fe(a),d=to(i,e,a);return te(i,d,ot)?t:eo(t,r,o,i,d,f)}c(An,"clearEndpointCornerConnection");function Pn(t,e,n){let r=Math.min(t.x,e.x)>=n.left-ot&&Math.max(t.x,e.x)<=n.right+ot,o=Math.min(t.y,e.y)>=n.top-ot&&Math.max(t.y,e.y)<=n.bottom+ot;if(Math.abs(t.y-n.top)<ot&&Math.abs(e.y-n.top)<ot&&r)return"top";if(Math.abs(t.y-n.bottom)<ot&&Math.abs(e.y-n.bottom)<ot&&r)return"bottom";if(Math.abs(t.x-n.left)<ot&&Math.abs(e.x-n.left)<ot&&o)return"left";if(Math.abs(t.x-n.right)<ot&&Math.abs(e.x-n.right)<ot&&o)return"right"}c(Pn,"borderSideForSegment");function Xn(t,e,n,r){switch(t){case"top":return ht(e,n,ot)&&n.y<r.top-ot;case"bottom":return ht(e,n,ot)&&n.y>r.bottom+ot;case"left":return pt(e,n,ot)&&n.x<r.left-ot;case"right":return pt(e,n,ot)&&n.x>r.right+ot}}c(Xn,"leavesOutward");function Yn(t,e,n){if(t.length<3)return t;if(n){let i=Pn(t[0],t[1],e);return i&&Xn(i,t[1],t[2],e)?t.slice(1):t}let r=t.length-1,o=Pn(t[r-1],t[r],e);return o&&Xn(o,t[r-1],t[r-2],e)?t.slice(0,r):t}c(Yn,"collapseOwnBorderStub");function no(t,e,n){let r=t;if(e){let i=Ve(r,0,1);if(i){let l=En(i,r[0],e);l!==r[0]&&(r=[l,...r.slice(1)])}r=Yn(r,e,!0)}if(n){let i=r.length-1,l=Ve(r,i,-1);if(l){let a=En(l,r[i],n,!0);a!==r[i]&&(r=[...r.slice(0,i),a])}r=Yn(r,n,!1)}let o=Bn(r,e,n);return o!==r||r.length===2?o:(e&&(r=An(r,e,!0)),n&&(r=An(r,n,!1)),r)}c(no,"snapAndCollapseEndpoints");function _n(t,e){for(let n of t){let r=On(n,e,2);if(!r)continue;let o=no(Mt(r.points,ot),r.srcRect,r.dstRect);if(o.length<3){r.edge.points=o;continue}let i=[o[0],{...o[0]},...o.slice(1,-1),o[o.length-1],{...o[o.length-1]}];r.edge.points=i}}c(_n,"prepareEdgeEndpointsForRenderer");function zn(t){return new Map(t.map(e=>[e.id,e]))}c(zn,"buildNodeMap");function ro(t,e){let n=t.parentId,r=null;for(;n;){let o=e.get(n);if(!(o!=null&&o.isGroup))break;r=o.id,n=o.parentId}return r}c(ro,"resolveTopLevelGroupId");function Gn(t,e){let n=0,r=t.parentId;for(;r;){let o=e.get(r);if(!(o!=null&&o.isGroup))break;n++,r=o.parentId}return n}c(Gn,"groupDepth");function Dn(t){let e=1/0,n=-1/0,r=1/0,o=-1/0;for(let i of t){let l=i.x,a=i.y;if(typeof l!="number"||typeof a!="number")continue;let f=i.width??0,d=i.height??0;e=Math.min(e,l-f/2),n=Math.max(n,l+f/2),r=Math.min(r,a-d/2),o=Math.max(o,a+d/2)}return e===1/0||r===1/0?null:{minX:e,maxX:n,minY:r,maxY:o}}c(Dn,"boundsForChildren");function oo(t,e){let n=t.padding??20;t.x=(e.minX+e.maxX)/2,t.y=(e.minY+e.maxY)/2,t.width=Math.max(0,e.maxX-e.minX)+n,t.height=Math.max(0,e.maxY-e.minY)+n}c(oo,"applyGroupBounds");function io(t){let e=zn(t),n=t.filter(r=>r.isGroup&&r.parentId).sort((r,o)=>Gn(o,e)-Gn(r,e));for(let r of n){let o=Dn(t.filter(i=>i.parentId===r.id));o&&oo(r,o)}}c(io,"recomputeNestedGroupBounds");function qe(t,e){let n=t.nodes??[],r=t.edges??[],o=n.filter(f=>!f.isGroup),i=1/0,l=-1/0;for(let f of o){let d=f[e];typeof d=="number"&&(i=Math.min(i,d),l=Math.max(l,d))}if(!Number.isFinite(i)||!Number.isFinite(l))return!1;let a=c(f=>i+l-f,"mirror");for(let f of n){let d=f[e];typeof d=="number"&&(f[e]=a(d));let g=f.groupTitleRect;g&&(f.groupTitleRect=e==="x"?{...g,left:a(g.right),right:a(g.left)}:{...g,top:a(g.bottom),bottom:a(g.top)})}for(let f of r)for(let d of f.points??[])d[e]=a(d[e]);return!0}c(qe,"mirrorAxis");function lo(t){return(t.nodes??[]).some(e=>!e.isGroup)?qe(t,"y"):!0}c(lo,"applyBtDirectionTransform");function ao(t,e="LR"){let n=t.nodes??[],r=t.edges??[],o=n.filter(O=>!O.isGroup),i=1/0,l=1/0;for(let O of o){let $=O.x??0,U=O.y??0;$<i&&(i=$),U<l&&(l=U)}if(!Number.isFinite(i)||!Number.isFinite(l))return!1;let a=0,f=0;for(let O of o)a+=O.width??0,f+=O.height??0;let d=a/o.length,g=f/o.length,h=g>0?Math.max(1,d/g):1;for(let O of o){let $=O.x??0,U=((O.y??0)-l)*h+36,A=$-i;O.x=U,O.y=A}for(let O of r)if(O.points)for(let $ of O.points){let U=$.x,A=($.y-l)*h+36,X=U-i;$.x=A,$.y=X}io(n);let s=n.filter(O=>O.isGroup&&!O.parentId);if(s.length===0)return e==="RL"&&qe(t,"x"),!0;let u=zn(n),p=new Map;for(let O of n){if(O.isGroup)continue;let $=ro(O,u);if(!$)continue;let U=p.get($)??[];U.push(O),p.set($,U)}let x=0;for(let O of s){let $=O.padding??0;$>x&&(x=$)}let M=[],m=1/0,b=-1/0;for(let O of s){let $=Dn(p.get(O.id)??[]);$&&(m=Math.min(m,$.minX),b=Math.max(b,$.maxX),M.push({lane:O,contentTop:$.minY,contentBottom:$.maxY,centerY:($.minY+$.maxY)/2}))}if(m===1/0||b===-1/0)return!0;let I=Math.max(0,b-m)+2*Math.max(x,10),v=36+I,S=(m+b)/2-I/2-36,L=S+v/2,T=Math.max(x,36);M.sort((O,$)=>O.centerY-$.centerY);for(let O=0;O<M.length;O++){let $=M[O],U,A;if(U=O===0?$.contentTop-T:(M[O-1].contentBottom+$.contentTop)/2,O===M.length-1)A=$.contentBottom+T;else{let it=M[O+1];A=($.contentBottom+it.contentTop)/2}let X=Math.max(0,A-U),Z=(U+A)/2;$.lane.x=L,$.lane.y=Z,$.lane.width=v,$.lane.height=X,$.lane.swimlaneContentTop=$.contentTop,$.lane.groupTitleRect={left:S,right:S+36,top:U,bottom:A}}return e==="RL"&&qe(t,"x"),!0}c(ao,"applyLrDirectionTransform");var oe=1e-6,Je=8,Ii=[0,Je,-Je,2*Je,-2*Je];function so(t,e){let{nodeInfoById:n,realNodeRects:r}=De(e);for(let o of t){if(o.isLayoutOnly)continue;let i=o.points;if(!i||i.length<4)continue;let l=In(Mt(i,oe),oe);if(!l)continue;let{p3:a}=l,f=l.kind==="HVH",d=Cn(o,n,oe);if(!d)continue;let{srcId:g,dstId:h,srcInfo:s,dstInfo:u,collinearX:p,collinearY:x}=d;if(p||x)continue;let M,m=s.rect;for(let b of Ii){let I,v,S;if(f){let U=u.cy>s.cy?m.bottom:m.top,A=s.cx+b;if(A<=m.left+oe||A>=m.right-oe)continue;I={x:A,y:U},v={x:A,y:a.y},S={x:a.x,y:a.y}}else{let U=u.cx>s.cx?m.right:m.left,A=s.cy+b;if(A<=m.top+oe||A>=m.bottom-oe)continue;I={x:U,y:A},v={x:a.x,y:A},S={x:a.x,y:a.y}}let L=te(I,v,oe),T=te(v,S,oe);if(L&&T||!L&&Rt(I,v,r,[g],1)||!T&&Rt(v,S,r,[h],1))continue;let O=!L&&He(I,v,t,o,{epsilon:oe,skipDegenerateOther:!0}),$=!T&&He(v,S,t,o,{epsilon:oe,skipDegenerateOther:!0});if(!(O||$)){M=L?[v,S]:T?[I,v]:[I,v,S];break}}M&&(o.points=M)}}c(so,"portSwapToLShape");function fo(t,e){let n=.001,{realNodeRects:r,labelNodeRects:o}=ue(e.values());for(let i of t){if(i.isLayoutOnly)continue;let l=i.points;if(!l||l.length<4)continue;let a=Mt(l,n);if(a.length<4)continue;let f=a.length-1,d=a[f],g=a[f-1],h=a[f-2],s=d.x-g.x,u=d.y-g.y,p=Math.hypot(s,u);if(p>=10||p<n)continue;let x=g.x-h.x,M=g.y-h.y;if(Math.hypot(x,M)<n)continue;let m=Tt(g,d,n),b=kt(g,d,n),I=Tt(h,g,n),v=kt(h,g,n);if(!(m&&v||b&&I))continue;let S=i.end,L=i.start,T=S?e.get(S):void 0;if(!T)continue;let O=T.x??0,$=T.y??0,U=Vt(T);if(!U)continue;let A,X;if(v){let W=M<0;A={x:O,y:h.y},X={x:O,y:W?U.bottom:U.top}}else{let W=x>0;A={x:h.x,y:$},X={x:W?U.right:U.left,y:$}}if(Rt(A,X,r,S?[S]:[],-2)||Rt(A,X,o,[],-2))continue;if(L){let W=e.get(L),Q=W?Vt(W):void 0;if(Q&&Sn(A,Q,2))continue}let Z=c((W,Q)=>`${W.x.toFixed(3)},${W.y.toFixed(3)}|${Q.x.toFixed(3)},${Q.y.toFixed(3)}`,"ownSegmentKey"),it=new Set;for(let W=0;W<a.length-1;W++)it.add(Z(a[W],a[W+1]));let dt=c((W,Q)=>{for(let et of t){if(et===i||et.isLayoutOnly)continue;let lt=et.points;if(!(!lt||lt.length<2))for(let mt=0;mt<lt.length-1;mt++){let vt=lt[mt],Ct=lt[mt+1];if(!it.has(Z(vt,Ct))&&se(W,Q,vt,Ct,n))return!0}}return!1},"segmentCrossesOtherEdge");if(dt(A,X))continue;if(f-3>=0){let W=a[f-3],Q=[L,S].filter(et=>!!et);if(Rt(W,A,r,Q,-2)||dt(W,A))continue}let ut=[...a.slice(0,f-2),A,X];i.points=ut;let ct=i.labelNodeId;if(ct){let W=e.get(ct);if(W){let Q=W.width??0,et=W.height??0;if(Q>0&&et>0){let lt,mt,vt=-1;for(let Ct=0;Ct<ut.length-1;Ct++){let Kt=ut[Ct],Ht=ut[Ct+1],ne=Math.hypot(Ht.x-Kt.x,Ht.y-Kt.y),Se=pt(Kt,Ht,n),Oe=ht(Kt,Ht,n);(Se&&ne>=Q+2||Oe&&ne>=et+2)&&ne>vt&&(vt=ne,lt=(Kt.x+Ht.x)/2,mt=(Kt.y+Ht.y)/2)}lt!==void 0&&mt!==void 0&&(W.x=lt,W.y=mt)}}}}}c(fo,"collapseShortTerminalStub");var K=.001,Yt=8,st=Le,Hn=c((t,e)=>ht(t,e,K)||pt(t,e,K),"orthogonallyAligned");function uo(t,e){let n=c((h,s)=>{let u=h.x??0,p=h.y??0,x=s.x-u,M=s.y-p,m=(h.width??0)/2,b=(h.height??0)/2;return Math.abs(M)*m>Math.abs(x)*b?(M<0&&(b=-b),{x:u+(M===0?0:b*x/M),y:p+b}):(x<0&&(m=-m),{x:u+m,y:p+(x===0?0:m*M/x)})},"rectIntersect"),r=c((h,s)=>{let u=Mt(h.points??[]);if(u.length<2)return;let p=s?h.start:h.end,x=p?e.get(p):void 0,M=x?Vt(x):void 0;if(!x||!p||!M)return;let m=s?u[0]:u[u.length-1],b=s?u[1]:u[u.length-2],I=n(x,m),v=m;if(Hn(b,I)&&(v=b),ht(I,v,K))return{edge:h,edgeId:String(h.id??""),nodeId:p,atStart:s,orientation:"V",coord:I.x,min:Math.min(I.y,v.y),max:Math.max(I.y,v.y),boundary:I,railEnd:v,rect:M};if(pt(I,v,K))return{edge:h,edgeId:String(h.id??""),nodeId:p,atStart:s,orientation:"H",coord:I.y,min:Math.min(I.x,v.x),max:Math.max(I.x,v.x),boundary:I,railEnd:v,rect:M}},"terminalLaneFor"),o=c((h,s)=>Math.max(0,Math.min(h.max,s.max)-Math.max(h.min,s.min)),"projectedOverlapLength"),i=c((h,s)=>h.nodeId!==s.nodeId||h.orientation!==s.orientation?!1:h.orientation==="H"?(Math.abs(h.boundary.x-h.rect.left)<1||Math.abs(h.boundary.x-h.rect.right)<1)&&ht(h.boundary,s.boundary,1):(Math.abs(h.boundary.y-h.rect.top)<1||Math.abs(h.boundary.y-h.rect.bottom)<1)&&pt(h.boundary,s.boundary,1),"sameTerminalFace"),l=c((h,s)=>h.nodeId!==s.nodeId||h.orientation!==s.orientation?!1:o(h,s)>=Yt&&Math.abs(h.coord-s.coord)<.5,"exactTerminalLaneConflict"),a=c((h,s)=>{if(h.nodeId!==s.nodeId||h.orientation!==s.orientation||h.orientation!=="H"||h.atStart===s.atStart)return!1;let u=o(h,s);if(u<Yt)return!1;let p=h.rect.bottom-h.rect.top;return u<p||u>2*p?!1:i(h,s)&&Math.abs(h.coord-s.coord)<16},"nearTerminalLaneConflict"),f=c((h,s)=>{let u=Mt(h.edge.points??[]);if(u.length<2)return;let p=h.orientation==="V"?{x:h.boundary.x+s,y:h.boundary.y}:{x:h.boundary.x,y:h.boundary.y+s},x=h.orientation==="V"?{x:h.railEnd.x+s,y:h.railEnd.y}:{x:h.railEnd.x,y:h.railEnd.y+s};if(!c(()=>Math.abs(h.boundary.y-h.rect.top)<1||Math.abs(h.boundary.y-h.rect.bottom)<1?pt(p,h.boundary,K)&&p.x>=h.rect.left+1&&p.x<=h.rect.right-1:Math.abs(h.boundary.x-h.rect.left)<1||Math.abs(h.boundary.x-h.rect.right)<1?ht(p,h.boundary,K)&&p.y>=h.rect.top+1&&p.y<=h.rect.bottom-1:!1,"boundaryStaysOnSameFace")())return;if(h.atStart){let I=u.length>1&&te(u[1],h.railEnd,K),v=u.slice(I?2:1),S=v[0];return S&&!Hn(S,x)?void 0:[p,x,...v]}let M=u.length>1&&te(u[u.length-2],h.railEnd,K),m=u.slice(0,M?-2:-1),b=m[m.length-1];if(!(b&&!Hn(b,x)))return[...m,x,p]},"shiftedCandidate"),d=c(h=>{let s=h.edge,u=Mt(s.points??[]);if(u.length!==2)return!1;let p=s.start,x=s.end,M=p?e.get(p):void 0,m=x?e.get(x):void 0;if(!M||!m)return!1;let b=M.x??0,I=M.y??0,v=m.x??0,S=m.y??0,[L,T]=u;return pt(L,T,K)&&Math.abs(I-S)<1&&Math.abs(b-v)>1||ht(L,T,K)&&Math.abs(b-v)<1&&Math.abs(I-S)>1},"laneIsStraightCollinearConnector"),g=[-7,7,-14,14,-21,21];for(let h=0;h<8;h++){let s=t.filter(p=>!p.isLayoutOnly).flatMap(p=>[r(p,!0),r(p,!1)]).filter(p=>!!p),u=!1;for(let p=0;p<s.length&&!u;p++)for(let x=p+1;x<s.length&&!u;x++){let M=s[p],m=s[x];if(M.edge===m.edge||!(l(M,m)||a(M,m)))continue;let b=!l(M,m),I=[M,m].sort((v,S)=>{let L=d(v),T=d(S);return L===T?+!S.atStart-+!v.atStart:Number(L)-Number(T)});for(let v of I){for(let S of g){let L=f(v,S);if(!L)continue;let T=r({...v.edge,points:L},v.atStart);if(!(!T||s.some(O=>O.edge!==v.edge&&(l(T,O)||b&&a(T,O))))){v.edge.points=L,u=!0;break}}if(u)break}}if(!u)return}}c(uo,"separateSharedRenderedTerminalLanes");function ho(t,e){let{realNodeRects:n,labelNodeRects:r}=ue(e.values()),o=c((l,a)=>{let f=l.start,d=l.end,g=st(a);if(g.length!==a.length-1)return!1;let h=[f,d].filter(s=>!!s);for(let s of g)if(Rt(s.a,s.b,n,h,-2)||Rt(s.a,s.b,r,[],-2))return!1;for(let s of t){if(s===l||s.isLayoutOnly)continue;let u=s.points;if(!(!u||u.length<2)){for(let p of g)for(let x of st(Mt(u)))if(ie(p,x,.5)>=Yt||se(p.a,p.b,x.a,x.b,K))return!1}}return!0},"candidateIsSafe"),i=c((l,a)=>{if(a+4>=l.length)return;let f=l[a],d=l[a+1],g=l[a+2],h=l[a+3],s=l[a+4],u=Tt(f,d)&&kt(d,g)&&Tt(g,h)&&kt(h,s)&&ht(f,h,K)&&ht(f,s,K)&&ht(d,g,K)&&(d.x-f.x)*(h.x-g.x)<0,p=kt(f,d)&&Tt(d,g)&&kt(g,h)&&Tt(h,s)&&pt(f,h,K)&&pt(f,s,K)&&pt(d,g,K)&&(d.y-f.y)*(h.y-g.y)<0;if(u||p)return Mt([...l.slice(0,a+1),s,...l.slice(a+5)]);if(a+5>=l.length)return;let x=l[a+5],M=kt(f,d)&&Tt(d,g)&&kt(g,h)&&Tt(h,s)&&kt(s,x)&&ht(f,s,K)&&ht(f,x,K)&&ht(g,h,K)&&(g.x-d.x)*(s.x-h.x)<0,m=Tt(f,d)&&kt(d,g)&&Tt(g,h)&&kt(h,s)&&Tt(s,x)&&pt(f,s,K)&&pt(f,x,K)&&pt(g,h,K)&&(g.y-d.y)*(s.y-h.y)<0;if(!(!M&&!m))return Mt([...l.slice(0,a+1),x,...l.slice(a+6)])},"withoutDogleg");for(let l=0;l<8;l++){let a=!1;for(let f of t){if(f.isLayoutOnly)continue;let d=Mt(f.points??[]);for(let g=0;g<=d.length-5;g++){let h=i(d,g);if(!(!h||!o(f,h))){f.points=h,a=!0;break}}if(a)break}if(!a)return}}c(ho,"collapseRedundantRectangularDoglegs");function jn(t,e){let{realNodeRects:n,labelNodeRects:r}=ue(e.values()),o=t.filter(h=>!h.isLayoutOnly),i=c((h,s,u)=>Mt(h===s?u??[]:h.points??[]),"pointsFor"),l=c((h,s)=>{let u=0;for(let p=0;p<o.length;p++){let x=st(i(o[p],h,s));for(let M=p+1;M<o.length;M++){let m=st(i(o[M],h,s));for(let b of x)for(let I of m)se(b.a,b.b,I.a,I.b,K)&&u++}}return u},"strictCrossingCount"),a=c(h=>{let s=st(h);if(s.length!==3)return;let u=s[1];if(!(s[0].horizontal===u.horizontal||s[2].horizontal===u.horizontal))return{index:u.index,horizontal:u.horizontal,vertical:u.vertical,segment:u}},"middleRail"),f=c((h,s)=>{let u=[h.start,h.end].filter(p=>!!p);return n.filter(p=>{if(u.includes(p.id))return!1;let x=p.rect;return s.horizontal?Dt(s.a.x,s.b.x,x.left,x.right)>=Yt&&s.a.y>=x.top-2&&s.a.y<=x.bottom+2:Dt(s.a.y,s.b.y,x.top,x.bottom)>=Yt&&s.a.x>=x.left-2&&s.a.x<=x.right+2})},"blockingRectsFor"),d=c((h,s,u)=>{let p=h.map(M=>({...M}));if(s.horizontal)p[s.index].y=u,p[s.index+1].y=u;else if(s.vertical)p[s.index].x=u,p[s.index+1].x=u;else return;let x=le(Mt(p));return st(x).length===x.length-1?x:void 0},"candidateByMovingRail"),g=c((h,s,u)=>{let p=[h.start,h.end].filter(M=>!!M),x=st(s);if(x.length!==s.length-1)return!1;for(let M of x)if(Rt(M.a,M.b,n,p,-2)||Rt(M.a,M.b,r,[],-2))return!1;for(let M of o)if(M!==h){for(let m of x)for(let b of st(i(M)))if(ie(m,b,.5)>=Yt)return!1}return l(h,s)<=u},"candidateIsSafe");for(let h=0;h<8;h++){let s=l(),u=!1;for(let p of o){let x=i(p),M=a(x);if(!M)continue;let m=f(p,M.segment);if(m.length===0)continue;let b=M.horizontal?[Math.min(...m.map(I=>I.rect.top))-20,Math.max(...m.map(I=>I.rect.bottom))+20]:[Math.min(...m.map(I=>I.rect.left))-20,Math.max(...m.map(I=>I.rect.right))+20];for(let I of b){let v=d(x,M.segment,I);if(!(!v||!g(p,v,s))){p.points=v,u=!0;break}}if(u)break}if(!u)return}}c(jn,"liftObstacleHuggingSameSideRails");function Vn(t,e){let n=c(a=>{let f=a.groupTitleRect;if(!(!f||typeof f.left!="number"||typeof f.right!="number"||typeof f.top!="number"||typeof f.bottom!="number"||!Number.isFinite(f.left)||!Number.isFinite(f.right)||!Number.isFinite(f.top)||!Number.isFinite(f.bottom)||f.right<=f.left||f.bottom<=f.top))return{left:f.left,right:f.right,top:f.top,bottom:f.bottom}},"validTitleRect"),r=c(a=>{if(!a.isGroup||a.parentId)return;let f=a.direction,d=typeof f=="string"?f.toUpperCase():"";if(d==="LR"||d==="RL"||d==="BT")return;let g=n(a),h=a.y,s=a.height;if(!g||typeof h!="number"||typeof s!="number"||!Number.isFinite(h)||!Number.isFinite(s)||s<=0)return;let u=g.right-g.left,p=g.bottom-g.top;if(!(p<=0||u<p))return{node:a,rect:g}},"topLaneTitleFor"),o=c((a,f)=>{if(!a.horizontal)return!1;let d=a.a.y;return d<=f.top+K||d>=f.bottom-K?!1:Dt(a.a.x,a.b.x,f.left,f.right)>=Yt},"horizontalSegmentIntersectsTitle"),i=[...e.values()].map(r).filter(a=>!!a);if(i.length===0)return;let l=0;for(let a of t){if(a.isLayoutOnly)continue;let f=Mt(a.points??[]);for(let d of st(f))for(let g of i)o(d,g.rect)&&(l=Math.max(l,g.rect.bottom-d.a.y+4))}if(!(l<=K))for(let a of i){let f=a.node.y,d=a.node.height;typeof f!="number"||typeof d!="number"||!Number.isFinite(f)||!Number.isFinite(d)||d<=0||(a.node.y=f-l/2,a.node.height=d+l,a.node.groupTitleRect={...a.rect,top:a.rect.top-l,bottom:a.rect.bottom-l})}}c(Vn,"liftTopLaneTitleBandsAboveRails");function Wn(t,e){let n=c(f=>{let d=f.groupTitleRect;if(!(!d||typeof d.left!="number"||typeof d.right!="number"||typeof d.top!="number"||typeof d.bottom!="number"||!Number.isFinite(d.left)||!Number.isFinite(d.right)||!Number.isFinite(d.top)||!Number.isFinite(d.bottom)||d.right<=d.left||d.bottom<=d.top))return{left:d.left,right:d.right,top:d.top,bottom:d.bottom}},"validTitleRect"),r=c(f=>{if(!f.isGroup||f.parentId||f.direction!=="LR")return;let d=n(f),g=f.x,h=f.width;if(!d||typeof g!="number"||typeof h!="number"||!Number.isFinite(g)||!Number.isFinite(h)||h<=0)return;let s=d.right-d.left,u=d.bottom-d.top;if(!(s<=0||u<s))return{node:f,rect:d}},"leftLaneTitleFor"),o=c((f,d)=>{if(!f.vertical)return!1;let g=f.a.x;return g<=d.left+K||g>=d.right-K?!1:Dt(f.a.y,f.b.y,d.top,d.bottom)>=Yt},"verticalSegmentIntersectsTitle"),i=c((f,d)=>{if(!f.horizontal)return!1;let g=f.a.y;return g<=d.top+K||g>=d.bottom-K?!1:Dt(f.a.x,f.b.x,d.left,d.right)>=Yt},"horizontalSegmentIntersectsTitle"),l=[...e.values()].map(r).filter(f=>!!f);if(l.length===0)return;let a=0;for(let f of t){if(f.isLayoutOnly)continue;let d=Mt(f.points??[]);for(let g of st(d))for(let h of l)if(o(g,h.rect))a=Math.max(a,h.rect.right-g.a.x+4);else if(i(g,h.rect)){let s=Math.min(g.a.x,g.b.x);a=Math.max(a,h.rect.right-s+4)}}if(!(a<=K))for(let f of l){let d=f.node.x,g=f.node.width;typeof d!="number"||typeof g!="number"||!Number.isFinite(d)||!Number.isFinite(g)||g<=0||(f.node.x=d-a/2,f.node.width=g+a,f.node.groupTitleRect={...f.rect,left:f.rect.left-a,right:f.rect.right-a})}}c(Wn,"shiftLeftLaneTitleBandsLeftOfRails");function co(t,e){let{realNodeRects:n}=ue(e.values()),r=t.filter(u=>!u.isLayoutOnly),o=c((u,p=new Map)=>Mt(p.get(u)??u.points??[]),"replacementPointsFor"),i=c((u=new Map)=>{let p=0;for(let x=0;x<r.length;x++){let M=st(o(r[x],u));for(let m=x+1;m<r.length;m++){let b=st(o(r[m],u));for(let I of M)for(let v of b)se(I.a,I.b,v.a,v.b,K)&&p++}}return p},"crossingCount"),l=c((u=new Map)=>r.reduce((p,x)=>p+Jt(o(x,u)),0),"totalBends"),a=c(u=>{let p=o(u);if(p.length<4)return;let x=p[p.length-2],M=p[p.length-1];if(!(!Tt(x,M,K)&&!kt(x,M,K)))return{tailStart:x,terminal:M}},"terminalTailFor"),f=c((u,p)=>{let x=o(u);if(x.length<3)return;let M=x[0],m=x[1],b;if(Tt(M,m,K))b={x:m.x,y:p.tailStart.y};else if(kt(M,m,K))b={x:p.tailStart.x,y:m.y};else return;let I=le(Mt([M,m,b,p.tailStart,p.terminal]));return st(I).length===I.length-1?I:void 0},"candidateWithDestinationTail"),d=c((u,p)=>{let x=[u.start,u.end].filter(M=>!!M);for(let M of st(p))if(Rt(M.a,M.b,n,x,-2))return!0;return!1},"pathHasNodeHit"),g=c((u,p,x)=>{for(let M of r)if(M!==u){for(let m of st(p))for(let b of st(o(M,x)))if(ie(m,b,.5)>=Yt)return!0}return!1},"pathHasSharedTrack"),h=c((u,p,x)=>!d(u,p)&&!g(u,p,x),"candidateIsSafe"),s=c(()=>{let u=new Map;for(let p of r){let x=p.end;if(!x||!e.has(x)||o(p).length<4)continue;let M=u.get(x)??[];M.push(p),u.set(x,M)}return u},"edgesByDestination");for(let u=0;u<4;u++){let p=i();if(p===0)return;let x=l(),M,m=p,b=x;for(let I of s().values())for(let v=0;v<I.length;v++)for(let S=v+1;S<I.length;S++){let L=I[v],T=I[S],O=a(L),$=a(T);if(!O||!$)continue;let U=f(L,$),A=f(T,O);if(!U||!A)continue;let X=new Map([[L,U],[T,A]]);if(!h(L,U,X)||!h(T,A,X))continue;let Z=i(X),it=l(X);Z>=p||Z>m||Z===m&&it>=b||(M=X,m=Z,b=it)}if(!M)return;for(let[I,v]of M)I.points=v}}c(co,"swapDestinationTerminalTailsToReduceCrossings");function go(t,e){let{realNodeRects:n,labelNodeRects:r}=ue(e.values()),o=t.filter(m=>!m.isLayoutOnly),i=c((m,b=new Map)=>Mt(b.get(m)??m.points??[]),"replacementPointsFor"),l=c((m=new Map)=>{let b=0;for(let I=0;I<o.length;I++){let v=st(i(o[I],m));for(let S=I+1;S<o.length;S++){let L=st(i(o[S],m));for(let T of v)for(let O of L)se(T.a,T.b,O.a,O.b,K)&&b++}}return b},"strictCrossingCount"),a=c((m=new Map)=>o.reduce((b,I)=>b+Jt(i(I,m)),0),"totalBends"),f=c(m=>{let b=m.start,I=m.end,v=b?e.get(b):void 0,S=I?e.get(I):void 0,L=v?Vt(v):void 0,T=S?Vt(S):void 0;return L&&T?{src:L,dst:T}:void 0},"endpointRectsFor"),d=c((m,b,I)=>{if(I.index<=0||I.index+1>=b.length-1)return;let v=f(m);if(v){if(I.vertical){let S=I.a.x,L=Math.min(v.src.left,v.dst.left),T=Math.max(v.src.right,v.dst.right),O=S<L-K?"left":S>T+K?"right":void 0;return O?{edge:m,points:b,segmentIndex:I.index,axis:"vertical",side:O,coord:S,min:Math.min(I.a.y,I.b.y),max:Math.max(I.a.y,I.b.y)}:void 0}if(I.horizontal){let S=I.a.y,L=Math.min(v.src.top,v.dst.top),T=Math.max(v.src.bottom,v.dst.bottom),O=S<L-K?"top":S>T+K?"bottom":void 0;return O?{edge:m,points:b,segmentIndex:I.index,axis:"horizontal",side:O,coord:S,min:Math.min(I.a.x,I.b.x),max:Math.max(I.a.x,I.b.x)}:void 0}}},"externalRailForSegment"),g=c(()=>{let m=[];for(let b of o){let I=i(b);for(let v of st(I)){let S=d(b,I,v);S&&m.push(S)}}return m},"collectExternalRails"),h=c((m,b)=>m.edge!==b.edge&&m.axis===b.axis&&m.side===b.side&&Dt(m.min,m.max,b.min,b.max)>=Yt,"railsInteract"),s=c(m=>{let b=[],I=new Set;for(let v of m){if(I.has(v))continue;let S=[v],L=[];for(I.add(v);S.length>0;){let T=S.pop();L.push(T);for(let O of m)!I.has(O)&&h(T,O)&&(I.add(O),S.push(O))}L.length>1&&b.push(L)}return b},"connectedComponents"),u=c(m=>{let b=[];for(let I of m)b.some(v=>Math.abs(v-I.coord)<K)||b.push(I.coord);for(;b.length<m.length;){let I=Math.min(...b),v=Math.max(...b),S=m[0].side;b.push(S==="left"||S==="top"?I-12*(m.length-b.length):v+12*(m.length-b.length))}return b},"uniqueCoordsFor"),p=c(m=>{let b=m.map(S=>S.coord),I=u(m),v=[];if(m.length<=6){let S=Array(I.length).fill(!1),L=[],T=c(()=>{if(L.length===m.length){L.some((O,$)=>Math.abs(O-b[$])>=K)&&v.push([...L]);return}for(let[O,$]of I.entries())S[O]||(S[O]=!0,L.push($),T(),L.pop(),S[O]=!1)},"visit");return T(),v}for(let S=0;S<b.length;S++)for(let L=S+1;L<b.length;L++){let T=[...b];[T[S],T[L]]=[T[L],T[S]],v.push(T)}return v},"coordinateAssignmentsFor"),x=c((m,b)=>{let I=new Map;for(let[S,L]of m.entries()){let T=b[S],O=I.get(L.edge)??L.points.map($=>({x:$.x,y:$.y}));L.axis==="vertical"?(O[L.segmentIndex].x=T,O[L.segmentIndex+1].x=T):(O[L.segmentIndex].y=T,O[L.segmentIndex+1].y=T),I.set(L.edge,O)}let v=new Map;for(let[S,L]of I){let T=le(Mt(L));if(st(T).length!==T.length-1)return;v.set(S,T)}return v},"replacementsForAssignment"),M=c(m=>{for(let[b,I]of m){let v=[b.start,b.end].filter(S=>!!S);for(let S of st(I))if(Rt(S.a,S.b,n,v,-2)||Rt(S.a,S.b,r,[],-2))return!1}for(let b=0;b<o.length;b++){let I=o[b],v=m.has(I),S=st(i(I,m));for(let L=b+1;L<o.length;L++){let T=o[L];if(!v&&!m.has(T))continue;let O=st(i(T,m));for(let $ of S)for(let U of O)if(ie($,U,.5)>=Yt)return!1}}return!0},"candidateIsSafe");for(let m=0;m<4;m++){let b=l();if(b===0)return;let I,v=b,S=a(),L=1/0;for(let T of s(g()))for(let O of p(T)){let $=x(T,O);if(!$||!M($))continue;let U=l($);if(U>=b)continue;let A=a($),X=T.reduce((Z,it,dt)=>Z+Math.abs(O[dt]-it.coord),0);U>v||U===v&&(A>S||A===S&&X>=L)||(I=$,v=U,S=A,L=X)}if(!I)return;for(let[T,O]of I)T.points=O}}c(go,"reassignCrossingExternalRailChannels");function po(t,e){let{realNodeRects:n,labelNodeRects:r}=ue(e.values()),o=t.filter(s=>!s.isLayoutOnly),i=c((s,u,p)=>Mt(s===u?p??[]:s.points??[]),"pointsFor"),l=c(s=>st(s).reduce((u,p)=>{let x=p.a.x-p.b.x,M=p.a.y-p.b.y;return u+Math.hypot(x,M)},0),"pathLength"),a=c((s,u)=>{let p=0;for(let x=0;x<o.length;x++){let M=st(i(o[x],s,u));for(let m=x+1;m<o.length;m++){let b=st(i(o[m],s,u));for(let I of M)for(let v of b)se(I.a,I.b,v.a,v.b,K)&&p++}}return p},"strictCrossingCount"),f=c((s,u)=>{if(s.horizontal){let p=s.a.y;return(Math.abs(p-u.top)<1||Math.abs(p-u.bottom)<1)&&Dt(s.a.x,s.b.x,u.left,u.right)>=Yt}if(s.vertical){let p=s.a.x;return(Math.abs(p-u.left)<1||Math.abs(p-u.right)<1)&&Dt(s.a.y,s.b.y,u.top,u.bottom)>=Yt}return!1},"segmentRunsAlongRectBorder"),d=c(s=>{let u=[s.start,s.end].filter(x=>!!x),p=[];for(let x of u){let M=e.get(x),m=M?Vt(M):void 0;m&&p.push(m)}return p},"endpointRectsFor"),g=c((s,u)=>{if(u+3>=s.length)return[];let p=s[u],x=s[u+1],M=s[u+2],m=s[u+3],b=Tt(p,x,K)&&kt(x,M,K)&&Tt(M,m,K),I=kt(p,x,K)&&Tt(x,M,K)&&kt(M,m,K);if(!b&&!I||!(b?Math.sign(x.x-p.x)!==Math.sign(m.x-M.x):Math.sign(x.y-p.y)!==Math.sign(m.y-M.y)))return[];let v=ht(p,m,K)||pt(p,m,K)?[]:[{x:p.x,y:m.y},{x:m.x,y:p.y}],S=v.length===0?[[...s.slice(0,u+1),...s.slice(u+3)]]:v.map(T=>[...s.slice(0,u+1),T,...s.slice(u+3)]),L=new Set;return S.map(T=>le(Mt(T))).filter(T=>{if(st(T).length!==T.length-1||!T.some($=>te($,m,K)))return!1;let O=T.map($=>`${$.x.toFixed(3)},${$.y.toFixed(3)}`).join("|");return L.has(O)?!1:(L.add(O),!0)})},"shortcutCandidatesAt"),h=c((s,u,p)=>{let x=[s.start,s.end].filter(m=>!!m),M=d(s);for(let m of st(u))if(Rt(m.a,m.b,n,x,-2)||Rt(m.a,m.b,r,[],-2)||M.some(b=>f(m,b)))return!1;for(let m of o)if(m!==s){for(let b of st(u))for(let I of st(i(m)))if(ie(b,I,.5)>=Yt)return!1}return a(s,u)<=p},"candidateIsSafe");for(let s=0;s<8;s++){let u=a(),p,x,M=u,m=1/0,b=1/0;for(let I of o){let v=i(I),S=Jt(v,K),L=l(v);for(let T=0;T<=v.length-4;T++)for(let O of g(v,T)){let $=Jt(O,K),U=l(O);if(!($<S||$===S&&U<L-K)||!h(I,O,u))continue;let A=a(I,O);A>M||A===M&&($>m||$===m&&U>=b)||(p=I,x=O,M=A,m=$,b=U)}}if(!p||!x)return;p.points=x}}c(po,"shortcutRedundantOrthogonalJogs");function mo(t,e){let n=[];for(let R of e.values()){if(R.isGroup||R.isEdgeLabel)continue;let N=R.x??0,F=R.y??0,_=Vt(R);_&&n.push({id:String(R.id??""),cx:N,cy:F,rect:_})}if(n.length===0)return;let r=new Map(n.map(R=>[R.id,R])),o=n.map(R=>({id:R.id,rect:R.rect})),i=["top","bottom","left","right"],l={top:Math.min(...n.map(R=>R.rect.top))-20,bottom:Math.max(...n.map(R=>R.rect.bottom))+20,left:Math.min(...n.map(R=>R.rect.left))-20,right:Math.max(...n.map(R=>R.rect.right))+20},a=t.filter(R=>!R.isLayoutOnly),f=new Map(a.map((R,N)=>[R,N])),d=c(R=>{let N=R==="left"||R==="top"?-1:1,F=[];for(let _=0;_<=2;_++)F.push(l[R]+N*20*_);return F},"outwardTracksForSide"),g=c((R,N=new Map)=>Mt(N.get(R)??R.points??[]),"replacementPointsFor"),h=c((R,N)=>{let F=0;for(let _ of R)for(let j of N)se(_.a,_.b,j.a,j.b,K)&&F++;return F},"crossingCountBetweenSegments"),s=c((R,N)=>h(st(R),st(N)),"crossingCountBetweenPaths"),u=c((R=new Map)=>{let N=0,F=[],_=new Set,j=[],D=c(H=>{_.has(H)||(_.add(H),j.push(H))},"addEdge");for(let H=0;H<a.length;H++){let J=a[H],nt=g(J,R);for(let It=H+1;It<a.length;It++){let y=a[It],w=s(nt,g(y,R));w>0&&(N+=w,F.push({first:J,second:y,count:w}),D(J),D(y))}}return j.sort((H,J)=>(f.get(H)??0)-(f.get(J)??0)),{count:N,pairs:F,edgeSet:_,edges:j}},"crossingSnapshot"),p=c((R,N)=>{let F=new Set(N.keys());if(F.size===0)return R.count;let _=0;for(let D of R.pairs)(F.has(D.first)||F.has(D.second))&&(_+=D.count);let j=0;for(let D=0;D<a.length;D++){let H=a[D],J=F.has(H),nt=g(H,N);for(let It=D+1;It<a.length;It++){let y=a[It];!J&&!F.has(y)||(j+=s(nt,g(y,N)))}}return R.count-_+j},"crossingCountWithReplacements"),x=c(R=>{let N=new Map;for(let j of R.pairs){let D=N.get(j.first)??new Set;D.add(j.second),N.set(j.first,D);let H=N.get(j.second)??new Set;H.add(j.first),N.set(j.second,H)}let F=[],_=new Set;for(let j of R.edges){if(_.has(j))continue;let D=[j],H=[];for(_.add(j);D.length>0;){let J=D.pop();H.push(J);for(let nt of N.get(J)??[])_.has(nt)||(_.add(nt),D.push(nt))}H.sort((J,nt)=>(f.get(J)??0)-(f.get(nt)??0)),H.length>1&&F.push(H)}return F},"crossingComponents"),M=c(R=>[R.start,R.end].filter(N=>!!N),"endpointIdsFor"),m=c(R=>{let N=[];for(let F of x(R)){let _=new Set(F),j=new Set(F.flatMap(H=>M(H))),D=[...F];for(let H of a)_.has(H)||M(H).some(J=>j.has(J))&&D.push(H);D.sort((H,J)=>(f.get(H)??0)-(f.get(J)??0)),N.push(D)}return N},"pairSearchGroups"),b=c((R,N,F)=>p(R,new Map([[N,F]])),"crossingCountWithSingleReplacement"),I=c(R=>{let N=new Map;for(let F of R.pairs)N.set(F.first,(N.get(F.first)??0)+F.count),N.set(F.second,(N.get(F.second)??0)+F.count);return N},"currentCrossingsByEdge"),v=c(R=>R.slice(1).reduce((N,F,_)=>{let j=R[_];return N+Math.abs(F.x-j.x)+Math.abs(F.y-j.y)},0),"pathLength"),S=c((R=new Map)=>a.reduce((N,F)=>N+Jt(g(F,R)),0),"totalBends"),L=c((R=new Map)=>a.reduce((N,F)=>N+v(g(F,R)),0),"totalLength"),T=c((R,N,F=new Map)=>{let _=st(N);for(let j of a)if(j!==R){for(let D of _)for(let H of st(g(j,F)))if(ie(D,H,.5)>=Yt)return!0}return!1},"pathHasSegmentConflict"),O=c((R,N)=>{let F=[R.start,R.end].filter(_=>!!_);for(let _ of st(N))if(Rt(_.a,_.b,o,F,-2))return!0;return!1},"pathHitsNode"),$=c((R,N)=>{let F=le(Mt(N));st(F).length===F.length-1&&R.push(F)},"pushOrthogonalCandidate"),U=c(R=>R==="left"||R==="right","sideIsHorizontal"),A=c((R,N,F)=>{switch(N){case"left":return Math.min(R.x,F.x)-20;case"right":return Math.max(R.x,F.x)+20;case"top":return Math.min(R.y,F.y)-20;case"bottom":return Math.max(R.y,F.y)+20}},"localTrackForSameSide"),X=c((R,N,F,_)=>{let j=F==="left"||F==="top"?-1:1,D=[A(N,F,_),l[F]];for(let H of D)for(let J=0;J<=2;J++)$(R,Ln(N,F,_,H+j*20*J))},"addSameSideCandidates"),Z=c((R,N,F,_,j)=>{for(let D of d(F))for(let H of d(j))$(R,[N,{x:D,y:N.y},{x:D,y:H},{x:_.x,y:H},_])},"addHorizontalToVerticalCandidates"),it=c((R,N,F,_,j)=>{for(let D of d(F))for(let H of d(j))$(R,[N,{x:N.x,y:D},{x:H,y:D},{x:H,y:_.y},_])},"addVerticalToHorizontalCandidates"),dt=c((R,N,F,_,j)=>{let D=[...d("top"),...d("bottom")];for(let H of d(F))for(let J of d(j))for(let nt of D)$(R,[N,{x:H,y:N.y},{x:H,y:nt},{x:J,y:nt},{x:J,y:_.y},_])},"addHorizontalPairCandidates"),ut=c((R,N,F,_,j)=>{let D=[...d("left"),...d("right")];for(let H of d(F))for(let J of d(j))for(let nt of D)$(R,[N,{x:N.x,y:H},{x:nt,y:H},{x:nt,y:J},{x:_.x,y:J},_])},"addVerticalPairCandidates"),ct=c(R=>{let N=new Set;return R.map(F=>Mt(F)).filter(F=>{let _=F.map(j=>`${j.x.toFixed(3)},${j.y.toFixed(3)}`).join("|");return N.has(_)||F.length<2?!1:(N.add(_),!0)})},"dedupeCandidatePaths"),W=c((R,N,F,_)=>{let j=[],D=vn(R,N,F,_,20,K);D&&$(j,D),N===_&&X(j,R,N,F);let H=U(N),J=U(_);return H&&!J?Z(j,R,N,F,_):!H&&J?it(j,R,N,F,_):H?dt(j,R,N,F,_):ut(j,R,N,F,_),ct(j)},"buildCandidatesForSides"),Q=c((R,N,F,_)=>{let j=[...d("left"),...d("right")],D=[...d("top"),...d("bottom")];for(let H of i){let J=be(_,H),nt=H==="top"||H==="bottom"?d(H):D;for(let It of j){$(R,[N,F,{x:It,y:F.y},{x:It,y:J.y},J]);for(let y of nt)$(R,[N,F,{x:It,y:F.y},{x:It,y},{x:J.x,y},J])}}},"addVerticalDepartureOuterTrackCandidates"),et=c((R,N,F,_)=>{let j=[...d("left"),...d("right")],D=[...d("top"),...d("bottom")];for(let H of i){let J=be(_,H),nt=H==="left"||H==="right"?d(H):j;for(let It of D){$(R,[N,F,{x:F.x,y:It},{x:J.x,y:It},J]);for(let y of nt)$(R,[N,F,{x:F.x,y:It},{x:y,y:It},{x:y,y:J.y},J])}}},"addHorizontalDepartureOuterTrackCandidates"),lt=c(R=>{let N=R.start,F=R.end,_=F?r.get(F):void 0;if(!N||!_)return[];let j=Mt(R.points??[]);if(j.length<4)return[];let D=j[0],H=j[1],J=[];return kt(D,H,K)?Q(J,D,H,_):Tt(D,H,K)&&et(J,D,H,_),J},"terminalPreservingOuterTrackCandidates"),mt=c(R=>{let N=R.start,F=R.end,_=N?r.get(N):void 0,j=F?r.get(F):void 0;if(!_||!j)return[];let D=[];for(let H of i){let J=be(_,H);for(let nt of i)D.push(...W(J,H,be(j,nt),nt))}return D.push(...lt(R)),D},"candidatePathsFor"),vt=c(()=>new Map(a.map(R=>[R,st(g(R))])),"currentSegmentsByEdge"),Ct=c((R,N,F)=>{let _=new Set;for(let j of a){if(j===R)continue;let D=F.get(j)??st(g(j));N.some(H=>D.some(J=>ie(H,J,.5)>=Yt))&&_.add(j)}return _},"sharedTrackConflictsFor"),Kt=c((R,N,F,_)=>{let j=new Set;return mt(R).map(D=>le(Mt(D))).filter(D=>{if(O(R,D))return!1;let H=D.map(J=>`${J.x.toFixed(3)},${J.y.toFixed(3)}`).join("|");return j.has(H)||D.length<2?!1:(j.add(H),!0)}).map(D=>{let H=st(D),J=0;for(let nt of a)nt!==R&&(J+=h(H,F.get(nt)??st(g(nt))));return{candidate:D,candidateSegments:H,crossings:N.count-(_.get(R)??0)+J,bends:Jt(D,K),totalBends:Jt(D),length:v(D)}}).filter(({crossings:D})=>D<=N.count).sort((D,H)=>D.crossings-H.crossings||D.bends-H.bends||D.length-H.length).slice(0,48).map(D=>({path:D.candidate,segments:D.candidateSegments,sharedTrackConflicts:Ct(R,D.candidateSegments,F),totalBends:D.totalBends,length:D.length}))},"pairCandidatesFor"),Ht=c((R,N,F,_,j,D)=>{let H=0;for(let nt of R.pairs)(nt.first===N||nt.second===N||nt.first===_||nt.second===_)&&(H+=nt.count);let J=h(F.segments,j.segments);for(let nt of a){if(nt===N||nt===_)continue;let It=D.get(nt)??st(g(nt));J+=h(F.segments,It)+h(j.segments,It)}return R.count-H+J},"pairCrossingCount"),ne=c((R,N)=>{for(let F of R.sharedTrackConflicts)if(F!==N)return!1;return!0},"conflictsOnlyWith"),Se=c((R,N)=>R.segments.some(F=>N.segments.some(_=>ie(F,_,.5)>=Yt)),"candidatesShareTrack"),Oe=c((R,N,F,_)=>ne(N,F.edge)&&ne(_,R.edge)&&!Se(N,_),"pairCandidatesAreCompatible"),ln=c((R,N,F,_,j)=>{let D=Ht(R.current,N.edge,F,_.edge,j,R.baseSegments);if(!(D>=R.current.count))return{replacements:new Map([[N.edge,F.path],[_.edge,j.path]]),crossings:D,bends:R.currentBends-(R.baseBendsByEdge.get(N.edge)??0)-(R.baseBendsByEdge.get(_.edge)??0)+F.totalBends+j.totalBends,length:R.currentLength-(R.baseLengthByEdge.get(N.edge)??0)-(R.baseLengthByEdge.get(_.edge)??0)+F.length+j.length}},"scorePairReplacement"),an=c((R,N)=>R.crossings<N.crossings||R.crossings===N.crossings&&(R.bends<N.bends||R.bends===N.bends&&R.length<N.length),"pairScoreIsBetter"),Re=c((R,N,F,_)=>{let j=_;for(let D of N.candidates)for(let H of F.candidates){if(!Oe(N,D,F,H))continue;let J=ln(R,N,D,F,H);J&&an(J,j)&&(j=J)}return j},"bestScoreForOptionPair"),Ae=c(R=>{let N=S(),F=L(),_=vt(),j=I(R),D=new Map(a.map(w=>[w,Jt(g(w))])),H=new Map(a.map(w=>[w,v(g(w))])),J=new Map,nt=m(R);for(let w of nt)for(let k of w){if(J.has(k))continue;let C=Kt(k,R,_,j);C.length>0&&J.set(k,{edge:k,candidates:C})}let It={replacements:new Map,crossings:R.count,bends:N,length:F},y={current:R,currentBends:N,currentLength:F,baseBendsByEdge:D,baseLengthByEdge:H,baseSegments:_};for(let w of nt){let k=new Set(w.filter(E=>R.edgeSet.has(E))),C=w.map(E=>J.get(E)).filter(E=>!!E);for(let E=0;E<C.length;E++){let B=C[E];for(let V=E+1;V<C.length;V++){let rt=C[V];!k.has(B.edge)&&!k.has(rt.edge)||(It=Re(y,B,rt,It))}}}return It.replacements.size>0?It.replacements:void 0},"bestPairedReplacement");for(let R=0;R<4;R++){let N=u(),F=N.count;if(F===0)return;let _,j,D=F,H=1/0;for(let nt of N.edges){let It=Jt(g(nt),K);for(let y of mt(nt)){let w=O(nt,y),k=!w&&T(nt,y),C=b(N,nt,y),E=Jt(y,K);w||k||(C<F||C===F&&E<It)&&(C>D||C===D&&E>=H||(_=nt,j=y,D=C,H=E))}}if(_&&j){_.points=j;continue}let J=Ae(N);if(!J)return;for(let[nt,It]of J)nt.points=It}}c(mo,"resolveRenderedOrthogonalCrossings");var he=.001,Si=8;function xo(t,e){let{nodeInfoById:n,realNodeRects:r}=De(e),o=["top","bottom","left","right"],i={top:Math.min(...r.map(u=>u.rect.top))-20,bottom:Math.max(...r.map(u=>u.rect.bottom))+20,left:Math.min(...r.map(u=>u.rect.left))-20,right:Math.max(...r.map(u=>u.rect.right))+20},l=c((u,p,x,M)=>{let m=[],b=vn(u,p,x,M,20,he);return b&&m.push(b),p===M&&m.push(Ln(u,p,x,i[p])),m},"buildOrthogonalPathCandidates"),a=c((u,p)=>{for(let x=0;x<u.length-1;x++){let M=u[x],m=u[x+1];if(Rt(M,m,r,p,1))return!0}return!1},"pathHitsNode"),f=c((u,p,x=!1)=>{let M=0,m=Le(u,he),b=p.start,I=p.end;for(let v of t){if(v===p||v.isLayoutOnly)continue;let S=v.start,L=v.end;if(!x&&b&&I&&(S===b||S===I||L===b||L===I))continue;let T=v.points;if(!(!T||T.length<2))for(let O of m)for(let $ of Le(T,he)){if(Tn(O.a,O.b,$.a,$.b,he,he)){M++;continue}ie(O,$,he)>=Si&&M++}}return M},"pathConflictCount"),d=c((u,p)=>{let x=Math.abs(u.y-p.rect.top),M=Math.abs(u.y-p.rect.bottom),m=Math.abs(u.x-p.rect.left),b=Math.abs(u.x-p.rect.right),I="top",v=x;return M<v&&(I="bottom",v=M),m<v&&(I="left",v=m),b<v&&(I="right",v=b),I},"nearestSideOfRect"),g=new Map,h=c((u,p,x)=>{let M=g.get(u)??[];M.push({side:p,edgeId:x}),g.set(u,M)},"addFaceClaim");for(let u of t){if(u.isLayoutOnly)continue;let p=u.points??[];if(p.length<1)continue;let x=u.id??"",M=u.start,m=u.end;if(M){let b=n.get(M);b&&h(M,d(p[0],b),x)}if(m){let b=n.get(m);b&&h(m,d(p[p.length-1],b),x)}}let s=c((u,p,x)=>{var M;return((M=g.get(u))==null?void 0:M.some(m=>m.edgeId!==x&&m.side===p))??!1},"faceIsClaimed");for(let u of t){if(u.isLayoutOnly)continue;let p=u.points;if(!p||p.length<2)continue;let x=Jt(p,he);if(x<4)continue;let M=u.start,m=u.end;if(!M||!m)continue;let b=n.get(M),I=n.get(m);if(!b||!I)continue;let v=u.id??"",S=f(p,u,!0),L=f(p,u),T,O=S,$=x;for(let U of o){if(s(M,U,v))continue;let A=be(b,U);for(let X of o){if(s(m,X,v))continue;let Z=be(I,X);for(let it of l(A,U,Z,X)){if(a(it,[M,m]))continue;let dt=Jt(it,he);if(S>0){let ut=f(it,u,!0);if(ut>O||ut===O&&dt>=$)continue;O=ut,$=dt,T=it;continue}f(it,u)>L||dt<$&&($=dt,T=it)}}}if(T){u.points=T;let U=g.get(M);U&&g.set(M,U.filter(X=>X.edgeId!==v));let A=g.get(m);A&&g.set(m,A.filter(X=>X.edgeId!==v)),h(M,d(T[0],b),v),h(m,d(T[T.length-1],I),v)}}}c(xo,"simplifyDetouredEdges");var Wt=.001,yo=10,Ke=7;function Un(t,e){let n=e?0:t.length-1,r=e?1:-1,o=t[n],i=t[n+r];if(!o||!i)return;let l=i.x-o.x,a=i.y-o.y;if(!(Math.abs(l)+Math.abs(a)<Wt)){if(Math.abs(a)<=Wt){let f=o.x+Math.sign(l)*yo;return{left:Math.min(o.x,f),right:Math.max(o.x,f),top:o.y-Ke,bottom:o.y+Ke}}if(Math.abs(l)<=Wt){let f=o.y+Math.sign(a)*yo;return{left:o.x-Ke,right:o.x+Ke,top:Math.min(o.y,f),bottom:Math.max(o.y,f)}}return{left:Math.min(o.x,i.x),right:Math.max(o.x,i.x),top:Math.min(o.y,i.y),bottom:Math.max(o.y,i.y)}}}c(Un,"markerClearanceRectFor");function bo(t){return{left:Math.min(t.left,t.right),right:Math.max(t.left,t.right),top:Math.min(t.top,t.bottom),bottom:Math.max(t.top,t.bottom)}}c(bo,"normalizeRect");function qn(t,e){let n=Mt(e);return[Un(n,!0),Un(n,!1)].some(r=>r&&Ge(t,bo(r)))}c(qn,"labelOverlapsOwnMarker");function Ze(t,e){let n=[];for(let h of t){if(h.isLayoutOnly)continue;let s=h.points;if(!(!s||s.length<2))for(let u=0;u<s.length-1;u++)n.push({edgeId:h.id,p1:s[u],p2:s[u+1]})}let r=[],o=[];for(let h of e.values()){let s=h.isGroup,u=h.parentId;if(s&&!u){let x=Vt(h);x&&o.push({id:h.id,rect:x});continue}if(s||h.isEdgeLabel)continue;let p=Vt(h);p&&r.push({nodeId:h.id,rect:p})}let i=c((h,s)=>{let u=wn(s,3);for(let{nodeId:p,rect:x}of r)if(p!==h&&Ge(u,x))return!0;return!1},"labelOverlapsForeignNode"),l=c((h,s)=>{let u=wn(s,3);for(let p of n)if(p.edgeId!==h&&ze(p.p1,p.p2,u))return!0;return!1},"labelOverlapsForeignEdge"),a=c((h,s,u)=>i(h,u)||l(s,u),"labelOverlapsAnything"),f=[],d=c(h=>{for(let{id:s,rect:u}of o)if(Hr(u,h))return s},"findContainingLane"),g=c((h,s)=>f.some(u=>u.labelId!==h&&Ge(s,u.rect)),"overlapsPlacedLabel");for(let h of t){if(h.isLayoutOnly)continue;let s=h.labelNodeId;if(!s)continue;let u=e.get(s);if(!u)continue;let p=h.points;if(!p||p.length<2)continue;let x=u.width??0,M=u.height??0;if(x<=0||M<=0)continue;let m=[];for(let W=0;W<p.length-1;W++){let Q=p[W],et=p[W+1],lt=Math.abs(Q.x-et.x),mt=Math.abs(Q.y-et.y);lt<Wt&&mt<Wt||lt>=Wt&&mt>=Wt||m.push({idx:W,length:lt+mt,orientation:lt>=Wt?"horizontal":"vertical",midX:(Q.x+et.x)/2,midY:(Q.y+et.y)/2})}if(m.length===0)continue;let b=m.length>=3?m.filter(W=>W.idx>0&&W.idx<m.length-1):m,I=b.length>0?b:m,v=x>=M?"horizontal":"vertical",S=c(W=>[...W].sort((Q,et)=>{let lt=Q.orientation===v;if(lt!==(et.orientation===v))return lt?-1:1;let mt=Q.length>=(Q.orientation==="horizontal"?x:M)+2;return mt===et.length>=(et.orientation==="horizontal"?x:M)+2?et.length-Q.length:mt?-1:1}),"rankSegments"),L=m[0],T=m[m.length-1],O=[.5,.25,.75,.05,.95,.15,.85,.1,.9],$=c((W,Q)=>{let et=p[W.idx],lt=p[W.idx+1];return{midX:et.x+(lt.x-et.x)*Q,midY:et.y+(lt.y-et.y)*Q}},"anchorAtT"),U=c((W,Q,et)=>Math.min(et,Math.max(Q,W)),"clamp"),A=c((W,Q)=>W.midX>=Q.left-Wt&&W.midX<=Q.right+Wt&&W.midY>=Q.top-Wt&&W.midY<=Q.bottom+Wt,"pointInsideRectInclusive"),X=c(W=>{let Q=Ce(W.midX,W.midY,x,M),et=d(Q);if(et)return{laneId:et,anchor:W,rect:Q};let lt=o.find(({rect:Se})=>A(W,Se));if(!lt)return;let mt=lt.rect.left+x/2+1,vt=lt.rect.right-x/2-1,Ct=lt.rect.top+M/2+1,Kt=lt.rect.bottom-M/2-1;if(mt>vt||Ct>Kt)return;let Ht={midX:U(W.midX,mt,vt),midY:U(W.midY,Ct,Kt)},ne=Ce(Ht.midX,Ht.midY,x,M);return A(W,ne)?{laneId:lt.id,anchor:Ht,rect:ne}:void 0},"placementForAnchor"),Z=c((W,Q,et)=>W.orientation==="horizontal"?Math.abs(Q.midX-et.x):Math.abs(Q.midY-et.y),"distanceAlongSegment"),it=c((W,Q)=>{let et=(W.orientation==="horizontal"?x/2:M/2)+12;if(W===L){let lt=p[W.idx];if(Z(W,Q,lt)+Wt<et)return!1}if(W===T){let lt=p[W.idx+1];if(Z(W,Q,lt)+Wt<et)return!1}return!0},"labelClearsTerminalEndpoints"),dt=c(W=>{let Q=S(W);for(let et of Q)for(let lt of O){let mt=$(et,lt);if(!it(et,mt))continue;let vt=X(mt);if(vt&&!qn(vt.rect,p)&&!g(s,vt.rect)&&!a(s,h.id,vt.rect))return{laneId:vt.laneId,anchor:vt.anchor}}},"tryPool"),ut=c((W,Q,et=!1)=>{let lt=S(W);for(let mt of lt){let vt={midX:mt.midX,midY:mt.midY};if(Q&&!it(mt,vt))continue;let Ct=X(vt);if(Ct&&!qn(Ct.rect,p)&&!g(s,Ct.rect)&&!i(s,Ct.rect)&&(et||!l(h.id,Ct.rect)))return{laneId:Ct.laneId,anchor:Ct.anchor}}},"findLaneContainingFallback"),ct=dt(I)??(I.length<m.length?dt(m):void 0)??ut(m,!0)??ut(m,!1)??ut(m,!1,!0);if(ct){u.x=ct.anchor.midX,u.y=ct.anchor.midY,u.parentId=ct.laneId;let W=Ce(ct.anchor.midX,ct.anchor.midY,x,M),Q=f.findIndex(et=>et.labelId===s);Q>=0?f[Q]={labelId:s,rect:W}:f.push({labelId:s,rect:W})}}}c(Ze,"anchorLabelsToPolyline");var Jn=1e-6,Mo=8/2,wi=3;function Kn(t,e){return t<e?`${t}::${e}`:`${e}::${t}`}c(Kn,"pairKey");function Io(t,e){let{nodeInfoById:n,realNodeRects:r}=De(e),o=new Map;for(let l of e){let a=l.id;if(!l.isGroup&&l.isEdgeLabel){o.set(a,{w:l.width??0,h:l.height??0});continue}}let i=c((l,a,f,d)=>{let g=Kn(a,f),h=0,s=c(u=>{if(!u)return;let p=o.get(u);if(!p)return;let x=d==="x"?p.w/2:p.h/2;x>h&&(h=x)},"consider");s(l.labelNodeId);for(let u of t){if(u===l||u.isLayoutOnly)continue;let p=u.start,x=u.end;!p||!x||Kn(p,x)===g&&s(u.labelNodeId)}return h>0?h+wi:0},"labelClearanceFor");for(let l of t){if(l.isLayoutOnly)continue;let a=l.points;if(!In(a,Jn))continue;let f=Cn(l,n,Jn);if(!f)continue;let{srcId:d,dstId:g,srcInfo:h,dstInfo:s,collinearX:u,collinearY:p}=f;if(u===p)continue;let x,M;if(u){let v=s.cy>h.cy;x={x:h.cx,y:v?h.rect.bottom:h.rect.top},M={x:s.cx,y:v?s.rect.top:s.rect.bottom}}else{let v=s.cx>h.cx;x={x:v?h.rect.right:h.rect.left,y:h.cy},M={x:v?s.rect.left:s.rect.right,y:s.cy}}if(Rt(x,M,r,[d,g],1))continue;let m=i(l,d,g,u?"x":"y"),b=m>Mo?m:Mo,I=[0,b,-b];for(let v of I){let S={...x},L={...M};if(u){if(S.x+=v,L.x+=v,S.x<=h.rect.left||S.x>=h.rect.right||L.x<=s.rect.left||L.x>=s.rect.right)continue}else if(S.y+=v,L.y+=v,S.y<=h.rect.top||S.y>=h.rect.bottom||L.y<=s.rect.top||L.y>=s.rect.bottom)continue;if(!Rt(S,L,r,[d,g],1)&&!He(S,L,t,l,{epsilon:Jn})){l.points=[S,L];break}}}}c(Io,"straightenCollinearSiblingDetours");function Zn(t,e){let n=.001,{realNodeRects:r,labelNodeRects:o}=ue(e.values()),i=c((M,m)=>Le(m,n).map(b=>({...b,edge:M,interior:b.index>=1&&b.index<=m.length-3})),"segmentsFor"),l=c(()=>{let M=[];for(let m of t){if(m.isLayoutOnly)continue;let b=m.points;!b||b.length<2||M.push(...i(m,Mt(b)))}return M},"allSegments"),a=c((M,m)=>M.horizontal&&m.horizontal?Dt(M.a.x,M.b.x,m.a.x,m.b.x)>=8&&Math.abs(M.a.y-m.a.y)<7:M.vertical&&m.vertical?Dt(M.a.y,M.b.y,m.a.y,m.b.y)>=8&&Math.abs(M.a.x-m.a.x)<7:!1,"hasCrowdedParallelTrack"),f=c((M,m)=>{let b=M.start,I=M.end,v=i(M,m);if(v.length!==m.length-1)return!1;let S=[b,I].filter(T=>!!T),L=M.labelNodeId?[M.labelNodeId]:[];for(let T of v)if(Rt(T.a,T.b,r,S,-2)||Rt(T.a,T.b,o,L,-2))return!1;for(let T of t){if(T===M||T.isLayoutOnly)continue;let O=T.points;if(!(!O||O.length<2)){for(let $ of v)for(let U of i(T,Mt(O)))if(a($,U)||se($.a,$.b,U.a,U.b,n))return!1}}return!0},"candidateIsSafe"),d=c((M,m)=>{let b=Mt(M.edge.points??[]);if(b.length<4||M.index>=b.length-1)return;let I=b.map(v=>({...v}));if(M.horizontal)I[M.index].y+=m,I[M.index+1].y+=m;else if(M.vertical)I[M.index].x+=m,I[M.index+1].x+=m;else return;return i(M.edge,I).length===I.length-1?I:void 0},"shiftedCandidate"),g=c((M,m)=>({x:M.x??(m.left+m.right)/2,y:M.y??(m.top+m.bottom)/2}),"nodeCenter"),h=c(M=>{let m=M.edge,b=Mt(m.points??[]);if(b.length!==4||M.index!==1)return;let I=m.start?e.get(m.start):void 0,v=m.end?e.get(m.end):void 0,S=I?Vt(I):void 0,L=v?Vt(v):void 0,T=b.slice(M.index+2);if(!(!I||!v||!S||!L||T.length===0))return{sourceCenter:g(I,S),targetCenter:g(v,L),sourceRect:S,tail:T}},"sourceDetourContextFor"),s=c((M,m,b,I,v,S)=>{let L=I.y>=b.y,T=L?v.bottom:v.top,O=T+(L?20:-20);if(L&&M.b.y<=O+n||!L&&M.b.y>=O-n)return;let $=M.a.x+m;return Mt([{x:b.x,y:T},{x:b.x,y:O},{x:$,y:O},{x:$,y:M.b.y},...S],n)},"verticalSourceDetour"),u=c((M,m,b,I,v,S)=>{let L=I.x>=b.x,T=L?v.right:v.left,O=T+(L?20:-20);if(L&&M.b.x<=O+n||!L&&M.b.x>=O-n)return;let $=M.a.y+m;return Mt([{x:T,y:b.y},{x:O,y:b.y},{x:O,y:$},{x:M.b.x,y:$},...S],n)},"horizontalSourceDetour"),p=c((M,m)=>{let b=h(M);if(b){if(M.vertical)return s(M,m,b.sourceCenter,b.targetCenter,b.sourceRect,b.tail);if(M.horizontal)return u(M,m,b.sourceCenter,b.targetCenter,b.sourceRect,b.tail)}},"sourceDetourCandidate"),x=[-7,7,-14,14,-21,21];for(let M=0;M<12;M++){let m=l(),b=!1;for(let I=0;I<m.length&&!b;I++)for(let v=I+1;v<m.length&&!b;v++){let S=m[I],L=m[v];if(S.edge===L.edge||!a(S,L))continue;let T=[S,L].filter(O=>O.interior);for(let O of T){for(let $ of x){let U=d(O,$);if(U&&f(O.edge,U)){O.edge.points=U,b=!0;break}let A=p(O,$);if(A&&f(O.edge,A)){O.edge.points=A,b=!0;break}}if(b)break}}if(!b)return}}c(Zn,"nudgeSharedInteriorSubpaths");function So(t,e,n,r){let o=e.x-t.x,i=e.y-t.y,l=r.x-n.x,a=r.y-n.y,f=o*a-i*l;if(Math.abs(f)<1e-10)return!1;let d=n.x-t.x,g=n.y-t.y,h=(d*a-g*l)/f,s=(d*i-g*o)/f,u=.01;return h>u&&h<1-u&&s>u&&s<1-u}c(So,"segmentsIntersect");function wo(t){let e=t.nodes??[],n=t.edges??[],r=[];if(!n.length||!e.length)return r;let o=jr(e),i=[];for(let a of n){if(a.isLayoutOnly)continue;let f=a.points;if(!f||f.length<2)continue;let d=a.start,g=a.end,h=a.labelNodeId,s=a.id??`${d}->${g}`;for(let u of o)if(!(u.nodeId===d||u.nodeId===g)&&!(h&&u.nodeId===h)){for(let p=0;p<f.length-1;p++)if(ze(f[p],f[p+1],u,-1)){r.push({type:"edge-node-overlap",edgeId:s,targetId:u.nodeId,detail:`segment ${p} passes through node "${u.nodeId}"`});break}}for(let u=0;u<f.length-1;u++)i.push({edgeId:s,start:d,end:g,p1:f[u],p2:f[u+1]})}let l=new Set;for(let a=0;a<i.length;a++)for(let f=a+1;f<i.length;f++){let d=i[a],g=i[f];if(d.edgeId!==g.edgeId&&!(d.start===g.start||d.start===g.end||d.end===g.start||d.end===g.end)&&So(d.p1,d.p2,g.p1,g.p2)){let h=d.edgeId<g.edgeId?`${d.edgeId}|${g.edgeId}`:`${g.edgeId}|${d.edgeId}`;l.has(h)||(l.add(h),r.push({type:"edge-edge-crossing",edgeId:d.edgeId,targetId:g.edgeId,detail:`edges "${d.edgeId}" and "${g.edgeId}" cross`}))}}if(r.length>0){let a=r.filter(d=>d.type==="edge-node-overlap").length,f=r.filter(d=>d.type==="edge-edge-crossing").length;cn.warn(`[SWIMLANE_VALIDATE] ${r.length} issue(s) detected: ${a} edge-node overlap(s), ${f} edge crossing(s)`);for(let d of r)cn.warn(`[SWIMLANE_VALIDATE] ${d.type}: ${d.detail}`)}return r}c(wo,"validateSwimlanesLayout");function vo(t,e){let n=t.nodes??[],r=t.edges??[],o=n.filter(a=>!a.isGroup);if((e==="LR"||e==="RL")&&o.length>0&&!ao(t,e)||e==="BT"&&o.length>0&&!lo(t))return;for(let a of r){if(a.isLayoutOnly)continue;let f=a.points;!f||f.length<2||(a.points=le(je(f)))}xo(r,n),Io(r,n),so(r,n);let i=new Map;for(let a of n)i.set(String(a.id),a);Ze(r,i),Kr(r,i),fo(r,i),Zn(r,i),uo(r,i),ho(r,i),jn(r,i),co(r,i);let l=c(()=>{mo(r,i),go(r,i),po(r,i),Ze(r,i),_n(r,i),jn(r,i),Ze(r,i),_n(r,i)},"finalizeRenderedEdges");l(),Zn(r,i),l(),Vn(r,i),Wn(r,i),Vn(r,i),Wn(r,i)}c(vo,"postProcessSwimlaneLayout");function ce(t){let e=new Map(t.nodeById),n=new Set,r=[];for(let o of t.edges){if(!e.has(o.src)||!e.has(o.dst))continue;let i=`${o.id}:${o.src}->${o.dst}`;n.has(i)||(n.add(i),r.push(o))}return{nodes:[...e.keys()],edges:r,layout:t.layout,nodeById:e}}c(ce,"normalizeGraph");function Qn(t,e){return t.edges.filter(n=>n.dst===e)}c(Qn,"incoming");function Lo(t){let e=new Map;for(let n of t.nodes)e.set(n,[]);for(let n of t.edges)e.get(n.src).push(n.dst);return e}c(Lo,"buildSuccessorMap");function tr(t){let e=Lo(t);for(let n of e.values())n.sort((r,o)=>r.localeCompare(o));return e}c(tr,"buildSortedSuccessorMap");function er(t){let e=new Map;for(let n of t.nodes)e.set(n,0);for(let n of t.edges)e.set(n.dst,(e.get(n.dst)??0)+1);return e}c(er,"buildInDegreeMap");function nr(t){return[...t.entries()].filter(([,e])=>e===0).map(([e])=>e).sort((e,n)=>e.localeCompare(n))}c(nr,"sortedZeroInDegreeNodes");function Qe(t,e=()=>!0){let n=new Map,r=new Map;for(let o of t.nodes)n.set(o,[]),r.set(o,[]);for(let o of t.edges)e(o)&&(r.get(o.src).push(o.dst),n.get(o.dst).push(o.src));return{preds:n,succs:r}}c(Qe,"buildPredecessorSuccessorMaps");function rr(t,e,n,r){var l,a;let o=0;for(let f of t.nodes)r!=null&&r.skipGroups&&((l=t.nodeById.get(f))!=null&&l.isGroup)||(o=Math.max(o,n[f]??0));let i=Array.from({length:o+1},()=>[]);for(let f of e)r!=null&&r.skipGroups&&((a=t.nodeById.get(f))!=null&&a.isGroup)||i[Math.max(0,n[f]??0)].push(f);return i}c(rr,"buildLayersFromRanks");function Be(t){let e=er(t),n=nr(e),r=[],o=tr(t);for(;n.length;){let i=n.shift();r.push(i);for(let l of o.get(i)??[])if(e.set(l,(e.get(l)??0)-1),(e.get(l)??0)===0){let a=0;for(;a<n.length&&n[a]<l;)a++;n.splice(a,0,l)}}return r.length===t.nodes.length?r:null}c(Be,"topoSortIfAcyclic");function Te(t){let e=new Map,n=0;for(let r of t)e.set(r,n),n++;return e}c(Te,"buildLayerIndex");function or(t){let e=Array(t.length),n=c((r,o)=>{if(o-r<=1)return 0;let i=r+o>>1,l=n(r,i)+n(i,o),a=r,f=i,d=r;for(;a<i||f<o;)f>=o||a<i&&t[a]<=t[f]?e[d++]=t[a++]:(e[d++]=t[f++],l+=i-a);for(let g=r;g<o;g++)t[g]=e[g];return l},"count");return n(0,t.length)}c(or,"countInversions");function Co(t){let e=ce(t),n=new Map;for(let d of e.nodes)n.set(d,[]);for(let d of e.edges)n.get(d.src).push(d);for(let d of n.values())d.sort((g,h)=>g.dst===h.dst?g.id.localeCompare(h.id):g.dst.localeCompare(h.dst));let r=Object.create(null);for(let d of e.nodes)r[d]=0;let o=[],i=c(d=>{r[d]=1;for(let g of n.get(d)??[]){let h=g.dst;r[h]===0?i(h):r[h]===1&&o.push(g)}r[d]=2},"dfs"),l=[...e.nodes].sort((d,g)=>d.localeCompare(g));for(let d of l)r[d]===0&&i(d);let a=new Set(o.map(d=>`${d.id}:${d.src}->${d.dst}`)),f=e.edges.map(d=>a.has(`${d.id}:${d.src}->${d.dst}`)?{id:d.id,src:d.dst,dst:d.src,weight:d.weight,ref:d.ref}:d);return{acyclic:{nodes:[...e.nodes],edges:f,layout:e.layout,nodeById:new Map(e.nodeById)},reversed:o}}c(Co,"removeCycles_DFS");function To(t){let e=new Map,n=c(r=>{if(e.has(r))return e.get(r);let o=t.nodeById.get(r);if(!o)return e.set(r,null),null;let i=o.parentId;if(!i)return e.set(r,null),null;let l=n(i)??i;return e.set(r,l),l},"resolve");for(let r of t.nodes)n(r);return e}c(To,"buildTopLaneMap");function fe(t){let e=To(t);return n=>e.get(n)??null}c(fe,"createTopLaneResolver");function tn(t){let e=[];for(let n of t.layout.nodes??[])n.isGroup&&!n.parentId&&e.push(n.id);return[...new Set(e)].reverse()}c(tn,"buildTopLaneOrder");function ir(t,e){let n=tn(t);if(!e||e.length===0)return n;let r=new Set(n),o=new Set,i=[];for(let l of e)!r.has(l)||o.has(l)||(o.add(l),i.push(l));for(let l of n)o.has(l)||i.push(l);return i}c(ir,"resolveTopLaneOrder");var vi={EPSILON:1e-6},en={GRAVITY_ITERATIONS:8,MAX_CROSSING_OPTIMIZATION_PASSES:4,DEFAULT_COMPACT_SINGLE_INPUT:!0},ko={DEFAULT_LAYER_GAP:100,DEFAULT_NODE_GAP:40};function Oo(t,e){let n=ce(t),r=(e==null?void 0:e.laneOf)??(()=>null),o=e==null?void 0:e.rankHint,{preds:i}=Qe(n);for(let S of i.values())S.sort((L,T)=>L.localeCompare(T));let l=Be(n)??[...n.nodes].sort((S,L)=>S.localeCompare(L)),a=new Map;for(let[S,L]of l.entries())a.set(L,S);let f=new Map,d=new Map;for(let S of n.nodes)d.set(S,[]);for(let S of l){let L=(i.get(S)??[]).filter(T=>f.has(T));if(L.length>0){let T=Ro(S,L,{laneOf:r,rankHint:o,topoIndex:a});f.set(S,T),d.get(T).push(S)}else f.has(S)||f.set(S,null)}for(let S of n.nodes)f.has(S)||f.set(S,null);let g=new Set;for(let S of n.nodes)(f.get(S)??null)===null&&g.add(S);let h=[...g].sort((S,L)=>{let T=a.get(S)??0,O=a.get(L)??0;return T===O?S.localeCompare(L):T-O}),s=Eo(n),u=new Map;for(let[S,L]of s.entries())u.set(S,[...L].sort((T,O)=>T.localeCompare(O)));let p=$o(u),x=No(u),M=new Map;for(let S of n.nodes)M.set(S,[]);for(let S of x)for(let L of S.nodes){let T=M.get(L);T?T.push(S.id):M.set(L,[S.id])}let m=[],b=[],I=new Set,v=c(S=>{if(!I.has(S)){I.add(S),m.push(S);for(let L of d.get(S)??[])v(L);b.push(S)}},"walk");for(let S of h)v(S);for(let S of l)v(S);return{parent:f,children:d,roots:h,componentOf:p,blocks:x,nodeBlocks:M,adjacency:u,preorder:m,postorder:b,topologicalOrder:l}}c(Oo,"buildDrivingTree");function Ro(t,e,n){let r=n.laneOf(t);return[...e].sort((o,i)=>{var u,p;let l=n.laneOf(o),a=n.laneOf(i),f=l!=null&&l===r;if(f!==(a!=null&&a===r))return f?-1:1;let d=(u=n.rankHint)==null?void 0:u[o],g=(p=n.rankHint)==null?void 0:p[i];if(d!=null&&g!=null&&d!==g)return g-d;let h=n.topoIndex.get(o)??0,s=n.topoIndex.get(i)??0;return h===s?o.localeCompare(i):h-s})[0]}c(Ro,"chooseParent");function Eo(t){let e=new Map;for(let n of t.nodes)e.set(n,new Set);for(let n of t.edges)e.get(n.src).add(n.dst),e.get(n.dst).add(n.src);return e}c(Eo,"buildAdjacency");function $o(t){let e=new Map,n=0;for(let r of t.keys()){if(e.has(r))continue;let o=[r];for(;o.length>0;){let i=o.pop();if(!e.has(i)){e.set(i,n);for(let l of t.get(i)??[])e.has(l)||o.push(l)}}n++}return e}c($o,"assignComponents");function No(t){let e=new Map,n=new Map,r=[],o=[],i=0,l=c((a,f)=>{e.set(a,++i),n.set(a,i);for(let d of t.get(a)??[])d!==f&&(e.has(d)?(e.get(d)??0)<(e.get(a)??0)&&(r.push([a,d]),n.set(a,Math.min(n.get(a)??i,e.get(d)??i))):(r.push([a,d]),l(d,a),n.set(a,Math.min(n.get(a)??i,n.get(d)??i)),(n.get(d)??0)>=(e.get(a)??0)&&o.push(Fo(a,d,r,o.length))))},"visit");for(let a of t.keys())e.has(a)||l(a,null);return o}c(No,"computeBlocks");function Fo(t,e,n,r){let o=[],i=new Set;for(;n.length>0;){let l=n.pop();if(o.push(l),i.add(l[0]),i.add(l[1]),l[0]===t&&l[1]===e||l[0]===e&&l[1]===t)break}return{id:r,edges:o,nodes:[...i]}}c(Fo,"popBlock");function Bo(t,e,n){let r=[...t.nodes],o=new Map;for(let[b,I]of r.entries())o.set(I,b);let i=r.length,l=Array(i).fill(-1),a=Array(i).fill(0),f=[],d=new Set;for(let b of r){let I=n.parent.get(b)??null,v=o.get(b);v!=null&&(I??(l[v]=-1,a[v]=0,d.has(b)||(d.add(b),f.push(b))))}for(;f.length>0;){let b=f.shift(),I=o.get(b);if(I==null)continue;let v=n.children.get(b)??[];for(let S of v){if(d.has(S))continue;let L=o.get(S);L!=null&&(l[L]=I,a[L]=a[I]+1,d.add(S),f.push(S))}}for(let b of r){if(d.has(b))continue;let I=o.get(b);I!=null&&(l[I]=-1,a[I]=0,d.add(b))}let g=Math.max(1,Math.ceil(Math.log2(Math.max(1,i)))+1),h=Array.from({length:g},()=>Array(i).fill(-1));for(let b=0;b<i;b++)h[0][b]=l[b];for(let b=1;b<g;b++)for(let I=0;I<i;I++){let v=h[b-1][I];h[b][I]=v===-1?-1:h[b-1][v]}let s=c((b,I)=>{if(b===-1||I===-1)return-1;a[b]<a[I]&&([b,I]=[I,b]);let v=a[b]-a[I];for(let S=0;S<g;S++)if(v>>S&1&&(b=h[S][b],b===-1))return-1;if(b===I)return b;for(let S=g-1;S>=0;S--){let L=h[S][b],T=h[S][I];L===-1||T===-1||L!==T&&(b=L,I=T)}return h[0][b]},"lcaIndex"),u=Array.from({length:i},()=>new Map);for(let b of t.edges){let I=b.src,v=b.dst,S=e[I],L=e[v];if(S==null||L==null||(S>L&&([I,v]=[v,I],[S,L]=[L,S]),S==null||L==null||S===L))continue;let T=o.get(I),O=o.get(v);if(T==null||O==null)continue;let $=s(T,O);if($===-1)continue;let U=u[$];for(let A=S;A<L;A++)U.set(A,(U.get(A)??0)+1)}let p=new Map,x=c((b,I)=>{if(I.size!==0)for(let[v,S]of I)b.set(v,(b.get(v)??0)+S)},"mergeInto"),M=new Set,m=c(b=>{let I=o.get(b);M.add(b);let v=I==null?void 0:u[I],S=v?new Map(v):new Map,L=n.children.get(b)??[];for(let T of L){let O=m(T),$=e[b];if($!=null){let U=p.get(b);U||(U=new Map,p.set(b,U));let A=O.get($)??0,X=e[T];X!=null&&X>$&&(A+=1),U.set(T,A)}x(S,O)}return S},"dfs");for(let b of n.roots)M.has(b)||m(b);for(let b of r)M.has(b)||m(b);return p}c(Bo,"computeSubtreeCrossCounts");function Ao(t,e,n){let r=new Map,o=c(i=>{let l=n[i]??0,a=[...e.get(i)??[]];a.sort(lr(n));for(let f of a){o(f);let d=r.get(f);d!=null&&(l=Math.min(l,d))}r.set(i,l)},"annotate");for(let i of t)o(i);return r}c(Ao,"annotateMinimumLayers");function lr(t){return(e,n)=>{let r=t[e]??0,o=t[n]??0;return r===o?e.localeCompare(n):r-o}}c(lr,"compareByRankThenId");function Po(t,e,n,r){let o=0;for(let f of e){let d=n[f]??0;d>o&&(o=d)}let i=Array.from({length:o+1},()=>[]),l=new Set,a=c(f=>{if(l.has(f))return;l.add(f);let d=n[f]??0;i[d]||(i[d]=[]),i[d].push(f);for(let g of r(f))a(g)},"emit");for(let f of t)a(f);for(let f of e)if(!l.has(f)){let d=n[f]??0;i[d]||(i[d]=[]),i[d].push(f),l.add(f)}return i}c(Po,"emitNodesInTreeOrder");function Xo(t){let e=[];for(let n of t){let r=new Set,o=[];for(let i of n)r.has(i)||(r.add(i),o.push(i));e.push(o)}return e}c(Xo,"deduplicateLayers");function Yo(t,e,n,r){return o=>{let i=t.get(o)??[];if(i.length===0)return[];let l=e[o]??0,a=[],f=[],d=n.get(o);for(let g of i){let h=r.get(g)??l;h>l?a.push({child:g,min:h}):f.push(g)}return a.sort((g,h)=>g.min===h.min?g.child.localeCompare(h.child):g.min-h.min),f.sort((g,h)=>{let s=(d==null?void 0:d.get(g))??0,u=(d==null?void 0:d.get(h))??0;if(s!==u)return s-u;let p=r.get(g)??l,x=r.get(h)??l;return p===x?g.localeCompare(h):p-x}),[...a.map(g=>g.child),...f]}}c(Yo,"createChildOrderer");function nn(t,e,n){let r=Oo(t,{rankHint:e,laneOf:n}),{children:o,roots:i}=r;for(let g of t.nodes)o.has(g)||o.set(g,[]);let l=Bo(t,e,r),a=[...i].sort(lr(e)),f=Yo(o,e,l,Ao(a,o,e)),d=Po(a,t.nodes,e,f);return d=Xo(d),d}c(nn,"buildMultitreeLayerOrder");function _o(t,e,n){let r=new Set(t),o=new Set(e),i=Te(e),l=[];for(let a of n)r.has(a.src)&&o.has(a.dst)&&l.push(i.get(a.dst));return or(l)}c(_o,"countCrossingsBetweenAdjacent");function ar(t,e,n){let r=[];for(let i of e){let l=n[i.src],a=n[i.dst];if(l==null||a==null||l===a)continue;let f=i.src,d=i.dst,g=l,h=a;l>a&&(f=i.dst,d=i.src,g=a,h=l);for(let s=g;s<h;s++)r.push({id:`${i.id}@${s}`,src:f,dst:d,ref:i.ref})}let o=0;for(let i=0;i+1<t.length;i++)o+=_o(t[i],t[i+1],r);return o}c(ar,"totalCrossings");function zo(t,e){let n={...e},{preds:r}=Qe(t),o=fe(t),i=ar(nn(t,n,o),t.edges,n),l=en.MAX_CROSSING_OPTIMIZATION_PASSES;for(let a=0;a<l;a++){let f=!1,d=[...t.nodes].sort((g,h)=>(n[h]??0)-(n[g]??0));for(let g of d){let h=n[g]??0;if(h===0)continue;let s=0;for(let x of r.get(g)??[])s=Math.max(s,(n[x]??0)+1);if(s>=h)continue;let u=h;n[g]=s;let p=ar(nn(t,n,o),t.edges,n);p<i?(i=p,f=!0):n[g]=u}if(!f)break}return n}c(zo,"optimizeRanksByCrossings");function Go(t,e){let n=fe(t),r=[...t.nodes].sort((o,i)=>(e[o]??0)-(e[i]??0)||o.localeCompare(i));for(let o of r){let i=n(o);if(!i)continue;let l=t.edges.filter(x=>x.src===o);if(l.length===0)continue;let a=!1,f=0;for(let x of l){let M=n(x.dst);M==null||M===i?a=!0:f++}if(f===0||a)continue;let d=0,g=!1;for(let x of t.edges){if(x.dst!==o)continue;let M=n(x.src);M&&(M===i?g=!0:d++)}if(d>0||!g)continue;let h=e[o]??0,s=h+f,u=0;for(let x of t.edges)x.dst===o&&(u=Math.max(u,(e[x.src]??0)+1));let p=Math.max(h,u,s);p!==h&&(e[o]=p)}}c(Go,"adjustCrossLaneSources");function Do(t,e){let n=ce(t),r=Be(n)??[...n.nodes].sort(),o=(e==null?void 0:e.compactSingleInput)??!1,i=fe(n),l=Object.create(null);for(let a of r){let f=Qn(n,a),d=e!=null&&e.ignoreCrossLaneEdges?f.filter(g=>{let h=i(g.src),s=i(a);return!h||!s?!0:h===s}):f;if(d.length===0)l[a]=0;else if(o&&d.length===1){let g=d[0].src;i(g)===i(a)?l[a]=(l[g]??0)+1:l[a]=l[g]??0}else{let g=-1/0;for(let h of d)g=Math.max(g,(l[h.src]??0)+1);l[a]=g===-1/0?0:g}}return((e==null?void 0:e.optimizeRanksByCrossings)??!1)&&(l=zo(n,l)),e!=null&&e.ignoreCrossLaneEdges&&Go(n,l),{layers:nn(n,l,i),rankOf:l,dummy:new Set}}c(Do,"assignLayers_LongestPath");function Ho(t,e){let n=ce(t),r={...Do(n,{compactSingleInput:e==null?void 0:e.compactSingleInput,ignoreCrossLaneEdges:e==null?void 0:e.ignoreCrossLaneEdges,optimizeRanksByCrossings:e==null?void 0:e.optimizeRanksByCrossings}).rankOf},o=fe(n),{preds:i,succs:l}=Qe(n,s=>{if(e!=null&&e.ignoreCrossLaneEdges){let u=o(s.src),p=o(s.dst);if(u&&p&&u!==p)return!1}return!0}),a=Be(n)??[...n.nodes],f=[...a].reverse(),d=c((s,u)=>{let p=0;for(let m of i.get(s)??[])p=Math.max(p,(r[m]??0)+1);let x=1/0,M=l.get(s)??[];return M.length>0&&(x=Math.min(...M.map(m=>(r[m]??0)-1))),Number.isFinite(x)||(x=Math.max(p,u)),Math.min(Math.max(u,p),x)},"clampFeasible"),g=en.GRAVITY_ITERATIONS,h=c(s=>{let u=!1;for(let p of s){let x=i.get(p)??[],M=l.get(p)??[];if(x.length===0&&M.length===0)continue;let m=x.length>0?x.reduce((v,S)=>v+(r[S]??0)+1,0)/x.length:r[p]??0,b=M.length>0?M.reduce((v,S)=>v+(r[S]??0)-1,0)/M.length:r[p]??0,I=d(p,Math.round((m+b)/2));I!==r[p]&&(r[p]=I,u=!0)}return u},"relaxOrder");for(let s=0;s<g;s++){let u=h(a),p=h(f);if(!u&&!p)break}for(let s of a){let u=0;for(let p of i.get(s)??[])u=Math.max(u,(r[p]??0)+1);(r[s]??0)<u&&(r[s]=u)}for(let s of f){let u=l.get(s)??[];if(u.length>0){let p=Math.min(...u.map(x=>(r[x]??0)-1));(r[s]??0)>p&&(r[s]=p)}}return{layers:rr(n,a,r),rankOf:r,dummy:new Set}}c(Ho,"assignLayers_Gravity");function jo(t){let e=er(t),n=tr(t),r=nr(e),o=[];for(;r.length>0;){let i=[];for(let l of r){o.push(l);for(let a of n.get(l)??[])e.set(a,(e.get(a)??0)-1),(e.get(a)??0)===0&&i.push(a)}r=i.sort((l,a)=>l.localeCompare(a))}return o.length===t.nodes.length?o:null}c(jo,"topoSortByGenerationIfAcyclic");function Vo(t,e){var d;let n=ce(t),r=(e==null?void 0:e.direction)==="LR"?jo(n)??[...n.nodes].sort():Be(n)??[...n.nodes].sort(),o=fe(n),i=c(g=>o(g)??g,"laneOf"),l=Object.create(null),a=new Map,f=c((g,h)=>(e==null?void 0:e.ignoreCrossLaneEdges)??!0?i(g)===i(h)?1:0:1,"edgeWeight");for(let g of r){if((d=n.nodeById.get(g))!=null&&d.isGroup)continue;let h=Qn(n,g),s=0;if(h.length>0)for(let M of h){let m=M.src,b=l[m]??0;s=Math.max(s,b+f(m,g))}let u=i(g),p=a.get(u)??0,x=Math.max(s,p);l[g]=x,a.set(u,x+1)}return{layers:rr(n,r,l,{skipGroups:!0}),rankOf:l,dummy:new Set}}c(Vo,"assignLayers_LaneAwareCompact");function Wo(t,e){let n=ce(e),{rankOf:r}=t,o=t.layers.map(s=>[...s]),i=new Set(t.dummy?[...t.dummy]:[]),l=0,a=new Map(n.nodeById),f=c(s=>{let u=`placeholder-${l++}`,p={id:u,isGroup:!1,isDummy:!0,width:0,height:0};for(a.set(u,p),i.add(u);o.length<=s;)o.push([]);return o[s].push(u),r[u]=s,u},"addDummyAt"),d=[...n.edges].sort((s,u)=>s.id===u.id?s.src===u.src?s.dst.localeCompare(u.dst):s.src.localeCompare(u.src):s.id.localeCompare(u.id)),g=[];for(let s of d){let u=r[s.src]??0,p=r[s.dst]??0;if(p-u<=1){g.push(s);continue}let x=s.src;for(let m=u+1,b=0;m<p;m++,b++){let I=f(m);g.push({id:`${s.id}#${b}`,src:x,dst:I,weight:s.weight,ref:s.ref}),x=I}let M=p-u-2;g.push({id:`${s.id}#${Math.max(M+1,0)}`,src:x,dst:s.dst,weight:s.weight,ref:s.ref})}let h={nodes:[...n.nodes,...[...i].filter(s=>!n.nodes.includes(s))],edges:g,layout:n.layout,nodeById:a};return{layering:{layers:o,rankOf:r,dummy:i},graphWithDummies:h}}c(Wo,"makeProperLayering");function sr(t){let e=t.length;if(e===0)return 1/0;let n=[...t].sort((r,o)=>r-o);return e%2==1?n[(e-1)/2]:.5*(n[e/2-1]+n[e/2])}c(sr,"median");function fr(t){return t.length===0?1/0:t.reduce((e,n)=>e+n,0)/t.length}c(fr,"barycenter");function Uo(t,e,n,r){let o=new Map;for(let i of t)o.set(i,[]);for(let i of n)r==="down"?e.has(i.src)&&o.has(i.dst)&&o.get(i.dst).push(e.get(i.src)):e.has(i.dst)&&o.has(i.src)&&o.get(i.src).push(e.get(i.dst));return o}c(Uo,"neighborPositionsFor");function qo(t,e,n){let r=n.get(t)??0,o=n.get(e)??0;return r===o?t.localeCompare(e):r-o}c(qo,"currentOrderTieBreak");function dr(t,e,n){let r=new Set(t),o=new Set(e),i=Te(t),l=Te(e),a=[];for(let f of n)r.has(f.src)&&o.has(f.dst)&&a.push({u:i.get(f.src),v:l.get(f.dst)});return a.sort((f,d)=>f.u===d.u?f.v-d.v:f.u-d.u),or(a.map(f=>f.v))}c(dr,"countCrossingsBetweenAdjacent");function rn(t,e,n){return[...t].sort((r,o)=>{let i=sr(e.get(r)??[]),l=sr(e.get(o)??[]);return i===l?qo(r,o,n):isFinite(i)?isFinite(l)?i-l:-1:1})}c(rn,"sortByHeuristic");function ur(t,e,n,r,o,i){let l=Te(t),a=Te(e),f=Uo(e,l,n,r);if(!o||!i||i.length===0)return rn(e,f,a);let d=new Map;for(let s of e){let u=o(s),p=d.get(u)??[];p.push(s),d.set(u,p)}let g=[];for(let s of i){let u=d.get(s);if(!u||u.length===0)continue;let p=rn(u,f,a);g.push(...p)}let h=d.get(null);if(h&&h.length>0){let s=rn(h,f,a);for(let u of s){let p=fr(f.get(u)??[]),x=g.length;if(isFinite(p)){for(let[M,m]of g.entries())if(p<fr(f.get(m)??[])){x=M;break}}g.splice(x,0,u)}}return g}c(ur,"reorderLayer");function hr(t,e,n,r,o){let i=[...e],l=new Set(t),a=new Set(e),f=r?new Set(r):null,d=n.filter(x=>l.has(x.src)&&a.has(x.dst)),g=f?n.filter(x=>a.has(x.src)&&f.has(x.dst)):void 0,h=c(x=>{let M=dr(t,x,d);return g&&r&&(M+=dr(x,r,g)),M},"crossingScore"),s=o?new Map:null;if(o&&s)for(let x of e)s.set(x,o(x));let u=!0,p=h(i);for(;u;){u=!1;for(let x=0;x+1<i.length;x++){if(s&&s.get(i[x])!==s.get(i[x+1]))continue;let M=p;[i[x],i[x+1]]=[i[x+1],i[x]];let m=h(i);m<M?(p=m,u=!0):[i[x],i[x+1]]=[i[x+1],i[x]]}}return i}c(hr,"transposeImprove");function Jo(t,e,n){let r=t.layers.map(a=>[...a]),o=e.edges,i=fe(e),l=ir(e,n==null?void 0:n.laneOrder);for(let a=0;a<3;a++){for(let f=1;f<r.length;f++)r[f]=ur(r[f-1],r[f],o,"down",i,l),r[f]=hr(r[f-1],r[f],o,r[f+1],i);for(let f=r.length-2;f>=0;f--)r[f]=ur(r[f+1],r[f],o,"up",i,l),r[f]=hr(r[f+1],r[f],o,r[f-1],i)}return{layers:r}}c(Jo,"orderLayers");function Ko(t,e,n){var U;let r=(n==null?void 0:n.layerGap)??ko.DEFAULT_LAYER_GAP,o=(n==null?void 0:n.nodeGap)??ko.DEFAULT_NODE_GAP,i=(n==null?void 0:n.laneGap)??o*2,l=(n==null?void 0:n.direction)??"TB",a=l==="LR"||l==="RL",f=t.layers,d=Object.create(null),g=Object.create(null),h=c(A=>e.nodeById.get(A),"getNode"),s=c(A=>{var X;return((X=h(A))==null?void 0:X.width)??0},"getWidth"),u=c(A=>{var X;return((X=h(A))==null?void 0:X.height)??0},"getHeight"),p=fe(e),x=ir(e,n==null?void 0:n.laneOrder),M=f.map(A=>A.reduce((X,Z)=>Math.max(X,u(Z)),0)),m=[];if(a)for(let A=0;A+1<f.length;A++){let X=f[A].reduce((Q,et)=>Math.max(Q,s(et)),0),Z=f[A+1].reduce((Q,et)=>Math.max(Q,s(et)),0),it=M[A],dt=M[A+1],ut=it/2+dt/2,ct=(X+Z)/2,W=Math.max(0,ct-ut-r);m.push(W)}let b=new Set;for(let A of f)for(let X of A)b.add(p(X));let I=b.has(null),v=x.filter(A=>b.has(A)),S=[...I?[null]:[],...v],L=Object.create(null);for(let A of v)L[A]=0;I&&(L.null=0);for(let A of f){let X=Object.create(null),Z=[];for(let it of A){let dt=p(it);dt===null?Z.push(it):(X[dt]||(X[dt]=[])).push(it)}for(let[it,dt]of Object.entries(X)){let ut=dt.reduce((ct,W)=>ct+s(W),0)+o*Math.max(0,dt.length-1);L[it]=Math.max(L[it]??0,ut)}if(I&&Z.length){let it=Z.reduce((dt,ut)=>dt+s(ut),0)+o*Math.max(0,Z.length-1);L.null=Math.max(L.null??0,it)}}let T=new Map;{let A=S.map(Z=>(Z===null?L.null:L[Z])??0),X=-(A.reduce((Z,it)=>Z+it,0)+i*Math.max(0,S.length-1))/2;for(let Z=0;Z<S.length;Z++){let it=S[Z],dt=A[Z]??0,ut=X+dt/2;T.set(it,ut),X+=dt,Z<S.length-1&&(X+=i)}}let O=0;for(let[A,X]of f.entries()){let Z=M[A]??0,it=new Map;for(let ut of X){let ct=p(ut),W=it.get(ct)??[];W.push(ut),it.set(ct,W)}for(let ut of S){let ct=it.get(ut)??[];if(ct.length===0)continue;let W=T.get(ut);if(ct.length===1){let Q=ct[0];d[Q]=W,g[Q]=O+Z/2}else{let Q=ct.map(lt=>s(lt)),et=W-(Q.reduce((lt,mt)=>lt+mt,0)+o*(ct.length-1))/2;for(let[lt,mt]of ct.entries()){let vt=Q[lt];d[mt]=et+vt/2,g[mt]=O+Z/2,et+=vt+o}}}let dt=m[A]??0;O+=Z+r+dt}let $=new Map;for(let A of e.edges){let X=A.ref.id;$.has(X)||$.set(X,[]),$.get(X).push(A)}for(let[,A]of $){if(A.length===0)continue;let X=A[0].ref,Z=X.start,it=X.end;if(Z==null||it==null)continue;let dt=Math.round(((d[Z]??0)+(d[it]??0))/2),ut=new Set;for(let ct of A)ut.add(ct.src),ut.add(ct.dst);for(let ct of ut)ct===Z||ct===it||(U=e.nodeById.get(ct))!=null&&U.isDummy&&(d[ct]=dt)}return{x:d,y:g}}c(Ko,"assignCoordinates");var Zo=8;function Qo(t){let e=2166136261;for(let n=0;n<t.length;n++)e^=t.charCodeAt(n),e=Math.imul(e,16777619);return e>>>0}c(Qo,"hashString");function ti(t){let e=t>>>0;return()=>{e+=1831565813;let n=e;return n=Math.imul(n^n>>>15,n|1),n^=n+Math.imul(n^n>>>7,n|61),((n^n>>>14)>>>0)/4294967296}}c(ti,"mulberry32");function ei(t,e){let n=[...t],r=ti(e);for(let o=n.length-1;o>0;o--){let i=Math.floor(r()*(o+1));[n[o],n[i]]=[n[i],n[o]]}return n}c(ei,"deterministicShuffle");function ni(t,e){let n=0;for(let[r,o]of t.entries())n+=Math.abs(r-(e.get(o)??r));return n}c(ni,"sourceDistance");function cr(t,e){let n=new Map;for(let[o,i]of t.entries())n.set(i,o);let r=0;for(let{a:o,b:i,weight:l}of e){let a=n.get(o),f=n.get(i);a==null||f==null||(r+=l*Math.abs(a-f))}return r}c(cr,"laneArrangementCost");function ri(t){let e=tn(t);if(e.length<2)return[];let n=new Map(e.map((i,l)=>[i,l])),r=fe(t),o=new Map;for(let i of t.layout.edges??[]){if(i.isLayoutOnly)continue;let l=typeof i.start=="string"?i.start:void 0,a=typeof i.end=="string"?i.end:void 0;if(!l||!a||!t.nodeById.has(l)||!t.nodeById.has(a))continue;let f=r(l),d=r(a);if(!f||!d||f===d)continue;let g=n.get(f),h=n.get(d);if(g==null||h==null)continue;let[s,u]=g<=h?[f,d]:[d,f],p=`${s}\0${u}`,x=o.get(p);x?x.weight++:o.set(p,{a:s,b:u,weight:1})}return[...o.values()]}c(ri,"buildWeightedLaneEdges");function gr(t,e,n){let r=[...t],o=cr(r,e),i=!0,l=0,a=Math.max(1,r.length);for(;i&&l<a;){i=!1,l++;for(let f=0;f+1<r.length;f++){[r[f],r[f+1]]=[r[f+1],r[f]];let d=cr(r,e);d<o?(o=d,i=!0):[r[f],r[f+1]]=[r[f+1],r[f]]}}return{order:r,cost:o,sourceDistance:ni(r,n)}}c(gr,"greedySwitch");function oi(t,e){return t.cost===e.cost?t.sourceDistance<e.sourceDistance:t.cost<e.cost}c(oi,"isBetterCandidate");function ii(t,e,n){let r=[...e].sort((o,i)=>o.a===i.a?o.b.localeCompare(i.b):o.a.localeCompare(i.a)).map(({a:o,b:i,weight:l})=>`${o}:${i}:${l}`).join("|");return Qo(`${t.join("|")}#${r}#${n}`)}c(ii,"seedForRestart");function li(t,e={}){let n=tn(t);if(n.length<2)return n;let r=ri(t);if(r.length===0)return n;let o=new Map(n.map((a,f)=>[a,f])),i=gr(n,r,o),l=Math.max(0,e.restarts??Zo);for(let a=0;a<l;a++){let f=gr(ei(n,ii(n,r,a)),r,o);oi(f,i)&&(i=f)}return i.order}c(li,"optimizeTopLaneOrder");function ai(t,e){let n=(e==null?void 0:e.ignoreCrossLaneEdges)??!0,r=(e==null?void 0:e.optimizeRanksByCrossings)??!0,o=ce(t),i=e!=null&&e.automaticLaneOrdering?li(o,{restarts:Zo}):void 0,l=Co(o),a=l.acyclic,{layering:f,graphWithDummies:d}=Wo(n?Vo(a,{compactSingleInput:(e==null?void 0:e.compactSingleInput)??en.DEFAULT_COMPACT_SINGLE_INPUT,ignoreCrossLaneEdges:!0,direction:e==null?void 0:e.direction}):Ho(a,{compactSingleInput:(e==null?void 0:e.compactSingleInput)??en.DEFAULT_COMPACT_SINGLE_INPUT,ignoreCrossLaneEdges:!1,optimizeRanksByCrossings:r}),a),g=Jo(f,d,{laneOrder:i}),h=Ko(g,d,{layerGap:e==null?void 0:e.layerGap,nodeGap:e==null?void 0:e.nodeGap,direction:e==null?void 0:e.direction,laneOrder:i});return{acyclic:a,reversed:l.reversed,layering:f,ordered:g,coordinates:h}}c(ai,"sugiyamaLayout");var ft=vi.EPSILON,Li=8,Me=15,ke=15,on=25,ee=20,pr=10;function mr(t,e,n){let r=t.x??0,o=t.y??0,i=e.x-r,l=e.y-o,a=Math.abs(i),f=Math.abs(l);return a<ft&&f<ft?n:f>ft&&f*3>=a?l>0?"bottom":"top":a>ft?i>0?"right":"left":n}c(mr,"chooseOrthogonalSide");function xr(t,e){return Math.abs(t.to-e.from)<ft||Math.abs(t.to-e.to)<ft?t.to:t.from}c(xr,"sharedLineEndpointCoord");function Ie(t,e){return t.orient==="vertical"?{x:t.coord,y:e}:{x:e,y:t.coord}}c(Ie,"pointOnLine");function si(t,e){var H,J,nt,It;let n=t.nodes??[],r=t.edges??[],o=[];for(let y of r)y.isLayoutOnly||o.push({...y,__originalEdge:y});let i=new Map,l=new Map,a=[],f=e==="LR";for(let y of n)i.set(y.id,y);let d=n.filter(y=>y.isGroup&&!y.parentId);for(let y of d){let w={id:y.id},k=c(C=>{l.set(C.id,w),n.filter(E=>E.parentId===C.id).forEach(k)},"assignLane");k(y)}let g=n.filter(y=>!y.isGroup&&!y.isEdgeLabel).map(y=>{let w=y.width??10,k=y.height??10,C=y.x??0,E=y.y??0,B=Li;return{nodeId:y.id,minX:C-w/2-B,maxX:C+w/2+B,minY:E-k/2-B,maxY:E+k/2+B,visualXHalfExtent:f?k/2+B:w/2+B}}),h=c((y,w,k,C)=>{let E=a.find(B=>B.orientation===y&&Math.abs(B.coord-w)<1);return E||(E={id:`pipe-${y}-${w.toFixed(0)}`,orientation:y,coord:w,spanMin:k,spanMax:C,tracks:[]},a.push(E)),E.spanMin=Math.min(E.spanMin,k),E.spanMax=Math.max(E.spanMax,C),E},"getOrAddPipe"),s=c((y,w)=>{let k=y.width??10,C=y.height??10,E=y.x??0,B=y.y??0;switch(w){case"top":return{x:E,y:B-C/2};case"bottom":return{x:E,y:B+C/2};case"left":return{x:E-k/2,y:B};case"right":return{x:E+k/2,y:B}}},"portForSide"),u=c((y,w,k)=>s(y,mr(y,w,k?"bottom":"top")),"getOrthogonalPort"),p=[],x=[],M=new Set,m=1e3,b=c((y,w,k)=>{if(p.length===0)return 0;let C=Math.abs(w.y-k.y)<ft,E=Math.abs(w.x-k.x)<ft;if(!C&&!E)return 0;let B=0;if(C){let V=w.y,rt=Math.min(w.x,k.x)-ft,z=Math.max(w.x,k.x)+ft;if(z<=rt)return 0;for(let G of p)G.edgeIndex===y||G.orientation!=="vertical"||G.pipe.coord<rt||G.pipe.coord>z||G.from-ft<=V&&G.to+ft>=V&&(B+=m)}else if(E){let V=w.x,rt=Math.min(w.y,k.y)-ft,z=Math.max(w.y,k.y)+ft;if(z<=rt)return 0;for(let G of p)G.edgeIndex===y||G.orientation!=="horizontal"||G.pipe.coord<rt||G.pipe.coord>z||G.from-ft<=V&&G.to+ft>=V&&(B+=m)}return B},"crossingPenalty"),I=o.map((y,w)=>{if(!y.start||!y.end)return{idx:w,crossLane:0,dx:0,dy:0};let k=i.get(y.start),C=i.get(y.end),E=l.get(y.start),B=l.get(y.end);return{idx:w,crossLane:E&&B&&E.id!==B.id?1:0,dx:k&&C?Math.abs((C.x??0)-(k.x??0)):0,dy:k&&C?Math.abs((C.y??0)-(k.y??0)):0}}).sort((y,w)=>{if(y.crossLane!==w.crossLane)return w.crossLane-y.crossLane;let k=y.dx+y.dy,C=w.dx+w.dy;return Math.abs(k-C)>1?k-C:y.idx-w.idx}).map(y=>y.idx),v=c((y,w,k,C)=>{let E=Math.min(y.x,w.x),B=Math.max(y.x,w.x),V=Math.min(y.y,w.y),rt=Math.max(y.y,w.y);return!!g.find(z=>k&&z.nodeId===k||C&&z.nodeId===C?!1:Math.abs(y.x-w.x)>ft?z.minY<y.y&&z.maxY>y.y&&z.maxX>E&&z.minX<B:z.minX<y.x&&z.maxX>y.x&&z.maxY>V&&z.minY<rt)},"isSegmentBlocked"),S=new Map,L=new Map;for(let y of o)!y.start||!y.end||y.start===y.end||(L.set(y.start,(L.get(y.start)??0)+1),L.set(y.end,(L.get(y.end)??0)+1));let T=c((y,w)=>mr(y,w,"bottom"),"determineSide"),O=new Map;for(let[y,w]of o.entries()){if(!w.start||!w.end||w.start===w.end||w.points&&w.points.length>0)continue;let k=i.get(w.start),C=i.get(w.end);if(!k||!C)continue;let E=(C.x??0)-(k.x??0),B=(C.y??0)-(k.y??0);O.set(y,{edgeIdx:y,srcId:w.start,dstId:w.end,srcSide:T(k,{x:C.x??0,y:C.y??0}),dstSide:T(C,{x:k.x??0,y:k.y??0}),absDx:Math.abs(E),absDy:Math.abs(B),dxSign:Math.sign(E),dySign:Math.sign(B)})}let $=c(y=>y.srcSide==="top"||y.srcSide==="bottom"?y.absDx===0?1/0:y.absDy/y.absDx:y.absDy===0?1/0:y.absDx/y.absDy,"preferenceStrength"),U=c(y=>y.srcSide==="top"||y.srcSide==="bottom"?y.dxSign>=0?"right":"left":y.dySign>=0?"bottom":"top","secondarySide"),A=new Map;for(let y of O.values()){let w=`${y.srcId}:${y.srcSide}`;A.has(w)||A.set(w,[]),A.get(w).push(y)}let X=new Map,Z=c((y,w)=>`${y}:${w}`,"loadKey");for(let y of O.values())X.set(Z(y.srcId,y.srcSide),(X.get(Z(y.srcId,y.srcSide))??0)+1),X.set(Z(y.dstId,y.dstSide),(X.get(Z(y.dstId,y.dstSide))??0)+1);for(let y of A.values())if(!(y.length<2)){y.sort((w,k)=>{let C=$(w),E=$(k);return Math.abs(C-E)>1e-9?E-C:w.edgeIdx-k.edgeIdx});for(let w=1;w<y.length;w++){let k=y[w],C=U(k),E=X.get(Z(k.srcId,k.srcSide))??0,B=X.get(Z(k.srcId,C))??0;B>=E||(X.set(Z(k.srcId,k.srcSide),E-1),X.set(Z(k.srcId,C),B+1),k.srcSide=C)}}let it=c(y=>{let w=y==null?void 0:y.shape;return w==="question"||w==="diamond"},"isDiamondNode"),dt=new Map;for(let y of O.values())dt.has(y.dstId)||dt.set(y.dstId,new Set),dt.get(y.dstId).add(y.dstSide);for(let y of O.values()){if(!it(i.get(y.srcId)))continue;let w=dt.get(y.srcId);if(!(w!=null&&w.has(y.srcSide)))continue;let k=U(y);if(w.has(k)||(X.get(Z(y.srcId,k))??0)>0)continue;let C=X.get(Z(y.srcId,y.srcSide))??0;X.set(Z(y.srcId,y.srcSide),Math.max(0,C-1)),X.set(Z(y.srcId,k),1),y.srcSide=k}for(let y of O.values()){let{edgeIdx:w,srcId:k,dstId:C,srcSide:E,dstSide:B}=y,V=i.get(k),rt=i.get(C),z=`${k}:${E}:src`,G=E==="top"||E==="bottom"?rt.x??0:rt.y??0;S.has(z)||S.set(z,[]),S.get(z).push({edgeIdx:w,oppositeCoord:G});let tt=`${C}:${B}:dst`,xt=B==="top"||B==="bottom"?V.x??0:V.y??0;S.has(tt)||S.set(tt,[]),S.get(tt).push({edgeIdx:w,oppositeCoord:xt})}let ut=new Map;for(let[y,w]of S){if(w.length<2)continue;w.sort(($t,at)=>$t.oppositeCoord-at.oppositeCoord);let k=y.split(":"),C=k.slice(0,-2).join(":"),E=k[k.length-2],B=k[k.length-1],V=i.get(C);if(!V)continue;let rt=E==="left"||E==="right"?V.height??10:V.width??10,z=V.shape,G=z==="question"||z==="diamond"?rt*.3:rt,tt=Math.min(20,Math.max(8,G/(w.length+1))),xt=-(tt*(w.length-1))/2;for(let[$t,at]of w.entries()){let yt=xt+$t*tt,Et=`${at.edgeIdx}:${B}`;ut.set(Et,yt)}}let ct=c(y=>{var w;return!!((w=o[y])!=null&&w.labelNodeId)},"edgeHasLabelNode"),W=c((y,w)=>y?(S.get(`${y}:${w}:src`)??[]).some(({edgeIdx:k})=>ct(k))||(S.get(`${y}:${w}:dst`)??[]).some(({edgeIdx:k})=>ct(k)):!1,"faceHasLabelNode"),Q=c((y,w,k)=>w==="top"||w==="bottom"?{x:y.x+k,y:y.y}:{x:y.x,y:y.y+k},"applyPortOffset"),et=c((y,w,k)=>{let C=O.get(y),E={x:k.x??0,y:k.y??0},B={x:w.x??0,y:w.y??0},V=(C==null?void 0:C.srcSide)??T(w,E),rt=(C==null?void 0:C.dstSide)??T(k,B),z=C?s(w,C.srcSide):u(w,E,!0),G=C?s(k,C.dstSide):u(k,B,!1),tt=ut.get(`${y}:src`),xt=ut.get(`${y}:dst`);return tt!==void 0&&(z=Q(z,V,tt)),xt!==void 0&&(G=Q(G,rt,xt)),{pSrcPort:z,pDstPort:G,srcSide:V,dstSide:rt}},"portsForEdge");for(let y of I){let w=o[y];if(x[y]=[],!w.start||!w.end||w.points&&w.points.length>0||w.start===w.end)continue;let k=i.get(w.start),C=i.get(w.end);if(!k||!C)continue;let{pSrcPort:E,pDstPort:B,srcSide:V,dstSide:rt}=et(y,k,C),z={...E},G={...B},tt=V==="top"||V==="bottom",xt=rt==="top"||rt==="bottom";tt?z.y=E.y>(k.y??0)?E.y+ee:E.y-ee:z.x=E.x>(k.x??0)?E.x+ee:E.x-ee,xt?G.y=B.y>(C.y??0)?B.y+ee:B.y-ee:G.x=B.x>(C.x??0)?B.x+ee:B.x-ee;let $t=c((P,Y)=>{for(let q of g)if(!Y.includes(q.nodeId)&&P.x>q.minX&&P.x<q.maxX&&P.y>q.minY&&P.y<q.maxY)return{inside:!0,obstacle:q};return{inside:!1}},"isPointInObstacle"),at=c((P,Y,q,gt,Nt)=>{if(Nt){let Ft=P.y>(Y.y??0);return{x:(q.x??0)>=P.x?gt.maxX+Me:gt.minX-Me,y:Ft?gt.maxY+ke:gt.minY-ke,leavesPositiveSide:Ft}}let Lt=P.x>(Y.x??0),Ot=(q.y??0)>=P.y;return{x:Lt?gt.maxX+Me:gt.minX-Me,y:Ot?gt.maxY+ke:gt.minY-ke,leavesPositiveSide:Lt}},"obstacleDetour"),yt=[],Et=[w.start,w.end],jt=$t(z,Et);if(jt.inside&&jt.obstacle){let P=jt.obstacle;if(tt){let Y=at(E,k,C,P,!0);z.x=Y.x,z.y=Y.y;let q=Y.leavesPositiveSide?Math.min(P.minY-2,E.y+ee):Math.max(P.maxY+2,E.y-ee);yt=[{x:E.x,y:q},{x:Y.x,y:q},{x:Y.x,y:Y.y}]}else{let Y=at(E,k,C,P,!1),q=Y.leavesPositiveSide?Math.min(P.minX-2,E.x+ee):Math.max(P.maxX+2,E.x-ee);z.x=Y.x,z.y=Y.y,yt=[{x:q,y:E.y},{x:q,y:Y.y},{x:Y.x,y:Y.y}]}}let de=[],Ee=$t(G,Et);if(Ee.inside&&Ee.obstacle){let P=Ee.obstacle;if(xt){let Y=at(B,C,k,P,!0);G.x=Y.x,G.y=Y.y,de=[{x:Y.x,y:Y.y},{x:B.x,y:Y.y}]}else{let Y=at(B,C,k,P,!1);G.x=Y.x,G.y=Y.y,de=[{x:Y.x,y:Y.y},{x:Y.x,y:B.y}]}}if(yt.length===0&&de.length===0){let P=Me,Y=Math.abs(z.x-G.x)<P,q=Math.abs(z.y-G.y)<P,gt=ut.get(`${y}:src`)!==void 0||ut.get(`${y}:dst`)!==void 0,Nt=(((H=S.get(`${w.start??""}:${V}:src`))==null?void 0:H.length)??0)+(((J=S.get(`${w.start??""}:${V}:dst`))==null?void 0:J.length)??0),Lt=(((nt=S.get(`${w.end??""}:${rt}:src`))==null?void 0:nt.length)??0)+(((It=S.get(`${w.end??""}:${rt}:dst`))==null?void 0:It.length)??0),Ot=Nt>1||Lt>1,Ft=L.get(w.start??"")??0,bt=L.get(w.end??"")??0,Gt=Nt>1&&W(w.start,V)||Lt>1&&W(w.end,rt);if((Y||q)&&!gt&&(!Ot||Ot&&!Gt&&(Nt<=1||Ft<=2)&&(Lt<=1||bt<=2))&&!v(E,B,w.start,w.end)){w.points=[{...E},{...z},{...G},{...B}],M.add(y);let qt=q?"horizontal":"vertical",Bt=q?E.y:E.x,_t=q?Math.min(E.x,B.x):Math.min(E.y,B.y),St=q?Math.max(E.x,B.x):Math.max(E.y,B.y),At={id:`fast-path-${qt}-${Bt.toFixed(0)}-${y}`,orientation:qt,coord:Bt,spanMin:_t,spanMax:St,tracks:[]};p.push({edgeIndex:y,segmentIndex:0,orientation:qt,pipe:At,trackIndex:0,from:_t,to:St});continue}}z.x=h("vertical",z.x,z.y,z.y).coord,G.x=h("vertical",G.x,G.y,G.y).coord;let ge=Math.min(z.x,G.x)-50,pe=Math.max(z.x,G.x)+50,$e=Math.min(z.y,G.y)-50,Ne=Math.max(z.y,G.y)+50;for(let P of g){let Y=Math.min(z.x,G.x),q=Math.max(z.x,G.x),gt=Math.min(z.y,G.y),Nt=Math.max(z.y,G.y);P.minX<q&&P.maxX>Y&&P.minY<Nt&&P.maxY>gt&&(ge=Math.min(ge,P.minX-on),pe=Math.max(pe,P.maxX+on),$e=Math.min($e,P.minY-on),Ne=Math.max(Ne,P.maxY+on))}for(let P of g){if(P.maxX<ge||P.minX>pe||P.maxY<$e||P.minY>Ne)continue;let Y=Me;h("horizontal",P.minY-Y,ge,pe),h("horizontal",P.maxY+Y,ge,pe);let q=ke;h("vertical",P.minX-q,$e,Ne),h("vertical",P.maxX+q,$e,Ne)}h("horizontal",z.y,ge,pe),h("horizontal",G.y,ge,pe);let Ci=a.filter(P=>P.orientation==="horizontal"&&P.coord>=$e&&P.coord<=Ne),Ti=a.filter(P=>P.orientation==="vertical"&&P.coord>=ge&&P.coord<=pe),sn=c((P,Y)=>`${P.toFixed(1)},${Y.toFixed(1)}`,"getKey"),fn=sn(z.x,z.y),ui=sn(G.x,G.y),dn=new Map,yr=new Map,br=new Map,un=new Set,we=[];dn.set(fn,0),br.set(fn,"n"),we.push({key:fn,f:Math.hypot(G.x-z.x,G.y-z.y),pt:z}),un.add(fn);let Ut=[],me=c((P,Y)=>v(P,Y,w.start,w.end),"checkSegmentBlocked"),Mr={x:G.x,y:z.y},ki=me(z,Mr),Oi=me(Mr,G),Ri=ki||Oi,Ir={x:z.x,y:G.y},Ei=me(z,Ir),$i=me(Ir,G);if(Ri?Ei||$i||(Ut=Math.abs(z.x-G.x)<ft?[z,G]:[z,Ir,G]):Ut=Math.abs(z.y-G.y)<ft||Math.abs(z.x-G.x)<ft?[z,G]:[z,Mr,G],Ut.length===0)for(;we.length>0;){we.sort((bt,Gt)=>bt.f-Gt.f);let P=we.shift();if(un.delete(P.key),P.key===ui){let bt=ui,Gt=G;for(Ut=[Gt];yr.has(bt);){let qt=yr.get(bt);Ut.unshift(qt),Gt=qt,bt=sn(qt.x,qt.y)}break}let Y=P.pt.x,q=P.pt.y,gt=Ti.sort((bt,Gt)=>bt.coord-Gt.coord),Nt=gt.findIndex(bt=>Math.abs(bt.coord-Y)<1),Lt=Ci.sort((bt,Gt)=>bt.coord-Gt.coord),Ot=Lt.findIndex(bt=>Math.abs(bt.coord-q)<1),Ft=[];Nt>0&&Ft.push({x:gt[Nt-1].coord,y:q}),Nt>=0&&Nt<gt.length-1&&Ft.push({x:gt[Nt+1].coord,y:q}),Ot>0&&Ft.push({x:Y,y:Lt[Ot-1].coord}),Ot>=0&&Ot<Lt.length-1&&Ft.push({x:Y,y:Lt[Ot+1].coord});for(let bt of Ft){let Gt=Math.min(Y,bt.x),qt=Math.max(Y,bt.x),Bt=Math.min(q,bt.y),_t=Math.max(q,bt.y);if(g.some(Qt=>Qt.nodeId===w.start||Qt.nodeId===w.end?!1:Gt===qt?Qt.minX<Y&&Qt.maxX>Y&&Qt.maxY>Bt&&Qt.minY<_t:Qt.minY<q&&Qt.maxY>q&&Qt.maxX>Gt&&Qt.minX<qt))continue;let St=sn(bt.x,bt.y),At=Math.abs(bt.x-Y)+Math.abs(bt.y-q),Zt=b(y,P.pt,bt),wt=0,Pt=G.x-z.x,xe=G.y-z.y,ye=bt.x-Y,Sr=bt.y-q;(xe>10&&Sr<-5||xe<-10&&Sr>5)&&(wt=Math.abs(Sr)*100),(Pt>10&&ye<-5||Pt<-10&&ye>5)&&(wt+=Math.abs(ye)*50);let hi=0,ci=br.get(P.key)??"n",gi=Math.abs(ye)>ft?"h":"v";ci!=="n"&&ci!==gi&&(hi=50);let Ni=At+Zt+wt+hi,hn=(dn.get(P.key)??1/0)+Ni,pi=Math.abs(G.x-bt.x)+Math.abs(G.y-bt.y);if(hn<(dn.get(St)??1/0))if(yr.set(St,P.pt),dn.set(St,hn),br.set(St,gi),!un.has(St))we.push({key:St,f:hn+pi,pt:bt}),un.add(St);else{let Qt=we.findIndex(Fi=>Fi.key===St);Qt!==-1&&(we[Qt].f=hn+pi)}}}if(Ut.length===0&&(Ut=[z,{x:z.x,y:G.y},G]),Ut.length>4){let P=Ut[0],Y=Ut[Ut.length-1],q=Math.min(P.x,Y.x),gt=Math.max(P.x,Y.x),Nt=Math.min(P.y,Y.y),Lt=Math.max(P.y,Y.y);for(let Bt of Ut)q=Math.min(q,Bt.x),gt=Math.max(gt,Bt.x),Nt=Math.min(Nt,Bt.y),Lt=Math.max(Lt,Bt.y);let Ot=gt>Math.max(P.x,Y.x),Ft=q<Math.min(P.x,Y.x);if(f){let Bt=ke;if(Ot){let _t=Math.max(P.x,Y.x),St=Math.min(P.y,Y.y),At=Math.max(P.y,Y.y),Zt=g.filter(wt=>wt.minX<_t&&wt.maxX>_t&&wt.minY<At&&wt.maxY>St);if(Zt.length>0){let wt=Math.max(P.x,Y.x);for(let Pt of Zt){let xe=(Pt.minX+Pt.maxX)/2;if(Pt.visualXHalfExtent===void 0||isNaN(Pt.visualXHalfExtent))continue;let ye=xe+Pt.visualXHalfExtent+Bt;wt=Math.max(wt,ye)}isNaN(wt)||(gt=wt)}}if(Ft){let _t=g.filter(St=>St.minX<Math.min(P.x,Y.x)+Bt&&St.minY<Math.max(P.y,Y.y)&&St.maxY>Math.min(P.y,Y.y));if(_t.length>0){let St=Math.min(P.x,Y.x);for(let At of _t){let Zt=(At.minX+At.maxX)/2-At.visualXHalfExtent-Bt;St=Math.min(St,Zt)}q=St}}}let bt=c(Bt=>{let _t=Y.y>P.y,St=g.filter(wt=>{let Pt=Math.min(P.x,Y.x)<wt.maxX&&Math.max(P.x,Y.x)>wt.minX,xe=Math.min(P.y,Y.y)<wt.maxY&&Math.max(P.y,Y.y)>wt.minY;return Pt&&xe}),At=St;if(f&&St.length>0){let wt=St.filter(Pt=>Pt.minX<Bt&&Pt.maxX>Bt);wt.length>0&&(At=wt)}if(At.length===0)return Y.y;let Zt=Me;if(_t){let wt=Math.max(...At.map(Pt=>Pt.maxY))+Zt;if(wt<Y.y-ft)return wt}else{let wt=Math.min(...At.map(Pt=>Pt.minY))-Zt;if(wt>Y.y+ft)return wt}return Y.y},"findBestReturnY"),Gt=c(Bt=>{let _t=bt(Bt),St={x:Bt,y:P.y},At={x:Bt,y:_t},Zt={x:Y.x,y:_t},wt=me(P,St),Pt=me(St,At),xe=me(At,Zt),ye=_t===Y.y?!1:me(Zt,Y);return!wt&&!Pt&&!xe&&!ye?Math.abs(_t-Y.y)<ft?[P,St,At,Y]:[P,St,At,Zt,Y]:null},"trySimplifyWithDetourX"),qt=Ot&&!Ft?Gt(gt):Ft&&!Ot?Gt(q):null;qt&&(Ut=qt)}let zt=[E,...yt,...Ut,...de.reverse(),B];if(zt.length>=3){let P=zt[zt.length-1],Y=zt[zt.length-2],q=zt[zt.length-3],gt=Math.abs(q.y-Y.y)<ft&&Math.abs(Y.y-P.y)<ft,Nt=Math.abs(q.x-Y.x)<ft&&Math.abs(Y.x-P.x)<ft;if(gt){let Lt=Math.sign(Y.x-q.x),Ot=Math.sign(P.x-q.x);Lt!==0&&Lt===Ot&&Math.abs(Y.x-q.x)>Math.abs(P.x-q.x)&&zt.splice(-2,1)}else if(Nt){let Lt=Math.sign(Y.y-q.y),Ot=Math.sign(P.y-q.y);Lt!==0&&Lt===Ot&&Math.abs(Y.y-q.y)>Math.abs(P.y-q.y)&&zt.splice(-2,1)}}let ae=[zt[0]];for(let P=1;P<zt.length-1;P++){if(P===1){ae.push(zt[P]);continue}let Y=ae[ae.length-1],q=zt[P],gt=zt[P+1];if(Math.abs(Y.y-q.y)<ft&&Math.abs(q.y-gt.y)<ft){if(q.x>Y.x!=gt.x>q.x){ae.push(q);continue}continue}if(Math.abs(Y.x-q.x)<ft&&Math.abs(q.x-gt.x)<ft){if(q.y>Y.y!=gt.y>q.y){ae.push(q);continue}continue}ae.push(q)}ae.push(zt[zt.length-1]);for(let P=0;P<ae.length-1;P++){let Y=ae[P],q=ae[P+1],gt=Math.abs(Y.x-q.x)<ft?"vertical":"horizontal",Nt=gt==="vertical"?Y.x:Y.y,Lt=gt==="vertical"?Math.min(Y.y,q.y):Math.min(Y.x,q.x),Ot=gt==="vertical"?Math.max(Y.y,q.y):Math.max(Y.x,q.x),Ft=h(gt,Nt,Lt,Ot),bt={edgeIndex:y,segmentIndex:P,orientation:gt,pipe:Ft,trackIndex:0,from:Lt,to:Ot};p.push(bt),x[y].push(p.length-1),Ft.tracks[0]||(Ft.tracks[0]={index:0,coord:Ft.coord,segments:[]}),Ft.tracks[0].segments.push({edgeIndex:y,segmentIndex:P,from:Lt,to:Ot})}}let lt=c((y,w)=>y.from<w.to&&w.from<y.to,"segmentsOverlap"),mt=c((y,w,k,C)=>{let E=!C.segments.some(V=>(V.edgeIndex!==w.edgeIndex||V.segmentIndex!==w.segmentIndex)&&lt(V,y)),B=!k.segments.some(V=>(V.edgeIndex!==y.edgeIndex||V.segmentIndex!==y.segmentIndex)&&lt(V,w));return E&&B?(y.trackIndex=C.index,w.trackIndex=k.index,k.segments=[...k.segments.filter(V=>V.edgeIndex!==y.edgeIndex||V.segmentIndex!==y.segmentIndex),{edgeIndex:w.edgeIndex,segmentIndex:w.segmentIndex,from:w.from,to:w.to}],C.segments=[...C.segments.filter(V=>V.edgeIndex!==w.edgeIndex||V.segmentIndex!==w.segmentIndex),{edgeIndex:y.edgeIndex,segmentIndex:y.segmentIndex,from:y.from,to:y.to}],!0):!1},"trySwapSegmentsAcrossTracks"),vt=c(y=>{let w=y.tracks.length;return y.tracks[w]={index:w,coord:y.coord,segments:[]},w},"createNewTrack"),Ct=c((y,w)=>{let k=y.pipe.tracks[y.trackIndex];k.segments=k.segments.filter(C=>C.edgeIndex!==y.edgeIndex||C.segmentIndex!==y.segmentIndex),y.trackIndex=w,y.pipe.tracks[w].segments.push({edgeIndex:y.edgeIndex,segmentIndex:y.segmentIndex,from:y.from,to:y.to})},"moveSegmentToTrack"),Kt=c((y,w)=>{let k=x[y.edgeIndex];for(let C of k){let E=p[C];E.pipe===y.pipe&&Ct(E,w)}},"moveSegmentChainToTrack"),Ht=c(y=>{let w=x[y.edgeIndex],k=w.indexOf(p.indexOf(y)),C=[];return k>0&&C.push(p[w[k-1]]),k<w.length-1&&C.push(p[w[k+1]]),C},"getAdjacentSegmentsAlongEdge"),ne=c((y,w)=>{if(y.orientation===w.orientation)return!1;let k=y.orientation==="horizontal"?y:w,C=y.orientation==="horizontal"?w:y;return C.pipe.coord>k.from&&C.pipe.coord<k.to&&k.pipe.coord>C.from&&k.pipe.coord<C.to},"haveAnyCrossing"),Se=c((y,w)=>{for(let k of y.tracks)if(!k.segments.some(C=>(C.edgeIndex!==w.edgeIndex||C.segmentIndex!==w.segmentIndex)&&lt(C,w)))return k.index;return-1},"findAvailableTrack"),Oe=c((y,w)=>{if(y.trackIndex===w.trackIndex)return lt(y,w);let k=Ht(y),C=Ht(w);return k.some(E=>C.some(B=>ne(E,B)))},"segmentsConflict"),ln=c((y,w,k)=>{if(mt(y,w,y.pipe.tracks[y.trackIndex],w.pipe.tracks[w.trackIndex]))return;let C=Se(y.pipe,w);k(w,C===-1?vt(y.pipe):C)},"resolveTrackConflict"),an=c(y=>{let w=0;for(let k=0;k<y.length;k++)for(let C=k+1;C<y.length;C++){let E=y[k],B=y[C];E.pipe===B.pipe&&Oe(E,B)&&(w++,ln(E,B,Kt))}return w},"resolveHandleConflicts"),Re=new Map,Ae=c(y=>{if(Re.has(y))return Re.get(y);let w=x[y];if(w.length===0){let V={dest:0,deviation:0,base:0,delta:0};return Re.set(y,V),V}let k=p[w[0]].pipe.coord,C=k;for(let V=1;V<w.length;V++){let rt=p[w[V]];if(rt.orientation==="horizontal"){let z=rt.from,G=rt.to;C=Math.abs(z-k)>Math.abs(G-k)?z:G;break}}let E=Math.abs(C-k),B={dest:C,deviation:E,base:k,delta:C-k};return Re.set(y,B),B},"getDestInfo"),R=c(()=>{let y=0,w=new Map;for(let[C,E]of o.entries())x[C].length!==0&&E.start&&(w.has(E.start)||w.set(E.start,[]),w.get(E.start).push(C));let k=c(C=>{let E=o[C];if(!E.start||!E.end)return 0;let B=i.get(E.start),V=i.get(E.end);if(!B||!V)return 0;let rt=(V.x??0)-(B.x??0),z=(V.y??0)-(B.y??0);return Math.abs(rt)+Math.abs(z)},"getEdgeDistance");for(let C of w.values()){C.sort((B,V)=>{let rt=Ae(B),z=Ae(V);if(Math.abs(rt.deviation-z.deviation)>1)return rt.deviation-z.deviation;if(Math.abs(rt.dest-z.dest)>1)return rt.dest-z.dest;let G=k(B),tt=k(V);if(Math.abs(G-tt)>1)return tt-G;let xt=x[B].length,$t=x[V].length;if(xt!==$t)return xt-$t;if(xt===1){let at=x[B][0],yt=x[V][0];if(p[at]&&p[yt]){let Et=p[at],jt=p[yt],de=Math.abs(Et.to-Et.from),Ee=Math.abs(jt.to-jt.from);if(Math.abs(de-Ee)>1)return de-Ee}}return 0});let E=C.map(B=>p[x[B][0]]);y+=an(E)}return y},"fixSourceHandleCrossings"),N=c(()=>{let y=0,w=new Map;for(let[k,C]of o.entries())x[k].length!==0&&C.end&&(w.has(C.end)||w.set(C.end,[]),w.get(C.end).push(k));for(let k of w.values()){k.sort((E,B)=>{let V=c(G=>{let tt=x[G];if(tt.length<2)return 0;let xt=p[tt[tt.length-2]];return Math.abs(xt.to-xt.from)},"getDist"),rt=V(E),z=V(B);return Math.abs(rt-z)>.1?rt-z:E-B});let C=k.map(E=>p[x[E][x[E].length-1]]);y+=an(C)}return y},"fixTargetHandleCrossings"),F=c(()=>{let y=0;for(let w of a){let k=[];for(let C of w.tracks)for(let E of C.segments){let B=x[E.edgeIndex].find(V=>p[V].segmentIndex===E.segmentIndex);B!==void 0&&k.push(p[B])}k.sort((C,E)=>C.edgeIndex-E.edgeIndex||C.segmentIndex-E.segmentIndex);for(let C=0;C<k.length;C++)for(let E=C+1;E<k.length;E++){let B=k[C],V=k[E];Oe(B,V)&&(y++,ln(B,V,Ct))}}return y},"fixPipeCrossings"),_=0;for(;_<10;){let y=0;if(y+=R(),y+=N(),y+=F(),y===0)break;_++}let j=new Map;for(let y of a){let w=[];y.tracks.forEach(C=>{C.segments.forEach(E=>{w.push({edgeIndex:E.edgeIndex,segmentIndex:E.segmentIndex,trackIndex:C.index,from:E.from,to:E.to})})}),w.sort((C,E)=>C.from-E.from);let k=[];if(w.length>0){let C=[w[0]],E=w[0].to;for(let B=1;B<w.length;B++){let V=w[B];V.from<E?(C.push(V),E=Math.max(E,V.to)):(k.push(C),C=[V],E=V.to)}k.push(C)}for(let C of k){let E=new Set;C.forEach(at=>E.add(at.trackIndex));let B=new Map;C.forEach(at=>{let yt=Ae(at.edgeIndex);B.set(at.trackIndex,(B.get(at.trackIndex)??0)+yt.delta)});let V=[...E].filter(at=>(B.get(at)??0)<-1),rt=[...E].filter(at=>(B.get(at)??0)>1),z=[...E].filter(at=>Math.abs(B.get(at)??0)<=1);V.sort((at,yt)=>(B.get(yt)??0)-(B.get(at)??0)),rt.sort((at,yt)=>(B.get(at)??0)-(B.get(yt)??0));let G=c((at,yt)=>{C.filter(Et=>Et.trackIndex===at).forEach(Et=>{let jt=M.has(Et.edgeIndex)?y.coord:yt;j.set(`${Et.edgeIndex}-${Et.segmentIndex}`,jt)})},"assignCoord"),tt=0;for(let at of V)tt++,G(at,y.coord-tt*pr);if(z.length===0&&E.size>0){let at=[...E].sort((jt,de)=>Math.abs(B.get(jt)??0)-Math.abs(B.get(de)??0))[0],yt=V.indexOf(at);yt!==-1&&V.splice(yt,1);let Et=rt.indexOf(at);Et!==-1&&rt.splice(Et,1),z.push(at)}let xt=0;for(let at of z){if(xt===0)G(at,y.coord);else{let yt=xt%2==1?1:-1,Et=Math.ceil(xt/2);G(at,y.coord+yt*Et*pr*.5)}xt++}let $t=0;for(let at of rt)$t++,G(at,y.coord+$t*pr)}}for(let[y,w]of o.entries()){let k=x[y]??[];if(k.length===0)continue;let C=[],{pSrcPort:E,pDstPort:B}=et(y,i.get(w.start),i.get(w.end)),V=k.map(G=>{let tt=p[G],xt=j.get(`${tt.edgeIndex}-${tt.segmentIndex}`)??tt.pipe.coord;return{orient:tt.orientation,coord:xt,from:tt.from,to:tt.to}});C.push(E);for(let G=0;G<V.length;G++){let tt=V[G],xt=C[C.length-1],$t=tt.orient==="vertical"?xt.y:xt.x,at=tt.orient==="vertical"?xt.x:xt.y,yt=V[G+1],Et=G<V.length-1;if(Math.abs(at-tt.coord)>ft&&C.push(Ie(tt,$t)),Et&&yt.orient===tt.orient)if(Math.abs(tt.coord-yt.coord)>ft){let jt=tt.orient==="vertical"?($t+yt.from)/2:xr(tt,yt);C.push(Ie(tt,jt),Ie(yt,jt))}else(G===0||G===V.length-2)&&C.push(Ie(tt,xr(tt,yt)));else if(Et)C.push(Ie(tt,yt.coord));else{let jt=Math.abs(tt.from-$t)<Math.abs(tt.to-$t)?tt.to:tt.from;C.push(Ie(tt,jt))}}let rt=C[C.length-1];(Math.abs(rt.x-B.x)>ft||Math.abs(rt.y-B.y)>ft)&&C.push(B);let z=[];C.length>0&&z.push(C[0]);for(let G=1;G<C.length;G++){let tt=C[G],xt=z[z.length-1];(Math.abs(tt.x-xt.x)>ft||Math.abs(tt.y-xt.y)>ft)&&z.push(tt)}w.points=z}for(let y of o){let w=y.__originalEdge;w&&y.points&&(w.points=y.points)}t.edges=(t.edges??[]).filter(y=>!y.isLayoutOnly);let D=c((y,w)=>{let k=w.x??0,C=w.y??0,E=w.width??0,B=w.height??0;if(E<=0||B<=0)return y;let V=k-E/2,rt=k+E/2,z=C-B/2,G=C+B/2;if(y.x<V||y.x>rt||y.y<z||y.y>G)return y;let tt=y.x-V,xt=rt-y.x,$t=y.y-z,at=G-y.y,yt=Math.min(tt,xt,$t,at);return yt===tt?{x:V,y:y.y}:yt===xt?{x:rt,y:y.y}:yt===$t?{x:y.x,y:z}:{x:y.x,y:G}},"nodeBoundaryClamp");for(let y of t.edges){let w=y.points;if(!w||w.length<2)continue;let k=y.start,C=y.end,E=k?i.get(k):void 0,B=C?i.get(C):void 0;E&&(w[0]=D(w[0],E)),B&&(w[w.length-1]=D(w[w.length-1],B))}return t}c(si,"routeEdgesOrthogonal");function fi(t){return t.direction??"TB"}c(fi,"getSwimlaneDirection");function di(t){var g,h,s,u,p;let e=zr(t),n=((g=t.config.flowchart)==null?void 0:g.nodeSpacing)??40,r=((h=t.config.flowchart)==null?void 0:h.rankSpacing)??100,o=((s=t.config.swimlane)==null?void 0:s.ignoreCrossLaneEdges)??!0,i=((u=t.config.swimlane)==null?void 0:u.optimizeRanksByCrossings)??!0,l=((p=t.config.swimlane)==null?void 0:p.automaticLaneOrdering)??!1,a=fi(t),{ordered:f,coordinates:d}=ai(e,{nodeGap:n,layerGap:r,ignoreCrossLaneEdges:o,optimizeRanksByCrossings:i,automaticLaneOrdering:l,direction:a});Gr(e,f,d,{nodeGap:n,layerGap:r});for(let x of t.edges??[])delete x.points;si(t,a);for(let x of t.edges??[])(!x.curve||x.curve==="basis")&&(x.curve="rounded");return vo(t,a),wo(t),a}c(di,"runSwimlaneLayoutCore"),wr=async function(t,e){let n=e.select("g");Wi(n,t.markers,t.type,t.diagramId),ji(),Ki(),Vi(),Ai(),_r(t);let r=Dr(t);t.nodes=r.nodes,t.edges=r.edges;let{groups:o}=await vr(n,t);di(t),await Ar(t,o)},c(wr,"render")});export{Zi as __tla,wr as render};