@cagent/chat-embedding-core 0.0.13 → 0.0.17
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.
- package/.env +6 -0
- package/README.md +213 -213
- package/bun.lock +1548 -1548
- package/dist/abnfDiagram-VRR7QNED-3cfb3856.js +1 -0
- package/dist/abnfDiagram-VRR7QNED-686410b0.js +1 -0
- package/dist/abnfDiagram-VRR7QNED-fb22812d.js +1 -0
- package/dist/api/chatRoom.d.ts.map +1 -0
- package/dist/arc-24dd4755.js +1 -0
- package/dist/arc-5d6257cf.js +1 -0
- package/dist/arc-90e71e7e.js +1 -0
- package/dist/architecture-TIHT7OUA-a997f441.js +1 -0
- package/dist/architecture-TIHT7OUA-faa1f9b3.js +1 -0
- package/dist/architectureDiagram-ZJ3FMSHR-87443299.js +1 -0
- package/dist/architectureDiagram-ZJ3FMSHR-93988e41.js +1 -0
- package/dist/architectureDiagram-ZJ3FMSHR-bde2dd21.js +1 -0
- package/dist/blockDiagram-677ZJIJ3-25a94a47.js +1 -0
- package/dist/blockDiagram-677ZJIJ3-88bd543c.js +1 -0
- package/dist/blockDiagram-677ZJIJ3-c769a3c8.js +1 -0
- package/dist/c4Diagram-LMCZKHZV-763880d7.js +1 -0
- package/dist/c4Diagram-LMCZKHZV-d7fc839e.js +1 -0
- package/dist/c4Diagram-LMCZKHZV-da04a76e.js +1 -0
- package/dist/channel-11d3f4bc.js +1 -0
- package/dist/channel-534c2e17.js +1 -0
- package/dist/channel-c3cf6060.js +1 -0
- package/dist/chunk-2Q5K7J3B-2892df89.js +1 -0
- package/dist/chunk-2Q5K7J3B-7960ff8e.js +1 -0
- package/dist/chunk-2Q5K7J3B-9497bf31.js +1 -0
- package/dist/chunk-32BRIVSS-10123eba.js +1 -0
- package/dist/chunk-32BRIVSS-10ac68f7.js +1 -0
- package/dist/chunk-32BRIVSS-8a8507a2.js +1 -0
- package/dist/chunk-5VM5RSS4-36b32f6e.js +1 -0
- package/dist/chunk-5VM5RSS4-4b2efd20.js +1 -0
- package/dist/chunk-5VM5RSS4-5fc85a49.js +1 -0
- package/dist/chunk-EX3LRPZG-36494b87.js +1 -0
- package/dist/chunk-EX3LRPZG-6cd1f2fa.js +1 -0
- package/dist/chunk-EX3LRPZG-7ac6d0d7.js +1 -0
- package/dist/chunk-JWPE2WC7-15a55950.js +1 -0
- package/dist/chunk-JWPE2WC7-84faee3d.js +1 -0
- package/dist/chunk-JWPE2WC7-e2521b1e.js +1 -0
- package/dist/chunk-MOJQB5TN-47f0392f.js +1 -0
- package/dist/chunk-MOJQB5TN-5cc2e61b.js +1 -0
- package/dist/chunk-MOJQB5TN-ea88675c.js +1 -0
- package/dist/chunk-PUDLZKDR-057ec46a.js +1 -0
- package/dist/chunk-PUDLZKDR-53309be9.js +1 -0
- package/dist/chunk-PUDLZKDR-6de50ada.js +1 -0
- package/dist/chunk-RYQCIY6F-06b096c5.js +1 -0
- package/dist/chunk-RYQCIY6F-453400cd.js +1 -0
- package/dist/chunk-RYQCIY6F-8de649c8.js +1 -0
- package/dist/chunk-V7JOEXUC-4083766f.js +1 -0
- package/dist/chunk-V7JOEXUC-4e8d7729.js +1 -0
- package/dist/chunk-V7JOEXUC-bb2df9b0.js +1 -0
- package/dist/chunk-VR4S4FIN-5feb7571.js +1 -0
- package/dist/chunk-VR4S4FIN-9df47127.js +1 -0
- package/dist/chunk-VR4S4FIN-c4f2681d.js +1 -0
- package/dist/chunk-XXDRQBXY-3c9d8bf9.js +1 -0
- package/dist/chunk-XXDRQBXY-de00e988.js +1 -0
- package/dist/chunk-XXDRQBXY-f923ffed.js +1 -0
- package/dist/classDiagram-OUVF2IWQ-5cdf5fe6.js +1 -0
- package/dist/classDiagram-OUVF2IWQ-d51bd736.js +1 -0
- package/dist/classDiagram-OUVF2IWQ-fc2b54d6.js +1 -0
- package/dist/classDiagram-v2-EOCWNBFH-5cdf5fe6.js +1 -0
- package/dist/classDiagram-v2-EOCWNBFH-d51bd736.js +1 -0
- package/dist/classDiagram-v2-EOCWNBFH-fc2b54d6.js +1 -0
- package/dist/components/Badge.d.ts.map +1 -0
- package/dist/components/Bot.d.ts.map +1 -0
- package/dist/components/FeedbackContentDialog.d.ts.map +1 -0
- package/dist/components/RoomReconnectAlert.d.ts.map +1 -0
- package/dist/components/Toast.d.ts.map +1 -0
- package/dist/components/TypingBubble.d.ts.map +1 -0
- package/dist/components/avatars/Avatar.d.ts.map +1 -0
- package/dist/components/avatars/DefaultAvatar.d.ts.map +1 -0
- package/dist/components/bubbles/AgentReasoningBubble.d.ts.map +1 -0
- package/dist/components/bubbles/BotBubble.d.ts.map +1 -0
- package/dist/components/bubbles/ChartBubble.d.ts.map +1 -0
- package/dist/components/bubbles/ChartLoadingPlaceholder.d.ts.map +1 -0
- package/dist/components/bubbles/ChartPlaceholder.d.ts.map +1 -0
- package/dist/components/bubbles/ChartPopupModal.d.ts.map +1 -0
- package/dist/components/bubbles/FollowUpPromptBubble.d.ts.map +1 -0
- package/dist/components/bubbles/GuestBubble.d.ts.map +1 -0
- package/dist/components/bubbles/LeadCaptureBubble.d.ts.map +1 -0
- package/dist/components/bubbles/LoadingBubble.d.ts.map +1 -0
- package/dist/components/bubbles/SourceBubble.d.ts.map +1 -0
- package/dist/components/bubbles/StableChartWrapper.d.ts.map +1 -0
- package/dist/components/bubbles/StarterPromptBubble.d.ts.map +1 -0
- package/dist/components/buttons/AttachmentUploadButton.d.ts.map +1 -0
- package/dist/components/buttons/CancelButton.d.ts.map +1 -0
- package/dist/components/buttons/CopyMessageButton.d.ts.map +1 -0
- package/dist/components/buttons/EditMessageButton.d.ts.map +1 -0
- package/dist/components/buttons/FeedbackButtons.d.ts.map +1 -0
- package/dist/components/buttons/ImageUploadButton.d.ts.map +1 -0
- package/dist/components/buttons/LeadCaptureButtons.d.ts.map +1 -0
- package/dist/components/buttons/PopupToast.d.ts.map +1 -0
- package/dist/components/buttons/RecordAudioButton.d.ts.map +1 -0
- package/dist/components/buttons/SendButton.d.ts.map +1 -0
- package/dist/components/dialogs/EditMessageDialog.d.ts.map +1 -0
- package/dist/components/icons/AddImageIcon.d.ts.map +1 -0
- package/dist/components/icons/AttachmentIcon.d.ts.map +1 -0
- package/dist/components/icons/CheckIcon.d.ts.map +1 -0
- package/dist/components/icons/CircleDotIcon.d.ts.map +1 -0
- package/dist/components/icons/ClipboardIcon.d.ts.map +1 -0
- package/dist/components/icons/CopyIcon.d.ts.map +1 -0
- package/dist/components/icons/DeleteIcon.d.ts.map +1 -0
- package/dist/components/icons/EditIcon.d.ts.map +1 -0
- package/dist/components/icons/FullScreenIcon.d.ts.map +1 -0
- package/dist/components/icons/RecordIcon.d.ts.map +1 -0
- package/dist/components/icons/ResetZoomIcon.d.ts.map +1 -0
- package/dist/components/icons/SendIcon.d.ts.map +1 -0
- package/dist/components/icons/SparklesIcon.d.ts.map +1 -0
- package/dist/components/icons/StopIcon.d.ts.map +1 -0
- package/dist/components/icons/ThumbsDownIcon.d.ts.map +1 -0
- package/dist/components/icons/ThumbsUpIcon.d.ts.map +1 -0
- package/dist/components/icons/TickIcon.d.ts.map +1 -0
- package/dist/components/icons/TrashIcon.d.ts.map +1 -0
- package/dist/components/icons/XIcon.d.ts.map +1 -0
- package/dist/components/icons/ZoomInIcon.d.ts.map +1 -0
- package/dist/components/icons/ZoomOutIcon.d.ts.map +1 -0
- package/dist/components/icons/index.d.ts.map +1 -0
- package/dist/components/image/PreviewImage.d.ts.map +1 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/inputs/textInput/components/FilePreview.d.ts.map +1 -0
- package/dist/components/inputs/textInput/components/ShortTextInput.d.ts.map +1 -0
- package/dist/components/inputs/textInput/components/TextInput.d.ts.map +1 -0
- package/dist/components/inputs/textInput/index.d.ts.map +1 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/cose-bilkent-JH36ORCC-ac4d2e28.js +1 -0
- package/dist/cose-bilkent-JH36ORCC-c3560feb.js +1 -0
- package/dist/cose-bilkent-JH36ORCC-f0ddc3e7.js +1 -0
- package/dist/cynefin-VYW2F7L2-2458ad91.js +1 -0
- package/dist/cynefin-VYW2F7L2-a8648cf6.js +1 -0
- package/dist/cynefinDiagram-TSTJHNR4-62a29383.js +1 -0
- package/dist/cynefinDiagram-TSTJHNR4-910b3dfd.js +1 -0
- package/dist/cynefinDiagram-TSTJHNR4-deb0bb2c.js +1 -0
- package/dist/cytoscape.esm-56d2239f.js +1 -0
- package/dist/cytoscape.esm-c9352dc8.js +1 -0
- package/dist/dagre-VKFMJZFB-1467d0af.js +1 -0
- package/dist/dagre-VKFMJZFB-35daad97.js +1 -0
- package/dist/dagre-VKFMJZFB-c5b9a4a0.js +1 -0
- package/dist/defaultLocale-b4977250.js +1 -0
- package/dist/defaultLocale-e35a4def.js +1 -0
- package/dist/diagram-FQU43EPY-41eed431.js +1 -0
- package/dist/diagram-FQU43EPY-613e9e4e.js +1 -0
- package/dist/diagram-FQU43EPY-d256050e.js +1 -0
- package/dist/diagram-G47NLZAW-813bbb70.js +1 -0
- package/dist/diagram-G47NLZAW-8ef917d1.js +1 -0
- package/dist/diagram-G47NLZAW-aa02607c.js +1 -0
- package/dist/diagram-NH7WQ7WH-0af7a921.js +1 -0
- package/dist/diagram-NH7WQ7WH-0e4f7f17.js +1 -0
- package/dist/diagram-NH7WQ7WH-6f91f6aa.js +1 -0
- package/dist/diagram-OA4YK3LP-0fba2475.js +1 -0
- package/dist/diagram-OA4YK3LP-587273f4.js +1 -0
- package/dist/diagram-OA4YK3LP-6cbfc7a5.js +1 -0
- package/dist/diagram-WEI45ONY-0241463f.js +1 -0
- package/dist/diagram-WEI45ONY-dd634033.js +1 -0
- package/dist/diagram-WEI45ONY-e002e844.js +1 -0
- package/dist/ebnfDiagram-CCIWWBDH-20ac4ba3.js +1 -0
- package/dist/ebnfDiagram-CCIWWBDH-e9974165.js +1 -0
- package/dist/ebnfDiagram-CCIWWBDH-ead44055.js +1 -0
- package/dist/erDiagram-Q63AITRT-1febb8fc.js +1 -0
- package/dist/erDiagram-Q63AITRT-4ea4b93d.js +1 -0
- package/dist/erDiagram-Q63AITRT-bcb00855.js +1 -0
- package/dist/eventmodeling-45OFAUF4-a82f1f18.js +1 -0
- package/dist/eventmodeling-45OFAUF4-dcf667fc.js +1 -0
- package/dist/features/bubble/components/Bubble.d.ts.map +1 -0
- package/dist/features/bubble/components/BubbleButton.d.ts.map +1 -0
- package/dist/features/bubble/components/Tooltip.d.ts.map +1 -0
- package/dist/features/bubble/components/index.d.ts.map +1 -0
- package/dist/features/bubble/index.d.ts.map +1 -0
- package/dist/features/bubble/types.d.ts.map +1 -0
- package/dist/features/full/components/Full.d.ts.map +1 -0
- package/dist/features/full/components/index.d.ts.map +1 -0
- package/dist/features/full/index.d.ts.map +1 -0
- package/dist/features/popup/components/DisclaimerPopup.d.ts.map +1 -0
- package/dist/features/popup/components/Popup.d.ts.map +1 -0
- package/dist/features/popup/components/index.d.ts.map +1 -0
- package/dist/features/popup/index.d.ts.map +1 -0
- package/dist/features/popup/types.d.ts.map +1 -0
- package/dist/flowDiagram-23GEKE2U-14ee2b3c.js +1 -0
- package/dist/flowDiagram-23GEKE2U-7ab9c2e4.js +1 -0
- package/dist/flowDiagram-23GEKE2U-f7309569.js +1 -0
- package/dist/ganttDiagram-NO4QXBWP-249a167d.js +1 -0
- package/dist/ganttDiagram-NO4QXBWP-bd530d12.js +1 -0
- package/dist/ganttDiagram-NO4QXBWP-e5e495d6.js +1 -0
- package/dist/gitGraph-TEB2WS4Q-72ba3362.js +1 -0
- package/dist/gitGraph-TEB2WS4Q-d07b15b3.js +1 -0
- package/dist/gitGraphDiagram-IHSO6WYX-2964ff91.js +1 -0
- package/dist/gitGraphDiagram-IHSO6WYX-4d9324ad.js +1 -0
- package/dist/gitGraphDiagram-IHSO6WYX-97bf868b.js +1 -0
- package/dist/graph-0df36b9d.js +1 -0
- package/dist/graph-c6801890.js +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/info-DKCQHKI2-d8e8a901.js +1 -0
- package/dist/info-DKCQHKI2-dd69502c.js +1 -0
- package/dist/infoDiagram-FWYZ7A6U-1267309e.js +1 -0
- package/dist/infoDiagram-FWYZ7A6U-5b9d28af.js +1 -0
- package/dist/infoDiagram-FWYZ7A6U-cc33afe4.js +1 -0
- package/dist/init-b029a625.js +1 -0
- package/dist/init-cf76ae07.js +1 -0
- package/dist/ishikawaDiagram-FXEZZL3T-3f0977e8.js +1 -0
- package/dist/ishikawaDiagram-FXEZZL3T-89c1b2f4.js +1 -0
- package/dist/ishikawaDiagram-FXEZZL3T-9fef4653.js +1 -0
- package/dist/journeyDiagram-5HDEW3XC-563a68ff.js +1 -0
- package/dist/journeyDiagram-5HDEW3XC-c8c8d701.js +1 -0
- package/dist/journeyDiagram-5HDEW3XC-e6c5e84b.js +1 -0
- package/dist/kanban-definition-HUTT4EX6-3719e367.js +1 -0
- package/dist/kanban-definition-HUTT4EX6-7bc0cd1e.js +1 -0
- package/dist/kanban-definition-HUTT4EX6-d8b002e3.js +1 -0
- package/dist/katex-67456a45.js +1 -0
- package/dist/katex-b134d23c.js +1 -0
- package/dist/layout-e44354bf.js +1 -0
- package/dist/layout-ff5d33a1.js +1 -0
- package/dist/linear-7b1a23f3.js +1 -0
- package/dist/linear-d7ad6d25.js +1 -0
- package/dist/linear-e5c99c88.js +1 -0
- package/dist/map-05f0ff95.js +1 -0
- package/dist/map-d3292a5b.js +1 -0
- package/dist/mermaid-parser.core-6df0beec.js +1 -0
- package/dist/mermaid-parser.core-d8d1c2b9.js +1 -0
- package/dist/mermaid.core-2d237a1e.js +1 -0
- package/dist/mermaid.core-70d5aead.js +1 -0
- package/dist/mermaid.core-8797d6a9.js +1 -0
- package/dist/mindmap-definition-LN4V7U3C-04a12a88.js +1 -0
- package/dist/mindmap-definition-LN4V7U3C-86a890ce.js +1 -0
- package/dist/mindmap-definition-LN4V7U3C-f495948c.js +1 -0
- package/dist/ordinal-221e41d7.js +1 -0
- package/dist/ordinal-4a51e46c.js +1 -0
- package/dist/packet-7NZHBO7P-b4586e10.js +1 -0
- package/dist/packet-7NZHBO7P-f62750ff.js +1 -0
- package/dist/pegDiagram-2B236MQR-234fe6d1.js +1 -0
- package/dist/pegDiagram-2B236MQR-2826e278.js +1 -0
- package/dist/pegDiagram-2B236MQR-64eeb662.js +1 -0
- package/dist/pie-RZYD4A2V-106ba3d7.js +1 -0
- package/dist/pie-RZYD4A2V-752eda00.js +1 -0
- package/dist/pieDiagram-ENE6RG2P-0c3b09b8.js +1 -0
- package/dist/pieDiagram-ENE6RG2P-3fb5f734.js +1 -0
- package/dist/pieDiagram-ENE6RG2P-af928526.js +1 -0
- package/dist/quadrantDiagram-ABIIQ3AL-1a55c0f5.js +1 -0
- package/dist/quadrantDiagram-ABIIQ3AL-3d15c26d.js +1 -0
- package/dist/quadrantDiagram-ABIIQ3AL-9110fa9c.js +1 -0
- package/dist/queries/sendMessageQuery.d.ts.map +1 -0
- package/dist/radar-I7S5WNFK-53bde9ff.js +1 -0
- package/dist/radar-I7S5WNFK-87e8c5ba.js +1 -0
- package/dist/railroad-3IZDKUUU-99427b9f.js +1 -0
- package/dist/railroad-3IZDKUUU-9e29587d.js +1 -0
- package/dist/railroad-abnf-AHOZXSZD-1d11cb5b.js +1 -0
- package/dist/railroad-abnf-AHOZXSZD-c27db0bc.js +1 -0
- package/dist/railroad-ebnf-EBAXGLYW-38dff87c.js +1 -0
- package/dist/railroad-ebnf-EBAXGLYW-6bb5de0c.js +1 -0
- package/dist/railroad-peg-LSFZ7HO6-c9f0aa71.js +1 -0
- package/dist/railroad-peg-LSFZ7HO6-efcb0a43.js +1 -0
- package/dist/railroadDiagram-RFXS5EU6-14373a87.js +1 -0
- package/dist/railroadDiagram-RFXS5EU6-ec9e696e.js +1 -0
- package/dist/railroadDiagram-RFXS5EU6-effa5611.js +1 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/requirementDiagram-TGXJPOKE-3d199581.js +1 -0
- package/dist/requirementDiagram-TGXJPOKE-5a337f1a.js +1 -0
- package/dist/requirementDiagram-TGXJPOKE-a7960859.js +1 -0
- package/dist/sankeyDiagram-HTMAVEWB-209eac30.js +1 -0
- package/dist/sankeyDiagram-HTMAVEWB-3c852fda.js +1 -0
- package/dist/sankeyDiagram-HTMAVEWB-46aa1eb1.js +1 -0
- package/dist/sequenceDiagram-DBY2YBRQ-4121f7c2.js +1 -0
- package/dist/sequenceDiagram-DBY2YBRQ-7bad18e4.js +1 -0
- package/dist/sequenceDiagram-DBY2YBRQ-af96f48e.js +1 -0
- package/dist/sizeCapture-X5ZJPWSS-13826306.js +1 -0
- package/dist/sizeCapture-X5ZJPWSS-32e2eec7.js +1 -0
- package/dist/sizeCapture-X5ZJPWSS-a078176f.js +1 -0
- package/dist/stateDiagram-2N3HPSRC-527374a2.js +1 -0
- package/dist/stateDiagram-2N3HPSRC-8047e124.js +1 -0
- package/dist/stateDiagram-2N3HPSRC-ba344b5d.js +1 -0
- package/dist/stateDiagram-v2-6OUMAXLB-7580bf69.js +1 -0
- package/dist/stateDiagram-v2-6OUMAXLB-d4c58fd3.js +1 -0
- package/dist/stateDiagram-v2-6OUMAXLB-e5921044.js +1 -0
- package/dist/store/constant.d.ts.map +1 -0
- package/dist/swimlanes-5IMT3BWC-5834b232.js +1 -0
- package/dist/swimlanes-5IMT3BWC-791a3547.js +1 -0
- package/dist/swimlanes-5IMT3BWC-db2c593a.js +1 -0
- package/dist/swimlanesDiagram-G3AALYLV-36c30eec.js +1 -0
- package/dist/swimlanesDiagram-G3AALYLV-89220ddd.js +1 -0
- package/dist/swimlanesDiagram-G3AALYLV-b621330d.js +1 -0
- package/dist/timeline-definition-FHXFAJF6-0482a67a.js +1 -0
- package/dist/timeline-definition-FHXFAJF6-1d165a67.js +1 -0
- package/dist/timeline-definition-FHXFAJF6-f9600b97.js +1 -0
- package/dist/treeView-QDETBFTQ-0ecf20cd.js +1 -0
- package/dist/treeView-QDETBFTQ-96ed8e2f.js +1 -0
- package/dist/treemap-6X3UGDF4-0a7f19ca.js +1 -0
- package/dist/treemap-6X3UGDF4-9f498e0c.js +1 -0
- package/dist/types/chart.d.ts.map +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/audioRecording.d.ts.map +1 -0
- package/dist/utils/chartInstanceManager.d.ts.map +1 -0
- package/dist/utils/chartTagParser.d.ts.map +1 -0
- package/dist/utils/chatInputHistory.d.ts.map +1 -0
- package/dist/utils/chatStreamHelper.d.ts.map +1 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/isMobileSignal.d.ts.map +1 -0
- package/dist/utils/transcriptApi.d.ts.map +1 -0
- package/dist/utils/ultimateJsonParser.d.ts.map +1 -0
- package/dist/vennDiagram-L72KCM5P-05176193.js +1 -0
- package/dist/vennDiagram-L72KCM5P-25a48393.js +1 -0
- package/dist/vennDiagram-L72KCM5P-28cffef7.js +1 -0
- package/dist/wardley-OPB4EBWU-08c5f013.js +1 -0
- package/dist/wardley-OPB4EBWU-9803a1d9.js +1 -0
- package/dist/wardleyDiagram-EHGQE667-052e6de9.js +1 -0
- package/dist/wardleyDiagram-EHGQE667-6a614fd9.js +1 -0
- package/dist/wardleyDiagram-EHGQE667-d11fe904.js +1 -0
- package/dist/web-25bb78b9.js +1 -0
- package/dist/web-753300e1.js +1 -0
- package/dist/web-c3ed22c4.js +1 -0
- package/dist/web.d.ts.map +1 -0
- package/dist/web.js +1 -1
- package/dist/window.d.ts.map +1 -0
- package/dist/xychartDiagram-FW5EYKEG-43118b83.js +1 -0
- package/dist/xychartDiagram-FW5EYKEG-d77187fe.js +1 -0
- package/dist/xychartDiagram-FW5EYKEG-f2fac492.js +1 -0
- package/package.json +86 -86
- package/public/index.html +4 -1
- package/public/popup.html +20 -0
- package/server.js +477 -477
- package/.idea/flowise-chatbox.iml +0 -10
- package/.idea/modules.xml +0 -8
- package/.idea/workspace.xml +0 -4
- package/docs/embedding-style-guide.md +0 -417
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as t}from"./chunk-RYQCIY6F-8de649c8.js";import{_ as e,ap as r,aq as n,ar as o,as as a,d as s,ah as i,az as d,ag as l,ai as f,aw as c,ay as h,G as g,av as u,aA as p,u as x,l as m,aB as y}from"./mermaid.core-8797d6a9.js";import{G as v}from"./graph-c6801890.js";import"./map-05f0ff95.js";import"./web-c3ed22c4.js";async function b(t,e){const r=new v({multigraph:!0,compound:!0});var n=[...e.edges];const o=s();var a=t.insert("g").attr("class","root"),d=a.insert("g").attr("class","clusters"),l=a.insert("g").attr("class","edges edgePath"),f=a.insert("g").attr("class","edgeLabels");const c=a.insert("g").attr("class","nodes"),h=new Map,g=null!=t.node();await Promise.all(e.nodes.map((async t=>{var e,n;t.isGroup||g&&(n=(e=await i(c,t,{config:o,dir:t.dir})).node()?.getBBox()??{width:0,height:0},h.set(t.id,e),t.width=n.width,t.height=n.height),r.setNode(t.id,{...t})})));for(const t of n)r.setEdge(t.start,t.end,{...t},t.id),e.edges.some((e=>e.id===t.id))||e.edges.push(t);return globalThis.mermaidCaptureSizes&&(n=(await import("./sizeCapture-X5ZJPWSS-32e2eec7.js")).captureNodeSizes)(t,e),{graph:r,groups:{clusters:d,edgePaths:l,edgeLabels:f,nodes:c,rootGroups:a},nodeElements:h}}e(b,"createGraphWithElements");var M=5,I=1e-5,S=1e-6;function w(t){var e=[];for(let r=0;r<t.length-1;r++)e.push({a:t[r],b:t[r+1]});return e}function L(t,e,r,n){var o,a,s=e.x-t.x,i=(e=e.y-t.y,n.x-r.x),d=s*(n=n.y-r.y)-e*i;return 0==d||(a=((o=r.x-t.x)*e-(r=r.y-t.y)*s)/d,(o=(o*n-r*i)/d)<=S)||1-S<=o||a<=S||1-S<=a?null:{point:{x:t.x+o*s,y:t.y+o*e},tA:o,tB:a}}function C(t){return Math.abs(t.b.x-t.a.x)>=Math.abs(t.b.y-t.a.y)}function T(t){var e=[];for(let h=0;h<t.length;h++){var r=t[h],n=w(r.points);for(let g=h+1;g<t.length;g++){var o,a,s=t[g],i=w(s.points);for([o,a]of n.entries())for(var[d,l]of i.entries()){var f,c=L(a.a,a.b,l.a,l.b);c&&(f=C(a),l=C(l),e.push(f!==l&&f?{jumpEdgeId:r.id,otherEdgeId:s.id,segIndex:o,t:c.tA,point:c.point}:{jumpEdgeId:s.id,otherEdgeId:r.id,segIndex:d,t:c.tB,point:c.point}))}}}return e}function O(t){return t=Math.round(1e3*t)/1e3,Number.isInteger(t),""+t}function k(t){return O(t.x)+","+O(t.y)}function N(t){var e=t.b.x-t.a.x;t=t.b.y-t.a.y;return Math.abs(e)>=Math.abs(t)?0<=e?1:0:0<=t?1:0}e(w,"buildSegmentList"),e(L,"segmentIntersection"),e(C,"isHorizontalSeg"),e(T,"findEdgeIntersections"),e(O,"fmt"),e(k,"pointToString"),e(N,"getArcSweepFlag");var R=.001;function E(t,e){var r,n,o,a;return t.length<2?t.map((t=>({...t}))):(r=t.map((t=>({...t}))),(o=e.arrowTypeStart&&d[e.arrowTypeStart])&&(n=t[0],a=t[1],a=Math.atan2(a.y-n.y,a.x-n.x),r[0].x=n.x+o*Math.cos(a),r[0].y=n.y+o*Math.sin(a)),(n=e.arrowTypeEnd&&d[e.arrowTypeEnd])&&(a=t[(o=t.length)-2],e=t[o-1],t=Math.atan2(e.y-a.y,e.x-a.x),r[o-1].x=e.x-n*Math.cos(t),r[o-1].y=e.y-n*Math.sin(t)),r)}function B(t,e,r,n,o){var a=t.point.x,s=t.point.y,i={x:a-e*t.r,y:s-r*t.r};a={x:a+e*t.r,y:s+r*t.r};return(e=["L"+k(i)]).push("arc"===o?`A${O(t.r)},${O(t.r)} 0 0 ${n} `+k(a):"M"+k(a)),e}function F(t,e,r,n){var o,a=e.x-t.x,s=(t=e.y-t.y,r.x-e.x),i=(r=r.y-e.y,Math.hypot(a,t)),d=Math.hypot(s,r);return i<I||d<I||(a/=i,t/=i,s/=d,r/=d,o=Math.max(-1,Math.min(1,a*s+t*r)),(o=Math.acos(o))<I)||Math.abs(Math.PI-o)<I?null:(n=Math.min(n/Math.sin(o/2),i/2,d/2),{startX:e.x-a*n,startY:e.y-t*n,endX:e.x+s*n,endY:e.y+r*n,ctrlX:e.x,ctrlY:e.y,cutLen:n})}function A(t,e,r){var n=t.points;if(n.length<2)return"";var o=E(n,t),a="rounded"===t.curve,s=w(o),i=new Map;for(const t of e){var d,l=s[t.segIndex];l&&(l=Math.hypot(l.b.x-l.a.x,l.b.y-l.a.y),(d=i.get(t.segIndex)??[]).push({t:t.t,point:t.point,d:t.t*l,r:r.jumpRadius}),i.set(t.segIndex,d))}var f=["M"+k(o[0])];for(let t=0;t<s.length;t++){var c,h=s[t],g=Math.hypot(h.b.x-h.a.x,h.b.y-h.a.y),u=0===g?0:(h.b.x-h.a.x)/g,p=0===g?0:(h.b.y-h.a.y)/g,x=N(h);let e=0,n=(a&&0<t&&(c=F(o[t-1],o[t],o[t+1]??o[t],M))&&(e=c.cutLen),g),d=null;a&&t<s.length-1&&(d=F(o[t],o[t+1],o[t+2]??o[t+1],M))&&(n=g-d.cutLen);var m=[...i.get(t)??[]].sort(((t,e)=>t.t-e.t));for(const t of m)t.r=Math.min(t.r,t.d-e,n-t.d);for(let t=0;t<m.length-1;t++){var y=m[t+1].d-m[t].d;m[t].r+m[t+1].r>y&&(y/=2,m[t].r=Math.min(m[t].r,y),m[t+1].r=Math.min(m[t+1].r,y))}for(const t of m)t.r<R||f.push(...B(t,u,p,x,r.jumpStyle));a&&d?(f.push(`L${O(d.startX)},`+O(d.startY)),f.push(`Q${O(d.ctrlX)},${O(d.ctrlY)} ${O(d.endX)},`+O(d.endY))):f.push("L"+k(h.b))}return f.join(" ")}function P(t){return/^[\d\s+,.LMelm-]*$/.test(t)}function Y(t){return!t||"linear"===t||"rounded"===t||"step"===t||"stepBefore"===t||"stepAfter"===t}function X(t){if(!t)return null;try{var e="function"==typeof atob?atob(t):Buffer.from(t,"base64").toString(),r=JSON.parse(e);if(!Array.isArray(r))return null;var n=[];for(const t of r)t&&"number"==typeof t.x&&"number"==typeof t.y&&n.push({x:t.x,y:t.y});return 2<=n.length?n:null}catch{return null}}function z(t,e,r){if(r.enabled){var n=t.node();if(n){var o=new Map;for(const t of e)o.set(t.id,t);var a=[],s=new Map;for(const t of e){var i="undefined"!=typeof CSS&&CSS.escape?CSS.escape(t.id):t.id;(i=n.querySelector(`path[data-id="${i}"]`))&&(s.set(t.id,i),i=X(i.getAttribute("data-points"))??t.points,a.push({...t,points:i}))}if(0!==(t=T(a)).length){var d=new Map;for(const e of t){var l=d.get(e.jumpEdgeId)??[];l.push(e),d.set(e.jumpEdgeId,l)}for(const t of a){if((u=d.get(t.id))&&0!==u.length){var f=o.get(t.id)?.curve;if(void 0===f||Y(f)){var c=s.get(t.id);if(c){if(void 0===f&&!P(c.getAttribute("d")??""))continue;f=c.getAttribute("style")??"";var h=(g=/stroke-dasharray\s*:\s*0\s+([\d.]+)\s+[\d.]+\s+([\d.]+)/.exec(f))?Number.parseFloat(g[1]):null,g=g?Number.parseFloat(g[2]):null,u=A(t,u,r);c.setAttribute("d",u),null!==h&&null!==g&&"function"==typeof c.getTotalLength&&(u=c.getTotalLength(),u=Math.max(0,u-h-g),f=f.replace(/stroke-dasharray\s*:[^;]*;?/g,`stroke-dasharray: ${`0 ${h} ${u} `+g};`).replace(/;\s*;+/g,";"),c.setAttribute("style",f))}}}}}}}}async function G(t,e){for(const r of t.nodes)r.isGroup?await l(e.clusters,r):f(r);var r=new Map;for(const e of t.nodes)e?.id&&r.set(e.id,e);for(const a of t.edges){var n=a.start?r.get(a.start)??{}:{},o=a.end?r.get(a.end)??{}:{};n=c(e.edgePaths,{...a},{},t.type,n,o,t.diagramId);a.label&&await h(e.rootGroups,a),a.label&&D(a,n)}var a,s=t.config?.swimlane?.lineHops;!1!==s&&(s="gap"===s?"gap":"arc",a=t.edges.filter((t=>Array.isArray(t.points)&&2<=t.points.length)).map((t=>({id:t.id,points:t.points,curve:t.curve,arrowTypeStart:t.arrowTypeStart,arrowTypeEnd:t.arrowTypeEnd}))),z(e.edgePaths,a,{enabled:!0,jumpRadius:6,jumpStyle:s}))}function D(t,e){var r=e?.updatedPath??e?.originalPath,n=g();n=u({flowchart:n.flowchart??{}}).subGraphTitleTotalMargin;if(t.label){var o=p.get(t.id);let s=t.x,i=t.y;r&&(a=x.calcLabelPosition(r),m.debug("Moving label "+t.label+" from (",s,",",i,") to (",a.x,",",a.y,") abc88"),e)&&(s=a.x,i=a.y),o.attr("transform",`translate(${s}, ${i+n/2})`)}if(t?.startLabelLeft){e=y.get(t.id).startLeft;let n=t?.x,o=t?.y;r&&(n=(a=x.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r)).x,o=a.y),e.attr("transform",`translate(${n}, ${o})`)}if(t.startLabelRight){o=y.get(t.id).startRight;let e=t.x,a=t.y;r&&(e=(n=x.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r)).x,a=n.y),o.attr("transform",`translate(${e}, ${a})`)}if(t.endLabelLeft){var a=y.get(t.id).endLeft;let n=t.x,o=t.y;r&&(n=(e=x.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r)).x,o=e.y),a.attr("transform",`translate(${n}, ${o})`)}if(t.endLabelRight){n=y.get(t.id).endRight;let e=t.x,a=t.y;r&&(e=(o=x.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r)).x,a=o.y),n.attr("transform",`translate(${e}, ${a})`)}}e(E,"applyMarkerOffsets"),e(B,"emitJump"),e(F,"computeRoundedCorner"),e(A,"rewriteEdgePath"),e(P,"isStraightPath"),e(Y,"curveSupportsLineHops"),e(X,"decodeDataPoints"),e(z,"applyLineJumpsToSvg"),e(G,"adjustLayout"),e(D,"positionEdgeLabel");var $="__swimlane_default__",_=21,H=20;function j(t){return Math.max(t.padding??H,H)}function V(t){var e,{x:r,y:n,width:o,height:a}=t,s=t.swimlaneContentTop;"number"!=typeof r||"number"!=typeof n||"number"!=typeof o||"number"!=typeof a||"number"!=typeof s||!Number.isFinite(r)||!Number.isFinite(n)||!Number.isFinite(o)||!Number.isFinite(a)||!Number.isFinite(s)||o<=0||a<=0||(e=n-a/2,s=Math.min(s,n+a/2),(n=e+Math.min(_,Math.max(0,s-e)))<=e)?delete t.groupTitleRect:t.groupTitleRect={left:r-o/2,right:r+o/2,top:e,bottom:n}}function W(t){var e=t.direction,r=t.nodes??=[];for(const r of t.nodes??[])r.isGroup&&!r.parentId&&(r.shape="swimlane",e)&&(r.direction=e);if(0!==(t=r.filter((t=>!t.isGroup&&!t.parentId))).length){let n=r.find((t=>t.id===$));n?n.isGroup&&(n.shape="swimlane",e)&&(n.direction=e):(n={id:$,label:"",isGroup:!0,shape:"swimlane",padding:20,...e?{direction:e}:{}},r.push(n));for(const e of t)e.parentId=$}}function U(t){var e=new Map;for(const r of t.nodes??[])e.set(r.id,r);var r=[];for(const e of t.edges??[]){var n="string"==typeof e.start?e.start:void 0,o="string"==typeof e.end?e.end:void 0;n&&o&&(e.labelNodeId||r.push({id:e.id,src:n,dst:o,ref:e}))}var a=(s=t.nodes??[]).filter((t=>t.isGroup)),s=s.filter((t=>!t.isGroup));return{nodes:[...[...a].reverse(),...s].map((t=>t.id)),edges:r,layout:t,nodeById:e}}function q(t,e,r,n){var o=t.layout,a=t.nodeById,s=n?.layerGap??100,i=n?.nodeGap??40;let d=0;for(const t of e.layers){let e=0;for(const n of t){var l,f,c=a.get(n);c?(c.layer=d,c.order=e,l=r.x[n]??e*i,f=r.y[n]??d*s,c.x=l,c.y=f,e++):e++}d++}var h,g,u,p,x=o.nodes??[],m=new Map,y=[];for(const t of x)if(t?.isGroup){t.parentId||y.push(t);let e=1/0,n=-1/0,o=1/0,a=-1/0;for(const s of x.filter((e=>e.parentId===t.id))){var v=s.x??r.x[s.id],b=s.y??r.y[s.id],M=s.width??0,I=s.height??0;null!=v&&null!=b&&(e=Math.min(e,v-M/2),n=Math.max(n,v+M/2),o=Math.min(o,b-I/2),a=Math.max(a,b+I/2))}e===1/0||o===1/0?(t.x=t.x??0,t.y=t.y??0,t.width=t.width??0,t.height=t.height??0):(g=t.padding??20,h=t.parentId?g:2*j(t),h=Math.max(0,n-e)+h,g=Math.max(0,a-o)+g,u=(e+n)/2,p=(o+a)/2,t.x=u,t.y=p,t.width=h,t.height=g,m.set(t.id,{minX:e,maxX:n,minY:o,maxY:a}))}if(0<y.length&&0<m.size){let t=1/0,e=-1/0,r=0;for(const n of y){var S;(S=((S=n.padding??20)>r&&(r=S),m.get(n.id)))&&(t=Math.min(t,S.minY),e=Math.max(e,S.maxY))}if(t!==1/0&&e!==-1/0){var w=Math.max(0,e-t)+2*Math.max(r,36),L=(t+e)/2;for(const e of y)e.y=L,e.height=w,e.swimlaneContentTop=t;var C=[],T=[],O=[];for(const t of[...y].sort(((t,e)=>(t.x??0)-(e.x??0)))){var k,N=m.get(t.id);N&&(k=Math.max(0,N.maxX-N.minX)+2*j(t),N=(N.minX+N.maxX)/2,C.push(t.id),T.push(N),O.push(k))}var R=C.length;if(0<R){var E=new Map;if(1===R)E.set(C[0],O[0]);else{var B=[];for(let t=0;t<R-1;t++)B.push(T[t+1]-T[t]);var F=new Array(R);for(let t=F[0]=0;t<R-1;t++)F[t+1]=2*B[t]-F[t];let t=0,e=Number.POSITIVE_INFINITY;for(let r=0;r<R;r++){var A=O[r];r%2==0?t=Math.max(t,A-F[r]):e=Math.min(e,F[r]-A)}let r=t;r=t<=e?(t+e)/2:t;for(let t=0;t<R;t++){var P=F[t]+(t%2==0?r:-r);P=Math.max(O[t],P);E.set(C[t],P)}}for(const t of y){var Y=E.get(t.id);null!=Y&&(t.width=Y),V(t)}}}}}e(j,"topLaneHorizontalPadding"),e(V,"assignTopLaneTitleRect"),e(W,"prepareLayoutForSwimlanes"),e(U,"toGraphView"),e(q,"writeBackToLayoutData");var J="[EdgeLabelNodes]";function K(t){var e,r,n,o=[],a=[],s=new Map;for(const e of t.nodes)s.set(e.id,e);for(const i of t.edges)!i.label||0===i.label.length||i.isLayoutOnly||i.labelNodeId||(r=i.start?s.get(i.start):void 0,n=i.end?s.get(i.end):void 0,r&&n?(e=`edge-label-${i.start}-${i.end}-`+i.id,n=(r.parentId!==n.parentId?n:r).parentId,n={id:e,label:i.label,edgeStart:i.start??"",edgeEnd:i.end??"",shape:"labelRect",width:0,height:0,isEdgeLabel:!0,isDummy:!0,parentId:n,isGroup:!1,labelStyle:Array.isArray(i.labelStyle)?i.labelStyle[0]:i.labelStyle??"",...r.dir?{dir:r.dir}:{}},o.push(n),i.labelNodeId=e,i.label=void 0,i.text=void 0,r={id:i.id+"-to-label",start:i.start,end:e,type:"normal",isLayoutOnly:!0},n={id:i.id+"-from-label",start:e,end:i.end,type:"normal",isLayoutOnly:!0},a.push(r,n)):m.warn(J,`Edge ${i.id} has missing source or target node`));var i=[...t.nodes,...o],d=[...t.edges,...a];return{...t,nodes:i,edges:d}}e(K,"createEdgeLabelNodes");var Z=.001;function Q(t){var e=t.x??0,r=t.y??0,n=t.width??0;t=t.height??0;return 0<n&&0<t?{cx:e,cy:r,rect:mt(e,r,n,t)}:void 0}function tt(t){if(!t.isGroup){var e=Q(t);if(e)return{id:String(t.id??""),cx:e.cx,cy:e.cy,rect:e.rect}}}function et(t,e,r=Z){return Math.abs(t.x-e.x)<r&&Math.abs(t.y-e.y)<r}function rt(t,e,r=Z){return Math.abs(t.x-e.x)<r}function nt(t,e,r=Z){return Math.abs(t.y-e.y)<r}function ot(t,e,r=Z){return nt(t,e,r)&&Math.abs(t.x-e.x)>r}function at(t,e,r=Z){return rt(t,e,r)&&Math.abs(t.y-e.y)>r}function st(t,e,r,n){return Math.max(0,Math.min(Math.max(t,e),Math.max(r,n))-Math.max(Math.min(t,e),Math.min(r,n)))}function it(t,e,r=Z){return t.horizontal&&e.horizontal&&nt(t.a,e.a,r)?st(t.a.x,t.b.x,e.a.x,e.b.x):t.vertical&&e.vertical&&rt(t.a,e.a,r)?st(t.a.y,t.b.y,e.a.y,e.b.y):0}function dt(t,e=Z){var r=[];for(let i=0;i<t.length-1;i++){var n=t[i],o=t[i+1],a=ot(n,o,e),s=at(n,o,e);(a||s)&&r.push({index:i,a:n,b:o,horizontal:a,vertical:s})}return r}function lt(t,e=Z){var r=dt(t,e);let n=0;for(let t=1;t<r.length;t++)r[t-1].horizontal!==r[t].horizontal&&n++;return n}function ft(t,e=Z){var r=[];for(const o of t){var n=0<r.length?r[r.length-1]:void 0;n&&et(n,o,e)||r.push({x:o.x,y:o.y})}return r}function ct(t,e=Z){var r,n,o;if(t&&4===t.length)return[t,r,n,o]=t,ot(t,r,e)&&at(r,n,e)&&ot(n,o,e)?{kind:"HVH",p0:t,p1:r,p2:n,p3:o}:at(t,r,e)&&ot(r,n,e)&&at(n,o,e)?{kind:"VHV",p0:t,p1:r,p2:n,p3:o}:void 0}function ht(t,e,r,n=0){var o=Math.min(t.x,e.x),a=Math.max(t.x,e.x),s=Math.min(t.y,e.y);t=Math.max(t.y,e.y);return a>r.left-n&&o<r.right+n&&t>r.top-n&&s<r.bottom+n}function gt(t,e,r=0){return t.x>e.left+r&&t.x<e.right-r&&t.y>e.top+r&&t.y<e.bottom-r}function ut(t,e){return t.left<=e.left&&t.right>=e.right&&t.top<=e.top&&t.bottom>=e.bottom}function pt(t,e){return t.left<e.right&&t.right>e.left&&t.top<e.bottom&&t.bottom>e.top}function xt(t,e){return{left:t.left-e,right:t.right+e,top:t.top-e,bottom:t.bottom+e}}function mt(t,e,r,n){return{left:t-r/2,right:t+r/2,top:e-n/2,bottom:e+n/2}}function yt(t){return Q(t)?.rect}function vt(t,e){switch(e){case"top":return{x:t.cx,y:t.rect.top};case"bottom":return{x:t.cx,y:t.rect.bottom};case"left":return{x:t.rect.left,y:t.cy};case"right":return{x:t.rect.right,y:t.cy}}}function bt(t,e,r,n,o,a=Z){var s,i="left"===e||"right"===e,d="left"===n||"right"===n;return i&&d?"right"===e&&"left"===n&&t.x<r.x||"left"===e&&"right"===n&&t.x>r.x?nt(t,r,a)?[t,r]:[t,{x:s=(t.x+r.x)/2,y:t.y},{x:s,y:r.y},r]:e!==n||nt(t,r,a)?void 0:[t,{x:s="left"===e?Math.min(t.x,r.x)-o:Math.max(t.x,r.x)+o,y:t.y},{x:s,y:r.y},r]:i||d?i&&!d?(s="right"===e&&r.x>t.x||"left"===e&&r.x<t.x,i="top"===n&&t.y<r.y||"bottom"===n&&t.y>r.y,s&&i?[t,{x:r.x,y:t.y},r]:void 0):(d="bottom"===e&&r.y>t.y||"top"===e&&r.y<t.y,s="left"===n&&t.x<r.x||"right"===n&&t.x>r.x,d&&s?[t,{x:t.x,y:r.y},r]:void 0):e===n?rt(t,r,a)?void 0:(i="top"===e?Math.min(t.y,r.y)-o:Math.max(t.y,r.y)+o,[t,{x:t.x,y:i},{x:r.x,y:i},r]):"bottom"===e&&"top"===n&&t.y<r.y||"top"===e&&"bottom"===n&&t.y>r.y?rt(t,r,a)?[t,r]:(d=(t.y+r.y)/2,[t,{x:t.x,y:d},{x:r.x,y:d},r]):void 0}function Mt(t,e,r,n){return"left"===e||"right"===e?[t,{x:n,y:t.y},{x:n,y:r.y},r]:[t,{x:t.x,y:n},{x:r.x,y:n},r]}function It(t){var e,r=new Map,n=[];for(const o of t)o.isEdgeLabel||(e=tt(o))&&(r.set(e.id,e),n.push({id:e.id,rect:e.rect}));return{nodeInfoById:r,realNodeRects:n}}function St(t){var e=[],r=[];for(const o of t){var n=tt(o);n&&(n={id:n.id,rect:n.rect},(o.isEdgeLabel?r:e).push(n))}return{realNodeRects:e,labelNodeRects:r}}function wt(t,{includeEdgeLabels:e=!0}={}){var r,n,o,a,s=[];for(const i of t)i.isGroup||!e&&i.isEdgeLabel||(r=i.x??0,n=i.y??0,o=i.width??0,a=i.height??0,s.push({nodeId:i.id,...mt(r,n,o,a)}));return s}function Lt(t,e,r=Z){var n=t.start;t=t.end;if(n&&t){var o=e.get(n);e=e.get(t);if(o&&e)return{srcId:n,dstId:t,srcInfo:o,dstInfo:e,collinearX:Math.abs(o.cx-e.cx)<r,collinearY:Math.abs(o.cy-e.cy)<r}}}function Ct(t,e,r,n=[],o=0){for(const a of r)if(!n.includes(a.id)&&ht(t,e,a.rect,-o))return!0;return!1}function Tt(t,e,r,n,o=Z,a=1e-6){var s=nt(t,e,o),i=rt(t,e,o),d=nt(r,n,o);o=rt(r,n,o);return!(s&&d||i&&o||!s&&!i||!d&&!o||(d=i?{a:t,b:e}:{a:r,b:n},i=(o=s?{a:t,b:e}:{a:r,b:n}).a.y,s=Math.min(o.a.x,o.b.x),t=Math.max(o.a.x,o.b.x),e=d.a.x,r=Math.min(d.a.y,d.b.y),n=Math.max(d.a.y,d.b.y),e<s)||t<e||i<r||n<i||(s=Math.abs(e-o.a.x)<a&&Math.abs(i-o.a.y)<a||Math.abs(e-o.b.x)<a&&Math.abs(i-o.b.y)<a,t=Math.abs(e-d.a.x)<a&&Math.abs(i-d.a.y)<a||Math.abs(e-d.b.x)<a&&Math.abs(i-d.b.y)<a,s&&t))}function Ot(t,e,r,n,o=Z){var a=nt(t,e,o),s=rt(t,e,o),i=nt(r,n,o),d=rt(r,n,o);return s&&d&&rt(t,r,o)?st(t.y,e.y,r.y,n.y)>o:!!(a&&i&&nt(t,r,o))&&st(t.x,e.x,r.x,n.x)>o}function kt(t,e,r,n,{epsilon:o=Z,skipDegenerateOther:a=!1}={}){for(const l of r)if(l!==n&&!l.isLayoutOnly){var s=l.points;if(s&&!(s.length<2))for(let r=0;r<s.length-1;r++){var i=s[r],d=s[r+1];if((!a||!et(i,d,o))&&(Tt(t,e,i,d,o)||Ot(t,e,i,d,o)))return!0}}return!1}function Nt(t,e,r,n,o=Z){var a=nt(t,e,o),s=rt(t,e,o),i=nt(r,n,o),d=rt(r,n,o);return!!(a&&d||s&&i)&&(d=a?{a:r,b:n}:{a:t,b:e},i=(s=a?{a:t,b:e}:{a:r,b:n}).a.y,a=Math.min(s.a.x,s.b.x),t=Math.max(s.a.x,s.b.x),e=d.a.x,r=Math.min(d.a.y,d.b.y),n=Math.max(d.a.y,d.b.y),a+o<e)&&e<t-o&&r+o<i&&i<n-o}function Rt(t,e,r){var n=Math.min(e,r);e=Math.max(e,r);return n+Z<t&&t<e-Z}function Et(t,e,r){return rt(t,e)&&rt(e,r)?Rt(e.y,t.y,r.y):!(!nt(t,e)||!nt(e,r))&&Rt(e.x,t.x,r.x)}function Bt(t){let e=!1;var r=[];for(let s=0;s<t.length;s++){var n=r[r.length-1],o=t[s],a=s+1<t.length?t[s+1]:void 0;if(n&&a){if(et(n,a)){s++,e=!0;continue}if(Et(n,o,a)){e=!0;continue}}r.push(o)}return{points:r,changed:e}}function Ft(t){var e=[t[0]];for(let a=1;a<t.length;a++){var r,n=e[e.length-1],o=t[a];rt(n,o)||nt(n,o)||(r=(r=2<=e.length?e[e.length-2]:void 0)&&rt(r,n)?{x:n.x,y:o.y}:{x:o.x,y:n.y},e.push(r)),e.push(o)}var a=[];for(const t of e){var s=a[a.length-1];s&&et(s,t)||a.push(t)}return a}function At(t){if(t.length<3)return t;let e=[...t];for(let t=0;t<32;t++){var r=Bt(e);if(e=r.points,!r.changed)break}return e}e(Q,"measuredNodeRect"),e(tt,"nodeBoundsInfoFor"),e(et,"samePoint"),e(rt,"sameX"),e(nt,"sameY"),e(ot,"isHorizontalSegment"),e(at,"isVerticalSegment"),e(st,"overlapLength"),e(it,"sameAxisSegmentOverlapLength"),e(dt,"orthogonalSegmentsForPoints"),e(lt,"countOrthogonalBends"),e(ft,"dedupeConsecutivePoints"),e(ct,"classifyThreeSegmentRoute"),e(ht,"segmentBoundsOverlapRect"),e(gt,"pointInsideRect"),e(ut,"rectContainsRect"),e(pt,"rectsOverlap"),e(xt,"inflateRect"),e(mt,"rectFromCenterSize"),e(yt,"rectOfNodeBounds"),e(vt,"portForRectSide"),e(bt,"buildOrthogonalPortPath"),e(Mt,"buildSameSideTrackPath"),e(It,"collectRealNodeBounds"),e(St,"collectNodeRectEntries"),e(wt,"collectLayoutNodeRects"),e(Lt,"getNodePairGeometry"),e(Ct,"segmentHitsAnyRect"),e(Tt,"orthogonalSegmentsCross"),e(Ot,"sameAxisSegmentsOverlap"),e(kt,"segmentConflictsWithAnyEdge"),e(Nt,"orthogonalSegmentsStrictlyCross"),e(Rt,"strictlyBetween"),e(Et,"isCollinearIntermediate"),e(Bt,"simplifyPolylineOnce"),e(Ft,"orthogonalizePolyline"),e(At,"simplifyPolyline");var Pt=.001,Yt=.5,Xt=4;function zt(t,e,r){if(!(t.isLayoutOnly||!t.points||t.points.length<r))return r=t.start?e.get(t.start):void 0,e=t.end?e.get(t.end):void 0,{edge:t,points:t.points,srcRect:r?yt(r):void 0,dstRect:e?yt(e):void 0}}function Gt(t,e,r){return nt(t,e,Pt)?{x:t.x<r.left?r.left:r.right,y:t.y}:rt(t,e,Pt)?(e=t.y<r.top?r.top:r.bottom,{x:t.x,y:e}):{x:Math.min(r.right,Math.max(r.left,t.x)),y:Math.min(r.bottom,Math.max(r.top,t.y))}}function Dt(t,e,r){var n,o=r?1:-1;let a=r?0:t.length-1;for(;0<=a&&a<t.length&>(t[a],e,Yt);)a+=o;return a<0||a>=t.length||(n=a-o)<0||n>=t.length?t:(n=Gt(t[a],t[n],e),r?[n,...t.slice(a)]:[...t.slice(0,a+1),n])}function $t(t,e){for(const n of t){var r=zt(n,e,2);if(r){let t=[...r.points];r.srcRect&&(t=Dt(t,r.srcRect,!0)),t=Qt(t=At(Ft(t=r.dstRect?Dt(t,r.dstRect,!1):t)),r.srcRect,r.dstRect),r.edge.points=At(Ft(t))}}}function _t(t,e,r,n=!1){if(nt(t,e,Pt)){if(e.y<r.top-Pt||e.y>r.bottom+Pt)return e;if(n){if(t.x<r.left-Pt)return{x:r.left,y:t.y};if(t.x>r.right+Pt)return{x:r.right,y:t.y}}return{x:Math.abs(e.x-r.left)<=Math.abs(e.x-r.right)?r.left:r.right,y:t.y}}if(rt(t,e,Pt)){if(e.x<r.left-Pt||e.x>r.right+Pt)return e;if(n){if(t.y<r.top-Pt)return{x:t.x,y:r.top};if(t.y>r.bottom+Pt)return{x:t.x,y:r.bottom}}return n=Math.abs(e.y-r.top)<=Math.abs(e.y-r.bottom),{x:t.x,y:n?r.top:r.bottom}}return e}function Ht(t,e,r){var n=t[e];for(let a=e+r;0<=a&&a<t.length;a+=r){var o=t[a];if(!et(o,n,Pt))return o}return t[e+r]}function jt(t,e){var r=t+Xt,n=e-Xt;return r<=n?{lo:r,hi:n}:{lo:(t+e)/2,hi:(t+e)/2}}function Vt(t,e,r){var{lo:e,hi:r}=jt(e,r);return Math.min(r,Math.max(e,t))}function Wt(t){var e=Math.max(...t.map((t=>t.lo)));if(!((t=Math.min(...t.map((t=>t.hi))))<e))return{lo:e,hi:t}}function Ut(t,e){return"left"===e||"right"===e?jt(t.top,t.bottom):jt(t.left,t.right)}function qt(t,e,r){var n=t.y>=r.top-Pt&&t.y<=r.bottom+Pt,o=t.x>=r.left-Pt&&t.x<=r.right+Pt;if(nt(t,e,Pt)&&n){if(Math.abs(t.x-r.left)<Pt)return"left";if(Math.abs(t.x-r.right)<Pt)return"right"}if(rt(t,e,Pt)&&o){if(Math.abs(t.y-r.top)<Pt)return"top";if(Math.abs(t.y-r.bottom)<Pt)return"bottom"}}function Jt(t){return"left"===t||"right"===t}function Kt(t,e,r,n,o){var a=[],s=r?qt(t,e,r):void 0;e=n?qt(e,t,n):void 0;return r&&s&&Jt(s)===o&&a.push(Ut(r,s)),n&&e&&Jt(e)===o&&a.push(Ut(n,e)),0<a.length?Wt(a):void 0}function Zt(t,e,r,n,o){if((r=Kt(t,e,r,n,o))&&(n=o?t.y:t.x,r=Math.min(r.hi,Math.max(r.lo,n)),!(Math.abs(r-n)<Pt)))return o?[{x:t.x,y:r},{x:e.x,y:r}]:[{x:r,y:t.y},{x:r,y:e.y}]}function Qt(t,e,r){var n,o;return 2!==t.length?t:([n,o]=t,nt(n,o,Pt)?Zt(n,o,e,r,!0)??t:rt(n,o,Pt)?Zt(n,o,e,r,!1)??t:t)}function te(t,e,r){return Jt(r)?{x:t.x,y:Vt(t.y,e.top,e.bottom)}:{x:Vt(t.x,e.left,e.right),y:t.y}}function ee(t,e,r,n,o,a){var s=t.map((t=>({...t})));for(let d=e;0<=d&&d<t.length;d+=r){var i=t[d];if(a&&!nt(i,n,Pt))break;if(!a&&!rt(i,n,Pt))break;a?s[d].y=o.y:s[d].x=o.x}return s}function re(t,e,r){var n,o,a,s;return t.length<2||(o=t[n=r?0:t.length-1],!(a=Ht(t,n,r=r?1:-1)))||!(a=qt(o,a,e))||(s=Jt(a),et(o,e=te(o,e,a),Pt))?t:ee(t,n,r,o,e,s)}function ne(t,e,r){var n=Math.min(t.x,e.x)>=r.left-Pt&&Math.max(t.x,e.x)<=r.right+Pt,o=Math.min(t.y,e.y)>=r.top-Pt&&Math.max(t.y,e.y)<=r.bottom+Pt;return Math.abs(t.y-r.top)<Pt&&Math.abs(e.y-r.top)<Pt&&n?"top":Math.abs(t.y-r.bottom)<Pt&&Math.abs(e.y-r.bottom)<Pt&&n?"bottom":Math.abs(t.x-r.left)<Pt&&Math.abs(e.x-r.left)<Pt&&o?"left":Math.abs(t.x-r.right)<Pt&&Math.abs(e.x-r.right)<Pt&&o?"right":void 0}function oe(t,e,r,n){switch(t){case"top":return rt(e,r,Pt)&&r.y<n.top-Pt;case"bottom":return rt(e,r,Pt)&&r.y>n.bottom+Pt;case"left":return nt(e,r,Pt)&&r.x<n.left-Pt;case"right":return nt(e,r,Pt)&&r.x>n.right+Pt}}function ae(t,e,r){var n;return t.length<3?t:r?(r=ne(t[0],t[1],e))&&oe(r,t[1],t[2],e)?t.slice(1):t:(n=ne(t[(r=t.length-1)-1],t[r],e))&&oe(n,t[r-1],t[r-2],e)?t.slice(0,r):t}function se(t,e,r){let n=t;var o;return e&&(n=ae(n=(t=Ht(n,0,1))&&(t=_t(t,n[0],e))!==n[0]?[t,...n.slice(1)]:n,e,!0)),r&&(n=ae(n=(o=Ht(n,t=n.length-1,-1))&&(o=_t(o,n[t],r,!0))!==n[t]?[...n.slice(0,t),o]:n,r,!1)),(t=Qt(n,e,r))!==n||2===n.length?t:(e&&(n=re(n,e,!0)),n=r?re(n,r,!1):n)}function ie(t,e){for(const o of t){var r,n=zt(o,e,2);n&&((r=se(ft(n.points,Pt),n.srcRect,n.dstRect)).length<3||(r=[r[0],{...r[0]},...r.slice(1,-1),r[r.length-1],{...r[r.length-1]}]),n.edge.points=r)}}function de(t){return new Map(t.map((t=>[t.id,t])))}function le(t,e){let r=t.parentId,n=null;for(;r;){var o=e.get(r);if(!o?.isGroup)break;n=o.id,r=o.parentId}return n}function fe(t,e){let r=0,n=t.parentId;for(;n;){var o=e.get(n);if(!o?.isGroup)break;r++,n=o.parentId}return r}function ce(t){let e=1/0,r=-1/0,n=1/0,o=-1/0;for(const l of t){var a,s,i=l.x,d=l.y;"number"==typeof i&&"number"==typeof d&&(a=l.width??0,s=l.height??0,e=Math.min(e,i-a/2),r=Math.max(r,i+a/2),n=Math.min(n,d-s/2),o=Math.max(o,d+s/2))}return e===1/0||n===1/0?null:{minX:e,maxX:r,minY:n,maxY:o}}function he(t,e){var r=t.padding??20;t.x=(e.minX+e.maxX)/2,t.y=(e.minY+e.maxY)/2,t.width=Math.max(0,e.maxX-e.minX)+r,t.height=Math.max(0,e.maxY-e.minY)+r}function ge(t){const e=de(t);for(const n of t.filter((t=>t.isGroup&&t.parentId)).sort(((t,r)=>fe(r,e)-fe(t,e)))){var r=ce(t.filter((t=>t.parentId===n.id)));r&&he(n,r)}}function ue(t,r){var n=t.nodes??[],o=(t=t.edges??[],n.filter((t=>!t.isGroup)));let a=1/0,s=-1/0;for(const t of o){var i=t[r];"number"==typeof i&&(a=Math.min(a,i),s=Math.max(s,i))}if(!Number.isFinite(a)||!Number.isFinite(s))return!1;var d=e((t=>a+s-t),"mirror");for(const t of n){var l;(l=("number"==typeof(l=t[r])&&(t[r]=d(l)),t.groupTitleRect))&&(t.groupTitleRect="x"===r?{...l,left:d(l.right),right:d(l.left)}:{...l,top:d(l.bottom),bottom:d(l.top)})}for(const e of t)for(const t of e.points??[])t[r]=d(t[r]);return!0}function pe(t){return!(t.nodes??[]).some((t=>!t.isGroup))||ue(t,"y")}function xe(t,e="LR"){var r=t.nodes??[],n=t.edges??[],o=r.filter((t=>!t.isGroup));let a=1/0,s=1/0;for(const t of o){var i=t.x??0,d=t.y??0;i<a&&(a=i),d<s&&(s=d)}if(!Number.isFinite(a)||!Number.isFinite(s))return!1;let l=0,f=0;for(const t of o)l+=t.width??0,f+=t.height??0;var c=l/o.length,h=0<(w=f/o.length)?Math.max(1,c/w):1;for(const t of o){var g=t.x??0,u=((t.y??0)-s)*h+36;g=g-a;t.x=u,t.y=g}for(const t of n)if(t.points)for(const e of t.points){var p=e.x,x=(e.y-s)*h+36;p=p-a;e.x=x,e.y=p}if(ge(r),c=r.filter((t=>t.isGroup&&!t.parentId)),0===c.length)"RL"===e&&ue(t,"x");else{var m,y,v=de(r),b=new Map;for(const t of r)t.isGroup||(m=le(t,v))&&((y=b.get(m)??[]).push(t),b.set(m,y));let n=0;for(const t of c){var M=t.padding??0;M>n&&(n=M)}var I=[];let o=1/0,a=-1/0;for(const t of c){var S=ce(b.get(t.id)??[]);S&&(o=Math.min(o,S.minX),a=Math.max(a,S.maxX),I.push({lane:t,contentTop:S.minY,contentBottom:S.maxY,centerY:(S.minY+S.maxY)/2}))}if(o!==1/0&&a!==-1/0){var w,L=36+(w=Math.max(0,a-o)+2*Math.max(n,10)),C=(o+a)/2-w/2-36,T=C+L/2,O=Math.max(n,36);I.sort(((t,e)=>t.centerY-e.centerY));for(let t=0;t<I.length;t++){var k=I[t];let e,r;e=0===t?k.contentTop-O:(I[t-1].contentBottom+k.contentTop)/2,r=t===I.length-1?k.contentBottom+O:(N=I[t+1],(k.contentBottom+N.contentTop)/2);var N=Math.max(0,r-e),R=(e+r)/2;k.lane.x=T,k.lane.y=R,k.lane.width=L,k.lane.height=N,k.lane.swimlaneContentTop=k.contentTop,k.lane.groupTitleRect={left:C,right:36+C,top:e,bottom:r}}"RL"===e&&ue(t,"x")}}return!0}e(zt,"endpointContextFor"),e(Gt,"segmentEnterPoint"),e(Dt,"clipEndpoint"),e($t,"clipEdgeEndpointsToNodeBoundaries"),e(_t,"snapEndpointToBoundary"),e(Ht,"firstDistinctAdjacent"),e(jt,"cornerClearanceRange"),e(Vt,"clampToCornerClearance"),e(Wt,"intersectRanges"),e(Ut,"clearanceRangeForSide"),e(qt,"terminalSideForSegment"),e(Jt,"isHorizontalSide"),e(Kt,"straightClearanceRange"),e(Zt,"clearStraightEndpointCornerAxis"),e(Qt,"clearStraightEndpointCornerConnections"),e(te,"cornerClearedEndpoint"),e(ee,"moveCollinearEndpointRun"),e(re,"clearEndpointCornerConnection"),e(ne,"borderSideForSegment"),e(oe,"leavesOutward"),e(ae,"collapseOwnBorderStub"),e(se,"snapAndCollapseEndpoints"),e(ie,"prepareEdgeEndpointsForRenderer"),e(de,"buildNodeMap"),e(le,"resolveTopLevelGroupId"),e(fe,"groupDepth"),e(ce,"boundsForChildren"),e(he,"applyGroupBounds"),e(ge,"recomputeNestedGroupBounds"),e(ue,"mirrorAxis"),e(pe,"applyBtDirectionTransform"),e(xe,"applyLrDirectionTransform");var me=1e-6,ye=[0,8,-8,16,-16];function ve(t,e){var{nodeInfoById:r,realNodeRects:n}=It(e);for(const e of t)if(!e.isLayoutOnly){if((o=e.points)&&!(o.length<4)&&(o=ct(ft(o,me),me))){var o,a=o.p3,s="HVH"===o.kind;if(o=Lt(e,r,me)){var{srcId:i,dstId:d,srcInfo:l,dstInfo:f,collinearX:o,collinearY:c}=o;if(!o&&!c){let r;var h=l.rect;for(const o of ye){let c,v,b;if(s){var g=f.cy>l.cy?h.bottom:h.top,u=l.cx+o;if(u<=h.left+me||u>=h.right-me)continue;c={x:u,y:g},v={x:u,y:a.y}}else{if(g=f.cx>l.cx?h.right:h.left,(u=l.cy+o)<=h.top+me||u>=h.bottom-me)continue;c={x:g,y:u},v={x:a.x,y:u}}b={x:a.x,y:a.y};var p=et(c,v,me),x=et(v,b,me);if((!p||!x)&&(p||!Ct(c,v,n,[i],1))&&(x||!Ct(v,b,n,[d],1))){var m=!p&&kt(c,v,t,e,{epsilon:me,skipDegenerateOther:!0}),y=!x&&kt(v,b,t,e,{epsilon:me,skipDegenerateOther:!0});if(!m&&!y){r=p?[v,b]:x?[c,v]:[c,v,b];break}}}r&&(e.points=r)}}}}}function be(t,r){const n=.001;var{realNodeRects:o,labelNodeRects:a}=St(r.values());for(const L of t)if(!L.isLayoutOnly){if((i=L.points)&&!(i.length<4)){var s=ft(i,n);if(!(s.length<4)){var i,d=s[i=s.length-1],l=s[i-1],f=s[i-2],c=d.x-l.x,h=d.y-l.y;if(!(10<=(c=Math.hypot(c,h))||c<n)){h=l.x-f.x,c=l.y-f.y;if(!((g=Math.hypot(h,c))<n)){var g=ot(l,d,n),u=(d=at(l,d,n),ot(f,l,n));l=at(f,l,n);if((g&&l||d&&u)&&(g=L.end,d=L.start,u=g?r.get(g):void 0)){var p=u.x??0,x=u.y??0;if(u=yt(u)){let C,T;if(T=l?(C={x:p,y:f.y},{x:p,y:c<0?u.bottom:u.top}):(C={x:f.x,y:x},{x:0<h?u.right:u.left,y:x}),!Ct(C,T,o,g?[g]:[],-2)&&!Ct(C,T,a,[],-2)){if(d&&(p=(l=r.get(d))?yt(l):void 0)&>(C,p,2))continue;const a=e(((t,e)=>`${t.x.toFixed(3)},${t.y.toFixed(3)}|${e.x.toFixed(3)},`+e.y.toFixed(3)),"ownSegmentKey"),O=new Set;for(let t=0;t<s.length-1;t++)O.add(a(s[t],s[t+1]));if(c=e(((e,r)=>{for(const d of t)if(d!==L&&!d.isLayoutOnly){var o=d.points;if(o&&!(o.length<2))for(let t=0;t<o.length-1;t++){var s=o[t],i=o[t+1];if(!O.has(a(s,i))&&Nt(e,r,s,i,n))return!0}}return!1}),"segmentCrossesOtherEdge"),!c(C,T)){if(0<=i-3){if(f=s[i-3],h=[d,g].filter((t=>Boolean(t))),Ct(f,C,o,h,-2))continue;if(c(f,C))continue}var m=[...s.slice(0,i-2),C,T];if((u=(L.points=m,L.labelNodeId))&&(x=r.get(u))){var y=x.width??0,v=x.height??0;if(0<y&&0<v){let t,e,r=-1;for(let o=0;o<m.length-1;o++){var b=m[o],M=m[o+1],I=Math.hypot(M.x-b.x,M.y-b.y),S=nt(b,M,n),w=rt(b,M,n);(S&&y+2<=I||w&&v+2<=I)&&I>r&&(r=I,t=(b.x+M.x)/2,e=(b.y+M.y)/2)}void 0!==t&&void 0!==e&&(x.x=t,x.y=e)}}}}}}}}}}}}e(ve,"portSwapToLShape"),e(be,"collapseShortTerminalStub");var Me=.001,Ie=8,Se=dt,we=e(((t,e)=>rt(t,e,Me)||nt(t,e,Me)),"orthogonallyAligned");function Le(t,r){const n=e(((t,e)=>{var r=t.x??0,n=t.y??0,o=e.x-r;e=e.y-n;let a=(t.width??0)/2,s=(t.height??0)/2;return Math.abs(e)*a>Math.abs(o)*s?(e<0&&(s=-s),{x:r+(0==e?0:s*o/e),y:n+s}):{x:r+(a=o<0?-a:a),y:n+(0==o?0:a*e/o)}}),"rectIntersect"),o=e(((t,e)=>{if(!((d=ft(t.points??[])).length<2)){var o=e?t.start:t.end,a=(s=o?r.get(o):void 0)?yt(s):void 0;if(s&&o&&a){var s,i=e?d[0]:d[d.length-1],d=e?d[1]:d[d.length-2];let r=i;return rt(s=n(s,i),r=we(d,s)?d:r,Me)?{edge:t,edgeId:String(t.id??""),nodeId:o,atStart:e,orientation:"V",coord:s.x,min:Math.min(s.y,r.y),max:Math.max(s.y,r.y),boundary:s,railEnd:r,rect:a}:nt(s,r,Me)?{edge:t,edgeId:String(t.id??""),nodeId:o,atStart:e,orientation:"H",coord:s.y,min:Math.min(s.x,r.x),max:Math.max(s.x,r.x),boundary:s,railEnd:r,rect:a}:void 0}}}),"terminalLaneFor"),a=e(((t,e)=>Math.max(0,Math.min(t.max,e.max)-Math.max(t.min,e.min))),"projectedOverlapLength"),s=e(((t,e)=>t.nodeId===e.nodeId&&t.orientation===e.orientation&&("H"===t.orientation?(Math.abs(t.boundary.x-t.rect.left)<1||Math.abs(t.boundary.x-t.rect.right)<1)&&rt(t.boundary,e.boundary,1):(Math.abs(t.boundary.y-t.rect.top)<1||Math.abs(t.boundary.y-t.rect.bottom)<1)&&nt(t.boundary,e.boundary,1))),"sameTerminalFace"),i=e(((t,e)=>{var r;return t.nodeId===e.nodeId&&t.orientation===e.orientation&&(r=a(t,e),Ie<=r)&&Math.abs(t.coord-e.coord)<.5}),"exactTerminalLaneConflict"),d=e(((t,e)=>{var r,n;return t.nodeId===e.nodeId&&t.orientation===e.orientation&&"H"===t.orientation&&t.atStart!==e.atStart&&!((r=a(t,e))<Ie)&&!(r<(n=t.rect.bottom-t.rect.top)||2*n<r)&&s(t,e)&&Math.abs(t.coord-e.coord)<16}),"nearTerminalLaneConflict");var l=e(((t,r)=>{var n=ft(t.edge.points??[]);if(!(n.length<2)){const s="V"===t.orientation?{x:t.boundary.x+r,y:t.boundary.y}:{x:t.boundary.x,y:t.boundary.y+r};var o,a;r="V"===t.orientation?{x:t.railEnd.x+r,y:t.railEnd.y}:{x:t.railEnd.x,y:t.railEnd.y+r};if(e((()=>Math.abs(t.boundary.y-t.rect.top)<1||Math.abs(t.boundary.y-t.rect.bottom)<1?nt(s,t.boundary,Me)&&s.x>=t.rect.left+1&&s.x<=t.rect.right-1:(Math.abs(t.boundary.x-t.rect.left)<1||Math.abs(t.boundary.x-t.rect.right)<1)&&rt(s,t.boundary,Me)&&s.y>=t.rect.top+1&&s.y<=t.rect.bottom-1),"boundaryStaysOnSameFace")())return t.atStart?(a=1<n.length&&et(n[1],t.railEnd,Me),(o=(a=n.slice(a?2:1))[0])&&!we(o,r)?void 0:[s,r,...a]):(o=1<n.length&&et(n[n.length-2],t.railEnd,Me),!(n=(a=n.slice(0,o?-2:-1))[a.length-1])||we(n,r)?[...a,r,s]:void 0)}}),"shiftedCandidate");const f=e((t=>{var e,n,o,a,s=ft((t=t.edge).points??[]);return 2===s.length&&(n=t.start,t=t.end,n=n?r.get(n):void 0,t=t?r.get(t):void 0,!(!n||!t))&&(e=n.x??0,n=n.y??0,o=t.x??0,t=t.y??0,[s,a]=s,nt(s,a,Me)&&Math.abs(n-t)<1&&1<Math.abs(e-o)||rt(s,a,Me)&&Math.abs(e-o)<1&&1<Math.abs(n-t))}),"laneIsStraightCollinearConnector");var c=[-7,7,-14,14,-21,21];for(let e=0;e<8;e++){var h=t.filter((t=>!t.isLayoutOnly)).flatMap((t=>[o(t,!0),o(t,!1)])).filter((t=>Boolean(t)));let e=!1;for(let t=0;t<h.length&&!e;t++)for(let r=t+1;r<h.length&&!e;r++){var g=h[t],u=h[r];if(g.edge!==u.edge&&(i(g,u)||d(g,u))){const t=!i(g,u);for(const r of[g,u].sort(((t,e)=>{var r=f(t),n=f(e);return r!==n?Number(r)-Number(n):Number(!e.atStart)-Number(!t.atStart)}))){for(const n of c){var p=l(r,n);if(p){const n=o({...r.edge,points:p},r.atStart);if(n&&!h.some((e=>e.edge!==r.edge&&(i(n,e)||t&&d(n,e))))){r.edge.points=p,e=!0;break}}}if(e)break}}}if(!e)return}}function Ce(t,r){const{realNodeRects:n,labelNodeRects:o}=St(r.values());var a=e(((e,r)=>{var a=e.start,s=e.end,i=Se(r);if(i.length!==r.length-1)return!1;var d=[a,s].filter((t=>Boolean(t)));for(const t of i){if(Ct(t.a,t.b,n,d,-2))return!1;if(Ct(t.a,t.b,o,[],-2))return!1}for(const r of t)if(r!==e&&!r.isLayoutOnly){var l=r.points;if(l&&!(l.length<2))for(const t of i)for(const e of Se(ft(l))){if(it(t,e,.5)>=Ie)return!1;if(Nt(t.a,t.b,e.a,e.b,Me))return!1}}return!0}),"candidateIsSafe"),s=e(((t,e)=>{if(!(e+4>=t.length)){var r=t[e],n=t[e+1],o=t[e+2],a=t[e+3],s=t[e+4],i=ot(r,n)&&at(n,o)&&ot(o,a)&&at(a,s)&&rt(r,a,Me)&&rt(r,s,Me)&&rt(n,o,Me)&&(n.x-r.x)*(a.x-o.x)<0,d=at(r,n)&&ot(n,o)&&at(o,a)&&ot(a,s)&&nt(r,a,Me)&&nt(r,s,Me)&&nt(n,o,Me)&&(n.y-r.y)*(a.y-o.y)<0;if(i||d)return ft([...t.slice(0,e+1),s,...t.slice(e+5)]);if(!(e+5>=t.length)&&(i=t[e+5],d=at(r,n)&&ot(n,o)&&at(o,a)&&ot(a,s)&&at(s,i)&&rt(r,s,Me)&&rt(r,i,Me)&&rt(o,a,Me)&&(o.x-n.x)*(s.x-a.x)<0,r=ot(r,n)&&at(n,o)&&ot(o,a)&&at(a,s)&&ot(s,i)&&nt(r,s,Me)&&nt(r,i,Me)&&nt(o,a,Me)&&(o.y-n.y)*(s.y-a.y)<0,d||r))return ft([...t.slice(0,e+1),i,...t.slice(e+6)])}}),"withoutDogleg");for(let e=0;e<8;e++){let e=!1;for(const r of t)if(!r.isLayoutOnly){var i=ft(r.points??[]);for(let t=0;t<=i.length-5;t++){var d=s(i,t);if(d&&a(r,d)){r.points=d,e=!0;break}}if(e)break}if(!e)return}}function Te(t,r){const{realNodeRects:n,labelNodeRects:o}=St(r.values()),a=t.filter((t=>!t.isLayoutOnly)),s=e(((t,e,r)=>ft(t===e?r??[]:t.points??[])),"pointsFor"),i=e(((t,e)=>{let r=0;for(let i=0;i<a.length;i++){var n=Se(s(a[i],t,e));for(let d=i+1;d<a.length;d++){var o=Se(s(a[d],t,e));for(const t of n)for(const e of o)Nt(t.a,t.b,e.a,e.b,Me)&&r++}}return r}),"strictCrossingCount");var d=e((t=>{if(3===(t=Se(t)).length){var e=t[1];if(t[0].horizontal!==e.horizontal&&t[2].horizontal!==e.horizontal)return{index:e.index,horizontal:e.horizontal,vertical:e.vertical,segment:e}}}),"middleRail"),l=e(((t,e)=>{const r=[t.start,t.end].filter((t=>Boolean(t)));return n.filter((t=>{var n;return!r.includes(t.id)&&(t=t.rect,e.horizontal?(n=st(e.a.x,e.b.x,t.left,t.right),Ie<=n&&e.a.y>=t.top-2&&e.a.y<=t.bottom+2):(n=st(e.a.y,e.b.y,t.top,t.bottom),Ie<=n&&e.a.x>=t.left-2&&e.a.x<=t.right+2))}))}),"blockingRectsFor"),f=e(((t,e,r)=>{if(t=t.map((t=>({...t}))),e.horizontal)t[e.index].y=r,t[e.index+1].y=r;else{if(!e.vertical)return;t[e.index].x=r,t[e.index+1].x=r}return e=At(ft(t)),Se(e).length===e.length-1?e:void 0}),"candidateByMovingRail"),c=e(((t,e,r)=>{var d=[t.start,t.end].filter((t=>Boolean(t))),l=Se(e);if(l.length!==e.length-1)return!1;for(const t of l){if(Ct(t.a,t.b,n,d,-2))return!1;if(Ct(t.a,t.b,o,[],-2))return!1}for(const e of a)if(e!==t)for(const t of l)for(const r of Se(s(e)))if(it(t,r,.5)>=Ie)return!1;return i(t,e)<=r}),"candidateIsSafe");for(let t=0;t<8;t++){var h=i();let t=!1;for(const e of a){var g=s(e),u=d(g);if(u){var p=l(e,u.segment);if(0!==p.length){for(const r of u.horizontal?[Math.min(...p.map((t=>t.rect.top)))-20,Math.max(...p.map((t=>t.rect.bottom)))+20]:[Math.min(...p.map((t=>t.rect.left)))-20,Math.max(...p.map((t=>t.rect.right)))+20]){var x=f(g,u.segment,r);if(x&&c(e,x,h)){e.points=x,t=!0;break}}if(t)break}}}if(!t)return}}function Oe(t,r){const n=e((t=>{if((t=t.groupTitleRect)&&"number"==typeof t.left&&"number"==typeof t.right&&"number"==typeof t.top&&"number"==typeof t.bottom&&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{left:t.left,right:t.right,top:t.top,bottom:t.bottom}}),"validTitleRect");var o=e((t=>{if(t.isGroup&&!t.parentId&&("LR"!==(e="string"==typeof(e=t.direction)?e.toUpperCase():"")&&"RL"!==e&&"BT"!==e)){var e=n(t),r=t.y,o=t.height;if(e&&"number"==typeof r&&"number"==typeof o&&Number.isFinite(r)&&Number.isFinite(o)&&!(o<=0)&&(r=e.right-e.left,!((o=e.bottom-e.top)<=0||r<o)))return{node:t,rect:e}}}),"topLaneTitleFor"),a=e(((t,e)=>{var r;return!!t.horizontal&&!((r=t.a.y)<=e.top+Me||r>=e.bottom-Me)&&st(t.a.x,t.b.x,e.left,e.right)>=Ie}),"horizontalSegmentIntersectsTitle"),s=[...r.values()].map(o).filter((t=>Boolean(t)));if(0!==s.length){let e=0;for(const r of t)if(!r.isLayoutOnly){var i=ft(r.points??[]);for(const t of Se(i))for(const r of s)a(t,r.rect)&&(e=Math.max(e,r.rect.bottom-t.a.y+4))}if(!(e<=Me))for(const t of s){var d=t.node.y,l=t.node.height;"number"!=typeof d||"number"!=typeof l||!Number.isFinite(d)||!Number.isFinite(l)||l<=0||(t.node.y=d-e/2,t.node.height=l+e,t.node.groupTitleRect={...t.rect,top:t.rect.top-e,bottom:t.rect.bottom-e})}}}function ke(t,r){const n=e((t=>{if((t=t.groupTitleRect)&&"number"==typeof t.left&&"number"==typeof t.right&&"number"==typeof t.top&&"number"==typeof t.bottom&&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{left:t.left,right:t.right,top:t.top,bottom:t.bottom}}),"validTitleRect");var o=e((t=>{if(t.isGroup&&!t.parentId&&"LR"===(e=t.direction)){var e=n(t),r=t.x,o=t.width;if(e&&"number"==typeof r&&"number"==typeof o&&Number.isFinite(r)&&Number.isFinite(o)&&!(o<=0)&&(r=e.right-e.left,o=e.bottom-e.top,!(r<=0||o<r)))return{node:t,rect:e}}}),"leftLaneTitleFor"),a=e(((t,e)=>{var r;return!!t.vertical&&!((r=t.a.x)<=e.left+Me||r>=e.right-Me)&&st(t.a.y,t.b.y,e.top,e.bottom)>=Ie}),"verticalSegmentIntersectsTitle"),s=e(((t,e)=>{var r;return!!t.horizontal&&!((r=t.a.y)<=e.top+Me||r>=e.bottom-Me)&&st(t.a.x,t.b.x,e.left,e.right)>=Ie}),"horizontalSegmentIntersectsTitle"),i=[...r.values()].map(o).filter((t=>Boolean(t)));if(0!==i.length){let e=0;for(const r of t)if(!r.isLayoutOnly){var d,l=ft(r.points??[]);for(const t of Se(l))for(const r of i)a(t,r.rect)?e=Math.max(e,r.rect.right-t.a.x+4):s(t,r.rect)&&(d=Math.min(t.a.x,t.b.x),e=Math.max(e,r.rect.right-d+4))}if(!(e<=Me))for(const t of i){var f=t.node.x,c=t.node.width;"number"!=typeof f||"number"!=typeof c||!Number.isFinite(f)||!Number.isFinite(c)||c<=0||(t.node.x=f-e/2,t.node.width=c+e,t.node.groupTitleRect={...t.rect,left:t.rect.left-e,right:t.rect.right-e})}}}function Ne(t,r){const n=St(r.values()).realNodeRects,o=t.filter((t=>!t.isLayoutOnly)),a=e(((t,e=new Map)=>ft(e.get(t)??t.points??[])),"replacementPointsFor");var s=e(((t=new Map)=>{let e=0;for(let s=0;s<o.length;s++){var r=Se(a(o[s],t));for(let i=s+1;i<o.length;i++){var n=Se(a(o[i],t));for(const t of r)for(const r of n)Nt(t.a,t.b,r.a,r.b,Me)&&e++}}return e}),"crossingCount"),i=e(((t=new Map)=>o.reduce(((e,r)=>e+lt(a(r,t))),0)),"totalBends"),d=e((t=>{if(!((t=a(t)).length<4)){var e=t[t.length-2];if(ot(e,t=t[t.length-1],Me)||at(e,t,Me))return{tailStart:e,terminal:t}}}),"terminalTailFor"),l=e(((t,e)=>{if(!((t=a(t)).length<3)){var r=t[0];let n;if(ot(r,t=t[1],Me))n={x:t.x,y:e.tailStart.y};else{if(!at(r,t,Me))return;n={x:e.tailStart.x,y:t.y}}return r=At(ft([r,t,n,e.tailStart,e.terminal])),Se(r).length===r.length-1?r:void 0}}),"candidateWithDestinationTail");const f=e(((t,e)=>{var r=[t.start,t.end].filter((t=>Boolean(t)));for(const t of Se(e))if(Ct(t.a,t.b,n,r,-2))return!0;return!1}),"pathHasNodeHit"),c=e(((t,e,r)=>{for(const n of o)if(n!==t)for(const t of Se(e))for(const e of Se(a(n,r)))if(it(t,e,.5)>=Ie)return!0;return!1}),"pathHasSharedTrack");var h=e(((t,e,r)=>!f(t,e)&&!c(t,e,r)),"candidateIsSafe"),g=e((()=>{var t=new Map;for(const s of o){var e,n=s.end;n&&r.has(n)&&(a(s).length<4||((e=t.get(n)??[]).push(s),t.set(n,e)))}return t}),"edgesByDestination");for(let t=0;t<4;t++){var u,p,x=s();if(0===x)return;let t,e=x,r=i();for(const n of g().values())for(let o=0;o<n.length;o++)for(let a=o+1;a<n.length;a++){var m=n[o],y=n[a],v=d(m),b=d(y);v&&b&&(b=l(m,b),v=l(y,v),b)&&v&&h(m,b,m=new Map([[m,b],[y,v]]))&&h(y,v,m)&&(b=s(m),y=i(m),x<=b||b>e||b===e&&y>=r||(t=m,e=b,r=y))}if(!t)return;for([u,p]of t)u.points=p}}function Re(t,r){const{realNodeRects:n,labelNodeRects:o}=St(r.values()),a=t.filter((t=>!t.isLayoutOnly)),s=e(((t,e=new Map)=>ft(e.get(t)??t.points??[])),"replacementPointsFor");var i=e(((t=new Map)=>{let e=0;for(let o=0;o<a.length;o++){var r=Se(s(a[o],t));for(let i=o+1;i<a.length;i++){var n=Se(s(a[i],t));for(const t of r)for(const r of n)Nt(t.a,t.b,r.a,r.b,Me)&&e++}}return e}),"strictCrossingCount"),d=e(((t=new Map)=>a.reduce(((e,r)=>e+lt(s(r,t))),0)),"totalBends");const l=e((t=>{var e=t.start;t=t.end,e=e?r.get(e):void 0,t=t?r.get(t):void 0,e=e?yt(e):void 0,t=t?yt(t):void 0;return e&&t?{src:e,dst:t}:void 0}),"endpointRectsFor"),f=e(((t,e,r)=>{if(!(r.index<=0||r.index+1>=e.length-1)){var n,o,a,s=l(t);if(s)return r.vertical?(a=r.a.x,o=Math.min(s.src.left,s.dst.left),n=Math.max(s.src.right,s.dst.right),(o=a<o-Me?"left":n+Me<a?"right":void 0)?{edge:t,points:e,segmentIndex:r.index,axis:"vertical",side:o,coord:a,min:Math.min(r.a.y,r.b.y),max:Math.max(r.a.y,r.b.y)}:void 0):r.horizontal&&(n=r.a.y,o=Math.min(s.src.top,s.dst.top),a=Math.max(s.src.bottom,s.dst.bottom),s=n<o-Me?"top":a+Me<n?"bottom":void 0)?{edge:t,points:e,segmentIndex:r.index,axis:"horizontal",side:s,coord:n,min:Math.min(r.a.x,r.b.x),max:Math.max(r.a.x,r.b.x)}:void 0}}),"externalRailForSegment");var c=e((()=>{var t=[];for(const n of a){var e=s(n);for(const o of Se(e)){var r=f(n,e,o);r&&t.push(r)}}return t}),"collectExternalRails");const h=e(((t,e)=>t.edge!==e.edge&&t.axis===e.axis&&t.side===e.side&&st(t.min,t.max,e.min,e.max)>=Ie),"railsInteract");var g=e((t=>{var e=[],r=new Set;for(const s of t)if(!r.has(s)){var n=[s],o=[];for(r.add(s);0<n.length;){var a=n.pop();o.push(a);for(const e of t)!r.has(e)&&h(a,e)&&(r.add(e),n.push(e))}1<o.length&&e.push(o)}return e}),"connectedComponents");const u=e((t=>{var e=[];for(const r of t)e.some((t=>Math.abs(t-r.coord)<Me))||e.push(r.coord);for(;e.length<t.length;){var r=Math.min(...e),n=Math.max(...e),o=t[0].side;e.push("left"===o||"top"===o?r-12*(t.length-e.length):n+12*(t.length-e.length))}return e}),"uniqueCoordsFor");var p=e((t=>{const r=t.map((t=>t.coord)),n=u(t),o=[];if(t.length<=6){const a=new Array(n.length).fill(!1),s=[],i=e((()=>{if(s.length===t.length)s.some(((t,e)=>Math.abs(t-r[e])>=Me))&&o.push([...s]);else for(var[e,d]of n.entries())a[e]||(a[e]=!0,s.push(d),i(),s.pop(),a[e]=!1)}),"visit");i()}else for(let t=0;t<r.length;t++)for(let e=t+1;e<r.length;e++){var a=[...r];[a[t],a[e]]=[a[e],a[t]],o.push(a)}return o}),"coordinateAssignmentsFor"),x=e(((t,e)=>{var r,n,o=new Map;for([r,n]of t.entries()){var a=e[r],s=o.get(n.edge)??n.points.map((t=>({x:t.x,y:t.y})));"vertical"===n.axis?(s[n.segmentIndex].x=a,s[n.segmentIndex+1].x=a):(s[n.segmentIndex].y=a,s[n.segmentIndex+1].y=a),o.set(n.edge,s)}var i,d,l=new Map;for([i,d]of o){var f=At(ft(d));if(Se(f).length!==f.length-1)return;l.set(i,f)}return l}),"replacementsForAssignment"),m=e((t=>{for(var[e,r]of t){var i=[e.start,e.end].filter((t=>Boolean(t)));for(const t of Se(r)){if(Ct(t.a,t.b,n,i,-2))return!1;if(Ct(t.a,t.b,o,[],-2))return!1}}for(let e=0;e<a.length;e++){var d=a[e],l=t.has(d),f=Se(s(d,t));for(let r=e+1;r<a.length;r++){var c=a[r];if(l||t.has(c)){var h=Se(s(c,t));for(const t of f)for(const e of h)if(it(t,e,.5)>=Ie)return!1}}}return!0}),"candidateIsSafe");for(let t=0;t<4;t++){var y,v,b=i();if(0===b)return;let t,e=b,r=d(),n=Number.POSITIVE_INFINITY;for(const o of g(c()))for(const a of p(o)){var M,I,S,w=x(o,a);w&&m(w)&&(b<=(M=i(w))||(I=d(w),S=o.reduce(((t,e,r)=>t+Math.abs(a[r]-e.coord)),0),M>e)||M===e&&(I>r||I===r&&S>=n)||(t=w,e=M,r=I,n=S))}if(!t)return;for([y,v]of t)y.points=v}}function Ee(t,r){const{realNodeRects:n,labelNodeRects:o}=St(r.values()),a=t.filter((t=>!t.isLayoutOnly)),s=e(((t,e,r)=>ft(t===e?r??[]:t.points??[])),"pointsFor");var i=e((t=>Se(t).reduce(((t,e)=>{var r=e.a.x-e.b.x;e=e.a.y-e.b.y;return t+Math.hypot(r,e)}),0)),"pathLength");const d=e(((t,e)=>{let r=0;for(let i=0;i<a.length;i++){var n=Se(s(a[i],t,e));for(let d=i+1;d<a.length;d++){var o=Se(s(a[d],t,e));for(const t of n)for(const e of o)Nt(t.a,t.b,e.a,e.b,Me)&&r++}}return r}),"strictCrossingCount"),l=e(((t,e)=>{var r;return t.horizontal?(r=t.a.y,(Math.abs(r-e.top)<1||Math.abs(r-e.bottom)<1)&&st(t.a.x,t.b.x,e.left,e.right)>=Ie):!!t.vertical&&(r=t.a.x,Math.abs(r-e.left)<1||Math.abs(r-e.right)<1)&&st(t.a.y,t.b.y,e.top,e.bottom)>=Ie}),"segmentRunsAlongRectBorder"),f=e((t=>{var e=[];for(const o of[t.start,t.end].filter((t=>Boolean(t)))){var n;(n=(n=r.get(o))?yt(n):void 0)&&e.push(n)}return e}),"endpointRectsFor");var c=e(((t,e)=>{if(e+3>=t.length)return[];var r=t[e],n=t[e+1],o=t[e+2];const a=t[e+3];var s=ot(r,n,Me)&&at(n,o,Me)&&ot(o,a,Me),i=at(r,n,Me)&&ot(n,o,Me)&&at(o,a,Me);if(!s&&!i)return[];if(!(s?Math.sign(n.x-r.x)!==Math.sign(a.x-o.x):Math.sign(n.y-r.y)!==Math.sign(a.y-o.y)))return[];s=0===(i=rt(r,a,Me)||nt(r,a,Me)?[]:[{x:r.x,y:a.y},{x:a.x,y:r.y}]).length?[[...t.slice(0,e+1),...t.slice(e+3)]]:i.map((r=>[...t.slice(0,e+1),r,...t.slice(e+3)]));const d=new Set;return s.map((t=>At(ft(t)))).filter((t=>Se(t).length===t.length-1&&!!t.some((t=>et(t,a,Me)))&&(t=t.map((t=>t.x.toFixed(3)+","+t.y.toFixed(3))).join("|"),!d.has(t))&&(d.add(t),!0)))}),"shortcutCandidatesAt"),h=e(((t,e,r)=>{var i=[t.start,t.end].filter((t=>Boolean(t))),c=f(t);for(const t of Se(e)){if(Ct(t.a,t.b,n,i,-2))return!1;if(Ct(t.a,t.b,o,[],-2))return!1;if(c.some((e=>l(t,e))))return!1}for(const r of a)if(r!==t)for(const t of Se(e))for(const e of Se(s(r)))if(it(t,e,.5)>=Ie)return!1;return d(t,e)<=r}),"candidateIsSafe");for(let t=0;t<8;t++){var g=d();let t,e,r=g,n=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;for(const l of a){var u=s(l),p=lt(u,Me),x=i(u);for(let a=0;a<=u.length-4;a++)for(const s of c(u,a)){var m,y=lt(s,Me),v=i(s);(y<p||y===p&&v<x-Me)&&h(l,s,g)&&((m=d(l,s))>r||m===r&&(y>n||y===n&&v>=o)||(t=l,e=s,r=m,n=y,o=v))}}if(!t||!e)return;t.points=e}}function Be(t,r){var n,o,a,s=[];for(const t of r.values())t.isGroup||t.isEdgeLabel||(n=t.x??0,o=t.y??0,(a=yt(t))&&s.push({id:String(t.id??""),cx:n,cy:o,rect:a}));if(0!==s.length){const r=new Map(s.map((t=>[t.id,t]))),n=s.map((t=>({id:t.id,rect:t.rect}))),o=["top","bottom","left","right"],a={top:Math.min(...s.map((t=>t.rect.top)))-20,bottom:Math.max(...s.map((t=>t.rect.bottom)))+20,left:Math.min(...s.map((t=>t.rect.left)))-20,right:Math.max(...s.map((t=>t.rect.right)))+20},M=t.filter((t=>!t.isLayoutOnly)),I=new Map(M.map(((t,e)=>[t,e]))),S=e((t=>{var e="left"===t||"top"===t?-1:1,r=[];for(let n=0;n<=2;n++)r.push(a[t]+20*e*n);return r}),"outwardTracksForSide"),w=e(((t,e=new Map)=>ft(e.get(t)??t.points??[])),"replacementPointsFor"),L=e(((t,e)=>{let r=0;for(const n of t)for(const t of e)Nt(n.a,n.b,t.a,t.b,Me)&&r++;return r}),"crossingCountBetweenSegments"),C=e(((t,e)=>L(Se(t),Se(e))),"crossingCountBetweenPaths");var i=e(((t=new Map)=>{let r=0;var n=[];const o=new Set,a=[];var s=e((t=>{o.has(t)||(o.add(t),a.push(t))}),"addEdge");for(let e=0;e<M.length;e++){var i=M[e],d=w(i,t);for(let o=e+1;o<M.length;o++){var l=M[o],f=C(d,w(l,t));0<f&&(r+=f,n.push({first:i,second:l,count:f}),s(i),s(l))}}return a.sort(((t,e)=>(I.get(t)??0)-(I.get(e)??0))),{count:r,pairs:n,edgeSet:o,edges:a}}),"crossingSnapshot");const T=e(((t,e)=>{var r=new Set(e.keys());if(0===r.size)return t.count;let n=0;for(const e of t.pairs)(r.has(e.first)||r.has(e.second))&&(n+=e.count);let o=0;for(let t=0;t<M.length;t++){var a=M[t],s=r.has(a),i=w(a,e);for(let n=t+1;n<M.length;n++){var d=M[n];(s||r.has(d))&&(o+=C(i,w(d,e)))}}return t.count-n+o}),"crossingCountWithReplacements"),O=e((t=>{var e=new Map;for(const n of t.pairs){var r;(r=((r=e.get(n.first)??new Set).add(n.second),e.set(n.first,r),e.get(n.second)??new Set)).add(n.first),e.set(n.second,r)}var n=[],o=new Set;for(const r of t.edges)if(!o.has(r)){var a=[r],s=[];for(o.add(r);0<a.length;){var i=a.pop();s.push(i);for(const t of e.get(i)??[])o.has(t)||(o.add(t),a.push(t))}s.sort(((t,e)=>(I.get(t)??0)-(I.get(e)??0))),1<s.length&&n.push(s)}return n}),"crossingComponents"),k=e((t=>[t.start,t.end].filter((t=>Boolean(t)))),"endpointIdsFor"),N=e((t=>{var e=[];for(const o of O(t)){var r=new Set(o);const t=new Set(o.flatMap((t=>k(t))));var n=[...o];for(const e of M)r.has(e)||k(e).some((e=>t.has(e)))&&n.push(e);n.sort(((t,e)=>(I.get(t)??0)-(I.get(e)??0))),e.push(n)}return e}),"pairSearchGroups");var d=e(((t,e,r)=>T(t,new Map([[e,r]]))),"crossingCountWithSingleReplacement");const R=e((t=>{var e=new Map;for(const r of t.pairs)e.set(r.first,(e.get(r.first)??0)+r.count),e.set(r.second,(e.get(r.second)??0)+r.count);return e}),"currentCrossingsByEdge"),E=e((t=>t.slice(1).reduce(((e,r,n)=>(n=t[n],e+Math.abs(r.x-n.x)+Math.abs(r.y-n.y))),0)),"pathLength"),B=e(((t=new Map)=>M.reduce(((e,r)=>e+lt(w(r,t))),0)),"totalBends"),F=e(((t=new Map)=>M.reduce(((e,r)=>e+E(w(r,t))),0)),"totalLength");var l=e(((t,e,r=new Map)=>{var n=Se(e);for(const e of M)if(e!==t)for(const t of n)for(const n of Se(w(e,r)))if(it(t,n,.5)>=Ie)return!0;return!1}),"pathHasSegmentConflict");const A=e(((t,e)=>{var r=[t.start,t.end].filter((t=>Boolean(t)));for(const t of Se(e))if(Ct(t.a,t.b,n,r,-2))return!0;return!1}),"pathHitsNode"),P=e(((t,e)=>{e=At(ft(e)),Se(e).length===e.length-1&&t.push(e)}),"pushOrthogonalCandidate"),Y=e((t=>"left"===t||"right"===t),"sideIsHorizontal"),X=e(((t,e,r)=>{switch(e){case"left":return Math.min(t.x,r.x)-20;case"right":return Math.max(t.x,r.x)+20;case"top":return Math.min(t.y,r.y)-20;case"bottom":return Math.max(t.y,r.y)+20}}),"localTrackForSameSide"),z=e(((t,e,r,n)=>{var o="left"===r||"top"===r?-1:1;for(const s of[X(e,r,n),a[r]])for(let a=0;a<=2;a++)P(t,Mt(e,r,n,s+20*o*a))}),"addSameSideCandidates"),G=e(((t,e,r,n,o)=>{for(const a of S(r))for(const r of S(o))P(t,[e,{x:a,y:e.y},{x:a,y:r},{x:n.x,y:r},n])}),"addHorizontalToVerticalCandidates"),D=e(((t,e,r,n,o)=>{for(const a of S(r))for(const r of S(o))P(t,[e,{x:e.x,y:a},{x:r,y:a},{x:r,y:n.y},n])}),"addVerticalToHorizontalCandidates"),$=e(((t,e,r,n,o)=>{var a=[...S("top"),...S("bottom")];for(const s of S(r))for(const r of S(o))for(const o of a)P(t,[e,{x:s,y:e.y},{x:s,y:o},{x:r,y:o},{x:r,y:n.y},n])}),"addHorizontalPairCandidates"),_=e(((t,e,r,n,o)=>{var a=[...S("left"),...S("right")];for(const s of S(r))for(const r of S(o))for(const o of a)P(t,[e,{x:e.x,y:s},{x:o,y:s},{x:o,y:r},{x:n.x,y:r},n])}),"addVerticalPairCandidates"),H=e((t=>{const e=new Set;return t.map((t=>ft(t))).filter((t=>{var r=t.map((t=>t.x.toFixed(3)+","+t.y.toFixed(3))).join("|");return!(e.has(r)||t.length<2||(e.add(r),0))}))}),"dedupeCandidatePaths"),j=e(((t,e,r,n)=>{var o=[],a=((a=bt(t,e,r,n,20,Me))&&P(o,a),e===n&&z(o,t,e,r),Y(e)),s=Y(n);return(a&&!s?G:!a&&s?D:a?$:_)(o,t,e,r,n),H(o)}),"buildCandidatesForSides"),V=e(((t,e,r,n)=>{var a=[...S("left"),...S("right")],s=[...S("top"),...S("bottom")];for(const l of o){var i=vt(n,l),d="top"===l||"bottom"===l?S(l):s;for(const n of a){P(t,[e,r,{x:n,y:r.y},{x:n,y:i.y},i]);for(const o of d)P(t,[e,r,{x:n,y:r.y},{x:n,y:o},{x:i.x,y:o},i])}}}),"addVerticalDepartureOuterTrackCandidates"),W=e(((t,e,r,n)=>{var a=[...S("left"),...S("right")],s=[...S("top"),...S("bottom")];for(const l of o){var i=vt(n,l),d="left"===l||"right"===l?S(l):a;for(const n of s){P(t,[e,r,{x:r.x,y:n},{x:i.x,y:n},i]);for(const o of d)P(t,[e,r,{x:r.x,y:n},{x:o,y:n},{x:o,y:i.y},i])}}}),"addHorizontalDepartureOuterTrackCandidates"),U=e((t=>{var e,n=t.start,o=(o=t.end)?r.get(o):void 0;return!n||!o||(n=ft(t.points??[])).length<4?[]:(t=[],at(e=n[0],n=n[1],Me)?V(t,e,n,o):ot(e,n,Me)&&W(t,e,n,o),t)}),"terminalPreservingOuterTrackCandidates"),q=e((t=>{var e=t.start,n=t.end,a=e?r.get(e):void 0,s=n?r.get(n):void 0;if(!a||!s)return[];var i=[];for(const t of o){var d=vt(a,t);for(const e of o)i.push(...j(d,t,vt(s,e),e))}return i.push(...U(t)),i}),"candidatePathsFor"),J=e((()=>new Map(M.map((t=>[t,Se(w(t))])))),"currentSegmentsByEdge"),K=e(((t,e,r)=>{var n=new Set;for(const o of M)if(o!==t){const t=r.get(o)??Se(w(o));e.some((e=>t.some((t=>it(e,t,.5)>=Ie))))&&n.add(o)}return n}),"sharedTrackConflictsFor"),Z=e(((t,e,r,n)=>{const o=new Set;return q(t).map((t=>At(ft(t)))).filter((e=>{var r;return!(A(t,e)||(r=e.map((t=>t.x.toFixed(3)+","+t.y.toFixed(3))).join("|"),o.has(r))||e.length<2||(o.add(r),0))})).map((o=>{var a=Se(o);let s=0;for(const e of M)e!==t&&(s+=L(a,r.get(e)??Se(w(e))));return{candidate:o,candidateSegments:a,crossings:e.count-(n.get(t)??0)+s,bends:lt(o,Me),totalBends:lt(o),length:E(o)}})).filter((({crossings:t})=>t<=e.count)).sort(((t,e)=>t.crossings-e.crossings||t.bends-e.bends||t.length-e.length)).slice(0,48).map((e=>({path:e.candidate,segments:e.candidateSegments,sharedTrackConflicts:K(t,e.candidateSegments,r),totalBends:e.totalBends,length:e.length})))}),"pairCandidatesFor"),Q=e(((t,e,r,n,o,a)=>{let s=0;for(const r of t.pairs)r.first!==e&&r.second!==e&&r.first!==n&&r.second!==n||(s+=r.count);let i=L(r.segments,o.segments);for(const t of M){var d;t!==e&&t!==n&&(d=a.get(t)??Se(w(t)),i+=L(r.segments,d)+L(o.segments,d))}return t.count-s+i}),"pairCrossingCount"),tt=e(((t,e)=>{for(const r of t.sharedTrackConflicts)if(r!==e)return!1;return!0}),"conflictsOnlyWith"),et=e(((t,e)=>t.segments.some((t=>e.segments.some((e=>it(t,e,.5)>=Ie))))),"candidatesShareTrack"),rt=e(((t,e,r,n)=>tt(e,r.edge)&&tt(n,t.edge)&&!et(e,n)),"pairCandidatesAreCompatible"),nt=e(((t,e,r,n,o)=>{var a=Q(t.current,e.edge,r,n.edge,o,t.baseSegments);if(!(a>=t.current.count))return{replacements:new Map([[e.edge,r.path],[n.edge,o.path]]),crossings:a,bends:t.currentBends-(t.baseBendsByEdge.get(e.edge)??0)-(t.baseBendsByEdge.get(n.edge)??0)+r.totalBends+o.totalBends,length:t.currentLength-(t.baseLengthByEdge.get(e.edge)??0)-(t.baseLengthByEdge.get(n.edge)??0)+r.length+o.length}}),"scorePairReplacement"),st=e(((t,e)=>t.crossings<e.crossings||t.crossings===e.crossings&&(t.bends<e.bends||t.bends===e.bends&&t.length<e.length)),"pairScoreIsBetter"),dt=e(((t,e,r,n)=>{let o=n;for(const n of e.candidates)for(const s of r.candidates){var a;rt(e,n,r,s)&&(a=nt(t,e,n,r,s))&&st(a,o)&&(o=a)}return o}),"bestScoreForOptionPair");var f=e((t=>{var e=B(),r=F(),n=J(),o=R(t),a=new Map(M.map((t=>[t,lt(w(t))]))),s=new Map(M.map((t=>[t,E(w(t))])));const i=new Map;var d,l=N(t);for(const e of l)for(const r of e)i.has(r)||0<(d=Z(r,t,n,o)).length&&i.set(r,{edge:r,candidates:d});let f={replacements:new Map,crossings:t.count,bends:e,length:r};var c={current:t,currentBends:e,currentLength:r,baseBendsByEdge:a,baseLengthByEdge:s,baseSegments:n};for(const e of l){var h=new Set(e.filter((e=>t.edgeSet.has(e)))),g=e.map((t=>i.get(t))).filter((t=>Boolean(t)));for(let t=0;t<g.length;t++){var u=g[t];for(let e=t+1;e<g.length;e++){var p=g[e];(h.has(u.edge)||h.has(p.edge))&&(f=dt(c,u,p,f))}}}return 0<f.replacements.size?f.replacements:void 0}),"bestPairedReplacement");for(let t=0;t<4;t++){var c=i(),h=c.count;if(0===h)return;let t,e,r=h,n=Number.POSITIVE_INFINITY;for(const o of c.edges){var g=lt(w(o),Me);for(const a of q(o)){var u=A(o,a),p=!u&&l(o,a),x=d(c,o,a),m=lt(a,Me);u||p||!(x<h||x===h&&m<g)||x>r||x===r&&m>=n||(t=o,e=a,r=x,n=m)}}if(t&&e)t.points=e;else{var y,v,b=f(c);if(!b)return;for([y,v]of b)y.points=v}}}}e(Le,"separateSharedRenderedTerminalLanes"),e(Ce,"collapseRedundantRectangularDoglegs"),e(Te,"liftObstacleHuggingSameSideRails"),e(Oe,"liftTopLaneTitleBandsAboveRails"),e(ke,"shiftLeftLaneTitleBandsLeftOfRails"),e(Ne,"swapDestinationTerminalTailsToReduceCrossings"),e(Re,"reassignCrossingExternalRailChannels"),e(Ee,"shortcutRedundantOrthogonalJogs"),e(Be,"resolveRenderedOrthogonalCrossings");var Fe=.001,Ae=8;function Pe(t,r){const{nodeInfoById:n,realNodeRects:o}=It(r);var a=["top","bottom","left","right"];const s={top:Math.min(...o.map((t=>t.rect.top)))-20,bottom:Math.max(...o.map((t=>t.rect.bottom)))+20,left:Math.min(...o.map((t=>t.rect.left)))-20,right:Math.max(...o.map((t=>t.rect.right)))+20};var i=e(((t,e,r,n)=>{var o=[],a=bt(t,e,r,n,20,Fe);return a&&o.push(a),e===n&&o.push(Mt(t,e,r,s[e])),o}),"buildOrthogonalPathCandidates"),d=e(((t,e)=>{for(let r=0;r<t.length-1;r++)if(Ct(t[r],t[r+1],o,e,1))return!0;return!1}),"pathHitsNode"),l=e(((e,r,n=!1)=>{let o=0;var a=dt(e,Fe),s=r.start,i=r.end;for(const e of t)if(e!==r&&!e.isLayoutOnly){var d=e.start,l=e.end;if(n||!s||!i||d!==s&&d!==i&&l!==s&&l!==i){var f=e.points;if(f&&!(f.length<2))for(const t of a)for(const e of dt(f,Fe))(Tt(t.a,t.b,e.a,e.b,Fe,Fe)||it(t,e,Fe)>=Ae)&&o++}}return o}),"pathConflictCount"),f=e(((t,e)=>{var r=Math.abs(t.y-e.rect.top),n=Math.abs(t.y-e.rect.bottom),o=Math.abs(t.x-e.rect.left);let a="top",s=r;return n<s&&(a="bottom",s=n),o<s&&(a="left",s=o),(t=Math.abs(t.x-e.rect.right))<s&&(a="right",s=t),a}),"nearestSideOfRect");const c=new Map;var h,g,u,p,x,m=e(((t,e,r)=>{var n=c.get(t)??[];n.push({side:e,edgeId:r}),c.set(t,n)}),"addFaceClaim");for(const e of t)e.isLayoutOnly||(h=e.points??[]).length<1||(g=e.id??"",x=e.start,u=e.end,x&&(p=n.get(x))&&m(x,f(h[0],p),g),u&&(x=n.get(u))&&m(u,f(h[h.length-1],x),g));var y=e(((t,e,r)=>c.get(t)?.some((t=>t.edgeId!==r&&t.side===e))??!1),"faceIsClaimed");for(const e of t)if(!e.isLayoutOnly){var v=e.points;if(v&&!(v.length<2)){var b=lt(v,Fe);if(!(b<4)){var M=e.start,I=e.end;if(M&&I){var S=n.get(M),w=n.get(I);if(S&&w){const t=e.id??"";var L=l(v,e,!0),C=l(v,e);let r,n=L,o=b;for(const s of a)if(!y(M,s,t)){var T=vt(S,s);for(const f of a)if(!y(I,f,t)){var O,k,N=vt(w,f);for(const t of i(T,s,N,f))d(t,[M,I])||(O=lt(t,Fe),0<L?(k=l(t,e,!0))>n||k===n&&O>=o||(n=k,o=O,r=t):l(t,e)>C||O<o&&(o=O,r=t))}}r&&(e.points=r,(v=c.get(M))&&c.set(M,v.filter((e=>e.edgeId!==t))),(b=c.get(I))&&c.set(I,b.filter((e=>e.edgeId!==t))),m(M,f(r[0],S),t),m(I,f(r[r.length-1],w),t))}}}}}}e(Pe,"simplifyDetouredEdges");var Ye=.001,Xe=10,ze=7;function Ge(t,e){var r=t[n=e?0:t.length-1];t=t[n+(e?1:-1)];if(r&&t){var n=t.x-r.x,o=(e=t.y-r.y,Math.abs(n)+Math.abs(e));if(!(o<Ye))return Math.abs(e)<=Ye?(o=r.x+Math.sign(n)*Xe,{left:Math.min(r.x,o),right:Math.max(r.x,o),top:r.y-ze,bottom:r.y+ze}):Math.abs(n)<=Ye?(o=r.y+Math.sign(e)*Xe,{left:r.x-ze,right:r.x+ze,top:Math.min(r.y,o),bottom:Math.max(r.y,o)}):{left:Math.min(r.x,t.x),right:Math.max(r.x,t.x),top:Math.min(r.y,t.y),bottom:Math.max(r.y,t.y)}}}function De(t){return{left:Math.min(t.left,t.right),right:Math.max(t.left,t.right),top:Math.min(t.top,t.bottom),bottom:Math.max(t.top,t.bottom)}}function $e(t,e){return[Ge(e=ft(e),!0),Ge(e,!1)].some((e=>e&&pt(t,De(e))))}function _e(t,r){const n=[];for(const e of t)if(!e.isLayoutOnly){var o=e.points;if(o&&!(o.length<2))for(let t=0;t<o.length-1;t++)n.push({edgeId:e.id,p1:o[t],p2:o[t+1]})}const a=[],s=[];for(const t of r.values()){var i=t.isGroup,d=t.parentId;i&&!d?(d=yt(t))&&s.push({id:t.id,rect:d}):i||t.isEdgeLabel||(d=yt(t))&&a.push({nodeId:t.id,rect:d})}const l=e(((t,e)=>{var r,n,o=xt(e,3);for({nodeId:r,rect:n}of a)if(r!==t&&pt(o,n))return!0;return!1}),"labelOverlapsForeignNode"),f=e(((t,e)=>{var r=xt(e,3);for(const e of n)if(e.edgeId!==t&&ht(e.p1,e.p2,r))return!0;return!1}),"labelOverlapsForeignEdge"),c=e(((t,e,r)=>l(t,r)||f(e,r)),"labelOverlapsAnything"),h=[],g=e((t=>{for(var{id:e,rect:r}of s)if(ut(r,t))return e}),"findContainingLane"),u=e(((t,e)=>h.some((r=>r.labelId!==t&&pt(e,r.rect)))),"overlapsPlacedLabel");for(const n of t)if(!n.isLayoutOnly){const t=n.labelNodeId;if(t){var p=r.get(t);if(p){const r=n.points;if(r&&!(r.length<2)){const o=p.width??0,a=p.height??0;if(!(o<=0||a<=0)){const i=[];for(let t=0;t<r.length-1;t++){var x=r[t],m=r[t+1],y=Math.abs(x.x-m.x),v=Math.abs(x.y-m.y);y<Ye&&v<Ye||Ye<=y&&Ye<=v||i.push({idx:t,length:y+v,orientation:Ye<=y?"horizontal":"vertical",midX:(x.x+m.x)/2,midY:(x.y+m.y)/2})}if(0!==i.length){var b=3<=i.length?i.filter((t=>0<t.idx&&t.idx<i.length-1)):i;b=0<b.length?b:i;const d=o>=a?"horizontal":"vertical",x=e((t=>[...t].sort(((t,e)=>{var r=t.orientation===d;return r!=(e.orientation===d)||(r=t.length>=("horizontal"===t.orientation?o:a)+2)!=e.length>=("horizontal"===e.orientation?o:a)+2?r?-1:1:e.length-t.length}))),"rankSegments"),m=i[0],y=i[i.length-1],v=[.5,.25,.75,.05,.95,.15,.85,.1,.9],S=e(((t,e)=>{var n=r[t.idx];t=r[t.idx+1];return{midX:n.x+(t.x-n.x)*e,midY:n.y+(t.y-n.y)*e}}),"anchorAtT"),w=e(((t,e,r)=>Math.min(r,Math.max(e,t))),"clamp"),L=e(((t,e)=>t.midX>=e.left-Ye&&t.midX<=e.right+Ye&&t.midY>=e.top-Ye&&t.midY<=e.bottom+Ye),"pointInsideRectInclusive"),C=e((t=>{var e=mt(t.midX,t.midY,o,a),r=g(e);if(r)return{laneId:r,anchor:t,rect:e};if(r=s.find((({rect:e})=>L(t,e))),r){e=r.rect.left+o/2+1;var n=r.rect.right-o/2-1,i=r.rect.top+a/2+1,d=r.rect.bottom-a/2-1;if(!(n<e||d<i))return n=mt((e={midX:w(t.midX,e,n),midY:w(t.midY,i,d)}).midX,e.midY,o,a),L(t,n)?{laneId:r.id,anchor:e,rect:n}:void 0}}),"placementForAnchor"),T=e(((t,e,r)=>"horizontal"===t.orientation?Math.abs(e.midX-r.x):Math.abs(e.midY-r.y)),"distanceAlongSegment"),O=e(((t,e)=>{var n=12+("horizontal"===t.orientation?o/2:a/2);if(t===m){var s=r[t.idx];if(T(t,e,s)+Ye<n)return!1}return!(t===y&&(s=r[t.idx+1],T(t,e,s)+Ye<n))}),"labelClearsTerminalEndpoints");var M=e((e=>{for(const a of x(e))for(const e of v){var o=S(a,e);if(O(a,o)&&(o=C(o))&&!$e(o.rect,r)&&!u(t,o.rect)&&!c(t,n.id,o.rect))return{laneId:o.laneId,anchor:o.anchor}}}),"tryPool"),I=e(((e,o,a=!1)=>{for(const i of x(e)){var s={midX:i.midX,midY:i.midY};if((!o||O(i,s))&&(s=C(s))&&!$e(s.rect,r)&&!u(t,s.rect)&&!l(t,s.rect)&&(a||!f(n.id,s.rect)))return{laneId:s.laneId,anchor:s.anchor}}}),"findLaneContainingFallback");(b=M(b)??(b.length<i.length?M(i):void 0)??I(i,!0)??I(i,!1)??I(i,!1,!0))&&(p.x=b.anchor.midX,p.y=b.anchor.midY,p.parentId=b.laneId,M=mt(b.anchor.midX,b.anchor.midY,o,a),0<=(I=h.findIndex((e=>e.labelId===t)))?h[I]={labelId:t,rect:M}:h.push({labelId:t,rect:M}))}}}}}}}e(Ge,"markerClearanceRectFor"),e(De,"normalizeRect"),e($e,"labelOverlapsOwnMarker"),e(_e,"anchorLabelsToPolyline");var He=1e-6,je=4,Ve=3;function We(t,e){return t<e?t+"::"+e:e+"::"+t}function Ue(t,r){var{nodeInfoById:n,realNodeRects:o}=It(r);const a=new Map;for(const t of r){var s=t.id;t.isGroup||t.isEdgeLabel&&a.set(s,{w:t.width??0,h:t.height??0})}var i=e(((r,n,o,s)=>{var i=We(n,o);let d=0;var l,f,c=e((t=>{t&&(t=a.get(t))&&(t="x"===s?t.w/2:t.h/2)>d&&(d=t)}),"consider");c(r.labelNodeId);for(const e of t)e===r||e.isLayoutOnly||(l=e.start,f=e.end,l&&f&&We(l,f)===i&&c(e.labelNodeId));return 0<d?d+Ve:0}),"labelClearanceFor");for(const e of t)if(!e.isLayoutOnly&&ct(e.points,He)){var d;if(d=Lt(e,n,He)){var{srcId:l,dstId:f,srcInfo:c,dstInfo:h,collinearX:g,collinearY:d}=d;if(g!==d){let r,n;if(n=g?(d=h.cy>c.cy,r={x:c.cx,y:d?c.rect.bottom:c.rect.top},{x:h.cx,y:d?h.rect.top:h.rect.bottom}):(r={x:(d=h.cx>c.cx)?c.rect.right:c.rect.left,y:c.cy},{x:d?h.rect.left:h.rect.right,y:h.cy}),!Ct(r,n,o,[l,f],1)){d=i(e,l,f,g?"x":"y"),d=je<d?d:je;for(const a of[0,d,-d]){var u={...r},p={...n};if(g){if(u.x+=a,p.x+=a,u.x<=c.rect.left||u.x>=c.rect.right)continue;if(p.x<=h.rect.left||p.x>=h.rect.right)continue}else{if(u.y+=a,p.y+=a,u.y<=c.rect.top||u.y>=c.rect.bottom)continue;if(p.y<=h.rect.top||p.y>=h.rect.bottom)continue}if(!Ct(u,p,o,[l,f],1)&&!kt(u,p,t,e,{epsilon:He})){e.points=[u,p];break}}}}}}}function qe(t,r){const n=.001,{realNodeRects:o,labelNodeRects:a}=St(r.values()),s=e(((t,e)=>dt(e,n).map((r=>({...r,edge:t,interior:1<=r.index&&r.index<=e.length-3})))),"segmentsFor");var i=e((()=>{var e,r=[];for(const n of t)n.isLayoutOnly||!(e=n.points)||e.length<2||r.push(...s(n,ft(e)));return r}),"allSegments");const d=e(((t,e)=>t.horizontal&&e.horizontal?8<=st(t.a.x,t.b.x,e.a.x,e.b.x)&&Math.abs(t.a.y-e.a.y)<7:!(!t.vertical||!e.vertical)&&8<=st(t.a.y,t.b.y,e.a.y,e.b.y)&&Math.abs(t.a.x-e.a.x)<7),"hasCrowdedParallelTrack");var l=e(((e,r)=>{var i=e.start,l=e.end,f=s(e,r);if(f.length!==r.length-1)return!1;var c=[i,l].filter((t=>Boolean(t))),h=e.labelNodeId?[e.labelNodeId]:[];for(const t of f){if(Ct(t.a,t.b,o,c,-2))return!1;if(Ct(t.a,t.b,a,h,-2))return!1}for(const r of t)if(r!==e&&!r.isLayoutOnly){var g=r.points;if(g&&!(g.length<2))for(const t of f)for(const e of s(r,ft(g))){if(d(t,e))return!1;if(Nt(t.a,t.b,e.a,e.b,n))return!1}}return!0}),"candidateIsSafe"),f=e(((t,e)=>{var r=ft(t.edge.points??[]);if(!(r.length<4||t.index>=r.length-1)){if(r=r.map((t=>({...t}))),t.horizontal)r[t.index].y+=e,r[t.index+1].y+=e;else{if(!t.vertical)return;r[t.index].x+=e,r[t.index+1].x+=e}return s(t.edge,r).length===r.length-1?r:void 0}}),"shiftedCandidate");const c=e(((t,e)=>({x:t.x??(e.left+e.right)/2,y:t.y??(e.top+e.bottom)/2})),"nodeCenter"),h=e((t=>{if(4===(s=ft((n=t.edge).points??[])).length&&1===t.index){var e=n.start?r.get(n.start):void 0,n=n.end?r.get(n.end):void 0,o=e?yt(e):void 0,a=n?yt(n):void 0,s=s.slice(t.index+2);if(e&&n&&o&&a&&0!==s.length)return{sourceCenter:c(e,o),targetCenter:c(n,a),sourceRect:o,tail:s}}}),"sourceDetourContextFor"),g=e(((t,e,r,o,a,s)=>{var i=(a=(o=o.y>=r.y)?a.bottom:a.top)+(o?20:-20);if(!(o&&t.b.y<=i+n||!o&&t.b.y>=i-n))return o=t.a.x+e,ft([{x:r.x,y:a},{x:r.x,y:i},{x:o,y:i},{x:o,y:t.b.y},...s],n)}),"verticalSourceDetour"),u=e(((t,e,r,o,a,s)=>{var i=(a=(o=o.x>=r.x)?a.right:a.left)+(o?20:-20);if(!(o&&t.b.x<=i+n||!o&&t.b.x>=i-n))return o=t.a.y+e,ft([{x:a,y:r.y},{x:i,y:r.y},{x:i,y:o},{x:t.b.x,y:o},...s],n)}),"horizontalSourceDetour");var p=e(((t,e)=>{var r=h(t);if(r)return t.vertical?g(t,e,r.sourceCenter,r.targetCenter,r.sourceRect,r.tail):t.horizontal?u(t,e,r.sourceCenter,r.targetCenter,r.sourceRect,r.tail):void 0}),"sourceDetourCandidate"),x=[-7,7,-14,14,-21,21];for(let t=0;t<12;t++){var m=i();let t=!1;for(let e=0;e<m.length&&!t;e++)for(let r=e+1;r<m.length&&!t;r++){var y=m[e],v=m[r];if(y.edge!==v.edge&&d(y,v))for(const e of[y,v].filter((t=>t.interior))){for(const r of x){var b=f(e,r);if(b&&l(e.edge,b)){e.edge.points=b,t=!0;break}if((b=p(e,r))&&l(e.edge,b)){e.edge.points=b,t=!0;break}}if(t)break}}if(!t)return}}function Je(t,e,r,n){var o,a=e.x-t.x,s=(e=e.y-t.y,n.x-r.x),i=a*(n=n.y-r.y)-e*s;return!(Math.abs(i)<1e-10)&&(r=((o=r.x-t.x)*e-(e=r.y-t.y)*a)/i,.01<(t=(o*n-e*s)/i))&&t<.99&&.01<r&&r<.99}function Ke(t){var e=t.nodes??[],r=[];if((t=t.edges??[]).length&&e.length){var n=wt(e),o=[];for(const e of t)if(!e.isLayoutOnly){var a=e.points;if(a&&!(a.length<2)){var s=e.start,i=e.end,d=e.labelNodeId,l=e.id??s+"->"+i;for(const t of n)if(t.nodeId!==s&&t.nodeId!==i&&(!d||t.nodeId!==d))for(let e=0;e<a.length-1;e++)if(ht(a[e],a[e+1],t,-1)){r.push({type:"edge-node-overlap",edgeId:l,targetId:t.nodeId,detail:`segment ${e} passes through node "${t.nodeId}"`});break}for(let t=0;t<a.length-1;t++)o.push({edgeId:l,start:s,end:i,p1:a[t],p2:a[t+1]})}}var f=new Set;for(let t=0;t<o.length;t++)for(let e=t+1;e<o.length;e++){var c,h=o[t],g=o[e];h.edgeId!==g.edgeId&&h.start!==g.start&&h.start!==g.end&&h.end!==g.start&&h.end!==g.end&&Je(h.p1,h.p2,g.p1,g.p2)&&(c=h.edgeId<g.edgeId?h.edgeId+"|"+g.edgeId:g.edgeId+"|"+h.edgeId,f.has(c)||(f.add(c),r.push({type:"edge-edge-crossing",edgeId:h.edgeId,targetId:g.edgeId,detail:`edges "${h.edgeId}" and "${g.edgeId}" cross`})))}if(0<r.length){e=r.filter((t=>"edge-node-overlap"===t.type)).length,t=r.filter((t=>"edge-edge-crossing"===t.type)).length,m.warn(`[SWIMLANE_VALIDATE] ${r.length} issue(s) detected: ${e} edge-node overlap(s), ${t} edge crossing(s)`);for(const t of r)m.warn(`[SWIMLANE_VALIDATE] ${t.type}: `+t.detail)}}return r}function Ze(t,r){var n=t.nodes??[];const o=t.edges??[];var a,s=n.filter((t=>!t.isGroup));if(("LR"!==r&&"RL"!==r||!(0<s.length)||xe(t,r))&&(!("BT"===r&&0<s.length)||pe(t))){for(const t of o)t.isLayoutOnly||!(a=t.points)||a.length<2||(t.points=At(Ft(a)));Pe(o,n),Ue(o,n),ve(o,n);const t=new Map;for(const e of n)t.set(String(e.id),e);_e(o,t),$t(o,t),be(o,t),qe(o,t),Le(o,t),Ce(o,t),Te(o,t),Ne(o,t),(r=e((()=>{Be(o,t),Re(o,t),Ee(o,t),_e(o,t),ie(o,t),Te(o,t),_e(o,t),ie(o,t)}),"finalizeRenderedEdges"))(),qe(o,t),r(),Oe(o,t),ke(o,t),Oe(o,t),ke(o,t)}}function Qe(t){var e,r=new Map(t.nodeById),n=new Set,o=[];for(const a of t.edges)r.has(a.src)&&r.has(a.dst)&&(e=`${a.id}:${a.src}->`+a.dst,n.has(e)||(n.add(e),o.push(a)));return{nodes:[...r.keys()],edges:o,layout:t.layout,nodeById:r}}function tr(t,e){return t.edges.filter((t=>t.dst===e))}function er(t){var e=new Map;for(const r of t.nodes)e.set(r,[]);for(const r of t.edges)e.get(r.src).push(r.dst);return e}function rr(t){t=er(t);for(const e of t.values())e.sort(((t,e)=>t.localeCompare(e)));return t}function nr(t){var e=new Map;for(const r of t.nodes)e.set(r,0);for(const r of t.edges)e.set(r.dst,(e.get(r.dst)??0)+1);return e}function or(t){return[...t.entries()].filter((([,t])=>0===t)).map((([t])=>t)).sort(((t,e)=>t.localeCompare(e)))}function ar(t,e=(()=>!0)){var r=new Map,n=new Map;for(const e of t.nodes)r.set(e,[]),n.set(e,[]);for(const o of t.edges)e(o)&&(n.get(o.src).push(o.dst),r.get(o.dst).push(o.src));return{preds:r,succs:n}}function sr(t,e,r,n){let o=0;for(const e of t.nodes)n?.skipGroups&&t.nodeById.get(e)?.isGroup||(o=Math.max(o,r[e]??0));var a=Array.from({length:o+1},(()=>[]));for(const o of e)n?.skipGroups&&t.nodeById.get(o)?.isGroup||a[Math.max(0,r[o]??0)].push(o);return a}function ir(t){for(var e=nr(t),r=or(e),n=[],o=rr(t);r.length;){var a=r.shift();n.push(a);for(const t of o.get(a)??[])if(e.set(t,(e.get(t)??0)-1),0===(e.get(t)??0)){let e=0;for(;e<r.length&&r[e]<t;)e++;r.splice(e,0,t)}}return n.length===t.nodes.length?n:null}function dr(t){var e=new Map;let r=0;for(const n of t)e.set(n,r),r++;return e}function lr(t){const r=new Array(t.length),n=e(((e,o)=>{if(o-e<=1)return 0;var a=e+o>>1;let s=n(e,a)+n(a,o),i=e,d=a,l=e;for(;i<a||d<o;)d>=o||i<a&&t[i]<=t[d]?r[l++]=t[i++]:(r[l++]=t[d++],s+=a-i);for(let n=e;n<o;n++)t[n]=r[n];return s}),"count");return n(0,t.length)}function fr(t){t=Qe(t);const r=new Map;for(const e of t.nodes)r.set(e,[]);for(const e of t.edges)r.get(e.src).push(e);for(const t of r.values())t.sort(((t,e)=>t.dst===e.dst?t.id.localeCompare(e.id):t.dst.localeCompare(e.dst)));const n=Object.create(null);for(const e of t.nodes)n[e]=0;const o=[],a=e((t=>{n[t]=1;for(const s of r.get(t)??[]){var e=s.dst;0===n[e]?a(e):1===n[e]&&o.push(s)}n[t]=2}),"dfs");for(const e of[...t.nodes].sort(((t,e)=>t.localeCompare(e))))0===n[e]&&a(e);const s=new Set(o.map((t=>`${t.id}:${t.src}->`+t.dst)));var i=t.edges.map((t=>s.has(`${t.id}:${t.src}->`+t.dst)?{id:t.id,src:t.dst,dst:t.src,weight:t.weight,ref:t.ref}:t));return{acyclic:{nodes:[...t.nodes],edges:i,layout:t.layout,nodeById:new Map(t.nodeById)},reversed:o}}function cr(t){const r=new Map,n=e((e=>{var o;return r.has(e)?r.get(e):(o=t.nodeById.get(e))&&(o=o.parentId)?(o=n(o)??o,r.set(e,o),o):(r.set(e,null),null)}),"resolve");for(const e of t.nodes)n(e);return r}function hr(t){const e=cr(t);return t=>e.get(t)??null}function gr(t){var e=[];for(const r of t.layout.nodes??[])r.isGroup&&!r.parentId&&e.push(r.id);return[...new Set(e)].reverse()}function ur(t,e){if(t=gr(t),!e||0===e.length)return t;var r=new Set(t),n=new Set,o=[];for(const t of e)r.has(t)&&!n.has(t)&&(n.add(t),o.push(t));for(const e of t)n.has(e)||o.push(e);return o}e(We,"pairKey"),e(Ue,"straightenCollinearSiblingDetours"),e(qe,"nudgeSharedInteriorSubpaths"),e(Je,"segmentsIntersect"),e(Ke,"validateSwimlanesLayout"),e(Ze,"postProcessSwimlaneLayout"),e(Qe,"normalizeGraph"),e(tr,"incoming"),e(er,"buildSuccessorMap"),e(rr,"buildSortedSuccessorMap"),e(nr,"buildInDegreeMap"),e(or,"sortedZeroInDegreeNodes"),e(ar,"buildPredecessorSuccessorMaps"),e(sr,"buildLayersFromRanks"),e(ir,"topoSortIfAcyclic"),e(dr,"buildLayerIndex"),e(lr,"countInversions"),e(fr,"removeCycles_DFS"),e(cr,"buildTopLaneMap"),e(hr,"createTopLaneResolver"),e(gr,"buildTopLaneOrder"),e(ur,"resolveTopLaneOrder");var pr={GRAVITY_ITERATIONS:8,MAX_CROSSING_OPTIMIZATION_PASSES:4,DEFAULT_COMPACT_SINGLE_INPUT:!0},xr={DEFAULT_LAYER_GAP:100,DEFAULT_NODE_GAP:40};function mr(t,r){t=Qe(t);var n=r?.laneOf??(()=>null),o=r?.rankHint,a=ar(t).preds;for(const t of a.values())t.sort(((t,e)=>t.localeCompare(e)));var s,i;r=ir(t)??[...t.nodes].sort(((t,e)=>t.localeCompare(e)));const d=new Map;for([s,i]of r.entries())d.set(i,s);const l=new Map,f=new Map;for(const e of t.nodes)f.set(e,[]);for(const t of r){var c=(a.get(t)??[]).filter((t=>l.has(t)));0<c.length?(c=yr(t,c,{laneOf:n,rankHint:o,topoIndex:d}),l.set(t,c),f.get(c).push(t)):l.has(t)||l.set(t,null)}for(const e of t.nodes)l.has(e)||l.set(e,null);var h=new Set;for(const e of t.nodes)null===(l.get(e)??null)&&h.add(e);var g,u,p=[...h].sort(((t,e)=>{var r=d.get(t)??0,n=d.get(e)??0;return r===n?t.localeCompare(e):r-n})),x=vr(t),m=new Map;for([g,u]of x.entries())m.set(g,[...u].sort(((t,e)=>t.localeCompare(e))));x=br(m);var y=Mr(m),v=new Map;for(const e of t.nodes)v.set(e,[]);for(const t of y)for(const e of t.nodes){var b=v.get(e);b?b.push(t.id):v.set(e,[t.id])}const M=[],I=[],S=new Set,w=e((t=>{if(!S.has(t)){S.add(t),M.push(t);for(const e of f.get(t)??[])w(e);I.push(t)}}),"walk");for(const t of p)w(t);for(const t of r)w(t);return{parent:l,children:f,roots:p,componentOf:x,blocks:y,nodeBlocks:v,adjacency:m,preorder:M,postorder:I,topologicalOrder:r}}function yr(t,e,r){const n=r.laneOf(t);return[...e].sort(((t,e)=>{var o=r.laneOf(t),a=r.laneOf(e);return(o=null!=o&&o===n)!=(null!=a&&a===n)?o?-1:1:(a=r.rankHint?.[t],o=r.rankHint?.[e],null!=a&&null!=o&&a!==o||(o=r.topoIndex.get(t)??0)!==(a=r.topoIndex.get(e)??0)?o-a:t.localeCompare(e))}))[0]}function vr(t){var e=new Map;for(const r of t.nodes)e.set(r,new Set);for(const r of t.edges)e.get(r.src).add(r.dst),e.get(r.dst).add(r.src);return e}function br(t){var e=new Map;let r=0;for(const a of t.keys())if(!e.has(a)){for(var n=[a];0<n.length;){var o=n.pop();if(!e.has(o)){e.set(o,r);for(const r of t.get(o)??[])e.has(r)||n.push(r)}}r++}return e}function Mr(t){const r=new Map,n=new Map,o=[],a=[];let s=0;const i=e(((e,d)=>{r.set(e,++s),n.set(e,s);for(const l of t.get(e)??[])l!==d&&(r.has(l)?(r.get(l)??0)<(r.get(e)??0)&&(o.push([e,l]),n.set(e,Math.min(n.get(e)??s,r.get(l)??s))):(o.push([e,l]),i(l,e),n.set(e,Math.min(n.get(e)??s,n.get(l)??s)),(n.get(l)??0)>=(r.get(e)??0)&&a.push(Ir(e,l,o,a.length))))}),"visit");for(const e of t.keys())r.has(e)||i(e,null);return a}function Ir(t,e,r,n){for(var o=[],a=new Set;0<r.length;){var s=r.pop();if(o.push(s),a.add(s[0]),a.add(s[1]),s[0]===t&&s[1]===e||s[0]===e&&s[1]===t)break}return{id:n,edges:o,nodes:[...a]}}function Sr(t,r,n){var o,a,s=[...t.nodes];const i=new Map;for([o,a]of s.entries())i.set(a,o);const d=s.length;var l=new Array(d).fill(-1);const f=new Array(d).fill(0);var c,h=[],g=new Set;for(const t of s){var u=n.parent.get(t)??null,p=i.get(t);null!=p&&null==u&&(l[p]=-1,f[p]=0,g.has(t)||(g.add(t),h.push(t)))}for(;0<h.length;){var x,m=h.shift(),y=i.get(m);if(null!=y)for(const t of n.children.get(m)??[])g.has(t)||null!=(x=i.get(t))&&(l[x]=y,f[x]=f[y]+1,g.add(t),h.push(t))}for(const t of s)g.has(t)||null!=(c=i.get(t))&&(l[c]=-1,f[c]=0,g.add(t));const v=Math.max(1,Math.ceil(Math.log2(Math.max(1,d)))+1),b=Array.from({length:v},(()=>new Array(d).fill(-1)));for(let t=0;t<d;t++)b[0][t]=l[t];for(let t=1;t<v;t++)for(let e=0;e<d;e++){var M=b[t-1][e];b[t][e]=-1===M?-1:b[t-1][M]}var I=e(((t,e)=>{if(-1===t||-1===e)return-1;f[t]<f[e]&&([t,e]=[e,t]);var r=f[t]-f[e];for(let e=0;e<v;e++)if(r>>e&1&&-1===(t=b[e][t]))return-1;if(t===e)return t;for(let r=v-1;0<=r;r--){var n=b[r][t],o=b[r][e];-1!==n&&-1!==o&&n!==o&&(t=n,e=o)}return b[0][t]}),"lcaIndex");const S=Array.from({length:d},(()=>new Map));for(const e of t.edges){let t=e.src,n=e.dst,o=r[t],a=r[n];if(null!=o&&null!=a&&(o>a&&([t,n]=[n,t],[o,a]=[a,o]),null!=o&&null!=a&&o!==a)){var w=i.get(t),L=i.get(n);if(null!=w&&null!=L&&-1!==(w=I(w,L))){var C=S[w];for(let t=o;t<a;t++)C.set(t,(C.get(t)??0)+1)}}}const T=new Map,O=e(((t,e)=>{if(0!==e.size)for(var[r,n]of e)t.set(r,(t.get(r)??0)+n)}),"mergeInto"),k=new Set,N=e((t=>{var e=i.get(t),o=(e=(k.add(t),null==e?void 0:S[e]))?new Map(e):new Map;for(const e of n.children.get(t)??[]){var a=N(e),s=r[t];if(null!=s){let n=T.get(t),o=(n||(n=new Map,T.set(t,n)),a.get(s)??0);var d=r[e];null!=d&&s<d&&(o+=1),n.set(e,o)}O(o,a)}return o}),"dfs");for(const t of n.roots)k.has(t)||N(t);for(const t of s)k.has(t)||N(t);return T}function wr(t,r,n){const o=new Map,a=e((t=>{let e=n[t]??0;var s=[...r.get(t)??[]];s.sort(Lr(n));for(const t of s){a(t);var i=o.get(t);null!=i&&(e=Math.min(e,i))}o.set(t,e)}),"annotate");for(const e of t)a(e);return o}function Lr(t){return(e,r)=>{var n=t[e]??0,o=t[r]??0;return n===o?e.localeCompare(r):n-o}}function Cr(t,r,n,o){let a=0;for(const t of r){var s=n[t]??0;s>a&&(a=s)}const i=Array.from({length:a+1},(()=>[])),d=new Set,l=e((t=>{if(!d.has(t)){d.add(t);var e=n[t]??0;i[e]||(i[e]=[]),i[e].push(t);for(const e of o(t))l(e)}}),"emit");for(const e of t)l(e);for(const t of r){var f;d.has(t)||(f=n[t]??0,i[f]||(i[f]=[]),i[f].push(t),d.add(t))}return i}function Tr(t){var e=[];for(const o of t){var r=new Set,n=[];for(const t of o)r.has(t)||(r.add(t),n.push(t));e.push(n)}return e}function Or(t,e,r,n){return o=>{var a=t.get(o)??[];if(0===a.length)return[];const s=e[o]??0;var i=[],d=[];const l=r.get(o);for(const t of a){var f=n.get(t)??s;f>s?i.push({child:t,min:f}):d.push(t)}return i.sort(((t,e)=>t.min===e.min?t.child.localeCompare(e.child):t.min-e.min)),d.sort(((t,e)=>{var r=l?.get(t)??0,o=l?.get(e)??0;return r!==o||(r=n.get(t)??s)!==(o=n.get(e)??s)?r-o:t.localeCompare(e)})),[...i.map((t=>t.child)),...d]}}function kr(t,e,r){r=mr(t,{rankHint:e,laneOf:r});var{children:n,roots:o}=r;for(const e of t.nodes)n.has(e)||n.set(e,[]);return r=Or(n,e,r=Sr(t,e,r),wr(o=[...o].sort(Lr(e)),n,e)),Tr(Cr(o,t.nodes,e,r))}function Nr(t,e,r){var n=new Set(t),o=new Set(e),a=dr(e),s=[];for(const t of r)n.has(t.src)&&o.has(t.dst)&&s.push(a.get(t.dst));return lr(s)}function Rr(t,e,r){var n=[];for(const t of e){var o=r[t.src],a=r[t.dst];if(null!=o&&null!=a&&o!==a){let e=t.src,r=t.dst,s=o,i=a;a<o&&(e=t.dst,r=t.src,s=a,i=o);for(let o=s;o<i;o++)n.push({id:t.id+"@"+o,src:e,dst:r,ref:t.ref})}}let s=0;for(let e=0;e+1<t.length;e++)s+=Nr(t[e],t[e+1],n);return s}function Er(t,e){const r={...e};var n=ar(t).preds,o=hr(t);let a=Rr(kr(t,r,o),t.edges,r);var s=pr.MAX_CROSSING_OPTIMIZATION_PASSES;for(let e=0;e<s;e++){let e=!1;for(const s of[...t.nodes].sort(((t,e)=>(r[e]??0)-(r[t]??0)))){var i,d=r[s]??0;if(0!==d){let l=0;for(const t of n.get(s)??[])l=Math.max(l,(r[t]??0)+1);l>=d||(r[s]=l,(i=Rr(kr(t,r,o),t.edges,r))<a?(a=i,e=!0):r[s]=d)}}if(!e)break}return r}function Br(t,e){var r=hr(t);for(const d of[...t.nodes].sort(((t,r)=>(e[t]??0)-(e[r]??0)||t.localeCompare(r)))){var n,o=r(d);if(o)if(0!==(s=t.edges.filter((t=>t.src===d))).length){let l=!1,f=0;for(const t of s){var a=r(t.dst);null==a||a===o?l=!0:f++}if(0!==f&&!l){let a=0,l=!1;for(const e of t.edges)e.dst===d&&(n=r(e.src))&&(n===o?l=!0:a++);if(!(0<a)&&l){var s,i=(s=e[d]??0)+f;let r=0;for(const n of t.edges)n.dst===d&&(r=Math.max(r,(e[n.src]??0)+1));(i=Math.max(s,r,i))!==s&&(e[d]=i)}}}}}function Fr(t,e){var r=Qe(t),n=(t=ir(r)??[...r.nodes].sort(),e?.compactSingleInput??!1);const o=hr(r);let a=Object.create(null);for(const f of t){var s=tr(r,f);s=e?.ignoreCrossLaneEdges?s.filter((t=>{t=o(t.src);var e=o(f);return!t||!e||t===e})):s;if(0===s.length)a[f]=0;else if(n&&1===s.length){var i=s[0].src,d=o(i),l=o(f);a[f]=d!==l?a[i]??0:(a[i]??0)+1}else{let t=-1/0;for(const e of s)t=Math.max(t,(a[e.src]??0)+1);a[f]=t===-1/0?0:t}}return e?.optimizeRanksByCrossings&&(a=Er(r,a)),e?.ignoreCrossLaneEdges&&Br(r,a),{layers:kr(r,a,o),rankOf:a,dummy:new Set}}function Ar(t,r){const n={...Fr(t=Qe(t),{compactSingleInput:r?.compactSingleInput,ignoreCrossLaneEdges:r?.ignoreCrossLaneEdges,optimizeRanksByCrossings:r?.optimizeRanksByCrossings}).rankOf},o=hr(t),{preds:a,succs:s}=ar(t,(t=>{if(r?.ignoreCrossLaneEdges){var e=o(t.src);t=o(t.dst);if(e&&t&&e!==t)return!1}return!0}));var i=ir(t)??[...t.nodes],d=[...i].reverse();const l=e(((t,e)=>{let r=0;for(const e of a.get(t)??[])r=Math.max(r,(n[e]??0)+1);let o=Number.POSITIVE_INFINITY;return 0<(t=s.get(t)??[]).length&&(o=Math.min(...t.map((t=>(n[t]??0)-1)))),Number.isFinite(o)||(o=Math.max(r,e)),Math.min(Math.max(e,r),o)}),"clampFeasible");var f=pr.GRAVITY_ITERATIONS,c=e((t=>{let e=!1;for(const i of t){var r=a.get(i)??[],o=s.get(i)??[];0===r.length&&0===o.length||(r=0<r.length?r.reduce(((t,e)=>t+(n[e]??0)+1),0)/r.length:n[i]??0,o=0<o.length?o.reduce(((t,e)=>t+(n[e]??0)-1),0)/o.length:n[i]??0,r=Math.round((r+o)/2),(o=l(i,r))!==n[i]&&(n[i]=o,e=!0))}return e}),"relaxOrder");for(let t=0;t<f;t++){var h=c(i),g=c(d);if(!h&&!g)break}for(const t of i){let e=0;for(const r of a.get(t)??[])e=Math.max(e,(n[r]??0)+1);(n[t]??0)<e&&(n[t]=e)}for(const t of d){var u=s.get(t)??[];0<u.length&&(u=Math.min(...u.map((t=>(n[t]??0)-1))),(n[t]??0)>u)&&(n[t]=u)}return{layers:sr(t,i,n),rankOf:n,dummy:new Set}}function Pr(t){var e=nr(t),r=rr(t);let n=or(e);for(var o=[];0<n.length;){var a=[];for(const t of n){o.push(t);for(const n of r.get(t)??[])e.set(n,(e.get(n)??0)-1),0===(e.get(n)??0)&&a.push(n)}n=a.sort(((t,e)=>t.localeCompare(e)))}return o.length===t.nodes.length?o:null}function Yr(t,r){var n=Qe(t);t="LR"===r?.direction?Pr(n)??[...n.nodes].sort():ir(n)??[...n.nodes].sort();const o=hr(n),a=e((t=>o(t)??t),"laneOf");var s=Object.create(null),i=new Map,d=e(((t,e)=>(r?.ignoreCrossLaneEdges??1)&&a(t)!==a(e)?0:1),"edgeWeight");for(const e of t){var l=n.nodeById.get(e);if(!l?.isGroup){let t=0;if(0<(l=tr(n,e)).length)for(const r of l){var f=r.src,c=s[f]??0;t=Math.max(t,c+d(f,e))}l=a(e);var h=i.get(l)??0;h=Math.max(t,h);s[e]=h,i.set(l,h+1)}}return{layers:sr(n,t,s,{skipGroups:!0}),rankOf:s,dummy:new Set}}function Xr(t,r){const n=Qe(r),o=t.rankOf,a=t.layers.map((t=>[...t])),s=new Set(t.dummy?[...t.dummy]:[]);let i=0;const d=new Map(n.nodeById);var l=e((t=>{var e="placeholder-"+i++,r={id:e,isGroup:!1,isDummy:!0,width:0,height:0};for(d.set(e,r),s.add(e);a.length<=t;)a.push([]);return a[t].push(e),o[e]=t,e}),"addDummyAt"),f=[];for(const t of[...n.edges].sort(((t,e)=>t.id===e.id?t.src===e.src?t.dst.localeCompare(e.dst):t.src.localeCompare(e.src):t.id.localeCompare(e.id)))){var c=o[t.src]??0,h=o[t.dst]??0;if(h-c<=1)f.push(t);else{let e=t.src;for(let r=c+1,n=0;r<h;r++,n++){var g=l(r);f.push({id:t.id+"#"+n,src:e,dst:g,weight:t.weight,ref:t.ref}),e=g}f.push({id:t.id+"#"+Math.max(h-c-2+1,0),src:e,dst:t.dst,weight:t.weight,ref:t.ref})}}return r={nodes:[...n.nodes,...[...s].filter((t=>!n.nodes.includes(t)))],edges:f,layout:n.layout,nodeById:d},{layering:{layers:a,rankOf:o,dummy:s},graphWithDummies:r}}function zr(t){var e=t.length;return 0===e?Number.POSITIVE_INFINITY:(t=[...t].sort(((t,e)=>t-e)),e%2==1?t[(e-1)/2]:.5*(t[e/2-1]+t[e/2]))}function Gr(t){return 0===t.length?Number.POSITIVE_INFINITY:t.reduce(((t,e)=>t+e),0)/t.length}function Dr(t,e,r,n){var o=new Map;for(const e of t)o.set(e,[]);for(const t of r)"down"===n?e.has(t.src)&&o.has(t.dst)&&o.get(t.dst).push(e.get(t.src)):e.has(t.dst)&&o.has(t.src)&&o.get(t.src).push(e.get(t.dst));return o}function $r(t,e,r){var n=r.get(t)??0;return n!==(r=r.get(e)??0)?n-r:t.localeCompare(e)}function _r(t,e,r){var n=new Set(t),o=new Set(e),a=dr(t),s=dr(e),i=[];for(const t of r)n.has(t.src)&&o.has(t.dst)&&i.push({u:a.get(t.src),v:s.get(t.dst)});return i.sort(((t,e)=>t.u===e.u?t.v-e.v:t.u-e.u)),lr(i.map((t=>t.v)))}function Hr(t,e,r){return[...t].sort(((t,n)=>{var o=zr(e.get(t)??[]),a=zr(e.get(n)??[]);return o===a?$r(t,n,r):isFinite(o)?isFinite(a)?o-a:-1:1}))}function jr(t,e,r,n,o,a){t=dr(t);var s=dr(e),i=Dr(e,t,r,n);if(!o||!a||0===a.length)return Hr(e,i,s);var d=new Map;for(const t of e){var l=o(t),f=d.get(l)??[];f.push(t),d.set(l,f)}var c=[];for(const t of a){var h=d.get(t);h&&0!==h.length&&(h=Hr(h,i,s),c.push(...h))}if((t=d.get(null))&&0<t.length)for(const e of Hr(t,i,s)){var g=Gr(i.get(e)??[]);let t=c.length;if(isFinite(g))for(var[u,p]of c.entries())if(g<Gr(i.get(p)??[])){t=u;break}c.splice(t,0,e)}return c}function Vr(t,r,n,o,a){var s=[...r];const i=new Set(t),d=new Set(r),l=o?new Set(o):null,f=n.filter((t=>i.has(t.src)&&d.has(t.dst))),c=l?n.filter((t=>d.has(t.src)&&l.has(t.dst))):void 0;var h=e((e=>{let r=_r(t,e,f);return c&&o&&(r+=_r(e,o,c)),r}),"crossingScore"),g=a?new Map:null;if(a&&g)for(const t of r)g.set(t,a(t));let u=!0,p=h(s);for(;u;){u=!1;for(let t=0;t+1<s.length;t++)if(!g||g.get(s[t])===g.get(s[t+1])){var x=p,m=([s[t],s[t+1]]=[s[t+1],s[t]],h(s));m<x?(p=m,u=!0):[s[t],s[t+1]]=[s[t+1],s[t]]}}return s}function Wr(t,e,r){var n=t.layers.map((t=>[...t])),o=e.edges,a=hr(e),s=ur(e,r?.laneOrder);for(let t=0;t<3;t++){for(let t=1;t<n.length;t++)n[t]=jr(n[t-1],n[t],o,"down",a,s),n[t]=Vr(n[t-1],n[t],o,n[t+1],a);for(let t=n.length-2;0<=t;t--)n[t]=jr(n[t+1],n[t],o,"up",a,s),n[t]=Vr(n[t+1],n[t],o,n[t-1],a)}return{layers:n}}function Ur(t,r,n){var o=n?.layerGap??xr.DEFAULT_LAYER_GAP,a=n?.nodeGap??xr.DEFAULT_NODE_GAP,s=n?.laneGap??2*a,i="LR"===(i=n?.direction??"TB")||"RL"===i,d=t.layers,l=Object.create(null),f=Object.create(null);const c=e((t=>r.nodeById.get(t)),"getNode"),h=e((t=>c(t)?.width??0),"getWidth"),g=e((t=>c(t)?.height??0),"getHeight");var u=hr(r),p=(t=ur(r,n?.laneOrder),d.map((t=>t.reduce(((t,e)=>Math.max(t,g(e))),0)))),x=[];if(i)for(let t=0;t+1<d.length;t++){var m=d[t].reduce(((t,e)=>Math.max(t,h(e))),0),y=d[t+1].reduce(((t,e)=>Math.max(t,h(e))),0),v=p[t],b=p[t+1];m=Math.max(0,(m+y)/2-(v/2+b/2)-o);x.push(m)}const M=new Set;for(const t of d)for(const e of t)M.add(u(e));var I=M.has(null),S=(n=t.filter((t=>M.has(t))),[...I?[null]:[],...n]);const w=Object.create(null);for(const t of n)w[t]=0;I&&(w.null=0);for(const t of d){var L,C,T,O=Object.create(null),k=[];for(const e of t){var N=u(e);(null===N?k:O[N]||=[]).push(e)}for([L,C]of Object.entries(O)){var R=C.reduce(((t,e)=>t+h(e)),0)+a*Math.max(0,C.length-1);w[L]=Math.max(w[L]??0,R)}I&&k.length&&(T=k.reduce(((t,e)=>t+h(e)),0)+a*Math.max(0,k.length-1),w.null=Math.max(w.null??0,T))}var E,B,F=new Map;{var A=S.map((t=>(null===t?w.null:w[t])??0));let t=-(A.reduce(((t,e)=>t+e),0)+s*Math.max(0,S.length-1))/2;for(let e=0;e<S.length;e++){var P=S[e],Y=A[e]??0,X=t+Y/2;F.set(P,X),t+=Y,e<S.length-1&&(t+=s)}}let z=0;for([E,B]of d.entries()){var G=p[E]??0,D=new Map;for(const t of B){var $=u(t),_=D.get($)??[];_.push(t),D.set($,_)}for(const t of S){var H=D.get(t)??[];if(0!==H.length){var j=F.get(t);if(1===H.length){var V=H[0];l[V]=j,f[V]=z+G/2}else{var W,U,q=H.map((t=>h(t)));let t=j-(q.reduce(((t,e)=>t+e),0)+a*(H.length-1))/2;for([W,U]of H.entries()){var J=q[W];l[U]=t+J/2,f[U]=z+G/2,t+=J+a}}}}z+=G+o+(x[E]??0)}var K,Z=new Map;for(const t of r.edges){var Q=t.ref.id;Z.has(Q)||Z.set(Q,[]),Z.get(Q).push(t)}for([,K]of Z)if(0!==K.length){var tt=K[0].ref,et=tt.start,rt=tt.end;if(null!=et&&null!=rt){var nt=Math.round(((l[et]??0)+(l[rt]??0))/2),ot=new Set;for(const t of K)ot.add(t.src),ot.add(t.dst);for(const t of ot)t!==et&&t!==rt&&r.nodeById.get(t)?.isDummy&&(l[t]=nt)}}return{x:l,y:f}}e(mr,"buildDrivingTree"),e(yr,"chooseParent"),e(vr,"buildAdjacency"),e(br,"assignComponents"),e(Mr,"computeBlocks"),e(Ir,"popBlock"),e(Sr,"computeSubtreeCrossCounts"),e(wr,"annotateMinimumLayers"),e(Lr,"compareByRankThenId"),e(Cr,"emitNodesInTreeOrder"),e(Tr,"deduplicateLayers"),e(Or,"createChildOrderer"),e(kr,"buildMultitreeLayerOrder"),e(Nr,"countCrossingsBetweenAdjacent"),e(Rr,"totalCrossings"),e(Er,"optimizeRanksByCrossings"),e(Br,"adjustCrossLaneSources"),e(Fr,"assignLayers_LongestPath"),e(Ar,"assignLayers_Gravity"),e(Pr,"topoSortByGenerationIfAcyclic"),e(Yr,"assignLayers_LaneAwareCompact"),e(Xr,"makeProperLayering"),e(zr,"median"),e(Gr,"barycenter"),e(Dr,"neighborPositionsFor"),e($r,"currentOrderTieBreak"),e(_r,"countCrossingsBetweenAdjacent"),e(Hr,"sortByHeuristic"),e(jr,"reorderLayer"),e(Vr,"transposeImprove"),e(Wr,"orderLayers"),e(Ur,"assignCoordinates");var qr=8;function Jr(t){let e=2166136261;for(let r=0;r<t.length;r++)e^=t.charCodeAt(r),e=Math.imul(e,16777619);return e>>>0}function Kr(t){let e=t>>>0;return()=>{var t=e+=1831565813;t=Math.imul(t^t>>>15,1|t);return(((t^=t+Math.imul(t^t>>>7,61|t))^t>>>14)>>>0)/4294967296}}function Zr(t,e){var r=[...t],n=Kr(e);for(let t=r.length-1;0<t;t--){var o=Math.floor(n()*(t+1));[r[t],r[o]]=[r[o],r[t]]}return r}function Qr(t,e){let r=0;for(var[n,o]of t.entries())r+=Math.abs(n-(e.get(o)??n));return r}function tn(t,e){var r,n,o,a,s,i=new Map;for([r,n]of t.entries())i.set(n,r);let d=0;for({a:o,b:a,weight:s}of e){var l=i.get(o),f=i.get(a);null!=l&&null!=f&&(d+=s*Math.abs(l-f))}return d}function en(t){var e=gr(t);if(e.length<2)return[];var r,n,o,a,s=new Map(e.map(((t,e)=>[t,e]))),i=hr(t),d=new Map;for(const e of t.layout.edges??[])e.isLayoutOnly||(a="string"==typeof e.start?e.start:void 0,o="string"==typeof e.end?e.end:void 0,a&&o&&t.nodeById.has(a)&&t.nodeById.has(o)&&(a=i(a),o=i(o),a)&&o&&a!==o&&(r=s.get(a),n=s.get(o),null!=r)&&null!=n&&([r,n]=r<=n?[a,o]:[o,a],(a=d.get(o=r+"\0"+n))?a.weight++:d.set(o,{a:r,b:n,weight:1})));return[...d.values()]}function rn(t,e,r){var n=[...t];let o=tn(n,e),a=!0,s=0;for(var i=Math.max(1,n.length);a&&s<i;){a=!1,s++;for(let t=0;t+1<n.length;t++){[n[t],n[t+1]]=[n[t+1],n[t]];var d=tn(n,e);d<o?(o=d,a=!0):[n[t],n[t+1]]=[n[t+1],n[t]]}}return{order:n,cost:o,sourceDistance:Qr(n,r)}}function nn(t,e){return t.cost!==e.cost?t.cost<e.cost:t.sourceDistance<e.sourceDistance}function on(t,e,r){return e=[...e].sort(((t,e)=>t.a===e.a?t.b.localeCompare(e.b):t.a.localeCompare(e.a))).map((({a:t,b:e,weight:r})=>t+`:${e}:`+r)).join("|"),Jr(t.join("|")+`#${e}#`+r)}function an(t,e={}){var r=gr(t);if(r.length<2)return r;var n=en(t);if(0===n.length)return r;var o=new Map(r.map(((t,e)=>[t,e])));let a=rn(r,n,o);var s=Math.max(0,e.restarts??qr);for(let t=0;t<s;t++){var i=rn(Zr(r,on(r,n,t)),n,o);nn(i,a)&&(a=i)}return a.order}function sn(t,e){var r=e?.ignoreCrossLaneEdges??!0,n=e?.optimizeRanksByCrossings??!0,o=(t=Qe(t),e?.automaticLaneOrdering?an(t,{restarts:qr}):void 0),a=(t=fr(t)).acyclic,{layering:r,graphWithDummies:n}=Xr(r?Yr(a,{compactSingleInput:e?.compactSingleInput??pr.DEFAULT_COMPACT_SINGLE_INPUT,ignoreCrossLaneEdges:!0,direction:e?.direction}):Ar(a,{compactSingleInput:e?.compactSingleInput??pr.DEFAULT_COMPACT_SINGLE_INPUT,ignoreCrossLaneEdges:!1,optimizeRanksByCrossings:n}),a),s=Wr(r,n,{laneOrder:o});n=Ur(s,n,{layerGap:e?.layerGap,nodeGap:e?.nodeGap,direction:e?.direction,laneOrder:o});return{acyclic:a,reversed:t.reversed,layering:r,ordered:s,coordinates:n}}e(Jr,"hashString"),e(Kr,"mulberry32"),e(Zr,"deterministicShuffle"),e(Qr,"sourceDistance"),e(tn,"laneArrangementCost"),e(en,"buildWeightedLaneEdges"),e(rn,"greedySwitch"),e(nn,"isBetterCandidate"),e(on,"seedForRestart"),e(an,"optimizeTopLaneOrder"),e(sn,"sugiyamaLayout");var dn=1e-6,ln=8,fn=15,cn=15,hn=25,gn=20,un=10;function pn(t,e,r){var n=t.x??0,o=(t=t.y??0,n=e.x-n,e=e.y-t,t=Math.abs(n),Math.abs(e));return t<dn&&o<dn?r:dn<o&&t<=3*o?0<e?"bottom":"top":dn<t?0<n?"right":"left":r}function xn(t,e){return Math.abs(t.to-e.from)<dn||Math.abs(t.to-e.to)<dn?t.to:t.from}function mn(t,e){return"vertical"===t.orient?{x:t.coord,y:e}:{x:e,y:t.coord}}function yn(t,r){const n=t.nodes??[];var o=t.edges??[];const a=[];for(const t of o)t.isLayoutOnly||a.push({...t,__originalEdge:t});const s=new Map,i=new Map,d=[],l="LR"===r;for(const t of n)s.set(t.id,t);for(const t of n.filter((t=>t.isGroup&&!t.parentId))){const r={id:t.id},o=e((t=>{i.set(t.id,r),n.filter((e=>e.parentId===t.id)).forEach(o)}),"assignLane");o(t)}const f=n.filter((t=>!t.isGroup&&!t.isEdgeLabel)).map((t=>{var e=t.width??10,r=t.height??10,n=t.x??0,o=t.y??0,a=ln;return{nodeId:t.id,minX:n-e/2-a,maxX:n+e/2+a,minY:o-r/2-a,maxY:o+r/2+a,visualXHalfExtent:l?r/2+a:e/2+a}}));var c=e(((t,e,r,n)=>{let o=d.find((r=>r.orientation===t&&Math.abs(r.coord-e)<1));return o||(o={id:`pipe-${t}-`+e.toFixed(0),orientation:t,coord:e,spanMin:r,spanMax:n,tracks:[]},d.push(o)),o.spanMin=Math.min(o.spanMin,r),o.spanMax=Math.max(o.spanMax,n),o}),"getOrAddPipe");const h=e(((t,e)=>{var r=t.width??10,n=t.height??10,o=t.x??0,a=t.y??0;switch(e){case"top":return{x:o,y:a-n/2};case"bottom":return{x:o,y:a+n/2};case"left":return{x:o-r/2,y:a};case"right":return{x:o+r/2,y:a}}}),"portForSide"),g=e(((t,e,r)=>h(t,pn(t,e,r?"bottom":"top"))),"getOrthogonalPort"),u=[],p=[],x=new Set;var m=e(((t,e,r)=>{if(0===u.length)return 0;var n=Math.abs(e.y-r.y)<dn,o=Math.abs(e.x-r.x)<dn;if(!n&&!o)return 0;let a=0;if(n){var s=e.y,i=Math.min(e.x,r.x)-dn,d=Math.max(e.x,r.x)+dn;if(d<=i)return 0;for(const e of u)e.edgeIndex===t||"vertical"!==e.orientation||e.pipe.coord<i||e.pipe.coord>d||e.from-dn<=s&&e.to+dn>=s&&(a+=1e3)}else if(o){var l=e.x,f=Math.min(e.y,r.y)-dn,c=Math.max(e.y,r.y)+dn;if(c<=f)return 0;for(const e of u)e.edgeIndex===t||"horizontal"!==e.orientation||e.pipe.coord<f||e.pipe.coord>c||e.from-dn<=l&&e.to+dn>=l&&(a+=1e3)}return a}),"crossingPenalty");o=a.map(((t,e)=>{var r,n,o;return t.start&&t.end?(r=s.get(t.start),n=s.get(t.end),o=i.get(t.start),t=i.get(t.end),{idx:e,crossLane:o&&t&&o.id!==t.id?1:0,dx:r&&n?Math.abs((n.x??0)-(r.x??0)):0,dy:r&&n?Math.abs((n.y??0)-(r.y??0)):0}):{idx:e,crossLane:0,dx:0,dy:0}})).sort(((t,e)=>{var r,n;return t.crossLane!==e.crossLane?e.crossLane-t.crossLane:(r=t.dx+t.dy,n=e.dx+e.dy,1<Math.abs(r-n)?r-n:t.idx-e.idx)})).map((t=>t.idx));const y=e(((t,e,r,n)=>{const o=Math.min(t.x,e.x),a=Math.max(t.x,e.x),s=Math.min(t.y,e.y),i=Math.max(t.y,e.y);return!!f.find((d=>!(r&&d.nodeId===r||n&&d.nodeId===n||!(Math.abs(t.x-e.x)>dn?d.minY<t.y&&d.maxY>t.y&&d.maxX>o&&d.minX<a:d.minX<t.x&&d.maxX>t.x&&d.maxY>s&&d.minY<i))))}),"isSegmentBlocked"),v=new Map;var b,M,I,S,w,L,C=new Map;for(const t of a)t.start&&t.end&&t.start!==t.end&&(C.set(t.start,(C.get(t.start)??0)+1),C.set(t.end,(C.get(t.end)??0)+1));const T=e(((t,e)=>pn(t,e,"bottom")),"determineSide"),O=new Map;for([b,M]of a.entries())M.start&&M.end&&M.start!==M.end&&(M.points&&0<M.points.length||(I=s.get(M.start),S=s.get(M.end),I&&S&&(w=(S.x??0)-(I.x??0),L=(S.y??0)-(I.y??0),O.set(b,{edgeIdx:b,srcId:M.start,dstId:M.end,srcSide:T(I,{x:S.x??0,y:S.y??0}),dstSide:T(S,{x:I.x??0,y:I.y??0}),absDx:Math.abs(w),absDy:Math.abs(L),dxSign:Math.sign(w),dySign:Math.sign(L)}))));const k=e((t=>"top"===t.srcSide||"bottom"===t.srcSide?0===t.absDx?1/0:t.absDy/t.absDx:0===t.absDy?1/0:t.absDx/t.absDy),"preferenceStrength");var N=e((t=>"top"===t.srcSide||"bottom"===t.srcSide?0<=t.dxSign?"right":"left":0<=t.dySign?"bottom":"top"),"secondarySide"),R=new Map;for(const t of O.values()){var E=t.srcId+":"+t.srcSide;R.has(E)||R.set(E,[]),R.get(E).push(t)}var B=new Map,F=e(((t,e)=>t+":"+e),"loadKey");for(const t of O.values())B.set(F(t.srcId,t.srcSide),(B.get(F(t.srcId,t.srcSide))??0)+1),B.set(F(t.dstId,t.dstSide),(B.get(F(t.dstId,t.dstSide))??0)+1);for(const t of R.values())if(!(t.length<2)){t.sort(((t,e)=>{var r=k(t),n=k(e);return 1e-9<Math.abs(r-n)?n-r:t.edgeIdx-e.edgeIdx}));for(let e=1;e<t.length;e++){var A=t[e],P=N(A),Y=B.get(F(A.srcId,A.srcSide))??0,X=B.get(F(A.srcId,P))??0;Y<=X||(B.set(F(A.srcId,A.srcSide),Y-1),B.set(F(A.srcId,P),X+1),A.srcSide=P)}}var z,G,D=e((t=>(t=t?.shape,"question"===t||"diamond"===t)),"isDiamondNode"),$=new Map;for(const t of O.values())$.has(t.dstId)||$.set(t.dstId,new Set),$.get(t.dstId).add(t.dstSide);for(const t of O.values())D(s.get(t.srcId))&&(G=$.get(t.srcId))?.has(t.srcSide)&&(z=N(t),G.has(z)||0<(B.get(F(t.srcId,z))??0)||(G=B.get(F(t.srcId,t.srcSide))??0,B.set(F(t.srcId,t.srcSide),Math.max(0,G-1)),B.set(F(t.srcId,z),1),t.srcSide=z));for(const t of O.values()){var{edgeIdx:_,srcId:H,dstId:j,srcSide:V,dstSide:W}=t,U=s.get(H),q=s.get(j),V=(H=H+`:${V}:src`,"top"===V||"bottom"===V?q.x??0:q.y??0),H=(q=(v.has(H)||v.set(H,[]),v.get(H).push({edgeIdx:_,oppositeCoord:V}),j+`:${W}:dst`),"top"===W||"bottom"===W?U.x??0:U.y??0);v.has(q)||v.set(q,[]),v.get(q).push({edgeIdx:_,oppositeCoord:H})}const J=new Map;var K,Z;for([K,Z]of v)if(!(Z.length<2)){Z.sort(((t,e)=>t.oppositeCoord-e.oppositeCoord));var Q,tt=(Q=K.split(":")).slice(0,-2).join(":"),et=Q[Q.length-2],rt=Q[Q.length-1];if(Q=s.get(tt)){tt="left"===et||"right"===et?Q.height??10:Q.width??10,et=Q.shape;var nt,ot,at=Math.min(20,Math.max(8,("question"===et||"diamond"===et?.3*tt:tt)/(Z.length+1))),st=-at*(Z.length-1)/2;for([nt,ot]of Z.entries()){var it=st+nt*at,dt=ot.edgeIdx+":"+rt;J.set(dt,it)}}}const lt=e((t=>Boolean(a[t]?.labelNodeId)),"edgeHasLabelNode");var ft=e(((t,e)=>!!t&&((v.get(t+`:${e}:src`)??[]).some((({edgeIdx:t})=>lt(t)))||(v.get(t+`:${e}:dst`)??[]).some((({edgeIdx:t})=>lt(t))))),"faceHasLabelNode");const ct=e(((t,e,r)=>"top"===e||"bottom"===e?{x:t.x+r,y:t.y}:{x:t.x,y:t.y+r}),"applyPortOffset");var ht=e(((t,e,r)=>{var n=O.get(t),o={x:r.x??0,y:r.y??0},a={x:e.x??0,y:e.y??0},s=n?.srcSide??T(e,o),i=n?.dstSide??T(r,a);let d=n?h(e,n.srcSide):g(e,o,!0),l=n?h(r,n.dstSide):g(r,a,!1);return e=J.get(t+":src"),o=J.get(t+":dst"),void 0!==e&&(d=ct(d,s,e)),void 0!==o&&(l=ct(l,i,o)),{pSrcPort:d,pDstPort:l,srcSide:s,dstSide:i}}),"portsForEdge");for(const t of o){const r=a[t];if(p[t]=[],r.start&&r.end&&!(r.points&&0<r.points.length)&&r.start!==r.end){var gt=s.get(r.start),ut=s.get(r.end);if(gt&&ut){var pt,xt,{pSrcPort:mt,pDstPort:yt,srcSide:vt,dstSide:bt}=ht(t,gt,ut),Mt={...mt},It={...yt},St="top"===bt||"bottom"===bt,wt=((Yt="top"===vt||"bottom"===vt)?(pt=mt.y>(gt.y??0),Mt.y=pt?mt.y+gn:mt.y-gn):(pt=mt.x>(gt.x??0),Mt.x=pt?mt.x+gn:mt.x-gn),St?(xt=yt.y>(ut.y??0),It.y=xt?yt.y+gn:yt.y-gn):(xt=yt.x>(ut.x??0),It.x=xt?yt.x+gn:yt.x-gn),e(((t,e)=>{for(const r of f)if(!e.includes(r.nodeId)&&t.x>r.minX&&t.x<r.maxX&&t.y>r.minY&&t.y<r.maxY)return{inside:!0,obstacle:r};return{inside:!1}}),"isPointInObstacle")),Lt=e(((t,e,r,n,o)=>o?(o=t.y>(e.y??0),{x:(r.x??0)>=t.x?n.maxX+fn:n.minX-fn,y:o?n.maxY+cn:n.minY-cn,leavesPositiveSide:o}):(o=t.x>(e.x??0),e=(r.y??0)>=t.y,{x:o?n.maxX+fn:n.minX-fn,y:e?n.maxY+cn:n.minY-cn,leavesPositiveSide:o})),"obstacleDetour");let n=[];var Ct,Tt=[r.start,r.end],Ot=wt(Mt,Tt);Ot.inside&&Ot.obstacle&&(Ot=Ot.obstacle,n=Yt?(Yt=Lt(mt,gt,ut,Ot,!0),Mt.x=Yt.x,Mt.y=Yt.y,Ct=Yt.leavesPositiveSide?Math.min(Ot.minY-2,mt.y+gn):Math.max(Ot.maxY+2,mt.y-gn),[{x:mt.x,y:Ct},{x:Yt.x,y:Ct},{x:Yt.x,y:Yt.y}]):(Yt=(Ct=Lt(mt,gt,ut,Ot,!1)).leavesPositiveSide?Math.min(Ot.minX-2,mt.x+gn):Math.max(Ot.maxX+2,mt.x-gn),Mt.x=Ct.x,Mt.y=Ct.y,[{x:Yt,y:mt.y},{x:Yt,y:Ct.y},{x:Ct.x,y:Ct.y}]));let o=[];if((Ot=wt(It,Tt)).inside&&Ot.obstacle&&(Yt=Ot.obstacle,o=St?(wt=Lt(yt,ut,gt,Yt,!0),It.x=wt.x,It.y=wt.y,[{x:wt.x,y:wt.y},{x:yt.x,y:wt.y}]):(Tt=Lt(yt,ut,gt,Yt,!1),It.x=Tt.x,It.y=Tt.y,[{x:Tt.x,y:Tt.y},{x:Tt.x,y:yt.y}])),0===n.length&&0===o.length&&(Ot=fn,St=Math.abs(Mt.x-It.x)<Ot,wt=Math.abs(Mt.y-It.y)<Ot,Lt=void 0!==J.get(t+":src")||void 0!==J.get(t+":dst"),ut=(v.get(`${r.start??""}:${vt}:src`)?.length??0)+(v.get(`${r.start??""}:${vt}:dst`)?.length??0),gt=(v.get(`${r.end??""}:${bt}:src`)?.length??0)+(v.get(`${r.end??""}:${bt}:dst`)?.length??0),Yt=1<ut||1<gt,Tt=C.get(r.start??"")??0,Ot=C.get(r.end??"")??0,vt=1<ut&&ft(r.start,vt)||1<gt&&ft(r.end,bt),bt=Yt&&!vt&&(ut<=1||Tt<=2)&&(gt<=1||Ot<=2),(St||wt)&&!Lt&&(!Yt||bt)&&!y(mt,yt,r.start,r.end))){r.points=[{...mt},{...Mt},{...It},{...yt}],x.add(t),vt=wt?"horizontal":"vertical",ut=wt?mt.y:mt.x,Tt=wt?Math.min(mt.x,yt.x):Math.min(mt.y,yt.y),gt=wt?Math.max(mt.x,yt.x):Math.max(mt.y,yt.y),Ot={id:`fast-path-${vt}-${ut.toFixed(0)}-`+t,orientation:vt,coord:ut,spanMin:Tt,spanMax:gt,tracks:[]},u.push({edgeIndex:t,segmentIndex:0,orientation:vt,pipe:Ot,trackIndex:0,from:Tt,to:gt});continue}var kt;St=c("vertical",Mt.x,Mt.y,Mt.y),Lt=(Mt.x=St.coord,c("vertical",It.x,It.y,It.y));It.x=Lt.coord;let a=Math.min(Mt.x,It.x)-50,s=Math.max(Mt.x,It.x)+50,i=Math.min(Mt.y,It.y)-50,h=Math.max(Mt.y,It.y)+50;for(const t of f){var Nt=Math.min(Mt.x,It.x),Rt=Math.max(Mt.x,It.x),Et=Math.min(Mt.y,It.y),Bt=Math.max(Mt.y,It.y);t.minX<Rt&&t.maxX>Nt&&t.minY<Bt&&t.maxY>Et&&(a=Math.min(a,t.minX-hn),s=Math.max(s,t.maxX+hn),i=Math.min(i,t.minY-hn),h=Math.max(h,t.maxY+hn))}for(const t of f)t.maxX<a||t.minX>s||t.maxY<i||t.minY>h||(kt=fn,c("horizontal",t.minY-kt,a,s),c("horizontal",t.maxY+kt,a,s),kt=cn,c("vertical",t.minX-kt,i,h),c("vertical",t.maxX+kt,i,h));c("horizontal",Mt.y,a,s),c("horizontal",It.y,a,s);var Ft=d.filter((t=>"horizontal"===t.orientation&&t.coord>=i&&t.coord<=h)),At=d.filter((t=>"vertical"===t.orientation&&t.coord>=a&&t.coord<=s)),Pt=e(((t,e)=>t.toFixed(1)+","+e.toFixed(1)),"getKey"),Yt=Pt(Mt.x,Mt.y),Xt=Pt(It.x,It.y),zt=new Map,Gt=new Map,Dt=new Map,$t=new Set,_t=[];zt.set(Yt,0),Dt.set(Yt,"n"),_t.push({key:Yt,f:Math.hypot(It.x-Mt.x,It.y-Mt.y),pt:Mt}),$t.add(Yt);let g=[];const b=e(((t,e)=>y(t,e,r.start,r.end)),"checkSegmentBlocked");if(bt={x:It.x,y:Mt.y},wt=b(Mt,bt),ut=b(bt,It),vt=wt||ut,Ot={x:Mt.x,y:It.y},Tt=b(Mt,Ot),gt=b(Ot,It),vt?Tt||gt||(g=Math.abs(Mt.x-It.x)<dn?[Mt,It]:[Mt,Ot,It]):g=Math.abs(Mt.y-It.y)<dn||Math.abs(Mt.x-It.x)<dn?[Mt,It]:[Mt,bt,It],0===g.length)for(;0<_t.length;){_t.sort(((t,e)=>t.f-e.f));var Ht=_t.shift();if($t.delete(Ht.key),Ht.key===Xt){let t=Xt;for(g=[It];Gt.has(t);){var jt=Gt.get(t);g.unshift(jt),t=Pt(jt.x,jt.y)}break}const e=Ht.pt.x,n=Ht.pt.y;var Vt=At.sort(((t,e)=>t.coord-e.coord)),Wt=Vt.findIndex((t=>Math.abs(t.coord-e)<1)),Ut=Ft.sort(((t,e)=>t.coord-e.coord)),qt=Ut.findIndex((t=>Math.abs(t.coord-n)<1)),Jt=[];0<Wt&&Jt.push({x:Vt[Wt-1].coord,y:n}),0<=Wt&&Wt<Vt.length-1&&Jt.push({x:Vt[Wt+1].coord,y:n}),0<qt&&Jt.push({x:e,y:Ut[qt-1].coord}),0<=qt&&qt<Ut.length-1&&Jt.push({x:e,y:Ut[qt+1].coord});for(const o of Jt){const a=Math.min(e,o.x),s=Math.max(e,o.x),i=Math.min(n,o.y),d=Math.max(n,o.y);var Kt=f.some((t=>t.nodeId!==r.start&&t.nodeId!==r.end&&(a!==s?t.minY<n&&t.maxY>n&&t.maxX>a&&t.minX<s:t.minX<e&&t.maxX>e&&t.maxY>i&&t.minY<d)));if(!Kt){const r=Pt(o.x,o.y);Kt=Math.abs(o.x-e)+Math.abs(o.y-n);var Zt=m(t,Ht.pt,o);let a=0;var Qt=It.x-Mt.x,te=It.y-Mt.y,ee=o.x-e,re=o.y-n;(10<te&&re<-5||te<-10&&5<re)&&(a=100*Math.abs(re)),(10<Qt&&ee<-5||Qt<-10&&5<ee)&&(a+=50*Math.abs(ee));let s=0;te=Dt.get(Ht.key)??"n",re=Math.abs(ee)>dn?"h":"v","n"!==te&&te!==re&&(s=50),Qt=Kt+Zt+a+s,ee=(zt.get(Ht.key)??1/0)+Qt,te=Math.abs(It.x-o.x)+Math.abs(It.y-o.y),ee<(zt.get(r)??1/0)&&(Gt.set(r,Ht.pt),zt.set(r,ee),Dt.set(r,re),$t.has(r)?-1!==(Kt=_t.findIndex((t=>t.key===r)))&&(_t[Kt].f=ee+te):(_t.push({key:r,f:ee+te,pt:o}),$t.add(r)))}}}if(4<(g=0===g.length?[Mt,{x:Mt.x,y:It.y},It]:g).length){const t=g[0],r=g[g.length-1];let n=Math.min(t.x,r.x),o=Math.max(t.x,r.x),a=Math.min(t.y,r.y),s=Math.max(t.y,r.y);for(const t of g)n=Math.min(n,t.x),o=Math.max(o,t.x),a=Math.min(a,t.y),s=Math.max(s,t.y);if(St=o>Math.max(t.x,r.x),Lt=n<Math.min(t.x,r.x),l){const e=cn;if(St){const n=Math.max(t.x,r.x),a=Math.min(t.y,r.y),s=Math.max(t.y,r.y);if(Yt=f.filter((t=>t.minX<n&&t.maxX>n&&t.minY<s&&t.maxY>a)),0<Yt.length){let n=Math.max(t.x,r.x);for(const t of Yt){var ne=(t.minX+t.maxX)/2;void 0===t.visualXHalfExtent||isNaN(t.visualXHalfExtent)||(ne=ne+t.visualXHalfExtent+e,n=Math.max(n,ne))}isNaN(n)||(o=n)}}if(Lt&&(wt=f.filter((n=>n.minX<Math.min(t.x,r.x)+e&&n.minY<Math.max(t.y,r.y)&&n.maxY>Math.min(t.y,r.y))),0<wt.length)){let o=Math.min(t.x,r.x);for(const t of wt){var oe=(t.minX+t.maxX)/2-t.visualXHalfExtent-e;o=Math.min(o,oe)}n=o}}const i=e((e=>{var n=r.y>t.y,o=f.filter((e=>{var n=Math.min(t.x,r.x)<e.maxX&&Math.max(t.x,r.x)>e.minX;e=Math.min(t.y,r.y)<e.maxY&&Math.max(t.y,r.y)>e.minY;return n&&e}));let a=o;if(0!==(a=l&&0<o.length&&0<(o=o.filter((t=>t.minX<e&&t.maxX>e))).length?o:a).length)if(o=fn,n){if((n=Math.max(...a.map((t=>t.maxY)))+o)<r.y-dn)return n}else if((n=Math.min(...a.map((t=>t.minY)))-o)>r.y+dn)return n;return r.y}),"findBestReturnY");ut=e((e=>{var n=i(e),o={x:e,y:t.y},a=(e={x:e,y:n},{x:r.x,y:n}),s=b(t,o),d=b(o,e),l=b(e,a),f=n!==r.y&&b(a,r);return s||d||l||f?null:Math.abs(n-r.y)<dn?[t,o,e,r]:[t,o,e,a,r]}),"trySimplifyWithDetourX"),(vt=St&&!Lt?ut(o):Lt&&!St?ut(n):null)&&(g=vt)}var ae,se,ie,de=[mt,...n,...g,...o.reverse(),yt],le=(3<=de.length&&(Tt=de[de.length-1],gt=de[de.length-2],Ot=de[de.length-3],bt=Math.abs(Ot.y-gt.y)<dn&&Math.abs(gt.y-Tt.y)<dn,Yt=Math.abs(Ot.x-gt.x)<dn&&Math.abs(gt.x-Tt.x)<dn,bt?(wt=Math.sign(gt.x-Ot.x),Lt=Math.sign(Tt.x-Ot.x),0!==wt&&wt===Lt&&Math.abs(gt.x-Ot.x)>Math.abs(Tt.x-Ot.x)&&de.splice(-2,1)):Yt&&(St=Math.sign(gt.y-Ot.y),ut=Math.sign(Tt.y-Ot.y),0!==St)&&St===ut&&Math.abs(gt.y-Ot.y)>Math.abs(Tt.y-Ot.y)&&de.splice(-2,1)),[de[0]]);for(let t=1;t<de.length-1;t++)1===t?le.push(de[t]):(ae=le[le.length-1],se=de[t],ie=de[t+1],Math.abs(ae.y-se.y)<dn&&Math.abs(se.y-ie.y)<dn?se.x>ae.x!=ie.x>se.x&&le.push(se):Math.abs(ae.x-se.x)<dn&&Math.abs(se.x-ie.x)<dn&&se.y>ae.y==ie.y>se.y||le.push(se));le.push(de[de.length-1]);for(let e=0;e<le.length-1;e++){var fe=le[e],ce=le[e+1],he=Math.abs(fe.x-ce.x)<dn?"vertical":"horizontal",ge="vertical"==he?fe.x:fe.y,ue="vertical"==he?Math.min(fe.y,ce.y):Math.min(fe.x,ce.x);ge={edgeIndex:t,segmentIndex:e,orientation:he,pipe:ce=c(he,ge,ue,fe="vertical"==he?Math.max(fe.y,ce.y):Math.max(fe.x,ce.x)),trackIndex:0,from:ue,to:fe};u.push(ge),p[t].push(u.length-1),ce.tracks[0]||(ce.tracks[0]={index:0,coord:ce.coord,segments:[]}),ce.tracks[0].segments.push({edgeIndex:t,segmentIndex:e,from:ue,to:fe})}}}}const pe=e(((t,e)=>t.from<e.to&&e.from<t.to),"segmentsOverlap"),xe=e(((t,e,r,n)=>{var o=!n.segments.some((r=>(r.edgeIndex!==e.edgeIndex||r.segmentIndex!==e.segmentIndex)&&pe(r,t))),a=!r.segments.some((r=>(r.edgeIndex!==t.edgeIndex||r.segmentIndex!==t.segmentIndex)&&pe(r,e)));return o&&a&&(t.trackIndex=n.index,e.trackIndex=r.index,r.segments=[...r.segments.filter((e=>e.edgeIndex!==t.edgeIndex||e.segmentIndex!==t.segmentIndex)),{edgeIndex:e.edgeIndex,segmentIndex:e.segmentIndex,from:e.from,to:e.to}],n.segments=[...n.segments.filter((t=>t.edgeIndex!==e.edgeIndex||t.segmentIndex!==e.segmentIndex)),{edgeIndex:t.edgeIndex,segmentIndex:t.segmentIndex,from:t.from,to:t.to}],!0)}),"trySwapSegmentsAcrossTracks"),me=e((t=>{var e=t.tracks.length;return t.tracks[e]={index:e,coord:t.coord,segments:[]},e}),"createNewTrack"),ye=e(((t,e)=>{var r=t.pipe.tracks[t.trackIndex];r.segments=r.segments.filter((e=>e.edgeIndex!==t.edgeIndex||e.segmentIndex!==t.segmentIndex)),t.trackIndex=e,t.pipe.tracks[e].segments.push({edgeIndex:t.edgeIndex,segmentIndex:t.segmentIndex,from:t.from,to:t.to})}),"moveSegmentToTrack"),ve=e(((t,e)=>{for(const n of p[t.edgeIndex]){var r=u[n];r.pipe===t.pipe&&ye(r,e)}}),"moveSegmentChainToTrack"),be=e((t=>{var e=p[t.edgeIndex],r=[];return 0<(t=e.indexOf(u.indexOf(t)))&&r.push(u[e[t-1]]),t<e.length-1&&r.push(u[e[t+1]]),r}),"getAdjacentSegmentsAlongEdge"),Me=e(((t,e)=>{var r;return t.orientation!==e.orientation&&(r="horizontal"===t.orientation?t:e,(e="horizontal"===t.orientation?e:t).pipe.coord>r.from)&&e.pipe.coord<r.to&&r.pipe.coord>e.from&&r.pipe.coord<e.to}),"haveAnyCrossing"),Ie=e(((t,e)=>{for(const r of t.tracks)if(!r.segments.some((t=>(t.edgeIndex!==e.edgeIndex||t.segmentIndex!==e.segmentIndex)&&pe(t,e))))return r.index;return-1}),"findAvailableTrack"),Se=e(((t,e)=>{if(t.trackIndex===e.trackIndex)return pe(t,e);t=be(t);const r=be(e);return t.some((t=>r.some((e=>Me(t,e)))))}),"segmentsConflict"),we=e(((t,e,r)=>{xe(t,e,t.pipe.tracks[t.trackIndex],e.pipe.tracks[e.trackIndex])||r(e,-1!==(r=Ie(t.pipe,e))?r:me(t.pipe))}),"resolveTrackConflict"),Le=e((t=>{let e=0;for(let o=0;o<t.length;o++)for(let a=o+1;a<t.length;a++){var r=t[o],n=t[a];r.pipe===n.pipe&&Se(r,n)&&(e++,we(r,n,ve))}return e}),"resolveHandleConflicts"),Ce=new Map,Te=e((t=>{if(Ce.has(t))return Ce.get(t);var e=p[t];if(0===e.length)return s={dest:0,deviation:0,base:0,delta:0},Ce.set(t,s),s;var r=u[e[0]].pipe.coord;let n=r;for(let t=1;t<e.length;t++){if("horizontal"===(a=u[e[t]]).orientation){var o=a.from,a=a.to;n=Math.abs(o-r)>Math.abs(a-r)?o:a;break}}var s={dest:n,deviation:s=Math.abs(n-r),base:r,delta:n-r};return Ce.set(t,s),s}),"getDestInfo");var Oe=e((()=>{let t=0;var r,n,o=new Map;for([r,n]of a.entries())0!==p[r].length&&n.start&&(o.has(n.start)||o.set(n.start,[]),o.get(n.start).push(r));const i=e((t=>{var e,r;return(t=a[t]).start&&t.end&&(e=s.get(t.start),t=s.get(t.end),e)&&t?(r=(t.x??0)-(e.x??0),t=(t.y??0)-(e.y??0),Math.abs(r)+Math.abs(t)):0}),"getEdgeDistance");for(const e of o.values()){e.sort(((t,e)=>{var r=Te(t),n=Te(e);return 1<Math.abs(r.deviation-n.deviation)?r.deviation-n.deviation:1<Math.abs(r.dest-n.dest)?r.dest-n.dest:(r=i(t),n=i(e),1<Math.abs(r-n)||(n=p[t].length)!==(r=p[e].length)?n-r:1===n&&(r=p[t][0],n=p[e][0],u[r]&&u[n]&&(t=u[r],e=u[n],r=Math.abs(t.to-t.from),n=Math.abs(e.to-e.from),1<Math.abs(r-n)))?r-n:0)}));var d=e.map((t=>u[p[t][0]]));t+=Le(d)}return t}),"fixSourceHandleCrossings"),ke=e((()=>{let t=0;var r,n,o=new Map;for([r,n]of a.entries())0!==p[r].length&&n.end&&(o.has(n.end)||o.set(n.end,[]),o.get(n.end).push(r));for(const r of o.values()){r.sort(((t,r)=>{var n=e((t=>(t=p[t]).length<2?0:(t=u[t[t.length-2]],Math.abs(t.to-t.from))),"getDist"),o=n(t);n=n(r);return.1<Math.abs(o-n)?o-n:t-r}));var s=r.map((t=>u[p[t][p[t].length-1]]));t+=Le(s)}return t}),"fixTargetHandleCrossings"),Ne=e((()=>{let t=0;for(const a of d){var e=[];for(const t of a.tracks)for(const n of t.segments){var r=p[n.edgeIndex].find((t=>u[t].segmentIndex===n.segmentIndex));void 0!==r&&e.push(u[r])}e.sort(((t,e)=>t.edgeIndex-e.edgeIndex||t.segmentIndex-e.segmentIndex));for(let r=0;r<e.length;r++)for(let a=r+1;a<e.length;a++){var n=e[r],o=e[a];Se(n,o)&&(t++,we(n,o,ye))}}return t}),"fixPipeCrossings");let Re=0;for(var Ee,Be;Re<10;){var Fe=0;if(0===(Fe+=Oe())+ke()+Ne())break;Re++}const Ae=new Map;for(const t of d){const r=[];t.tracks.forEach((t=>{t.segments.forEach((e=>{r.push({edgeIndex:e.edgeIndex,segmentIndex:e.segmentIndex,trackIndex:t.index,from:e.from,to:e.to})}))})),r.sort(((t,e)=>t.from-e.from));var Pe=[];if(0<r.length){let t=[r[0]],e=r[0].to;for(let n=1;n<r.length;n++){var Ye=r[n];e=Ye.from<e?(t.push(Ye),Math.max(e,Ye.to)):(Pe.push(t),t=[Ye],Ye.to)}Pe.push(t)}for(const r of Pe){const n=new Set,o=(r.forEach((t=>n.add(t.trackIndex))),new Map);r.forEach((t=>{var e=Te(t.edgeIndex);o.set(t.trackIndex,(o.get(t.trackIndex)??0)+e.delta)}));var Xe,ze,Ge,De,$e=[...n].filter((t=>(o.get(t)??0)<-1)),_e=[...n].filter((t=>1<(o.get(t)??0))),He=[...n].filter((t=>Math.abs(o.get(t)??0)<=1)),je=($e.sort(((t,e)=>(o.get(e)??0)-(o.get(t)??0))),_e.sort(((t,e)=>(o.get(t)??0)-(o.get(e)??0))),e(((e,n)=>{r.filter((t=>t.trackIndex===e)).forEach((e=>{var r=x.has(e.edgeIndex)?t.coord:n;Ae.set(e.edgeIndex+"-"+e.segmentIndex,r)}))}),"assignCoord"));let a=0;for(const e of $e)a++,je(e,t.coord-a*un);0===He.length&&0<n.size&&(Xe=[...n].sort(((t,e)=>Math.abs(o.get(t)??0)-Math.abs(o.get(e)??0)))[0],-1!==(ze=$e.indexOf(Xe))&&$e.splice(ze,1),-1!==($e=_e.indexOf(Xe))&&_e.splice($e,1),He.push(Xe));let s=0;for(const e of He)0===s?je(e,t.coord):(Ge=s%2==1?1:-1,De=Math.ceil(s/2),je(e,t.coord+Ge*De*un*.5)),s++;let i=0;for(const e of _e)i++,je(e,t.coord+i*un)}}for([Ee,Be]of a.entries()){if(0!==(er=p[Ee]??[]).length){var Ve=[],We=s.get(Be.start),Ue=s.get(Be.end),{pSrcPort:We,pDstPort:Ue}=ht(Ee,We,Ue),qe=er.map((t=>{t=u[t];var e=Ae.get(t.edgeIndex+"-"+t.segmentIndex)??t.pipe.coord;return{orient:t.orientation,coord:e,from:t.from,to:t.to}}));Ve.push(We);for(let t=0;t<qe.length;t++){var Je=qe[t],Ke=Ve[Ve.length-1],Ze="vertical"===Je.orient?Ke.y:Ke.x,Qe=(Ke="vertical"===Je.orient?Ke.x:Ke.y,qe[t+1]),tr=t<qe.length-1;Math.abs(Ke-Je.coord)>dn&&Ve.push(mn(Je,Ze)),tr&&Qe.orient===Je.orient?Math.abs(Je.coord-Qe.coord)>dn?(Ke="vertical"===Je.orient?(Ze+Qe.from)/2:xn(Je,Qe),Ve.push(mn(Je,Ke),mn(Qe,Ke))):0!==t&&t!==qe.length-2||Ve.push(mn(Je,xn(Je,Qe))):tr?Ve.push(mn(Je,Qe.coord)):(Ke=Math.abs(Je.from-Ze)<Math.abs(Je.to-Ze)?Je.to:Je.from,Ve.push(mn(Je,Ke)))}var er=Ve[Ve.length-1],rr=((Math.abs(er.x-Ue.x)>dn||Math.abs(er.y-Ue.y)>dn)&&Ve.push(Ue),[]);0<Ve.length&&rr.push(Ve[0]);for(let t=1;t<Ve.length;t++){var nr=Ve[t],or=rr[rr.length-1];(Math.abs(nr.x-or.x)>dn||Math.abs(nr.y-or.y)>dn)&&rr.push(nr)}Be.points=rr}}for(const t of a){var ar=t.__originalEdge;ar&&t.points&&(ar.points=t.points)}t.edges=(t.edges??[]).filter((t=>!t.isLayoutOnly));var sr=e(((t,e)=>{var r,n,o,a,s=e.x??0,i=e.y??0,d=e.width??0;e=e.height??0;return d<=0||e<=0||(r=s+d/2,n=i-e/2,i+=e/2,t.x<(e=s-d/2))||t.x>r||t.y<n||t.y>i?t:(s=t.x-e,d=r-t.x,o=t.y-n,a=i-t.y,(a=Math.min(s,d,o,a))===s?{x:e,y:t.y}:a===d?{x:r,y:t.y}:a===o?{x:t.x,y:n}:{x:t.x,y:i})}),"nodeBoundaryClamp");for(const e of t.edges){var ir,dr,lr=e.points;!lr||lr.length<2||(ir=e.start,dr=e.end,ir=ir?s.get(ir):void 0,dr=dr?s.get(dr):void 0,ir&&(lr[0]=sr(lr[0],ir)),dr&&(lr[lr.length-1]=sr(lr[lr.length-1],dr)))}return t}function vn(t){return t.direction??"TB"}function bn(t){var e=U(t),r=t.config.flowchart?.nodeSpacing??40,n=t.config.flowchart?.rankSpacing??100,o=t.config.swimlane?.ignoreCrossLaneEdges??!0,a=t.config.swimlane?.optimizeRanksByCrossings??!0,s=t.config.swimlane?.automaticLaneOrdering??!1,i=vn(t),{ordered:o,coordinates:a}=sn(e,{nodeGap:r,layerGap:n,ignoreCrossLaneEdges:o,optimizeRanksByCrossings:a,automaticLaneOrdering:s,direction:i});q(e,o,a,{nodeGap:r,layerGap:n});for(const e of t.edges??[])delete e.points;yn(t,i);for(const e of t.edges??[])e.curve&&"basis"!==e.curve||(e.curve="rounded");return Ze(t,i),Ke(t),i}async function Mn(e,s){s=s.select("g");var i=(r(s,e.markers,e.type,e.diagramId),n(),o(),a(),t(),W(e),K(e));i=(e.nodes=i.nodes,e.edges=i.edges,await b(s,e)).groups;bn(e),await G(e,i)}e(pn,"chooseOrthogonalSide"),e(xn,"sharedLineEndpointCoord"),e(mn,"pointOnLine"),e(yn,"routeEdgesOrthogonal"),e(vn,"getSwimlaneDirection"),e(bn,"runSwimlaneLayoutCore"),e(Mn,"render");export{Mn as render};
|