@sme.up/ketchup2 2.6.0 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (598) hide show
  1. package/dist/abnfDiagram-VCTEODGH-C9blQ78p.cjs +1 -0
  2. package/dist/abnfDiagram-VCTEODGH-DZIaCwNE.js +89 -0
  3. package/dist/{arc-yUAZoqJP.js → arc-7ZXqzxve.js} +1 -1
  4. package/dist/{arc-CYi2lpSd.cjs → arc-DBilzVYt.cjs} +1 -1
  5. package/dist/architecture-7GRP2DOG-DYFsLst2.js +3 -0
  6. package/dist/architecture-7GRP2DOG-DdhuGtEz.cjs +1 -0
  7. package/dist/architectureDiagram-5GKGNRK7-B080D0D_.cjs +36 -0
  8. package/dist/{architectureDiagram-3BPJPVTR-CMX2LiQK.js → architectureDiagram-5GKGNRK7-BJvIxhbL.js} +338 -252
  9. package/dist/assets/svg/functions.svg +1 -0
  10. package/dist/basic-components/autocomplete/autocomplete-types.d.ts +2 -1
  11. package/dist/basic-components/autocomplete/autocomplete-types.d.ts.map +1 -1
  12. package/dist/basic-components/autocomplete/autocomplete.d.ts.map +1 -1
  13. package/dist/basic-components/button/button-utils.d.ts.map +1 -1
  14. package/dist/basic-components/button-list/button-list-types.d.ts +2 -1
  15. package/dist/basic-components/button-list/button-list-types.d.ts.map +1 -1
  16. package/dist/basic-components/button-list/button-list.d.ts.map +1 -1
  17. package/dist/basic-components/cell/cell-types.d.ts +5 -0
  18. package/dist/basic-components/cell/cell-types.d.ts.map +1 -1
  19. package/dist/basic-components/cell/cell-utils.d.ts.map +1 -1
  20. package/dist/basic-components/cell/cell.d.ts.map +1 -1
  21. package/dist/basic-components/checkbox/checkbox-types.d.ts +5 -0
  22. package/dist/basic-components/checkbox/checkbox-types.d.ts.map +1 -1
  23. package/dist/basic-components/chips/chips-types.d.ts +15 -1
  24. package/dist/basic-components/chips/chips-types.d.ts.map +1 -1
  25. package/dist/basic-components/chips/chips.d.ts.map +1 -1
  26. package/dist/basic-components/chips-input/chips-input-types.d.ts +5 -0
  27. package/dist/basic-components/chips-input/chips-input-types.d.ts.map +1 -1
  28. package/dist/basic-components/chips-input/chips-input.d.ts.map +1 -1
  29. package/dist/basic-components/multiple-autocomplete/multiple-autocomplete-types.d.ts +5 -0
  30. package/dist/basic-components/multiple-autocomplete/multiple-autocomplete-types.d.ts.map +1 -1
  31. package/dist/basic-components/multiple-autocomplete/multiple-autocomplete.d.ts.map +1 -1
  32. package/dist/basic-components/multiple-select/multiple-select-types.d.ts +5 -0
  33. package/dist/basic-components/multiple-select/multiple-select-types.d.ts.map +1 -1
  34. package/dist/basic-components/multiple-select/multiple-select.d.ts.map +1 -1
  35. package/dist/blockDiagram-I7D4REHJ-C5aW9ypR.js +1919 -0
  36. package/dist/blockDiagram-I7D4REHJ-fT7Of27R.cjs +129 -0
  37. package/dist/c4Diagram-7LVT6UL2-B1n5PnN5.cjs +38 -0
  38. package/dist/{c4Diagram-AAUBKEIU-BUOgTWLR.js → c4Diagram-7LVT6UL2-JxFfT5VH.js} +808 -789
  39. package/dist/channel-BvUly9jN.cjs +1 -0
  40. package/dist/{channel-CAhFwf6U.js → channel-D6agWknC.js} +1 -1
  41. package/dist/chunk-2E4U76K2-BiZwNOhf.cjs +1 -0
  42. package/dist/chunk-2E4U76K2-C8vehurw.js +346 -0
  43. package/dist/chunk-2Q5K7J3B-B8v9mTdK.cjs +1 -0
  44. package/dist/{chunk-QZHKN3VN-cS9OamWo.js → chunk-2Q5K7J3B-kzxEEeTu.js} +2 -2
  45. package/dist/chunk-4HAMMTFA-Db_fcZEn.cjs +62 -0
  46. package/dist/{chunk-3OPIFGDE-BYuWDDGY.js → chunk-4HAMMTFA-MZIwowe1.js} +1665 -1143
  47. package/dist/{chunk-FMBD7UC4-Cia16Ryi.js → chunk-5VM5RSS4-Cr17nBXp.js} +2 -2
  48. package/dist/{chunk-FMBD7UC4-BLLpskYF.cjs → chunk-5VM5RSS4-CwDmQ9T_.cjs} +1 -1
  49. package/dist/{chunk-5ZQYHXKU-BvO58_5C.js → chunk-75Z2AOVW-BwUD389x.js} +56 -55
  50. package/dist/chunk-75Z2AOVW-RbCLc-XL.cjs +2 -0
  51. package/dist/chunk-CLGD4ZFX-DKRy6g5T.js +10 -0
  52. package/dist/chunk-CLGD4ZFX-Dvn-kRD7.cjs +1 -0
  53. package/dist/{chunk-CSCIHK7Q-Drr_NBLR.js → chunk-DU6HZSFF-CNSdkWoH.js} +1584 -621
  54. package/dist/chunk-DU6HZSFF-mznJTFyO.cjs +127 -0
  55. package/dist/chunk-F27PBJKO-C5NrgqMI.cjs +1 -0
  56. package/dist/{chunk-ND2GUHAM-CKQ1Jk8O.js → chunk-F27PBJKO-DKsmevT5.js} +18 -17
  57. package/dist/chunk-FOHPRMQF-BYsnEQU5.cjs +161 -0
  58. package/dist/{chunk-NNHCCRGN-BB1q5NkR.js → chunk-FOHPRMQF-C49KxWOg.js} +5156 -4419
  59. package/dist/chunk-GMAD6QVW-BVSRANO9.cjs +72 -0
  60. package/dist/{chunk-O5CBEL6O-BIU6TcWp.js → chunk-GMAD6QVW-DKxKOKLF.js} +459 -503
  61. package/dist/chunk-GVQU2GXP-BiuaO1L5.cjs +1 -0
  62. package/dist/chunk-GVQU2GXP-w4KY-she.js +37 -0
  63. package/dist/chunk-IMKFNOWR-CusIwu2H.cjs +231 -0
  64. package/dist/{chunk-AQP2D5EJ-Cp3ieoZF.js → chunk-IMKFNOWR-DHxMOe_C.js} +313 -291
  65. package/dist/{chunk-4BX2VUAB-B74FMcxr.js → chunk-JWPE2WC7-Ccb0QaC8.js} +2 -2
  66. package/dist/chunk-JWPE2WC7-Cs1kjq8S.cjs +1 -0
  67. package/dist/chunk-L3NEJ4N5-B8UQMgqc.cjs +1 -0
  68. package/dist/chunk-L3NEJ4N5-CvNbHpcd.js +245 -0
  69. package/dist/chunk-LNGE3PJU-CiGrDO_F.js +1513 -0
  70. package/dist/chunk-LNGE3PJU-TgsSSByc.cjs +34 -0
  71. package/dist/{chunk-KSCS5N6A-pd39ksIM.js → chunk-OSK3NFVY-BmtDbEvT.js} +304 -195
  72. package/dist/chunk-OSK3NFVY-DE9_ERt9.cjs +10 -0
  73. package/dist/chunk-P2QGCYS3-DRvvOWJ2.js +67 -0
  74. package/dist/chunk-P2QGCYS3-DqT85Q-S.cjs +1 -0
  75. package/dist/chunk-POPQ4Y6H-CaEkosGL.js +26 -0
  76. package/dist/chunk-POPQ4Y6H-QqO5seyb.cjs +1 -0
  77. package/dist/chunk-PWAF6VOD-CbmhQpgH.js +277 -0
  78. package/dist/chunk-PWAF6VOD-CjrO-QHU.cjs +1 -0
  79. package/dist/{flowDiagram-I6XJVG4X-Dx5d6cgt.js → chunk-SHT3W25Y-DJgD-hyF.js} +581 -538
  80. package/dist/chunk-SHT3W25Y-DuMn9iH6.cjs +168 -0
  81. package/dist/chunk-SVP7TREG-BNwvtyzm.js +490 -0
  82. package/dist/chunk-SVP7TREG-CiwWyOxx.cjs +88 -0
  83. package/dist/chunk-TICWLB2K-1u0p_luB.cjs +206 -0
  84. package/dist/{chunk-727SXJPM-BDsxon3G.js → chunk-TICWLB2K-DqSHwYf9.js} +185 -180
  85. package/dist/chunk-TLUHSLCS-ZDzqyqeY.cjs +1 -0
  86. package/dist/{chunk-LZXEDZCA-oQMllZja.js → chunk-TLUHSLCS-opHh7fd-.js} +35 -25
  87. package/dist/chunk-XXDRQBXY-BF71LTT1.cjs +1 -0
  88. package/dist/chunk-XXDRQBXY-BZK6GgVm.js +9 -0
  89. package/dist/chunk-Y2CYZVJY-CnmLqFtv.cjs +1 -0
  90. package/dist/chunk-Y2CYZVJY-i11wjrBe.js +12 -0
  91. package/dist/classDiagram-ZZMXUADV-BTRkvFx4.js +30 -0
  92. package/dist/classDiagram-ZZMXUADV-CwAl_N60.cjs +1 -0
  93. package/dist/classDiagram-v2-VYDZK3BY-CFutvfy-.js +30 -0
  94. package/dist/classDiagram-v2-VYDZK3BY-CwAl_N60.cjs +1 -0
  95. package/dist/components/activity-timeline/activity-timeline-types.d.ts +46 -0
  96. package/dist/components/activity-timeline/activity-timeline-types.d.ts.map +1 -0
  97. package/dist/components/activity-timeline/activity-timeline.d.ts +4 -0
  98. package/dist/components/activity-timeline/activity-timeline.d.ts.map +1 -0
  99. package/dist/components/box-list/box-list.d.ts.map +1 -1
  100. package/dist/components/data-table/assets/data-table-row-actions-collapsed.d.ts +12 -0
  101. package/dist/components/data-table/assets/data-table-row-actions-collapsed.d.ts.map +1 -0
  102. package/dist/components/data-table/assets/data-table-row-actions.d.ts +11 -0
  103. package/dist/components/data-table/assets/data-table-row-actions.d.ts.map +1 -0
  104. package/dist/components/data-table/columns/useColumnWidths.d.ts +6 -1
  105. package/dist/components/data-table/columns/useColumnWidths.d.ts.map +1 -1
  106. package/dist/components/data-table/data-table-types.d.ts +108 -4
  107. package/dist/components/data-table/data-table-types.d.ts.map +1 -1
  108. package/dist/components/data-table/data-table.d.ts.map +1 -1
  109. package/dist/components/data-table/header/Header.d.ts.map +1 -1
  110. package/dist/components/data-table/header/header-types.d.ts +14 -4
  111. package/dist/components/data-table/header/header-types.d.ts.map +1 -1
  112. package/dist/components/data-table/sorting/parseDftSort.d.ts +14 -0
  113. package/dist/components/data-table/sorting/parseDftSort.d.ts.map +1 -0
  114. package/dist/components/data-table/sorting/parseDftSort.test.d.ts +2 -0
  115. package/dist/components/data-table/sorting/parseDftSort.test.d.ts.map +1 -0
  116. package/dist/components/data-table/sorting/sortTable-utils.d.ts +8 -9
  117. package/dist/components/data-table/sorting/sortTable-utils.d.ts.map +1 -1
  118. package/dist/components/data-table/sorting/useSortableTable.d.ts +3 -5
  119. package/dist/components/data-table/sorting/useSortableTable.d.ts.map +1 -1
  120. package/dist/components/data-table/state/datatable-state.d.ts +1 -0
  121. package/dist/components/data-table/state/datatable-state.d.ts.map +1 -1
  122. package/dist/components/tab-bar/tab-bar-assets.d.ts +1 -0
  123. package/dist/components/tab-bar/tab-bar-assets.d.ts.map +1 -1
  124. package/dist/components/tab-bar/tab-bar.d.ts.map +1 -1
  125. package/dist/components/workflow-designer/workflow-designer-metadata-panel.d.ts +14 -0
  126. package/dist/components/workflow-designer/workflow-designer-metadata-panel.d.ts.map +1 -0
  127. package/dist/components/workflow-designer/workflow-designer-types.d.ts +109 -0
  128. package/dist/components/workflow-designer/workflow-designer-types.d.ts.map +1 -0
  129. package/dist/components/workflow-designer/workflow-designer-utils.d.ts +86 -0
  130. package/dist/components/workflow-designer/workflow-designer-utils.d.ts.map +1 -0
  131. package/dist/components/workflow-designer/workflow-designer-utils.test.d.ts +2 -0
  132. package/dist/components/workflow-designer/workflow-designer-utils.test.d.ts.map +1 -0
  133. package/dist/components/workflow-designer/workflow-designer.d.ts +15 -0
  134. package/dist/components/workflow-designer/workflow-designer.d.ts.map +1 -0
  135. package/dist/{cose-bilkent-S5V4N54A-DZmA7Nat.js → cose-bilkent-JH36ORCC-CE0T5PqO.js} +23 -23
  136. package/dist/cose-bilkent-JH36ORCC-D6t9R42P.cjs +1 -0
  137. package/dist/cynefin-OW5HDTMX-CsZ3W32G.cjs +1 -0
  138. package/dist/cynefin-OW5HDTMX-DlKRHClQ.js +3 -0
  139. package/dist/cynefinDiagram-5FMLGOSQ-D5vkxB9p.js +349 -0
  140. package/dist/cynefinDiagram-5FMLGOSQ-D95Uad6U.cjs +62 -0
  141. package/dist/{cytoscape.esm-BU21wl3m.js → cytoscape.esm-BQqfb1oS.js} +2260 -2206
  142. package/dist/cytoscape.esm-TdwWzXkE.cjs +321 -0
  143. package/dist/dagre-GXQ25YYZ-CFXgAmuL.js +423 -0
  144. package/dist/dagre-GXQ25YYZ-NS5a_ezX.cjs +4 -0
  145. package/dist/{dagre-B2BBwKNb.cjs → dagre-nX1Mh32P.cjs} +1 -1
  146. package/dist/{dagre-3-RnF0EK.js → dagre-qXSFUdzO.js} +131 -131
  147. package/dist/diagram-S7CK7UJ4-CTj-4VAh.cjs +30 -0
  148. package/dist/diagram-S7CK7UJ4-DrGNegqs.js +301 -0
  149. package/dist/{diagram-2AECGRRQ-BITzWXbn.js → diagram-UQ7AKVKN-LU56O9S9.js} +82 -81
  150. package/dist/diagram-UQ7AKVKN-eskbTWOc.cjs +41 -0
  151. package/dist/{diagram-KO2AKTUF-DwTH3Hoo.js → diagram-VSXAHHWV-CaQnupEx.js} +66 -65
  152. package/dist/diagram-VSXAHHWV-DzHhzg5V.cjs +3 -0
  153. package/dist/diagram-VX7I27RA-D7Ibz__z.cjs +24 -0
  154. package/dist/{diagram-OG6HWLK6-CPzvG6Xi.js → diagram-VX7I27RA-DH-s9daK.js} +105 -104
  155. package/dist/diagram-Z3DM3KII-BpFP72Tr.cjs +24 -0
  156. package/dist/{diagram-LMA3HP47-nYPIM4Uq.js → diagram-Z3DM3KII-DWhRX2l9.js} +21 -20
  157. package/dist/{dist-BEmBi80K.js → dist-C7OpkiTz.js} +2 -3
  158. package/dist/dist-DrOEvFlx.cjs +1 -0
  159. package/dist/ebnfDiagram-PWID7BFC-CtT2erlt.js +100 -0
  160. package/dist/ebnfDiagram-PWID7BFC-DXCy8fra.cjs +1 -0
  161. package/dist/erDiagram-RLTQ6QDP-B-cUtqmN.cjs +99 -0
  162. package/dist/erDiagram-RLTQ6QDP-CxxAoCSs.js +1966 -0
  163. package/dist/eventmodeling-NTZA5JFV-5J5w1INt.js +3 -0
  164. package/dist/eventmodeling-NTZA5JFV-DcUTtbEf.cjs +1 -0
  165. package/dist/flowDiagram-HODETNUW-B6sXxv0S.cjs +1 -0
  166. package/dist/flowDiagram-HODETNUW-BUvMJJnE.js +17 -0
  167. package/dist/functional-components/action-list/action-list-types.d.ts +0 -7
  168. package/dist/functional-components/action-list/action-list-types.d.ts.map +1 -1
  169. package/dist/functional-components/action-list/action-list.d.ts.map +1 -1
  170. package/dist/functional-components/multiple-field/multiple-field-types.d.ts +2 -0
  171. package/dist/functional-components/multiple-field/multiple-field-types.d.ts.map +1 -1
  172. package/dist/functional-components/multiple-field/multiple-field.d.ts.map +1 -1
  173. package/dist/functional-components/row/row-types.d.ts +13 -0
  174. package/dist/functional-components/row/row-types.d.ts.map +1 -1
  175. package/dist/functional-components/row/row.d.ts.map +1 -1
  176. package/dist/functional-components/timeline-engine/components/gantt/gantt-assets.d.ts +3 -1
  177. package/dist/functional-components/timeline-engine/components/gantt/gantt-assets.d.ts.map +1 -1
  178. package/dist/functional-components/timeline-engine/timeline-engine-utils.d.ts.map +1 -1
  179. package/dist/functional-components/tree-picker/tree-picker-types.d.ts +42 -0
  180. package/dist/functional-components/tree-picker/tree-picker-types.d.ts.map +1 -0
  181. package/dist/functional-components/tree-picker/tree-picker.d.ts +3 -0
  182. package/dist/functional-components/tree-picker/tree-picker.d.ts.map +1 -0
  183. package/dist/ganttDiagram-EL5Y4UJY-Bee0Pd-N.cjs +292 -0
  184. package/dist/{ganttDiagram-6RSMTGT7-CFuwKLrB.js → ganttDiagram-EL5Y4UJY-C04RZW4s.js} +642 -639
  185. package/dist/gitGraph-4MIJSDKK-BCt5iiZ5.js +3 -0
  186. package/dist/gitGraph-4MIJSDKK-BeFVwcRC.cjs +1 -0
  187. package/dist/{gitGraphDiagram-PVQCEYII-B2CaQTP_.js → gitGraphDiagram-WWUBYQGX-BTcuEGsY.js} +146 -145
  188. package/dist/gitGraphDiagram-WWUBYQGX-DA026nbS.cjs +106 -0
  189. package/dist/index.d.ts +6 -6
  190. package/dist/index.d.ts.map +1 -1
  191. package/dist/info-A6RAGUB7-C0KA0jej.cjs +1 -0
  192. package/dist/info-A6RAGUB7-DYBvudiC.js +3 -0
  193. package/dist/infoDiagram-27XIBGKW-B5nTXQEj.cjs +2 -0
  194. package/dist/infoDiagram-27XIBGKW-BoUOV42E.js +20 -0
  195. package/dist/{ishikawaDiagram-YF4QCWOH-CfOvUIo-.js → ishikawaDiagram-5VMMS53U-D15Hi9wp.js} +134 -133
  196. package/dist/{ishikawaDiagram-YF4QCWOH-CSRSkgHx.cjs → ishikawaDiagram-5VMMS53U-ptk0d5z2.cjs} +6 -6
  197. package/dist/{journeyDiagram-JHISSGLW-BMECXtd1.js → journeyDiagram-3NMN7TZE-BUb4frTN.js} +181 -180
  198. package/dist/{journeyDiagram-JHISSGLW-P42eSNEh.cjs → journeyDiagram-3NMN7TZE-CxVpPKa-.cjs} +8 -8
  199. package/dist/kanban-definition-UXKFOSKX-Cd_nphr7.cjs +89 -0
  200. package/dist/{kanban-definition-UN3LZRKU-DCzfGTs4.js → kanban-definition-UXKFOSKX-DkgBC20j.js} +141 -138
  201. package/dist/katex-DUe6VLjC.cjs +257 -0
  202. package/dist/{katex-D-2KeLwt.js → katex-Dyoqg6Cv.js} +1562 -1600
  203. package/dist/ketchup2.cjs.js +405 -101
  204. package/dist/ketchup2.css +1 -1
  205. package/dist/ketchup2.es.js +151183 -119083
  206. package/dist/{line-0G6sJTVA.js → line-BEo8vh4N.js} +1 -1
  207. package/dist/{line-CLmmMPn2.cjs → line-wiGgVVGi.cjs} +1 -1
  208. package/dist/{linear-BNWgac81.js → linear-BNesvT28.js} +1 -1
  209. package/dist/{linear-yBssgUAc.cjs → linear-YA14Lx5Z.cjs} +1 -1
  210. package/dist/locale/en/translation.json.d.ts +23 -0
  211. package/dist/locale/it/translation.json.d.ts +24 -1
  212. package/dist/mermaid-parser.core-CqChDTj1.cjs +6 -0
  213. package/dist/mermaid-parser.core-oFB-qEU8.js +638 -0
  214. package/dist/{mindmap-definition-RKZ34NQL-DbK4qO1Z.cjs → mindmap-definition-YA3MSWOX-0PG4raFG.cjs} +11 -11
  215. package/dist/{mindmap-definition-RKZ34NQL-DpX8ksst.js → mindmap-definition-YA3MSWOX-Cjs12XgD.js} +156 -154
  216. package/dist/packet-AYTQ26CC-BEwXWBE0.js +3 -0
  217. package/dist/packet-AYTQ26CC-DfXUrk97.cjs +1 -0
  218. package/dist/pegDiagram-XKGWAZYB-BuyVzOiH.js +94 -0
  219. package/dist/pegDiagram-XKGWAZYB-J7VwZsJf.cjs +1 -0
  220. package/dist/pie-WAS4IAKB-4NfHFfJd.cjs +1 -0
  221. package/dist/pie-WAS4IAKB-BOR5Wwai.js +3 -0
  222. package/dist/pieDiagram-E7YTZNPT-B-rPB0ZO.cjs +39 -0
  223. package/dist/pieDiagram-E7YTZNPT-D4bB4TDP.js +205 -0
  224. package/dist/{quadrantDiagram-W4KKPZXB-Bgw66PrU.js → quadrantDiagram-AXDQQJYC-B6Q9biU9.js} +293 -293
  225. package/dist/quadrantDiagram-AXDQQJYC-C5sdY1DW.cjs +7 -0
  226. package/dist/radar-RG4KPBEZ-BwLQFFzF.js +3 -0
  227. package/dist/radar-RG4KPBEZ-_epvvHKu.cjs +1 -0
  228. package/dist/railroad-74A4TZTK-CaWzRQE0.js +3 -0
  229. package/dist/railroad-74A4TZTK-D2qbdjOh.cjs +1 -0
  230. package/dist/railroad-abnf-HS5TGJTU-D2tm1mra.js +3 -0
  231. package/dist/railroad-abnf-HS5TGJTU-_ThxftPt.cjs +1 -0
  232. package/dist/railroad-ebnf-LZEXJU2U-CKpMMgXK.cjs +1 -0
  233. package/dist/railroad-ebnf-LZEXJU2U-KAuGgmQe.js +3 -0
  234. package/dist/railroad-peg-WCYAUIDC-B8bfIIor.cjs +1 -0
  235. package/dist/railroad-peg-WCYAUIDC-XB38GivH.js +3 -0
  236. package/dist/railroadDiagram-O6MQD6OU-C7LfgSGm.cjs +1 -0
  237. package/dist/railroadDiagram-O6MQD6OU-DFR4_PxB.js +76 -0
  238. package/dist/{requirementDiagram-4Y6WPE33-BzNEhq-x.js → requirementDiagram-BXWQKSXE-BfWCCTu8.js} +169 -166
  239. package/dist/requirementDiagram-BXWQKSXE-y2O3wvFe.cjs +84 -0
  240. package/dist/{sankeyDiagram-5OEKKPKP-06MsaQmt.js → sankeyDiagram-P5KCCOFB-B_3NESVW.js} +109 -108
  241. package/dist/sankeyDiagram-P5KCCOFB-z8VLw23o.cjs +40 -0
  242. package/dist/sequenceDiagram-WJ2MYXX4-3cWo24Xv.cjs +162 -0
  243. package/dist/{sequenceDiagram-3UESZ5HK-QEaDF4MY.js → sequenceDiagram-WJ2MYXX4-B8W9PUBb.js} +692 -688
  244. package/dist/sizeCapture-INFHLROL-CHXIsPO_.js +46 -0
  245. package/dist/sizeCapture-INFHLROL-bJ2ZX4Du.cjs +1 -0
  246. package/dist/src-B16ML7oM.cjs +1 -0
  247. package/dist/{src-GDFuItmC.js → src-D-6ZfKf9.js} +587 -579
  248. package/dist/stateDiagram-D77RDMKH-DghYG1f5.cjs +1 -0
  249. package/dist/stateDiagram-D77RDMKH-IwptGFzp.js +220 -0
  250. package/dist/stateDiagram-v2-MP3YSRHH-0rNAzd4v.cjs +1 -0
  251. package/dist/stateDiagram-v2-MP3YSRHH-NATCGJSV.js +30 -0
  252. package/dist/swimlanes-42K2YHIH-jhIjSCsq.js +4976 -0
  253. package/dist/swimlanes-42K2YHIH-svHo0tVy.cjs +1 -0
  254. package/dist/swimlanesDiagram-VR7AAH4N-DKxpX9Hj.js +31 -0
  255. package/dist/swimlanesDiagram-VR7AAH4N-DcDLe-u-.cjs +8 -0
  256. package/dist/{timeline-definition-PNZ67QCA-DoD4D5kw.js → timeline-definition-24CTP7MA-C6u6A92C.js} +212 -211
  257. package/dist/timeline-definition-24CTP7MA-CA62jwSB.cjs +120 -0
  258. package/dist/treeView-Q6P3EWNA-CkgGYPwy.js +3 -0
  259. package/dist/treeView-Q6P3EWNA-zIJfTe51.cjs +1 -0
  260. package/dist/treemap-WGGIJYW6-CooEnQQp.cjs +1 -0
  261. package/dist/treemap-WGGIJYW6-D4tTzsvR.js +3 -0
  262. package/dist/types/data-structures.d.ts +0 -1
  263. package/dist/types/data-structures.d.ts.map +1 -1
  264. package/dist/types/global.d.ts +1 -1
  265. package/dist/types/global.d.ts.map +1 -1
  266. package/dist/types/translation.d.ts +24 -1
  267. package/dist/types/translation.d.ts.map +1 -1
  268. package/dist/utils/data-structures.d.ts +2 -1
  269. package/dist/utils/data-structures.d.ts.map +1 -1
  270. package/dist/{vennDiagram-CIIHVFJN-Du1h-z8K.js → vennDiagram-4TSXK5OY-Bt9cyeRX.js} +324 -302
  271. package/dist/vennDiagram-4TSXK5OY-YKU1Lb_h.cjs +34 -0
  272. package/dist/wardley-WFR3VGLG-Cp2KFpcw.cjs +1 -0
  273. package/dist/wardley-WFR3VGLG-D1o3hFSK.js +3 -0
  274. package/dist/wardleyDiagram-VM6X3IG4-BvyabMK8.cjs +78 -0
  275. package/dist/{wardleyDiagram-YWT4CUSO-CjOm3Xnp.js → wardleyDiagram-VM6X3IG4-QkNx10Ny.js} +144 -143
  276. package/dist/{xychartDiagram-2RQKCTM6-D0hXWFFN.js → xychartDiagram-S5SC5T6Z-BSwoR01A.js} +729 -559
  277. package/dist/xychartDiagram-S5SC5T6Z-BtNTzcXw.cjs +7 -0
  278. package/package.json +6 -2
  279. package/dist/architecture-7EHR7CIX-Bzeobe9Y.cjs +0 -1
  280. package/dist/architecture-7EHR7CIX-C8NPmR2w.js +0 -3
  281. package/dist/architectureDiagram-3BPJPVTR-C8DI7_Rn.cjs +0 -36
  282. package/dist/assets/shapeListAssets.d.ts +0 -22
  283. package/dist/assets/shapeListAssets.d.ts.map +0 -1
  284. package/dist/basic-components/card/card-slot-resolver.d.ts +0 -6
  285. package/dist/basic-components/card/card-slot-resolver.d.ts.map +0 -1
  286. package/dist/basic-components/card/card-types.d.ts +0 -43
  287. package/dist/basic-components/card/card-types.d.ts.map +0 -1
  288. package/dist/basic-components/card/card.d.ts +0 -5
  289. package/dist/basic-components/card/card.d.ts.map +0 -1
  290. package/dist/basic-components/card/flow/aside/index.d.ts +0 -2
  291. package/dist/basic-components/card/flow/aside/index.d.ts.map +0 -1
  292. package/dist/basic-components/card/flow/compact/index.d.ts +0 -2
  293. package/dist/basic-components/card/flow/compact/index.d.ts.map +0 -1
  294. package/dist/basic-components/card/flow/editorial/index.d.ts +0 -2
  295. package/dist/basic-components/card/flow/editorial/index.d.ts.map +0 -1
  296. package/dist/basic-components/card/flow/minimal/index.d.ts +0 -2
  297. package/dist/basic-components/card/flow/minimal/index.d.ts.map +0 -1
  298. package/dist/basic-components/card/flow/overlay/index.d.ts +0 -2
  299. package/dist/basic-components/card/flow/overlay/index.d.ts.map +0 -1
  300. package/dist/basic-components/card/flow/shared/flow-layout.d.ts +0 -4
  301. package/dist/basic-components/card/flow/shared/flow-layout.d.ts.map +0 -1
  302. package/dist/basic-components/card/flow/split/index.d.ts +0 -2
  303. package/dist/basic-components/card/flow/split/index.d.ts.map +0 -1
  304. package/dist/basic-components/card/flow/spotlight/index.d.ts +0 -2
  305. package/dist/basic-components/card/flow/spotlight/index.d.ts.map +0 -1
  306. package/dist/basic-components/card/flow/tiles/index.d.ts +0 -2
  307. package/dist/basic-components/card/flow/tiles/index.d.ts.map +0 -1
  308. package/dist/basic-components/card/layout-registry.d.ts +0 -4
  309. package/dist/basic-components/card/layout-registry.d.ts.map +0 -1
  310. package/dist/basic-components/card/positional/collaborator/index.d.ts +0 -4
  311. package/dist/basic-components/card/positional/collaborator/index.d.ts.map +0 -1
  312. package/dist/basic-components/card/positional/detailed-object/index.d.ts +0 -5
  313. package/dist/basic-components/card/positional/detailed-object/index.d.ts.map +0 -1
  314. package/dist/basic-components/card/positional/financial/index.d.ts +0 -4
  315. package/dist/basic-components/card/positional/financial/index.d.ts.map +0 -1
  316. package/dist/basic-components/card/positional/folder-grid/index.d.ts +0 -4
  317. package/dist/basic-components/card/positional/folder-grid/index.d.ts.map +0 -1
  318. package/dist/basic-components/card/positional/hero/index.d.ts +0 -4
  319. package/dist/basic-components/card/positional/hero/index.d.ts.map +0 -1
  320. package/dist/basic-components/card/positional/product/index.d.ts +0 -4
  321. package/dist/basic-components/card/positional/product/index.d.ts.map +0 -1
  322. package/dist/basic-components/card/positional/shared/object-card.d.ts +0 -24
  323. package/dist/basic-components/card/positional/shared/object-card.d.ts.map +0 -1
  324. package/dist/basic-components/card/positional/shared/utils.d.ts +0 -26
  325. package/dist/basic-components/card/positional/shared/utils.d.ts.map +0 -1
  326. package/dist/basic-components/card/positional/simple-object/index.d.ts +0 -5
  327. package/dist/basic-components/card/positional/simple-object/index.d.ts.map +0 -1
  328. package/dist/basic-components/card/positional/tooltip/index.d.ts +0 -4
  329. package/dist/basic-components/card/positional/tooltip/index.d.ts.map +0 -1
  330. package/dist/basic-components/card/positional/trend/index.d.ts +0 -4
  331. package/dist/basic-components/card/positional/trend/index.d.ts.map +0 -1
  332. package/dist/blockDiagram-GPEHLZMM-C7mogpj_.cjs +0 -132
  333. package/dist/blockDiagram-GPEHLZMM-fcAaH_Ka.js +0 -3157
  334. package/dist/c4Diagram-AAUBKEIU-BjsHAdap.cjs +0 -10
  335. package/dist/cell-NyD4Bcyq.js +0 -6457
  336. package/dist/cell-dpOG-xr_.cjs +0 -6
  337. package/dist/channel-BzP1tmYc.cjs +0 -1
  338. package/dist/chunk-2J33WTMH-BulZYTKs.js +0 -25
  339. package/dist/chunk-2J33WTMH-DIfvCbWZ.cjs +0 -1
  340. package/dist/chunk-3OPIFGDE-Ohf7vgmX.cjs +0 -62
  341. package/dist/chunk-4BX2VUAB-DdliHvKq.cjs +0 -1
  342. package/dist/chunk-55IACEB6-D5PlvtBC.js +0 -8
  343. package/dist/chunk-55IACEB6-DzCdT-ru.cjs +0 -1
  344. package/dist/chunk-5ZQYHXKU-35HHGVyc.cjs +0 -2
  345. package/dist/chunk-727SXJPM-BCv3AEZb.cjs +0 -206
  346. package/dist/chunk-AQP2D5EJ-CPbTYzEZ.cjs +0 -231
  347. package/dist/chunk-BSJP7CBP-BjkTjHJ6.js +0 -82
  348. package/dist/chunk-BSJP7CBP-DtjFXF0S.cjs +0 -1
  349. package/dist/chunk-CSCIHK7Q-WWTYrQLt.cjs +0 -122
  350. package/dist/chunk-Dqa2HsxW.js +0 -20
  351. package/dist/chunk-KSCS5N6A-DSWnBtbV.cjs +0 -10
  352. package/dist/chunk-L5ZTLDWV-DXk-PQPS.js +0 -32
  353. package/dist/chunk-L5ZTLDWV-sRcGREMv.cjs +0 -1
  354. package/dist/chunk-LZXEDZCA-4kbGESh2.cjs +0 -1
  355. package/dist/chunk-ND2GUHAM-See9KDdJ.cjs +0 -1
  356. package/dist/chunk-NNHCCRGN-qV8bfiMQ.cjs +0 -159
  357. package/dist/chunk-NZK2D7GU-CqugOMaJ.js +0 -67
  358. package/dist/chunk-NZK2D7GU-FNVK0iHI.cjs +0 -1
  359. package/dist/chunk-O5CBEL6O-BU_i0jbb.cjs +0 -70
  360. package/dist/chunk-QZHKN3VN-DPdobKra.cjs +0 -1
  361. package/dist/chunk-WU5MYG2G-BL6T82Hi.js +0 -9
  362. package/dist/chunk-WU5MYG2G-qi7ZaL3o.cjs +0 -1
  363. package/dist/chunk-XPW4576I-B9aC8EBY.js +0 -1146
  364. package/dist/chunk-XPW4576I-Dsm0jctf.cjs +0 -32
  365. package/dist/chunk-mLOUI7ql.cjs +0 -1
  366. package/dist/classDiagram-4FO5ZUOK-Dc-Jypl3.js +0 -29
  367. package/dist/classDiagram-4FO5ZUOK-Dqxk6PU-.cjs +0 -1
  368. package/dist/classDiagram-v2-Q7XG4LA2-DZ44tKmY.js +0 -29
  369. package/dist/classDiagram-v2-Q7XG4LA2-Dqxk6PU-.cjs +0 -1
  370. package/dist/components/shape-list/components/error-boundary.d.ts +0 -16
  371. package/dist/components/shape-list/components/error-boundary.d.ts.map +0 -1
  372. package/dist/components/shape-list/components/shape-list-drill-down.d.ts +0 -4
  373. package/dist/components/shape-list/components/shape-list-drill-down.d.ts.map +0 -1
  374. package/dist/components/shape-list/components/toolbar/command-panel.d.ts +0 -15
  375. package/dist/components/shape-list/components/toolbar/command-panel.d.ts.map +0 -1
  376. package/dist/components/shape-list/components/toolbar/command-trigger.d.ts +0 -16
  377. package/dist/components/shape-list/components/toolbar/command-trigger.d.ts.map +0 -1
  378. package/dist/components/shape-list/components/toolbar/filter-picker.d.ts +0 -14
  379. package/dist/components/shape-list/components/toolbar/filter-picker.d.ts.map +0 -1
  380. package/dist/components/shape-list/components/toolbar/json-viewer.d.ts +0 -11
  381. package/dist/components/shape-list/components/toolbar/json-viewer.d.ts.map +0 -1
  382. package/dist/components/shape-list/components/toolbar/navigation-picker.d.ts +0 -15
  383. package/dist/components/shape-list/components/toolbar/navigation-picker.d.ts.map +0 -1
  384. package/dist/components/shape-list/components/toolbar/sort-picker.d.ts +0 -14
  385. package/dist/components/shape-list/components/toolbar/sort-picker.d.ts.map +0 -1
  386. package/dist/components/shape-list/context/shape-list-context.d.ts +0 -31
  387. package/dist/components/shape-list/context/shape-list-context.d.ts.map +0 -1
  388. package/dist/components/shape-list/context/shape-list-filter-context.d.ts +0 -9
  389. package/dist/components/shape-list/context/shape-list-filter-context.d.ts.map +0 -1
  390. package/dist/components/shape-list/context/shape-list-sort-context.d.ts +0 -9
  391. package/dist/components/shape-list/context/shape-list-sort-context.d.ts.map +0 -1
  392. package/dist/components/shape-list/context/shape-list-state-context.d.ts +0 -5
  393. package/dist/components/shape-list/context/shape-list-state-context.d.ts.map +0 -1
  394. package/dist/components/shape-list/hooks/useCommandPickers.d.ts +0 -13
  395. package/dist/components/shape-list/hooks/useCommandPickers.d.ts.map +0 -1
  396. package/dist/components/shape-list/hooks/useLazyShapeData.d.ts +0 -35
  397. package/dist/components/shape-list/hooks/useLazyShapeData.d.ts.map +0 -1
  398. package/dist/components/shape-list/hooks/useLazyShapeData.test.d.ts +0 -2
  399. package/dist/components/shape-list/hooks/useLazyShapeData.test.d.ts.map +0 -1
  400. package/dist/components/shape-list/hooks/useNavigation.d.ts +0 -16
  401. package/dist/components/shape-list/hooks/useNavigation.d.ts.map +0 -1
  402. package/dist/components/shape-list/hooks/useSelection.d.ts +0 -34
  403. package/dist/components/shape-list/hooks/useSelection.d.ts.map +0 -1
  404. package/dist/components/shape-list/hooks/useStripOverflow.d.ts +0 -17
  405. package/dist/components/shape-list/hooks/useStripOverflow.d.ts.map +0 -1
  406. package/dist/components/shape-list/items/node-content.d.ts +0 -47
  407. package/dist/components/shape-list/items/node-content.d.ts.map +0 -1
  408. package/dist/components/shape-list/items/shape.d.ts +0 -20
  409. package/dist/components/shape-list/items/shape.d.ts.map +0 -1
  410. package/dist/components/shape-list/navigation-modes/_shared/navigation-orchestrator.d.ts +0 -13
  411. package/dist/components/shape-list/navigation-modes/_shared/navigation-orchestrator.d.ts.map +0 -1
  412. package/dist/components/shape-list/navigation-modes/_shared/panel/context-menu.d.ts +0 -4
  413. package/dist/components/shape-list/navigation-modes/_shared/panel/context-menu.d.ts.map +0 -1
  414. package/dist/components/shape-list/navigation-modes/_shared/panel/index.d.ts +0 -7
  415. package/dist/components/shape-list/navigation-modes/_shared/panel/index.d.ts.map +0 -1
  416. package/dist/components/shape-list/navigation-modes/_shared/panel/item-content.d.ts +0 -11
  417. package/dist/components/shape-list/navigation-modes/_shared/panel/item-content.d.ts.map +0 -1
  418. package/dist/components/shape-list/navigation-modes/_shared/panel/panel.d.ts +0 -18
  419. package/dist/components/shape-list/navigation-modes/_shared/panel/panel.d.ts.map +0 -1
  420. package/dist/components/shape-list/navigation-modes/_shared/panel/rail-item.d.ts +0 -8
  421. package/dist/components/shape-list/navigation-modes/_shared/panel/rail-item.d.ts.map +0 -1
  422. package/dist/components/shape-list/navigation-modes/_shared/panel/section-view.d.ts +0 -6
  423. package/dist/components/shape-list/navigation-modes/_shared/panel/section-view.d.ts.map +0 -1
  424. package/dist/components/shape-list/navigation-modes/_shared/panel/shell.d.ts +0 -13
  425. package/dist/components/shape-list/navigation-modes/_shared/panel/shell.d.ts.map +0 -1
  426. package/dist/components/shape-list/navigation-modes/_shared/panel/tree-item.d.ts +0 -9
  427. package/dist/components/shape-list/navigation-modes/_shared/panel/tree-item.d.ts.map +0 -1
  428. package/dist/components/shape-list/navigation-modes/_shared/strip/index.d.ts +0 -4
  429. package/dist/components/shape-list/navigation-modes/_shared/strip/index.d.ts.map +0 -1
  430. package/dist/components/shape-list/navigation-modes/_shared/strip/strip-child-popup.d.ts +0 -5
  431. package/dist/components/shape-list/navigation-modes/_shared/strip/strip-child-popup.d.ts.map +0 -1
  432. package/dist/components/shape-list/navigation-modes/_shared/strip/strip-item.d.ts +0 -5
  433. package/dist/components/shape-list/navigation-modes/_shared/strip/strip-item.d.ts.map +0 -1
  434. package/dist/components/shape-list/navigation-modes/_shared/strip/strip-overflow-button.d.ts +0 -5
  435. package/dist/components/shape-list/navigation-modes/_shared/strip/strip-overflow-button.d.ts.map +0 -1
  436. package/dist/components/shape-list/navigation-modes/catalog/index.d.ts +0 -3
  437. package/dist/components/shape-list/navigation-modes/catalog/index.d.ts.map +0 -1
  438. package/dist/components/shape-list/navigation-modes/catalog/shape-list-catalog.d.ts +0 -5
  439. package/dist/components/shape-list/navigation-modes/catalog/shape-list-catalog.d.ts.map +0 -1
  440. package/dist/components/shape-list/navigation-modes/compact/index.d.ts +0 -3
  441. package/dist/components/shape-list/navigation-modes/compact/index.d.ts.map +0 -1
  442. package/dist/components/shape-list/navigation-modes/compact/shape-list-compact.d.ts +0 -5
  443. package/dist/components/shape-list/navigation-modes/compact/shape-list-compact.d.ts.map +0 -1
  444. package/dist/components/shape-list/navigation-modes/explorer/index.d.ts +0 -4
  445. package/dist/components/shape-list/navigation-modes/explorer/index.d.ts.map +0 -1
  446. package/dist/components/shape-list/navigation-modes/explorer/shape-list-explorer.d.ts +0 -5
  447. package/dist/components/shape-list/navigation-modes/explorer/shape-list-explorer.d.ts.map +0 -1
  448. package/dist/components/shape-list/navigation-modes/explorer/shape-list-tree.d.ts +0 -5
  449. package/dist/components/shape-list/navigation-modes/explorer/shape-list-tree.d.ts.map +0 -1
  450. package/dist/components/shape-list/navigation-modes/h-strip/index.d.ts +0 -3
  451. package/dist/components/shape-list/navigation-modes/h-strip/index.d.ts.map +0 -1
  452. package/dist/components/shape-list/navigation-modes/h-strip/shape-list-h-strip.d.ts +0 -5
  453. package/dist/components/shape-list/navigation-modes/h-strip/shape-list-h-strip.d.ts.map +0 -1
  454. package/dist/components/shape-list/navigation-modes/modal/index.d.ts +0 -3
  455. package/dist/components/shape-list/navigation-modes/modal/index.d.ts.map +0 -1
  456. package/dist/components/shape-list/navigation-modes/modal/shape-list-modal.d.ts +0 -5
  457. package/dist/components/shape-list/navigation-modes/modal/shape-list-modal.d.ts.map +0 -1
  458. package/dist/components/shape-list/navigation-modes/rail/index.d.ts +0 -3
  459. package/dist/components/shape-list/navigation-modes/rail/index.d.ts.map +0 -1
  460. package/dist/components/shape-list/navigation-modes/rail/shape-list-rail.d.ts +0 -11
  461. package/dist/components/shape-list/navigation-modes/rail/shape-list-rail.d.ts.map +0 -1
  462. package/dist/components/shape-list/navigation-modes/sidebar/index.d.ts +0 -3
  463. package/dist/components/shape-list/navigation-modes/sidebar/index.d.ts.map +0 -1
  464. package/dist/components/shape-list/navigation-modes/sidebar/shape-list-sidebar.d.ts +0 -11
  465. package/dist/components/shape-list/navigation-modes/sidebar/shape-list-sidebar.d.ts.map +0 -1
  466. package/dist/components/shape-list/navigation-modes/slideshow/index.d.ts +0 -3
  467. package/dist/components/shape-list/navigation-modes/slideshow/index.d.ts.map +0 -1
  468. package/dist/components/shape-list/navigation-modes/slideshow/shape-list-slideshow.d.ts +0 -5
  469. package/dist/components/shape-list/navigation-modes/slideshow/shape-list-slideshow.d.ts.map +0 -1
  470. package/dist/components/shape-list/navigation-modes/v-strip/index.d.ts +0 -3
  471. package/dist/components/shape-list/navigation-modes/v-strip/index.d.ts.map +0 -1
  472. package/dist/components/shape-list/navigation-modes/v-strip/shape-list-v-strip.d.ts +0 -5
  473. package/dist/components/shape-list/navigation-modes/v-strip/shape-list-v-strip.d.ts.map +0 -1
  474. package/dist/components/shape-list/navigation-modes/workspace/index.d.ts +0 -3
  475. package/dist/components/shape-list/navigation-modes/workspace/index.d.ts.map +0 -1
  476. package/dist/components/shape-list/navigation-modes/workspace/shape-list-workspace.d.ts +0 -11
  477. package/dist/components/shape-list/navigation-modes/workspace/shape-list-workspace.d.ts.map +0 -1
  478. package/dist/components/shape-list/shape-list.d.ts +0 -5
  479. package/dist/components/shape-list/shape-list.d.ts.map +0 -1
  480. package/dist/components/shape-list/slots/renderers/brand.d.ts +0 -6
  481. package/dist/components/shape-list/slots/renderers/brand.d.ts.map +0 -1
  482. package/dist/components/shape-list/slots/renderers/cta.d.ts +0 -9
  483. package/dist/components/shape-list/slots/renderers/cta.d.ts.map +0 -1
  484. package/dist/components/shape-list/slots/renderers/icon.d.ts +0 -11
  485. package/dist/components/shape-list/slots/renderers/icon.d.ts.map +0 -1
  486. package/dist/components/shape-list/slots/renderers/section-header.d.ts +0 -7
  487. package/dist/components/shape-list/slots/renderers/section-header.d.ts.map +0 -1
  488. package/dist/components/shape-list/slots/renderers/shape-cell.d.ts +0 -9
  489. package/dist/components/shape-list/slots/renderers/shape-cell.d.ts.map +0 -1
  490. package/dist/components/shape-list/slots/slot-config.d.ts +0 -7
  491. package/dist/components/shape-list/slots/slot-config.d.ts.map +0 -1
  492. package/dist/components/shape-list/slots/slot-model.d.ts +0 -6
  493. package/dist/components/shape-list/slots/slot-model.d.ts.map +0 -1
  494. package/dist/components/shape-list/slots/slot-node.d.ts +0 -9
  495. package/dist/components/shape-list/slots/slot-node.d.ts.map +0 -1
  496. package/dist/components/shape-list/slots/slot-render-utils.d.ts +0 -11
  497. package/dist/components/shape-list/slots/slot-render-utils.d.ts.map +0 -1
  498. package/dist/components/shape-list/slots/slot-types.d.ts +0 -151
  499. package/dist/components/shape-list/slots/slot-types.d.ts.map +0 -1
  500. package/dist/components/shape-list/slots/test/slot-model.test.d.ts +0 -2
  501. package/dist/components/shape-list/slots/test/slot-model.test.d.ts.map +0 -1
  502. package/dist/components/shape-list/types/shape-list-types.d.ts +0 -181
  503. package/dist/components/shape-list/types/shape-list-types.d.ts.map +0 -1
  504. package/dist/components/shape-list/utils/column-utils.d.ts +0 -9
  505. package/dist/components/shape-list/utils/column-utils.d.ts.map +0 -1
  506. package/dist/components/shape-list/utils/debug-utils.d.ts +0 -13
  507. package/dist/components/shape-list/utils/debug-utils.d.ts.map +0 -1
  508. package/dist/components/shape-list/utils/filter-utils.d.ts +0 -12
  509. package/dist/components/shape-list/utils/filter-utils.d.ts.map +0 -1
  510. package/dist/components/shape-list/utils/keyboard-utils.d.ts +0 -12
  511. package/dist/components/shape-list/utils/keyboard-utils.d.ts.map +0 -1
  512. package/dist/components/shape-list/utils/navigation-options.d.ts +0 -30
  513. package/dist/components/shape-list/utils/navigation-options.d.ts.map +0 -1
  514. package/dist/components/shape-list/utils/node-utils.d.ts +0 -12
  515. package/dist/components/shape-list/utils/node-utils.d.ts.map +0 -1
  516. package/dist/components/shape-list/utils/sort-utils.d.ts +0 -13
  517. package/dist/components/shape-list/utils/sort-utils.d.ts.map +0 -1
  518. package/dist/components/shape-list/utils/typeahead-utils.d.ts +0 -28
  519. package/dist/components/shape-list/utils/typeahead-utils.d.ts.map +0 -1
  520. package/dist/cose-bilkent-S5V4N54A-BxQyjZqX.cjs +0 -1
  521. package/dist/cytoscape.esm-CElDUMAx.cjs +0 -321
  522. package/dist/dagre-BM42HDAG-DwRqEen8.js +0 -297
  523. package/dist/dagre-BM42HDAG-E2Jw6uLH.cjs +0 -4
  524. package/dist/diagram-2AECGRRQ-BkwGTiAT.cjs +0 -43
  525. package/dist/diagram-5GNKFQAL-CvMOQgoH.cjs +0 -10
  526. package/dist/diagram-5GNKFQAL-bsRwDc-2.js +0 -101
  527. package/dist/diagram-KO2AKTUF-DKGDs9Ax.cjs +0 -3
  528. package/dist/diagram-LMA3HP47-BojSLu6w.cjs +0 -24
  529. package/dist/diagram-OG6HWLK6-bHqMXqif.cjs +0 -24
  530. package/dist/dist-Dwq87x4R.cjs +0 -1
  531. package/dist/erDiagram-TEJ5UH35-BxeM1F9k.js +0 -1700
  532. package/dist/erDiagram-TEJ5UH35-CqUBZsAh.cjs +0 -85
  533. package/dist/eventmodeling-FCH6USID-Cued7Lz2.cjs +0 -1
  534. package/dist/eventmodeling-FCH6USID-mCB8hc7X.js +0 -3
  535. package/dist/flowDiagram-I6XJVG4X-DsjMn89E.cjs +0 -162
  536. package/dist/functional-components/shape/index.d.ts +0 -9
  537. package/dist/functional-components/shape/index.d.ts.map +0 -1
  538. package/dist/functional-components/shape/shape-map.d.ts +0 -3
  539. package/dist/functional-components/shape/shape-map.d.ts.map +0 -1
  540. package/dist/functional-components/shape/shape-registry.d.ts +0 -25
  541. package/dist/functional-components/shape/shape-registry.d.ts.map +0 -1
  542. package/dist/functional-components/shape/shape-resolver.d.ts +0 -61
  543. package/dist/functional-components/shape/shape-resolver.d.ts.map +0 -1
  544. package/dist/functional-components/shape/shape-types.d.ts +0 -55
  545. package/dist/functional-components/shape/shape-types.d.ts.map +0 -1
  546. package/dist/functional-components/shape/shape.d.ts +0 -5
  547. package/dist/functional-components/shape/shape.d.ts.map +0 -1
  548. package/dist/functional-components/shape/slot-resolver.d.ts +0 -24
  549. package/dist/functional-components/shape/slot-resolver.d.ts.map +0 -1
  550. package/dist/functional-components/shape/slot-types.d.ts +0 -27
  551. package/dist/functional-components/shape/slot-types.d.ts.map +0 -1
  552. package/dist/functional-components/shape/useSlotResolver.d.ts +0 -13
  553. package/dist/functional-components/shape/useSlotResolver.d.ts.map +0 -1
  554. package/dist/ganttDiagram-6RSMTGT7-CG_knKFc.cjs +0 -292
  555. package/dist/gitGraph-WXDBUCRP-B23gOjfP.js +0 -3
  556. package/dist/gitGraph-WXDBUCRP-Bi-Y5dA7.cjs +0 -1
  557. package/dist/gitGraphDiagram-PVQCEYII-B-VOfNjd.cjs +0 -106
  558. package/dist/info-J43DQDTF-DC3N8SoX.js +0 -3
  559. package/dist/info-J43DQDTF-jRjlWVKj.cjs +0 -1
  560. package/dist/infoDiagram-5YYISTIA-22jaR465.cjs +0 -2
  561. package/dist/infoDiagram-5YYISTIA-CM-al6Jc.js +0 -19
  562. package/dist/jsx-runtime-DCATrIRp.js +0 -183
  563. package/dist/jsx-runtime-DtVwqYNW.cjs +0 -6
  564. package/dist/kanban-definition-UN3LZRKU-DplPe2EX.cjs +0 -89
  565. package/dist/katex-CkiTumqg.cjs +0 -257
  566. package/dist/mermaid-parser.core-ADyJ_PY4.cjs +0 -3
  567. package/dist/mermaid-parser.core-D6xVjl2t.js +0 -373
  568. package/dist/packet-YPE3B663-CGZxZ1Z0.cjs +0 -1
  569. package/dist/packet-YPE3B663-D2JW2EUF.js +0 -3
  570. package/dist/pie-LRSECV5Y-BHyd33ZA.js +0 -3
  571. package/dist/pie-LRSECV5Y-Ca_qbHEv.cjs +0 -1
  572. package/dist/pieDiagram-4H26LBE5-CCgLxjTB.js +0 -165
  573. package/dist/pieDiagram-4H26LBE5-DAhjc9WT.cjs +0 -30
  574. package/dist/purify.es-9OKVhuci.js +0 -735
  575. package/dist/purify.es-hdXGOu6N.cjs +0 -3
  576. package/dist/quadrantDiagram-W4KKPZXB-BBEQhVJy.cjs +0 -7
  577. package/dist/radar-GUYGQ44K-BpJWFTCm.js +0 -3
  578. package/dist/radar-GUYGQ44K-CYqWSxO_.cjs +0 -1
  579. package/dist/requirementDiagram-4Y6WPE33-L_lL0BcB.cjs +0 -84
  580. package/dist/sankeyDiagram-5OEKKPKP-Dy9K3F81.cjs +0 -40
  581. package/dist/sequenceDiagram-3UESZ5HK-C69YSjBM.cjs +0 -162
  582. package/dist/src-CFBvxm_0.cjs +0 -1
  583. package/dist/stateDiagram-AJRCARHV-BTzCb_Q-.js +0 -217
  584. package/dist/stateDiagram-AJRCARHV-CBbDL4Ct.cjs +0 -1
  585. package/dist/stateDiagram-v2-BHNVJYJU-BrQR0oUL.cjs +0 -1
  586. package/dist/stateDiagram-v2-BHNVJYJU-C7E3JbTB.js +0 -27
  587. package/dist/timeline-definition-PNZ67QCA-DJ9VKw6h.cjs +0 -120
  588. package/dist/treeView-BLDUP644-C9tQMbiq.js +0 -3
  589. package/dist/treeView-BLDUP644-DKh9BcaT.cjs +0 -1
  590. package/dist/treemap-LRROVOQU-2aferAph.cjs +0 -1
  591. package/dist/treemap-LRROVOQU-CBv3oGC3.js +0 -3
  592. package/dist/useObjectProtocol-3BhpCUjG.cjs +0 -3
  593. package/dist/useObjectProtocol-DZdggHDN.js +0 -4333
  594. package/dist/vennDiagram-CIIHVFJN-DeRVKdRG.cjs +0 -34
  595. package/dist/wardley-L42UT6IY-CIM0_V5T.js +0 -3
  596. package/dist/wardley-L42UT6IY-DjjjOB8T.cjs +0 -1
  597. package/dist/wardleyDiagram-YWT4CUSO-CaaSvy6n.cjs +0 -78
  598. package/dist/xychartDiagram-2RQKCTM6-CWncieig.cjs +0 -7
@@ -0,0 +1,4976 @@
1
+ import { m as e } from "./src-D-6ZfKf9.js";
2
+ import "./chunk-DU6HZSFF-CNSdkWoH.js";
3
+ import { n as t } from "./chunk-Y2CYZVJY-i11wjrBe.js";
4
+ import "./chunk-75Z2AOVW-BwUD389x.js";
5
+ import "./chunk-P2QGCYS3-DRvvOWJ2.js";
6
+ import "./chunk-PWAF6VOD-CbmhQpgH.js";
7
+ import "./chunk-GMAD6QVW-DKxKOKLF.js";
8
+ import "./chunk-4HAMMTFA-MZIwowe1.js";
9
+ import "./chunk-GVQU2GXP-w4KY-she.js";
10
+ import "./chunk-L3NEJ4N5-CvNbHpcd.js";
11
+ import { o as n } from "./chunk-OSK3NFVY-BmtDbEvT.js";
12
+ import { r } from "./chunk-2E4U76K2-C8vehurw.js";
13
+ //#region node_modules/mermaid/dist/chunks/mermaid.core/swimlanes-42K2YHIH.mjs
14
+ var i = 5, a = 1e-5, o = 1e-6;
15
+ function s(e) {
16
+ let t = [];
17
+ for (let n = 0; n < e.length - 1; n++) t.push({
18
+ a: e[n],
19
+ b: e[n + 1]
20
+ });
21
+ return t;
22
+ }
23
+ t(s, "buildSegmentList");
24
+ function c(e, t, n, r) {
25
+ let i = t.x - e.x, a = t.y - e.y, s = r.x - n.x, c = r.y - n.y, l = i * c - a * s;
26
+ if (l === 0) return null;
27
+ let u = n.x - e.x, d = n.y - e.y, f = (u * c - d * s) / l, p = (u * a - d * i) / l;
28
+ return f <= o || f >= 1 - o || p <= o || p >= 1 - o ? null : {
29
+ point: {
30
+ x: e.x + f * i,
31
+ y: e.y + f * a
32
+ },
33
+ tA: f,
34
+ tB: p
35
+ };
36
+ }
37
+ t(c, "segmentIntersection");
38
+ function l(e) {
39
+ return Math.abs(e.b.x - e.a.x) >= Math.abs(e.b.y - e.a.y);
40
+ }
41
+ t(l, "isHorizontalSeg");
42
+ function u(e) {
43
+ let t = [];
44
+ for (let n = 0; n < e.length; n++) {
45
+ let r = e[n], i = s(r.points);
46
+ for (let a = n + 1; a < e.length; a++) {
47
+ let n = e[a], o = s(n.points);
48
+ for (let [e, a] of i.entries()) for (let [i, s] of o.entries()) {
49
+ let o = c(a.a, a.b, s.a, s.b);
50
+ if (!o) continue;
51
+ let u = l(a);
52
+ u !== l(s) && u ? t.push({
53
+ jumpEdgeId: r.id,
54
+ otherEdgeId: n.id,
55
+ segIndex: e,
56
+ t: o.tA,
57
+ point: o.point
58
+ }) : t.push({
59
+ jumpEdgeId: n.id,
60
+ otherEdgeId: r.id,
61
+ segIndex: i,
62
+ t: o.tB,
63
+ point: o.point
64
+ });
65
+ }
66
+ }
67
+ }
68
+ return t;
69
+ }
70
+ t(u, "findEdgeIntersections");
71
+ function d(e) {
72
+ return `${Math.round(e * 1e3) / 1e3}`;
73
+ }
74
+ t(d, "fmt");
75
+ function f(e) {
76
+ return `${d(e.x)},${d(e.y)}`;
77
+ }
78
+ t(f, "pointToString");
79
+ function p(e) {
80
+ let t = e.b.x - e.a.x, n = e.b.y - e.a.y;
81
+ return Math.abs(t) >= Math.abs(n) ? +(t >= 0) : +(n >= 0);
82
+ }
83
+ t(p, "getArcSweepFlag");
84
+ var m = .001;
85
+ function h(e, t) {
86
+ if (e.length < 2) return e.map((e) => ({ ...e }));
87
+ let r = e.map((e) => ({ ...e })), i = t.arrowTypeStart && n[t.arrowTypeStart];
88
+ if (i) {
89
+ let t = e[0], n = e[1], a = Math.atan2(n.y - t.y, n.x - t.x);
90
+ r[0].x = t.x + i * Math.cos(a), r[0].y = t.y + i * Math.sin(a);
91
+ }
92
+ let a = t.arrowTypeEnd && n[t.arrowTypeEnd];
93
+ if (a) {
94
+ let t = e.length, n = e[t - 2], i = e[t - 1], o = Math.atan2(i.y - n.y, i.x - n.x);
95
+ r[t - 1].x = i.x - a * Math.cos(o), r[t - 1].y = i.y - a * Math.sin(o);
96
+ }
97
+ return r;
98
+ }
99
+ t(h, "applyMarkerOffsets");
100
+ function g(e, t, n, r, i) {
101
+ let a = e.point.x, o = e.point.y, s = {
102
+ x: a - t * e.r,
103
+ y: o - n * e.r
104
+ }, c = {
105
+ x: a + t * e.r,
106
+ y: o + n * e.r
107
+ }, l = [`L${f(s)}`];
108
+ return i === "arc" ? l.push(`A${d(e.r)},${d(e.r)} 0 0 ${r} ${f(c)}`) : l.push(`M${f(c)}`), l;
109
+ }
110
+ t(g, "emitJump");
111
+ function _(e, t, n, r) {
112
+ let i = t.x - e.x, o = t.y - e.y, s = n.x - t.x, c = n.y - t.y, l = Math.hypot(i, o), u = Math.hypot(s, c);
113
+ if (l < a || u < a) return null;
114
+ let d = i / l, f = o / l, p = s / u, m = c / u, h = d * p + f * m, g = Math.acos(Math.max(-1, Math.min(1, h)));
115
+ if (g < a || Math.abs(Math.PI - g) < a) return null;
116
+ let _ = Math.min(r / Math.sin(g / 2), l / 2, u / 2);
117
+ return {
118
+ startX: t.x - d * _,
119
+ startY: t.y - f * _,
120
+ endX: t.x + p * _,
121
+ endY: t.y + m * _,
122
+ ctrlX: t.x,
123
+ ctrlY: t.y,
124
+ cutLen: _
125
+ };
126
+ }
127
+ t(_, "computeRoundedCorner");
128
+ function v(e, t, n) {
129
+ let r = e.points;
130
+ if (r.length < 2) return "";
131
+ let a = h(r, e), o = e.curve === "rounded", c = s(a), l = /* @__PURE__ */ new Map();
132
+ for (let e of t) {
133
+ let t = c[e.segIndex];
134
+ if (!t) continue;
135
+ let r = Math.hypot(t.b.x - t.a.x, t.b.y - t.a.y), i = l.get(e.segIndex) ?? [];
136
+ i.push({
137
+ t: e.t,
138
+ point: e.point,
139
+ d: e.t * r,
140
+ r: n.jumpRadius
141
+ }), l.set(e.segIndex, i);
142
+ }
143
+ let u = [`M${f(a[0])}`];
144
+ for (let e = 0; e < c.length; e++) {
145
+ let t = c[e], r = Math.hypot(t.b.x - t.a.x, t.b.y - t.a.y), s = r === 0 ? 0 : (t.b.x - t.a.x) / r, h = r === 0 ? 0 : (t.b.y - t.a.y) / r, v = p(t), y = 0;
146
+ if (o && e > 0) {
147
+ let t = _(a[e - 1], a[e], a[e + 1] ?? a[e], i);
148
+ t && (y = t.cutLen);
149
+ }
150
+ let b = r, x = null;
151
+ o && e < c.length - 1 && (x = _(a[e], a[e + 1], a[e + 2] ?? a[e + 1], i), x && (b = r - x.cutLen));
152
+ let S = [...l.get(e) ?? []].sort((e, t) => e.t - t.t);
153
+ for (let e of S) e.r = Math.min(e.r, e.d - y, b - e.d);
154
+ for (let e = 0; e < S.length - 1; e++) {
155
+ let t = S[e + 1].d - S[e].d;
156
+ if (S[e].r + S[e + 1].r > t) {
157
+ let n = t / 2;
158
+ S[e].r = Math.min(S[e].r, n), S[e + 1].r = Math.min(S[e + 1].r, n);
159
+ }
160
+ }
161
+ for (let e of S) e.r < m || u.push(...g(e, s, h, v, n.jumpStyle));
162
+ o && x ? (u.push(`L${d(x.startX)},${d(x.startY)}`), u.push(`Q${d(x.ctrlX)},${d(x.ctrlY)} ${d(x.endX)},${d(x.endY)}`)) : u.push(`L${f(t.b)}`);
163
+ }
164
+ return u.join(" ");
165
+ }
166
+ t(v, "rewriteEdgePath");
167
+ function y(e) {
168
+ return /^[\d\s+,.LMelm-]*$/.test(e);
169
+ }
170
+ t(y, "isStraightPath");
171
+ function b(e) {
172
+ return e ? e === "linear" || e === "rounded" || e === "step" || e === "stepBefore" || e === "stepAfter" : !0;
173
+ }
174
+ t(b, "curveSupportsLineHops");
175
+ function x(e) {
176
+ if (!e) return null;
177
+ try {
178
+ let t = typeof atob == "function" ? atob(e) : Buffer.from(e, "base64").toString(), n = JSON.parse(t);
179
+ if (!Array.isArray(n)) return null;
180
+ let r = [];
181
+ for (let e of n) e && typeof e.x == "number" && typeof e.y == "number" && r.push({
182
+ x: e.x,
183
+ y: e.y
184
+ });
185
+ return r.length >= 2 ? r : null;
186
+ } catch {
187
+ return null;
188
+ }
189
+ }
190
+ t(x, "decodeDataPoints");
191
+ function S(e, t, n) {
192
+ if (!n.enabled) return;
193
+ let r = e.node();
194
+ if (!r) return;
195
+ let i = /* @__PURE__ */ new Map();
196
+ for (let e of t) i.set(e.id, e);
197
+ let a = [], o = /* @__PURE__ */ new Map();
198
+ for (let e of t) {
199
+ let t = typeof CSS < "u" && CSS.escape ? CSS.escape(e.id) : e.id, n = r.querySelector(`path[data-id="${t}"]`);
200
+ if (!n) continue;
201
+ o.set(e.id, n);
202
+ let i = x(n.getAttribute("data-points")) ?? e.points;
203
+ a.push({
204
+ ...e,
205
+ points: i
206
+ });
207
+ }
208
+ let s = u(a);
209
+ if (s.length === 0) return;
210
+ let c = /* @__PURE__ */ new Map();
211
+ for (let e of s) {
212
+ let t = c.get(e.jumpEdgeId) ?? [];
213
+ t.push(e), c.set(e.jumpEdgeId, t);
214
+ }
215
+ for (let e of a) {
216
+ let t = c.get(e.id);
217
+ if (!t || t.length === 0) continue;
218
+ let r = i.get(e.id)?.curve;
219
+ if (r !== void 0 && !b(r)) continue;
220
+ let a = o.get(e.id);
221
+ if (!a || r === void 0 && !y(a.getAttribute("d") ?? "")) continue;
222
+ let s = a.getAttribute("style") ?? "", l = /stroke-dasharray\s*:\s*0\s+([\d.]+)\s+[\d.]+\s+([\d.]+)/.exec(s), u = l ? Number.parseFloat(l[1]) : null, d = l ? Number.parseFloat(l[2]) : null, f = v(e, t, n);
223
+ if (a.setAttribute("d", f), u !== null && d !== null && typeof a.getTotalLength == "function") {
224
+ let e = a.getTotalLength(), t = `0 ${u} ${Math.max(0, e - u - d)} ${d}`, n = s.replace(/stroke-dasharray\s*:[^;]*;?/g, `stroke-dasharray: ${t};`).replace(/;\s*;+/g, ";");
225
+ a.setAttribute("style", n);
226
+ }
227
+ }
228
+ }
229
+ t(S, "applyLineJumpsToSvg");
230
+ function C(e, { measure: t }) {
231
+ let n = e.config?.swimlane?.lineHops;
232
+ if (n === !1) return;
233
+ let r = n === "gap" ? "gap" : "arc", i = e.edges.filter((e) => Array.isArray(e.points) && e.points.length >= 2).map((e) => ({
234
+ id: e.id,
235
+ points: e.points,
236
+ curve: e.curve,
237
+ arrowTypeStart: e.arrowTypeStart,
238
+ arrowTypeEnd: e.arrowTypeEnd
239
+ }));
240
+ S(t.groups.edgePaths, i, {
241
+ enabled: !0,
242
+ jumpRadius: 6,
243
+ jumpStyle: r
244
+ });
245
+ }
246
+ t(C, "applySwimlaneLineJumps");
247
+ var w = "__swimlane_default__", T = 21, E = 20;
248
+ function D(e) {
249
+ return Math.max(e.padding ?? E, E);
250
+ }
251
+ t(D, "topLaneHorizontalPadding");
252
+ function O(e) {
253
+ let { x: t, y: n, width: r, height: i } = e, a = e.swimlaneContentTop;
254
+ if (typeof t != "number" || typeof n != "number" || typeof r != "number" || typeof i != "number" || typeof a != "number" || !Number.isFinite(t) || !Number.isFinite(n) || !Number.isFinite(r) || !Number.isFinite(i) || !Number.isFinite(a) || r <= 0 || i <= 0) {
255
+ delete e.groupTitleRect;
256
+ return;
257
+ }
258
+ let o = n - i / 2, s = Math.min(a, n + i / 2), c = o + Math.min(T, Math.max(0, s - o));
259
+ if (c <= o) {
260
+ delete e.groupTitleRect;
261
+ return;
262
+ }
263
+ e.groupTitleRect = {
264
+ left: t - r / 2,
265
+ right: t + r / 2,
266
+ top: o,
267
+ bottom: c
268
+ };
269
+ }
270
+ t(O, "assignTopLaneTitleRect");
271
+ function k(e) {
272
+ let t = e.direction, n = e.nodes ??= [];
273
+ for (let n of e.nodes ?? []) n.isGroup && !n.parentId && (n.shape = "swimlane", t && (n.direction = t));
274
+ let r = n.filter((e) => !e.isGroup && !e.parentId);
275
+ if (r.length === 0) return;
276
+ let i = n.find((e) => e.id === w);
277
+ i ? i.isGroup && (i.shape = "swimlane", t && (i.direction = t)) : (i = {
278
+ id: w,
279
+ label: "",
280
+ isGroup: !0,
281
+ shape: "swimlane",
282
+ padding: 20,
283
+ ...t ? { direction: t } : {}
284
+ }, n.push(i));
285
+ for (let e of r) e.parentId = w;
286
+ }
287
+ t(k, "prepareLayoutForSwimlanes");
288
+ function A(e) {
289
+ let t = /* @__PURE__ */ new Map();
290
+ for (let n of e.nodes ?? []) t.set(n.id, n);
291
+ let n = [];
292
+ for (let t of e.edges ?? []) {
293
+ let e = typeof t.start == "string" ? t.start : void 0, r = typeof t.end == "string" ? t.end : void 0;
294
+ !e || !r || t.labelNodeId || n.push({
295
+ id: t.id,
296
+ src: e,
297
+ dst: r,
298
+ ref: t
299
+ });
300
+ }
301
+ let r = e.nodes ?? [], i = r.filter((e) => e.isGroup), a = r.filter((e) => !e.isGroup);
302
+ return {
303
+ nodes: [...[...i].reverse(), ...a].map((e) => e.id),
304
+ edges: n,
305
+ layout: e,
306
+ nodeById: t
307
+ };
308
+ }
309
+ t(A, "toGraphView");
310
+ function j(e, t, n, r) {
311
+ let { layout: i } = e, a = e.nodeById, o = r?.layerGap ?? 100, s = r?.nodeGap ?? 40, c = 0;
312
+ for (let e of t.layers) {
313
+ let t = 0;
314
+ for (let r of e) {
315
+ let e = a.get(r);
316
+ if (!e) {
317
+ t++;
318
+ continue;
319
+ }
320
+ e.layer = c, e.order = t;
321
+ let i = n.x[r] ?? t * s, l = n.y[r] ?? c * o;
322
+ e.x = i, e.y = l, t++;
323
+ }
324
+ c++;
325
+ }
326
+ let l = i.nodes ?? [], u = /* @__PURE__ */ new Map(), d = [];
327
+ for (let e of l) {
328
+ if (!e?.isGroup) continue;
329
+ e.parentId || d.push(e);
330
+ let t = l.filter((t) => t.parentId === e.id), r = Infinity, i = -Infinity, a = Infinity, o = -Infinity;
331
+ for (let e of t) {
332
+ let t = e.x ?? n.x[e.id], s = e.y ?? n.y[e.id], c = e.width ?? 0, l = e.height ?? 0;
333
+ t != null && s != null && (r = Math.min(r, t - c / 2), i = Math.max(i, t + c / 2), a = Math.min(a, s - l / 2), o = Math.max(o, s + l / 2));
334
+ }
335
+ if (r === Infinity || a === Infinity) e.x = e.x ?? 0, e.y = e.y ?? 0, e.width = e.width ?? 0, e.height = e.height ?? 0;
336
+ else {
337
+ let t = e.padding ?? 20, n = e.parentId ? t : 2 * D(e), s = t, c = Math.max(0, i - r) + n, l = Math.max(0, o - a) + s, d = (r + i) / 2, f = (a + o) / 2;
338
+ e.x = d, e.y = f, e.width = c, e.height = l, u.set(e.id, {
339
+ minX: r,
340
+ maxX: i,
341
+ minY: a,
342
+ maxY: o
343
+ });
344
+ }
345
+ }
346
+ if (d.length > 0 && u.size > 0) {
347
+ let e = Infinity, t = -Infinity, n = 0;
348
+ for (let r of d) {
349
+ let i = r.padding ?? 20;
350
+ i > n && (n = i);
351
+ let a = u.get(r.id);
352
+ a && (e = Math.min(e, a.minY), t = Math.max(t, a.maxY));
353
+ }
354
+ if (e !== Infinity && t !== -Infinity) {
355
+ let r = Math.max(0, t - e) + 2 * Math.max(n, 36), i = (e + t) / 2;
356
+ for (let t of d) t.y = i, t.height = r, t.swimlaneContentTop = e;
357
+ let a = [...d].sort((e, t) => (e.x ?? 0) - (t.x ?? 0)), o = [], s = [], c = [];
358
+ for (let e of a) {
359
+ let t = u.get(e.id);
360
+ if (!t) continue;
361
+ let n = Math.max(0, t.maxX - t.minX) + 2 * D(e), r = (t.minX + t.maxX) / 2;
362
+ o.push(e.id), s.push(r), c.push(n);
363
+ }
364
+ let l = o.length;
365
+ if (l > 0) {
366
+ let e = /* @__PURE__ */ new Map();
367
+ if (l === 1) e.set(o[0], c[0]);
368
+ else {
369
+ let t = [];
370
+ for (let e = 0; e < l - 1; e++) t.push(s[e + 1] - s[e]);
371
+ let n = Array(l);
372
+ n[0] = 0;
373
+ for (let e = 0; e < l - 1; e++) n[e + 1] = 2 * t[e] - n[e];
374
+ let r = 0, i = Infinity;
375
+ for (let e = 0; e < l; e++) {
376
+ let t = c[e];
377
+ e % 2 == 0 ? r = Math.max(r, t - n[e]) : i = Math.min(i, n[e] - t);
378
+ }
379
+ let a = r;
380
+ a = r <= i ? (r + i) / 2 : r;
381
+ for (let t = 0; t < l; t++) {
382
+ let r = n[t] + (t % 2 == 0 ? a : -a), i = Math.max(c[t], r);
383
+ e.set(o[t], i);
384
+ }
385
+ }
386
+ for (let t of d) {
387
+ let n = e.get(t.id);
388
+ n != null && (t.width = n), O(t);
389
+ }
390
+ }
391
+ }
392
+ }
393
+ }
394
+ t(j, "writeBackToLayoutData");
395
+ var ee = "[EdgeLabelNodes]";
396
+ function te(t) {
397
+ let n = [], r = [], i = /* @__PURE__ */ new Map();
398
+ for (let e of t.nodes) i.set(e.id, e);
399
+ for (let a of t.edges) {
400
+ if (!a.label || a.label.length === 0 || a.isLayoutOnly || a.labelNodeId) continue;
401
+ let t = a.start ? i.get(a.start) : void 0, o = a.end ? i.get(a.end) : void 0;
402
+ if (!t || !o) {
403
+ e.warn(ee, `Edge ${a.id} has missing source or target node`);
404
+ continue;
405
+ }
406
+ let s = `edge-label-${a.start}-${a.end}-${a.id}`, c = t.parentId === o.parentId ? t.parentId : o.parentId, l = {
407
+ id: s,
408
+ label: a.label,
409
+ edgeStart: a.start ?? "",
410
+ edgeEnd: a.end ?? "",
411
+ shape: "labelRect",
412
+ width: 0,
413
+ height: 0,
414
+ isEdgeLabel: !0,
415
+ isDummy: !0,
416
+ parentId: c,
417
+ isGroup: !1,
418
+ labelStyle: Array.isArray(a.labelStyle) ? a.labelStyle[0] : a.labelStyle ?? "",
419
+ ...t.dir ? { dir: t.dir } : {}
420
+ };
421
+ n.push(l), a.labelNodeId = s, a.label = void 0, a.text = void 0;
422
+ let u = {
423
+ id: `${a.id}-to-label`,
424
+ start: a.start,
425
+ end: s,
426
+ type: "normal",
427
+ isLayoutOnly: !0
428
+ }, d = {
429
+ id: `${a.id}-from-label`,
430
+ start: s,
431
+ end: a.end,
432
+ type: "normal",
433
+ isLayoutOnly: !0
434
+ };
435
+ r.push(u, d);
436
+ }
437
+ let a = [...t.nodes, ...n], o = [...t.edges, ...r];
438
+ return {
439
+ ...t,
440
+ nodes: a,
441
+ edges: o
442
+ };
443
+ }
444
+ t(te, "createEdgeLabelNodes");
445
+ var M = .001;
446
+ function ne(e) {
447
+ let t = e.x ?? 0, n = e.y ?? 0, r = e.width ?? 0, i = e.height ?? 0;
448
+ return r > 0 && i > 0 ? {
449
+ cx: t,
450
+ cy: n,
451
+ rect: se(t, n, r, i)
452
+ } : void 0;
453
+ }
454
+ t(ne, "measuredNodeRect");
455
+ function N(e) {
456
+ if (e.isGroup) return;
457
+ let t = ne(e);
458
+ if (t) return {
459
+ id: String(e.id ?? ""),
460
+ cx: t.cx,
461
+ cy: t.cy,
462
+ rect: t.rect
463
+ };
464
+ }
465
+ t(N, "nodeBoundsInfoFor");
466
+ function P(e, t, n = M) {
467
+ return Math.abs(e.x - t.x) < n && Math.abs(e.y - t.y) < n;
468
+ }
469
+ t(P, "samePoint");
470
+ function F(e, t, n = M) {
471
+ return Math.abs(e.x - t.x) < n;
472
+ }
473
+ t(F, "sameX");
474
+ function I(e, t, n = M) {
475
+ return Math.abs(e.y - t.y) < n;
476
+ }
477
+ t(I, "sameY");
478
+ function L(e, t, n = M) {
479
+ return I(e, t, n) && Math.abs(e.x - t.x) > n;
480
+ }
481
+ t(L, "isHorizontalSegment");
482
+ function R(e, t, n = M) {
483
+ return F(e, t, n) && Math.abs(e.y - t.y) > n;
484
+ }
485
+ t(R, "isVerticalSegment");
486
+ function z(e, t, n, r) {
487
+ return Math.max(0, Math.min(Math.max(e, t), Math.max(n, r)) - Math.max(Math.min(e, t), Math.min(n, r)));
488
+ }
489
+ t(z, "overlapLength");
490
+ function B(e, t, n = M) {
491
+ return e.horizontal && t.horizontal && I(e.a, t.a, n) ? z(e.a.x, e.b.x, t.a.x, t.b.x) : e.vertical && t.vertical && F(e.a, t.a, n) ? z(e.a.y, e.b.y, t.a.y, t.b.y) : 0;
492
+ }
493
+ t(B, "sameAxisSegmentOverlapLength");
494
+ function re(e, t = M) {
495
+ let n = [];
496
+ for (let r = 0; r < e.length - 1; r++) {
497
+ let i = e[r], a = e[r + 1], o = L(i, a, t), s = R(i, a, t);
498
+ (o || s) && n.push({
499
+ index: r,
500
+ a: i,
501
+ b: a,
502
+ horizontal: o,
503
+ vertical: s
504
+ });
505
+ }
506
+ return n;
507
+ }
508
+ t(re, "orthogonalSegmentsForPoints");
509
+ function V(e, t = M) {
510
+ let n = re(e, t), r = 0;
511
+ for (let e = 1; e < n.length; e++) n[e - 1].horizontal !== n[e].horizontal && r++;
512
+ return r;
513
+ }
514
+ t(V, "countOrthogonalBends");
515
+ function H(e, t = M) {
516
+ let n = [];
517
+ for (let r of e) {
518
+ let e = n.length > 0 ? n[n.length - 1] : void 0;
519
+ (!e || !P(e, r, t)) && n.push({
520
+ x: r.x,
521
+ y: r.y
522
+ });
523
+ }
524
+ return n;
525
+ }
526
+ t(H, "dedupeConsecutivePoints");
527
+ function ie(e, t = M) {
528
+ if (!e || e.length !== 4) return;
529
+ let [n, r, i, a] = e;
530
+ return L(n, r, t) && R(r, i, t) && L(i, a, t) ? {
531
+ kind: "HVH",
532
+ p0: n,
533
+ p1: r,
534
+ p2: i,
535
+ p3: a
536
+ } : R(n, r, t) && L(r, i, t) && R(i, a, t) ? {
537
+ kind: "VHV",
538
+ p0: n,
539
+ p1: r,
540
+ p2: i,
541
+ p3: a
542
+ } : void 0;
543
+ }
544
+ t(ie, "classifyThreeSegmentRoute");
545
+ function ae(e, t, n, r = 0) {
546
+ let i = Math.min(e.x, t.x), a = Math.max(e.x, t.x), o = Math.min(e.y, t.y), s = Math.max(e.y, t.y);
547
+ return a > n.left - r && i < n.right + r && s > n.top - r && o < n.bottom + r;
548
+ }
549
+ t(ae, "segmentBoundsOverlapRect");
550
+ function U(e, t, n = 0) {
551
+ return e.x > t.left + n && e.x < t.right - n && e.y > t.top + n && e.y < t.bottom - n;
552
+ }
553
+ t(U, "pointInsideRect");
554
+ function W(e, t) {
555
+ return e.left <= t.left && e.right >= t.right && e.top <= t.top && e.bottom >= t.bottom;
556
+ }
557
+ t(W, "rectContainsRect");
558
+ function G(e, t) {
559
+ return e.left < t.right && e.right > t.left && e.top < t.bottom && e.bottom > t.top;
560
+ }
561
+ t(G, "rectsOverlap");
562
+ function oe(e, t) {
563
+ return {
564
+ left: e.left - t,
565
+ right: e.right + t,
566
+ top: e.top - t,
567
+ bottom: e.bottom + t
568
+ };
569
+ }
570
+ t(oe, "inflateRect");
571
+ function se(e, t, n, r) {
572
+ return {
573
+ left: e - n / 2,
574
+ right: e + n / 2,
575
+ top: t - r / 2,
576
+ bottom: t + r / 2
577
+ };
578
+ }
579
+ t(se, "rectFromCenterSize");
580
+ function K(e) {
581
+ return ne(e)?.rect;
582
+ }
583
+ t(K, "rectOfNodeBounds");
584
+ function ce(e, t) {
585
+ switch (t) {
586
+ case "top": return {
587
+ x: e.cx,
588
+ y: e.rect.top
589
+ };
590
+ case "bottom": return {
591
+ x: e.cx,
592
+ y: e.rect.bottom
593
+ };
594
+ case "left": return {
595
+ x: e.rect.left,
596
+ y: e.cy
597
+ };
598
+ case "right": return {
599
+ x: e.rect.right,
600
+ y: e.cy
601
+ };
602
+ }
603
+ }
604
+ t(ce, "portForRectSide");
605
+ function le(e, t, n, r, i, a = M) {
606
+ let o = t === "left" || t === "right", s = r === "left" || r === "right";
607
+ if (o && s) {
608
+ if (t === "right" && r === "left" && e.x < n.x || t === "left" && r === "right" && e.x > n.x) {
609
+ if (I(e, n, a)) return [e, n];
610
+ let t = (e.x + n.x) / 2;
611
+ return [
612
+ e,
613
+ {
614
+ x: t,
615
+ y: e.y
616
+ },
617
+ {
618
+ x: t,
619
+ y: n.y
620
+ },
621
+ n
622
+ ];
623
+ }
624
+ if (t === r) {
625
+ if (I(e, n, a)) return;
626
+ let r = t === "left" ? Math.min(e.x, n.x) - i : Math.max(e.x, n.x) + i;
627
+ return [
628
+ e,
629
+ {
630
+ x: r,
631
+ y: e.y
632
+ },
633
+ {
634
+ x: r,
635
+ y: n.y
636
+ },
637
+ n
638
+ ];
639
+ }
640
+ return;
641
+ }
642
+ if (!o && !s) {
643
+ if (t === r) {
644
+ if (F(e, n, a)) return;
645
+ let r = t === "top" ? Math.min(e.y, n.y) - i : Math.max(e.y, n.y) + i;
646
+ return [
647
+ e,
648
+ {
649
+ x: e.x,
650
+ y: r
651
+ },
652
+ {
653
+ x: n.x,
654
+ y: r
655
+ },
656
+ n
657
+ ];
658
+ }
659
+ if (!(t === "bottom" && r === "top" && e.y < n.y || t === "top" && r === "bottom" && e.y > n.y)) return;
660
+ if (F(e, n, a)) return [e, n];
661
+ let o = (e.y + n.y) / 2;
662
+ return [
663
+ e,
664
+ {
665
+ x: e.x,
666
+ y: o
667
+ },
668
+ {
669
+ x: n.x,
670
+ y: o
671
+ },
672
+ n
673
+ ];
674
+ }
675
+ if (o && !s) {
676
+ let i = t === "right" && n.x > e.x || t === "left" && n.x < e.x, a = r === "top" && e.y < n.y || r === "bottom" && e.y > n.y;
677
+ return i && a ? [
678
+ e,
679
+ {
680
+ x: n.x,
681
+ y: e.y
682
+ },
683
+ n
684
+ ] : void 0;
685
+ }
686
+ let c = t === "bottom" && n.y > e.y || t === "top" && n.y < e.y, l = r === "left" && e.x < n.x || r === "right" && e.x > n.x;
687
+ return c && l ? [
688
+ e,
689
+ {
690
+ x: e.x,
691
+ y: n.y
692
+ },
693
+ n
694
+ ] : void 0;
695
+ }
696
+ t(le, "buildOrthogonalPortPath");
697
+ function ue(e, t, n, r) {
698
+ return t === "left" || t === "right" ? [
699
+ e,
700
+ {
701
+ x: r,
702
+ y: e.y
703
+ },
704
+ {
705
+ x: r,
706
+ y: n.y
707
+ },
708
+ n
709
+ ] : [
710
+ e,
711
+ {
712
+ x: e.x,
713
+ y: r
714
+ },
715
+ {
716
+ x: n.x,
717
+ y: r
718
+ },
719
+ n
720
+ ];
721
+ }
722
+ t(ue, "buildSameSideTrackPath");
723
+ function de(e) {
724
+ let t = /* @__PURE__ */ new Map(), n = [];
725
+ for (let r of e) {
726
+ if (r.isEdgeLabel) continue;
727
+ let e = N(r);
728
+ e && (t.set(e.id, e), n.push({
729
+ id: e.id,
730
+ rect: e.rect
731
+ }));
732
+ }
733
+ return {
734
+ nodeInfoById: t,
735
+ realNodeRects: n
736
+ };
737
+ }
738
+ t(de, "collectRealNodeBounds");
739
+ function q(e) {
740
+ let t = [], n = [];
741
+ for (let r of e) {
742
+ let e = N(r);
743
+ if (!e) continue;
744
+ let i = {
745
+ id: e.id,
746
+ rect: e.rect
747
+ };
748
+ r.isEdgeLabel ? n.push(i) : t.push(i);
749
+ }
750
+ return {
751
+ realNodeRects: t,
752
+ labelNodeRects: n
753
+ };
754
+ }
755
+ t(q, "collectNodeRectEntries");
756
+ function fe(e, { includeEdgeLabels: t = !0 } = {}) {
757
+ let n = [];
758
+ for (let r of e) {
759
+ if (r.isGroup || !t && r.isEdgeLabel) continue;
760
+ let e = r.x ?? 0, i = r.y ?? 0, a = r.width ?? 0, o = r.height ?? 0;
761
+ n.push({
762
+ nodeId: r.id,
763
+ ...se(e, i, a, o)
764
+ });
765
+ }
766
+ return n;
767
+ }
768
+ t(fe, "collectLayoutNodeRects");
769
+ function pe(e, t, n = M) {
770
+ let r = e.start, i = e.end;
771
+ if (!r || !i) return;
772
+ let a = t.get(r), o = t.get(i);
773
+ if (!(!a || !o)) return {
774
+ srcId: r,
775
+ dstId: i,
776
+ srcInfo: a,
777
+ dstInfo: o,
778
+ collinearX: Math.abs(a.cx - o.cx) < n,
779
+ collinearY: Math.abs(a.cy - o.cy) < n
780
+ };
781
+ }
782
+ t(pe, "getNodePairGeometry");
783
+ function J(e, t, n, r = [], i = 0) {
784
+ for (let a of n) if (!r.includes(a.id) && ae(e, t, a.rect, -i)) return !0;
785
+ return !1;
786
+ }
787
+ t(J, "segmentHitsAnyRect");
788
+ function me(e, t, n, r, i = M, a = 1e-6) {
789
+ let o = I(e, t, i), s = F(e, t, i), c = I(n, r, i), l = F(n, r, i);
790
+ if (o && c || s && l || !(o || s) || !(c || l)) return !1;
791
+ let u = o ? {
792
+ a: e,
793
+ b: t
794
+ } : {
795
+ a: n,
796
+ b: r
797
+ }, d = s ? {
798
+ a: e,
799
+ b: t
800
+ } : {
801
+ a: n,
802
+ b: r
803
+ }, f = u.a.y, p = Math.min(u.a.x, u.b.x), m = Math.max(u.a.x, u.b.x), h = d.a.x, g = Math.min(d.a.y, d.b.y), _ = Math.max(d.a.y, d.b.y);
804
+ if (h < p || h > m || f < g || f > _) return !1;
805
+ let v = Math.abs(h - u.a.x) < a && Math.abs(f - u.a.y) < a || Math.abs(h - u.b.x) < a && Math.abs(f - u.b.y) < a, y = Math.abs(h - d.a.x) < a && Math.abs(f - d.a.y) < a || Math.abs(h - d.b.x) < a && Math.abs(f - d.b.y) < a;
806
+ return !(v && y);
807
+ }
808
+ t(me, "orthogonalSegmentsCross");
809
+ function he(e, t, n, r, i = M) {
810
+ let a = I(e, t, i), o = F(e, t, i), s = I(n, r, i), c = F(n, r, i);
811
+ return o && c && F(e, n, i) ? z(e.y, t.y, n.y, r.y) > i : a && s && I(e, n, i) ? z(e.x, t.x, n.x, r.x) > i : !1;
812
+ }
813
+ t(he, "sameAxisSegmentsOverlap");
814
+ function ge(e, t, n, r, { epsilon: i = M, skipDegenerateOther: a = !1 } = {}) {
815
+ for (let o of n) {
816
+ if (o === r || o.isLayoutOnly) continue;
817
+ let n = o.points;
818
+ if (!(!n || n.length < 2)) for (let r = 0; r < n.length - 1; r++) {
819
+ let o = n[r], s = n[r + 1];
820
+ if (!(a && P(o, s, i)) && (me(e, t, o, s, i) || he(e, t, o, s, i))) return !0;
821
+ }
822
+ }
823
+ return !1;
824
+ }
825
+ t(ge, "segmentConflictsWithAnyEdge");
826
+ function _e(e, t, n, r, i = M) {
827
+ let a = I(e, t, i), o = F(e, t, i), s = I(n, r, i), c = F(n, r, i);
828
+ if (!(a && c || o && s)) return !1;
829
+ let l = a ? {
830
+ a: e,
831
+ b: t
832
+ } : {
833
+ a: n,
834
+ b: r
835
+ }, u = a ? {
836
+ a: n,
837
+ b: r
838
+ } : {
839
+ a: e,
840
+ b: t
841
+ }, d = l.a.y, f = Math.min(l.a.x, l.b.x), p = Math.max(l.a.x, l.b.x), m = u.a.x, h = Math.min(u.a.y, u.b.y), g = Math.max(u.a.y, u.b.y);
842
+ return m > f + i && m < p - i && d > h + i && d < g - i;
843
+ }
844
+ t(_e, "orthogonalSegmentsStrictlyCross");
845
+ function ve(e, t, n) {
846
+ let r = Math.min(t, n), i = Math.max(t, n);
847
+ return e > r + M && e < i - M;
848
+ }
849
+ t(ve, "strictlyBetween");
850
+ function ye(e, t, n) {
851
+ return F(e, t) && F(t, n) ? ve(t.y, e.y, n.y) : I(e, t) && I(t, n) ? ve(t.x, e.x, n.x) : !1;
852
+ }
853
+ t(ye, "isCollinearIntermediate");
854
+ function be(e) {
855
+ let t = !1, n = [];
856
+ for (let r = 0; r < e.length; r++) {
857
+ let i = n[n.length - 1], a = e[r], o = r + 1 < e.length ? e[r + 1] : void 0;
858
+ if (i && o) {
859
+ if (P(i, o)) {
860
+ r++, t = !0;
861
+ continue;
862
+ }
863
+ if (ye(i, a, o)) {
864
+ t = !0;
865
+ continue;
866
+ }
867
+ }
868
+ n.push(a);
869
+ }
870
+ return {
871
+ points: n,
872
+ changed: t
873
+ };
874
+ }
875
+ t(be, "simplifyPolylineOnce");
876
+ function xe(e) {
877
+ let t = [e[0]];
878
+ for (let n = 1; n < e.length; n++) {
879
+ let r = t[t.length - 1], i = e[n];
880
+ if (!F(r, i) && !I(r, i)) {
881
+ let e = t.length >= 2 ? t[t.length - 2] : void 0, n = e && F(e, r) ? {
882
+ x: r.x,
883
+ y: i.y
884
+ } : {
885
+ x: i.x,
886
+ y: r.y
887
+ };
888
+ t.push(n);
889
+ }
890
+ t.push(i);
891
+ }
892
+ let n = [];
893
+ for (let e of t) {
894
+ let t = n[n.length - 1];
895
+ (!t || !P(t, e)) && n.push(e);
896
+ }
897
+ return n;
898
+ }
899
+ t(xe, "orthogonalizePolyline");
900
+ function Se(e) {
901
+ if (e.length < 3) return e;
902
+ let t = [...e];
903
+ for (let e = 0; e < 32; e++) {
904
+ let e = be(t);
905
+ if (t = e.points, !e.changed) break;
906
+ }
907
+ return t;
908
+ }
909
+ t(Se, "simplifyPolyline");
910
+ var Y = .001, Ce = .5, we = 4;
911
+ function Te(e, t, n) {
912
+ let r = e;
913
+ if (r.isLayoutOnly || !r.points || r.points.length < n) return;
914
+ let i = r.start ? t.get(r.start) : void 0, a = r.end ? t.get(r.end) : void 0;
915
+ return {
916
+ edge: r,
917
+ points: r.points,
918
+ srcRect: i ? K(i) : void 0,
919
+ dstRect: a ? K(a) : void 0
920
+ };
921
+ }
922
+ t(Te, "endpointContextFor");
923
+ function Ee(e, t, n) {
924
+ if (I(e, t, Y)) return {
925
+ x: e.x < n.left ? n.left : n.right,
926
+ y: e.y
927
+ };
928
+ if (F(e, t, Y)) {
929
+ let t = e.y < n.top ? n.top : n.bottom;
930
+ return {
931
+ x: e.x,
932
+ y: t
933
+ };
934
+ }
935
+ return {
936
+ x: Math.min(n.right, Math.max(n.left, e.x)),
937
+ y: Math.min(n.bottom, Math.max(n.top, e.y))
938
+ };
939
+ }
940
+ t(Ee, "segmentEnterPoint");
941
+ function De(e, t, n) {
942
+ let r = n ? 1 : -1, i = n ? 0 : e.length - 1;
943
+ for (; i >= 0 && i < e.length && U(e[i], t, Ce);) i += r;
944
+ if (i < 0 || i >= e.length) return e;
945
+ let a = i - r;
946
+ if (a < 0 || a >= e.length) return e;
947
+ let o = Ee(e[i], e[a], t);
948
+ return n ? [o, ...e.slice(i)] : [...e.slice(0, i + 1), o];
949
+ }
950
+ t(De, "clipEndpoint");
951
+ function Oe(e, t) {
952
+ for (let n of e) {
953
+ let e = Te(n, t, 2);
954
+ if (!e) continue;
955
+ let r = [...e.points];
956
+ e.srcRect && (r = De(r, e.srcRect, !0)), e.dstRect && (r = De(r, e.dstRect, !1)), r = Se(xe(r)), r = ze(r, e.srcRect, e.dstRect), e.edge.points = Se(xe(r));
957
+ }
958
+ }
959
+ t(Oe, "clipEdgeEndpointsToNodeBoundaries");
960
+ function ke(e, t, n, r = !1) {
961
+ if (I(e, t, Y)) {
962
+ if (t.y < n.top - Y || t.y > n.bottom + Y) return t;
963
+ if (r) {
964
+ if (e.x < n.left - Y) return {
965
+ x: n.left,
966
+ y: e.y
967
+ };
968
+ if (e.x > n.right + Y) return {
969
+ x: n.right,
970
+ y: e.y
971
+ };
972
+ }
973
+ return {
974
+ x: Math.abs(t.x - n.left) <= Math.abs(t.x - n.right) ? n.left : n.right,
975
+ y: e.y
976
+ };
977
+ }
978
+ if (F(e, t, Y)) {
979
+ if (t.x < n.left - Y || t.x > n.right + Y) return t;
980
+ if (r) {
981
+ if (e.y < n.top - Y) return {
982
+ x: e.x,
983
+ y: n.top
984
+ };
985
+ if (e.y > n.bottom + Y) return {
986
+ x: e.x,
987
+ y: n.bottom
988
+ };
989
+ }
990
+ let i = Math.abs(t.y - n.top) <= Math.abs(t.y - n.bottom);
991
+ return {
992
+ x: e.x,
993
+ y: i ? n.top : n.bottom
994
+ };
995
+ }
996
+ return t;
997
+ }
998
+ t(ke, "snapEndpointToBoundary");
999
+ function Ae(e, t, n) {
1000
+ let r = e[t];
1001
+ for (let i = t + n; i >= 0 && i < e.length; i += n) {
1002
+ let t = e[i];
1003
+ if (!P(t, r, Y)) return t;
1004
+ }
1005
+ return e[t + n];
1006
+ }
1007
+ t(Ae, "firstDistinctAdjacent");
1008
+ function je(e, t) {
1009
+ let n = e + we, r = t - we;
1010
+ return n <= r ? {
1011
+ lo: n,
1012
+ hi: r
1013
+ } : {
1014
+ lo: (e + t) / 2,
1015
+ hi: (e + t) / 2
1016
+ };
1017
+ }
1018
+ t(je, "cornerClearanceRange");
1019
+ function Me(e, t, n) {
1020
+ let { lo: r, hi: i } = je(t, n);
1021
+ return Math.min(i, Math.max(r, e));
1022
+ }
1023
+ t(Me, "clampToCornerClearance");
1024
+ function Ne(e) {
1025
+ let t = Math.max(...e.map((e) => e.lo)), n = Math.min(...e.map((e) => e.hi));
1026
+ if (!(t > n)) return {
1027
+ lo: t,
1028
+ hi: n
1029
+ };
1030
+ }
1031
+ t(Ne, "intersectRanges");
1032
+ function Pe(e, t) {
1033
+ return t === "left" || t === "right" ? je(e.top, e.bottom) : je(e.left, e.right);
1034
+ }
1035
+ t(Pe, "clearanceRangeForSide");
1036
+ function Fe(e, t, n) {
1037
+ let r = e.y >= n.top - Y && e.y <= n.bottom + Y, i = e.x >= n.left - Y && e.x <= n.right + Y;
1038
+ if (I(e, t, Y) && r) {
1039
+ if (Math.abs(e.x - n.left) < Y) return "left";
1040
+ if (Math.abs(e.x - n.right) < Y) return "right";
1041
+ }
1042
+ if (F(e, t, Y) && i) {
1043
+ if (Math.abs(e.y - n.top) < Y) return "top";
1044
+ if (Math.abs(e.y - n.bottom) < Y) return "bottom";
1045
+ }
1046
+ }
1047
+ t(Fe, "terminalSideForSegment");
1048
+ function Ie(e) {
1049
+ return e === "left" || e === "right";
1050
+ }
1051
+ t(Ie, "isHorizontalSide");
1052
+ function Le(e, t, n, r, i) {
1053
+ let a = [], o = n ? Fe(e, t, n) : void 0, s = r ? Fe(t, e, r) : void 0;
1054
+ return n && o && Ie(o) === i && a.push(Pe(n, o)), r && s && Ie(s) === i && a.push(Pe(r, s)), a.length > 0 ? Ne(a) : void 0;
1055
+ }
1056
+ t(Le, "straightClearanceRange");
1057
+ function Re(e, t, n, r, i) {
1058
+ let a = Le(e, t, n, r, i);
1059
+ if (!a) return;
1060
+ let o = i ? e.y : e.x, s = Math.min(a.hi, Math.max(a.lo, o));
1061
+ if (!(Math.abs(s - o) < Y)) return i ? [{
1062
+ x: e.x,
1063
+ y: s
1064
+ }, {
1065
+ x: t.x,
1066
+ y: s
1067
+ }] : [{
1068
+ x: s,
1069
+ y: e.y
1070
+ }, {
1071
+ x: s,
1072
+ y: t.y
1073
+ }];
1074
+ }
1075
+ t(Re, "clearStraightEndpointCornerAxis");
1076
+ function ze(e, t, n) {
1077
+ if (e.length !== 2) return e;
1078
+ let [r, i] = e;
1079
+ return I(r, i, Y) ? Re(r, i, t, n, !0) ?? e : F(r, i, Y) ? Re(r, i, t, n, !1) ?? e : e;
1080
+ }
1081
+ t(ze, "clearStraightEndpointCornerConnections");
1082
+ function Be(e, t, n) {
1083
+ return Ie(n) ? {
1084
+ x: e.x,
1085
+ y: Me(e.y, t.top, t.bottom)
1086
+ } : {
1087
+ x: Me(e.x, t.left, t.right),
1088
+ y: e.y
1089
+ };
1090
+ }
1091
+ t(Be, "cornerClearedEndpoint");
1092
+ function Ve(e, t, n, r, i, a) {
1093
+ let o = e.map((e) => ({ ...e }));
1094
+ for (let s = t; s >= 0 && s < e.length; s += n) {
1095
+ let t = e[s];
1096
+ if (a && !I(t, r, Y) || !a && !F(t, r, Y)) break;
1097
+ a ? o[s].y = i.y : o[s].x = i.x;
1098
+ }
1099
+ return o;
1100
+ }
1101
+ t(Ve, "moveCollinearEndpointRun");
1102
+ function He(e, t, n) {
1103
+ if (e.length < 2) return e;
1104
+ let r = n ? 0 : e.length - 1, i = n ? 1 : -1, a = e[r], o = Ae(e, r, i);
1105
+ if (!o) return e;
1106
+ let s = Fe(a, o, t);
1107
+ if (!s) return e;
1108
+ let c = Ie(s), l = Be(a, t, s);
1109
+ return P(a, l, Y) ? e : Ve(e, r, i, a, l, c);
1110
+ }
1111
+ t(He, "clearEndpointCornerConnection");
1112
+ function Ue(e, t, n) {
1113
+ let r = Math.min(e.x, t.x) >= n.left - Y && Math.max(e.x, t.x) <= n.right + Y, i = Math.min(e.y, t.y) >= n.top - Y && Math.max(e.y, t.y) <= n.bottom + Y;
1114
+ if (Math.abs(e.y - n.top) < Y && Math.abs(t.y - n.top) < Y && r) return "top";
1115
+ if (Math.abs(e.y - n.bottom) < Y && Math.abs(t.y - n.bottom) < Y && r) return "bottom";
1116
+ if (Math.abs(e.x - n.left) < Y && Math.abs(t.x - n.left) < Y && i) return "left";
1117
+ if (Math.abs(e.x - n.right) < Y && Math.abs(t.x - n.right) < Y && i) return "right";
1118
+ }
1119
+ t(Ue, "borderSideForSegment");
1120
+ function We(e, t, n, r) {
1121
+ switch (e) {
1122
+ case "top": return F(t, n, Y) && n.y < r.top - Y;
1123
+ case "bottom": return F(t, n, Y) && n.y > r.bottom + Y;
1124
+ case "left": return I(t, n, Y) && n.x < r.left - Y;
1125
+ case "right": return I(t, n, Y) && n.x > r.right + Y;
1126
+ }
1127
+ }
1128
+ t(We, "leavesOutward");
1129
+ function Ge(e, t, n) {
1130
+ if (e.length < 3) return e;
1131
+ if (n) {
1132
+ let n = Ue(e[0], e[1], t);
1133
+ return n && We(n, e[1], e[2], t) ? e.slice(1) : e;
1134
+ }
1135
+ let r = e.length - 1, i = Ue(e[r - 1], e[r], t);
1136
+ return i && We(i, e[r - 1], e[r - 2], t) ? e.slice(0, r) : e;
1137
+ }
1138
+ t(Ge, "collapseOwnBorderStub");
1139
+ function Ke(e, t, n) {
1140
+ let r = e;
1141
+ if (t) {
1142
+ let e = Ae(r, 0, 1);
1143
+ if (e) {
1144
+ let n = ke(e, r[0], t);
1145
+ n !== r[0] && (r = [n, ...r.slice(1)]);
1146
+ }
1147
+ r = Ge(r, t, !0);
1148
+ }
1149
+ if (n) {
1150
+ let e = r.length - 1, t = Ae(r, e, -1);
1151
+ if (t) {
1152
+ let i = ke(t, r[e], n, !0);
1153
+ i !== r[e] && (r = [...r.slice(0, e), i]);
1154
+ }
1155
+ r = Ge(r, n, !1);
1156
+ }
1157
+ let i = ze(r, t, n);
1158
+ return i !== r || r.length === 2 ? i : (t && (r = He(r, t, !0)), n && (r = He(r, n, !1)), r);
1159
+ }
1160
+ t(Ke, "snapAndCollapseEndpoints");
1161
+ function qe(e, t) {
1162
+ for (let n of e) {
1163
+ let e = Te(n, t, 2);
1164
+ if (!e) continue;
1165
+ let r = Ke(H(e.points, Y), e.srcRect, e.dstRect);
1166
+ if (r.length < 3) {
1167
+ e.edge.points = r;
1168
+ continue;
1169
+ }
1170
+ let i = [
1171
+ r[0],
1172
+ { ...r[0] },
1173
+ ...r.slice(1, -1),
1174
+ r[r.length - 1],
1175
+ { ...r[r.length - 1] }
1176
+ ];
1177
+ e.edge.points = i;
1178
+ }
1179
+ }
1180
+ t(qe, "prepareEdgeEndpointsForRenderer");
1181
+ function Je(e) {
1182
+ return new Map(e.map((e) => [e.id, e]));
1183
+ }
1184
+ t(Je, "buildNodeMap");
1185
+ function Ye(e, t) {
1186
+ let n = e.parentId, r = null;
1187
+ for (; n;) {
1188
+ let e = t.get(n);
1189
+ if (!e?.isGroup) break;
1190
+ r = e.id, n = e.parentId;
1191
+ }
1192
+ return r;
1193
+ }
1194
+ t(Ye, "resolveTopLevelGroupId");
1195
+ function Xe(e, t) {
1196
+ let n = 0, r = e.parentId;
1197
+ for (; r;) {
1198
+ let e = t.get(r);
1199
+ if (!e?.isGroup) break;
1200
+ n++, r = e.parentId;
1201
+ }
1202
+ return n;
1203
+ }
1204
+ t(Xe, "groupDepth");
1205
+ function Ze(e) {
1206
+ let t = Infinity, n = -Infinity, r = Infinity, i = -Infinity;
1207
+ for (let a of e) {
1208
+ let e = a.x, o = a.y;
1209
+ if (typeof e != "number" || typeof o != "number") continue;
1210
+ let s = a.width ?? 0, c = a.height ?? 0;
1211
+ t = Math.min(t, e - s / 2), n = Math.max(n, e + s / 2), r = Math.min(r, o - c / 2), i = Math.max(i, o + c / 2);
1212
+ }
1213
+ return t === Infinity || r === Infinity ? null : {
1214
+ minX: t,
1215
+ maxX: n,
1216
+ minY: r,
1217
+ maxY: i
1218
+ };
1219
+ }
1220
+ t(Ze, "boundsForChildren");
1221
+ function Qe(e, t) {
1222
+ let n = e.padding ?? 20;
1223
+ e.x = (t.minX + t.maxX) / 2, e.y = (t.minY + t.maxY) / 2, e.width = Math.max(0, t.maxX - t.minX) + n, e.height = Math.max(0, t.maxY - t.minY) + n;
1224
+ }
1225
+ t(Qe, "applyGroupBounds");
1226
+ function $e(e) {
1227
+ let t = Je(e), n = e.filter((e) => e.isGroup && e.parentId).sort((e, n) => Xe(n, t) - Xe(e, t));
1228
+ for (let t of n) {
1229
+ let n = Ze(e.filter((e) => e.parentId === t.id));
1230
+ n && Qe(t, n);
1231
+ }
1232
+ }
1233
+ t($e, "recomputeNestedGroupBounds");
1234
+ function et(e, n) {
1235
+ let r = e.nodes ?? [], i = e.edges ?? [], a = r.filter((e) => !e.isGroup), o = Infinity, s = -Infinity;
1236
+ for (let e of a) {
1237
+ let t = e[n];
1238
+ typeof t == "number" && (o = Math.min(o, t), s = Math.max(s, t));
1239
+ }
1240
+ if (!Number.isFinite(o) || !Number.isFinite(s)) return !1;
1241
+ let c = /* @__PURE__ */ t((e) => o + s - e, "mirror");
1242
+ for (let e of r) {
1243
+ let t = e[n];
1244
+ typeof t == "number" && (e[n] = c(t));
1245
+ let r = e.groupTitleRect;
1246
+ r && (e.groupTitleRect = n === "x" ? {
1247
+ ...r,
1248
+ left: c(r.right),
1249
+ right: c(r.left)
1250
+ } : {
1251
+ ...r,
1252
+ top: c(r.bottom),
1253
+ bottom: c(r.top)
1254
+ });
1255
+ }
1256
+ for (let e of i) for (let t of e.points ?? []) t[n] = c(t[n]);
1257
+ return !0;
1258
+ }
1259
+ t(et, "mirrorAxis");
1260
+ function tt(e) {
1261
+ return (e.nodes ?? []).some((e) => !e.isGroup) ? et(e, "y") : !0;
1262
+ }
1263
+ t(tt, "applyBtDirectionTransform");
1264
+ function nt(e, t = "LR") {
1265
+ let n = e.nodes ?? [], r = e.edges ?? [], i = n.filter((e) => !e.isGroup), a = Infinity, o = Infinity;
1266
+ for (let e of i) {
1267
+ let t = e.x ?? 0, n = e.y ?? 0;
1268
+ t < a && (a = t), n < o && (o = n);
1269
+ }
1270
+ if (!Number.isFinite(a) || !Number.isFinite(o)) return !1;
1271
+ let s = 0, c = 0;
1272
+ for (let e of i) s += e.width ?? 0, c += e.height ?? 0;
1273
+ let l = s / i.length, u = c / i.length, d = u > 0 ? Math.max(1, l / u) : 1;
1274
+ for (let e of i) {
1275
+ let t = e.x ?? 0, n = ((e.y ?? 0) - o) * d + 36, r = t - a;
1276
+ e.x = n, e.y = r;
1277
+ }
1278
+ for (let e of r) if (e.points) for (let t of e.points) {
1279
+ let e = t.x, n = (t.y - o) * d + 36, r = e - a;
1280
+ t.x = n, t.y = r;
1281
+ }
1282
+ $e(n);
1283
+ let f = n.filter((e) => e.isGroup && !e.parentId);
1284
+ if (f.length === 0) return t === "RL" && et(e, "x"), !0;
1285
+ let p = Je(n), m = /* @__PURE__ */ new Map();
1286
+ for (let e of n) {
1287
+ if (e.isGroup) continue;
1288
+ let t = Ye(e, p);
1289
+ if (!t) continue;
1290
+ let n = m.get(t) ?? [];
1291
+ n.push(e), m.set(t, n);
1292
+ }
1293
+ let h = 0;
1294
+ for (let e of f) {
1295
+ let t = e.padding ?? 0;
1296
+ t > h && (h = t);
1297
+ }
1298
+ let g = [], _ = Infinity, v = -Infinity;
1299
+ for (let e of f) {
1300
+ let t = Ze(m.get(e.id) ?? []);
1301
+ t && (_ = Math.min(_, t.minX), v = Math.max(v, t.maxX), g.push({
1302
+ lane: e,
1303
+ contentTop: t.minY,
1304
+ contentBottom: t.maxY,
1305
+ centerY: (t.minY + t.maxY) / 2
1306
+ }));
1307
+ }
1308
+ if (_ === Infinity || v === -Infinity) return !0;
1309
+ let y = Math.max(0, v - _) + 2 * Math.max(h, 10), b = 36 + y, x = (_ + v) / 2 - y / 2 - 36, S = x + b / 2, C = Math.max(h, 36);
1310
+ g.sort((e, t) => e.centerY - t.centerY);
1311
+ for (let e = 0; e < g.length; e++) {
1312
+ let t = g[e], n, r;
1313
+ if (n = e === 0 ? t.contentTop - C : (g[e - 1].contentBottom + t.contentTop) / 2, e === g.length - 1) r = t.contentBottom + C;
1314
+ else {
1315
+ let n = g[e + 1];
1316
+ r = (t.contentBottom + n.contentTop) / 2;
1317
+ }
1318
+ let i = Math.max(0, r - n), a = (n + r) / 2;
1319
+ t.lane.x = S, t.lane.y = a, t.lane.width = b, t.lane.height = i, t.lane.swimlaneContentTop = t.contentTop, t.lane.groupTitleRect = {
1320
+ left: x,
1321
+ right: x + 36,
1322
+ top: n,
1323
+ bottom: r
1324
+ };
1325
+ }
1326
+ return t === "RL" && et(e, "x"), !0;
1327
+ }
1328
+ t(nt, "applyLrDirectionTransform");
1329
+ var rt = 1e-6, it = 8, at = [
1330
+ 0,
1331
+ it,
1332
+ -it,
1333
+ 2 * it,
1334
+ -2 * it
1335
+ ];
1336
+ function ot(e, t) {
1337
+ let { nodeInfoById: n, realNodeRects: r } = de(t);
1338
+ for (let t of e) {
1339
+ if (t.isLayoutOnly) continue;
1340
+ let i = t.points;
1341
+ if (!i || i.length < 4) continue;
1342
+ let a = ie(H(i, rt), rt);
1343
+ if (!a) continue;
1344
+ let { p3: o } = a, s = a.kind === "HVH", c = pe(t, n, rt);
1345
+ if (!c) continue;
1346
+ let { srcId: l, dstId: u, srcInfo: d, dstInfo: f, collinearX: p, collinearY: m } = c;
1347
+ if (p || m) continue;
1348
+ let h, g = d.rect;
1349
+ for (let n of at) {
1350
+ let i, a, c;
1351
+ if (s) {
1352
+ let e = f.cy > d.cy ? g.bottom : g.top, t = d.cx + n;
1353
+ if (t <= g.left + rt || t >= g.right - rt) continue;
1354
+ i = {
1355
+ x: t,
1356
+ y: e
1357
+ }, a = {
1358
+ x: t,
1359
+ y: o.y
1360
+ }, c = {
1361
+ x: o.x,
1362
+ y: o.y
1363
+ };
1364
+ } else {
1365
+ let e = f.cx > d.cx ? g.right : g.left, t = d.cy + n;
1366
+ if (t <= g.top + rt || t >= g.bottom - rt) continue;
1367
+ i = {
1368
+ x: e,
1369
+ y: t
1370
+ }, a = {
1371
+ x: o.x,
1372
+ y: t
1373
+ }, c = {
1374
+ x: o.x,
1375
+ y: o.y
1376
+ };
1377
+ }
1378
+ let p = P(i, a, rt), m = P(a, c, rt);
1379
+ if (p && m || !p && J(i, a, r, [l], 1) || !m && J(a, c, r, [u], 1)) continue;
1380
+ let _ = !p && ge(i, a, e, t, {
1381
+ epsilon: rt,
1382
+ skipDegenerateOther: !0
1383
+ }), v = !m && ge(a, c, e, t, {
1384
+ epsilon: rt,
1385
+ skipDegenerateOther: !0
1386
+ });
1387
+ if (!(_ || v)) {
1388
+ h = p ? [a, c] : m ? [i, a] : [
1389
+ i,
1390
+ a,
1391
+ c
1392
+ ];
1393
+ break;
1394
+ }
1395
+ }
1396
+ h && (t.points = h);
1397
+ }
1398
+ }
1399
+ t(ot, "portSwapToLShape");
1400
+ function st(e, n) {
1401
+ let r = .001, { realNodeRects: i, labelNodeRects: a } = q(n.values());
1402
+ for (let o of e) {
1403
+ if (o.isLayoutOnly) continue;
1404
+ let s = o.points;
1405
+ if (!s || s.length < 4) continue;
1406
+ let c = H(s, r);
1407
+ if (c.length < 4) continue;
1408
+ let l = c.length - 1, u = c[l], d = c[l - 1], f = c[l - 2], p = u.x - d.x, m = u.y - d.y, h = Math.hypot(p, m);
1409
+ if (h >= 10 || h < r) continue;
1410
+ let g = d.x - f.x, _ = d.y - f.y;
1411
+ if (Math.hypot(g, _) < r) continue;
1412
+ let v = L(d, u, r), y = R(d, u, r), b = L(f, d, r), x = R(f, d, r);
1413
+ if (!(v && x || y && b)) continue;
1414
+ let S = o.end, C = o.start, w = S ? n.get(S) : void 0;
1415
+ if (!w) continue;
1416
+ let T = w.x ?? 0, E = w.y ?? 0, D = K(w);
1417
+ if (!D) continue;
1418
+ let O, k;
1419
+ if (x) {
1420
+ let e = _ < 0;
1421
+ O = {
1422
+ x: T,
1423
+ y: f.y
1424
+ }, k = {
1425
+ x: T,
1426
+ y: e ? D.bottom : D.top
1427
+ };
1428
+ } else {
1429
+ let e = g > 0;
1430
+ O = {
1431
+ x: f.x,
1432
+ y: E
1433
+ }, k = {
1434
+ x: e ? D.right : D.left,
1435
+ y: E
1436
+ };
1437
+ }
1438
+ if (J(O, k, i, S ? [S] : [], -2) || J(O, k, a, [], -2)) continue;
1439
+ if (C) {
1440
+ let e = n.get(C), t = e ? K(e) : void 0;
1441
+ if (t && U(O, t, 2)) continue;
1442
+ }
1443
+ let A = /* @__PURE__ */ t((e, t) => `${e.x.toFixed(3)},${e.y.toFixed(3)}|${t.x.toFixed(3)},${t.y.toFixed(3)}`, "ownSegmentKey"), j = /* @__PURE__ */ new Set();
1444
+ for (let e = 0; e < c.length - 1; e++) j.add(A(c[e], c[e + 1]));
1445
+ let ee = /* @__PURE__ */ t((t, n) => {
1446
+ for (let i of e) {
1447
+ if (i === o || i.isLayoutOnly) continue;
1448
+ let e = i.points;
1449
+ if (!(!e || e.length < 2)) for (let i = 0; i < e.length - 1; i++) {
1450
+ let a = e[i], o = e[i + 1];
1451
+ if (!j.has(A(a, o)) && _e(t, n, a, o, r)) return !0;
1452
+ }
1453
+ }
1454
+ return !1;
1455
+ }, "segmentCrossesOtherEdge");
1456
+ if (ee(O, k)) continue;
1457
+ if (l - 3 >= 0) {
1458
+ let e = c[l - 3], t = [C, S].filter((e) => !!e);
1459
+ if (J(e, O, i, t, -2) || ee(e, O)) continue;
1460
+ }
1461
+ let te = [
1462
+ ...c.slice(0, l - 2),
1463
+ O,
1464
+ k
1465
+ ];
1466
+ o.points = te;
1467
+ let M = o.labelNodeId;
1468
+ if (M) {
1469
+ let e = n.get(M);
1470
+ if (e) {
1471
+ let t = e.width ?? 0, n = e.height ?? 0;
1472
+ if (t > 0 && n > 0) {
1473
+ let i, a, o = -1;
1474
+ for (let e = 0; e < te.length - 1; e++) {
1475
+ let s = te[e], c = te[e + 1], l = Math.hypot(c.x - s.x, c.y - s.y), u = I(s, c, r), d = F(s, c, r);
1476
+ (u && l >= t + 2 || d && l >= n + 2) && l > o && (o = l, i = (s.x + c.x) / 2, a = (s.y + c.y) / 2);
1477
+ }
1478
+ i !== void 0 && a !== void 0 && (e.x = i, e.y = a);
1479
+ }
1480
+ }
1481
+ }
1482
+ }
1483
+ }
1484
+ t(st, "collapseShortTerminalStub");
1485
+ var X = .001, Z = 8, Q = re, ct = /* @__PURE__ */ t((e, t) => F(e, t, X) || I(e, t, X), "orthogonallyAligned");
1486
+ function lt(e, n) {
1487
+ let r = /* @__PURE__ */ t((e, t) => {
1488
+ let n = e.x ?? 0, r = e.y ?? 0, i = t.x - n, a = t.y - r, o = (e.width ?? 0) / 2, s = (e.height ?? 0) / 2;
1489
+ return Math.abs(a) * o > Math.abs(i) * s ? (a < 0 && (s = -s), {
1490
+ x: n + (a === 0 ? 0 : s * i / a),
1491
+ y: r + s
1492
+ }) : (i < 0 && (o = -o), {
1493
+ x: n + o,
1494
+ y: r + (i === 0 ? 0 : o * a / i)
1495
+ });
1496
+ }, "rectIntersect"), i = /* @__PURE__ */ t((e, t) => {
1497
+ let i = H(e.points ?? []);
1498
+ if (i.length < 2) return;
1499
+ let a = t ? e.start : e.end, o = a ? n.get(a) : void 0, s = o ? K(o) : void 0;
1500
+ if (!o || !a || !s) return;
1501
+ let c = t ? i[0] : i[i.length - 1], l = t ? i[1] : i[i.length - 2], u = r(o, c), d = c;
1502
+ if (ct(l, u) && (d = l), F(u, d, X)) return {
1503
+ edge: e,
1504
+ edgeId: String(e.id ?? ""),
1505
+ nodeId: a,
1506
+ atStart: t,
1507
+ orientation: "V",
1508
+ coord: u.x,
1509
+ min: Math.min(u.y, d.y),
1510
+ max: Math.max(u.y, d.y),
1511
+ boundary: u,
1512
+ railEnd: d,
1513
+ rect: s
1514
+ };
1515
+ if (I(u, d, X)) return {
1516
+ edge: e,
1517
+ edgeId: String(e.id ?? ""),
1518
+ nodeId: a,
1519
+ atStart: t,
1520
+ orientation: "H",
1521
+ coord: u.y,
1522
+ min: Math.min(u.x, d.x),
1523
+ max: Math.max(u.x, d.x),
1524
+ boundary: u,
1525
+ railEnd: d,
1526
+ rect: s
1527
+ };
1528
+ }, "terminalLaneFor"), a = /* @__PURE__ */ t((e, t) => Math.max(0, Math.min(e.max, t.max) - Math.max(e.min, t.min)), "projectedOverlapLength"), o = /* @__PURE__ */ t((e, t) => e.nodeId !== t.nodeId || e.orientation !== t.orientation ? !1 : e.orientation === "H" ? (Math.abs(e.boundary.x - e.rect.left) < 1 || Math.abs(e.boundary.x - e.rect.right) < 1) && F(e.boundary, t.boundary, 1) : (Math.abs(e.boundary.y - e.rect.top) < 1 || Math.abs(e.boundary.y - e.rect.bottom) < 1) && I(e.boundary, t.boundary, 1), "sameTerminalFace"), s = /* @__PURE__ */ t((e, t) => e.nodeId !== t.nodeId || e.orientation !== t.orientation ? !1 : a(e, t) >= Z && Math.abs(e.coord - t.coord) < .5, "exactTerminalLaneConflict"), c = /* @__PURE__ */ t((e, t) => {
1529
+ if (e.nodeId !== t.nodeId || e.orientation !== t.orientation || e.orientation !== "H" || e.atStart === t.atStart) return !1;
1530
+ let n = a(e, t);
1531
+ if (n < Z) return !1;
1532
+ let r = e.rect.bottom - e.rect.top;
1533
+ return n < r || n > 2 * r ? !1 : o(e, t) && Math.abs(e.coord - t.coord) < 16;
1534
+ }, "nearTerminalLaneConflict"), l = /* @__PURE__ */ t((e, n) => {
1535
+ let r = H(e.edge.points ?? []);
1536
+ if (r.length < 2) return;
1537
+ let i = e.orientation === "V" ? {
1538
+ x: e.boundary.x + n,
1539
+ y: e.boundary.y
1540
+ } : {
1541
+ x: e.boundary.x,
1542
+ y: e.boundary.y + n
1543
+ }, a = e.orientation === "V" ? {
1544
+ x: e.railEnd.x + n,
1545
+ y: e.railEnd.y
1546
+ } : {
1547
+ x: e.railEnd.x,
1548
+ y: e.railEnd.y + n
1549
+ };
1550
+ if (!(/* @__PURE__ */ t(() => Math.abs(e.boundary.y - e.rect.top) < 1 || Math.abs(e.boundary.y - e.rect.bottom) < 1 ? I(i, e.boundary, X) && i.x >= e.rect.left + 1 && i.x <= e.rect.right - 1 : Math.abs(e.boundary.x - e.rect.left) < 1 || Math.abs(e.boundary.x - e.rect.right) < 1 ? F(i, e.boundary, X) && i.y >= e.rect.top + 1 && i.y <= e.rect.bottom - 1 : !1, "boundaryStaysOnSameFace"))()) return;
1551
+ if (e.atStart) {
1552
+ let t = r.length > 1 && P(r[1], e.railEnd, X), n = r.slice(t ? 2 : 1), o = n[0];
1553
+ return o && !ct(o, a) ? void 0 : [
1554
+ i,
1555
+ a,
1556
+ ...n
1557
+ ];
1558
+ }
1559
+ let o = r.length > 1 && P(r[r.length - 2], e.railEnd, X), s = r.slice(0, o ? -2 : -1), c = s[s.length - 1];
1560
+ if (!(c && !ct(c, a))) return [
1561
+ ...s,
1562
+ a,
1563
+ i
1564
+ ];
1565
+ }, "shiftedCandidate"), u = /* @__PURE__ */ t((e) => {
1566
+ let t = e.edge, r = H(t.points ?? []);
1567
+ if (r.length !== 2) return !1;
1568
+ let i = t.start, a = t.end, o = i ? n.get(i) : void 0, s = a ? n.get(a) : void 0;
1569
+ if (!o || !s) return !1;
1570
+ let c = o.x ?? 0, l = o.y ?? 0, u = s.x ?? 0, d = s.y ?? 0, [f, p] = r;
1571
+ return I(f, p, X) && Math.abs(l - d) < 1 && Math.abs(c - u) > 1 || F(f, p, X) && Math.abs(c - u) < 1 && Math.abs(l - d) > 1;
1572
+ }, "laneIsStraightCollinearConnector"), d = [
1573
+ -7,
1574
+ 7,
1575
+ -14,
1576
+ 14,
1577
+ -21,
1578
+ 21
1579
+ ];
1580
+ for (let t = 0; t < 8; t++) {
1581
+ let t = e.filter((e) => !e.isLayoutOnly).flatMap((e) => [i(e, !0), i(e, !1)]).filter((e) => !!e), n = !1;
1582
+ for (let e = 0; e < t.length && !n; e++) for (let r = e + 1; r < t.length && !n; r++) {
1583
+ let a = t[e], o = t[r];
1584
+ if (a.edge === o.edge || !(s(a, o) || c(a, o))) continue;
1585
+ let f = !s(a, o), p = [a, o].sort((e, t) => {
1586
+ let n = u(e), r = u(t);
1587
+ return n === r ? Number(!t.atStart) - Number(!e.atStart) : Number(n) - Number(r);
1588
+ });
1589
+ for (let e of p) {
1590
+ for (let r of d) {
1591
+ let a = l(e, r);
1592
+ if (!a) continue;
1593
+ let o = i({
1594
+ ...e.edge,
1595
+ points: a
1596
+ }, e.atStart);
1597
+ if (!(!o || t.some((t) => t.edge !== e.edge && (s(o, t) || f && c(o, t))))) {
1598
+ e.edge.points = a, n = !0;
1599
+ break;
1600
+ }
1601
+ }
1602
+ if (n) break;
1603
+ }
1604
+ }
1605
+ if (!n) return;
1606
+ }
1607
+ }
1608
+ t(lt, "separateSharedRenderedTerminalLanes");
1609
+ function ut(e, n) {
1610
+ let { realNodeRects: r, labelNodeRects: i } = q(n.values()), a = /* @__PURE__ */ t((t, n) => {
1611
+ let a = t.start, o = t.end, s = Q(n);
1612
+ if (s.length !== n.length - 1) return !1;
1613
+ let c = [a, o].filter((e) => !!e);
1614
+ for (let e of s) if (J(e.a, e.b, r, c, -2) || J(e.a, e.b, i, [], -2)) return !1;
1615
+ for (let n of e) {
1616
+ if (n === t || n.isLayoutOnly) continue;
1617
+ let e = n.points;
1618
+ if (!(!e || e.length < 2)) {
1619
+ for (let t of s) for (let n of Q(H(e))) if (B(t, n, .5) >= Z || _e(t.a, t.b, n.a, n.b, X)) return !1;
1620
+ }
1621
+ }
1622
+ return !0;
1623
+ }, "candidateIsSafe"), o = /* @__PURE__ */ t((e, t) => {
1624
+ if (t + 4 >= e.length) return;
1625
+ let n = e[t], r = e[t + 1], i = e[t + 2], a = e[t + 3], o = e[t + 4], s = L(n, r) && R(r, i) && L(i, a) && R(a, o) && F(n, a, X) && F(n, o, X) && F(r, i, X) && (r.x - n.x) * (a.x - i.x) < 0, c = R(n, r) && L(r, i) && R(i, a) && L(a, o) && I(n, a, X) && I(n, o, X) && I(r, i, X) && (r.y - n.y) * (a.y - i.y) < 0;
1626
+ if (s || c) return H([
1627
+ ...e.slice(0, t + 1),
1628
+ o,
1629
+ ...e.slice(t + 5)
1630
+ ]);
1631
+ if (t + 5 >= e.length) return;
1632
+ let l = e[t + 5], u = R(n, r) && L(r, i) && R(i, a) && L(a, o) && R(o, l) && F(n, o, X) && F(n, l, X) && F(i, a, X) && (i.x - r.x) * (o.x - a.x) < 0, d = L(n, r) && R(r, i) && L(i, a) && R(a, o) && L(o, l) && I(n, o, X) && I(n, l, X) && I(i, a, X) && (i.y - r.y) * (o.y - a.y) < 0;
1633
+ if (!(!u && !d)) return H([
1634
+ ...e.slice(0, t + 1),
1635
+ l,
1636
+ ...e.slice(t + 6)
1637
+ ]);
1638
+ }, "withoutDogleg");
1639
+ for (let t = 0; t < 8; t++) {
1640
+ let t = !1;
1641
+ for (let n of e) {
1642
+ if (n.isLayoutOnly) continue;
1643
+ let e = H(n.points ?? []);
1644
+ for (let r = 0; r <= e.length - 5; r++) {
1645
+ let i = o(e, r);
1646
+ if (!(!i || !a(n, i))) {
1647
+ n.points = i, t = !0;
1648
+ break;
1649
+ }
1650
+ }
1651
+ if (t) break;
1652
+ }
1653
+ if (!t) return;
1654
+ }
1655
+ }
1656
+ t(ut, "collapseRedundantRectangularDoglegs");
1657
+ function dt(e, n) {
1658
+ let { realNodeRects: r, labelNodeRects: i } = q(n.values()), a = e.filter((e) => !e.isLayoutOnly), o = /* @__PURE__ */ t((e, t, n) => H(e === t ? n ?? [] : e.points ?? []), "pointsFor"), s = /* @__PURE__ */ t((e, t) => {
1659
+ let n = 0;
1660
+ for (let r = 0; r < a.length; r++) {
1661
+ let i = Q(o(a[r], e, t));
1662
+ for (let s = r + 1; s < a.length; s++) {
1663
+ let r = Q(o(a[s], e, t));
1664
+ for (let e of i) for (let t of r) _e(e.a, e.b, t.a, t.b, X) && n++;
1665
+ }
1666
+ }
1667
+ return n;
1668
+ }, "strictCrossingCount"), c = /* @__PURE__ */ t((e) => {
1669
+ let t = Q(e);
1670
+ if (t.length !== 3) return;
1671
+ let n = t[1];
1672
+ if (!(t[0].horizontal === n.horizontal || t[2].horizontal === n.horizontal)) return {
1673
+ index: n.index,
1674
+ horizontal: n.horizontal,
1675
+ vertical: n.vertical,
1676
+ segment: n
1677
+ };
1678
+ }, "middleRail"), l = /* @__PURE__ */ t((e, t) => {
1679
+ let n = [e.start, e.end].filter((e) => !!e);
1680
+ return r.filter((e) => {
1681
+ if (n.includes(e.id)) return !1;
1682
+ let r = e.rect;
1683
+ return t.horizontal ? z(t.a.x, t.b.x, r.left, r.right) >= Z && t.a.y >= r.top - 2 && t.a.y <= r.bottom + 2 : z(t.a.y, t.b.y, r.top, r.bottom) >= Z && t.a.x >= r.left - 2 && t.a.x <= r.right + 2;
1684
+ });
1685
+ }, "blockingRectsFor"), u = /* @__PURE__ */ t((e, t, n) => {
1686
+ let r = e.map((e) => ({ ...e }));
1687
+ if (t.horizontal) r[t.index].y = n, r[t.index + 1].y = n;
1688
+ else if (t.vertical) r[t.index].x = n, r[t.index + 1].x = n;
1689
+ else return;
1690
+ let i = Se(H(r));
1691
+ return Q(i).length === i.length - 1 ? i : void 0;
1692
+ }, "candidateByMovingRail"), d = /* @__PURE__ */ t((e, t, n) => {
1693
+ let c = [e.start, e.end].filter((e) => !!e), l = Q(t);
1694
+ if (l.length !== t.length - 1) return !1;
1695
+ for (let e of l) if (J(e.a, e.b, r, c, -2) || J(e.a, e.b, i, [], -2)) return !1;
1696
+ for (let t of a) if (t !== e) {
1697
+ for (let e of l) for (let n of Q(o(t))) if (B(e, n, .5) >= Z) return !1;
1698
+ }
1699
+ return s(e, t) <= n;
1700
+ }, "candidateIsSafe");
1701
+ for (let e = 0; e < 8; e++) {
1702
+ let e = s(), t = !1;
1703
+ for (let n of a) {
1704
+ let r = o(n), i = c(r);
1705
+ if (!i) continue;
1706
+ let a = l(n, i.segment);
1707
+ if (a.length === 0) continue;
1708
+ let s = i.horizontal ? [Math.min(...a.map((e) => e.rect.top)) - 20, Math.max(...a.map((e) => e.rect.bottom)) + 20] : [Math.min(...a.map((e) => e.rect.left)) - 20, Math.max(...a.map((e) => e.rect.right)) + 20];
1709
+ for (let a of s) {
1710
+ let o = u(r, i.segment, a);
1711
+ if (!(!o || !d(n, o, e))) {
1712
+ n.points = o, t = !0;
1713
+ break;
1714
+ }
1715
+ }
1716
+ if (t) break;
1717
+ }
1718
+ if (!t) return;
1719
+ }
1720
+ }
1721
+ t(dt, "liftObstacleHuggingSameSideRails");
1722
+ function ft(e, n) {
1723
+ let r = /* @__PURE__ */ t((e) => {
1724
+ let t = e.groupTitleRect;
1725
+ if (!(!t || typeof t.left != "number" || typeof t.right != "number" || typeof t.top != "number" || typeof t.bottom != "number" || !Number.isFinite(t.left) || !Number.isFinite(t.right) || !Number.isFinite(t.top) || !Number.isFinite(t.bottom) || t.right <= t.left || t.bottom <= t.top)) return {
1726
+ left: t.left,
1727
+ right: t.right,
1728
+ top: t.top,
1729
+ bottom: t.bottom
1730
+ };
1731
+ }, "validTitleRect"), i = /* @__PURE__ */ t((e) => {
1732
+ if (!e.isGroup || e.parentId) return;
1733
+ let t = e.direction, n = typeof t == "string" ? t.toUpperCase() : "";
1734
+ if (n === "LR" || n === "RL" || n === "BT") return;
1735
+ let i = r(e), a = e.y, o = e.height;
1736
+ if (!i || typeof a != "number" || typeof o != "number" || !Number.isFinite(a) || !Number.isFinite(o) || o <= 0) return;
1737
+ let s = i.right - i.left, c = i.bottom - i.top;
1738
+ if (!(c <= 0 || s < c)) return {
1739
+ node: e,
1740
+ rect: i
1741
+ };
1742
+ }, "topLaneTitleFor"), a = /* @__PURE__ */ t((e, t) => {
1743
+ if (!e.horizontal) return !1;
1744
+ let n = e.a.y;
1745
+ return n <= t.top + X || n >= t.bottom - X ? !1 : z(e.a.x, e.b.x, t.left, t.right) >= Z;
1746
+ }, "horizontalSegmentIntersectsTitle"), o = [...n.values()].map(i).filter((e) => !!e);
1747
+ if (o.length === 0) return;
1748
+ let s = 0;
1749
+ for (let t of e) {
1750
+ if (t.isLayoutOnly) continue;
1751
+ let e = H(t.points ?? []);
1752
+ for (let t of Q(e)) for (let e of o) a(t, e.rect) && (s = Math.max(s, e.rect.bottom - t.a.y + 4));
1753
+ }
1754
+ if (!(s <= X)) for (let e of o) {
1755
+ let t = e.node.y, n = e.node.height;
1756
+ typeof t != "number" || typeof n != "number" || !Number.isFinite(t) || !Number.isFinite(n) || n <= 0 || (e.node.y = t - s / 2, e.node.height = n + s, e.node.groupTitleRect = {
1757
+ ...e.rect,
1758
+ top: e.rect.top - s,
1759
+ bottom: e.rect.bottom - s
1760
+ });
1761
+ }
1762
+ }
1763
+ t(ft, "liftTopLaneTitleBandsAboveRails");
1764
+ function pt(e, n) {
1765
+ let r = /* @__PURE__ */ t((e) => {
1766
+ let t = e.groupTitleRect;
1767
+ if (!(!t || typeof t.left != "number" || typeof t.right != "number" || typeof t.top != "number" || typeof t.bottom != "number" || !Number.isFinite(t.left) || !Number.isFinite(t.right) || !Number.isFinite(t.top) || !Number.isFinite(t.bottom) || t.right <= t.left || t.bottom <= t.top)) return {
1768
+ left: t.left,
1769
+ right: t.right,
1770
+ top: t.top,
1771
+ bottom: t.bottom
1772
+ };
1773
+ }, "validTitleRect"), i = /* @__PURE__ */ t((e) => {
1774
+ if (!e.isGroup || e.parentId || e.direction !== "LR") return;
1775
+ let t = r(e), n = e.x, i = e.width;
1776
+ if (!t || typeof n != "number" || typeof i != "number" || !Number.isFinite(n) || !Number.isFinite(i) || i <= 0) return;
1777
+ let a = t.right - t.left, o = t.bottom - t.top;
1778
+ if (!(a <= 0 || o < a)) return {
1779
+ node: e,
1780
+ rect: t
1781
+ };
1782
+ }, "leftLaneTitleFor"), a = /* @__PURE__ */ t((e, t) => {
1783
+ if (!e.vertical) return !1;
1784
+ let n = e.a.x;
1785
+ return n <= t.left + X || n >= t.right - X ? !1 : z(e.a.y, e.b.y, t.top, t.bottom) >= Z;
1786
+ }, "verticalSegmentIntersectsTitle"), o = /* @__PURE__ */ t((e, t) => {
1787
+ if (!e.horizontal) return !1;
1788
+ let n = e.a.y;
1789
+ return n <= t.top + X || n >= t.bottom - X ? !1 : z(e.a.x, e.b.x, t.left, t.right) >= Z;
1790
+ }, "horizontalSegmentIntersectsTitle"), s = [...n.values()].map(i).filter((e) => !!e);
1791
+ if (s.length === 0) return;
1792
+ let c = 0;
1793
+ for (let t of e) {
1794
+ if (t.isLayoutOnly) continue;
1795
+ let e = H(t.points ?? []);
1796
+ for (let t of Q(e)) for (let e of s) if (a(t, e.rect)) c = Math.max(c, e.rect.right - t.a.x + 4);
1797
+ else if (o(t, e.rect)) {
1798
+ let n = Math.min(t.a.x, t.b.x);
1799
+ c = Math.max(c, e.rect.right - n + 4);
1800
+ }
1801
+ }
1802
+ if (!(c <= X)) for (let e of s) {
1803
+ let t = e.node.x, n = e.node.width;
1804
+ typeof t != "number" || typeof n != "number" || !Number.isFinite(t) || !Number.isFinite(n) || n <= 0 || (e.node.x = t - c / 2, e.node.width = n + c, e.node.groupTitleRect = {
1805
+ ...e.rect,
1806
+ left: e.rect.left - c,
1807
+ right: e.rect.right - c
1808
+ });
1809
+ }
1810
+ }
1811
+ t(pt, "shiftLeftLaneTitleBandsLeftOfRails");
1812
+ function mt(e, n) {
1813
+ let { realNodeRects: r } = q(n.values()), i = e.filter((e) => !e.isLayoutOnly), a = /* @__PURE__ */ t((e, t = /* @__PURE__ */ new Map()) => H(t.get(e) ?? e.points ?? []), "replacementPointsFor"), o = /* @__PURE__ */ t((e = /* @__PURE__ */ new Map()) => {
1814
+ let t = 0;
1815
+ for (let n = 0; n < i.length; n++) {
1816
+ let r = Q(a(i[n], e));
1817
+ for (let o = n + 1; o < i.length; o++) {
1818
+ let n = Q(a(i[o], e));
1819
+ for (let e of r) for (let r of n) _e(e.a, e.b, r.a, r.b, X) && t++;
1820
+ }
1821
+ }
1822
+ return t;
1823
+ }, "crossingCount"), s = /* @__PURE__ */ t((e = /* @__PURE__ */ new Map()) => i.reduce((t, n) => t + V(a(n, e)), 0), "totalBends"), c = /* @__PURE__ */ t((e) => {
1824
+ let t = a(e);
1825
+ if (t.length < 4) return;
1826
+ let n = t[t.length - 2], r = t[t.length - 1];
1827
+ if (!(!L(n, r, X) && !R(n, r, X))) return {
1828
+ tailStart: n,
1829
+ terminal: r
1830
+ };
1831
+ }, "terminalTailFor"), l = /* @__PURE__ */ t((e, t) => {
1832
+ let n = a(e);
1833
+ if (n.length < 3) return;
1834
+ let r = n[0], i = n[1], o;
1835
+ if (L(r, i, X)) o = {
1836
+ x: i.x,
1837
+ y: t.tailStart.y
1838
+ };
1839
+ else if (R(r, i, X)) o = {
1840
+ x: t.tailStart.x,
1841
+ y: i.y
1842
+ };
1843
+ else return;
1844
+ let s = Se(H([
1845
+ r,
1846
+ i,
1847
+ o,
1848
+ t.tailStart,
1849
+ t.terminal
1850
+ ]));
1851
+ return Q(s).length === s.length - 1 ? s : void 0;
1852
+ }, "candidateWithDestinationTail"), u = /* @__PURE__ */ t((e, t) => {
1853
+ let n = [e.start, e.end].filter((e) => !!e);
1854
+ for (let e of Q(t)) if (J(e.a, e.b, r, n, -2)) return !0;
1855
+ return !1;
1856
+ }, "pathHasNodeHit"), d = /* @__PURE__ */ t((e, t, n) => {
1857
+ for (let r of i) if (r !== e) {
1858
+ for (let e of Q(t)) for (let t of Q(a(r, n))) if (B(e, t, .5) >= Z) return !0;
1859
+ }
1860
+ return !1;
1861
+ }, "pathHasSharedTrack"), f = /* @__PURE__ */ t((e, t, n) => !u(e, t) && !d(e, t, n), "candidateIsSafe"), p = /* @__PURE__ */ t(() => {
1862
+ let e = /* @__PURE__ */ new Map();
1863
+ for (let t of i) {
1864
+ let r = t.end;
1865
+ if (!r || !n.has(r) || a(t).length < 4) continue;
1866
+ let i = e.get(r) ?? [];
1867
+ i.push(t), e.set(r, i);
1868
+ }
1869
+ return e;
1870
+ }, "edgesByDestination");
1871
+ for (let e = 0; e < 4; e++) {
1872
+ let e = o();
1873
+ if (e === 0) return;
1874
+ let t = s(), n, r = e, i = t;
1875
+ for (let t of p().values()) for (let a = 0; a < t.length; a++) for (let u = a + 1; u < t.length; u++) {
1876
+ let d = t[a], p = t[u], m = c(d), h = c(p);
1877
+ if (!m || !h) continue;
1878
+ let g = l(d, h), _ = l(p, m);
1879
+ if (!g || !_) continue;
1880
+ let v = /* @__PURE__ */ new Map([[d, g], [p, _]]);
1881
+ if (!f(d, g, v) || !f(p, _, v)) continue;
1882
+ let y = o(v), b = s(v);
1883
+ y >= e || y > r || y === r && b >= i || (n = v, r = y, i = b);
1884
+ }
1885
+ if (!n) return;
1886
+ for (let [e, t] of n) e.points = t;
1887
+ }
1888
+ }
1889
+ t(mt, "swapDestinationTerminalTailsToReduceCrossings");
1890
+ function ht(e, n) {
1891
+ let { realNodeRects: r, labelNodeRects: i } = q(n.values()), a = e.filter((e) => !e.isLayoutOnly), o = /* @__PURE__ */ t((e, t = /* @__PURE__ */ new Map()) => H(t.get(e) ?? e.points ?? []), "replacementPointsFor"), s = /* @__PURE__ */ t((e = /* @__PURE__ */ new Map()) => {
1892
+ let t = 0;
1893
+ for (let n = 0; n < a.length; n++) {
1894
+ let r = Q(o(a[n], e));
1895
+ for (let i = n + 1; i < a.length; i++) {
1896
+ let n = Q(o(a[i], e));
1897
+ for (let e of r) for (let r of n) _e(e.a, e.b, r.a, r.b, X) && t++;
1898
+ }
1899
+ }
1900
+ return t;
1901
+ }, "strictCrossingCount"), c = /* @__PURE__ */ t((e = /* @__PURE__ */ new Map()) => a.reduce((t, n) => t + V(o(n, e)), 0), "totalBends"), l = /* @__PURE__ */ t((e) => {
1902
+ let t = e.start, r = e.end, i = t ? n.get(t) : void 0, a = r ? n.get(r) : void 0, o = i ? K(i) : void 0, s = a ? K(a) : void 0;
1903
+ return o && s ? {
1904
+ src: o,
1905
+ dst: s
1906
+ } : void 0;
1907
+ }, "endpointRectsFor"), u = /* @__PURE__ */ t((e, t, n) => {
1908
+ if (n.index <= 0 || n.index + 1 >= t.length - 1) return;
1909
+ let r = l(e);
1910
+ if (r) {
1911
+ if (n.vertical) {
1912
+ let i = n.a.x, a = Math.min(r.src.left, r.dst.left), o = Math.max(r.src.right, r.dst.right), s = i < a - X ? "left" : i > o + X ? "right" : void 0;
1913
+ return s ? {
1914
+ edge: e,
1915
+ points: t,
1916
+ segmentIndex: n.index,
1917
+ axis: "vertical",
1918
+ side: s,
1919
+ coord: i,
1920
+ min: Math.min(n.a.y, n.b.y),
1921
+ max: Math.max(n.a.y, n.b.y)
1922
+ } : void 0;
1923
+ }
1924
+ if (n.horizontal) {
1925
+ let i = n.a.y, a = Math.min(r.src.top, r.dst.top), o = Math.max(r.src.bottom, r.dst.bottom), s = i < a - X ? "top" : i > o + X ? "bottom" : void 0;
1926
+ return s ? {
1927
+ edge: e,
1928
+ points: t,
1929
+ segmentIndex: n.index,
1930
+ axis: "horizontal",
1931
+ side: s,
1932
+ coord: i,
1933
+ min: Math.min(n.a.x, n.b.x),
1934
+ max: Math.max(n.a.x, n.b.x)
1935
+ } : void 0;
1936
+ }
1937
+ }
1938
+ }, "externalRailForSegment"), d = /* @__PURE__ */ t(() => {
1939
+ let e = [];
1940
+ for (let t of a) {
1941
+ let n = o(t);
1942
+ for (let r of Q(n)) {
1943
+ let i = u(t, n, r);
1944
+ i && e.push(i);
1945
+ }
1946
+ }
1947
+ return e;
1948
+ }, "collectExternalRails"), f = /* @__PURE__ */ t((e, t) => e.edge !== t.edge && e.axis === t.axis && e.side === t.side && z(e.min, e.max, t.min, t.max) >= Z, "railsInteract"), p = /* @__PURE__ */ t((e) => {
1949
+ let t = [], n = /* @__PURE__ */ new Set();
1950
+ for (let r of e) {
1951
+ if (n.has(r)) continue;
1952
+ let i = [r], a = [];
1953
+ for (n.add(r); i.length > 0;) {
1954
+ let t = i.pop();
1955
+ a.push(t);
1956
+ for (let r of e) !n.has(r) && f(t, r) && (n.add(r), i.push(r));
1957
+ }
1958
+ a.length > 1 && t.push(a);
1959
+ }
1960
+ return t;
1961
+ }, "connectedComponents"), m = /* @__PURE__ */ t((e) => {
1962
+ let t = [];
1963
+ for (let n of e) t.some((e) => Math.abs(e - n.coord) < X) || t.push(n.coord);
1964
+ for (; t.length < e.length;) {
1965
+ let n = Math.min(...t), r = Math.max(...t), i = e[0].side;
1966
+ t.push(i === "left" || i === "top" ? n - 12 * (e.length - t.length) : r + 12 * (e.length - t.length));
1967
+ }
1968
+ return t;
1969
+ }, "uniqueCoordsFor"), h = /* @__PURE__ */ t((e) => {
1970
+ let n = e.map((e) => e.coord), r = m(e), i = [];
1971
+ if (e.length <= 6) {
1972
+ let a = Array(r.length).fill(!1), o = [], s = /* @__PURE__ */ t(() => {
1973
+ if (o.length === e.length) {
1974
+ o.some((e, t) => Math.abs(e - n[t]) >= X) && i.push([...o]);
1975
+ return;
1976
+ }
1977
+ for (let [e, t] of r.entries()) a[e] || (a[e] = !0, o.push(t), s(), o.pop(), a[e] = !1);
1978
+ }, "visit");
1979
+ return s(), i;
1980
+ }
1981
+ for (let e = 0; e < n.length; e++) for (let t = e + 1; t < n.length; t++) {
1982
+ let r = [...n];
1983
+ [r[e], r[t]] = [r[t], r[e]], i.push(r);
1984
+ }
1985
+ return i;
1986
+ }, "coordinateAssignmentsFor"), g = /* @__PURE__ */ t((e, t) => {
1987
+ let n = /* @__PURE__ */ new Map();
1988
+ for (let [r, i] of e.entries()) {
1989
+ let e = t[r], a = n.get(i.edge) ?? i.points.map((e) => ({
1990
+ x: e.x,
1991
+ y: e.y
1992
+ }));
1993
+ i.axis === "vertical" ? (a[i.segmentIndex].x = e, a[i.segmentIndex + 1].x = e) : (a[i.segmentIndex].y = e, a[i.segmentIndex + 1].y = e), n.set(i.edge, a);
1994
+ }
1995
+ let r = /* @__PURE__ */ new Map();
1996
+ for (let [e, t] of n) {
1997
+ let n = Se(H(t));
1998
+ if (Q(n).length !== n.length - 1) return;
1999
+ r.set(e, n);
2000
+ }
2001
+ return r;
2002
+ }, "replacementsForAssignment"), _ = /* @__PURE__ */ t((e) => {
2003
+ for (let [t, n] of e) {
2004
+ let e = [t.start, t.end].filter((e) => !!e);
2005
+ for (let t of Q(n)) if (J(t.a, t.b, r, e, -2) || J(t.a, t.b, i, [], -2)) return !1;
2006
+ }
2007
+ for (let t = 0; t < a.length; t++) {
2008
+ let n = a[t], r = e.has(n), i = Q(o(n, e));
2009
+ for (let n = t + 1; n < a.length; n++) {
2010
+ let t = a[n];
2011
+ if (!r && !e.has(t)) continue;
2012
+ let s = Q(o(t, e));
2013
+ for (let e of i) for (let t of s) if (B(e, t, .5) >= Z) return !1;
2014
+ }
2015
+ }
2016
+ return !0;
2017
+ }, "candidateIsSafe");
2018
+ for (let e = 0; e < 4; e++) {
2019
+ let e = s();
2020
+ if (e === 0) return;
2021
+ let t, n = e, r = c(), i = Infinity;
2022
+ for (let a of p(d())) for (let o of h(a)) {
2023
+ let l = g(a, o);
2024
+ if (!l || !_(l)) continue;
2025
+ let u = s(l);
2026
+ if (u >= e) continue;
2027
+ let d = c(l), f = a.reduce((e, t, n) => e + Math.abs(o[n] - t.coord), 0);
2028
+ u > n || u === n && (d > r || d === r && f >= i) || (t = l, n = u, r = d, i = f);
2029
+ }
2030
+ if (!t) return;
2031
+ for (let [e, n] of t) e.points = n;
2032
+ }
2033
+ }
2034
+ t(ht, "reassignCrossingExternalRailChannels");
2035
+ function gt(e, n) {
2036
+ let { realNodeRects: r, labelNodeRects: i } = q(n.values()), a = e.filter((e) => !e.isLayoutOnly), o = /* @__PURE__ */ t((e, t, n) => H(e === t ? n ?? [] : e.points ?? []), "pointsFor"), s = /* @__PURE__ */ t((e) => Q(e).reduce((e, t) => {
2037
+ let n = t.a.x - t.b.x, r = t.a.y - t.b.y;
2038
+ return e + Math.hypot(n, r);
2039
+ }, 0), "pathLength"), c = /* @__PURE__ */ t((e, t) => {
2040
+ let n = 0;
2041
+ for (let r = 0; r < a.length; r++) {
2042
+ let i = Q(o(a[r], e, t));
2043
+ for (let s = r + 1; s < a.length; s++) {
2044
+ let r = Q(o(a[s], e, t));
2045
+ for (let e of i) for (let t of r) _e(e.a, e.b, t.a, t.b, X) && n++;
2046
+ }
2047
+ }
2048
+ return n;
2049
+ }, "strictCrossingCount"), l = /* @__PURE__ */ t((e, t) => {
2050
+ if (e.horizontal) {
2051
+ let n = e.a.y;
2052
+ return (Math.abs(n - t.top) < 1 || Math.abs(n - t.bottom) < 1) && z(e.a.x, e.b.x, t.left, t.right) >= Z;
2053
+ }
2054
+ if (e.vertical) {
2055
+ let n = e.a.x;
2056
+ return (Math.abs(n - t.left) < 1 || Math.abs(n - t.right) < 1) && z(e.a.y, e.b.y, t.top, t.bottom) >= Z;
2057
+ }
2058
+ return !1;
2059
+ }, "segmentRunsAlongRectBorder"), u = /* @__PURE__ */ t((e) => {
2060
+ let t = [e.start, e.end].filter((e) => !!e), r = [];
2061
+ for (let e of t) {
2062
+ let t = n.get(e), i = t ? K(t) : void 0;
2063
+ i && r.push(i);
2064
+ }
2065
+ return r;
2066
+ }, "endpointRectsFor"), d = /* @__PURE__ */ t((e, t) => {
2067
+ if (t + 3 >= e.length) return [];
2068
+ let n = e[t], r = e[t + 1], i = e[t + 2], a = e[t + 3], o = L(n, r, X) && R(r, i, X) && L(i, a, X), s = R(n, r, X) && L(r, i, X) && R(i, a, X);
2069
+ if (!o && !s || !(o ? Math.sign(r.x - n.x) !== Math.sign(a.x - i.x) : Math.sign(r.y - n.y) !== Math.sign(a.y - i.y))) return [];
2070
+ let c = F(n, a, X) || I(n, a, X) ? [] : [{
2071
+ x: n.x,
2072
+ y: a.y
2073
+ }, {
2074
+ x: a.x,
2075
+ y: n.y
2076
+ }], l = c.length === 0 ? [[...e.slice(0, t + 1), ...e.slice(t + 3)]] : c.map((n) => [
2077
+ ...e.slice(0, t + 1),
2078
+ n,
2079
+ ...e.slice(t + 3)
2080
+ ]), u = /* @__PURE__ */ new Set();
2081
+ return l.map((e) => Se(H(e))).filter((e) => {
2082
+ if (Q(e).length !== e.length - 1 || !e.some((e) => P(e, a, X))) return !1;
2083
+ let t = e.map((e) => `${e.x.toFixed(3)},${e.y.toFixed(3)}`).join("|");
2084
+ return u.has(t) ? !1 : (u.add(t), !0);
2085
+ });
2086
+ }, "shortcutCandidatesAt"), f = /* @__PURE__ */ t((e, t, n) => {
2087
+ let s = [e.start, e.end].filter((e) => !!e), d = u(e);
2088
+ for (let e of Q(t)) if (J(e.a, e.b, r, s, -2) || J(e.a, e.b, i, [], -2) || d.some((t) => l(e, t))) return !1;
2089
+ for (let n of a) if (n !== e) {
2090
+ for (let e of Q(t)) for (let t of Q(o(n))) if (B(e, t, .5) >= Z) return !1;
2091
+ }
2092
+ return c(e, t) <= n;
2093
+ }, "candidateIsSafe");
2094
+ for (let e = 0; e < 8; e++) {
2095
+ let e = c(), t, n, r = e, i = Infinity, l = Infinity;
2096
+ for (let u of a) {
2097
+ let a = o(u), p = V(a, X), m = s(a);
2098
+ for (let o = 0; o <= a.length - 4; o++) for (let h of d(a, o)) {
2099
+ let a = V(h, X), o = s(h);
2100
+ if (!(a < p || a === p && o < m - X) || !f(u, h, e)) continue;
2101
+ let d = c(u, h);
2102
+ d > r || d === r && (a > i || a === i && o >= l) || (t = u, n = h, r = d, i = a, l = o);
2103
+ }
2104
+ }
2105
+ if (!t || !n) return;
2106
+ t.points = n;
2107
+ }
2108
+ }
2109
+ t(gt, "shortcutRedundantOrthogonalJogs");
2110
+ function _t(e, n) {
2111
+ let r = [];
2112
+ for (let e of n.values()) {
2113
+ if (e.isGroup || e.isEdgeLabel) continue;
2114
+ let t = e.x ?? 0, n = e.y ?? 0, i = K(e);
2115
+ i && r.push({
2116
+ id: String(e.id ?? ""),
2117
+ cx: t,
2118
+ cy: n,
2119
+ rect: i
2120
+ });
2121
+ }
2122
+ if (r.length === 0) return;
2123
+ let i = new Map(r.map((e) => [e.id, e])), a = r.map((e) => ({
2124
+ id: e.id,
2125
+ rect: e.rect
2126
+ })), o = [
2127
+ "top",
2128
+ "bottom",
2129
+ "left",
2130
+ "right"
2131
+ ], s = {
2132
+ top: Math.min(...r.map((e) => e.rect.top)) - 20,
2133
+ bottom: Math.max(...r.map((e) => e.rect.bottom)) + 20,
2134
+ left: Math.min(...r.map((e) => e.rect.left)) - 20,
2135
+ right: Math.max(...r.map((e) => e.rect.right)) + 20
2136
+ }, c = e.filter((e) => !e.isLayoutOnly), l = new Map(c.map((e, t) => [e, t])), u = /* @__PURE__ */ t((e) => {
2137
+ let t = e === "left" || e === "top" ? -1 : 1, n = [];
2138
+ for (let r = 0; r <= 2; r++) n.push(s[e] + t * 20 * r);
2139
+ return n;
2140
+ }, "outwardTracksForSide"), d = /* @__PURE__ */ t((e, t = /* @__PURE__ */ new Map()) => H(t.get(e) ?? e.points ?? []), "replacementPointsFor"), f = /* @__PURE__ */ t((e, t) => {
2141
+ let n = 0;
2142
+ for (let r of e) for (let e of t) _e(r.a, r.b, e.a, e.b, X) && n++;
2143
+ return n;
2144
+ }, "crossingCountBetweenSegments"), p = /* @__PURE__ */ t((e, t) => f(Q(e), Q(t)), "crossingCountBetweenPaths"), m = /* @__PURE__ */ t((e = /* @__PURE__ */ new Map()) => {
2145
+ let n = 0, r = [], i = /* @__PURE__ */ new Set(), a = [], o = /* @__PURE__ */ t((e) => {
2146
+ i.has(e) || (i.add(e), a.push(e));
2147
+ }, "addEdge");
2148
+ for (let t = 0; t < c.length; t++) {
2149
+ let i = c[t], a = d(i, e);
2150
+ for (let s = t + 1; s < c.length; s++) {
2151
+ let t = c[s], l = p(a, d(t, e));
2152
+ l > 0 && (n += l, r.push({
2153
+ first: i,
2154
+ second: t,
2155
+ count: l
2156
+ }), o(i), o(t));
2157
+ }
2158
+ }
2159
+ return a.sort((e, t) => (l.get(e) ?? 0) - (l.get(t) ?? 0)), {
2160
+ count: n,
2161
+ pairs: r,
2162
+ edgeSet: i,
2163
+ edges: a
2164
+ };
2165
+ }, "crossingSnapshot"), h = /* @__PURE__ */ t((e, t) => {
2166
+ let n = new Set(t.keys());
2167
+ if (n.size === 0) return e.count;
2168
+ let r = 0;
2169
+ for (let t of e.pairs) (n.has(t.first) || n.has(t.second)) && (r += t.count);
2170
+ let i = 0;
2171
+ for (let e = 0; e < c.length; e++) {
2172
+ let r = c[e], a = n.has(r), o = d(r, t);
2173
+ for (let r = e + 1; r < c.length; r++) {
2174
+ let e = c[r];
2175
+ !a && !n.has(e) || (i += p(o, d(e, t)));
2176
+ }
2177
+ }
2178
+ return e.count - r + i;
2179
+ }, "crossingCountWithReplacements"), g = /* @__PURE__ */ t((e) => {
2180
+ let t = /* @__PURE__ */ new Map();
2181
+ for (let n of e.pairs) {
2182
+ let e = t.get(n.first) ?? /* @__PURE__ */ new Set();
2183
+ e.add(n.second), t.set(n.first, e);
2184
+ let r = t.get(n.second) ?? /* @__PURE__ */ new Set();
2185
+ r.add(n.first), t.set(n.second, r);
2186
+ }
2187
+ let n = [], r = /* @__PURE__ */ new Set();
2188
+ for (let i of e.edges) {
2189
+ if (r.has(i)) continue;
2190
+ let e = [i], a = [];
2191
+ for (r.add(i); e.length > 0;) {
2192
+ let n = e.pop();
2193
+ a.push(n);
2194
+ for (let i of t.get(n) ?? []) r.has(i) || (r.add(i), e.push(i));
2195
+ }
2196
+ a.sort((e, t) => (l.get(e) ?? 0) - (l.get(t) ?? 0)), a.length > 1 && n.push(a);
2197
+ }
2198
+ return n;
2199
+ }, "crossingComponents"), _ = /* @__PURE__ */ t((e) => [e.start, e.end].filter((e) => !!e), "endpointIdsFor"), v = /* @__PURE__ */ t((e) => {
2200
+ let t = [];
2201
+ for (let n of g(e)) {
2202
+ let e = new Set(n), r = new Set(n.flatMap((e) => _(e))), i = [...n];
2203
+ for (let t of c) e.has(t) || _(t).some((e) => r.has(e)) && i.push(t);
2204
+ i.sort((e, t) => (l.get(e) ?? 0) - (l.get(t) ?? 0)), t.push(i);
2205
+ }
2206
+ return t;
2207
+ }, "pairSearchGroups"), y = /* @__PURE__ */ t((e, t, n) => h(e, /* @__PURE__ */ new Map([[t, n]])), "crossingCountWithSingleReplacement"), b = /* @__PURE__ */ t((e) => {
2208
+ let t = /* @__PURE__ */ new Map();
2209
+ for (let n of e.pairs) t.set(n.first, (t.get(n.first) ?? 0) + n.count), t.set(n.second, (t.get(n.second) ?? 0) + n.count);
2210
+ return t;
2211
+ }, "currentCrossingsByEdge"), x = /* @__PURE__ */ t((e) => e.slice(1).reduce((t, n, r) => {
2212
+ let i = e[r];
2213
+ return t + Math.abs(n.x - i.x) + Math.abs(n.y - i.y);
2214
+ }, 0), "pathLength"), S = /* @__PURE__ */ t((e = /* @__PURE__ */ new Map()) => c.reduce((t, n) => t + V(d(n, e)), 0), "totalBends"), C = /* @__PURE__ */ t((e = /* @__PURE__ */ new Map()) => c.reduce((t, n) => t + x(d(n, e)), 0), "totalLength"), w = /* @__PURE__ */ t((e, t, n = /* @__PURE__ */ new Map()) => {
2215
+ let r = Q(t);
2216
+ for (let t of c) if (t !== e) {
2217
+ for (let e of r) for (let r of Q(d(t, n))) if (B(e, r, .5) >= Z) return !0;
2218
+ }
2219
+ return !1;
2220
+ }, "pathHasSegmentConflict"), T = /* @__PURE__ */ t((e, t) => {
2221
+ let n = [e.start, e.end].filter((e) => !!e);
2222
+ for (let e of Q(t)) if (J(e.a, e.b, a, n, -2)) return !0;
2223
+ return !1;
2224
+ }, "pathHitsNode"), E = /* @__PURE__ */ t((e, t) => {
2225
+ let n = Se(H(t));
2226
+ Q(n).length === n.length - 1 && e.push(n);
2227
+ }, "pushOrthogonalCandidate"), D = /* @__PURE__ */ t((e) => e === "left" || e === "right", "sideIsHorizontal"), O = /* @__PURE__ */ t((e, t, n) => {
2228
+ switch (t) {
2229
+ case "left": return Math.min(e.x, n.x) - 20;
2230
+ case "right": return Math.max(e.x, n.x) + 20;
2231
+ case "top": return Math.min(e.y, n.y) - 20;
2232
+ case "bottom": return Math.max(e.y, n.y) + 20;
2233
+ }
2234
+ }, "localTrackForSameSide"), k = /* @__PURE__ */ t((e, t, n, r) => {
2235
+ let i = n === "left" || n === "top" ? -1 : 1, a = [O(t, n, r), s[n]];
2236
+ for (let o of a) for (let a = 0; a <= 2; a++) E(e, ue(t, n, r, o + i * 20 * a));
2237
+ }, "addSameSideCandidates"), A = /* @__PURE__ */ t((e, t, n, r, i) => {
2238
+ for (let a of u(n)) for (let n of u(i)) E(e, [
2239
+ t,
2240
+ {
2241
+ x: a,
2242
+ y: t.y
2243
+ },
2244
+ {
2245
+ x: a,
2246
+ y: n
2247
+ },
2248
+ {
2249
+ x: r.x,
2250
+ y: n
2251
+ },
2252
+ r
2253
+ ]);
2254
+ }, "addHorizontalToVerticalCandidates"), j = /* @__PURE__ */ t((e, t, n, r, i) => {
2255
+ for (let a of u(n)) for (let n of u(i)) E(e, [
2256
+ t,
2257
+ {
2258
+ x: t.x,
2259
+ y: a
2260
+ },
2261
+ {
2262
+ x: n,
2263
+ y: a
2264
+ },
2265
+ {
2266
+ x: n,
2267
+ y: r.y
2268
+ },
2269
+ r
2270
+ ]);
2271
+ }, "addVerticalToHorizontalCandidates"), ee = /* @__PURE__ */ t((e, t, n, r, i) => {
2272
+ let a = [...u("top"), ...u("bottom")];
2273
+ for (let o of u(n)) for (let n of u(i)) for (let i of a) E(e, [
2274
+ t,
2275
+ {
2276
+ x: o,
2277
+ y: t.y
2278
+ },
2279
+ {
2280
+ x: o,
2281
+ y: i
2282
+ },
2283
+ {
2284
+ x: n,
2285
+ y: i
2286
+ },
2287
+ {
2288
+ x: n,
2289
+ y: r.y
2290
+ },
2291
+ r
2292
+ ]);
2293
+ }, "addHorizontalPairCandidates"), te = /* @__PURE__ */ t((e, t, n, r, i) => {
2294
+ let a = [...u("left"), ...u("right")];
2295
+ for (let o of u(n)) for (let n of u(i)) for (let i of a) E(e, [
2296
+ t,
2297
+ {
2298
+ x: t.x,
2299
+ y: o
2300
+ },
2301
+ {
2302
+ x: i,
2303
+ y: o
2304
+ },
2305
+ {
2306
+ x: i,
2307
+ y: n
2308
+ },
2309
+ {
2310
+ x: r.x,
2311
+ y: n
2312
+ },
2313
+ r
2314
+ ]);
2315
+ }, "addVerticalPairCandidates"), M = /* @__PURE__ */ t((e) => {
2316
+ let t = /* @__PURE__ */ new Set();
2317
+ return e.map((e) => H(e)).filter((e) => {
2318
+ let n = e.map((e) => `${e.x.toFixed(3)},${e.y.toFixed(3)}`).join("|");
2319
+ return t.has(n) || e.length < 2 ? !1 : (t.add(n), !0);
2320
+ });
2321
+ }, "dedupeCandidatePaths"), ne = /* @__PURE__ */ t((e, t, n, r) => {
2322
+ let i = [], a = le(e, t, n, r, 20, X);
2323
+ a && E(i, a), t === r && k(i, e, t, n);
2324
+ let o = D(t), s = D(r);
2325
+ return o && !s ? A(i, e, t, n, r) : !o && s ? j(i, e, t, n, r) : o ? ee(i, e, t, n, r) : te(i, e, t, n, r), M(i);
2326
+ }, "buildCandidatesForSides"), N = /* @__PURE__ */ t((e, t, n, r) => {
2327
+ let i = [...u("left"), ...u("right")], a = [...u("top"), ...u("bottom")];
2328
+ for (let s of o) {
2329
+ let o = ce(r, s), c = s === "top" || s === "bottom" ? u(s) : a;
2330
+ for (let r of i) {
2331
+ E(e, [
2332
+ t,
2333
+ n,
2334
+ {
2335
+ x: r,
2336
+ y: n.y
2337
+ },
2338
+ {
2339
+ x: r,
2340
+ y: o.y
2341
+ },
2342
+ o
2343
+ ]);
2344
+ for (let i of c) E(e, [
2345
+ t,
2346
+ n,
2347
+ {
2348
+ x: r,
2349
+ y: n.y
2350
+ },
2351
+ {
2352
+ x: r,
2353
+ y: i
2354
+ },
2355
+ {
2356
+ x: o.x,
2357
+ y: i
2358
+ },
2359
+ o
2360
+ ]);
2361
+ }
2362
+ }
2363
+ }, "addVerticalDepartureOuterTrackCandidates"), P = /* @__PURE__ */ t((e, t, n, r) => {
2364
+ let i = [...u("left"), ...u("right")], a = [...u("top"), ...u("bottom")];
2365
+ for (let s of o) {
2366
+ let o = ce(r, s), c = s === "left" || s === "right" ? u(s) : i;
2367
+ for (let r of a) {
2368
+ E(e, [
2369
+ t,
2370
+ n,
2371
+ {
2372
+ x: n.x,
2373
+ y: r
2374
+ },
2375
+ {
2376
+ x: o.x,
2377
+ y: r
2378
+ },
2379
+ o
2380
+ ]);
2381
+ for (let i of c) E(e, [
2382
+ t,
2383
+ n,
2384
+ {
2385
+ x: n.x,
2386
+ y: r
2387
+ },
2388
+ {
2389
+ x: i,
2390
+ y: r
2391
+ },
2392
+ {
2393
+ x: i,
2394
+ y: o.y
2395
+ },
2396
+ o
2397
+ ]);
2398
+ }
2399
+ }
2400
+ }, "addHorizontalDepartureOuterTrackCandidates"), F = /* @__PURE__ */ t((e) => {
2401
+ let t = e.start, n = e.end, r = n ? i.get(n) : void 0;
2402
+ if (!t || !r) return [];
2403
+ let a = H(e.points ?? []);
2404
+ if (a.length < 4) return [];
2405
+ let o = a[0], s = a[1], c = [];
2406
+ return R(o, s, X) ? N(c, o, s, r) : L(o, s, X) && P(c, o, s, r), c;
2407
+ }, "terminalPreservingOuterTrackCandidates"), I = /* @__PURE__ */ t((e) => {
2408
+ let t = e.start, n = e.end, r = t ? i.get(t) : void 0, a = n ? i.get(n) : void 0;
2409
+ if (!r || !a) return [];
2410
+ let s = [];
2411
+ for (let e of o) {
2412
+ let t = ce(r, e);
2413
+ for (let n of o) s.push(...ne(t, e, ce(a, n), n));
2414
+ }
2415
+ return s.push(...F(e)), s;
2416
+ }, "candidatePathsFor"), z = /* @__PURE__ */ t(() => new Map(c.map((e) => [e, Q(d(e))])), "currentSegmentsByEdge"), re = /* @__PURE__ */ t((e, t, n) => {
2417
+ let r = /* @__PURE__ */ new Set();
2418
+ for (let i of c) {
2419
+ if (i === e) continue;
2420
+ let a = n.get(i) ?? Q(d(i));
2421
+ t.some((e) => a.some((t) => B(e, t, .5) >= Z)) && r.add(i);
2422
+ }
2423
+ return r;
2424
+ }, "sharedTrackConflictsFor"), ie = /* @__PURE__ */ t((e, t, n, r) => {
2425
+ let i = /* @__PURE__ */ new Set();
2426
+ return I(e).map((e) => Se(H(e))).filter((t) => {
2427
+ if (T(e, t)) return !1;
2428
+ let n = t.map((e) => `${e.x.toFixed(3)},${e.y.toFixed(3)}`).join("|");
2429
+ return i.has(n) || t.length < 2 ? !1 : (i.add(n), !0);
2430
+ }).map((i) => {
2431
+ let a = Q(i), o = 0;
2432
+ for (let t of c) t !== e && (o += f(a, n.get(t) ?? Q(d(t))));
2433
+ return {
2434
+ candidate: i,
2435
+ candidateSegments: a,
2436
+ crossings: t.count - (r.get(e) ?? 0) + o,
2437
+ bends: V(i, X),
2438
+ totalBends: V(i),
2439
+ length: x(i)
2440
+ };
2441
+ }).filter(({ crossings: e }) => e <= t.count).sort((e, t) => e.crossings - t.crossings || e.bends - t.bends || e.length - t.length).slice(0, 48).map((t) => ({
2442
+ path: t.candidate,
2443
+ segments: t.candidateSegments,
2444
+ sharedTrackConflicts: re(e, t.candidateSegments, n),
2445
+ totalBends: t.totalBends,
2446
+ length: t.length
2447
+ }));
2448
+ }, "pairCandidatesFor"), ae = /* @__PURE__ */ t((e, t, n, r, i, a) => {
2449
+ let o = 0;
2450
+ for (let n of e.pairs) (n.first === t || n.second === t || n.first === r || n.second === r) && (o += n.count);
2451
+ let s = f(n.segments, i.segments);
2452
+ for (let e of c) {
2453
+ if (e === t || e === r) continue;
2454
+ let o = a.get(e) ?? Q(d(e));
2455
+ s += f(n.segments, o) + f(i.segments, o);
2456
+ }
2457
+ return e.count - o + s;
2458
+ }, "pairCrossingCount"), U = /* @__PURE__ */ t((e, t) => {
2459
+ for (let n of e.sharedTrackConflicts) if (n !== t) return !1;
2460
+ return !0;
2461
+ }, "conflictsOnlyWith"), W = /* @__PURE__ */ t((e, t) => e.segments.some((e) => t.segments.some((t) => B(e, t, .5) >= Z)), "candidatesShareTrack"), G = /* @__PURE__ */ t((e, t, n, r) => U(t, n.edge) && U(r, e.edge) && !W(t, r), "pairCandidatesAreCompatible"), oe = /* @__PURE__ */ t((e, t, n, r, i) => {
2462
+ let a = ae(e.current, t.edge, n, r.edge, i, e.baseSegments);
2463
+ if (!(a >= e.current.count)) return {
2464
+ replacements: /* @__PURE__ */ new Map([[t.edge, n.path], [r.edge, i.path]]),
2465
+ crossings: a,
2466
+ bends: e.currentBends - (e.baseBendsByEdge.get(t.edge) ?? 0) - (e.baseBendsByEdge.get(r.edge) ?? 0) + n.totalBends + i.totalBends,
2467
+ length: e.currentLength - (e.baseLengthByEdge.get(t.edge) ?? 0) - (e.baseLengthByEdge.get(r.edge) ?? 0) + n.length + i.length
2468
+ };
2469
+ }, "scorePairReplacement"), se = /* @__PURE__ */ t((e, t) => e.crossings < t.crossings || e.crossings === t.crossings && (e.bends < t.bends || e.bends === t.bends && e.length < t.length), "pairScoreIsBetter"), de = /* @__PURE__ */ t((e, t, n, r) => {
2470
+ let i = r;
2471
+ for (let r of t.candidates) for (let a of n.candidates) {
2472
+ if (!G(t, r, n, a)) continue;
2473
+ let o = oe(e, t, r, n, a);
2474
+ o && se(o, i) && (i = o);
2475
+ }
2476
+ return i;
2477
+ }, "bestScoreForOptionPair"), q = /* @__PURE__ */ t((e) => {
2478
+ let t = S(), n = C(), r = z(), i = b(e), a = new Map(c.map((e) => [e, V(d(e))])), o = new Map(c.map((e) => [e, x(d(e))])), s = /* @__PURE__ */ new Map(), l = v(e);
2479
+ for (let t of l) for (let n of t) {
2480
+ if (s.has(n)) continue;
2481
+ let t = ie(n, e, r, i);
2482
+ t.length > 0 && s.set(n, {
2483
+ edge: n,
2484
+ candidates: t
2485
+ });
2486
+ }
2487
+ let u = {
2488
+ replacements: /* @__PURE__ */ new Map(),
2489
+ crossings: e.count,
2490
+ bends: t,
2491
+ length: n
2492
+ }, f = {
2493
+ current: e,
2494
+ currentBends: t,
2495
+ currentLength: n,
2496
+ baseBendsByEdge: a,
2497
+ baseLengthByEdge: o,
2498
+ baseSegments: r
2499
+ };
2500
+ for (let t of l) {
2501
+ let n = new Set(t.filter((t) => e.edgeSet.has(t))), r = t.map((e) => s.get(e)).filter((e) => !!e);
2502
+ for (let e = 0; e < r.length; e++) {
2503
+ let t = r[e];
2504
+ for (let i = e + 1; i < r.length; i++) {
2505
+ let e = r[i];
2506
+ !n.has(t.edge) && !n.has(e.edge) || (u = de(f, t, e, u));
2507
+ }
2508
+ }
2509
+ }
2510
+ return u.replacements.size > 0 ? u.replacements : void 0;
2511
+ }, "bestPairedReplacement");
2512
+ for (let e = 0; e < 4; e++) {
2513
+ let e = m(), t = e.count;
2514
+ if (t === 0) return;
2515
+ let n, r, i = t, a = Infinity;
2516
+ for (let o of e.edges) {
2517
+ let s = V(d(o), X);
2518
+ for (let c of I(o)) {
2519
+ let l = T(o, c), u = !l && w(o, c), d = y(e, o, c), f = V(c, X);
2520
+ l || u || (d < t || d === t && f < s) && (d > i || d === i && f >= a || (n = o, r = c, i = d, a = f));
2521
+ }
2522
+ }
2523
+ if (n && r) {
2524
+ n.points = r;
2525
+ continue;
2526
+ }
2527
+ let o = q(e);
2528
+ if (!o) return;
2529
+ for (let [e, t] of o) e.points = t;
2530
+ }
2531
+ }
2532
+ t(_t, "resolveRenderedOrthogonalCrossings");
2533
+ var vt = .001, yt = 8;
2534
+ function bt(e, n) {
2535
+ let { nodeInfoById: r, realNodeRects: i } = de(n), a = [
2536
+ "top",
2537
+ "bottom",
2538
+ "left",
2539
+ "right"
2540
+ ], o = {
2541
+ top: Math.min(...i.map((e) => e.rect.top)) - 20,
2542
+ bottom: Math.max(...i.map((e) => e.rect.bottom)) + 20,
2543
+ left: Math.min(...i.map((e) => e.rect.left)) - 20,
2544
+ right: Math.max(...i.map((e) => e.rect.right)) + 20
2545
+ }, s = /* @__PURE__ */ t((e, t, n, r) => {
2546
+ let i = [], a = le(e, t, n, r, 20, vt);
2547
+ return a && i.push(a), t === r && i.push(ue(e, t, n, o[t])), i;
2548
+ }, "buildOrthogonalPathCandidates"), c = /* @__PURE__ */ t((e, t) => {
2549
+ for (let n = 0; n < e.length - 1; n++) {
2550
+ let r = e[n], a = e[n + 1];
2551
+ if (J(r, a, i, t, 1)) return !0;
2552
+ }
2553
+ return !1;
2554
+ }, "pathHitsNode"), l = /* @__PURE__ */ t((t, n, r = !1) => {
2555
+ let i = 0, a = re(t, vt), o = n.start, s = n.end;
2556
+ for (let t of e) {
2557
+ if (t === n || t.isLayoutOnly) continue;
2558
+ let e = t.start, c = t.end;
2559
+ if (!r && o && s && (e === o || e === s || c === o || c === s)) continue;
2560
+ let l = t.points;
2561
+ if (!(!l || l.length < 2)) for (let e of a) for (let t of re(l, vt)) {
2562
+ if (me(e.a, e.b, t.a, t.b, vt, vt)) {
2563
+ i++;
2564
+ continue;
2565
+ }
2566
+ B(e, t, vt) >= yt && i++;
2567
+ }
2568
+ }
2569
+ return i;
2570
+ }, "pathConflictCount"), u = /* @__PURE__ */ t((e, t) => {
2571
+ let n = Math.abs(e.y - t.rect.top), r = Math.abs(e.y - t.rect.bottom), i = Math.abs(e.x - t.rect.left), a = Math.abs(e.x - t.rect.right), o = "top", s = n;
2572
+ return r < s && (o = "bottom", s = r), i < s && (o = "left", s = i), a < s && (o = "right", s = a), o;
2573
+ }, "nearestSideOfRect"), d = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ t((e, t, n) => {
2574
+ let r = d.get(e) ?? [];
2575
+ r.push({
2576
+ side: t,
2577
+ edgeId: n
2578
+ }), d.set(e, r);
2579
+ }, "addFaceClaim");
2580
+ for (let t of e) {
2581
+ if (t.isLayoutOnly) continue;
2582
+ let e = t.points ?? [];
2583
+ if (e.length < 1) continue;
2584
+ let n = t.id ?? "", i = t.start, a = t.end;
2585
+ if (i) {
2586
+ let t = r.get(i);
2587
+ t && f(i, u(e[0], t), n);
2588
+ }
2589
+ if (a) {
2590
+ let t = r.get(a);
2591
+ t && f(a, u(e[e.length - 1], t), n);
2592
+ }
2593
+ }
2594
+ let p = /* @__PURE__ */ t((e, t, n) => d.get(e)?.some((e) => e.edgeId !== n && e.side === t) ?? !1, "faceIsClaimed");
2595
+ for (let t of e) {
2596
+ if (t.isLayoutOnly) continue;
2597
+ let e = t.points;
2598
+ if (!e || e.length < 2) continue;
2599
+ let n = V(e, vt);
2600
+ if (n < 4) continue;
2601
+ let i = t.start, o = t.end;
2602
+ if (!i || !o) continue;
2603
+ let m = r.get(i), h = r.get(o);
2604
+ if (!m || !h) continue;
2605
+ let g = t.id ?? "", _ = l(e, t, !0), v = l(e, t), y, b = _, x = n;
2606
+ for (let e of a) {
2607
+ if (p(i, e, g)) continue;
2608
+ let n = ce(m, e);
2609
+ for (let r of a) {
2610
+ if (p(o, r, g)) continue;
2611
+ let a = ce(h, r);
2612
+ for (let u of s(n, e, a, r)) {
2613
+ if (c(u, [i, o])) continue;
2614
+ let e = V(u, vt);
2615
+ if (_ > 0) {
2616
+ let n = l(u, t, !0);
2617
+ if (n > b || n === b && e >= x) continue;
2618
+ b = n, x = e, y = u;
2619
+ continue;
2620
+ }
2621
+ l(u, t) > v || e < x && (x = e, y = u);
2622
+ }
2623
+ }
2624
+ }
2625
+ if (y) {
2626
+ t.points = y;
2627
+ let e = d.get(i);
2628
+ e && d.set(i, e.filter((e) => e.edgeId !== g));
2629
+ let n = d.get(o);
2630
+ n && d.set(o, n.filter((e) => e.edgeId !== g)), f(i, u(y[0], m), g), f(o, u(y[y.length - 1], h), g);
2631
+ }
2632
+ }
2633
+ }
2634
+ t(bt, "simplifyDetouredEdges");
2635
+ var xt = .001, St = 10, Ct = 7;
2636
+ function wt(e, t) {
2637
+ let n = t ? 0 : e.length - 1, r = t ? 1 : -1, i = e[n], a = e[n + r];
2638
+ if (!i || !a) return;
2639
+ let o = a.x - i.x, s = a.y - i.y;
2640
+ if (!(Math.abs(o) + Math.abs(s) < xt)) {
2641
+ if (Math.abs(s) <= xt) {
2642
+ let e = i.x + Math.sign(o) * St;
2643
+ return {
2644
+ left: Math.min(i.x, e),
2645
+ right: Math.max(i.x, e),
2646
+ top: i.y - Ct,
2647
+ bottom: i.y + Ct
2648
+ };
2649
+ }
2650
+ if (Math.abs(o) <= xt) {
2651
+ let e = i.y + Math.sign(s) * St;
2652
+ return {
2653
+ left: i.x - Ct,
2654
+ right: i.x + Ct,
2655
+ top: Math.min(i.y, e),
2656
+ bottom: Math.max(i.y, e)
2657
+ };
2658
+ }
2659
+ return {
2660
+ left: Math.min(i.x, a.x),
2661
+ right: Math.max(i.x, a.x),
2662
+ top: Math.min(i.y, a.y),
2663
+ bottom: Math.max(i.y, a.y)
2664
+ };
2665
+ }
2666
+ }
2667
+ t(wt, "markerClearanceRectFor");
2668
+ function Tt(e) {
2669
+ return {
2670
+ left: Math.min(e.left, e.right),
2671
+ right: Math.max(e.left, e.right),
2672
+ top: Math.min(e.top, e.bottom),
2673
+ bottom: Math.max(e.top, e.bottom)
2674
+ };
2675
+ }
2676
+ t(Tt, "normalizeRect");
2677
+ function Et(e, t) {
2678
+ let n = H(t);
2679
+ return [wt(n, !0), wt(n, !1)].some((t) => t && G(e, Tt(t)));
2680
+ }
2681
+ t(Et, "labelOverlapsOwnMarker");
2682
+ function Dt(e, n) {
2683
+ let r = [];
2684
+ for (let t of e) {
2685
+ if (t.isLayoutOnly) continue;
2686
+ let e = t.points;
2687
+ if (!(!e || e.length < 2)) for (let n = 0; n < e.length - 1; n++) r.push({
2688
+ edgeId: t.id,
2689
+ p1: e[n],
2690
+ p2: e[n + 1]
2691
+ });
2692
+ }
2693
+ let i = [], a = [];
2694
+ for (let e of n.values()) {
2695
+ let t = e.isGroup, n = e.parentId;
2696
+ if (t && !n) {
2697
+ let t = K(e);
2698
+ t && a.push({
2699
+ id: e.id,
2700
+ rect: t
2701
+ });
2702
+ continue;
2703
+ }
2704
+ if (t || e.isEdgeLabel) continue;
2705
+ let r = K(e);
2706
+ r && i.push({
2707
+ nodeId: e.id,
2708
+ rect: r
2709
+ });
2710
+ }
2711
+ let o = /* @__PURE__ */ t((e, t) => {
2712
+ let n = oe(t, 3);
2713
+ for (let { nodeId: t, rect: r } of i) if (t !== e && G(n, r)) return !0;
2714
+ return !1;
2715
+ }, "labelOverlapsForeignNode"), s = /* @__PURE__ */ t((e, t) => {
2716
+ let n = oe(t, 3);
2717
+ for (let t of r) if (t.edgeId !== e && ae(t.p1, t.p2, n)) return !0;
2718
+ return !1;
2719
+ }, "labelOverlapsForeignEdge"), c = /* @__PURE__ */ t((e, t, n) => o(e, n) || s(t, n), "labelOverlapsAnything"), l = [], u = /* @__PURE__ */ t((e) => {
2720
+ for (let { id: t, rect: n } of a) if (W(n, e)) return t;
2721
+ }, "findContainingLane"), d = /* @__PURE__ */ t((e, t) => l.some((n) => n.labelId !== e && G(t, n.rect)), "overlapsPlacedLabel");
2722
+ for (let r of e) {
2723
+ if (r.isLayoutOnly) continue;
2724
+ let e = r.labelNodeId;
2725
+ if (!e) continue;
2726
+ let i = n.get(e);
2727
+ if (!i) continue;
2728
+ let f = r.points;
2729
+ if (!f || f.length < 2) continue;
2730
+ let p = i.width ?? 0, m = i.height ?? 0;
2731
+ if (p <= 0 || m <= 0) continue;
2732
+ let h = [];
2733
+ for (let e = 0; e < f.length - 1; e++) {
2734
+ let t = f[e], n = f[e + 1], r = Math.abs(t.x - n.x), i = Math.abs(t.y - n.y);
2735
+ r < xt && i < xt || r >= xt && i >= xt || h.push({
2736
+ idx: e,
2737
+ length: r + i,
2738
+ orientation: r >= xt ? "horizontal" : "vertical",
2739
+ midX: (t.x + n.x) / 2,
2740
+ midY: (t.y + n.y) / 2
2741
+ });
2742
+ }
2743
+ if (h.length === 0) continue;
2744
+ let g = h.length >= 3 ? h.filter((e) => e.idx > 0 && e.idx < h.length - 1) : h, _ = g.length > 0 ? g : h, v = p >= m ? "horizontal" : "vertical", y = /* @__PURE__ */ t((e) => [...e].sort((e, t) => {
2745
+ let n = e.orientation === v;
2746
+ if (n !== (t.orientation === v)) return n ? -1 : 1;
2747
+ let r = e.length >= (e.orientation === "horizontal" ? p : m) + 2;
2748
+ return r === t.length >= (t.orientation === "horizontal" ? p : m) + 2 ? t.length - e.length : r ? -1 : 1;
2749
+ }), "rankSegments"), b = h[0], x = h[h.length - 1], S = [
2750
+ .5,
2751
+ .25,
2752
+ .75,
2753
+ .05,
2754
+ .95,
2755
+ .15,
2756
+ .85,
2757
+ .1,
2758
+ .9
2759
+ ], C = /* @__PURE__ */ t((e, t) => {
2760
+ let n = f[e.idx], r = f[e.idx + 1];
2761
+ return {
2762
+ midX: n.x + (r.x - n.x) * t,
2763
+ midY: n.y + (r.y - n.y) * t
2764
+ };
2765
+ }, "anchorAtT"), w = /* @__PURE__ */ t((e, t, n) => Math.min(n, Math.max(t, e)), "clamp"), T = /* @__PURE__ */ t((e, t) => e.midX >= t.left - xt && e.midX <= t.right + xt && e.midY >= t.top - xt && e.midY <= t.bottom + xt, "pointInsideRectInclusive"), E = /* @__PURE__ */ t((e) => {
2766
+ let t = se(e.midX, e.midY, p, m), n = u(t);
2767
+ if (n) return {
2768
+ laneId: n,
2769
+ anchor: e,
2770
+ rect: t
2771
+ };
2772
+ let r = a.find(({ rect: t }) => T(e, t));
2773
+ if (!r) return;
2774
+ let i = r.rect.left + p / 2 + 1, o = r.rect.right - p / 2 - 1, s = r.rect.top + m / 2 + 1, c = r.rect.bottom - m / 2 - 1;
2775
+ if (i > o || s > c) return;
2776
+ let l = {
2777
+ midX: w(e.midX, i, o),
2778
+ midY: w(e.midY, s, c)
2779
+ }, d = se(l.midX, l.midY, p, m);
2780
+ return T(e, d) ? {
2781
+ laneId: r.id,
2782
+ anchor: l,
2783
+ rect: d
2784
+ } : void 0;
2785
+ }, "placementForAnchor"), D = /* @__PURE__ */ t((e, t, n) => e.orientation === "horizontal" ? Math.abs(t.midX - n.x) : Math.abs(t.midY - n.y), "distanceAlongSegment"), O = /* @__PURE__ */ t((e, t) => {
2786
+ let n = (e.orientation === "horizontal" ? p / 2 : m / 2) + 12;
2787
+ if (e === b) {
2788
+ let r = f[e.idx];
2789
+ if (D(e, t, r) + xt < n) return !1;
2790
+ }
2791
+ if (e === x) {
2792
+ let r = f[e.idx + 1];
2793
+ if (D(e, t, r) + xt < n) return !1;
2794
+ }
2795
+ return !0;
2796
+ }, "labelClearsTerminalEndpoints"), k = /* @__PURE__ */ t((t) => {
2797
+ let n = y(t);
2798
+ for (let t of n) for (let n of S) {
2799
+ let i = C(t, n);
2800
+ if (!O(t, i)) continue;
2801
+ let a = E(i);
2802
+ if (a && !Et(a.rect, f) && !d(e, a.rect) && !c(e, r.id, a.rect)) return {
2803
+ laneId: a.laneId,
2804
+ anchor: a.anchor
2805
+ };
2806
+ }
2807
+ }, "tryPool"), A = /* @__PURE__ */ t((t, n, i = !1) => {
2808
+ let a = y(t);
2809
+ for (let t of a) {
2810
+ let a = {
2811
+ midX: t.midX,
2812
+ midY: t.midY
2813
+ };
2814
+ if (n && !O(t, a)) continue;
2815
+ let c = E(a);
2816
+ if (c && !Et(c.rect, f) && !d(e, c.rect) && !o(e, c.rect) && (i || !s(r.id, c.rect))) return {
2817
+ laneId: c.laneId,
2818
+ anchor: c.anchor
2819
+ };
2820
+ }
2821
+ }, "findLaneContainingFallback"), j = k(_) ?? (_.length < h.length ? k(h) : void 0) ?? A(h, !0) ?? A(h, !1) ?? A(h, !1, !0);
2822
+ if (j) {
2823
+ i.x = j.anchor.midX, i.y = j.anchor.midY, i.parentId = j.laneId;
2824
+ let t = se(j.anchor.midX, j.anchor.midY, p, m), n = l.findIndex((t) => t.labelId === e);
2825
+ n >= 0 ? l[n] = {
2826
+ labelId: e,
2827
+ rect: t
2828
+ } : l.push({
2829
+ labelId: e,
2830
+ rect: t
2831
+ });
2832
+ }
2833
+ }
2834
+ }
2835
+ t(Dt, "anchorLabelsToPolyline");
2836
+ var Ot = 1e-6, kt = 8 / 2, At = 3;
2837
+ function jt(e, t) {
2838
+ return e < t ? `${e}::${t}` : `${t}::${e}`;
2839
+ }
2840
+ t(jt, "pairKey");
2841
+ function Mt(e, n) {
2842
+ let { nodeInfoById: r, realNodeRects: i } = de(n), a = /* @__PURE__ */ new Map();
2843
+ for (let e of n) {
2844
+ let t = e.id;
2845
+ if (!e.isGroup && e.isEdgeLabel) {
2846
+ a.set(t, {
2847
+ w: e.width ?? 0,
2848
+ h: e.height ?? 0
2849
+ });
2850
+ continue;
2851
+ }
2852
+ }
2853
+ let o = /* @__PURE__ */ t((n, r, i, o) => {
2854
+ let s = jt(r, i), c = 0, l = /* @__PURE__ */ t((e) => {
2855
+ if (!e) return;
2856
+ let t = a.get(e);
2857
+ if (!t) return;
2858
+ let n = o === "x" ? t.w / 2 : t.h / 2;
2859
+ n > c && (c = n);
2860
+ }, "consider");
2861
+ l(n.labelNodeId);
2862
+ for (let t of e) {
2863
+ if (t === n || t.isLayoutOnly) continue;
2864
+ let e = t.start, r = t.end;
2865
+ !e || !r || jt(e, r) === s && l(t.labelNodeId);
2866
+ }
2867
+ return c > 0 ? c + At : 0;
2868
+ }, "labelClearanceFor");
2869
+ for (let t of e) {
2870
+ if (t.isLayoutOnly) continue;
2871
+ let n = t.points;
2872
+ if (!ie(n, Ot)) continue;
2873
+ let a = pe(t, r, Ot);
2874
+ if (!a) continue;
2875
+ let { srcId: s, dstId: c, srcInfo: l, dstInfo: u, collinearX: d, collinearY: f } = a;
2876
+ if (d === f) continue;
2877
+ let p, m;
2878
+ if (d) {
2879
+ let e = u.cy > l.cy;
2880
+ p = {
2881
+ x: l.cx,
2882
+ y: e ? l.rect.bottom : l.rect.top
2883
+ }, m = {
2884
+ x: u.cx,
2885
+ y: e ? u.rect.top : u.rect.bottom
2886
+ };
2887
+ } else {
2888
+ let e = u.cx > l.cx;
2889
+ p = {
2890
+ x: e ? l.rect.right : l.rect.left,
2891
+ y: l.cy
2892
+ }, m = {
2893
+ x: e ? u.rect.left : u.rect.right,
2894
+ y: u.cy
2895
+ };
2896
+ }
2897
+ if (J(p, m, i, [s, c], 1)) continue;
2898
+ let h = o(t, s, c, d ? "x" : "y"), g = h > kt ? h : kt, _ = [
2899
+ 0,
2900
+ g,
2901
+ -g
2902
+ ];
2903
+ for (let n of _) {
2904
+ let r = { ...p }, a = { ...m };
2905
+ if (d) {
2906
+ if (r.x += n, a.x += n, r.x <= l.rect.left || r.x >= l.rect.right || a.x <= u.rect.left || a.x >= u.rect.right) continue;
2907
+ } else if (r.y += n, a.y += n, r.y <= l.rect.top || r.y >= l.rect.bottom || a.y <= u.rect.top || a.y >= u.rect.bottom) continue;
2908
+ if (!J(r, a, i, [s, c], 1) && !ge(r, a, e, t, { epsilon: Ot })) {
2909
+ t.points = [r, a];
2910
+ break;
2911
+ }
2912
+ }
2913
+ }
2914
+ }
2915
+ t(Mt, "straightenCollinearSiblingDetours");
2916
+ function Nt(e, n) {
2917
+ let r = .001, { realNodeRects: i, labelNodeRects: a } = q(n.values()), o = /* @__PURE__ */ t((e, t) => re(t, r).map((n) => ({
2918
+ ...n,
2919
+ edge: e,
2920
+ interior: n.index >= 1 && n.index <= t.length - 3
2921
+ })), "segmentsFor"), s = /* @__PURE__ */ t(() => {
2922
+ let t = [];
2923
+ for (let n of e) {
2924
+ if (n.isLayoutOnly) continue;
2925
+ let e = n.points;
2926
+ !e || e.length < 2 || t.push(...o(n, H(e)));
2927
+ }
2928
+ return t;
2929
+ }, "allSegments"), c = /* @__PURE__ */ t((e, t) => e.horizontal && t.horizontal ? z(e.a.x, e.b.x, t.a.x, t.b.x) >= 8 && Math.abs(e.a.y - t.a.y) < 7 : e.vertical && t.vertical ? z(e.a.y, e.b.y, t.a.y, t.b.y) >= 8 && Math.abs(e.a.x - t.a.x) < 7 : !1, "hasCrowdedParallelTrack"), l = /* @__PURE__ */ t((t, n) => {
2930
+ let s = t.start, l = t.end, u = o(t, n);
2931
+ if (u.length !== n.length - 1) return !1;
2932
+ let d = [s, l].filter((e) => !!e), f = t.labelNodeId ? [t.labelNodeId] : [];
2933
+ for (let e of u) if (J(e.a, e.b, i, d, -2) || J(e.a, e.b, a, f, -2)) return !1;
2934
+ for (let n of e) {
2935
+ if (n === t || n.isLayoutOnly) continue;
2936
+ let e = n.points;
2937
+ if (!(!e || e.length < 2)) {
2938
+ for (let t of u) for (let i of o(n, H(e))) if (c(t, i) || _e(t.a, t.b, i.a, i.b, r)) return !1;
2939
+ }
2940
+ }
2941
+ return !0;
2942
+ }, "candidateIsSafe"), u = /* @__PURE__ */ t((e, t) => {
2943
+ let n = H(e.edge.points ?? []);
2944
+ if (n.length < 4 || e.index >= n.length - 1) return;
2945
+ let r = n.map((e) => ({ ...e }));
2946
+ if (e.horizontal) r[e.index].y += t, r[e.index + 1].y += t;
2947
+ else if (e.vertical) r[e.index].x += t, r[e.index + 1].x += t;
2948
+ else return;
2949
+ return o(e.edge, r).length === r.length - 1 ? r : void 0;
2950
+ }, "shiftedCandidate"), d = /* @__PURE__ */ t((e, t) => ({
2951
+ x: e.x ?? (t.left + t.right) / 2,
2952
+ y: e.y ?? (t.top + t.bottom) / 2
2953
+ }), "nodeCenter"), f = /* @__PURE__ */ t((e) => {
2954
+ let t = e.edge, r = H(t.points ?? []);
2955
+ if (r.length !== 4 || e.index !== 1) return;
2956
+ let i = t.start ? n.get(t.start) : void 0, a = t.end ? n.get(t.end) : void 0, o = i ? K(i) : void 0, s = a ? K(a) : void 0, c = r.slice(e.index + 2);
2957
+ if (!(!i || !a || !o || !s || c.length === 0)) return {
2958
+ sourceCenter: d(i, o),
2959
+ targetCenter: d(a, s),
2960
+ sourceRect: o,
2961
+ tail: c
2962
+ };
2963
+ }, "sourceDetourContextFor"), p = /* @__PURE__ */ t((e, t, n, i, a, o) => {
2964
+ let s = i.y >= n.y, c = s ? a.bottom : a.top, l = c + (s ? 20 : -20);
2965
+ if (s && e.b.y <= l + r || !s && e.b.y >= l - r) return;
2966
+ let u = e.a.x + t;
2967
+ return H([
2968
+ {
2969
+ x: n.x,
2970
+ y: c
2971
+ },
2972
+ {
2973
+ x: n.x,
2974
+ y: l
2975
+ },
2976
+ {
2977
+ x: u,
2978
+ y: l
2979
+ },
2980
+ {
2981
+ x: u,
2982
+ y: e.b.y
2983
+ },
2984
+ ...o
2985
+ ], r);
2986
+ }, "verticalSourceDetour"), m = /* @__PURE__ */ t((e, t, n, i, a, o) => {
2987
+ let s = i.x >= n.x, c = s ? a.right : a.left, l = c + (s ? 20 : -20);
2988
+ if (s && e.b.x <= l + r || !s && e.b.x >= l - r) return;
2989
+ let u = e.a.y + t;
2990
+ return H([
2991
+ {
2992
+ x: c,
2993
+ y: n.y
2994
+ },
2995
+ {
2996
+ x: l,
2997
+ y: n.y
2998
+ },
2999
+ {
3000
+ x: l,
3001
+ y: u
3002
+ },
3003
+ {
3004
+ x: e.b.x,
3005
+ y: u
3006
+ },
3007
+ ...o
3008
+ ], r);
3009
+ }, "horizontalSourceDetour"), h = /* @__PURE__ */ t((e, t) => {
3010
+ let n = f(e);
3011
+ if (n) {
3012
+ if (e.vertical) return p(e, t, n.sourceCenter, n.targetCenter, n.sourceRect, n.tail);
3013
+ if (e.horizontal) return m(e, t, n.sourceCenter, n.targetCenter, n.sourceRect, n.tail);
3014
+ }
3015
+ }, "sourceDetourCandidate"), g = [
3016
+ -7,
3017
+ 7,
3018
+ -14,
3019
+ 14,
3020
+ -21,
3021
+ 21
3022
+ ];
3023
+ for (let e = 0; e < 12; e++) {
3024
+ let e = s(), t = !1;
3025
+ for (let n = 0; n < e.length && !t; n++) for (let r = n + 1; r < e.length && !t; r++) {
3026
+ let i = e[n], a = e[r];
3027
+ if (i.edge === a.edge || !c(i, a)) continue;
3028
+ let o = [i, a].filter((e) => e.interior);
3029
+ for (let e of o) {
3030
+ for (let n of g) {
3031
+ let r = u(e, n);
3032
+ if (r && l(e.edge, r)) {
3033
+ e.edge.points = r, t = !0;
3034
+ break;
3035
+ }
3036
+ let i = h(e, n);
3037
+ if (i && l(e.edge, i)) {
3038
+ e.edge.points = i, t = !0;
3039
+ break;
3040
+ }
3041
+ }
3042
+ if (t) break;
3043
+ }
3044
+ }
3045
+ if (!t) return;
3046
+ }
3047
+ }
3048
+ t(Nt, "nudgeSharedInteriorSubpaths");
3049
+ function Pt(e, t, n, r) {
3050
+ let i = t.x - e.x, a = t.y - e.y, o = r.x - n.x, s = r.y - n.y, c = i * s - a * o;
3051
+ if (Math.abs(c) < 1e-10) return !1;
3052
+ let l = n.x - e.x, u = n.y - e.y, d = (l * s - u * o) / c, f = (l * a - u * i) / c, p = .01;
3053
+ return d > p && d < 1 - p && f > p && f < 1 - p;
3054
+ }
3055
+ t(Pt, "segmentsIntersect");
3056
+ function Ft(t) {
3057
+ let n = t.nodes ?? [], r = t.edges ?? [], i = [];
3058
+ if (!r.length || !n.length) return i;
3059
+ let a = fe(n), o = [];
3060
+ for (let e of r) {
3061
+ if (e.isLayoutOnly) continue;
3062
+ let t = e.points;
3063
+ if (!t || t.length < 2) continue;
3064
+ let n = e.start, r = e.end, s = e.labelNodeId, c = e.id ?? `${n}->${r}`;
3065
+ for (let e of a) if (!(e.nodeId === n || e.nodeId === r) && !(s && e.nodeId === s)) {
3066
+ for (let n = 0; n < t.length - 1; n++) if (ae(t[n], t[n + 1], e, -1)) {
3067
+ i.push({
3068
+ type: "edge-node-overlap",
3069
+ edgeId: c,
3070
+ targetId: e.nodeId,
3071
+ detail: `segment ${n} passes through node "${e.nodeId}"`
3072
+ });
3073
+ break;
3074
+ }
3075
+ }
3076
+ for (let e = 0; e < t.length - 1; e++) o.push({
3077
+ edgeId: c,
3078
+ start: n,
3079
+ end: r,
3080
+ p1: t[e],
3081
+ p2: t[e + 1]
3082
+ });
3083
+ }
3084
+ let s = /* @__PURE__ */ new Set();
3085
+ for (let e = 0; e < o.length; e++) for (let t = e + 1; t < o.length; t++) {
3086
+ let n = o[e], r = o[t];
3087
+ if (n.edgeId !== r.edgeId && !(n.start === r.start || n.start === r.end || n.end === r.start || n.end === r.end) && Pt(n.p1, n.p2, r.p1, r.p2)) {
3088
+ let e = n.edgeId < r.edgeId ? `${n.edgeId}|${r.edgeId}` : `${r.edgeId}|${n.edgeId}`;
3089
+ s.has(e) || (s.add(e), i.push({
3090
+ type: "edge-edge-crossing",
3091
+ edgeId: n.edgeId,
3092
+ targetId: r.edgeId,
3093
+ detail: `edges "${n.edgeId}" and "${r.edgeId}" cross`
3094
+ }));
3095
+ }
3096
+ }
3097
+ if (i.length > 0) {
3098
+ let t = i.filter((e) => e.type === "edge-node-overlap").length, n = i.filter((e) => e.type === "edge-edge-crossing").length;
3099
+ e.warn(`[SWIMLANE_VALIDATE] ${i.length} issue(s) detected: ${t} edge-node overlap(s), ${n} edge crossing(s)`);
3100
+ for (let t of i) e.warn(`[SWIMLANE_VALIDATE] ${t.type}: ${t.detail}`);
3101
+ }
3102
+ return i;
3103
+ }
3104
+ t(Ft, "validateSwimlanesLayout");
3105
+ function It(e, n) {
3106
+ let r = e.nodes ?? [], i = e.edges ?? [], a = r.filter((e) => !e.isGroup);
3107
+ if ((n === "LR" || n === "RL") && a.length > 0 && !nt(e, n) || n === "BT" && a.length > 0 && !tt(e)) return;
3108
+ for (let e of i) {
3109
+ if (e.isLayoutOnly) continue;
3110
+ let t = e.points;
3111
+ !t || t.length < 2 || (e.points = Se(xe(t)));
3112
+ }
3113
+ bt(i, r), Mt(i, r), ot(i, r);
3114
+ let o = /* @__PURE__ */ new Map();
3115
+ for (let e of r) o.set(String(e.id), e);
3116
+ Dt(i, o), Oe(i, o), st(i, o), Nt(i, o), lt(i, o), ut(i, o), dt(i, o), mt(i, o);
3117
+ let s = /* @__PURE__ */ t(() => {
3118
+ _t(i, o), ht(i, o), gt(i, o), Dt(i, o), qe(i, o), dt(i, o), Dt(i, o), qe(i, o);
3119
+ }, "finalizeRenderedEdges");
3120
+ s(), Nt(i, o), s(), ft(i, o), pt(i, o), ft(i, o), pt(i, o);
3121
+ }
3122
+ t(It, "postProcessSwimlaneLayout");
3123
+ function Lt(e) {
3124
+ let t = new Map(e.nodeById), n = /* @__PURE__ */ new Set(), r = [];
3125
+ for (let i of e.edges) {
3126
+ if (!t.has(i.src) || !t.has(i.dst)) continue;
3127
+ let e = `${i.id}:${i.src}->${i.dst}`;
3128
+ n.has(e) || (n.add(e), r.push(i));
3129
+ }
3130
+ return {
3131
+ nodes: [...t.keys()],
3132
+ edges: r,
3133
+ layout: e.layout,
3134
+ nodeById: t
3135
+ };
3136
+ }
3137
+ t(Lt, "normalizeGraph");
3138
+ function Rt(e, t) {
3139
+ return e.edges.filter((e) => e.dst === t);
3140
+ }
3141
+ t(Rt, "incoming");
3142
+ function zt(e) {
3143
+ let t = /* @__PURE__ */ new Map();
3144
+ for (let n of e.nodes) t.set(n, []);
3145
+ for (let n of e.edges) t.get(n.src).push(n.dst);
3146
+ return t;
3147
+ }
3148
+ t(zt, "buildSuccessorMap");
3149
+ function Bt(e) {
3150
+ let t = zt(e);
3151
+ for (let e of t.values()) e.sort((e, t) => e.localeCompare(t));
3152
+ return t;
3153
+ }
3154
+ t(Bt, "buildSortedSuccessorMap");
3155
+ function Vt(e) {
3156
+ let t = /* @__PURE__ */ new Map();
3157
+ for (let n of e.nodes) t.set(n, 0);
3158
+ for (let n of e.edges) t.set(n.dst, (t.get(n.dst) ?? 0) + 1);
3159
+ return t;
3160
+ }
3161
+ t(Vt, "buildInDegreeMap");
3162
+ function Ht(e) {
3163
+ return [...e.entries()].filter(([, e]) => e === 0).map(([e]) => e).sort((e, t) => e.localeCompare(t));
3164
+ }
3165
+ t(Ht, "sortedZeroInDegreeNodes");
3166
+ function Ut(e, t = () => !0) {
3167
+ let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
3168
+ for (let t of e.nodes) n.set(t, []), r.set(t, []);
3169
+ for (let i of e.edges) t(i) && (r.get(i.src).push(i.dst), n.get(i.dst).push(i.src));
3170
+ return {
3171
+ preds: n,
3172
+ succs: r
3173
+ };
3174
+ }
3175
+ t(Ut, "buildPredecessorSuccessorMaps");
3176
+ function Wt(e, t, n, r) {
3177
+ let i = 0;
3178
+ for (let t of e.nodes) r?.skipGroups && e.nodeById.get(t)?.isGroup || (i = Math.max(i, n[t] ?? 0));
3179
+ let a = Array.from({ length: i + 1 }, () => []);
3180
+ for (let i of t) r?.skipGroups && e.nodeById.get(i)?.isGroup || a[Math.max(0, n[i] ?? 0)].push(i);
3181
+ return a;
3182
+ }
3183
+ t(Wt, "buildLayersFromRanks");
3184
+ function Gt(e) {
3185
+ let t = Vt(e), n = Ht(t), r = [], i = Bt(e);
3186
+ for (; n.length;) {
3187
+ let e = n.shift();
3188
+ r.push(e);
3189
+ for (let r of i.get(e) ?? []) if (t.set(r, (t.get(r) ?? 0) - 1), (t.get(r) ?? 0) === 0) {
3190
+ let e = 0;
3191
+ for (; e < n.length && n[e] < r;) e++;
3192
+ n.splice(e, 0, r);
3193
+ }
3194
+ }
3195
+ return r.length === e.nodes.length ? r : null;
3196
+ }
3197
+ t(Gt, "topoSortIfAcyclic");
3198
+ function Kt(e) {
3199
+ let t = /* @__PURE__ */ new Map(), n = 0;
3200
+ for (let r of e) t.set(r, n), n++;
3201
+ return t;
3202
+ }
3203
+ t(Kt, "buildLayerIndex");
3204
+ function qt(e) {
3205
+ let n = Array(e.length), r = /* @__PURE__ */ t((t, i) => {
3206
+ if (i - t <= 1) return 0;
3207
+ let a = t + i >> 1, o = r(t, a) + r(a, i), s = t, c = a, l = t;
3208
+ for (; s < a || c < i;) c >= i || s < a && e[s] <= e[c] ? n[l++] = e[s++] : (n[l++] = e[c++], o += a - s);
3209
+ for (let r = t; r < i; r++) e[r] = n[r];
3210
+ return o;
3211
+ }, "count");
3212
+ return r(0, e.length);
3213
+ }
3214
+ t(qt, "countInversions");
3215
+ function Jt(e) {
3216
+ let n = Lt(e), r = /* @__PURE__ */ new Map();
3217
+ for (let e of n.nodes) r.set(e, []);
3218
+ for (let e of n.edges) r.get(e.src).push(e);
3219
+ for (let e of r.values()) e.sort((e, t) => e.dst === t.dst ? e.id.localeCompare(t.id) : e.dst.localeCompare(t.dst));
3220
+ let i = /* @__PURE__ */ Object.create(null);
3221
+ for (let e of n.nodes) i[e] = 0;
3222
+ let a = [], o = /* @__PURE__ */ t((e) => {
3223
+ i[e] = 1;
3224
+ for (let t of r.get(e) ?? []) {
3225
+ let e = t.dst;
3226
+ i[e] === 0 ? o(e) : i[e] === 1 && a.push(t);
3227
+ }
3228
+ i[e] = 2;
3229
+ }, "dfs"), s = [...n.nodes].sort((e, t) => e.localeCompare(t));
3230
+ for (let e of s) i[e] === 0 && o(e);
3231
+ let c = new Set(a.map((e) => `${e.id}:${e.src}->${e.dst}`)), l = n.edges.map((e) => c.has(`${e.id}:${e.src}->${e.dst}`) ? {
3232
+ id: e.id,
3233
+ src: e.dst,
3234
+ dst: e.src,
3235
+ weight: e.weight,
3236
+ ref: e.ref
3237
+ } : e);
3238
+ return {
3239
+ acyclic: {
3240
+ nodes: [...n.nodes],
3241
+ edges: l,
3242
+ layout: n.layout,
3243
+ nodeById: new Map(n.nodeById)
3244
+ },
3245
+ reversed: a
3246
+ };
3247
+ }
3248
+ t(Jt, "removeCycles_DFS");
3249
+ function Yt(e) {
3250
+ let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ t((t) => {
3251
+ if (n.has(t)) return n.get(t);
3252
+ let i = e.nodeById.get(t);
3253
+ if (!i) return n.set(t, null), null;
3254
+ let a = i.parentId;
3255
+ if (!a) return n.set(t, null), null;
3256
+ let o = r(a) ?? a;
3257
+ return n.set(t, o), o;
3258
+ }, "resolve");
3259
+ for (let t of e.nodes) r(t);
3260
+ return n;
3261
+ }
3262
+ t(Yt, "buildTopLaneMap");
3263
+ function Xt(e) {
3264
+ let t = Yt(e);
3265
+ return (e) => t.get(e) ?? null;
3266
+ }
3267
+ t(Xt, "createTopLaneResolver");
3268
+ function Zt(e) {
3269
+ let t = [];
3270
+ for (let n of e.layout.nodes ?? []) n.isGroup && !n.parentId && t.push(n.id);
3271
+ return [...new Set(t)].reverse();
3272
+ }
3273
+ t(Zt, "buildTopLaneOrder");
3274
+ function Qt(e, t) {
3275
+ let n = Zt(e);
3276
+ if (!t || t.length === 0) return n;
3277
+ let r = new Set(n), i = /* @__PURE__ */ new Set(), a = [];
3278
+ for (let e of t) !r.has(e) || i.has(e) || (i.add(e), a.push(e));
3279
+ for (let e of n) i.has(e) || a.push(e);
3280
+ return a;
3281
+ }
3282
+ t(Qt, "resolveTopLaneOrder");
3283
+ var $t = { EPSILON: 1e-6 }, en = {
3284
+ GRAVITY_ITERATIONS: 8,
3285
+ MAX_CROSSING_OPTIMIZATION_PASSES: 4,
3286
+ DEFAULT_COMPACT_SINGLE_INPUT: !0
3287
+ }, tn = {
3288
+ DEFAULT_LAYER_GAP: 100,
3289
+ DEFAULT_NODE_GAP: 40
3290
+ };
3291
+ function nn(e, n) {
3292
+ let r = Lt(e), i = n?.laneOf ?? (() => null), a = n?.rankHint, { preds: o } = Ut(r);
3293
+ for (let e of o.values()) e.sort((e, t) => e.localeCompare(t));
3294
+ let s = Gt(r) ?? [...r.nodes].sort((e, t) => e.localeCompare(t)), c = /* @__PURE__ */ new Map();
3295
+ for (let [e, t] of s.entries()) c.set(t, e);
3296
+ let l = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map();
3297
+ for (let e of r.nodes) u.set(e, []);
3298
+ for (let e of s) {
3299
+ let t = (o.get(e) ?? []).filter((e) => l.has(e));
3300
+ if (t.length > 0) {
3301
+ let n = rn(e, t, {
3302
+ laneOf: i,
3303
+ rankHint: a,
3304
+ topoIndex: c
3305
+ });
3306
+ l.set(e, n), u.get(n).push(e);
3307
+ } else l.has(e) || l.set(e, null);
3308
+ }
3309
+ for (let e of r.nodes) l.has(e) || l.set(e, null);
3310
+ let d = /* @__PURE__ */ new Set();
3311
+ for (let e of r.nodes) (l.get(e) ?? null) === null && d.add(e);
3312
+ let f = [...d].sort((e, t) => {
3313
+ let n = c.get(e) ?? 0, r = c.get(t) ?? 0;
3314
+ return n === r ? e.localeCompare(t) : n - r;
3315
+ }), p = an(r), m = /* @__PURE__ */ new Map();
3316
+ for (let [e, t] of p.entries()) m.set(e, [...t].sort((e, t) => e.localeCompare(t)));
3317
+ let h = on(m), g = sn(m), _ = /* @__PURE__ */ new Map();
3318
+ for (let e of r.nodes) _.set(e, []);
3319
+ for (let e of g) for (let t of e.nodes) {
3320
+ let n = _.get(t);
3321
+ n ? n.push(e.id) : _.set(t, [e.id]);
3322
+ }
3323
+ let v = [], y = [], b = /* @__PURE__ */ new Set(), x = /* @__PURE__ */ t((e) => {
3324
+ if (!b.has(e)) {
3325
+ b.add(e), v.push(e);
3326
+ for (let t of u.get(e) ?? []) x(t);
3327
+ y.push(e);
3328
+ }
3329
+ }, "walk");
3330
+ for (let e of f) x(e);
3331
+ for (let e of s) x(e);
3332
+ return {
3333
+ parent: l,
3334
+ children: u,
3335
+ roots: f,
3336
+ componentOf: h,
3337
+ blocks: g,
3338
+ nodeBlocks: _,
3339
+ adjacency: m,
3340
+ preorder: v,
3341
+ postorder: y,
3342
+ topologicalOrder: s
3343
+ };
3344
+ }
3345
+ t(nn, "buildDrivingTree");
3346
+ function rn(e, t, n) {
3347
+ let r = n.laneOf(e);
3348
+ return [...t].sort((e, t) => {
3349
+ let i = n.laneOf(e), a = n.laneOf(t), o = i != null && i === r;
3350
+ if (o !== (a != null && a === r)) return o ? -1 : 1;
3351
+ let s = n.rankHint?.[e], c = n.rankHint?.[t];
3352
+ if (s != null && c != null && s !== c) return c - s;
3353
+ let l = n.topoIndex.get(e) ?? 0, u = n.topoIndex.get(t) ?? 0;
3354
+ return l === u ? e.localeCompare(t) : l - u;
3355
+ })[0];
3356
+ }
3357
+ t(rn, "chooseParent");
3358
+ function an(e) {
3359
+ let t = /* @__PURE__ */ new Map();
3360
+ for (let n of e.nodes) t.set(n, /* @__PURE__ */ new Set());
3361
+ for (let n of e.edges) t.get(n.src).add(n.dst), t.get(n.dst).add(n.src);
3362
+ return t;
3363
+ }
3364
+ t(an, "buildAdjacency");
3365
+ function on(e) {
3366
+ let t = /* @__PURE__ */ new Map(), n = 0;
3367
+ for (let r of e.keys()) {
3368
+ if (t.has(r)) continue;
3369
+ let i = [r];
3370
+ for (; i.length > 0;) {
3371
+ let r = i.pop();
3372
+ if (!t.has(r)) {
3373
+ t.set(r, n);
3374
+ for (let n of e.get(r) ?? []) t.has(n) || i.push(n);
3375
+ }
3376
+ }
3377
+ n++;
3378
+ }
3379
+ return t;
3380
+ }
3381
+ t(on, "assignComponents");
3382
+ function sn(e) {
3383
+ let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = [], a = [], o = 0, s = /* @__PURE__ */ t((t, c) => {
3384
+ n.set(t, ++o), r.set(t, o);
3385
+ for (let l of e.get(t) ?? []) l !== c && (n.has(l) ? (n.get(l) ?? 0) < (n.get(t) ?? 0) && (i.push([t, l]), r.set(t, Math.min(r.get(t) ?? o, n.get(l) ?? o))) : (i.push([t, l]), s(l, t), r.set(t, Math.min(r.get(t) ?? o, r.get(l) ?? o)), (r.get(l) ?? 0) >= (n.get(t) ?? 0) && a.push(cn(t, l, i, a.length))));
3386
+ }, "visit");
3387
+ for (let t of e.keys()) n.has(t) || s(t, null);
3388
+ return a;
3389
+ }
3390
+ t(sn, "computeBlocks");
3391
+ function cn(e, t, n, r) {
3392
+ let i = [], a = /* @__PURE__ */ new Set();
3393
+ for (; n.length > 0;) {
3394
+ let r = n.pop();
3395
+ if (i.push(r), a.add(r[0]), a.add(r[1]), r[0] === e && r[1] === t || r[0] === t && r[1] === e) break;
3396
+ }
3397
+ return {
3398
+ id: r,
3399
+ edges: i,
3400
+ nodes: [...a]
3401
+ };
3402
+ }
3403
+ t(cn, "popBlock");
3404
+ function ln(e, n, r) {
3405
+ let i = [...e.nodes], a = /* @__PURE__ */ new Map();
3406
+ for (let [e, t] of i.entries()) a.set(t, e);
3407
+ let o = i.length, s = Array(o).fill(-1), c = Array(o).fill(0), l = [], u = /* @__PURE__ */ new Set();
3408
+ for (let e of i) {
3409
+ let t = r.parent.get(e) ?? null, n = a.get(e);
3410
+ n != null && (t ?? (s[n] = -1, c[n] = 0, u.has(e) || (u.add(e), l.push(e))));
3411
+ }
3412
+ for (; l.length > 0;) {
3413
+ let e = l.shift(), t = a.get(e);
3414
+ if (t == null) continue;
3415
+ let n = r.children.get(e) ?? [];
3416
+ for (let e of n) {
3417
+ if (u.has(e)) continue;
3418
+ let n = a.get(e);
3419
+ n != null && (s[n] = t, c[n] = c[t] + 1, u.add(e), l.push(e));
3420
+ }
3421
+ }
3422
+ for (let e of i) {
3423
+ if (u.has(e)) continue;
3424
+ let t = a.get(e);
3425
+ t != null && (s[t] = -1, c[t] = 0, u.add(e));
3426
+ }
3427
+ let d = Math.max(1, Math.ceil(Math.log2(Math.max(1, o))) + 1), f = Array.from({ length: d }, () => Array(o).fill(-1));
3428
+ for (let e = 0; e < o; e++) f[0][e] = s[e];
3429
+ for (let e = 1; e < d; e++) for (let t = 0; t < o; t++) {
3430
+ let n = f[e - 1][t];
3431
+ f[e][t] = n === -1 ? -1 : f[e - 1][n];
3432
+ }
3433
+ let p = /* @__PURE__ */ t((e, t) => {
3434
+ if (e === -1 || t === -1) return -1;
3435
+ c[e] < c[t] && ([e, t] = [t, e]);
3436
+ let n = c[e] - c[t];
3437
+ for (let t = 0; t < d; t++) if (n >> t & 1 && (e = f[t][e], e === -1)) return -1;
3438
+ if (e === t) return e;
3439
+ for (let n = d - 1; n >= 0; n--) {
3440
+ let r = f[n][e], i = f[n][t];
3441
+ r === -1 || i === -1 || r !== i && (e = r, t = i);
3442
+ }
3443
+ return f[0][e];
3444
+ }, "lcaIndex"), m = Array.from({ length: o }, () => /* @__PURE__ */ new Map());
3445
+ for (let t of e.edges) {
3446
+ let e = t.src, r = t.dst, i = n[e], o = n[r];
3447
+ if (i == null || o == null || (i > o && ([e, r] = [r, e], [i, o] = [o, i]), i == null || o == null || i === o)) continue;
3448
+ let s = a.get(e), c = a.get(r);
3449
+ if (s == null || c == null) continue;
3450
+ let l = p(s, c);
3451
+ if (l === -1) continue;
3452
+ let u = m[l];
3453
+ for (let e = i; e < o; e++) u.set(e, (u.get(e) ?? 0) + 1);
3454
+ }
3455
+ let h = /* @__PURE__ */ new Map(), g = /* @__PURE__ */ t((e, t) => {
3456
+ if (t.size !== 0) for (let [n, r] of t) e.set(n, (e.get(n) ?? 0) + r);
3457
+ }, "mergeInto"), _ = /* @__PURE__ */ new Set(), v = /* @__PURE__ */ t((e) => {
3458
+ let t = a.get(e);
3459
+ _.add(e);
3460
+ let i = t == null ? void 0 : m[t], o = i ? new Map(i) : /* @__PURE__ */ new Map(), s = r.children.get(e) ?? [];
3461
+ for (let t of s) {
3462
+ let r = v(t), i = n[e];
3463
+ if (i != null) {
3464
+ let a = h.get(e);
3465
+ a || (a = /* @__PURE__ */ new Map(), h.set(e, a));
3466
+ let o = r.get(i) ?? 0, s = n[t];
3467
+ s != null && s > i && (o += 1), a.set(t, o);
3468
+ }
3469
+ g(o, r);
3470
+ }
3471
+ return o;
3472
+ }, "dfs");
3473
+ for (let e of r.roots) _.has(e) || v(e);
3474
+ for (let e of i) _.has(e) || v(e);
3475
+ return h;
3476
+ }
3477
+ t(ln, "computeSubtreeCrossCounts");
3478
+ function un(e, n, r) {
3479
+ let i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ t((e) => {
3480
+ let t = r[e] ?? 0, o = [...n.get(e) ?? []];
3481
+ o.sort(dn(r));
3482
+ for (let e of o) {
3483
+ a(e);
3484
+ let n = i.get(e);
3485
+ n != null && (t = Math.min(t, n));
3486
+ }
3487
+ i.set(e, t);
3488
+ }, "annotate");
3489
+ for (let t of e) a(t);
3490
+ return i;
3491
+ }
3492
+ t(un, "annotateMinimumLayers");
3493
+ function dn(e) {
3494
+ return (t, n) => {
3495
+ let r = e[t] ?? 0, i = e[n] ?? 0;
3496
+ return r === i ? t.localeCompare(n) : r - i;
3497
+ };
3498
+ }
3499
+ t(dn, "compareByRankThenId");
3500
+ function fn(e, n, r, i) {
3501
+ let a = 0;
3502
+ for (let e of n) {
3503
+ let t = r[e] ?? 0;
3504
+ t > a && (a = t);
3505
+ }
3506
+ let o = Array.from({ length: a + 1 }, () => []), s = /* @__PURE__ */ new Set(), c = /* @__PURE__ */ t((e) => {
3507
+ if (s.has(e)) return;
3508
+ s.add(e);
3509
+ let t = r[e] ?? 0;
3510
+ o[t] || (o[t] = []), o[t].push(e);
3511
+ for (let t of i(e)) c(t);
3512
+ }, "emit");
3513
+ for (let t of e) c(t);
3514
+ for (let e of n) if (!s.has(e)) {
3515
+ let t = r[e] ?? 0;
3516
+ o[t] || (o[t] = []), o[t].push(e), s.add(e);
3517
+ }
3518
+ return o;
3519
+ }
3520
+ t(fn, "emitNodesInTreeOrder");
3521
+ function pn(e) {
3522
+ let t = [];
3523
+ for (let n of e) {
3524
+ let e = /* @__PURE__ */ new Set(), r = [];
3525
+ for (let t of n) e.has(t) || (e.add(t), r.push(t));
3526
+ t.push(r);
3527
+ }
3528
+ return t;
3529
+ }
3530
+ t(pn, "deduplicateLayers");
3531
+ function mn(e, t, n, r) {
3532
+ return (i) => {
3533
+ let a = e.get(i) ?? [];
3534
+ if (a.length === 0) return [];
3535
+ let o = t[i] ?? 0, s = [], c = [], l = n.get(i);
3536
+ for (let e of a) {
3537
+ let t = r.get(e) ?? o;
3538
+ t > o ? s.push({
3539
+ child: e,
3540
+ min: t
3541
+ }) : c.push(e);
3542
+ }
3543
+ return s.sort((e, t) => e.min === t.min ? e.child.localeCompare(t.child) : e.min - t.min), c.sort((e, t) => {
3544
+ let n = l?.get(e) ?? 0, i = l?.get(t) ?? 0;
3545
+ if (n !== i) return n - i;
3546
+ let a = r.get(e) ?? o, s = r.get(t) ?? o;
3547
+ return a === s ? e.localeCompare(t) : a - s;
3548
+ }), [...s.map((e) => e.child), ...c];
3549
+ };
3550
+ }
3551
+ t(mn, "createChildOrderer");
3552
+ function hn(e, t, n) {
3553
+ let r = nn(e, {
3554
+ rankHint: t,
3555
+ laneOf: n
3556
+ }), { children: i, roots: a } = r;
3557
+ for (let t of e.nodes) i.has(t) || i.set(t, []);
3558
+ let o = ln(e, t, r), s = [...a].sort(dn(t)), c = mn(i, t, o, un(s, i, t)), l = fn(s, e.nodes, t, c);
3559
+ return l = pn(l), l;
3560
+ }
3561
+ t(hn, "buildMultitreeLayerOrder");
3562
+ function gn(e, t, n) {
3563
+ let r = new Set(e), i = new Set(t), a = Kt(t), o = [];
3564
+ for (let e of n) r.has(e.src) && i.has(e.dst) && o.push(a.get(e.dst));
3565
+ return qt(o);
3566
+ }
3567
+ t(gn, "countCrossingsBetweenAdjacent");
3568
+ function _n(e, t, n) {
3569
+ let r = [];
3570
+ for (let e of t) {
3571
+ let t = n[e.src], i = n[e.dst];
3572
+ if (t == null || i == null || t === i) continue;
3573
+ let a = e.src, o = e.dst, s = t, c = i;
3574
+ t > i && (a = e.dst, o = e.src, s = i, c = t);
3575
+ for (let t = s; t < c; t++) r.push({
3576
+ id: `${e.id}@${t}`,
3577
+ src: a,
3578
+ dst: o,
3579
+ ref: e.ref
3580
+ });
3581
+ }
3582
+ let i = 0;
3583
+ for (let t = 0; t + 1 < e.length; t++) i += gn(e[t], e[t + 1], r);
3584
+ return i;
3585
+ }
3586
+ t(_n, "totalCrossings");
3587
+ function vn(e, t) {
3588
+ let n = { ...t }, { preds: r } = Ut(e), i = Xt(e), a = _n(hn(e, n, i), e.edges, n), o = en.MAX_CROSSING_OPTIMIZATION_PASSES;
3589
+ for (let t = 0; t < o; t++) {
3590
+ let t = !1, o = [...e.nodes].sort((e, t) => (n[t] ?? 0) - (n[e] ?? 0));
3591
+ for (let s of o) {
3592
+ let o = n[s] ?? 0;
3593
+ if (o === 0) continue;
3594
+ let c = 0;
3595
+ for (let e of r.get(s) ?? []) c = Math.max(c, (n[e] ?? 0) + 1);
3596
+ if (c >= o) continue;
3597
+ let l = o;
3598
+ n[s] = c;
3599
+ let u = _n(hn(e, n, i), e.edges, n);
3600
+ u < a ? (a = u, t = !0) : n[s] = l;
3601
+ }
3602
+ if (!t) break;
3603
+ }
3604
+ return n;
3605
+ }
3606
+ t(vn, "optimizeRanksByCrossings");
3607
+ function yn(e, t) {
3608
+ let n = Xt(e), r = [...e.nodes].sort((e, n) => (t[e] ?? 0) - (t[n] ?? 0) || e.localeCompare(n));
3609
+ for (let i of r) {
3610
+ let r = n(i);
3611
+ if (!r) continue;
3612
+ let a = e.edges.filter((e) => e.src === i);
3613
+ if (a.length === 0) continue;
3614
+ let o = !1, s = 0;
3615
+ for (let e of a) {
3616
+ let t = n(e.dst);
3617
+ t == null || t === r ? o = !0 : s++;
3618
+ }
3619
+ if (s === 0 || o) continue;
3620
+ let c = 0, l = !1;
3621
+ for (let t of e.edges) {
3622
+ if (t.dst !== i) continue;
3623
+ let e = n(t.src);
3624
+ e && (e === r ? l = !0 : c++);
3625
+ }
3626
+ if (c > 0 || !l) continue;
3627
+ let u = t[i] ?? 0, d = u + s, f = 0;
3628
+ for (let n of e.edges) n.dst === i && (f = Math.max(f, (t[n.src] ?? 0) + 1));
3629
+ let p = Math.max(u, f, d);
3630
+ p !== u && (t[i] = p);
3631
+ }
3632
+ }
3633
+ t(yn, "adjustCrossLaneSources");
3634
+ function bn(e, t) {
3635
+ let n = Lt(e), r = Gt(n) ?? [...n.nodes].sort(), i = t?.compactSingleInput ?? !1, a = Xt(n), o = /* @__PURE__ */ Object.create(null);
3636
+ for (let e of r) {
3637
+ let r = Rt(n, e), s = t?.ignoreCrossLaneEdges ? r.filter((t) => {
3638
+ let n = a(t.src), r = a(e);
3639
+ return !n || !r ? !0 : n === r;
3640
+ }) : r;
3641
+ if (s.length === 0) o[e] = 0;
3642
+ else if (i && s.length === 1) {
3643
+ let t = s[0].src;
3644
+ a(t) === a(e) ? o[e] = (o[t] ?? 0) + 1 : o[e] = o[t] ?? 0;
3645
+ } else {
3646
+ let t = -Infinity;
3647
+ for (let e of s) t = Math.max(t, (o[e.src] ?? 0) + 1);
3648
+ o[e] = t === -Infinity ? 0 : t;
3649
+ }
3650
+ }
3651
+ return (t?.optimizeRanksByCrossings ?? !1) && (o = vn(n, o)), t?.ignoreCrossLaneEdges && yn(n, o), {
3652
+ layers: hn(n, o, a),
3653
+ rankOf: o,
3654
+ dummy: /* @__PURE__ */ new Set()
3655
+ };
3656
+ }
3657
+ t(bn, "assignLayers_LongestPath");
3658
+ function xn(e, n) {
3659
+ let r = Lt(e), i = { ...bn(r, {
3660
+ compactSingleInput: n?.compactSingleInput,
3661
+ ignoreCrossLaneEdges: n?.ignoreCrossLaneEdges,
3662
+ optimizeRanksByCrossings: n?.optimizeRanksByCrossings
3663
+ }).rankOf }, a = Xt(r), { preds: o, succs: s } = Ut(r, (e) => {
3664
+ if (n?.ignoreCrossLaneEdges) {
3665
+ let t = a(e.src), n = a(e.dst);
3666
+ if (t && n && t !== n) return !1;
3667
+ }
3668
+ return !0;
3669
+ }), c = Gt(r) ?? [...r.nodes], l = [...c].reverse(), u = /* @__PURE__ */ t((e, t) => {
3670
+ let n = 0;
3671
+ for (let t of o.get(e) ?? []) n = Math.max(n, (i[t] ?? 0) + 1);
3672
+ let r = Infinity, a = s.get(e) ?? [];
3673
+ return a.length > 0 && (r = Math.min(...a.map((e) => (i[e] ?? 0) - 1))), Number.isFinite(r) || (r = Math.max(n, t)), Math.min(Math.max(t, n), r);
3674
+ }, "clampFeasible"), d = en.GRAVITY_ITERATIONS, f = /* @__PURE__ */ t((e) => {
3675
+ let t = !1;
3676
+ for (let n of e) {
3677
+ let e = o.get(n) ?? [], r = s.get(n) ?? [];
3678
+ if (e.length === 0 && r.length === 0) continue;
3679
+ let a = e.length > 0 ? e.reduce((e, t) => e + (i[t] ?? 0) + 1, 0) / e.length : i[n] ?? 0, c = r.length > 0 ? r.reduce((e, t) => e + (i[t] ?? 0) - 1, 0) / r.length : i[n] ?? 0, l = u(n, Math.round((a + c) / 2));
3680
+ l !== i[n] && (i[n] = l, t = !0);
3681
+ }
3682
+ return t;
3683
+ }, "relaxOrder");
3684
+ for (let e = 0; e < d; e++) {
3685
+ let e = f(c), t = f(l);
3686
+ if (!e && !t) break;
3687
+ }
3688
+ for (let e of c) {
3689
+ let t = 0;
3690
+ for (let n of o.get(e) ?? []) t = Math.max(t, (i[n] ?? 0) + 1);
3691
+ (i[e] ?? 0) < t && (i[e] = t);
3692
+ }
3693
+ for (let e of l) {
3694
+ let t = s.get(e) ?? [];
3695
+ if (t.length > 0) {
3696
+ let n = Math.min(...t.map((e) => (i[e] ?? 0) - 1));
3697
+ (i[e] ?? 0) > n && (i[e] = n);
3698
+ }
3699
+ }
3700
+ return {
3701
+ layers: Wt(r, c, i),
3702
+ rankOf: i,
3703
+ dummy: /* @__PURE__ */ new Set()
3704
+ };
3705
+ }
3706
+ t(xn, "assignLayers_Gravity");
3707
+ function Sn(e) {
3708
+ let t = Vt(e), n = Bt(e), r = Ht(t), i = [];
3709
+ for (; r.length > 0;) {
3710
+ let e = [];
3711
+ for (let a of r) {
3712
+ i.push(a);
3713
+ for (let r of n.get(a) ?? []) t.set(r, (t.get(r) ?? 0) - 1), (t.get(r) ?? 0) === 0 && e.push(r);
3714
+ }
3715
+ r = e.sort((e, t) => e.localeCompare(t));
3716
+ }
3717
+ return i.length === e.nodes.length ? i : null;
3718
+ }
3719
+ t(Sn, "topoSortByGenerationIfAcyclic");
3720
+ function Cn(e, n) {
3721
+ let r = Lt(e), i = n?.direction === "LR" ? Sn(r) ?? [...r.nodes].sort() : Gt(r) ?? [...r.nodes].sort(), a = Xt(r), o = /* @__PURE__ */ t((e) => a(e) ?? e, "laneOf"), s = /* @__PURE__ */ Object.create(null), c = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ t((e, t) => n?.ignoreCrossLaneEdges ?? !0 ? +(o(e) === o(t)) : 1, "edgeWeight");
3722
+ for (let e of i) {
3723
+ if (r.nodeById.get(e)?.isGroup) continue;
3724
+ let t = Rt(r, e), n = 0;
3725
+ if (t.length > 0) for (let r of t) {
3726
+ let t = r.src, i = s[t] ?? 0;
3727
+ n = Math.max(n, i + l(t, e));
3728
+ }
3729
+ let i = o(e), a = c.get(i) ?? 0, u = Math.max(n, a);
3730
+ s[e] = u, c.set(i, u + 1);
3731
+ }
3732
+ return {
3733
+ layers: Wt(r, i, s, { skipGroups: !0 }),
3734
+ rankOf: s,
3735
+ dummy: /* @__PURE__ */ new Set()
3736
+ };
3737
+ }
3738
+ t(Cn, "assignLayers_LaneAwareCompact");
3739
+ function wn(e, n) {
3740
+ let r = Lt(n), { rankOf: i } = e, a = e.layers.map((e) => [...e]), o = new Set(e.dummy ? [...e.dummy] : []), s = 0, c = new Map(r.nodeById), l = /* @__PURE__ */ t((e) => {
3741
+ let t = `placeholder-${s++}`, n = {
3742
+ id: t,
3743
+ isGroup: !1,
3744
+ isDummy: !0,
3745
+ width: 0,
3746
+ height: 0
3747
+ };
3748
+ for (c.set(t, n), o.add(t); a.length <= e;) a.push([]);
3749
+ return a[e].push(t), i[t] = e, t;
3750
+ }, "addDummyAt"), u = [...r.edges].sort((e, t) => e.id === t.id ? e.src === t.src ? e.dst.localeCompare(t.dst) : e.src.localeCompare(t.src) : e.id.localeCompare(t.id)), d = [];
3751
+ for (let e of u) {
3752
+ let t = i[e.src] ?? 0, n = i[e.dst] ?? 0;
3753
+ if (n - t <= 1) {
3754
+ d.push(e);
3755
+ continue;
3756
+ }
3757
+ let r = e.src;
3758
+ for (let i = t + 1, a = 0; i < n; i++, a++) {
3759
+ let t = l(i);
3760
+ d.push({
3761
+ id: `${e.id}#${a}`,
3762
+ src: r,
3763
+ dst: t,
3764
+ weight: e.weight,
3765
+ ref: e.ref
3766
+ }), r = t;
3767
+ }
3768
+ let a = n - t - 2;
3769
+ d.push({
3770
+ id: `${e.id}#${Math.max(a + 1, 0)}`,
3771
+ src: r,
3772
+ dst: e.dst,
3773
+ weight: e.weight,
3774
+ ref: e.ref
3775
+ });
3776
+ }
3777
+ let f = {
3778
+ nodes: [...r.nodes, ...[...o].filter((e) => !r.nodes.includes(e))],
3779
+ edges: d,
3780
+ layout: r.layout,
3781
+ nodeById: c
3782
+ };
3783
+ return {
3784
+ layering: {
3785
+ layers: a,
3786
+ rankOf: i,
3787
+ dummy: o
3788
+ },
3789
+ graphWithDummies: f
3790
+ };
3791
+ }
3792
+ t(wn, "makeProperLayering");
3793
+ function Tn(e) {
3794
+ let t = e.length;
3795
+ if (t === 0) return Infinity;
3796
+ let n = [...e].sort((e, t) => e - t);
3797
+ return t % 2 == 1 ? n[(t - 1) / 2] : .5 * (n[t / 2 - 1] + n[t / 2]);
3798
+ }
3799
+ t(Tn, "median");
3800
+ function En(e) {
3801
+ return e.length === 0 ? Infinity : e.reduce((e, t) => e + t, 0) / e.length;
3802
+ }
3803
+ t(En, "barycenter");
3804
+ function Dn(e, t, n, r) {
3805
+ let i = /* @__PURE__ */ new Map();
3806
+ for (let t of e) i.set(t, []);
3807
+ for (let e of n) r === "down" ? t.has(e.src) && i.has(e.dst) && i.get(e.dst).push(t.get(e.src)) : t.has(e.dst) && i.has(e.src) && i.get(e.src).push(t.get(e.dst));
3808
+ return i;
3809
+ }
3810
+ t(Dn, "neighborPositionsFor");
3811
+ function On(e, t, n) {
3812
+ let r = n.get(e) ?? 0, i = n.get(t) ?? 0;
3813
+ return r === i ? e.localeCompare(t) : r - i;
3814
+ }
3815
+ t(On, "currentOrderTieBreak");
3816
+ function kn(e, t, n) {
3817
+ let r = new Set(e), i = new Set(t), a = Kt(e), o = Kt(t), s = [];
3818
+ for (let e of n) r.has(e.src) && i.has(e.dst) && s.push({
3819
+ u: a.get(e.src),
3820
+ v: o.get(e.dst)
3821
+ });
3822
+ return s.sort((e, t) => e.u === t.u ? e.v - t.v : e.u - t.u), qt(s.map((e) => e.v));
3823
+ }
3824
+ t(kn, "countCrossingsBetweenAdjacent");
3825
+ function An(e, t, n) {
3826
+ return [...e].sort((e, r) => {
3827
+ let i = Tn(t.get(e) ?? []), a = Tn(t.get(r) ?? []);
3828
+ return i === a ? On(e, r, n) : isFinite(i) ? isFinite(a) ? i - a : -1 : 1;
3829
+ });
3830
+ }
3831
+ t(An, "sortByHeuristic");
3832
+ function jn(e, t, n, r, i, a) {
3833
+ let o = Kt(e), s = Kt(t), c = Dn(t, o, n, r);
3834
+ if (!i || !a || a.length === 0) return An(t, c, s);
3835
+ let l = /* @__PURE__ */ new Map();
3836
+ for (let e of t) {
3837
+ let t = i(e), n = l.get(t) ?? [];
3838
+ n.push(e), l.set(t, n);
3839
+ }
3840
+ let u = [];
3841
+ for (let e of a) {
3842
+ let t = l.get(e);
3843
+ if (!t || t.length === 0) continue;
3844
+ let n = An(t, c, s);
3845
+ u.push(...n);
3846
+ }
3847
+ let d = l.get(null);
3848
+ if (d && d.length > 0) {
3849
+ let e = An(d, c, s);
3850
+ for (let t of e) {
3851
+ let e = En(c.get(t) ?? []), n = u.length;
3852
+ if (isFinite(e)) {
3853
+ for (let [t, r] of u.entries()) if (e < En(c.get(r) ?? [])) {
3854
+ n = t;
3855
+ break;
3856
+ }
3857
+ }
3858
+ u.splice(n, 0, t);
3859
+ }
3860
+ }
3861
+ return u;
3862
+ }
3863
+ t(jn, "reorderLayer");
3864
+ function Mn(e, n, r, i, a) {
3865
+ let o = [...n], s = new Set(e), c = new Set(n), l = i ? new Set(i) : null, u = r.filter((e) => s.has(e.src) && c.has(e.dst)), d = l ? r.filter((e) => c.has(e.src) && l.has(e.dst)) : void 0, f = /* @__PURE__ */ t((t) => {
3866
+ let n = kn(e, t, u);
3867
+ return d && i && (n += kn(t, i, d)), n;
3868
+ }, "crossingScore"), p = a ? /* @__PURE__ */ new Map() : null;
3869
+ if (a && p) for (let e of n) p.set(e, a(e));
3870
+ let m = !0, h = f(o);
3871
+ for (; m;) {
3872
+ m = !1;
3873
+ for (let e = 0; e + 1 < o.length; e++) {
3874
+ if (p && p.get(o[e]) !== p.get(o[e + 1])) continue;
3875
+ let t = h;
3876
+ [o[e], o[e + 1]] = [o[e + 1], o[e]];
3877
+ let n = f(o);
3878
+ n < t ? (h = n, m = !0) : [o[e], o[e + 1]] = [o[e + 1], o[e]];
3879
+ }
3880
+ }
3881
+ return o;
3882
+ }
3883
+ t(Mn, "transposeImprove");
3884
+ function Nn(e, t, n) {
3885
+ let r = e.layers.map((e) => [...e]), i = t.edges, a = Xt(t), o = Qt(t, n?.laneOrder);
3886
+ for (let e = 0; e < 3; e++) {
3887
+ for (let e = 1; e < r.length; e++) r[e] = jn(r[e - 1], r[e], i, "down", a, o), r[e] = Mn(r[e - 1], r[e], i, r[e + 1], a);
3888
+ for (let e = r.length - 2; e >= 0; e--) r[e] = jn(r[e + 1], r[e], i, "up", a, o), r[e] = Mn(r[e + 1], r[e], i, r[e - 1], a);
3889
+ }
3890
+ return { layers: r };
3891
+ }
3892
+ t(Nn, "orderLayers");
3893
+ function Pn(e, n, r) {
3894
+ let i = r?.layerGap ?? tn.DEFAULT_LAYER_GAP, a = r?.nodeGap ?? tn.DEFAULT_NODE_GAP, o = r?.laneGap ?? a * 2, s = r?.direction ?? "TB", c = s === "LR" || s === "RL", l = e.layers, u = /* @__PURE__ */ Object.create(null), d = /* @__PURE__ */ Object.create(null), f = /* @__PURE__ */ t((e) => n.nodeById.get(e), "getNode"), p = /* @__PURE__ */ t((e) => f(e)?.width ?? 0, "getWidth"), m = /* @__PURE__ */ t((e) => f(e)?.height ?? 0, "getHeight"), h = Xt(n), g = Qt(n, r?.laneOrder), _ = l.map((e) => e.reduce((e, t) => Math.max(e, m(t)), 0)), v = [];
3895
+ if (c) for (let e = 0; e + 1 < l.length; e++) {
3896
+ let t = l[e].reduce((e, t) => Math.max(e, p(t)), 0), n = l[e + 1].reduce((e, t) => Math.max(e, p(t)), 0), r = _[e], a = _[e + 1], o = r / 2 + a / 2, s = (t + n) / 2, c = Math.max(0, s - o - i);
3897
+ v.push(c);
3898
+ }
3899
+ let y = /* @__PURE__ */ new Set();
3900
+ for (let e of l) for (let t of e) y.add(h(t));
3901
+ let b = y.has(null), x = g.filter((e) => y.has(e)), S = [...b ? [null] : [], ...x], C = /* @__PURE__ */ Object.create(null);
3902
+ for (let e of x) C[e] = 0;
3903
+ b && (C.null = 0);
3904
+ for (let e of l) {
3905
+ let t = /* @__PURE__ */ Object.create(null), n = [];
3906
+ for (let r of e) {
3907
+ let e = h(r);
3908
+ e === null ? n.push(r) : (t[e] ||= []).push(r);
3909
+ }
3910
+ for (let [e, n] of Object.entries(t)) {
3911
+ let t = n.reduce((e, t) => e + p(t), 0) + a * Math.max(0, n.length - 1);
3912
+ C[e] = Math.max(C[e] ?? 0, t);
3913
+ }
3914
+ if (b && n.length) {
3915
+ let e = n.reduce((e, t) => e + p(t), 0) + a * Math.max(0, n.length - 1);
3916
+ C.null = Math.max(C.null ?? 0, e);
3917
+ }
3918
+ }
3919
+ let w = /* @__PURE__ */ new Map();
3920
+ {
3921
+ let e = S.map((e) => (e === null ? C.null : C[e]) ?? 0), t = -(e.reduce((e, t) => e + t, 0) + o * Math.max(0, S.length - 1)) / 2;
3922
+ for (let n = 0; n < S.length; n++) {
3923
+ let r = S[n], i = e[n] ?? 0, a = t + i / 2;
3924
+ w.set(r, a), t += i, n < S.length - 1 && (t += o);
3925
+ }
3926
+ }
3927
+ let T = 0;
3928
+ for (let [e, t] of l.entries()) {
3929
+ let n = _[e] ?? 0, r = /* @__PURE__ */ new Map();
3930
+ for (let e of t) {
3931
+ let t = h(e), n = r.get(t) ?? [];
3932
+ n.push(e), r.set(t, n);
3933
+ }
3934
+ for (let e of S) {
3935
+ let t = r.get(e) ?? [];
3936
+ if (t.length === 0) continue;
3937
+ let i = w.get(e);
3938
+ if (t.length === 1) {
3939
+ let e = t[0];
3940
+ u[e] = i, d[e] = T + n / 2;
3941
+ } else {
3942
+ let e = t.map((e) => p(e)), r = i - (e.reduce((e, t) => e + t, 0) + a * (t.length - 1)) / 2;
3943
+ for (let [i, o] of t.entries()) {
3944
+ let t = e[i];
3945
+ u[o] = r + t / 2, d[o] = T + n / 2, r += t + a;
3946
+ }
3947
+ }
3948
+ }
3949
+ let o = v[e] ?? 0;
3950
+ T += n + i + o;
3951
+ }
3952
+ let E = /* @__PURE__ */ new Map();
3953
+ for (let e of n.edges) {
3954
+ let t = e.ref.id;
3955
+ E.has(t) || E.set(t, []), E.get(t).push(e);
3956
+ }
3957
+ for (let [, e] of E) {
3958
+ if (e.length === 0) continue;
3959
+ let t = e[0].ref, r = t.start, i = t.end;
3960
+ if (r == null || i == null) continue;
3961
+ let a = Math.round(((u[r] ?? 0) + (u[i] ?? 0)) / 2), o = /* @__PURE__ */ new Set();
3962
+ for (let t of e) o.add(t.src), o.add(t.dst);
3963
+ for (let e of o) e === r || e === i || n.nodeById.get(e)?.isDummy && (u[e] = a);
3964
+ }
3965
+ return {
3966
+ x: u,
3967
+ y: d
3968
+ };
3969
+ }
3970
+ t(Pn, "assignCoordinates");
3971
+ var Fn = 8;
3972
+ function In(e) {
3973
+ let t = 2166136261;
3974
+ for (let n = 0; n < e.length; n++) t ^= e.charCodeAt(n), t = Math.imul(t, 16777619);
3975
+ return t >>> 0;
3976
+ }
3977
+ t(In, "hashString");
3978
+ function Ln(e) {
3979
+ let t = e >>> 0;
3980
+ return () => {
3981
+ t += 1831565813;
3982
+ let e = t;
3983
+ return e = Math.imul(e ^ e >>> 15, e | 1), e ^= e + Math.imul(e ^ e >>> 7, e | 61), ((e ^ e >>> 14) >>> 0) / 4294967296;
3984
+ };
3985
+ }
3986
+ t(Ln, "mulberry32");
3987
+ function Rn(e, t) {
3988
+ let n = [...e], r = Ln(t);
3989
+ for (let e = n.length - 1; e > 0; e--) {
3990
+ let t = Math.floor(r() * (e + 1));
3991
+ [n[e], n[t]] = [n[t], n[e]];
3992
+ }
3993
+ return n;
3994
+ }
3995
+ t(Rn, "deterministicShuffle");
3996
+ function zn(e, t) {
3997
+ let n = 0;
3998
+ for (let [r, i] of e.entries()) n += Math.abs(r - (t.get(i) ?? r));
3999
+ return n;
4000
+ }
4001
+ t(zn, "sourceDistance");
4002
+ function Bn(e, t) {
4003
+ let n = /* @__PURE__ */ new Map();
4004
+ for (let [t, r] of e.entries()) n.set(r, t);
4005
+ let r = 0;
4006
+ for (let { a: e, b: i, weight: a } of t) {
4007
+ let t = n.get(e), o = n.get(i);
4008
+ t == null || o == null || (r += a * Math.abs(t - o));
4009
+ }
4010
+ return r;
4011
+ }
4012
+ t(Bn, "laneArrangementCost");
4013
+ function Vn(e) {
4014
+ let t = Zt(e);
4015
+ if (t.length < 2) return [];
4016
+ let n = new Map(t.map((e, t) => [e, t])), r = Xt(e), i = /* @__PURE__ */ new Map();
4017
+ for (let t of e.layout.edges ?? []) {
4018
+ if (t.isLayoutOnly) continue;
4019
+ let a = typeof t.start == "string" ? t.start : void 0, o = typeof t.end == "string" ? t.end : void 0;
4020
+ if (!a || !o || !e.nodeById.has(a) || !e.nodeById.has(o)) continue;
4021
+ let s = r(a), c = r(o);
4022
+ if (!s || !c || s === c) continue;
4023
+ let l = n.get(s), u = n.get(c);
4024
+ if (l == null || u == null) continue;
4025
+ let [d, f] = l <= u ? [s, c] : [c, s], p = `${d}\0${f}`, m = i.get(p);
4026
+ m ? m.weight++ : i.set(p, {
4027
+ a: d,
4028
+ b: f,
4029
+ weight: 1
4030
+ });
4031
+ }
4032
+ return [...i.values()];
4033
+ }
4034
+ t(Vn, "buildWeightedLaneEdges");
4035
+ function Hn(e, t, n) {
4036
+ let r = [...e], i = Bn(r, t), a = !0, o = 0, s = Math.max(1, r.length);
4037
+ for (; a && o < s;) {
4038
+ a = !1, o++;
4039
+ for (let e = 0; e + 1 < r.length; e++) {
4040
+ [r[e], r[e + 1]] = [r[e + 1], r[e]];
4041
+ let n = Bn(r, t);
4042
+ n < i ? (i = n, a = !0) : [r[e], r[e + 1]] = [r[e + 1], r[e]];
4043
+ }
4044
+ }
4045
+ return {
4046
+ order: r,
4047
+ cost: i,
4048
+ sourceDistance: zn(r, n)
4049
+ };
4050
+ }
4051
+ t(Hn, "greedySwitch");
4052
+ function Un(e, t) {
4053
+ return e.cost === t.cost ? e.sourceDistance < t.sourceDistance : e.cost < t.cost;
4054
+ }
4055
+ t(Un, "isBetterCandidate");
4056
+ function Wn(e, t, n) {
4057
+ let r = [...t].sort((e, t) => e.a === t.a ? e.b.localeCompare(t.b) : e.a.localeCompare(t.a)).map(({ a: e, b: t, weight: n }) => `${e}:${t}:${n}`).join("|");
4058
+ return In(`${e.join("|")}#${r}#${n}`);
4059
+ }
4060
+ t(Wn, "seedForRestart");
4061
+ function Gn(e, t = {}) {
4062
+ let n = Zt(e);
4063
+ if (n.length < 2) return n;
4064
+ let r = Vn(e);
4065
+ if (r.length === 0) return n;
4066
+ let i = new Map(n.map((e, t) => [e, t])), a = Hn(n, r, i), o = Math.max(0, t.restarts ?? Fn);
4067
+ for (let e = 0; e < o; e++) {
4068
+ let t = Hn(Rn(n, Wn(n, r, e)), r, i);
4069
+ Un(t, a) && (a = t);
4070
+ }
4071
+ return a.order;
4072
+ }
4073
+ t(Gn, "optimizeTopLaneOrder");
4074
+ function Kn(e, t) {
4075
+ let n = t?.ignoreCrossLaneEdges ?? !0, r = t?.optimizeRanksByCrossings ?? !0, i = Lt(e), a = t?.automaticLaneOrdering ? Gn(i, { restarts: Fn }) : void 0, o = Jt(i), s = o.acyclic, { layering: c, graphWithDummies: l } = wn(n ? Cn(s, {
4076
+ compactSingleInput: t?.compactSingleInput ?? en.DEFAULT_COMPACT_SINGLE_INPUT,
4077
+ ignoreCrossLaneEdges: !0,
4078
+ direction: t?.direction
4079
+ }) : xn(s, {
4080
+ compactSingleInput: t?.compactSingleInput ?? en.DEFAULT_COMPACT_SINGLE_INPUT,
4081
+ ignoreCrossLaneEdges: !1,
4082
+ optimizeRanksByCrossings: r
4083
+ }), s), u = Nn(c, l, { laneOrder: a }), d = Pn(u, l, {
4084
+ layerGap: t?.layerGap,
4085
+ nodeGap: t?.nodeGap,
4086
+ direction: t?.direction,
4087
+ laneOrder: a
4088
+ });
4089
+ return {
4090
+ acyclic: s,
4091
+ reversed: o.reversed,
4092
+ layering: c,
4093
+ ordered: u,
4094
+ coordinates: d
4095
+ };
4096
+ }
4097
+ t(Kn, "sugiyamaLayout");
4098
+ var $ = $t.EPSILON, qn = 8, Jn = 15, Yn = 15, Xn = 25, Zn = 20, Qn = 10;
4099
+ function $n(e, t, n) {
4100
+ let r = e.x ?? 0, i = e.y ?? 0, a = t.x - r, o = t.y - i, s = Math.abs(a), c = Math.abs(o);
4101
+ return s < $ && c < $ ? n : c > $ && c * 3 >= s ? o > 0 ? "bottom" : "top" : s > $ ? a > 0 ? "right" : "left" : n;
4102
+ }
4103
+ t($n, "chooseOrthogonalSide");
4104
+ function er(e, t) {
4105
+ return Math.abs(e.to - t.from) < $ || Math.abs(e.to - t.to) < $ ? e.to : e.from;
4106
+ }
4107
+ t(er, "sharedLineEndpointCoord");
4108
+ function tr(e, t) {
4109
+ return e.orient === "vertical" ? {
4110
+ x: e.coord,
4111
+ y: t
4112
+ } : {
4113
+ x: t,
4114
+ y: e.coord
4115
+ };
4116
+ }
4117
+ t(tr, "pointOnLine");
4118
+ function nr(e, n) {
4119
+ let r = e.nodes ?? [], i = e.edges ?? [], a = [];
4120
+ for (let e of i) e.isLayoutOnly || a.push({
4121
+ ...e,
4122
+ __originalEdge: e
4123
+ });
4124
+ let o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = [], l = n === "LR";
4125
+ for (let e of r) o.set(e.id, e);
4126
+ let u = r.filter((e) => e.isGroup && !e.parentId);
4127
+ for (let e of u) {
4128
+ let n = { id: e.id }, i = /* @__PURE__ */ t((e) => {
4129
+ s.set(e.id, n), r.filter((t) => t.parentId === e.id).forEach(i);
4130
+ }, "assignLane");
4131
+ i(e);
4132
+ }
4133
+ let d = r.filter((e) => !e.isGroup && !e.isEdgeLabel).map((e) => {
4134
+ let t = e.width ?? 10, n = e.height ?? 10, r = e.x ?? 0, i = e.y ?? 0, a = qn;
4135
+ return {
4136
+ nodeId: e.id,
4137
+ minX: r - t / 2 - a,
4138
+ maxX: r + t / 2 + a,
4139
+ minY: i - n / 2 - a,
4140
+ maxY: i + n / 2 + a,
4141
+ visualXHalfExtent: l ? n / 2 + a : t / 2 + a
4142
+ };
4143
+ }), f = /* @__PURE__ */ t((e, t, n, r) => {
4144
+ let i = c.find((n) => n.orientation === e && Math.abs(n.coord - t) < 1);
4145
+ return i || (i = {
4146
+ id: `pipe-${e}-${t.toFixed(0)}`,
4147
+ orientation: e,
4148
+ coord: t,
4149
+ spanMin: n,
4150
+ spanMax: r,
4151
+ tracks: []
4152
+ }, c.push(i)), i.spanMin = Math.min(i.spanMin, n), i.spanMax = Math.max(i.spanMax, r), i;
4153
+ }, "getOrAddPipe"), p = /* @__PURE__ */ t((e, t) => {
4154
+ let n = e.width ?? 10, r = e.height ?? 10, i = e.x ?? 0, a = e.y ?? 0;
4155
+ switch (t) {
4156
+ case "top": return {
4157
+ x: i,
4158
+ y: a - r / 2
4159
+ };
4160
+ case "bottom": return {
4161
+ x: i,
4162
+ y: a + r / 2
4163
+ };
4164
+ case "left": return {
4165
+ x: i - n / 2,
4166
+ y: a
4167
+ };
4168
+ case "right": return {
4169
+ x: i + n / 2,
4170
+ y: a
4171
+ };
4172
+ }
4173
+ }, "portForSide"), m = /* @__PURE__ */ t((e, t, n) => p(e, $n(e, t, n ? "bottom" : "top")), "getOrthogonalPort"), h = [], g = [], _ = /* @__PURE__ */ new Set(), v = 1e3, y = /* @__PURE__ */ t((e, t, n) => {
4174
+ if (h.length === 0) return 0;
4175
+ let r = Math.abs(t.y - n.y) < $, i = Math.abs(t.x - n.x) < $;
4176
+ if (!r && !i) return 0;
4177
+ let a = 0;
4178
+ if (r) {
4179
+ let r = t.y, i = Math.min(t.x, n.x) - $, o = Math.max(t.x, n.x) + $;
4180
+ if (o <= i) return 0;
4181
+ for (let t of h) t.edgeIndex === e || t.orientation !== "vertical" || t.pipe.coord < i || t.pipe.coord > o || t.from - $ <= r && t.to + $ >= r && (a += v);
4182
+ } else if (i) {
4183
+ let r = t.x, i = Math.min(t.y, n.y) - $, o = Math.max(t.y, n.y) + $;
4184
+ if (o <= i) return 0;
4185
+ for (let t of h) t.edgeIndex === e || t.orientation !== "horizontal" || t.pipe.coord < i || t.pipe.coord > o || t.from - $ <= r && t.to + $ >= r && (a += v);
4186
+ }
4187
+ return a;
4188
+ }, "crossingPenalty"), b = a.map((e, t) => {
4189
+ if (!e.start || !e.end) return {
4190
+ idx: t,
4191
+ crossLane: 0,
4192
+ dx: 0,
4193
+ dy: 0
4194
+ };
4195
+ let n = o.get(e.start), r = o.get(e.end), i = s.get(e.start), a = s.get(e.end);
4196
+ return {
4197
+ idx: t,
4198
+ crossLane: i && a && i.id !== a.id ? 1 : 0,
4199
+ dx: n && r ? Math.abs((r.x ?? 0) - (n.x ?? 0)) : 0,
4200
+ dy: n && r ? Math.abs((r.y ?? 0) - (n.y ?? 0)) : 0
4201
+ };
4202
+ }).sort((e, t) => {
4203
+ if (e.crossLane !== t.crossLane) return t.crossLane - e.crossLane;
4204
+ let n = e.dx + e.dy, r = t.dx + t.dy;
4205
+ return Math.abs(n - r) > 1 ? n - r : e.idx - t.idx;
4206
+ }).map((e) => e.idx), x = /* @__PURE__ */ t((e, t, n, r) => {
4207
+ let i = Math.min(e.x, t.x), a = Math.max(e.x, t.x), o = Math.min(e.y, t.y), s = Math.max(e.y, t.y);
4208
+ return !!d.find((c) => n && c.nodeId === n || r && c.nodeId === r ? !1 : Math.abs(e.x - t.x) > $ ? c.minY < e.y && c.maxY > e.y && c.maxX > i && c.minX < a : c.minX < e.x && c.maxX > e.x && c.maxY > o && c.minY < s);
4209
+ }, "isSegmentBlocked"), S = /* @__PURE__ */ new Map(), C = /* @__PURE__ */ new Map();
4210
+ for (let e of a) !e.start || !e.end || e.start === e.end || (C.set(e.start, (C.get(e.start) ?? 0) + 1), C.set(e.end, (C.get(e.end) ?? 0) + 1));
4211
+ let w = /* @__PURE__ */ t((e, t) => $n(e, t, "bottom"), "determineSide"), T = /* @__PURE__ */ new Map();
4212
+ for (let [e, t] of a.entries()) {
4213
+ if (!t.start || !t.end || t.start === t.end || t.points && t.points.length > 0) continue;
4214
+ let n = o.get(t.start), r = o.get(t.end);
4215
+ if (!n || !r) continue;
4216
+ let i = (r.x ?? 0) - (n.x ?? 0), a = (r.y ?? 0) - (n.y ?? 0);
4217
+ T.set(e, {
4218
+ edgeIdx: e,
4219
+ srcId: t.start,
4220
+ dstId: t.end,
4221
+ srcSide: w(n, {
4222
+ x: r.x ?? 0,
4223
+ y: r.y ?? 0
4224
+ }),
4225
+ dstSide: w(r, {
4226
+ x: n.x ?? 0,
4227
+ y: n.y ?? 0
4228
+ }),
4229
+ absDx: Math.abs(i),
4230
+ absDy: Math.abs(a),
4231
+ dxSign: Math.sign(i),
4232
+ dySign: Math.sign(a)
4233
+ });
4234
+ }
4235
+ let E = /* @__PURE__ */ t((e) => e.srcSide === "top" || e.srcSide === "bottom" ? e.absDx === 0 ? Infinity : e.absDy / e.absDx : e.absDy === 0 ? Infinity : e.absDx / e.absDy, "preferenceStrength"), D = /* @__PURE__ */ t((e) => e.srcSide === "top" || e.srcSide === "bottom" ? e.dxSign >= 0 ? "right" : "left" : e.dySign >= 0 ? "bottom" : "top", "secondarySide"), O = /* @__PURE__ */ new Map();
4236
+ for (let e of T.values()) {
4237
+ let t = `${e.srcId}:${e.srcSide}`;
4238
+ O.has(t) || O.set(t, []), O.get(t).push(e);
4239
+ }
4240
+ let k = /* @__PURE__ */ new Map(), A = /* @__PURE__ */ t((e, t) => `${e}:${t}`, "loadKey");
4241
+ for (let e of T.values()) k.set(A(e.srcId, e.srcSide), (k.get(A(e.srcId, e.srcSide)) ?? 0) + 1), k.set(A(e.dstId, e.dstSide), (k.get(A(e.dstId, e.dstSide)) ?? 0) + 1);
4242
+ for (let e of O.values()) if (!(e.length < 2)) {
4243
+ e.sort((e, t) => {
4244
+ let n = E(e), r = E(t);
4245
+ return Math.abs(n - r) > 1e-9 ? r - n : e.edgeIdx - t.edgeIdx;
4246
+ });
4247
+ for (let t = 1; t < e.length; t++) {
4248
+ let n = e[t], r = D(n), i = k.get(A(n.srcId, n.srcSide)) ?? 0, a = k.get(A(n.srcId, r)) ?? 0;
4249
+ a >= i || (k.set(A(n.srcId, n.srcSide), i - 1), k.set(A(n.srcId, r), a + 1), n.srcSide = r);
4250
+ }
4251
+ }
4252
+ let j = /* @__PURE__ */ t((e) => {
4253
+ let t = e?.shape;
4254
+ return t === "question" || t === "diamond";
4255
+ }, "isDiamondNode"), ee = /* @__PURE__ */ new Map();
4256
+ for (let e of T.values()) ee.has(e.dstId) || ee.set(e.dstId, /* @__PURE__ */ new Set()), ee.get(e.dstId).add(e.dstSide);
4257
+ for (let e of T.values()) {
4258
+ if (!j(o.get(e.srcId))) continue;
4259
+ let t = ee.get(e.srcId);
4260
+ if (!t?.has(e.srcSide)) continue;
4261
+ let n = D(e);
4262
+ if (t.has(n) || (k.get(A(e.srcId, n)) ?? 0) > 0) continue;
4263
+ let r = k.get(A(e.srcId, e.srcSide)) ?? 0;
4264
+ k.set(A(e.srcId, e.srcSide), Math.max(0, r - 1)), k.set(A(e.srcId, n), 1), e.srcSide = n;
4265
+ }
4266
+ for (let e of T.values()) {
4267
+ let { edgeIdx: t, srcId: n, dstId: r, srcSide: i, dstSide: a } = e, s = o.get(n), c = o.get(r), l = `${n}:${i}:src`, u = i === "top" || i === "bottom" ? c.x ?? 0 : c.y ?? 0;
4268
+ S.has(l) || S.set(l, []), S.get(l).push({
4269
+ edgeIdx: t,
4270
+ oppositeCoord: u
4271
+ });
4272
+ let d = `${r}:${a}:dst`, f = a === "top" || a === "bottom" ? s.x ?? 0 : s.y ?? 0;
4273
+ S.has(d) || S.set(d, []), S.get(d).push({
4274
+ edgeIdx: t,
4275
+ oppositeCoord: f
4276
+ });
4277
+ }
4278
+ let te = /* @__PURE__ */ new Map();
4279
+ for (let [e, t] of S) {
4280
+ if (t.length < 2) continue;
4281
+ t.sort((e, t) => e.oppositeCoord - t.oppositeCoord);
4282
+ let n = e.split(":"), r = n.slice(0, -2).join(":"), i = n[n.length - 2], a = n[n.length - 1], s = o.get(r);
4283
+ if (!s) continue;
4284
+ let c = i === "left" || i === "right" ? s.height ?? 10 : s.width ?? 10, l = s.shape, u = l === "question" || l === "diamond" ? c * .3 : c, d = Math.min(20, Math.max(8, u / (t.length + 1))), f = -(d * (t.length - 1)) / 2;
4285
+ for (let [e, n] of t.entries()) {
4286
+ let t = f + e * d, r = `${n.edgeIdx}:${a}`;
4287
+ te.set(r, t);
4288
+ }
4289
+ }
4290
+ let M = /* @__PURE__ */ t((e) => !!a[e]?.labelNodeId, "edgeHasLabelNode"), ne = /* @__PURE__ */ t((e, t) => e ? (S.get(`${e}:${t}:src`) ?? []).some(({ edgeIdx: e }) => M(e)) || (S.get(`${e}:${t}:dst`) ?? []).some(({ edgeIdx: e }) => M(e)) : !1, "faceHasLabelNode"), N = /* @__PURE__ */ t((e, t, n) => t === "top" || t === "bottom" ? {
4291
+ x: e.x + n,
4292
+ y: e.y
4293
+ } : {
4294
+ x: e.x,
4295
+ y: e.y + n
4296
+ }, "applyPortOffset"), P = /* @__PURE__ */ t((e, t, n) => {
4297
+ let r = T.get(e), i = {
4298
+ x: n.x ?? 0,
4299
+ y: n.y ?? 0
4300
+ }, a = {
4301
+ x: t.x ?? 0,
4302
+ y: t.y ?? 0
4303
+ }, o = r?.srcSide ?? w(t, i), s = r?.dstSide ?? w(n, a), c = r ? p(t, r.srcSide) : m(t, i, !0), l = r ? p(n, r.dstSide) : m(n, a, !1), u = te.get(`${e}:src`), d = te.get(`${e}:dst`);
4304
+ return u !== void 0 && (c = N(c, o, u)), d !== void 0 && (l = N(l, s, d)), {
4305
+ pSrcPort: c,
4306
+ pDstPort: l,
4307
+ srcSide: o,
4308
+ dstSide: s
4309
+ };
4310
+ }, "portsForEdge");
4311
+ for (let e of b) {
4312
+ let n = a[e];
4313
+ if (g[e] = [], !n.start || !n.end || n.points && n.points.length > 0 || n.start === n.end) continue;
4314
+ let r = o.get(n.start), i = o.get(n.end);
4315
+ if (!r || !i) continue;
4316
+ let { pSrcPort: s, pDstPort: u, srcSide: p, dstSide: m } = P(e, r, i), v = { ...s }, b = { ...u }, w = p === "top" || p === "bottom", T = m === "top" || m === "bottom";
4317
+ w ? v.y = s.y > (r.y ?? 0) ? s.y + Zn : s.y - Zn : v.x = s.x > (r.x ?? 0) ? s.x + Zn : s.x - Zn, T ? b.y = u.y > (i.y ?? 0) ? u.y + Zn : u.y - Zn : b.x = u.x > (i.x ?? 0) ? u.x + Zn : u.x - Zn;
4318
+ let E = /* @__PURE__ */ t((e, t) => {
4319
+ for (let n of d) if (!t.includes(n.nodeId) && e.x > n.minX && e.x < n.maxX && e.y > n.minY && e.y < n.maxY) return {
4320
+ inside: !0,
4321
+ obstacle: n
4322
+ };
4323
+ return { inside: !1 };
4324
+ }, "isPointInObstacle"), D = /* @__PURE__ */ t((e, t, n, r, i) => {
4325
+ if (i) {
4326
+ let i = e.y > (t.y ?? 0);
4327
+ return {
4328
+ x: (n.x ?? 0) >= e.x ? r.maxX + Jn : r.minX - Jn,
4329
+ y: i ? r.maxY + Yn : r.minY - Yn,
4330
+ leavesPositiveSide: i
4331
+ };
4332
+ }
4333
+ let a = e.x > (t.x ?? 0), o = (n.y ?? 0) >= e.y;
4334
+ return {
4335
+ x: a ? r.maxX + Jn : r.minX - Jn,
4336
+ y: o ? r.maxY + Yn : r.minY - Yn,
4337
+ leavesPositiveSide: a
4338
+ };
4339
+ }, "obstacleDetour"), O = [], k = [n.start, n.end], A = E(v, k);
4340
+ if (A.inside && A.obstacle) {
4341
+ let e = A.obstacle;
4342
+ if (w) {
4343
+ let t = D(s, r, i, e, !0);
4344
+ v.x = t.x, v.y = t.y;
4345
+ let n = t.leavesPositiveSide ? Math.min(e.minY - 2, s.y + Zn) : Math.max(e.maxY + 2, s.y - Zn);
4346
+ O = [
4347
+ {
4348
+ x: s.x,
4349
+ y: n
4350
+ },
4351
+ {
4352
+ x: t.x,
4353
+ y: n
4354
+ },
4355
+ {
4356
+ x: t.x,
4357
+ y: t.y
4358
+ }
4359
+ ];
4360
+ } else {
4361
+ let t = D(s, r, i, e, !1), n = t.leavesPositiveSide ? Math.min(e.minX - 2, s.x + Zn) : Math.max(e.maxX + 2, s.x - Zn);
4362
+ v.x = t.x, v.y = t.y, O = [
4363
+ {
4364
+ x: n,
4365
+ y: s.y
4366
+ },
4367
+ {
4368
+ x: n,
4369
+ y: t.y
4370
+ },
4371
+ {
4372
+ x: t.x,
4373
+ y: t.y
4374
+ }
4375
+ ];
4376
+ }
4377
+ }
4378
+ let j = [], ee = E(b, k);
4379
+ if (ee.inside && ee.obstacle) {
4380
+ let e = ee.obstacle;
4381
+ if (T) {
4382
+ let t = D(u, i, r, e, !0);
4383
+ b.x = t.x, b.y = t.y, j = [{
4384
+ x: t.x,
4385
+ y: t.y
4386
+ }, {
4387
+ x: u.x,
4388
+ y: t.y
4389
+ }];
4390
+ } else {
4391
+ let t = D(u, i, r, e, !1);
4392
+ b.x = t.x, b.y = t.y, j = [{
4393
+ x: t.x,
4394
+ y: t.y
4395
+ }, {
4396
+ x: t.x,
4397
+ y: u.y
4398
+ }];
4399
+ }
4400
+ }
4401
+ if (O.length === 0 && j.length === 0) {
4402
+ let t = Jn, r = Math.abs(v.x - b.x) < t, i = Math.abs(v.y - b.y) < t, a = te.get(`${e}:src`) !== void 0 || te.get(`${e}:dst`) !== void 0, o = (S.get(`${n.start ?? ""}:${p}:src`)?.length ?? 0) + (S.get(`${n.start ?? ""}:${p}:dst`)?.length ?? 0), c = (S.get(`${n.end ?? ""}:${m}:src`)?.length ?? 0) + (S.get(`${n.end ?? ""}:${m}:dst`)?.length ?? 0), l = o > 1 || c > 1, d = C.get(n.start ?? "") ?? 0, f = C.get(n.end ?? "") ?? 0, g = o > 1 && ne(n.start, p) || c > 1 && ne(n.end, m);
4403
+ if ((r || i) && !a && (!l || l && !g && (o <= 1 || d <= 2) && (c <= 1 || f <= 2)) && !x(s, u, n.start, n.end)) {
4404
+ n.points = [
4405
+ { ...s },
4406
+ { ...v },
4407
+ { ...b },
4408
+ { ...u }
4409
+ ], _.add(e);
4410
+ let t = i ? "horizontal" : "vertical", r = i ? s.y : s.x, a = i ? Math.min(s.x, u.x) : Math.min(s.y, u.y), o = i ? Math.max(s.x, u.x) : Math.max(s.y, u.y), c = {
4411
+ id: `fast-path-${t}-${r.toFixed(0)}-${e}`,
4412
+ orientation: t,
4413
+ coord: r,
4414
+ spanMin: a,
4415
+ spanMax: o,
4416
+ tracks: []
4417
+ };
4418
+ h.push({
4419
+ edgeIndex: e,
4420
+ segmentIndex: 0,
4421
+ orientation: t,
4422
+ pipe: c,
4423
+ trackIndex: 0,
4424
+ from: a,
4425
+ to: o
4426
+ });
4427
+ continue;
4428
+ }
4429
+ }
4430
+ v.x = f("vertical", v.x, v.y, v.y).coord, b.x = f("vertical", b.x, b.y, b.y).coord;
4431
+ let M = Math.min(v.x, b.x) - 50, N = Math.max(v.x, b.x) + 50, F = Math.min(v.y, b.y) - 50, I = Math.max(v.y, b.y) + 50;
4432
+ for (let e of d) {
4433
+ let t = Math.min(v.x, b.x), n = Math.max(v.x, b.x), r = Math.min(v.y, b.y), i = Math.max(v.y, b.y);
4434
+ e.minX < n && e.maxX > t && e.minY < i && e.maxY > r && (M = Math.min(M, e.minX - Xn), N = Math.max(N, e.maxX + Xn), F = Math.min(F, e.minY - Xn), I = Math.max(I, e.maxY + Xn));
4435
+ }
4436
+ for (let e of d) {
4437
+ if (e.maxX < M || e.minX > N || e.maxY < F || e.minY > I) continue;
4438
+ let t = Jn;
4439
+ f("horizontal", e.minY - t, M, N), f("horizontal", e.maxY + t, M, N);
4440
+ let n = Yn;
4441
+ f("vertical", e.minX - n, F, I), f("vertical", e.maxX + n, F, I);
4442
+ }
4443
+ f("horizontal", v.y, M, N), f("horizontal", b.y, M, N);
4444
+ let L = c.filter((e) => e.orientation === "horizontal" && e.coord >= F && e.coord <= I), R = c.filter((e) => e.orientation === "vertical" && e.coord >= M && e.coord <= N), z = /* @__PURE__ */ t((e, t) => `${e.toFixed(1)},${t.toFixed(1)}`, "getKey"), B = z(v.x, v.y), re = z(b.x, b.y), V = /* @__PURE__ */ new Map(), H = /* @__PURE__ */ new Map(), ie = /* @__PURE__ */ new Map(), ae = /* @__PURE__ */ new Set(), U = [];
4445
+ V.set(B, 0), ie.set(B, "n"), U.push({
4446
+ key: B,
4447
+ f: Math.hypot(b.x - v.x, b.y - v.y),
4448
+ pt: v
4449
+ }), ae.add(B);
4450
+ let W = [], G = /* @__PURE__ */ t((e, t) => x(e, t, n.start, n.end), "checkSegmentBlocked"), oe = {
4451
+ x: b.x,
4452
+ y: v.y
4453
+ }, se = G(v, oe), K = G(oe, b), ce = se || K, le = {
4454
+ x: v.x,
4455
+ y: b.y
4456
+ }, ue = G(v, le), de = G(le, b);
4457
+ if (ce ? ue || de || (W = Math.abs(v.x - b.x) < $ ? [v, b] : [
4458
+ v,
4459
+ le,
4460
+ b
4461
+ ]) : W = Math.abs(v.y - b.y) < $ || Math.abs(v.x - b.x) < $ ? [v, b] : [
4462
+ v,
4463
+ oe,
4464
+ b
4465
+ ], W.length === 0) for (; U.length > 0;) {
4466
+ U.sort((e, t) => e.f - t.f);
4467
+ let t = U.shift();
4468
+ if (ae.delete(t.key), t.key === re) {
4469
+ let e = re, t = b;
4470
+ for (W = [t]; H.has(e);) {
4471
+ let n = H.get(e);
4472
+ W.unshift(n), t = n, e = z(n.x, n.y);
4473
+ }
4474
+ break;
4475
+ }
4476
+ let r = t.pt.x, i = t.pt.y, a = R.sort((e, t) => e.coord - t.coord), o = a.findIndex((e) => Math.abs(e.coord - r) < 1), s = L.sort((e, t) => e.coord - t.coord), c = s.findIndex((e) => Math.abs(e.coord - i) < 1), l = [];
4477
+ o > 0 && l.push({
4478
+ x: a[o - 1].coord,
4479
+ y: i
4480
+ }), o >= 0 && o < a.length - 1 && l.push({
4481
+ x: a[o + 1].coord,
4482
+ y: i
4483
+ }), c > 0 && l.push({
4484
+ x: r,
4485
+ y: s[c - 1].coord
4486
+ }), c >= 0 && c < s.length - 1 && l.push({
4487
+ x: r,
4488
+ y: s[c + 1].coord
4489
+ });
4490
+ for (let a of l) {
4491
+ let o = Math.min(r, a.x), s = Math.max(r, a.x), c = Math.min(i, a.y), l = Math.max(i, a.y);
4492
+ if (d.some((e) => e.nodeId === n.start || e.nodeId === n.end ? !1 : o === s ? e.minX < r && e.maxX > r && e.maxY > c && e.minY < l : e.minY < i && e.maxY > i && e.maxX > o && e.minX < s)) continue;
4493
+ let u = z(a.x, a.y), f = Math.abs(a.x - r) + Math.abs(a.y - i), p = y(e, t.pt, a), m = 0, h = b.x - v.x, g = b.y - v.y, _ = a.x - r, x = a.y - i;
4494
+ (g > 10 && x < -5 || g < -10 && x > 5) && (m = Math.abs(x) * 100), (h > 10 && _ < -5 || h < -10 && _ > 5) && (m += Math.abs(_) * 50);
4495
+ let S = 0, C = ie.get(t.key) ?? "n", w = Math.abs(_) > $ ? "h" : "v";
4496
+ C !== "n" && C !== w && (S = 50);
4497
+ let T = f + p + m + S, E = (V.get(t.key) ?? Infinity) + T, D = Math.abs(b.x - a.x) + Math.abs(b.y - a.y);
4498
+ if (E < (V.get(u) ?? Infinity)) if (H.set(u, t.pt), V.set(u, E), ie.set(u, w), !ae.has(u)) U.push({
4499
+ key: u,
4500
+ f: E + D,
4501
+ pt: a
4502
+ }), ae.add(u);
4503
+ else {
4504
+ let e = U.findIndex((e) => e.key === u);
4505
+ e !== -1 && (U[e].f = E + D);
4506
+ }
4507
+ }
4508
+ }
4509
+ if (W.length === 0 && (W = [
4510
+ v,
4511
+ {
4512
+ x: v.x,
4513
+ y: b.y
4514
+ },
4515
+ b
4516
+ ]), W.length > 4) {
4517
+ let e = W[0], n = W[W.length - 1], r = Math.min(e.x, n.x), i = Math.max(e.x, n.x), a = Math.min(e.y, n.y), o = Math.max(e.y, n.y);
4518
+ for (let e of W) r = Math.min(r, e.x), i = Math.max(i, e.x), a = Math.min(a, e.y), o = Math.max(o, e.y);
4519
+ let s = i > Math.max(e.x, n.x), c = r < Math.min(e.x, n.x);
4520
+ if (l) {
4521
+ let t = Yn;
4522
+ if (s) {
4523
+ let r = Math.max(e.x, n.x), a = Math.min(e.y, n.y), o = Math.max(e.y, n.y), s = d.filter((e) => e.minX < r && e.maxX > r && e.minY < o && e.maxY > a);
4524
+ if (s.length > 0) {
4525
+ let r = Math.max(e.x, n.x);
4526
+ for (let e of s) {
4527
+ let n = (e.minX + e.maxX) / 2;
4528
+ if (e.visualXHalfExtent === void 0 || isNaN(e.visualXHalfExtent)) continue;
4529
+ let i = n + e.visualXHalfExtent + t;
4530
+ r = Math.max(r, i);
4531
+ }
4532
+ isNaN(r) || (i = r);
4533
+ }
4534
+ }
4535
+ if (c) {
4536
+ let i = d.filter((r) => r.minX < Math.min(e.x, n.x) + t && r.minY < Math.max(e.y, n.y) && r.maxY > Math.min(e.y, n.y));
4537
+ if (i.length > 0) {
4538
+ let a = Math.min(e.x, n.x);
4539
+ for (let e of i) {
4540
+ let n = (e.minX + e.maxX) / 2 - e.visualXHalfExtent - t;
4541
+ a = Math.min(a, n);
4542
+ }
4543
+ r = a;
4544
+ }
4545
+ }
4546
+ }
4547
+ let u = /* @__PURE__ */ t((t) => {
4548
+ let r = n.y > e.y, i = d.filter((t) => {
4549
+ let r = Math.min(e.x, n.x) < t.maxX && Math.max(e.x, n.x) > t.minX, i = Math.min(e.y, n.y) < t.maxY && Math.max(e.y, n.y) > t.minY;
4550
+ return r && i;
4551
+ }), a = i;
4552
+ if (l && i.length > 0) {
4553
+ let e = i.filter((e) => e.minX < t && e.maxX > t);
4554
+ e.length > 0 && (a = e);
4555
+ }
4556
+ if (a.length === 0) return n.y;
4557
+ let o = Jn;
4558
+ if (r) {
4559
+ let e = Math.max(...a.map((e) => e.maxY)) + o;
4560
+ if (e < n.y - $) return e;
4561
+ } else {
4562
+ let e = Math.min(...a.map((e) => e.minY)) - o;
4563
+ if (e > n.y + $) return e;
4564
+ }
4565
+ return n.y;
4566
+ }, "findBestReturnY"), f = /* @__PURE__ */ t((t) => {
4567
+ let r = u(t), i = {
4568
+ x: t,
4569
+ y: e.y
4570
+ }, a = {
4571
+ x: t,
4572
+ y: r
4573
+ }, o = {
4574
+ x: n.x,
4575
+ y: r
4576
+ }, s = G(e, i), c = G(i, a), l = G(a, o), d = r === n.y ? !1 : G(o, n);
4577
+ return !s && !c && !l && !d ? Math.abs(r - n.y) < $ ? [
4578
+ e,
4579
+ i,
4580
+ a,
4581
+ n
4582
+ ] : [
4583
+ e,
4584
+ i,
4585
+ a,
4586
+ o,
4587
+ n
4588
+ ] : null;
4589
+ }, "trySimplifyWithDetourX"), p = s && !c ? f(i) : c && !s ? f(r) : null;
4590
+ p && (W = p);
4591
+ }
4592
+ let q = [
4593
+ s,
4594
+ ...O,
4595
+ ...W,
4596
+ ...j.reverse(),
4597
+ u
4598
+ ];
4599
+ if (q.length >= 3) {
4600
+ let e = q[q.length - 1], t = q[q.length - 2], n = q[q.length - 3], r = Math.abs(n.y - t.y) < $ && Math.abs(t.y - e.y) < $, i = Math.abs(n.x - t.x) < $ && Math.abs(t.x - e.x) < $;
4601
+ if (r) {
4602
+ let r = Math.sign(t.x - n.x), i = Math.sign(e.x - n.x);
4603
+ r !== 0 && r === i && Math.abs(t.x - n.x) > Math.abs(e.x - n.x) && q.splice(-2, 1);
4604
+ } else if (i) {
4605
+ let r = Math.sign(t.y - n.y), i = Math.sign(e.y - n.y);
4606
+ r !== 0 && r === i && Math.abs(t.y - n.y) > Math.abs(e.y - n.y) && q.splice(-2, 1);
4607
+ }
4608
+ }
4609
+ let fe = [q[0]];
4610
+ for (let e = 1; e < q.length - 1; e++) {
4611
+ if (e === 1) {
4612
+ fe.push(q[e]);
4613
+ continue;
4614
+ }
4615
+ let t = fe[fe.length - 1], n = q[e], r = q[e + 1];
4616
+ if (Math.abs(t.y - n.y) < $ && Math.abs(n.y - r.y) < $) {
4617
+ if (n.x > t.x != r.x > n.x) {
4618
+ fe.push(n);
4619
+ continue;
4620
+ }
4621
+ continue;
4622
+ }
4623
+ if (Math.abs(t.x - n.x) < $ && Math.abs(n.x - r.x) < $) {
4624
+ if (n.y > t.y != r.y > n.y) {
4625
+ fe.push(n);
4626
+ continue;
4627
+ }
4628
+ continue;
4629
+ }
4630
+ fe.push(n);
4631
+ }
4632
+ fe.push(q[q.length - 1]);
4633
+ for (let t = 0; t < fe.length - 1; t++) {
4634
+ let n = fe[t], r = fe[t + 1], i = Math.abs(n.x - r.x) < $ ? "vertical" : "horizontal", a = i === "vertical" ? n.x : n.y, o = i === "vertical" ? Math.min(n.y, r.y) : Math.min(n.x, r.x), s = i === "vertical" ? Math.max(n.y, r.y) : Math.max(n.x, r.x), c = f(i, a, o, s), l = {
4635
+ edgeIndex: e,
4636
+ segmentIndex: t,
4637
+ orientation: i,
4638
+ pipe: c,
4639
+ trackIndex: 0,
4640
+ from: o,
4641
+ to: s
4642
+ };
4643
+ h.push(l), g[e].push(h.length - 1), c.tracks[0] || (c.tracks[0] = {
4644
+ index: 0,
4645
+ coord: c.coord,
4646
+ segments: []
4647
+ }), c.tracks[0].segments.push({
4648
+ edgeIndex: e,
4649
+ segmentIndex: t,
4650
+ from: o,
4651
+ to: s
4652
+ });
4653
+ }
4654
+ }
4655
+ let F = /* @__PURE__ */ t((e, t) => e.from < t.to && t.from < e.to, "segmentsOverlap"), I = /* @__PURE__ */ t((e, t, n, r) => {
4656
+ let i = !r.segments.some((n) => (n.edgeIndex !== t.edgeIndex || n.segmentIndex !== t.segmentIndex) && F(n, e)), a = !n.segments.some((n) => (n.edgeIndex !== e.edgeIndex || n.segmentIndex !== e.segmentIndex) && F(n, t));
4657
+ return i && a ? (e.trackIndex = r.index, t.trackIndex = n.index, n.segments = [...n.segments.filter((t) => t.edgeIndex !== e.edgeIndex || t.segmentIndex !== e.segmentIndex), {
4658
+ edgeIndex: t.edgeIndex,
4659
+ segmentIndex: t.segmentIndex,
4660
+ from: t.from,
4661
+ to: t.to
4662
+ }], r.segments = [...r.segments.filter((e) => e.edgeIndex !== t.edgeIndex || e.segmentIndex !== t.segmentIndex), {
4663
+ edgeIndex: e.edgeIndex,
4664
+ segmentIndex: e.segmentIndex,
4665
+ from: e.from,
4666
+ to: e.to
4667
+ }], !0) : !1;
4668
+ }, "trySwapSegmentsAcrossTracks"), L = /* @__PURE__ */ t((e) => {
4669
+ let t = e.tracks.length;
4670
+ return e.tracks[t] = {
4671
+ index: t,
4672
+ coord: e.coord,
4673
+ segments: []
4674
+ }, t;
4675
+ }, "createNewTrack"), R = /* @__PURE__ */ t((e, t) => {
4676
+ let n = e.pipe.tracks[e.trackIndex];
4677
+ n.segments = n.segments.filter((t) => t.edgeIndex !== e.edgeIndex || t.segmentIndex !== e.segmentIndex), e.trackIndex = t, e.pipe.tracks[t].segments.push({
4678
+ edgeIndex: e.edgeIndex,
4679
+ segmentIndex: e.segmentIndex,
4680
+ from: e.from,
4681
+ to: e.to
4682
+ });
4683
+ }, "moveSegmentToTrack"), z = /* @__PURE__ */ t((e, t) => {
4684
+ let n = g[e.edgeIndex];
4685
+ for (let r of n) {
4686
+ let n = h[r];
4687
+ n.pipe === e.pipe && R(n, t);
4688
+ }
4689
+ }, "moveSegmentChainToTrack"), B = /* @__PURE__ */ t((e) => {
4690
+ let t = g[e.edgeIndex], n = t.indexOf(h.indexOf(e)), r = [];
4691
+ return n > 0 && r.push(h[t[n - 1]]), n < t.length - 1 && r.push(h[t[n + 1]]), r;
4692
+ }, "getAdjacentSegmentsAlongEdge"), re = /* @__PURE__ */ t((e, t) => {
4693
+ if (e.orientation === t.orientation) return !1;
4694
+ let n = e.orientation === "horizontal" ? e : t, r = e.orientation === "horizontal" ? t : e;
4695
+ return r.pipe.coord > n.from && r.pipe.coord < n.to && n.pipe.coord > r.from && n.pipe.coord < r.to;
4696
+ }, "haveAnyCrossing"), V = /* @__PURE__ */ t((e, t) => {
4697
+ for (let n of e.tracks) if (!n.segments.some((e) => (e.edgeIndex !== t.edgeIndex || e.segmentIndex !== t.segmentIndex) && F(e, t))) return n.index;
4698
+ return -1;
4699
+ }, "findAvailableTrack"), H = /* @__PURE__ */ t((e, t) => {
4700
+ if (e.trackIndex === t.trackIndex) return F(e, t);
4701
+ let n = B(e), r = B(t);
4702
+ return n.some((e) => r.some((t) => re(e, t)));
4703
+ }, "segmentsConflict"), ie = /* @__PURE__ */ t((e, t, n) => {
4704
+ if (I(e, t, e.pipe.tracks[e.trackIndex], t.pipe.tracks[t.trackIndex])) return;
4705
+ let r = V(e.pipe, t);
4706
+ n(t, r === -1 ? L(e.pipe) : r);
4707
+ }, "resolveTrackConflict"), ae = /* @__PURE__ */ t((e) => {
4708
+ let t = 0;
4709
+ for (let n = 0; n < e.length; n++) for (let r = n + 1; r < e.length; r++) {
4710
+ let i = e[n], a = e[r];
4711
+ i.pipe === a.pipe && H(i, a) && (t++, ie(i, a, z));
4712
+ }
4713
+ return t;
4714
+ }, "resolveHandleConflicts"), U = /* @__PURE__ */ new Map(), W = /* @__PURE__ */ t((e) => {
4715
+ if (U.has(e)) return U.get(e);
4716
+ let t = g[e];
4717
+ if (t.length === 0) {
4718
+ let t = {
4719
+ dest: 0,
4720
+ deviation: 0,
4721
+ base: 0,
4722
+ delta: 0
4723
+ };
4724
+ return U.set(e, t), t;
4725
+ }
4726
+ let n = h[t[0]].pipe.coord, r = n;
4727
+ for (let e = 1; e < t.length; e++) {
4728
+ let i = h[t[e]];
4729
+ if (i.orientation === "horizontal") {
4730
+ let e = i.from, t = i.to;
4731
+ r = Math.abs(e - n) > Math.abs(t - n) ? e : t;
4732
+ break;
4733
+ }
4734
+ }
4735
+ let i = Math.abs(r - n), a = {
4736
+ dest: r,
4737
+ deviation: i,
4738
+ base: n,
4739
+ delta: r - n
4740
+ };
4741
+ return U.set(e, a), a;
4742
+ }, "getDestInfo"), G = /* @__PURE__ */ t(() => {
4743
+ let e = 0, n = /* @__PURE__ */ new Map();
4744
+ for (let [e, t] of a.entries()) g[e].length !== 0 && t.start && (n.has(t.start) || n.set(t.start, []), n.get(t.start).push(e));
4745
+ let r = /* @__PURE__ */ t((e) => {
4746
+ let t = a[e];
4747
+ if (!t.start || !t.end) return 0;
4748
+ let n = o.get(t.start), r = o.get(t.end);
4749
+ if (!n || !r) return 0;
4750
+ let i = (r.x ?? 0) - (n.x ?? 0), s = (r.y ?? 0) - (n.y ?? 0);
4751
+ return Math.abs(i) + Math.abs(s);
4752
+ }, "getEdgeDistance");
4753
+ for (let t of n.values()) {
4754
+ t.sort((e, t) => {
4755
+ let n = W(e), i = W(t);
4756
+ if (Math.abs(n.deviation - i.deviation) > 1) return n.deviation - i.deviation;
4757
+ if (Math.abs(n.dest - i.dest) > 1) return n.dest - i.dest;
4758
+ let a = r(e), o = r(t);
4759
+ if (Math.abs(a - o) > 1) return o - a;
4760
+ let s = g[e].length, c = g[t].length;
4761
+ if (s !== c) return s - c;
4762
+ if (s === 1) {
4763
+ let n = g[e][0], r = g[t][0];
4764
+ if (h[n] && h[r]) {
4765
+ let e = h[n], t = h[r], i = Math.abs(e.to - e.from), a = Math.abs(t.to - t.from);
4766
+ if (Math.abs(i - a) > 1) return i - a;
4767
+ }
4768
+ }
4769
+ return 0;
4770
+ });
4771
+ let n = t.map((e) => h[g[e][0]]);
4772
+ e += ae(n);
4773
+ }
4774
+ return e;
4775
+ }, "fixSourceHandleCrossings"), oe = /* @__PURE__ */ t(() => {
4776
+ let e = 0, n = /* @__PURE__ */ new Map();
4777
+ for (let [e, t] of a.entries()) g[e].length !== 0 && t.end && (n.has(t.end) || n.set(t.end, []), n.get(t.end).push(e));
4778
+ for (let r of n.values()) {
4779
+ r.sort((e, n) => {
4780
+ let r = /* @__PURE__ */ t((e) => {
4781
+ let t = g[e];
4782
+ if (t.length < 2) return 0;
4783
+ let n = h[t[t.length - 2]];
4784
+ return Math.abs(n.to - n.from);
4785
+ }, "getDist"), i = r(e), a = r(n);
4786
+ return Math.abs(i - a) > .1 ? i - a : e - n;
4787
+ });
4788
+ let n = r.map((e) => h[g[e][g[e].length - 1]]);
4789
+ e += ae(n);
4790
+ }
4791
+ return e;
4792
+ }, "fixTargetHandleCrossings"), se = /* @__PURE__ */ t(() => {
4793
+ let e = 0;
4794
+ for (let t of c) {
4795
+ let n = [];
4796
+ for (let e of t.tracks) for (let t of e.segments) {
4797
+ let e = g[t.edgeIndex].find((e) => h[e].segmentIndex === t.segmentIndex);
4798
+ e !== void 0 && n.push(h[e]);
4799
+ }
4800
+ n.sort((e, t) => e.edgeIndex - t.edgeIndex || e.segmentIndex - t.segmentIndex);
4801
+ for (let t = 0; t < n.length; t++) for (let r = t + 1; r < n.length; r++) {
4802
+ let i = n[t], a = n[r];
4803
+ H(i, a) && (e++, ie(i, a, R));
4804
+ }
4805
+ }
4806
+ return e;
4807
+ }, "fixPipeCrossings"), K = 0;
4808
+ for (; K < 10;) {
4809
+ let e = 0;
4810
+ if (e += G(), e += oe(), e += se(), e === 0) break;
4811
+ K++;
4812
+ }
4813
+ let ce = /* @__PURE__ */ new Map();
4814
+ for (let e of c) {
4815
+ let n = [];
4816
+ e.tracks.forEach((e) => {
4817
+ e.segments.forEach((t) => {
4818
+ n.push({
4819
+ edgeIndex: t.edgeIndex,
4820
+ segmentIndex: t.segmentIndex,
4821
+ trackIndex: e.index,
4822
+ from: t.from,
4823
+ to: t.to
4824
+ });
4825
+ });
4826
+ }), n.sort((e, t) => e.from - t.from);
4827
+ let r = [];
4828
+ if (n.length > 0) {
4829
+ let e = [n[0]], t = n[0].to;
4830
+ for (let i = 1; i < n.length; i++) {
4831
+ let a = n[i];
4832
+ a.from < t ? (e.push(a), t = Math.max(t, a.to)) : (r.push(e), e = [a], t = a.to);
4833
+ }
4834
+ r.push(e);
4835
+ }
4836
+ for (let n of r) {
4837
+ let r = /* @__PURE__ */ new Set();
4838
+ n.forEach((e) => r.add(e.trackIndex));
4839
+ let i = /* @__PURE__ */ new Map();
4840
+ n.forEach((e) => {
4841
+ let t = W(e.edgeIndex);
4842
+ i.set(e.trackIndex, (i.get(e.trackIndex) ?? 0) + t.delta);
4843
+ });
4844
+ let a = [...r].filter((e) => (i.get(e) ?? 0) < -1), o = [...r].filter((e) => (i.get(e) ?? 0) > 1), s = [...r].filter((e) => Math.abs(i.get(e) ?? 0) <= 1);
4845
+ a.sort((e, t) => (i.get(t) ?? 0) - (i.get(e) ?? 0)), o.sort((e, t) => (i.get(e) ?? 0) - (i.get(t) ?? 0));
4846
+ let c = /* @__PURE__ */ t((t, r) => {
4847
+ n.filter((e) => e.trackIndex === t).forEach((t) => {
4848
+ let n = _.has(t.edgeIndex) ? e.coord : r;
4849
+ ce.set(`${t.edgeIndex}-${t.segmentIndex}`, n);
4850
+ });
4851
+ }, "assignCoord"), l = 0;
4852
+ for (let t of a) l++, c(t, e.coord - l * Qn);
4853
+ if (s.length === 0 && r.size > 0) {
4854
+ let e = [...r].sort((e, t) => Math.abs(i.get(e) ?? 0) - Math.abs(i.get(t) ?? 0))[0], t = a.indexOf(e);
4855
+ t !== -1 && a.splice(t, 1);
4856
+ let n = o.indexOf(e);
4857
+ n !== -1 && o.splice(n, 1), s.push(e);
4858
+ }
4859
+ let u = 0;
4860
+ for (let t of s) {
4861
+ if (u === 0) c(t, e.coord);
4862
+ else {
4863
+ let n = u % 2 == 1 ? 1 : -1, r = Math.ceil(u / 2);
4864
+ c(t, e.coord + n * r * Qn * .5);
4865
+ }
4866
+ u++;
4867
+ }
4868
+ let d = 0;
4869
+ for (let t of o) d++, c(t, e.coord + d * Qn);
4870
+ }
4871
+ }
4872
+ for (let [e, t] of a.entries()) {
4873
+ let n = g[e] ?? [];
4874
+ if (n.length === 0) continue;
4875
+ let r = [], { pSrcPort: i, pDstPort: a } = P(e, o.get(t.start), o.get(t.end)), s = n.map((e) => {
4876
+ let t = h[e], n = ce.get(`${t.edgeIndex}-${t.segmentIndex}`) ?? t.pipe.coord;
4877
+ return {
4878
+ orient: t.orientation,
4879
+ coord: n,
4880
+ from: t.from,
4881
+ to: t.to
4882
+ };
4883
+ });
4884
+ r.push(i);
4885
+ for (let e = 0; e < s.length; e++) {
4886
+ let t = s[e], n = r[r.length - 1], i = t.orient === "vertical" ? n.y : n.x, a = t.orient === "vertical" ? n.x : n.y, o = s[e + 1], c = e < s.length - 1;
4887
+ if (Math.abs(a - t.coord) > $ && r.push(tr(t, i)), c && o.orient === t.orient) if (Math.abs(t.coord - o.coord) > $) {
4888
+ let e = t.orient === "vertical" ? (i + o.from) / 2 : er(t, o);
4889
+ r.push(tr(t, e), tr(o, e));
4890
+ } else (e === 0 || e === s.length - 2) && r.push(tr(t, er(t, o)));
4891
+ else if (c) r.push(tr(t, o.coord));
4892
+ else {
4893
+ let e = Math.abs(t.from - i) < Math.abs(t.to - i) ? t.to : t.from;
4894
+ r.push(tr(t, e));
4895
+ }
4896
+ }
4897
+ let c = r[r.length - 1];
4898
+ (Math.abs(c.x - a.x) > $ || Math.abs(c.y - a.y) > $) && r.push(a);
4899
+ let l = [];
4900
+ r.length > 0 && l.push(r[0]);
4901
+ for (let e = 1; e < r.length; e++) {
4902
+ let t = r[e], n = l[l.length - 1];
4903
+ (Math.abs(t.x - n.x) > $ || Math.abs(t.y - n.y) > $) && l.push(t);
4904
+ }
4905
+ t.points = l;
4906
+ }
4907
+ for (let e of a) {
4908
+ let t = e.__originalEdge;
4909
+ t && e.points && (t.points = e.points);
4910
+ }
4911
+ e.edges = (e.edges ?? []).filter((e) => !e.isLayoutOnly);
4912
+ let le = /* @__PURE__ */ t((e, t) => {
4913
+ let n = t.x ?? 0, r = t.y ?? 0, i = t.width ?? 0, a = t.height ?? 0;
4914
+ if (i <= 0 || a <= 0) return e;
4915
+ let o = n - i / 2, s = n + i / 2, c = r - a / 2, l = r + a / 2;
4916
+ if (e.x < o || e.x > s || e.y < c || e.y > l) return e;
4917
+ let u = e.x - o, d = s - e.x, f = e.y - c, p = l - e.y, m = Math.min(u, d, f, p);
4918
+ return m === u ? {
4919
+ x: o,
4920
+ y: e.y
4921
+ } : m === d ? {
4922
+ x: s,
4923
+ y: e.y
4924
+ } : m === f ? {
4925
+ x: e.x,
4926
+ y: c
4927
+ } : {
4928
+ x: e.x,
4929
+ y: l
4930
+ };
4931
+ }, "nodeBoundaryClamp");
4932
+ for (let t of e.edges) {
4933
+ let e = t.points;
4934
+ if (!e || e.length < 2) continue;
4935
+ let n = t.start, r = t.end, i = n ? o.get(n) : void 0, a = r ? o.get(r) : void 0;
4936
+ i && (e[0] = le(e[0], i)), a && (e[e.length - 1] = le(e[e.length - 1], a));
4937
+ }
4938
+ return e;
4939
+ }
4940
+ t(nr, "routeEdgesOrthogonal");
4941
+ function rr(e) {
4942
+ return e.direction ?? "TB";
4943
+ }
4944
+ t(rr, "getSwimlaneDirection");
4945
+ function ir(e) {
4946
+ let t = A(e), n = e.config.flowchart?.nodeSpacing ?? 40, r = e.config.flowchart?.rankSpacing ?? 100, i = e.config.swimlane?.ignoreCrossLaneEdges ?? !0, a = e.config.swimlane?.optimizeRanksByCrossings ?? !0, o = e.config.swimlane?.automaticLaneOrdering ?? !1, s = rr(e), { ordered: c, coordinates: l } = Kn(t, {
4947
+ nodeGap: n,
4948
+ layerGap: r,
4949
+ ignoreCrossLaneEdges: i,
4950
+ optimizeRanksByCrossings: a,
4951
+ automaticLaneOrdering: o,
4952
+ direction: s
4953
+ });
4954
+ j(t, c, l, {
4955
+ nodeGap: n,
4956
+ layerGap: r
4957
+ });
4958
+ for (let t of e.edges ?? []) delete t.points;
4959
+ nr(e, s);
4960
+ for (let t of e.edges ?? []) (!t.curve || t.curve === "basis") && (t.curve = "rounded");
4961
+ return It(e, s), Ft(e), s;
4962
+ }
4963
+ t(ir, "runSwimlaneLayoutCore");
4964
+ function ar(e) {
4965
+ k(e);
4966
+ let t = te(e);
4967
+ e.nodes = t.nodes, e.edges = t.edges;
4968
+ }
4969
+ t(ar, "prepareSwimlaneLayout");
4970
+ var or = r({
4971
+ prepareLayout: ar,
4972
+ runLayoutCore: ir,
4973
+ afterPaint: C
4974
+ });
4975
+ //#endregion
4976
+ export { or as render };