@cagent/chat-embedding-core 0.0.13 → 0.0.14
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/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
|
+
var e,t;(e=self.document)&&!e.getElementById("livereloadscript")&&((t=e.createElement("script")).async=1,t.src="//"+(self.location.host||"localhost").split(":")[0]+":35729/livereload.js?snipver=1",t.id="livereloadscript",e.getElementsByTagName("head")[0].appendChild(t));import{c as r}from"./chunk-RYQCIY6F-06b096c5.js";import{_ as a,ap as n,aq as o,ar as i,as as s,d as l,ah as d,az as f,ag as h,ai as g,aw as u,ay as c,G as p,av as x,aA as m,u as y,l as v,aB as b}from"./mermaid.core-2d237a1e.js";import{G as M}from"./graph-0df36b9d.js";import"./map-d3292a5b.js";import"./web-753300e1.js";async function I(e,t){let r=new M({multigraph:!0,compound:!0});var a=[...t.edges];let n=l();var o=e.insert("g").attr("class","root"),i=o.insert("g").attr("class","clusters"),s=o.insert("g").attr("class","edges edgePath"),f=o.insert("g").attr("class","edgeLabels");let h=o.insert("g").attr("class","nodes"),g=new Map,u=null!=e.node();await Promise.all(t.nodes.map(async e=>{var t,a;e.isGroup||u&&(a=(t=await d(h,e,{config:n,dir:e.dir})).node()?.getBBox()??{width:0,height:0},g.set(e.id,t),e.width=a.width,e.height=a.height),r.setNode(e.id,{...e})}));for(let e of a)r.setEdge(e.start,e.end,{...e},e.id),t.edges.some(t=>t.id===e.id)||t.edges.push(e);return globalThis.mermaidCaptureSizes&&(a=(await import("./sizeCapture-X5ZJPWSS-a078176f.js")).captureNodeSizes)(e,t),{graph:r,groups:{clusters:i,edgePaths:s,edgeLabels:f,nodes:h,rootGroups:o},nodeElements:g}}a(I,"createGraphWithElements");var w=1e-5,S=1e-6;function C(e){var t=[];for(let r=0;r<e.length-1;r++)t.push({a:e[r],b:e[r+1]});return t}function L(e,t,r,a){var n,o,i=t.x-e.x,s=(t=t.y-e.y,a.x-r.x),l=i*(a=a.y-r.y)-t*s;return 0==l||(o=((n=r.x-e.x)*t-(r=r.y-e.y)*i)/l,(n=(n*a-r*s)/l)<=S)||.999999<=n||o<=S||.999999<=o?null:{point:{x:e.x+n*i,y:e.y+n*t},tA:n,tB:o}}function k(e){return Math.abs(e.b.x-e.a.x)>=Math.abs(e.b.y-e.a.y)}function T(e){var t=[];for(let g=0;g<e.length;g++){var r=e[g],a=C(r.points);for(let u=g+1;u<e.length;u++){var n,o,i=e[u],s=C(i.points);for([n,o]of a.entries())for(var[l,d]of s.entries()){var f,h=L(o.a,o.b,d.a,d.b);h&&(f=k(o),d=k(d),t.push(f!==d&&f?{jumpEdgeId:r.id,otherEdgeId:i.id,segIndex:n,t:h.tA,point:h.point}:{jumpEdgeId:i.id,otherEdgeId:r.id,segIndex:l,t:h.tB,point:h.point}))}}}return t}function O(e){return e=Math.round(1e3*e)/1e3,Number.isInteger(e),""+e}function R(e){return O(e.x)+","+O(e.y)}function N(e){var t=e.b.x-e.a.x;e=e.b.y-e.a.y;return Math.abs(t)>=Math.abs(e)?0<=t?1:0:0<=e?1:0}a(C,"buildSegmentList"),a(L,"segmentIntersection"),a(k,"isHorizontalSeg"),a(T,"findEdgeIntersections"),a(O,"fmt"),a(R,"pointToString"),a(N,"getArcSweepFlag");function B(e,t){var r,a,n,o;return e.length<2?e.map(e=>({...e})):(r=e.map(e=>({...e})),(n=t.arrowTypeStart&&f[t.arrowTypeStart])&&(a=e[0],o=e[1],o=Math.atan2(o.y-a.y,o.x-a.x),r[0].x=a.x+n*Math.cos(o),r[0].y=a.y+n*Math.sin(o)),(a=t.arrowTypeEnd&&f[t.arrowTypeEnd])&&(o=e[(n=e.length)-2],t=e[n-1],e=Math.atan2(t.y-o.y,t.x-o.x),r[n-1].x=t.x-a*Math.cos(e),r[n-1].y=t.y-a*Math.sin(e)),r)}function E(e,t,r,a,n){var o=e.point.x,i=e.point.y,s={x:o+t*e.r,y:i+r*e.r};return(o=["L"+R({x:o-t*e.r,y:i-r*e.r})]).push("arc"===n?`A${O(e.r)},${O(e.r)} 0 0 ${a} `+R(s):"M"+R(s)),o}function F(e,t,r,a){var n,o=t.x-e.x,i=(e=t.y-e.y,r.x-t.x),s=(r=r.y-t.y,Math.hypot(o,e)),l=Math.hypot(i,r);return s<w||l<w||(o/=s,e/=s,i/=l,r/=l,n=Math.max(-1,Math.min(1,o*i+e*r)),(n=Math.acos(n))<w)||Math.abs(Math.PI-n)<w?null:(a=Math.min(a/Math.sin(n/2),s/2,l/2),{startX:t.x-o*a,startY:t.y-e*a,endX:t.x+i*a,endY:t.y+r*a,ctrlX:t.x,ctrlY:t.y,cutLen:a})}function Y(e,t,r){var a=e.points;if(a.length<2)return"";var n,o=B(a,e),i="rounded"===e.curve,s=C(o),l=new Map;for(n of t){var d,f=s[n.segIndex];f&&(f=Math.hypot(f.b.x-f.a.x,f.b.y-f.a.y),(d=l.get(n.segIndex)??[]).push({t:n.t,point:n.point,d:n.t*f,r:r.jumpRadius}),l.set(n.segIndex,d))}var h=["M"+R(o[0])];for(let e=0;e<s.length;e++){var g,u=s[e],c=Math.hypot(u.b.x-u.a.x,u.b.y-u.a.y),p=0===c?0:(u.b.x-u.a.x)/c,x=0===c?0:(u.b.y-u.a.y)/c,m=N(u);let t=0,a=(i&&0<e&&(g=F(o[e-1],o[e],o[e+1]??o[e],5))&&(t=g.cutLen),c),n=null;i&&e<s.length-1&&(n=F(o[e],o[e+1],o[e+2]??o[e+1],5))&&(a=c-n.cutLen);var y,v,b=[...l.get(e)??[]].sort((e,t)=>e.t-t.t);for(y of b)y.r=Math.min(y.r,y.d-t,a-y.d);for(let e=0;e<b.length-1;e++){var M=b[e+1].d-b[e].d;b[e].r+b[e+1].r>M&&(M/=2,b[e].r=Math.min(b[e].r,M),b[e+1].r=Math.min(b[e+1].r,M))}for(v of b)v.r<.001||h.push(...E(v,p,x,m,r.jumpStyle));i&&n?(h.push(`L${O(n.startX)},`+O(n.startY)),h.push(`Q${O(n.ctrlX)},${O(n.ctrlY)} ${O(n.endX)},`+O(n.endY))):h.push("L"+R(u.b))}return h.join(" ")}function X(e){return/^[\d\s+,.LMelm-]*$/.test(e)}function P(e){return!e||"linear"===e||"rounded"===e||"step"===e||"stepBefore"===e||"stepAfter"===e}function z(e){if(!e)return null;try{var t="function"==typeof atob?atob(e):Buffer.from(e,"base64").toString(),r=JSON.parse(t);if(!Array.isArray(r))return null;var a,n=[];for(a of r)a&&"number"==typeof a.x&&"number"==typeof a.y&&n.push({x:a.x,y:a.y});return 2<=n.length?n:null}catch{return null}}function A(e,t,r){if(r.enabled){var a=e.node();if(a){var n,o=new Map;for(n of t)o.set(n.id,n);var i,s=[],l=new Map;for(i of t){var d="undefined"!=typeof CSS&&CSS.escape?CSS.escape(i.id):i.id;(d=a.querySelector(`path[data-id="${d}"]`))&&(l.set(i.id,d),d=z(d.getAttribute("data-points"))??i.points,s.push({...i,points:d}))}if(0!==(e=T(s)).length){var f,h,g=new Map;for(f of e){var u=g.get(f.jumpEdgeId)??[];u.push(f),g.set(f.jumpEdgeId,u)}for(h of s){if((y=g.get(h.id))&&0!==y.length){var c=o.get(h.id)?.curve;if(void 0===c||P(c)){var p=l.get(h.id);if(p){if(void 0===c&&!X(p.getAttribute("d")??""))continue;c=p.getAttribute("style")??"";var x=(m=/stroke-dasharray\s*:\s*0\s+([\d.]+)\s+[\d.]+\s+([\d.]+)/.exec(c))?Number.parseFloat(m[1]):null,m=m?Number.parseFloat(m[2]):null,y=Y(h,y,r);p.setAttribute("d",y),null!==x&&null!==m&&"function"==typeof p.getTotalLength&&(y=p.getTotalLength(),y=Math.max(0,y-x-m),c=c.replace(/stroke-dasharray\s*:[^;]*;?/g,`stroke-dasharray: ${`0 ${x} ${y} `+m};`).replace(/;\s*;+/g,";"),p.setAttribute("style",c))}}}}}}}}async function G(e,t){for(var r of e.nodes)r.isGroup?await h(t.clusters,r):g(r);var a,n,o=new Map;for(a of e.nodes)a?.id&&o.set(a.id,a);for(n of e.edges){var i=n.start?o.get(n.start)??{}:{},s=n.end?o.get(n.end)??{}:{};i=u(t.edgePaths,{...n},{},e.type,i,s,e.diagramId);n.label&&await c(t.rootGroups,n),n.label&&$(n,i)}var l,d=e.config?.swimlane?.lineHops;!1!==d&&(d="gap"===d?"gap":"arc",l=e.edges.filter(e=>Array.isArray(e.points)&&2<=e.points.length).map(e=>({id:e.id,points:e.points,curve:e.curve,arrowTypeStart:e.arrowTypeStart,arrowTypeEnd:e.arrowTypeEnd})),A(t.edgePaths,l,{enabled:!0,jumpRadius:6,jumpStyle:d}))}function $(e,t){var r=t?.updatedPath??t?.originalPath,a=p();a=x({flowchart:a.flowchart??{}}).subGraphTitleTotalMargin;if(e.label){var n=m.get(e.id);let i=e.x,s=e.y;r&&(o=y.calcLabelPosition(r),v.debug("Moving label "+e.label+" from (",i,",",s,") to (",o.x,",",o.y,") abc88"),t)&&(i=o.x,s=o.y),n.attr("transform",`translate(${i}, ${s+a/2})`)}if(e?.startLabelLeft){t=b.get(e.id).startLeft;let a=e?.x,n=e?.y;r&&(a=(o=y.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",r)).x,n=o.y),t.attr("transform",`translate(${a}, ${n})`)}if(e.startLabelRight){n=b.get(e.id).startRight;let t=e.x,o=e.y;r&&(t=(a=y.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",r)).x,o=a.y),n.attr("transform",`translate(${t}, ${o})`)}if(e.endLabelLeft){var o=b.get(e.id).endLeft;let a=e.x,n=e.y;r&&(a=(t=y.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",r)).x,n=t.y),o.attr("transform",`translate(${a}, ${n})`)}if(e.endLabelRight){a=b.get(e.id).endRight;let t=e.x,o=e.y;r&&(t=(n=y.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",r)).x,o=n.y),a.attr("transform",`translate(${t}, ${o})`)}}a(B,"applyMarkerOffsets"),a(E,"emitJump"),a(F,"computeRoundedCorner"),a(Y,"rewriteEdgePath"),a(X,"isStraightPath"),a(P,"curveSupportsLineHops"),a(z,"decodeDataPoints"),a(A,"applyLineJumpsToSvg"),a(G,"adjustLayout"),a($,"positionEdgeLabel");var D="__swimlane_default__";function H(e){return Math.max(e.padding??20,20)}function j(e){var t,{x:r,y:a,width:n,height:o}=e,i=e.swimlaneContentTop;"number"!=typeof r||"number"!=typeof a||"number"!=typeof n||"number"!=typeof o||"number"!=typeof i||!Number.isFinite(r)||!Number.isFinite(a)||!Number.isFinite(n)||!Number.isFinite(o)||!Number.isFinite(i)||n<=0||o<=0||(t=a-o/2,i=Math.min(i,a+o/2),(a=t+Math.min(21,Math.max(0,i-t)))<=t)?delete e.groupTitleRect:e.groupTitleRect={left:r-n/2,right:r+n/2,top:t,bottom:a}}function _(e){var t,r=e.direction,a=e.nodes??=[];for(t of e.nodes??[])t.isGroup&&!t.parentId&&(t.shape="swimlane",r)&&(t.direction=r);if(e=a.filter(e=>!e.isGroup&&!e.parentId),0!==e.length){let t=a.find(e=>e.id===D);for(var n of(t?t.isGroup&&(t.shape="swimlane",r)&&(t.direction=r):(t={id:D,label:"",isGroup:!0,shape:"swimlane",padding:20,...r?{direction:r}:{}},a.push(t)),e))n.parentId=D}}function V(e){var t,r=new Map;for(t of e.nodes??[])r.set(t.id,t);var a,n=[];for(a of e.edges??[]){var o="string"==typeof a.start?a.start:void 0,i="string"==typeof a.end?a.end:void 0;o&&i&&(a.labelNodeId||n.push({id:a.id,src:o,dst:i,ref:a}))}var s=(l=e.nodes??[]).filter(e=>e.isGroup),l=l.filter(e=>!e.isGroup);return{nodes:[...[...s].reverse(),...l].map(e=>e.id),edges:n,layout:e,nodeById:r}}function W(e,t,r,a){var n,o=e.layout,i=e.nodeById,s=a?.layerGap??100,l=a?.nodeGap??40;let d=0;for(n of t.layers){let e=0;for(var f of n){var h,g=i.get(f);g?(g.layer=d,g.order=e,h=r.x[f]??e*l,f=r.y[f]??d*s,g.x=h,g.y=f,e++):e++}d++}var u,c,p,x,m,y=o.nodes??[],v=new Map,b=[];for(let e of y)if(e?.isGroup){e.parentId||b.push(e);let t=1/0,a=-1/0,n=1/0,o=-1/0;for(u of y.filter(t=>t.parentId===e.id)){var M=u.x??r.x[u.id],I=u.y??r.y[u.id],w=u.width??0,S=u.height??0;null!=M&&null!=I&&(t=Math.min(t,M-w/2),a=Math.max(a,M+w/2),n=Math.min(n,I-S/2),o=Math.max(o,I+S/2))}t===1/0||n===1/0?(e.x=e.x??0,e.y=e.y??0,e.width=e.width??0,e.height=e.height??0):(p=e.padding??20,c=e.parentId?p:2*H(e),c=Math.max(0,a-t)+c,p=Math.max(0,o-n)+p,x=(t+a)/2,m=(n+o)/2,e.x=x,e.y=m,e.width=c,e.height=p,v.set(e.id,{minX:t,maxX:a,minY:n,maxY:o}))}if(0<b.length&&0<v.size){let e=1/0,t=-1/0,r=0;for(var C of b){var L;(L=((L=C.padding??20)>r&&(r=L),v.get(C.id)))&&(e=Math.min(e,L.minY),t=Math.max(t,L.maxY))}if(e!==1/0&&t!==-1/0){var k,T=Math.max(0,t-e)+2*Math.max(r,36),O=(e+t)/2;for(k of b)k.y=O,k.height=T,k.swimlaneContentTop=e;var R,N=[],B=[],E=[];for(R of[...b].sort((e,t)=>(e.x??0)-(t.x??0))){var F,Y=v.get(R.id);Y&&(F=Math.max(0,Y.maxX-Y.minX)+2*H(R),Y=(Y.minX+Y.maxX)/2,N.push(R.id),B.push(Y),E.push(F))}var X=N.length;if(0<X){var P,z=new Map;if(1===X)z.set(N[0],E[0]);else{var A=[];for(let e=0;e<X-1;e++)A.push(B[e+1]-B[e]);var G=new Array(X);for(let e=G[0]=0;e<X-1;e++)G[e+1]=2*A[e]-G[e];let e=0,t=Number.POSITIVE_INFINITY;for(let r=0;r<X;r++){var $=E[r];r%2==0?e=Math.max(e,$-G[r]):t=Math.min(t,G[r]-$)}let r=e;r=e<=t?(e+t)/2:e;for(let e=0;e<X;e++){var D=G[e]+(e%2==0?r:-r);D=Math.max(E[e],D);z.set(N[e],D)}}for(P of b){var _=z.get(P.id);null!=_&&(P.width=_),j(P)}}}}}a(H,"topLaneHorizontalPadding"),a(j,"assignTopLaneTitleRect"),a(_,"prepareLayoutForSwimlanes"),a(V,"toGraphView"),a(W,"writeBackToLayoutData");function q(e){var t,r,a,n,o,i=[],s=[],l=new Map;for(t of e.nodes)l.set(t.id,t);for(r of e.edges)!r.label||0===r.label.length||r.isLayoutOnly||r.labelNodeId||(n=r.start?l.get(r.start):void 0,o=r.end?l.get(r.end):void 0,n&&o?(a=`edge-label-${r.start}-${r.end}-`+r.id,o=(n.parentId!==o.parentId?o:n).parentId,o={id:a,label:r.label,edgeStart:r.start??"",edgeEnd:r.end??"",shape:"labelRect",width:0,height:0,isEdgeLabel:!0,isDummy:!0,parentId:o,isGroup:!1,labelStyle:Array.isArray(r.labelStyle)?r.labelStyle[0]:r.labelStyle??"",...n.dir?{dir:n.dir}:{}},i.push(o),r.labelNodeId=a,r.label=void 0,r.text=void 0,n={id:r.id+"-to-label",start:r.start,end:a,type:"normal",isLayoutOnly:!0},o={id:r.id+"-from-label",start:a,end:r.end,type:"normal",isLayoutOnly:!0},s.push(n,o)):v.warn("[EdgeLabelNodes]",`Edge ${r.id} has missing source or target node`));var d=[...e.nodes,...i],f=[...e.edges,...s];return{...e,nodes:d,edges:f}}a(q,"createEdgeLabelNodes");var J=.001;function K(e){var t=e.x??0,r=e.y??0,a=e.width??0;e=e.height??0;return 0<a&&0<e?{cx:t,cy:r,rect:ce(t,r,a,e)}:void 0}function Q(e){if(!e.isGroup){var t=K(e);if(t)return{id:String(e.id??""),cx:t.cx,cy:t.cy,rect:t.rect}}}function Z(e,t,r=J){return Math.abs(e.x-t.x)<r&&Math.abs(e.y-t.y)<r}function U(e,t,r=J){return Math.abs(e.x-t.x)<r}function ee(e,t,r=J){return Math.abs(e.y-t.y)<r}function te(e,t,r=J){return ee(e,t,r)&&Math.abs(e.x-t.x)>r}function re(e,t,r=J){return U(e,t,r)&&Math.abs(e.y-t.y)>r}function ae(e,t,r,a){return Math.max(0,Math.min(Math.max(e,t),Math.max(r,a))-Math.max(Math.min(e,t),Math.min(r,a)))}function ne(e,t,r=J){return e.horizontal&&t.horizontal&&ee(e.a,t.a,r)?ae(e.a.x,e.b.x,t.a.x,t.b.x):e.vertical&&t.vertical&&U(e.a,t.a,r)?ae(e.a.y,e.b.y,t.a.y,t.b.y):0}function oe(e,t=J){var r=[];for(let s=0;s<e.length-1;s++){var a=e[s],n=e[s+1],o=te(a,n,t),i=re(a,n,t);(o||i)&&r.push({index:s,a:a,b:n,horizontal:o,vertical:i})}return r}function ie(e,t=J){var r=oe(e,t);let a=0;for(let e=1;e<r.length;e++)r[e-1].horizontal!==r[e].horizontal&&a++;return a}function se(e,t=J){var r,a=[];for(r of e){var n=0<a.length?a[a.length-1]:void 0;n&&Z(n,r,t)||a.push({x:r.x,y:r.y})}return a}function le(e,t=J){var r,a,n;if(e&&4===e.length)return[e,r,a,n]=e,te(e,r,t)&&re(r,a,t)&&te(a,n,t)?{kind:"HVH",p0:e,p1:r,p2:a,p3:n}:re(e,r,t)&&te(r,a,t)&&re(a,n,t)?{kind:"VHV",p0:e,p1:r,p2:a,p3:n}:void 0}function de(e,t,r,a=0){var n=Math.min(e.x,t.x),o=Math.max(e.x,t.x),i=Math.min(e.y,t.y);e=Math.max(e.y,t.y);return o>r.left-a&&n<r.right+a&&e>r.top-a&&i<r.bottom+a}function fe(e,t,r=0){return e.x>t.left+r&&e.x<t.right-r&&e.y>t.top+r&&e.y<t.bottom-r}function he(e,t){return e.left<=t.left&&e.right>=t.right&&e.top<=t.top&&e.bottom>=t.bottom}function ge(e,t){return e.left<t.right&&e.right>t.left&&e.top<t.bottom&&e.bottom>t.top}function ue(e,t){return{left:e.left-t,right:e.right+t,top:e.top-t,bottom:e.bottom+t}}function ce(e,t,r,a){return{left:e-r/2,right:e+r/2,top:t-a/2,bottom:t+a/2}}function pe(e){return K(e)?.rect}function xe(e,t){switch(t){case"top":return{x:e.cx,y:e.rect.top};case"bottom":return{x:e.cx,y:e.rect.bottom};case"left":return{x:e.rect.left,y:e.cy};case"right":return{x:e.rect.right,y:e.cy}}}function me(e,t,r,a,n,o=J){var i,s="left"===t||"right"===t,l="left"===a||"right"===a;return s&&l?"right"===t&&"left"===a&&e.x<r.x||"left"===t&&"right"===a&&e.x>r.x?ee(e,r,o)?[e,r]:[e,{x:i=(e.x+r.x)/2,y:e.y},{x:i,y:r.y},r]:t!==a||ee(e,r,o)?void 0:[e,{x:i="left"===t?Math.min(e.x,r.x)-n:Math.max(e.x,r.x)+n,y:e.y},{x:i,y:r.y},r]:s||l?s&&!l?(i="right"===t&&r.x>e.x||"left"===t&&r.x<e.x,s="top"===a&&e.y<r.y||"bottom"===a&&e.y>r.y,i&&s?[e,{x:r.x,y:e.y},r]:void 0):(l="bottom"===t&&r.y>e.y||"top"===t&&r.y<e.y,i="left"===a&&e.x<r.x||"right"===a&&e.x>r.x,l&&i?[e,{x:e.x,y:r.y},r]:void 0):t===a?U(e,r,o)?void 0:(s="top"===t?Math.min(e.y,r.y)-n:Math.max(e.y,r.y)+n,[e,{x:e.x,y:s},{x:r.x,y:s},r]):"bottom"===t&&"top"===a&&e.y<r.y||"top"===t&&"bottom"===a&&e.y>r.y?U(e,r,o)?[e,r]:(l=(e.y+r.y)/2,[e,{x:e.x,y:l},{x:r.x,y:l},r]):void 0}function ye(e,t,r,a){return"left"===t||"right"===t?[e,{x:a,y:e.y},{x:a,y:r.y},r]:[e,{x:e.x,y:a},{x:r.x,y:a},r]}function ve(e){var t,r,a=new Map,n=[];for(t of e)t.isEdgeLabel||(r=Q(t))&&(a.set(r.id,r),n.push({id:r.id,rect:r.rect}));return{nodeInfoById:a,realNodeRects:n}}function be(e){var t,r=[],a=[];for(t of e){var n=Q(t);n&&(n={id:n.id,rect:n.rect},(t.isEdgeLabel?a:r).push(n))}return{realNodeRects:r,labelNodeRects:a}}function Me(e,{includeEdgeLabels:t=!0}={}){var r,a,n,o,i,s=[];for(r of e)r.isGroup||!t&&r.isEdgeLabel||(a=r.x??0,n=r.y??0,o=r.width??0,i=r.height??0,s.push({nodeId:r.id,...ce(a,n,o,i)}));return s}function Ie(e,t,r=J){var a=e.start;e=e.end;if(a&&e){var n=t.get(a);t=t.get(e);if(n&&t)return{srcId:a,dstId:e,srcInfo:n,dstInfo:t,collinearX:Math.abs(n.cx-t.cx)<r,collinearY:Math.abs(n.cy-t.cy)<r}}}function we(e,t,r,a=[],n=0){for(var o of r)if(!a.includes(o.id)&&de(e,t,o.rect,-n))return!0;return!1}function Se(e,t,r,a,n=J,o=1e-6){var i=ee(e,t,n),s=U(e,t,n),l=ee(r,a,n);n=U(r,a,n);return!(i&&l||s&&n||!i&&!s||!l&&!n||(l=s?{a:e,b:t}:{a:r,b:a},s=(n=i?{a:e,b:t}:{a:r,b:a}).a.y,i=Math.min(n.a.x,n.b.x),e=Math.max(n.a.x,n.b.x),t=l.a.x,r=Math.min(l.a.y,l.b.y),a=Math.max(l.a.y,l.b.y),t<i)||e<t||s<r||a<s||(i=Math.abs(t-n.a.x)<o&&Math.abs(s-n.a.y)<o||Math.abs(t-n.b.x)<o&&Math.abs(s-n.b.y)<o,e=Math.abs(t-l.a.x)<o&&Math.abs(s-l.a.y)<o||Math.abs(t-l.b.x)<o&&Math.abs(s-l.b.y)<o,i&&e))}function Ce(e,t,r,a,n=J){var o=ee(e,t,n),i=U(e,t,n),s=ee(r,a,n),l=U(r,a,n);return i&&l&&U(e,r,n)?ae(e.y,t.y,r.y,a.y)>n:!!(o&&s&&ee(e,r,n))&&ae(e.x,t.x,r.x,a.x)>n}function Le(e,t,r,a,{epsilon:n=J,skipDegenerateOther:o=!1}={}){for(var i of r)if(i!==a&&!i.isLayoutOnly){var s=i.points;if(s&&!(s.length<2))for(let r=0;r<s.length-1;r++){var l=s[r],d=s[r+1];if((!o||!Z(l,d,n))&&(Se(e,t,l,d,n)||Ce(e,t,l,d,n)))return!0}}return!1}function ke(e,t,r,a,n=J){var o=ee(e,t,n),i=U(e,t,n),s=ee(r,a,n),l=U(r,a,n);return!!(o&&l||i&&s)&&(l=o?{a:r,b:a}:{a:e,b:t},s=(i=o?{a:e,b:t}:{a:r,b:a}).a.y,o=Math.min(i.a.x,i.b.x),e=Math.max(i.a.x,i.b.x),t=l.a.x,r=Math.min(l.a.y,l.b.y),a=Math.max(l.a.y,l.b.y),o+n<t)&&t<e-n&&r+n<s&&s<a-n}function Te(e,t,r){var a=Math.min(t,r);t=Math.max(t,r);return a+J<e&&e<t-J}function Oe(e,t,r){return U(e,t)&&U(t,r)?Te(t.y,e.y,r.y):!(!ee(e,t)||!ee(t,r))&&Te(t.x,e.x,r.x)}function Re(e){let t=!1;var r=[];for(let i=0;i<e.length;i++){var a=r[r.length-1],n=e[i],o=i+1<e.length?e[i+1]:void 0;if(a&&o){if(Z(a,o)){i++,t=!0;continue}if(Oe(a,n,o)){t=!0;continue}}r.push(n)}return{points:r,changed:t}}function Ne(e){var t=[e[0]];for(let o=1;o<e.length;o++){var r,a=t[t.length-1],n=e[o];U(a,n)||ee(a,n)||(r=(r=2<=t.length?t[t.length-2]:void 0)&&U(r,a)?{x:a.x,y:n.y}:{x:n.x,y:a.y},t.push(r)),t.push(n)}var o,i=[];for(o of t){var s=i[i.length-1];s&&Z(s,o)||i.push(o)}return i}function Be(e){if(e.length<3)return e;let t=[...e];for(let e=0;e<32;e++){var r=Re(t);if(t=r.points,!r.changed)break}return t}a(K,"measuredNodeRect"),a(Q,"nodeBoundsInfoFor"),a(Z,"samePoint"),a(U,"sameX"),a(ee,"sameY"),a(te,"isHorizontalSegment"),a(re,"isVerticalSegment"),a(ae,"overlapLength"),a(ne,"sameAxisSegmentOverlapLength"),a(oe,"orthogonalSegmentsForPoints"),a(ie,"countOrthogonalBends"),a(se,"dedupeConsecutivePoints"),a(le,"classifyThreeSegmentRoute"),a(de,"segmentBoundsOverlapRect"),a(fe,"pointInsideRect"),a(he,"rectContainsRect"),a(ge,"rectsOverlap"),a(ue,"inflateRect"),a(ce,"rectFromCenterSize"),a(pe,"rectOfNodeBounds"),a(xe,"portForRectSide"),a(me,"buildOrthogonalPortPath"),a(ye,"buildSameSideTrackPath"),a(ve,"collectRealNodeBounds"),a(be,"collectNodeRectEntries"),a(Me,"collectLayoutNodeRects"),a(Ie,"getNodePairGeometry"),a(we,"segmentHitsAnyRect"),a(Se,"orthogonalSegmentsCross"),a(Ce,"sameAxisSegmentsOverlap"),a(Le,"segmentConflictsWithAnyEdge"),a(ke,"orthogonalSegmentsStrictlyCross"),a(Te,"strictlyBetween"),a(Oe,"isCollinearIntermediate"),a(Re,"simplifyPolylineOnce"),a(Ne,"orthogonalizePolyline"),a(Be,"simplifyPolyline");var Ee=.001;function Fe(e,t,r){if(!(e.isLayoutOnly||!e.points||e.points.length<r))return r=e.start?t.get(e.start):void 0,t=e.end?t.get(e.end):void 0,{edge:e,points:e.points,srcRect:r?pe(r):void 0,dstRect:t?pe(t):void 0}}function Ye(e,t,r){return ee(e,t,Ee)?{x:e.x<r.left?r.left:r.right,y:e.y}:U(e,t,Ee)?(t=e.y<r.top?r.top:r.bottom,{x:e.x,y:t}):{x:Math.min(r.right,Math.max(r.left,e.x)),y:Math.min(r.bottom,Math.max(r.top,e.y))}}function Xe(e,t,r){var a,n=r?1:-1;let o=r?0:e.length-1;for(;0<=o&&o<e.length&&fe(e[o],t,.5);)o+=n;return o<0||o>=e.length||(a=o-n)<0||a>=e.length?e:(a=Ye(e[o],e[a],t),r?[a,...e.slice(o)]:[...e.slice(0,o+1),a])}function Pe(e,t){for(var r of e)if(r=Fe(r,t,2)){let e=[...r.points];r.srcRect&&(e=Xe(e,r.srcRect,!0)),e=qe(e=Be(Ne(e=r.dstRect?Xe(e,r.dstRect,!1):e)),r.srcRect,r.dstRect),r.edge.points=Be(Ne(e))}}function ze(e,t,r,a=!1){if(ee(e,t,Ee)){if(t.y<r.top-Ee||t.y>r.bottom+Ee)return t;if(a){if(e.x<r.left-Ee)return{x:r.left,y:e.y};if(r.right+Ee<e.x)return{x:r.right,y:e.y}}return{x:Math.abs(t.x-r.left)<=Math.abs(t.x-r.right)?r.left:r.right,y:e.y}}if(U(e,t,Ee)){if(t.x<r.left-Ee||t.x>r.right+Ee)return t;if(a){if(e.y<r.top-Ee)return{x:e.x,y:r.top};if(r.bottom+Ee<e.y)return{x:e.x,y:r.bottom}}return a=Math.abs(t.y-r.top)<=Math.abs(t.y-r.bottom),{x:e.x,y:a?r.top:r.bottom}}return t}function Ae(e,t,r){var a=e[t];for(let o=t+r;0<=o&&o<e.length;o+=r){var n=e[o];if(!Z(n,a,Ee))return n}return e[t+r]}function Ge(e,t){var r=e+4,a=t-4;return r<=a?{lo:r,hi:a}:{lo:(e+t)/2,hi:(e+t)/2}}function $e(e,t,r){var{lo:t,hi:r}=Ge(t,r);return Math.min(r,Math.max(t,e))}function De(e){var t=Math.max(...e.map(e=>e.lo));if(!((e=Math.min(...e.map(e=>e.hi)))<t))return{lo:t,hi:e}}function He(e,t){return"left"===t||"right"===t?Ge(e.top,e.bottom):Ge(e.left,e.right)}function je(e,t,r){var a=e.y>=r.top-Ee&&e.y<=r.bottom+Ee,n=r.left-Ee<=e.x&&e.x<=r.right+Ee;if(ee(e,t,Ee)&&a){if(Math.abs(e.x-r.left)<Ee)return"left";if(Math.abs(e.x-r.right)<Ee)return"right"}if(U(e,t,Ee)&&n){if(Math.abs(e.y-r.top)<Ee)return"top";if(Math.abs(e.y-r.bottom)<Ee)return"bottom"}}function _e(e){return"left"===e||"right"===e}function Ve(e,t,r,a,n){var o=[],i=r?je(e,t,r):void 0;t=a?je(t,e,a):void 0;return r&&i&&_e(i)===n&&o.push(He(r,i)),a&&t&&_e(t)===n&&o.push(He(a,t)),0<o.length?De(o):void 0}function We(e,t,r,a,n){if((r=Ve(e,t,r,a,n))&&(a=n?e.y:e.x,r=Math.min(r.hi,Math.max(r.lo,a)),!(Math.abs(r-a)<Ee)))return n?[{x:e.x,y:r},{x:t.x,y:r}]:[{x:r,y:e.y},{x:r,y:t.y}]}function qe(e,t,r){var a,n;return 2!==e.length?e:([a,n]=e,ee(a,n,Ee)?We(a,n,t,r,!0)??e:U(a,n,Ee)?We(a,n,t,r,!1)??e:e)}function Je(e,t,r){return _e(r)?{x:e.x,y:$e(e.y,t.top,t.bottom)}:{x:$e(e.x,t.left,t.right),y:e.y}}function Ke(e,t,r,a,n,o){var i=e.map(e=>({...e}));for(let l=t;0<=l&&l<e.length;l+=r){var s=e[l];if(o&&!ee(s,a,Ee))break;if(!o&&!U(s,a,Ee))break;o?i[l].y=n.y:i[l].x=n.x}return i}function Qe(e,t,r){var a,n,o,i;return e.length<2||(n=e[a=r?0:e.length-1],!(o=Ae(e,a,r=r?1:-1)))||!(o=je(n,o,t))||(i=_e(o),Z(n,t=Je(n,t,o),Ee))?e:Ke(e,a,r,n,t,i)}function Ze(e,t,r){var a=Math.min(e.x,t.x)>=r.left-Ee&&Math.max(e.x,t.x)<=r.right+Ee,n=Math.min(e.y,t.y)>=r.top-Ee&&Math.max(e.y,t.y)<=r.bottom+Ee;return Math.abs(e.y-r.top)<Ee&&Math.abs(t.y-r.top)<Ee&&a?"top":Math.abs(e.y-r.bottom)<Ee&&Math.abs(t.y-r.bottom)<Ee&&a?"bottom":Math.abs(e.x-r.left)<Ee&&Math.abs(t.x-r.left)<Ee&&n?"left":Math.abs(e.x-r.right)<Ee&&Math.abs(t.x-r.right)<Ee&&n?"right":void 0}function Ue(e,t,r,a){switch(e){case"top":return U(t,r,Ee)&&r.y<a.top-Ee;case"bottom":return U(t,r,Ee)&&r.y>a.bottom+Ee;case"left":return ee(t,r,Ee)&&r.x<a.left-Ee;case"right":return ee(t,r,Ee)&&r.x>a.right+Ee}}function et(e,t,r){var a;return e.length<3?e:r?(r=Ze(e[0],e[1],t))&&Ue(r,e[1],e[2],t)?e.slice(1):e:(a=Ze(e[(r=e.length-1)-1],e[r],t))&&Ue(a,e[r-1],e[r-2],t)?e.slice(0,r):e}function tt(e,t,r){let a=e;var n;return t&&(a=et(a=(e=Ae(a,0,1))&&(e=ze(e,a[0],t))!==a[0]?[e,...a.slice(1)]:a,t,!0)),r&&(a=et(a=(n=Ae(a,e=a.length-1,-1))&&(n=ze(n,a[e],r,!0))!==a[e]?[...a.slice(0,e),n]:a,r,!1)),(e=qe(a,t,r))!==a||2===a.length?e:(t&&(a=Qe(a,t,!0)),a=r?Qe(a,r,!1):a)}function rt(e,t){for(var r of e){var a;(r=Fe(r,t,2))&&((a=tt(se(r.points,Ee),r.srcRect,r.dstRect)).length<3||(a=[a[0],{...a[0]},...a.slice(1,-1),a[a.length-1],{...a[a.length-1]}]),r.edge.points=a)}}function at(e){return new Map(e.map(e=>[e.id,e]))}function nt(e,t){let r=e.parentId,a=null;for(;r;){var n=t.get(r);if(!n?.isGroup)break;a=n.id,r=n.parentId}return a}function ot(e,t){let r=0,a=e.parentId;for(;a;){var n=t.get(a);if(!n?.isGroup)break;r++,a=n.parentId}return r}function it(e){let t=1/0,r=-1/0,a=1/0,n=-1/0;for(var o of e){var i,s=o.x,l=o.y;"number"==typeof s&&"number"==typeof l&&(i=o.width??0,o=o.height??0,t=Math.min(t,s-i/2),r=Math.max(r,s+i/2),a=Math.min(a,l-o/2),n=Math.max(n,l+o/2))}return t===1/0||a===1/0?null:{minX:t,maxX:r,minY:a,maxY:n}}function st(e,t){var r=e.padding??20;e.x=(t.minX+t.maxX)/2,e.y=(t.minY+t.maxY)/2,e.width=Math.max(0,t.maxX-t.minX)+r,e.height=Math.max(0,t.maxY-t.minY)+r}function lt(e){let t=at(e);for(let a of e.filter(e=>e.isGroup&&e.parentId).sort((e,r)=>ot(r,t)-ot(e,t))){var r=it(e.filter(e=>e.parentId===a.id));r&&st(a,r)}}function dt(e,t){var r,n=e.nodes??[],o=(e=e.edges??[],n.filter(e=>!e.isGroup));let i=1/0,s=-1/0;for(r of o){var l=r[t];"number"==typeof l&&(i=Math.min(i,l),s=Math.max(s,l))}if(!Number.isFinite(i)||!Number.isFinite(s))return!1;var d,f,h=a(e=>i+s-e,"mirror");for(d of n){var g;(g=("number"==typeof(g=d[t])&&(d[t]=h(g)),d.groupTitleRect))&&(d.groupTitleRect="x"===t?{...g,left:h(g.right),right:h(g.left)}:{...g,top:h(g.bottom),bottom:h(g.top)})}for(f of e)for(var u of f.points??[])u[t]=h(u[t]);return!0}function ft(e){return!(e.nodes??[]).some(e=>!e.isGroup)||dt(e,"y")}function ht(e,t="LR"){var r,a=e.nodes??[],n=e.edges??[],o=a.filter(e=>!e.isGroup);let i=1/0,s=1/0;for(r of o){var l=r.x??0,d=r.y??0;l<i&&(i=l),d<s&&(s=d)}if(!Number.isFinite(i)||!Number.isFinite(s))return!1;var f;let h=0,g=0;for(f of o)h+=f.width??0,g+=f.height??0;var u,c,p=h/o.length,x=0<(B=g/o.length)?Math.max(1,p/B):1;for(u of o){var m=u.x??0,y=((u.y??0)-s)*x+36;m=m-i;u.x=y,u.y=m}for(c of n)if(c.points)for(var v of c.points){var b=v.x,M=(v.y-s)*x+36;b=b-i;v.x=M,v.y=b}if(lt(a),p=a.filter(e=>e.isGroup&&!e.parentId),0===p.length)"RL"===t&&dt(e,"x");else{var I,w,S,C,L=at(a),k=new Map;for(I of a)I.isGroup||(w=nt(I,L))&&((S=k.get(w)??[]).push(I),k.set(w,S));let r=0;for(C of p){var T=C.padding??0;T>r&&(r=T)}var O,R=[];let n=1/0,o=-1/0;for(O of p){var N=it(k.get(O.id)??[]);N&&(n=Math.min(n,N.minX),o=Math.max(o,N.maxX),R.push({lane:O,contentTop:N.minY,contentBottom:N.maxY,centerY:(N.minY+N.maxY)/2}))}if(n!==1/0&&o!==-1/0){var B,E=36+(B=Math.max(0,o-n)+2*Math.max(r,10)),F=(n+o)/2-B/2-36,Y=F+E/2,X=Math.max(r,36);R.sort((e,t)=>e.centerY-t.centerY);for(let e=0;e<R.length;e++){var P=R[e];let t,r;t=0===e?P.contentTop-X:(R[e-1].contentBottom+P.contentTop)/2,r=e===R.length-1?P.contentBottom+X:(z=R[e+1],(P.contentBottom+z.contentTop)/2);var z=Math.max(0,r-t),A=(t+r)/2;P.lane.x=Y,P.lane.y=A,P.lane.width=E,P.lane.height=z,P.lane.swimlaneContentTop=P.contentTop,P.lane.groupTitleRect={left:F,right:36+F,top:t,bottom:r}}"RL"===t&&dt(e,"x")}}return!0}a(Fe,"endpointContextFor"),a(Ye,"segmentEnterPoint"),a(Xe,"clipEndpoint"),a(Pe,"clipEdgeEndpointsToNodeBoundaries"),a(ze,"snapEndpointToBoundary"),a(Ae,"firstDistinctAdjacent"),a(Ge,"cornerClearanceRange"),a($e,"clampToCornerClearance"),a(De,"intersectRanges"),a(He,"clearanceRangeForSide"),a(je,"terminalSideForSegment"),a(_e,"isHorizontalSide"),a(Ve,"straightClearanceRange"),a(We,"clearStraightEndpointCornerAxis"),a(qe,"clearStraightEndpointCornerConnections"),a(Je,"cornerClearedEndpoint"),a(Ke,"moveCollinearEndpointRun"),a(Qe,"clearEndpointCornerConnection"),a(Ze,"borderSideForSegment"),a(Ue,"leavesOutward"),a(et,"collapseOwnBorderStub"),a(tt,"snapAndCollapseEndpoints"),a(rt,"prepareEdgeEndpointsForRenderer"),a(at,"buildNodeMap"),a(nt,"resolveTopLevelGroupId"),a(ot,"groupDepth"),a(it,"boundsForChildren"),a(st,"applyGroupBounds"),a(lt,"recomputeNestedGroupBounds"),a(dt,"mirrorAxis"),a(ft,"applyBtDirectionTransform"),a(ht,"applyLrDirectionTransform");var gt=1e-6,ut=[0,8,-8,16,-16];function ct(e,t){var r,{nodeInfoById:a,realNodeRects:n}=ve(t);for(r of e)if(!r.isLayoutOnly){if((o=r.points)&&!(o.length<4)&&(o=le(se(o,gt),gt))){var o,i=o.p3,s="HVH"===o.kind;if(o=Ie(r,a,gt)){var{srcId:l,dstId:d,srcInfo:f,dstInfo:h,collinearX:o,collinearY:g}=o;if(!o&&!g){let t;var u,c=f.rect;for(u of ut){let a,o,g;if(s){var p=h.cy>f.cy?c.bottom:c.top,x=f.cx+u;if(x<=c.left+gt||x>=c.right-gt)continue;a={x:x,y:p},o={x:x,y:i.y}}else{if(p=h.cx>f.cx?c.right:c.left,(x=f.cy+u)<=c.top+gt||x>=c.bottom-gt)continue;a={x:p,y:x},o={x:i.x,y:x}}g={x:i.x,y:i.y};var m=Z(a,o,gt),y=Z(o,g,gt);if((!m||!y)&&(m||!we(a,o,n,[l],1))&&(y||!we(o,g,n,[d],1))){var v=!m&&Le(a,o,e,r,{epsilon:gt,skipDegenerateOther:!0}),b=!y&&Le(o,g,e,r,{epsilon:gt,skipDegenerateOther:!0});if(!v&&!b){t=m?[o,g]:y?[a,o]:[a,o,g];break}}}t&&(r.points=t)}}}}}function pt(e,t){let r=.001;var{realNodeRects:n,labelNodeRects:o}=be(t.values());for(let C of e)if(!C.isLayoutOnly){if((s=C.points)&&!(s.length<4)){var i=se(s,r);if(!(i.length<4)){var s,l=i[s=i.length-1],d=i[s-1],f=i[s-2],h=l.x-d.x;if(!(10<=(h=Math.hypot(h,l.y-d.y))||h<r)){h=d.x-f.x;var g=d.y-f.y;if(!((u=Math.hypot(h,g))<r)){var u=te(d,l,r),c=(l=re(d,l,r),te(f,d,r));d=re(f,d,r);if((u&&d||l&&c)&&(u=C.end,l=C.start,c=u?t.get(u):void 0)){var p=c.x??0,x=c.y??0;if(c=pe(c)){let L,k;if(k=d?(L={x:p,y:f.y},{x:p,y:g<0?c.bottom:c.top}):(L={x:f.x,y:x},{x:0<h?c.right:c.left,y:x}),!we(L,k,n,u?[u]:[],-2)&&!we(L,k,o,[],-2)){if(l&&(p=(d=t.get(l))?pe(d):void 0)&&fe(L,p,2))continue;let o=a((e,t)=>`${e.x.toFixed(3)},${e.y.toFixed(3)}|${t.x.toFixed(3)},`+t.y.toFixed(3),"ownSegmentKey"),T=new Set;for(let e=0;e<i.length-1;e++)T.add(o(i[e],i[e+1]));if(g=a((t,a)=>{for(var n of e)if(n!==C&&!n.isLayoutOnly){var i=n.points;if(i&&!(i.length<2))for(let e=0;e<i.length-1;e++){var s=i[e],l=i[e+1];if(!T.has(o(s,l))&&ke(t,a,s,l,r))return!0}}return!1},"segmentCrossesOtherEdge"),!g(L,k)){if(0<=s-3){if(f=i[s-3],h=[l,u].filter(e=>Boolean(e)),we(f,L,n,h,-2))continue;if(g(f,L))continue}var m=[...i.slice(0,s-2),L,k];if((c=(C.points=m,C.labelNodeId))&&(x=t.get(c))){var y=x.width??0,v=x.height??0;if(0<y&&0<v){let e,t,a=-1;for(let n=0;n<m.length-1;n++){var b=m[n],M=m[n+1],I=Math.hypot(M.x-b.x,M.y-b.y),w=ee(b,M,r),S=U(b,M,r);(w&&y+2<=I||S&&v+2<=I)&&I>a&&(a=I,e=(b.x+M.x)/2,t=(b.y+M.y)/2)}void 0!==e&&void 0!==t&&(x.x=e,x.y=t)}}}}}}}}}}}}a(ct,"portSwapToLShape"),a(pt,"collapseShortTerminalStub");var xt=.001,mt=oe,yt=a((e,t)=>U(e,t,xt)||ee(e,t,xt),"orthogonallyAligned");function vt(e,t){let r=a((e,t)=>{var r=e.x??0,a=e.y??0,n=t.x-r;t=t.y-a;let o=(e.width??0)/2,i=(e.height??0)/2;return Math.abs(t)*o>Math.abs(n)*i?(t<0&&(i=-i),{x:r+(0==t?0:i*n/t),y:a+i}):{x:r+(o=n<0?-o:o),y:a+(0==n?0:o*t/n)}},"rectIntersect"),n=a((e,a)=>{if(!((l=se(e.points??[])).length<2)){var n=a?e.start:e.end,o=(i=n?t.get(n):void 0)?pe(i):void 0;if(i&&n&&o){var i,s=a?l[0]:l[l.length-1],l=a?l[1]:l[l.length-2];let t=s;return U(i=r(i,s),t=yt(l,i)?l:t,xt)?{edge:e,edgeId:String(e.id??""),nodeId:n,atStart:a,orientation:"V",coord:i.x,min:Math.min(i.y,t.y),max:Math.max(i.y,t.y),boundary:i,railEnd:t,rect:o}:ee(i,t,xt)?{edge:e,edgeId:String(e.id??""),nodeId:n,atStart:a,orientation:"H",coord:i.y,min:Math.min(i.x,t.x),max:Math.max(i.x,t.x),boundary:i,railEnd:t,rect:o}:void 0}}},"terminalLaneFor"),o=a((e,t)=>Math.max(0,Math.min(e.max,t.max)-Math.max(e.min,t.min)),"projectedOverlapLength"),i=a((e,t)=>e.nodeId===t.nodeId&&e.orientation===t.orientation&&("H"===e.orientation?(Math.abs(e.boundary.x-e.rect.left)<1||Math.abs(e.boundary.x-e.rect.right)<1)&&U(e.boundary,t.boundary,1):(Math.abs(e.boundary.y-e.rect.top)<1||Math.abs(e.boundary.y-e.rect.bottom)<1)&&ee(e.boundary,t.boundary,1)),"sameTerminalFace"),s=a((e,t)=>e.nodeId===t.nodeId&&e.orientation===t.orientation&&8<=o(e,t)&&Math.abs(e.coord-t.coord)<.5,"exactTerminalLaneConflict"),l=a((e,t)=>{var r,a;return e.nodeId===t.nodeId&&e.orientation===t.orientation&&"H"===e.orientation&&e.atStart!==t.atStart&&!((r=o(e,t))<8)&&!(r<(a=e.rect.bottom-e.rect.top)||2*a<r)&&i(e,t)&&Math.abs(e.coord-t.coord)<16},"nearTerminalLaneConflict");var d=a((e,t)=>{var r=se(e.edge.points??[]);if(!(r.length<2)){let i="V"===e.orientation?{x:e.boundary.x+t,y:e.boundary.y}:{x:e.boundary.x,y:e.boundary.y+t};var n,o;t="V"===e.orientation?{x:e.railEnd.x+t,y:e.railEnd.y}:{x:e.railEnd.x,y:e.railEnd.y+t};if(a(()=>Math.abs(e.boundary.y-e.rect.top)<1||Math.abs(e.boundary.y-e.rect.bottom)<1?ee(i,e.boundary,xt)&&i.x>=e.rect.left+1&&i.x<=e.rect.right-1:(Math.abs(e.boundary.x-e.rect.left)<1||Math.abs(e.boundary.x-e.rect.right)<1)&&U(i,e.boundary,xt)&&i.y>=e.rect.top+1&&i.y<=e.rect.bottom-1,"boundaryStaysOnSameFace")())return e.atStart?(o=1<r.length&&Z(r[1],e.railEnd,xt),(n=(o=r.slice(o?2:1))[0])&&!yt(n,t)?void 0:[i,t,...o]):(n=1<r.length&&Z(r[r.length-2],e.railEnd,xt),!(r=(o=r.slice(0,n?-2:-1))[o.length-1])||yt(r,t)?[...o,t,i]:void 0)}},"shiftedCandidate");let f=a(e=>{var r,a,n,o,i=se((e=e.edge).points??[]);return 2===i.length&&(a=e.start,e=e.end,a=a?t.get(a):void 0,e=e?t.get(e):void 0,!(!a||!e))&&(r=a.x??0,a=a.y??0,n=e.x??0,e=e.y??0,[i,o]=i,ee(i,o,xt)&&Math.abs(a-e)<1&&1<Math.abs(r-n)||U(i,o,xt)&&Math.abs(r-n)<1&&1<Math.abs(a-e))},"laneIsStraightCollinearConnector");var h=[-7,7,-14,14,-21,21];for(let t=0;t<8;t++){var g=e.filter(e=>!e.isLayoutOnly).flatMap(e=>[n(e,!0),n(e,!1)]).filter(e=>Boolean(e));let t=!1;for(let e=0;e<g.length&&!t;e++)for(let r=e+1;r<g.length&&!t;r++){var u=g[e],c=g[r];if(u.edge!==c.edge&&(s(u,c)||l(u,c))){let e=!s(u,c);for(let r of[u,c].sort((e,t)=>{var r=f(e),a=f(t);return r!==a?Number(r)-Number(a):Number(!t.atStart)-Number(!e.atStart)})){for(var p of h)if(p=d(r,p)){let a=n({...r.edge,points:p},r.atStart);if(a&&!g.some(t=>t.edge!==r.edge&&(s(a,t)||e&&l(a,t)))){r.edge.points=p,t=!0;break}}if(t)break}}}if(!t)return}}function bt(e,t){let{realNodeRects:r,labelNodeRects:n}=be(t.values());var o=a((t,a)=>{var o=t.start,i=t.end,s=mt(a);if(s.length!==a.length-1)return!1;var l,d,f=[o,i].filter(e=>Boolean(e));for(l of s){if(we(l.a,l.b,r,f,-2))return!1;if(we(l.a,l.b,n,[],-2))return!1}for(d of e)if(d!==t&&!d.isLayoutOnly){var h=d.points;if(h&&!(h.length<2))for(var g of s)for(var u of mt(se(h))){if(ne(g,u,.5)>=8)return!1;if(ke(g.a,g.b,u.a,u.b,xt))return!1}}return!0},"candidateIsSafe"),i=a((e,t)=>{if(!(t+4>=e.length)){var r=e[t],a=e[t+1],n=e[t+2],o=e[t+3],i=e[t+4],s=te(r,a)&&re(a,n)&&te(n,o)&&re(o,i)&&U(r,o,xt)&&U(r,i,xt)&&U(a,n,xt)&&(a.x-r.x)*(o.x-n.x)<0,l=re(r,a)&&te(a,n)&&re(n,o)&&te(o,i)&&ee(r,o,xt)&&ee(r,i,xt)&&ee(a,n,xt)&&(a.y-r.y)*(o.y-n.y)<0;if(s||l)return se([...e.slice(0,t+1),i,...e.slice(t+5)]);if(!(t+5>=e.length)&&(s=e[t+5],l=re(r,a)&&te(a,n)&&re(n,o)&&te(o,i)&&re(i,s)&&U(r,i,xt)&&U(r,s,xt)&&U(n,o,xt)&&(n.x-a.x)*(i.x-o.x)<0,r=te(r,a)&&re(a,n)&&te(n,o)&&re(o,i)&&te(i,s)&&ee(r,i,xt)&&ee(r,s,xt)&&ee(n,o,xt)&&(n.y-a.y)*(i.y-o.y)<0,l||r))return se([...e.slice(0,t+1),s,...e.slice(t+6)])}},"withoutDogleg");for(let t=0;t<8;t++){let t=!1;for(var s of e)if(!s.isLayoutOnly){var l=se(s.points??[]);for(let e=0;e<=l.length-5;e++){var d=i(l,e);if(d&&o(s,d)){s.points=d,t=!0;break}}if(t)break}if(!t)return}}function Mt(e,t){let{realNodeRects:r,labelNodeRects:n}=be(t.values()),o=e.filter(e=>!e.isLayoutOnly),i=a((e,t,r)=>se(e===t?r??[]:e.points??[]),"pointsFor"),s=a((e,t)=>{let r=0;for(let d=0;d<o.length;d++){var a=mt(i(o[d],e,t));for(let f=d+1;f<o.length;f++){var n,s=mt(i(o[f],e,t));for(n of a)for(var l of s)ke(n.a,n.b,l.a,l.b,xt)&&r++}}return r},"strictCrossingCount");var l=a(e=>{if(3===(e=mt(e)).length){var t=e[1];if(e[0].horizontal!==t.horizontal&&e[2].horizontal!==t.horizontal)return{index:t.index,horizontal:t.horizontal,vertical:t.vertical,segment:t}}},"middleRail"),d=a((e,t)=>{let a=[e.start,e.end].filter(e=>Boolean(e));return r.filter(e=>!a.includes(e.id)&&(e=e.rect,t.horizontal?8<=ae(t.a.x,t.b.x,e.left,e.right)&&t.a.y>=e.top-2&&t.a.y<=e.bottom+2:8<=ae(t.a.y,t.b.y,e.top,e.bottom)&&t.a.x>=e.left-2&&t.a.x<=e.right+2))},"blockingRectsFor"),f=a((e,t,r)=>{if(e=e.map(e=>({...e})),t.horizontal)e[t.index].y=r,e[t.index+1].y=r;else{if(!t.vertical)return;e[t.index].x=r,e[t.index+1].x=r}return t=Be(se(e)),mt(t).length===t.length-1?t:void 0},"candidateByMovingRail"),h=a((e,t,a)=>{var l,d,f=[e.start,e.end].filter(e=>Boolean(e)),h=mt(t);if(h.length!==t.length-1)return!1;for(l of h){if(we(l.a,l.b,r,f,-2))return!1;if(we(l.a,l.b,n,[],-2))return!1}for(d of o)if(d!==e)for(var g of h)for(var u of mt(i(d)))if(ne(g,u,.5)>=8)return!1;return s(e,t)<=a},"candidateIsSafe");for(let e=0;e<8;e++){var g,u=s();let e=!1;for(g of o){var c=i(g),p=l(c);if(p){var x,m=d(g,p.segment);if(0!==m.length){for(x of p.horizontal?[Math.min(...m.map(e=>e.rect.top))-20,Math.max(...m.map(e=>e.rect.bottom))+20]:[Math.min(...m.map(e=>e.rect.left))-20,Math.max(...m.map(e=>e.rect.right))+20]){var y=f(c,p.segment,x);if(y&&h(g,y,u)){g.points=y,e=!0;break}}if(e)break}}}if(!e)return}}function It(e,t){let r=a(e=>{if((e=e.groupTitleRect)&&"number"==typeof e.left&&"number"==typeof e.right&&"number"==typeof e.top&&"number"==typeof e.bottom&&Number.isFinite(e.left)&&Number.isFinite(e.right)&&Number.isFinite(e.top)&&Number.isFinite(e.bottom)&&!(e.right<=e.left)&&!(e.bottom<=e.top))return{left:e.left,right:e.right,top:e.top,bottom:e.bottom}},"validTitleRect");var n=a(e=>{if(e.isGroup&&!e.parentId&&("LR"!==(t="string"==typeof(t=e.direction)?t.toUpperCase():"")&&"RL"!==t&&"BT"!==t)){var t=r(e),a=e.y,n=e.height;if(t&&"number"==typeof a&&"number"==typeof n&&Number.isFinite(a)&&Number.isFinite(n)&&!(n<=0)&&(a=t.right-t.left,!((n=t.bottom-t.top)<=0||a<n)))return{node:e,rect:t}}},"topLaneTitleFor"),o=a((e,t)=>{var r;return!!e.horizontal&&!((r=e.a.y)<=t.top+xt||r>=t.bottom-xt)&&ae(e.a.x,e.b.x,t.left,t.right)>=8},"horizontalSegmentIntersectsTitle"),i=[...t.values()].map(n).filter(e=>Boolean(e));if(0!==i.length){let t=0;for(var s of e)if(!s.isLayoutOnly){var l;s=se(s.points??[]);for(l of mt(s))for(var d of i)o(l,d.rect)&&(t=Math.max(t,d.rect.bottom-l.a.y+4))}if(!(t<=xt))for(var f of i){var h=f.node.y,g=f.node.height;"number"!=typeof h||"number"!=typeof g||!Number.isFinite(h)||!Number.isFinite(g)||g<=0||(f.node.y=h-t/2,f.node.height=g+t,f.node.groupTitleRect={...f.rect,top:f.rect.top-t,bottom:f.rect.bottom-t})}}}function wt(e,t){let r=a(e=>{if((e=e.groupTitleRect)&&"number"==typeof e.left&&"number"==typeof e.right&&"number"==typeof e.top&&"number"==typeof e.bottom&&Number.isFinite(e.left)&&Number.isFinite(e.right)&&Number.isFinite(e.top)&&Number.isFinite(e.bottom)&&!(e.right<=e.left)&&!(e.bottom<=e.top))return{left:e.left,right:e.right,top:e.top,bottom:e.bottom}},"validTitleRect");var n=a(e=>{if(e.isGroup&&!e.parentId&&"LR"===(t=e.direction)){var t=r(e),a=e.x,n=e.width;if(t&&"number"==typeof a&&"number"==typeof n&&Number.isFinite(a)&&Number.isFinite(n)&&!(n<=0)&&(a=t.right-t.left,n=t.bottom-t.top,!(a<=0||n<a)))return{node:e,rect:t}}},"leftLaneTitleFor"),o=a((e,t)=>{var r;return!!e.vertical&&!((r=e.a.x)<=t.left+xt||r>=t.right-xt)&&ae(e.a.y,e.b.y,t.top,t.bottom)>=8},"verticalSegmentIntersectsTitle"),i=a((e,t)=>{var r;return!!e.horizontal&&!((r=e.a.y)<=t.top+xt||r>=t.bottom-xt)&&ae(e.a.x,e.b.x,t.left,t.right)>=8},"horizontalSegmentIntersectsTitle"),s=[...t.values()].map(n).filter(e=>Boolean(e));if(0!==s.length){let t=0;for(var l of e)if(!l.isLayoutOnly){var d,f;l=se(l.points??[]);for(d of mt(l))for(var h of s)o(d,h.rect)?t=Math.max(t,h.rect.right-d.a.x+4):i(d,h.rect)&&(f=Math.min(d.a.x,d.b.x),t=Math.max(t,h.rect.right-f+4))}if(!(t<=xt))for(var g of s){var u=g.node.x,c=g.node.width;"number"!=typeof u||"number"!=typeof c||!Number.isFinite(u)||!Number.isFinite(c)||c<=0||(g.node.x=u-t/2,g.node.width=c+t,g.node.groupTitleRect={...g.rect,left:g.rect.left-t,right:g.rect.right-t})}}}function St(e,t){let r=be(t.values()).realNodeRects,n=e.filter(e=>!e.isLayoutOnly),o=a((e,t=new Map)=>se(t.get(e)??e.points??[]),"replacementPointsFor");var i=a((e=new Map)=>{let t=0;for(let l=0;l<n.length;l++){var r=mt(o(n[l],e));for(let d=l+1;d<n.length;d++){var a,i=mt(o(n[d],e));for(a of r)for(var s of i)ke(a.a,a.b,s.a,s.b,xt)&&t++}}return t},"crossingCount"),s=a((e=new Map)=>n.reduce((t,r)=>t+ie(o(r,e)),0),"totalBends"),l=a(e=>{if(!((e=o(e)).length<4)){var t=e[e.length-2];if(te(t,e=e[e.length-1],xt)||re(t,e,xt))return{tailStart:t,terminal:e}}},"terminalTailFor"),d=a((e,t)=>{if(!((e=o(e)).length<3)){var r=e[0];let a;if(te(r,e=e[1],xt))a={x:e.x,y:t.tailStart.y};else{if(!re(r,e,xt))return;a={x:t.tailStart.x,y:e.y}}return r=Be(se([r,e,a,t.tailStart,t.terminal])),mt(r).length===r.length-1?r:void 0}},"candidateWithDestinationTail");let f=a((e,t)=>{var a,n=[e.start,e.end].filter(e=>Boolean(e));for(a of mt(t))if(we(a.a,a.b,r,n,-2))return!0;return!1},"pathHasNodeHit"),h=a((e,t,r)=>{for(var a of n)if(a!==e)for(var i of mt(t))for(var s of mt(o(a,r)))if(ne(i,s,.5)>=8)return!0;return!1},"pathHasSharedTrack");var g=a((e,t,r)=>!f(e,t)&&!h(e,t,r),"candidateIsSafe"),u=a(()=>{var e,r=new Map;for(e of n){var a,i=e.end;i&&t.has(i)&&(o(e).length<4||((a=r.get(i)??[]).push(e),r.set(i,a)))}return r},"edgesByDestination");for(let e=0;e<4;e++){var c,p,x,m=i();if(0===m)return;let e,t=m,r=s();for(c of u().values())for(let a=0;a<c.length;a++)for(let n=a+1;n<c.length;n++){var y=c[a],v=c[n],b=l(y),M=l(v);b&&M&&(M=d(y,M),b=d(v,b),M)&&b&&g(y,M,y=new Map([[y,M],[v,b]]))&&g(v,b,y)&&(M=i(y),v=s(y),m<=M||M>t||M===t&&v>=r||(e=y,t=M,r=v))}if(!e)return;for([p,x]of e)p.points=x}}function Ct(e,t){let{realNodeRects:r,labelNodeRects:n}=be(t.values()),o=e.filter(e=>!e.isLayoutOnly),i=a((e,t=new Map)=>se(t.get(e)??e.points??[]),"replacementPointsFor");var s=a((e=new Map)=>{let t=0;for(let l=0;l<o.length;l++){var r=mt(i(o[l],e));for(let d=l+1;d<o.length;d++){var a,n=mt(i(o[d],e));for(a of r)for(var s of n)ke(a.a,a.b,s.a,s.b,xt)&&t++}}return t},"strictCrossingCount"),l=a((e=new Map)=>o.reduce((t,r)=>t+ie(i(r,e)),0),"totalBends");let d=a(e=>{var r=e.start;e=e.end,r=r?t.get(r):void 0,e=e?t.get(e):void 0,r=r?pe(r):void 0,e=e?pe(e):void 0;return r&&e?{src:r,dst:e}:void 0},"endpointRectsFor"),f=a((e,t,r)=>{if(!(r.index<=0||r.index+1>=t.length-1)){var a,n,o,i=d(e);if(i)return r.vertical?(o=r.a.x,n=Math.min(i.src.left,i.dst.left),a=Math.max(i.src.right,i.dst.right),(n=o<n-xt?"left":a+xt<o?"right":void 0)?{edge:e,points:t,segmentIndex:r.index,axis:"vertical",side:n,coord:o,min:Math.min(r.a.y,r.b.y),max:Math.max(r.a.y,r.b.y)}:void 0):r.horizontal&&(a=r.a.y,n=Math.min(i.src.top,i.dst.top),o=Math.max(i.src.bottom,i.dst.bottom),i=a<n-xt?"top":o+xt<a?"bottom":void 0)?{edge:e,points:t,segmentIndex:r.index,axis:"horizontal",side:i,coord:a,min:Math.min(r.a.x,r.b.x),max:Math.max(r.a.x,r.b.x)}:void 0}},"externalRailForSegment");var h=a(()=>{var e,t=[];for(e of o){var r,a=i(e);for(r of mt(a)){var n=f(e,a,r);n&&t.push(n)}}return t},"collectExternalRails");let g=a((e,t)=>e.edge!==t.edge&&e.axis===t.axis&&e.side===t.side&&ae(e.min,e.max,t.min,t.max)>=8,"railsInteract");var u=a(e=>{var t,r=[],a=new Set;for(t of e)if(!a.has(t)){var n=[t],o=[];for(a.add(t);0<n.length;){var i,s=n.pop();for(i of(o.push(s),e))!a.has(i)&&g(s,i)&&(a.add(i),n.push(i))}1<o.length&&r.push(o)}return r},"connectedComponents");let c=a(e=>{var t=[];for(let r of e)t.some(e=>Math.abs(e-r.coord)<xt)||t.push(r.coord);for(;t.length<e.length;){var r=Math.min(...t),a=Math.max(...t),n=e[0].side;t.push("left"===n||"top"===n?r-12*(e.length-t.length):a+12*(e.length-t.length))}return t},"uniqueCoordsFor");var p=a(e=>{let t=e.map(e=>e.coord),r=c(e),n=[];if(e.length<=6){let o=new Array(r.length).fill(!1),i=[],s=a(()=>{if(i.length===e.length)i.some((e,r)=>Math.abs(e-t[r])>=xt)&&n.push([...i]);else for(var[a,l]of r.entries())o[a]||(o[a]=!0,i.push(l),s(),i.pop(),o[a]=!1)},"visit");s()}else for(let e=0;e<t.length;e++)for(let r=e+1;r<t.length;r++){var o=[...t];[o[e],o[r]]=[o[r],o[e]],n.push(o)}return n},"coordinateAssignmentsFor"),x=a((e,t)=>{var r,a,n=new Map;for([r,a]of e.entries()){var o=t[r],i=n.get(a.edge)??a.points.map(e=>({x:e.x,y:e.y}));"vertical"===a.axis?(i[a.segmentIndex].x=o,i[a.segmentIndex+1].x=o):(i[a.segmentIndex].y=o,i[a.segmentIndex+1].y=o),n.set(a.edge,i)}var s,l,d=new Map;for([s,l]of n){var f=Be(se(l));if(mt(f).length!==f.length-1)return;d.set(s,f)}return d},"replacementsForAssignment"),m=a(e=>{for(var[t,a]of e){var s,l=[t.start,t.end].filter(e=>Boolean(e));for(s of mt(a)){if(we(s.a,s.b,r,l,-2))return!1;if(we(s.a,s.b,n,[],-2))return!1}}for(let t=0;t<o.length;t++){var d=o[t],f=e.has(d),h=mt(i(d,e));for(let r=t+1;r<o.length;r++){var g=o[r];if(f||e.has(g)){var u,c=mt(i(g,e));for(u of h)for(var p of c)if(ne(u,p,.5)>=8)return!1}}}return!0},"candidateIsSafe");for(let e=0;e<4;e++){var y,v,b,M=s();if(0===M)return;let e,t=M,r=l(),a=Number.POSITIVE_INFINITY;for(y of u(h()))for(let n of p(y)){var I,w,S,C=x(y,n);C&&m(C)&&(M<=(I=s(C))||(w=l(C),S=y.reduce((e,t,r)=>e+Math.abs(n[r]-t.coord),0),I>t)||I===t&&(w>r||w===r&&S>=a)||(e=C,t=I,r=w,a=S))}if(!e)return;for([v,b]of e)v.points=b}}function Lt(e,t){let{realNodeRects:r,labelNodeRects:n}=be(t.values()),o=e.filter(e=>!e.isLayoutOnly),i=a((e,t,r)=>se(e===t?r??[]:e.points??[]),"pointsFor");var s=a(e=>mt(e).reduce((e,t)=>{var r=t.a.x-t.b.x;t=t.a.y-t.b.y;return e+Math.hypot(r,t)},0),"pathLength");let l=a((e,t)=>{let r=0;for(let d=0;d<o.length;d++){var a=mt(i(o[d],e,t));for(let f=d+1;f<o.length;f++){var n,s=mt(i(o[f],e,t));for(n of a)for(var l of s)ke(n.a,n.b,l.a,l.b,xt)&&r++}}return r},"strictCrossingCount"),d=a((e,t)=>{var r;return e.horizontal?(r=e.a.y,(Math.abs(r-t.top)<1||Math.abs(r-t.bottom)<1)&&ae(e.a.x,e.b.x,t.left,t.right)>=8):!!e.vertical&&(r=e.a.x,Math.abs(r-t.left)<1||Math.abs(r-t.right)<1)&&ae(e.a.y,e.b.y,t.top,t.bottom)>=8},"segmentRunsAlongRectBorder"),f=a(e=>{var r,a=[];for(r of[e.start,e.end].filter(e=>Boolean(e))){var n;(n=(n=t.get(r))?pe(n):void 0)&&a.push(n)}return a},"endpointRectsFor");var h=a((e,t)=>{if(t+3>=e.length)return[];var r=e[t],a=e[t+1],n=e[t+2];let o=e[t+3];var i=te(r,a,xt)&&re(a,n,xt)&&te(n,o,xt),s=re(r,a,xt)&&te(a,n,xt)&&re(n,o,xt);if(!i&&!s)return[];if(!(i?Math.sign(a.x-r.x)!==Math.sign(o.x-n.x):Math.sign(a.y-r.y)!==Math.sign(o.y-n.y)))return[];i=0===(s=U(r,o,xt)||ee(r,o,xt)?[]:[{x:r.x,y:o.y},{x:o.x,y:r.y}]).length?[[...e.slice(0,t+1),...e.slice(t+3)]]:s.map(r=>[...e.slice(0,t+1),r,...e.slice(t+3)]);let l=new Set;return i.map(e=>Be(se(e))).filter(e=>mt(e).length===e.length-1&&!!e.some(e=>Z(e,o,xt))&&(e=e.map(e=>e.x.toFixed(3)+","+e.y.toFixed(3)).join("|"),!l.has(e))&&(l.add(e),!0))},"shortcutCandidatesAt"),g=a((e,t,a)=>{var s,h=[e.start,e.end].filter(e=>Boolean(e)),g=f(e);for(let e of mt(t)){if(we(e.a,e.b,r,h,-2))return!1;if(we(e.a,e.b,n,[],-2))return!1;if(g.some(t=>d(e,t)))return!1}for(s of o)if(s!==e)for(var u of mt(t))for(var c of mt(i(s)))if(ne(u,c,.5)>=8)return!1;return l(e,t)<=a},"candidateIsSafe");for(let e=0;e<8;e++){var u,c=l();let e,t,r=c,a=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY;for(u of o){var p=i(u),x=ie(p,xt),m=s(p);for(let o=0;o<=p.length-4;o++)for(var y of h(p,o)){var v,b=ie(y,xt),M=s(y);(b<x||b===x&&M<m-xt)&&g(u,y,c)&&((v=l(u,y))>r||v===r&&(b>a||b===a&&M>=n)||(e=u,t=y,r=v,a=b,n=M))}}if(!e||!t)return;e.points=t}}function kt(e,t){var r,n,o,i,s=[];for(r of t.values())r.isGroup||r.isEdgeLabel||(n=r.x??0,o=r.y??0,(i=pe(r))&&s.push({id:String(r.id??""),cx:n,cy:o,rect:i}));if(0!==s.length){let t=new Map(s.map(e=>[e.id,e])),r=s.map(e=>({id:e.id,rect:e.rect})),n=["top","bottom","left","right"],o={top:Math.min(...s.map(e=>e.rect.top))-20,bottom:Math.max(...s.map(e=>e.rect.bottom))+20,left:Math.min(...s.map(e=>e.rect.left))-20,right:Math.max(...s.map(e=>e.rect.right))+20},i=e.filter(e=>!e.isLayoutOnly),S=new Map(i.map((e,t)=>[e,t])),C=a(e=>{var t="left"===e||"top"===e?-1:1,r=[];for(let a=0;a<=2;a++)r.push(o[e]+20*t*a);return r},"outwardTracksForSide"),L=a((e,t=new Map)=>se(t.get(e)??e.points??[]),"replacementPointsFor"),k=a((e,t)=>{let r=0;for(var a of e)for(var n of t)ke(a.a,a.b,n.a,n.b,xt)&&r++;return r},"crossingCountBetweenSegments"),T=a((e,t)=>k(mt(e),mt(t)),"crossingCountBetweenPaths");var l=a((e=new Map)=>{let t=0;var r=[];let n=new Set,o=[];var s=a(e=>{n.has(e)||(n.add(e),o.push(e))},"addEdge");for(let a=0;a<i.length;a++){var l=i[a],d=L(l,e);for(let n=a+1;n<i.length;n++){var f=i[n],h=T(d,L(f,e));0<h&&(t+=h,r.push({first:l,second:f,count:h}),s(l),s(f))}}return o.sort((e,t)=>(S.get(e)??0)-(S.get(t)??0)),{count:t,pairs:r,edgeSet:n,edges:o}},"crossingSnapshot");let O=a((e,t)=>{var r,a=new Set(t.keys());if(0===a.size)return e.count;let n=0;for(r of e.pairs)(a.has(r.first)||a.has(r.second))&&(n+=r.count);let o=0;for(let e=0;e<i.length;e++){var s=i[e],l=a.has(s),d=L(s,t);for(let r=e+1;r<i.length;r++){var f=i[r];(l||a.has(f))&&(o+=T(d,L(f,t)))}}return e.count-n+o},"crossingCountWithReplacements"),R=a(e=>{var t,r=new Map;for(t of e.pairs){var a;(a=((a=r.get(t.first)??new Set).add(t.second),r.set(t.first,a),r.get(t.second)??new Set)).add(t.first),r.set(t.second,a)}var n,o=[],i=new Set;for(n of e.edges)if(!i.has(n)){var s=[n],l=[];for(i.add(n);0<s.length;){var d,f=s.pop();for(d of(l.push(f),r.get(f)??[]))i.has(d)||(i.add(d),s.push(d))}l.sort((e,t)=>(S.get(e)??0)-(S.get(t)??0)),1<l.length&&o.push(l)}return o},"crossingComponents"),N=a(e=>[e.start,e.end].filter(e=>Boolean(e)),"endpointIdsFor"),B=a(e=>{var t,r=[];for(t of R(e)){var a=new Set(t);let e=new Set(t.flatMap(e=>N(e)));var n,o=[...t];for(n of i)a.has(n)||N(n).some(t=>e.has(t))&&o.push(n);o.sort((e,t)=>(S.get(e)??0)-(S.get(t)??0)),r.push(o)}return r},"pairSearchGroups");var d=a((e,t,r)=>O(e,new Map([[t,r]])),"crossingCountWithSingleReplacement");let E=a(e=>{var t,r=new Map;for(t of e.pairs)r.set(t.first,(r.get(t.first)??0)+t.count),r.set(t.second,(r.get(t.second)??0)+t.count);return r},"currentCrossingsByEdge"),F=a(e=>e.slice(1).reduce((t,r,a)=>(a=e[a],t+Math.abs(r.x-a.x)+Math.abs(r.y-a.y)),0),"pathLength"),Y=a((e=new Map)=>i.reduce((t,r)=>t+ie(L(r,e)),0),"totalBends"),X=a((e=new Map)=>i.reduce((t,r)=>t+F(L(r,e)),0),"totalLength");var f=a((e,t,r=new Map)=>{var a,n=mt(t);for(a of i)if(a!==e)for(var o of n)for(var s of mt(L(a,r)))if(ne(o,s,.5)>=8)return!0;return!1},"pathHasSegmentConflict");let P=a((e,t)=>{var a,n=[e.start,e.end].filter(e=>Boolean(e));for(a of mt(t))if(we(a.a,a.b,r,n,-2))return!0;return!1},"pathHitsNode"),z=a((e,t)=>{t=Be(se(t)),mt(t).length===t.length-1&&e.push(t)},"pushOrthogonalCandidate"),A=a(e=>"left"===e||"right"===e,"sideIsHorizontal"),G=a((e,t,r)=>{switch(t){case"left":return Math.min(e.x,r.x)-20;case"right":return Math.max(e.x,r.x)+20;case"top":return Math.min(e.y,r.y)-20;case"bottom":return Math.max(e.y,r.y)+20}},"localTrackForSameSide"),$=a((e,t,r,a)=>{var n,i="left"===r||"top"===r?-1:1;for(n of[G(t,r,a),o[r]])for(let o=0;o<=2;o++)z(e,ye(t,r,a,n+20*i*o))},"addSameSideCandidates"),D=a((e,t,r,a,n)=>{for(var o of C(r))for(var i of C(n))z(e,[t,{x:o,y:t.y},{x:o,y:i},{x:a.x,y:i},a])},"addHorizontalToVerticalCandidates"),H=a((e,t,r,a,n)=>{for(var o of C(r))for(var i of C(n))z(e,[t,{x:t.x,y:o},{x:i,y:o},{x:i,y:a.y},a])},"addVerticalToHorizontalCandidates"),j=a((e,t,r,a,n)=>{var o,i=[...C("top"),...C("bottom")];for(o of C(r))for(var s of C(n))for(var l of i)z(e,[t,{x:o,y:t.y},{x:o,y:l},{x:s,y:l},{x:s,y:a.y},a])},"addHorizontalPairCandidates"),_=a((e,t,r,a,n)=>{var o,i=[...C("left"),...C("right")];for(o of C(r))for(var s of C(n))for(var l of i)z(e,[t,{x:t.x,y:o},{x:l,y:o},{x:l,y:s},{x:a.x,y:s},a])},"addVerticalPairCandidates"),V=a(e=>{let t=new Set;return e.map(e=>se(e)).filter(e=>{var r=e.map(e=>e.x.toFixed(3)+","+e.y.toFixed(3)).join("|");return!(t.has(r)||e.length<2||(t.add(r),0))})},"dedupeCandidatePaths"),W=a((e,t,r,a)=>{var n=[],o=((o=me(e,t,r,a,20,xt))&&z(n,o),t===a&&$(n,e,t,r),A(t)),i=A(a);return(o&&!i?D:!o&&i?H:o?j:_)(n,e,t,r,a),V(n)},"buildCandidatesForSides"),q=a((e,t,r,a)=>{var o,i=[...C("left"),...C("right")],s=[...C("top"),...C("bottom")];for(o of n){var l,d=xe(a,o),f="top"===o||"bottom"===o?C(o):s;for(l of i)for(var h of(z(e,[t,r,{x:l,y:r.y},{x:l,y:d.y},d]),f))z(e,[t,r,{x:l,y:r.y},{x:l,y:h},{x:d.x,y:h},d])}},"addVerticalDepartureOuterTrackCandidates"),J=a((e,t,r,a)=>{var o,i=[...C("left"),...C("right")],s=[...C("top"),...C("bottom")];for(o of n){var l,d=xe(a,o),f="left"===o||"right"===o?C(o):i;for(l of s)for(var h of(z(e,[t,r,{x:r.x,y:l},{x:d.x,y:l},d]),f))z(e,[t,r,{x:r.x,y:l},{x:h,y:l},{x:h,y:d.y},d])}},"addHorizontalDepartureOuterTrackCandidates"),K=a(e=>{var r,a=e.start,n=(n=e.end)?t.get(n):void 0;return!a||!n||(a=se(e.points??[])).length<4?[]:(e=[],re(r=a[0],a=a[1],xt)?q(e,r,a,n):te(r,a,xt)&&J(e,r,a,n),e)},"terminalPreservingOuterTrackCandidates"),Q=a(e=>{var r=e.start,a=e.end,o=r?t.get(r):void 0,i=a?t.get(a):void 0;if(!o||!i)return[];var s,l=[];for(s of n){var d,f=xe(o,s);for(d of n)l.push(...W(f,s,xe(i,d),d))}return l.push(...K(e)),l},"candidatePathsFor"),Z=a(()=>new Map(i.map(e=>[e,mt(L(e))])),"currentSegmentsByEdge"),U=a((e,t,r)=>{var a,n=new Set;for(a of i)if(a!==e){let e=r.get(a)??mt(L(a));t.some(t=>e.some(e=>ne(t,e,.5)>=8))&&n.add(a)}return n},"sharedTrackConflictsFor"),ee=a((e,t,r,a)=>{let n=new Set;return Q(e).map(e=>Be(se(e))).filter(t=>{var r;return!(P(e,t)||(r=t.map(e=>e.x.toFixed(3)+","+e.y.toFixed(3)).join("|"),n.has(r))||t.length<2||(n.add(r),0))}).map(n=>{var o,s=mt(n);let l=0;for(o of i)o!==e&&(l+=k(s,r.get(o)??mt(L(o))));return{candidate:n,candidateSegments:s,crossings:t.count-(a.get(e)??0)+l,bends:ie(n,xt),totalBends:ie(n),length:F(n)}}).filter(({crossings:e})=>e<=t.count).sort((e,t)=>e.crossings-t.crossings||e.bends-t.bends||e.length-t.length).slice(0,48).map(t=>({path:t.candidate,segments:t.candidateSegments,sharedTrackConflicts:U(e,t.candidateSegments,r),totalBends:t.totalBends,length:t.length}))},"pairCandidatesFor"),ae=a((e,t,r,a,n,o)=>{let s=0;for(var l of e.pairs)l.first!==t&&l.second!==t&&l.first!==a&&l.second!==a||(s+=l.count);let d=k(r.segments,n.segments);for(var f of i)f!==t&&f!==a&&(f=o.get(f)??mt(L(f)),d+=k(r.segments,f)+k(n.segments,f));return e.count-s+d},"pairCrossingCount"),oe=a((e,t)=>{for(var r of e.sharedTrackConflicts)if(r!==t)return!1;return!0},"conflictsOnlyWith"),le=a((e,t)=>e.segments.some(e=>t.segments.some(t=>ne(e,t,.5)>=8)),"candidatesShareTrack"),de=a((e,t,r,a)=>oe(t,r.edge)&&oe(a,e.edge)&&!le(t,a),"pairCandidatesAreCompatible"),fe=a((e,t,r,a,n)=>{var o=ae(e.current,t.edge,r,a.edge,n,e.baseSegments);if(!(o>=e.current.count))return{replacements:new Map([[t.edge,r.path],[a.edge,n.path]]),crossings:o,bends:e.currentBends-(e.baseBendsByEdge.get(t.edge)??0)-(e.baseBendsByEdge.get(a.edge)??0)+r.totalBends+n.totalBends,length:e.currentLength-(e.baseLengthByEdge.get(t.edge)??0)-(e.baseLengthByEdge.get(a.edge)??0)+r.length+n.length}},"scorePairReplacement"),he=a((e,t)=>e.crossings<t.crossings||e.crossings===t.crossings&&(e.bends<t.bends||e.bends===t.bends&&e.length<t.length),"pairScoreIsBetter"),ge=a((e,t,r,a)=>{let n=a;for(var o of t.candidates)for(var i of r.candidates)de(t,o,r,i)&&(i=fe(e,t,o,r,i))&&he(i,n)&&(n=i);return n},"bestScoreForOptionPair");var h=a(e=>{var t=Y(),r=X(),a=Z(),n=E(e),o=new Map(i.map(e=>[e,ie(L(e))])),s=new Map(i.map(e=>[e,F(L(e))]));let l=new Map;var d,f,h=B(e);for(d of h)for(var g of d)l.has(g)||0<(f=ee(g,e,a,n)).length&&l.set(g,{edge:g,candidates:f});let u={replacements:new Map,crossings:e.count,bends:t,length:r};var c,p={current:e,currentBends:t,currentLength:r,baseBendsByEdge:o,baseLengthByEdge:s,baseSegments:a};for(c of h){var x=new Set(c.filter(t=>e.edgeSet.has(t))),m=c.map(e=>l.get(e)).filter(e=>Boolean(e));for(let e=0;e<m.length;e++){var y=m[e];for(let t=e+1;t<m.length;t++){var v=m[t];(x.has(y.edge)||x.has(v.edge))&&(u=ge(p,y,v,u))}}}return 0<u.replacements.size?u.replacements:void 0},"bestPairedReplacement");for(let e=0;e<4;e++){var g,u=l(),c=u.count;if(0===c)return;let e,t,r=c,a=Number.POSITIVE_INFINITY;for(g of u.edges){var p,x=ie(L(g),xt);for(p of Q(g)){var m=P(g,p),y=!m&&f(g,p),v=d(u,g,p),b=ie(p,xt);m||y||!(v<c||v===c&&b<x)||v>r||v===r&&b>=a||(e=g,t=p,r=v,a=b)}}if(e&&t)e.points=t;else{var M,I,w=h(u);if(!w)return;for([M,I]of w)M.points=I}}}}a(vt,"separateSharedRenderedTerminalLanes"),a(bt,"collapseRedundantRectangularDoglegs"),a(Mt,"liftObstacleHuggingSameSideRails"),a(It,"liftTopLaneTitleBandsAboveRails"),a(wt,"shiftLeftLaneTitleBandsLeftOfRails"),a(St,"swapDestinationTerminalTailsToReduceCrossings"),a(Ct,"reassignCrossingExternalRailChannels"),a(Lt,"shortcutRedundantOrthogonalJogs"),a(kt,"resolveRenderedOrthogonalCrossings");var Tt=.001;function Ot(e,t){let{nodeInfoById:r,realNodeRects:n}=ve(t);var o=["top","bottom","left","right"];let i={top:Math.min(...n.map(e=>e.rect.top))-20,bottom:Math.max(...n.map(e=>e.rect.bottom))+20,left:Math.min(...n.map(e=>e.rect.left))-20,right:Math.max(...n.map(e=>e.rect.right))+20};var s=a((e,t,r,a)=>{var n=[],o=me(e,t,r,a,20,Tt);return o&&n.push(o),t===a&&n.push(ye(e,t,r,i[t])),n},"buildOrthogonalPathCandidates"),l=a((e,t)=>{for(let r=0;r<e.length-1;r++)if(we(e[r],e[r+1],n,t,1))return!0;return!1},"pathHitsNode"),d=a((t,r,a=!1)=>{let n=0;var o,i=oe(t,Tt),s=r.start,l=r.end;for(o of e)if(o!==r&&!o.isLayoutOnly){var d=o.start,f=o.end;if(a||!s||!l||d!==s&&d!==l&&f!==s&&f!==l){var h=o.points;if(h&&!(h.length<2))for(var g of i)for(var u of oe(h,Tt))(Se(g.a,g.b,u.a,u.b,Tt,Tt)||ne(g,u,Tt)>=8)&&n++}}return n},"pathConflictCount"),f=a((e,t)=>{var r=Math.abs(e.y-t.rect.top),a=Math.abs(e.y-t.rect.bottom),n=Math.abs(e.x-t.rect.left);let o="top",i=r;return a<i&&(o="bottom",i=a),n<i&&(o="left",i=n),(e=Math.abs(e.x-t.rect.right))<i&&(o="right",i=e),o},"nearestSideOfRect");let h=new Map;var g,u,c,p,x,m,y=a((e,t,r)=>{var a=h.get(e)??[];a.push({side:t,edgeId:r}),h.set(e,a)},"addFaceClaim");for(g of e)g.isLayoutOnly||(u=g.points??[]).length<1||(c=g.id??"",m=g.start,p=g.end,m&&(x=r.get(m))&&y(m,f(u[0],x),c),p&&(m=r.get(p))&&y(p,f(u[u.length-1],m),c));var v,b=a((e,t,r)=>h.get(e)?.some(e=>e.edgeId!==r&&e.side===t)??!1,"faceIsClaimed");for(v of e)if(!v.isLayoutOnly){var M=v.points;if(M&&!(M.length<2)){var I=ie(M,Tt);if(!(I<4)){var w=v.start,S=v.end;if(w&&S){var C=r.get(w),L=r.get(S);if(C&&L){let e=v.id??"";var k,T=d(M,v,!0),O=d(M,v);let t,r=T,a=I;for(k of o)if(!b(w,k,e)){var R,N=xe(C,k);for(R of o)if(!b(S,R,e)){var B,E,F,Y=xe(L,R);for(B of s(N,k,Y,R))l(B,[w,S])||(E=ie(B,Tt),0<T?(F=d(B,v,!0))>r||F===r&&E>=a||(r=F,a=E,t=B):d(B,v)>O||E<a&&(a=E,t=B))}}t&&(v.points=t,(M=h.get(w))&&h.set(w,M.filter(t=>t.edgeId!==e)),(I=h.get(S))&&h.set(S,I.filter(t=>t.edgeId!==e)),y(w,f(t[0],C),e),y(S,f(t[t.length-1],L),e))}}}}}}a(Ot,"simplifyDetouredEdges");var Rt=.001;function Nt(e,t){var r=e[a=t?0:e.length-1];e=e[a+(t?1:-1)];if(r&&e){var a=e.x-r.x,n=(t=e.y-r.y,Math.abs(a)+Math.abs(t));if(!(n<Rt))return Math.abs(t)<=Rt?(n=r.x+10*Math.sign(a),{left:Math.min(r.x,n),right:Math.max(r.x,n),top:r.y-7,bottom:r.y+7}):Math.abs(a)<=Rt?(n=r.y+10*Math.sign(t),{left:r.x-7,right:r.x+7,top:Math.min(r.y,n),bottom:Math.max(r.y,n)}):{left:Math.min(r.x,e.x),right:Math.max(r.x,e.x),top:Math.min(r.y,e.y),bottom:Math.max(r.y,e.y)}}}function Bt(e){return{left:Math.min(e.left,e.right),right:Math.max(e.left,e.right),top:Math.min(e.top,e.bottom),bottom:Math.max(e.top,e.bottom)}}function Et(e,t){return[Nt(t=se(t),!0),Nt(t,!1)].some(t=>t&&ge(e,Bt(t)))}function Ft(e,t){let r=[];for(var n of e)if(!n.isLayoutOnly){var o=n.points;if(o&&!(o.length<2))for(let e=0;e<o.length-1;e++)r.push({edgeId:n.id,p1:o[e],p2:o[e+1]})}let i=[],s=[];for(var l of t.values()){var d=l.isGroup,f=l.parentId;d&&!f?(f=pe(l))&&s.push({id:l.id,rect:f}):d||l.isEdgeLabel||(f=pe(l))&&i.push({nodeId:l.id,rect:f})}let h=a((e,t)=>{var r,a,n=ue(t,3);for({nodeId:r,rect:a}of i)if(r!==e&&ge(n,a))return!0;return!1},"labelOverlapsForeignNode"),g=a((e,t)=>{var a,n=ue(t,3);for(a of r)if(a.edgeId!==e&&de(a.p1,a.p2,n))return!0;return!1},"labelOverlapsForeignEdge"),u=a((e,t,r)=>h(e,r)||g(t,r),"labelOverlapsAnything"),c=[],p=a(e=>{for(var{id:t,rect:r}of s)if(he(r,e))return t},"findContainingLane"),x=a((e,t)=>c.some(r=>r.labelId!==e&&ge(t,r.rect)),"overlapsPlacedLabel");for(let r of e)if(!r.isLayoutOnly){let e=r.labelNodeId;if(e){var m=t.get(e);if(m){let t=r.points;if(t&&!(t.length<2)){let n=m.width??0,o=m.height??0;if(!(n<=0||o<=0)){let i=[];for(let e=0;e<t.length-1;e++){var y=t[e],v=t[e+1],b=Math.abs(y.x-v.x),M=Math.abs(y.y-v.y);b<Rt&&M<Rt||Rt<=b&&Rt<=M||i.push({idx:e,length:b+M,orientation:Rt<=b?"horizontal":"vertical",midX:(y.x+v.x)/2,midY:(y.y+v.y)/2})}if(0!==i.length){var I=3<=i.length?i.filter(e=>0<e.idx&&e.idx<i.length-1):i;I=0<I.length?I:i;let l=n>=o?"horizontal":"vertical",d=a(e=>[...e].sort((e,t)=>{var r=e.orientation===l;return r!=(t.orientation===l)||(r=e.length>=("horizontal"===e.orientation?n:o)+2)!=t.length>=("horizontal"===t.orientation?n:o)+2?r?-1:1:t.length-e.length}),"rankSegments"),f=i[0],y=i[i.length-1],v=[.5,.25,.75,.05,.95,.15,.85,.1,.9],b=a((e,r)=>{var a=t[e.idx];e=t[e.idx+1];return{midX:a.x+(e.x-a.x)*r,midY:a.y+(e.y-a.y)*r}},"anchorAtT"),M=a((e,t,r)=>Math.min(r,Math.max(t,e)),"clamp"),C=a((e,t)=>e.midX>=t.left-Rt&&e.midX<=t.right+Rt&&e.midY>=t.top-Rt&&e.midY<=t.bottom+Rt,"pointInsideRectInclusive"),L=a(e=>{var t=ce(e.midX,e.midY,n,o),r=p(t);if(r)return{laneId:r,anchor:e,rect:t};if(r=s.find(({rect:t})=>C(e,t)),r){t=r.rect.left+n/2+1;var a=r.rect.right-n/2-1,i=r.rect.top+o/2+1,l=r.rect.bottom-o/2-1;if(!(a<t||l<i))return a=ce((t={midX:M(e.midX,t,a),midY:M(e.midY,i,l)}).midX,t.midY,n,o),C(e,a)?{laneId:r.id,anchor:t,rect:a}:void 0}},"placementForAnchor"),k=a((e,t,r)=>"horizontal"===e.orientation?Math.abs(t.midX-r.x):Math.abs(t.midY-r.y),"distanceAlongSegment"),T=a((e,r)=>{var a=12+("horizontal"===e.orientation?n/2:o/2);if(e===f){var i=t[e.idx];if(k(e,r,i)+Rt<a)return!1}return!(e===y&&(i=t[e.idx+1],k(e,r,i)+Rt<a))},"labelClearsTerminalEndpoints");var w=a(a=>{var n;for(n of d(a))for(var o of v)if(o=b(n,o),T(n,o)&&(o=L(o))&&!Et(o.rect,t)&&!x(e,o.rect)&&!u(e,r.id,o.rect))return{laneId:o.laneId,anchor:o.anchor}},"tryPool"),S=a((a,n,o=!1)=>{var i;for(i of d(a)){var s={midX:i.midX,midY:i.midY};if((!n||T(i,s))&&(s=L(s))&&!Et(s.rect,t)&&!x(e,s.rect)&&!h(e,s.rect)&&(o||!g(r.id,s.rect)))return{laneId:s.laneId,anchor:s.anchor}}},"findLaneContainingFallback");(I=w(I)??(I.length<i.length?w(i):void 0)??S(i,!0)??S(i,!1)??S(i,!1,!0))&&(m.x=I.anchor.midX,m.y=I.anchor.midY,m.parentId=I.laneId,w=ce(I.anchor.midX,I.anchor.midY,n,o),0<=(S=c.findIndex(t=>t.labelId===e))?c[S]={labelId:e,rect:w}:c.push({labelId:e,rect:w}))}}}}}}}a(Nt,"markerClearanceRectFor"),a(Bt,"normalizeRect"),a(Et,"labelOverlapsOwnMarker"),a(Ft,"anchorLabelsToPolyline");var Yt=1e-6;function Xt(e,t){return e<t?e+"::"+t:t+"::"+e}function Pt(e,t){var r,{nodeInfoById:n,realNodeRects:o}=ve(t);let i=new Map;for(r of t){var s=r.id;r.isGroup||r.isEdgeLabel&&i.set(s,{w:r.width??0,h:r.height??0})}var l,d=a((t,r,n,o)=>{var s=Xt(r,n);let l=0;var d,f,h,g=a(e=>{e&&(e=i.get(e))&&(e="x"===o?e.w/2:e.h/2)>l&&(l=e)},"consider");for(d of(g(t.labelNodeId),e))d===t||d.isLayoutOnly||(f=d.start,h=d.end,f&&h&&Xt(f,h)===s&&g(d.labelNodeId));return 0<l?l+3:0},"labelClearanceFor");for(l of e)if(!l.isLayoutOnly&&le(l.points,Yt)){if(p=Ie(l,n,Yt)){var{srcId:f,dstId:h,srcInfo:g,dstInfo:u,collinearX:c,collinearY:p}=p;if(c!==p){let t,r;if(r=c?(p=u.cy>g.cy,t={x:g.cx,y:p?g.rect.bottom:g.rect.top},{x:u.cx,y:p?u.rect.top:u.rect.bottom}):(t={x:(p=u.cx>g.cx)?g.rect.right:g.rect.left,y:g.cy},{x:p?u.rect.left:u.rect.right,y:u.cy}),!we(t,r,o,[f,h],1)){var x,p=4<(p=d(l,f,h,c?"x":"y"))?p:4;for(x of[0,p,-p]){var m={...t},y={...r};if(c){if(m.x+=x,y.x+=x,m.x<=g.rect.left||m.x>=g.rect.right)continue;if(y.x<=u.rect.left||y.x>=u.rect.right)continue}else{if(m.y+=x,y.y+=x,m.y<=g.rect.top||m.y>=g.rect.bottom)continue;if(y.y<=u.rect.top||y.y>=u.rect.bottom)continue}if(!we(m,y,o,[f,h],1)&&!Le(m,y,e,l,{epsilon:Yt})){l.points=[m,y];break}}}}}}}function zt(e,t){let r=.001,{realNodeRects:n,labelNodeRects:o}=be(t.values()),i=a((e,t)=>oe(t,r).map(r=>({...r,edge:e,interior:1<=r.index&&r.index<=t.length-3})),"segmentsFor");var s=a(()=>{var t,r,a=[];for(t of e)t.isLayoutOnly||!(r=t.points)||r.length<2||a.push(...i(t,se(r)));return a},"allSegments");let l=a((e,t)=>e.horizontal&&t.horizontal?8<=ae(e.a.x,e.b.x,t.a.x,t.b.x)&&Math.abs(e.a.y-t.a.y)<7:!(!e.vertical||!t.vertical)&&8<=ae(e.a.y,e.b.y,t.a.y,t.b.y)&&Math.abs(e.a.x-t.a.x)<7,"hasCrowdedParallelTrack");var d=a((t,a)=>{var s=t.start,d=t.end,f=i(t,a);if(f.length!==a.length-1)return!1;var h,g,u=[s,d].filter(e=>Boolean(e)),c=t.labelNodeId?[t.labelNodeId]:[];for(h of f){if(we(h.a,h.b,n,u,-2))return!1;if(we(h.a,h.b,o,c,-2))return!1}for(g of e)if(g!==t&&!g.isLayoutOnly){var p=g.points;if(p&&!(p.length<2))for(var x of f)for(var m of i(g,se(p))){if(l(x,m))return!1;if(ke(x.a,x.b,m.a,m.b,r))return!1}}return!0},"candidateIsSafe"),f=a((e,t)=>{var r=se(e.edge.points??[]);if(!(r.length<4||e.index>=r.length-1)){if(r=r.map(e=>({...e})),e.horizontal)r[e.index].y+=t,r[e.index+1].y+=t;else{if(!e.vertical)return;r[e.index].x+=t,r[e.index+1].x+=t}return i(e.edge,r).length===r.length-1?r:void 0}},"shiftedCandidate");let h=a((e,t)=>({x:e.x??(t.left+t.right)/2,y:e.y??(t.top+t.bottom)/2}),"nodeCenter"),g=a(e=>{if(4===(i=se((a=e.edge).points??[])).length&&1===e.index){var r=a.start?t.get(a.start):void 0,a=a.end?t.get(a.end):void 0,n=r?pe(r):void 0,o=a?pe(a):void 0,i=i.slice(e.index+2);if(r&&a&&n&&o&&0!==i.length)return{sourceCenter:h(r,n),targetCenter:h(a,o),sourceRect:n,tail:i}}},"sourceDetourContextFor"),u=a((e,t,a,n,o,i)=>{var s=(o=(n=n.y>=a.y)?o.bottom:o.top)+(n?20:-20);if(!(n&&e.b.y<=s+r||!n&&e.b.y>=s-r))return n=e.a.x+t,se([{x:a.x,y:o},{x:a.x,y:s},{x:n,y:s},{x:n,y:e.b.y},...i],r)},"verticalSourceDetour"),c=a((e,t,a,n,o,i)=>{var s=(o=(n=n.x>=a.x)?o.right:o.left)+(n?20:-20);if(!(n&&e.b.x<=s+r||!n&&e.b.x>=s-r))return n=e.a.y+t,se([{x:o,y:a.y},{x:s,y:a.y},{x:s,y:n},{x:e.b.x,y:n},...i],r)},"horizontalSourceDetour");var p=a((e,t)=>{var r=g(e);if(r)return e.vertical?u(e,t,r.sourceCenter,r.targetCenter,r.sourceRect,r.tail):e.horizontal?c(e,t,r.sourceCenter,r.targetCenter,r.sourceRect,r.tail):void 0},"sourceDetourCandidate"),x=[-7,7,-14,14,-21,21];for(let e=0;e<12;e++){var m=s();let e=!1;for(let t=0;t<m.length&&!e;t++)for(let r=t+1;r<m.length&&!e;r++){var y,v=m[t],b=m[r];if(v.edge!==b.edge&&l(v,b))for(y of[v,b].filter(e=>e.interior)){for(var M of x){var I=f(y,M);if(I&&d(y.edge,I)){y.edge.points=I,e=!0;break}if((I=p(y,M))&&d(y.edge,I)){y.edge.points=I,e=!0;break}}if(e)break}}if(!e)return}}function At(e,t,r,a){var n,o=t.x-e.x,i=(t=t.y-e.y,a.x-r.x),s=o*(a=a.y-r.y)-t*i;return!(Math.abs(s)<1e-10)&&(r=((n=r.x-e.x)*t-(t=r.y-e.y)*o)/s,.01<(e=(n*a-t*i)/s))&&e<.99&&.01<r&&r<.99}function Gt(e){var t=e.nodes??[],r=[];if((e=e.edges??[]).length&&t.length){var a,n=Me(t),o=[];for(a of e)if(!a.isLayoutOnly){var i=a.points;if(i&&!(i.length<2)){var s,l=a.start,d=a.end,f=a.labelNodeId,h=a.id??l+"->"+d;for(s of n)if(s.nodeId!==l&&s.nodeId!==d&&(!f||s.nodeId!==f))for(let e=0;e<i.length-1;e++)if(de(i[e],i[e+1],s,-1)){r.push({type:"edge-node-overlap",edgeId:h,targetId:s.nodeId,detail:`segment ${e} passes through node "${s.nodeId}"`});break}for(let e=0;e<i.length-1;e++)o.push({edgeId:h,start:l,end:d,p1:i[e],p2:i[e+1]})}}var g=new Set;for(let e=0;e<o.length;e++)for(let t=e+1;t<o.length;t++){var u,c=o[e],p=o[t];c.edgeId!==p.edgeId&&c.start!==p.start&&c.start!==p.end&&c.end!==p.start&&c.end!==p.end&&At(c.p1,c.p2,p.p1,p.p2)&&(u=c.edgeId<p.edgeId?c.edgeId+"|"+p.edgeId:p.edgeId+"|"+c.edgeId,g.has(u)||(g.add(u),r.push({type:"edge-edge-crossing",edgeId:c.edgeId,targetId:p.edgeId,detail:`edges "${c.edgeId}" and "${p.edgeId}" cross`})))}if(0<r.length){var x;t=r.filter(e=>"edge-node-overlap"===e.type).length,e=r.filter(e=>"edge-edge-crossing"===e.type).length;for(x of(v.warn(`[SWIMLANE_VALIDATE] ${r.length} issue(s) detected: ${t} edge-node overlap(s), ${e} edge crossing(s)`),r))v.warn(`[SWIMLANE_VALIDATE] ${x.type}: `+x.detail)}}return r}function $t(e,t){var r=e.nodes??[];let n=e.edges??[];var o,i=r.filter(e=>!e.isGroup);if(("LR"!==t&&"RL"!==t||!(0<i.length)||ht(e,t))&&(!("BT"===t&&0<i.length)||ft(e))){for(var s of n)s.isLayoutOnly||!(o=s.points)||o.length<2||(s.points=Be(Ne(o)));Ot(n,r),Pt(n,r),ct(n,r);let e=new Map;for(var l of r)e.set(String(l.id),l);Ft(n,e),Pe(n,e),pt(n,e),zt(n,e),vt(n,e),bt(n,e),Mt(n,e),St(n,e),(t=a(()=>{kt(n,e),Ct(n,e),Lt(n,e),Ft(n,e),rt(n,e),Mt(n,e),Ft(n,e),rt(n,e)},"finalizeRenderedEdges"))(),zt(n,e),t(),It(n,e),wt(n,e),It(n,e),wt(n,e)}}function Dt(e){var t,r,a=new Map(e.nodeById),n=new Set,o=[];for(t of e.edges)a.has(t.src)&&a.has(t.dst)&&(r=`${t.id}:${t.src}->`+t.dst,n.has(r)||(n.add(r),o.push(t)));return{nodes:[...a.keys()],edges:o,layout:e.layout,nodeById:a}}function Ht(e,t){return e.edges.filter(e=>e.dst===t)}function jt(e){var t,r,a=new Map;for(t of e.nodes)a.set(t,[]);for(r of e.edges)a.get(r.src).push(r.dst);return a}function _t(e){var t;e=jt(e);for(t of e.values())t.sort((e,t)=>e.localeCompare(t));return e}function Vt(e){var t,r,a=new Map;for(t of e.nodes)a.set(t,0);for(r of e.edges)a.set(r.dst,(a.get(r.dst)??0)+1);return a}function Wt(e){return[...e.entries()].filter(([,e])=>0===e).map(([e])=>e).sort((e,t)=>e.localeCompare(t))}function qt(e,t=()=>!0){var r,a,n=new Map,o=new Map;for(r of e.nodes)n.set(r,[]),o.set(r,[]);for(a of e.edges)t(a)&&(o.get(a.src).push(a.dst),n.get(a.dst).push(a.src));return{preds:n,succs:o}}function Jt(e,t,r,a){let n=0;for(var o of e.nodes)a?.skipGroups&&e.nodeById.get(o)?.isGroup||(n=Math.max(n,r[o]??0));var i,s=Array.from({length:n+1},()=>[]);for(i of t)a?.skipGroups&&e.nodeById.get(i)?.isGroup||s[Math.max(0,r[i]??0)].push(i);return s}function Kt(e){for(var t=Vt(e),r=Wt(t),a=[],n=_t(e);r.length;){var o,i=r.shift();for(o of(a.push(i),n.get(i)??[]))if(t.set(o,(t.get(o)??0)-1),0===(t.get(o)??0)){let e=0;for(;e<r.length&&r[e]<o;)e++;r.splice(e,0,o)}}return a.length===e.nodes.length?a:null}function Qt(e){var t,r=new Map;let a=0;for(t of e)r.set(t,a),a++;return r}function Zt(e){let t=new Array(e.length),r=a((a,n)=>{if(n-a<=1)return 0;var o=a+n>>1;let i=r(a,o)+r(o,n),s=a,l=o,d=a;for(;s<o||l<n;)l>=n||s<o&&e[s]<=e[l]?t[d++]=e[s++]:(t[d++]=e[l++],i+=o-s);for(let r=a;r<n;r++)e[r]=t[r];return i},"count");return r(0,e.length)}function Ut(e){var t,r,n,o,i;e=Dt(e);let s=new Map;for(t of e.nodes)s.set(t,[]);for(r of e.edges)s.get(r.src).push(r);for(n of s.values())n.sort((e,t)=>e.dst===t.dst?e.id.localeCompare(t.id):e.dst.localeCompare(t.dst));let l=Object.create(null);for(o of e.nodes)l[o]=0;let d=[],f=a(e=>{for(var t of(l[e]=1,s.get(e)??[])){var r=t.dst;0===l[r]?f(r):1===l[r]&&d.push(t)}l[e]=2},"dfs");for(i of[...e.nodes].sort((e,t)=>e.localeCompare(t)))0===l[i]&&f(i);let h=new Set(d.map(e=>e.id+`:${e.src}->`+e.dst));var g=e.edges.map(e=>h.has(e.id+`:${e.src}->`+e.dst)?{id:e.id,src:e.dst,dst:e.src,weight:e.weight,ref:e.ref}:e);return{acyclic:{nodes:[...e.nodes],edges:g,layout:e.layout,nodeById:new Map(e.nodeById)},reversed:d}}function er(e){let t=new Map,r=a(a=>{var n;return t.has(a)?t.get(a):(n=e.nodeById.get(a))&&(n=n.parentId)?(n=r(n)??n,t.set(a,n),n):(t.set(a,null),null)},"resolve");for(var n of e.nodes)r(n);return t}function tr(e){let t=er(e);return e=>t.get(e)??null}function rr(e){var t,r=[];for(t of e.layout.nodes??[])t.isGroup&&!t.parentId&&r.push(t.id);return[...new Set(r)].reverse()}function ar(e,t){if(e=rr(e),!t||0===t.length)return e;var r,a,n=new Set(e),o=new Set,i=[];for(r of t)n.has(r)&&!o.has(r)&&(o.add(r),i.push(r));for(a of e)o.has(a)||i.push(a);return i}a(Xt,"pairKey"),a(Pt,"straightenCollinearSiblingDetours"),a(zt,"nudgeSharedInteriorSubpaths"),a(At,"segmentsIntersect"),a(Gt,"validateSwimlanesLayout"),a($t,"postProcessSwimlaneLayout"),a(Dt,"normalizeGraph"),a(Ht,"incoming"),a(jt,"buildSuccessorMap"),a(_t,"buildSortedSuccessorMap"),a(Vt,"buildInDegreeMap"),a(Wt,"sortedZeroInDegreeNodes"),a(qt,"buildPredecessorSuccessorMaps"),a(Jt,"buildLayersFromRanks"),a(Kt,"topoSortIfAcyclic"),a(Qt,"buildLayerIndex"),a(Zt,"countInversions"),a(Ut,"removeCycles_DFS"),a(er,"buildTopLaneMap"),a(tr,"createTopLaneResolver"),a(rr,"buildTopLaneOrder"),a(ar,"resolveTopLaneOrder");var nr=8,or=4,ir=!0,sr=100,lr=40;function dr(e,t){e=Dt(e);var r,n=t?.laneOf??(()=>null),o=t?.rankHint,i=qt(e).preds;for(r of i.values())r.sort((e,t)=>e.localeCompare(t));var s,l,d,f,h;t=Kt(e)??[...e.nodes].sort((e,t)=>e.localeCompare(t));let g=new Map;for([s,l]of t.entries())g.set(l,s);let u=new Map,c=new Map;for(d of e.nodes)c.set(d,[]);for(f of t){var p=(i.get(f)??[]).filter(e=>u.has(e));0<p.length?(p=fr(f,p,{laneOf:n,rankHint:o,topoIndex:g}),u.set(f,p),c.get(p).push(f)):u.has(f)||u.set(f,null)}for(h of e.nodes)u.has(h)||u.set(h,null);var x,m=new Set;for(x of e.nodes)null===(u.get(x)??null)&&m.add(x);var y,v,b=[...m].sort((e,t)=>{var r=g.get(e)??0,a=g.get(t)??0;return r===a?e.localeCompare(t):r-a}),M=hr(e),I=new Map;for([y,v]of M.entries())I.set(y,[...v].sort((e,t)=>e.localeCompare(t)));M=gr(I);var w,S,C,L,k=ur(I),T=new Map;for(w of e.nodes)T.set(w,[]);for(S of k)for(var O of S.nodes){var R=T.get(O);R?R.push(S.id):T.set(O,[S.id])}let N=[],B=[],E=new Set,F=a(e=>{if(!E.has(e)){for(var t of(E.add(e),N.push(e),c.get(e)??[]))F(t);B.push(e)}},"walk");for(C of b)F(C);for(L of t)F(L);return{parent:u,children:c,roots:b,componentOf:M,blocks:k,nodeBlocks:T,adjacency:I,preorder:N,postorder:B,topologicalOrder:t}}function fr(e,t,r){let a=r.laneOf(e);return[...t].sort((e,t)=>{var n=r.laneOf(e),o=r.laneOf(t);return(n=null!=n&&n===a)!=(null!=o&&o===a)?n?-1:1:(o=r.rankHint?.[e],n=r.rankHint?.[t],null!=o&&null!=n&&o!==n||(n=r.topoIndex.get(e)??0)!==(o=r.topoIndex.get(t)??0)?n-o:e.localeCompare(t))})[0]}function hr(e){var t,r,a=new Map;for(t of e.nodes)a.set(t,new Set);for(r of e.edges)a.get(r.src).add(r.dst),a.get(r.dst).add(r.src);return a}function gr(e){var t,r=new Map;let a=0;for(t of e.keys())if(!r.has(t)){for(var n=[t];0<n.length;){var o=n.pop();if(!r.has(o))for(var i of(r.set(o,a),e.get(o)??[]))r.has(i)||n.push(i)}a++}return r}function ur(e){let t=new Map,r=new Map,n=[],o=[],i=0,s=a((a,l)=>{for(var d of(t.set(a,++i),r.set(a,i),e.get(a)??[]))d!==l&&(t.has(d)?(t.get(d)??0)<(t.get(a)??0)&&(n.push([a,d]),r.set(a,Math.min(r.get(a)??i,t.get(d)??i))):(n.push([a,d]),s(d,a),r.set(a,Math.min(r.get(a)??i,r.get(d)??i)),(r.get(d)??0)>=(t.get(a)??0)&&o.push(cr(a,d,n,o.length))))},"visit");for(var l of e.keys())t.has(l)||s(l,null);return o}function cr(e,t,r,a){for(var n=[],o=new Set;0<r.length;){var i=r.pop();if(n.push(i),o.add(i[0]),o.add(i[1]),i[0]===e&&i[1]===t||i[0]===t&&i[1]===e)break}return{id:a,edges:n,nodes:[...o]}}function pr(e,t,r){var n,o,i=[...e.nodes];let s=new Map;for([n,o]of i.entries())s.set(o,n);let l=i.length;var d=new Array(l).fill(-1);let f=new Array(l).fill(0);var h,g,u,c=[],p=new Set;for(h of i){var x=r.parent.get(h)??null,m=s.get(h);null!=m&&null==x&&(d[m]=-1,f[m]=0,p.has(h)||(p.add(h),c.push(h)))}for(;0<c.length;){var y,v,b=c.shift(),M=s.get(b);if(null!=M)for(y of r.children.get(b)??[])p.has(y)||null!=(v=s.get(y))&&(d[v]=M,f[v]=f[M]+1,p.add(y),c.push(y))}for(g of i)p.has(g)||null!=(u=s.get(g))&&(d[u]=-1,f[u]=0,p.add(g));let I=Math.max(1,Math.ceil(Math.log2(Math.max(1,l)))+1),w=Array.from({length:I},()=>new Array(l).fill(-1));for(let e=0;e<l;e++)w[0][e]=d[e];for(let e=1;e<I;e++)for(let t=0;t<l;t++){var S=w[e-1][t];w[e][t]=-1===S?-1:w[e-1][S]}var C,L,k,T=a((e,t)=>{if(-1===e||-1===t)return-1;f[e]<f[t]&&([e,t]=[t,e]);var r=f[e]-f[t];for(let t=0;t<I;t++)if(r>>t&1&&-1===(e=w[t][e]))return-1;if(e===t)return e;for(let r=I-1;0<=r;r--){var a=w[r][e],n=w[r][t];-1!==a&&-1!==n&&a!==n&&(e=a,t=n)}return w[0][e]},"lcaIndex");let O=Array.from({length:l},()=>new Map);for(C of e.edges){let e=C.src,r=C.dst,a=t[e],n=t[r];if(null!=a&&null!=n&&(a>n&&([e,r]=[r,e],[a,n]=[n,a]),null!=a&&null!=n&&a!==n)){var R=s.get(e),N=s.get(r);if(null!=R&&null!=N&&-1!==(R=T(R,N))){var B=O[R];for(let e=a;e<n;e++)B.set(e,(B.get(e)??0)+1)}}}let E=new Map,F=a((e,t)=>{if(0!==t.size)for(var[r,a]of t)e.set(r,(e.get(r)??0)+a)},"mergeInto"),Y=new Set,X=a(e=>{var a,n=s.get(e),o=(n=(Y.add(e),null==n?void 0:O[n]))?new Map(n):new Map;for(a of r.children.get(e)??[]){var i=X(a),l=t[e];if(null!=l){let r=E.get(e),n=(r||(r=new Map,E.set(e,r)),i.get(l)??0);var d=t[a];null!=d&&l<d&&(n+=1),r.set(a,n)}F(o,i)}return o},"dfs");for(L of r.roots)Y.has(L)||X(L);for(k of i)Y.has(k)||X(k);return E}function xr(e,t,r){let n=new Map,o=a(e=>{let a=r[e]??0;var i,s=[...t.get(e)??[]];for(i of(s.sort(mr(r)),s)){o(i);var l=n.get(i);null!=l&&(a=Math.min(a,l))}n.set(e,a)},"annotate");for(var i of e)o(i);return n}function mr(e){return(t,r)=>{var a=e[t]??0,n=e[r]??0;return a===n?t.localeCompare(r):a-n}}function yr(e,t,r,n){let o=0;for(var i of t)(i=r[i]??0)>o&&(o=i);let s=Array.from({length:o+1},()=>[]),l=new Set,d=a(e=>{if(!l.has(e)){l.add(e);var t,a=r[e]??0;for(t of(s[a]||(s[a]=[]),s[a].push(e),n(e)))d(t)}},"emit");for(var f of e)d(f);for(var h of t){var g;l.has(h)||(g=r[h]??0,s[g]||(s[g]=[]),s[g].push(h),l.add(h))}return s}function vr(e){var t,r=[];for(t of e){var a,n=new Set,o=[];for(a of t)n.has(a)||(n.add(a),o.push(a));r.push(o)}return r}function br(e,t,r,a){return n=>{var o=e.get(n)??[];if(0===o.length)return[];let i=t[n]??0;var s,l=[],d=[];let f=r.get(n);for(s of o){var h=a.get(s)??i;h>i?l.push({child:s,min:h}):d.push(s)}return l.sort((e,t)=>e.min===t.min?e.child.localeCompare(t.child):e.min-t.min),d.sort((e,t)=>{var r=f?.get(e)??0,n=f?.get(t)??0;return r!==n||(r=a.get(e)??i)!==(n=a.get(t)??i)?r-n:e.localeCompare(t)}),[...l.map(e=>e.child),...d]}}function Mr(e,t,r){r=dr(e,{rankHint:t,laneOf:r});var a,{children:n,roots:o}=r;for(a of e.nodes)n.has(a)||n.set(a,[]);return r=br(n,t,r=pr(e,t,r),xr(o=[...o].sort(mr(t)),n,t)),vr(yr(o,e.nodes,t,r))}function Ir(e,t,r){var a,n=new Set(e),o=new Set(t),i=Qt(t),s=[];for(a of r)n.has(a.src)&&o.has(a.dst)&&s.push(i.get(a.dst));return Zt(s)}function wr(e,t,r){var a,n=[];for(a of t){var o=r[a.src],i=r[a.dst];if(null!=o&&null!=i&&o!==i){let e=a.src,t=a.dst,r=o,s=i;i<o&&(e=a.dst,t=a.src,r=i,s=o);for(let o=r;o<s;o++)n.push({id:a.id+"@"+o,src:e,dst:t,ref:a.ref})}}let s=0;for(let t=0;t+1<e.length;t++)s+=Ir(e[t],e[t+1],n);return s}function Sr(e,t){let r={...t};var a=qt(e).preds,n=tr(e);let o=wr(Mr(e,r,n),e.edges,r);var i,s=or;for(let t=0;t<s;t++){let t=!1;for(i of[...e.nodes].sort((e,t)=>(r[t]??0)-(r[e]??0))){var l,d=r[i]??0;if(0!==d){let s=0;for(var f of a.get(i)??[])s=Math.max(s,(r[f]??0)+1);s>=d||(r[i]=s,(l=wr(Mr(e,r,n),e.edges,r))<o?(o=l,t=!0):r[i]=d)}}if(!t)break}return r}function Cr(e,t){var r=tr(e);for(let d of[...e.nodes].sort((e,r)=>(t[e]??0)-(t[r]??0)||e.localeCompare(r))){var a=r(d);if(a){var n=e.edges.filter(e=>e.src===d);if(0!==n.length){let f=!1,h=0;for(var o of n)null==(o=r(o.dst))||o===a?f=!0:h++;if(0!==h&&!f){let o=0,f=!1;for(var i of e.edges)i.dst===d&&(i=r(i.src))&&(i===a?f=!0:o++);if(!(0<o)&&f){var s,l=(n=t[d]??0)+h;let r=0;for(s of e.edges)s.dst===d&&(r=Math.max(r,(t[s.src]??0)+1));(l=Math.max(n,r,l))!==n&&(t[d]=l)}}}}}}function Lr(e,t){var r=Dt(e),a=(e=Kt(r)??[...r.nodes].sort(),t?.compactSingleInput??!1);let n=tr(r),o=Object.create(null);for(let h of e){var i=Ht(r,h);i=t?.ignoreCrossLaneEdges?i.filter(e=>{e=n(e.src);var t=n(h);return!e||!t||e===t}):i;if(0===i.length)o[h]=0;else if(a&&1===i.length){var s=i[0].src,l=n(s),d=n(h);o[h]=l!==d?o[s]??0:(o[s]??0)+1}else{let e=-1/0;for(var f of i)e=Math.max(e,(o[f.src]??0)+1);o[h]=e===-1/0?0:e}}return t?.optimizeRanksByCrossings&&(o=Sr(r,o)),t?.ignoreCrossLaneEdges&&Cr(r,o),{layers:Mr(r,o,n),rankOf:o,dummy:new Set}}function kr(e,t){let r={...Lr(e=Dt(e),{compactSingleInput:t?.compactSingleInput,ignoreCrossLaneEdges:t?.ignoreCrossLaneEdges,optimizeRanksByCrossings:t?.optimizeRanksByCrossings}).rankOf},n=tr(e),{preds:o,succs:i}=qt(e,e=>{if(t?.ignoreCrossLaneEdges){var r=n(e.src);e=n(e.dst);if(r&&e&&r!==e)return!1}return!0});var s=Kt(e)??[...e.nodes],l=[...s].reverse();let d=a((e,t)=>{let a=0;for(var n of o.get(e)??[])a=Math.max(a,(r[n]??0)+1);let s=Number.POSITIVE_INFINITY;return 0<(e=i.get(e)??[]).length&&(s=Math.min(...e.map(e=>(r[e]??0)-1))),Number.isFinite(s)||(s=Math.max(a,t)),Math.min(Math.max(t,a),s)},"clampFeasible");var f,h,g=nr,u=a(e=>{let t=!1;for(var a of e){var n=o.get(a)??[],s=i.get(a)??[];0===n.length&&0===s.length||(n=0<n.length?n.reduce((e,t)=>e+(r[t]??0)+1,0)/n.length:r[a]??0,s=0<s.length?s.reduce((e,t)=>e+(r[t]??0)-1,0)/s.length:r[a]??0,n=Math.round((n+s)/2),(s=d(a,n))!==r[a]&&(r[a]=s,t=!0))}return t},"relaxOrder");for(let e=0;e<g;e++){var c=u(s),p=u(l);if(!c&&!p)break}for(f of s){let e=0;for(var x of o.get(f)??[])e=Math.max(e,(r[x]??0)+1);(r[f]??0)<e&&(r[f]=e)}for(h of l){var m=i.get(h)??[];0<m.length&&(m=Math.min(...m.map(e=>(r[e]??0)-1)),(r[h]??0)>m)&&(r[h]=m)}return{layers:Jt(e,s,r),rankOf:r,dummy:new Set}}function Tr(e){var t=Vt(e),r=_t(e);let a=Wt(t);for(var n=[];0<a.length;){var o,i=[];for(o of a)for(var s of(n.push(o),r.get(o)??[]))t.set(s,(t.get(s)??0)-1),0===(t.get(s)??0)&&i.push(s);a=i.sort((e,t)=>e.localeCompare(t))}return n.length===e.nodes.length?n:null}function Or(e,t){var r=Dt(e);e="LR"===t?.direction?Tr(r)??[...r.nodes].sort():Kt(r)??[...r.nodes].sort();let n=tr(r),o=a(e=>n(e)??e,"laneOf");var i,s=Object.create(null),l=new Map,d=a((e,r)=>(t?.ignoreCrossLaneEdges??1)&&o(e)!==o(r)?0:1,"edgeWeight");for(i of e){var f=r.nodeById.get(i);if(!f?.isGroup){let e=0;if(0<(f=Ht(r,i)).length)for(var h of f){var g=s[h=h.src]??0;e=Math.max(e,g+d(h,i))}f=o(i);var u=l.get(f)??0;u=Math.max(e,u);s[i]=u,l.set(f,u+1)}}return{layers:Jt(r,e,s,{skipGroups:!0}),rankOf:s,dummy:new Set}}function Rr(e,t){let r=Dt(t),n=e.rankOf,o=e.layers.map(e=>[...e]),i=new Set(e.dummy?[...e.dummy]:[]),s=0,l=new Map(r.nodeById);var d,f=a(e=>{var t="placeholder-"+s++,r={id:t,isGroup:!1,isDummy:!0,width:0,height:0};for(l.set(t,r),i.add(t);o.length<=e;)o.push([]);return o[e].push(t),n[t]=e,t},"addDummyAt"),h=[];for(d of[...r.edges].sort((e,t)=>e.id===t.id?e.src===t.src?e.dst.localeCompare(t.dst):e.src.localeCompare(t.src):e.id.localeCompare(t.id))){var g=n[d.src]??0,u=n[d.dst]??0;if(u-g<=1)h.push(d);else{let e=d.src;for(let t=g+1,r=0;t<u;t++,r++){var c=f(t);h.push({id:d.id+"#"+r,src:e,dst:c,weight:d.weight,ref:d.ref}),e=c}h.push({id:d.id+"#"+Math.max(u-g-2+1,0),src:e,dst:d.dst,weight:d.weight,ref:d.ref})}}return t={nodes:[...r.nodes,...[...i].filter(e=>!r.nodes.includes(e))],edges:h,layout:r.layout,nodeById:l},{layering:{layers:o,rankOf:n,dummy:i},graphWithDummies:t}}function Nr(e){var t=e.length;return 0===t?Number.POSITIVE_INFINITY:(e=[...e].sort((e,t)=>e-t),t%2==1?e[(t-1)/2]:.5*(e[t/2-1]+e[t/2]))}function Br(e){return 0===e.length?Number.POSITIVE_INFINITY:e.reduce((e,t)=>e+t,0)/e.length}function Er(e,t,r,a){var n,o,i=new Map;for(n of e)i.set(n,[]);for(o of r)"down"===a?t.has(o.src)&&i.has(o.dst)&&i.get(o.dst).push(t.get(o.src)):t.has(o.dst)&&i.has(o.src)&&i.get(o.src).push(t.get(o.dst));return i}function Fr(e,t,r){var a=r.get(e)??0;return a!==(r=r.get(t)??0)?a-r:e.localeCompare(t)}function Yr(e,t,r){var a,n=new Set(e),o=new Set(t),i=Qt(e),s=Qt(t),l=[];for(a of r)n.has(a.src)&&o.has(a.dst)&&l.push({u:i.get(a.src),v:s.get(a.dst)});return l.sort((e,t)=>e.u===t.u?e.v-t.v:e.u-t.u),Zt(l.map(e=>e.v))}function Xr(e,t,r){return[...e].sort((e,a)=>{var n=Nr(t.get(e)??[]),o=Nr(t.get(a)??[]);return n===o?Fr(e,a,r):isFinite(n)?isFinite(o)?n-o:-1:1})}function Pr(e,t,r,a,n,o){e=Qt(e);var i=Qt(t),s=Er(t,e,r,a);if(!n||!o||0===o.length)return Xr(t,s,i);var l,d=new Map;for(l of t){var f=n(l),h=d.get(f)??[];h.push(l),d.set(f,h)}var g,u,c=[];for(g of o){var p=d.get(g);p&&0!==p.length&&(p=Xr(p,s,i),c.push(...p))}if((e=d.get(null))&&0<e.length)for(u of Xr(e,s,i)){var x=Br(s.get(u)??[]);let e=c.length;if(isFinite(x))for(var[m,y]of c.entries())if(x<Br(s.get(y)??[])){e=m;break}c.splice(e,0,u)}return c}function zr(e,t,r,n,o){var i=[...t];let s=new Set(e),l=new Set(t),d=n?new Set(n):null,f=r.filter(e=>s.has(e.src)&&l.has(e.dst)),h=d?r.filter(e=>l.has(e.src)&&d.has(e.dst)):void 0;var g=a(t=>{let r=Yr(e,t,f);return h&&n&&(r+=Yr(t,n,h)),r},"crossingScore"),u=o?new Map:null;if(o&&u)for(var c of t)u.set(c,o(c));let p=!0,x=g(i);for(;p;){p=!1;for(let e=0;e+1<i.length;e++)if(!u||u.get(i[e])===u.get(i[e+1])){var m=x,y=([i[e],i[e+1]]=[i[e+1],i[e]],g(i));y<m?(x=y,p=!0):[i[e],i[e+1]]=[i[e+1],i[e]]}}return i}function Ar(e,t,r){var a=e.layers.map(e=>[...e]),n=t.edges,o=tr(t),i=ar(t,r?.laneOrder);for(let e=0;e<3;e++){for(let e=1;e<a.length;e++)a[e]=Pr(a[e-1],a[e],n,"down",o,i),a[e]=zr(a[e-1],a[e],n,a[e+1],o);for(let e=a.length-2;0<=e;e--)a[e]=Pr(a[e+1],a[e],n,"up",o,i),a[e]=zr(a[e+1],a[e],n,a[e-1],o)}return{layers:a}}function Gr(e,t,r){var n=r?.layerGap??sr,o=r?.nodeGap??lr,i=r?.laneGap??2*o,s="LR"===(s=r?.direction??"TB")||"RL"===s,l=e.layers,d=Object.create(null),f=Object.create(null);let h=a(e=>t.nodeById.get(e),"getNode"),g=a(e=>h(e)?.width??0,"getWidth"),u=a(e=>h(e)?.height??0,"getHeight");var c,p=tr(t),x=(e=ar(t,r?.laneOrder),l.map(e=>e.reduce((e,t)=>Math.max(e,u(t)),0))),m=[];if(s)for(let e=0;e+1<l.length;e++){var y=l[e].reduce((e,t)=>Math.max(e,g(t)),0),v=l[e+1].reduce((e,t)=>Math.max(e,g(t)),0),b=x[e],M=x[e+1];y=Math.max(0,(y+v)/2-(b/2+M/2)-n);m.push(y)}let I=new Set;for(c of l)for(var w of c)I.add(p(w));var S,C,L=I.has(null),k=(r=e.filter(e=>I.has(e)),[...L?[null]:[],...r]);let T=Object.create(null);for(S of r)T[S]=0;for(C of(L&&(T.null=0),l)){var O,R,N,B,E=Object.create(null),F=[];for(O of C){var Y=p(O);(null===Y?F:E[Y]||=[]).push(O)}for([R,N]of Object.entries(E)){var X=N.reduce((e,t)=>e+g(t),0)+o*Math.max(0,N.length-1);T[R]=Math.max(T[R]??0,X)}L&&F.length&&(B=F.reduce((e,t)=>e+g(t),0)+o*Math.max(0,F.length-1),T.null=Math.max(T.null??0,B))}var P,z,A=new Map;{var G=k.map(e=>(null===e?T.null:T[e])??0);let e=-(G.reduce((e,t)=>e+t,0)+i*Math.max(0,k.length-1))/2;for(let t=0;t<k.length;t++){var $=k[t],D=G[t]??0,H=e+D/2;A.set($,H),e+=D,t<k.length-1&&(e+=i)}}let j=0;for([P,z]of l.entries()){var _,V,W=x[P]??0,q=new Map;for(_ of z){var J=p(_),K=q.get(J)??[];K.push(_),q.set(J,K)}for(V of k){var Q=q.get(V)??[];if(0!==Q.length){var Z=A.get(V);if(1===Q.length){var U=Q[0];d[U]=Z,f[U]=j+W/2}else{var ee,te,re=Q.map(e=>g(e));let e=Z-(re.reduce((e,t)=>e+t,0)+o*(Q.length-1))/2;for([ee,te]of Q.entries()){var ae=re[ee];d[te]=e+ae/2,f[te]=j+W/2,e+=ae+o}}}}j+=W+n+(m[P]??0)}var ne,oe,ie=new Map;for(ne of t.edges){var se=ne.ref.id;ie.has(se)||ie.set(se,[]),ie.get(se).push(ne)}for([,oe]of ie)if(0!==oe.length){var le=oe[0].ref,de=le.start,fe=le.end;if(null!=de&&null!=fe){var he,ge,ue=Math.round(((d[de]??0)+(d[fe]??0))/2),ce=new Set;for(he of oe)ce.add(he.src),ce.add(he.dst);for(ge of ce)ge!==de&&ge!==fe&&t.nodeById.get(ge)?.isDummy&&(d[ge]=ue)}}return{x:d,y:f}}a(dr,"buildDrivingTree"),a(fr,"chooseParent"),a(hr,"buildAdjacency"),a(gr,"assignComponents"),a(ur,"computeBlocks"),a(cr,"popBlock"),a(pr,"computeSubtreeCrossCounts"),a(xr,"annotateMinimumLayers"),a(mr,"compareByRankThenId"),a(yr,"emitNodesInTreeOrder"),a(vr,"deduplicateLayers"),a(br,"createChildOrderer"),a(Mr,"buildMultitreeLayerOrder"),a(Ir,"countCrossingsBetweenAdjacent"),a(wr,"totalCrossings"),a(Sr,"optimizeRanksByCrossings"),a(Cr,"adjustCrossLaneSources"),a(Lr,"assignLayers_LongestPath"),a(kr,"assignLayers_Gravity"),a(Tr,"topoSortByGenerationIfAcyclic"),a(Or,"assignLayers_LaneAwareCompact"),a(Rr,"makeProperLayering"),a(Nr,"median"),a(Br,"barycenter"),a(Er,"neighborPositionsFor"),a(Fr,"currentOrderTieBreak"),a(Yr,"countCrossingsBetweenAdjacent"),a(Xr,"sortByHeuristic"),a(Pr,"reorderLayer"),a(zr,"transposeImprove"),a(Ar,"orderLayers"),a(Gr,"assignCoordinates");function $r(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return t>>>0}function Dr(e){let t=e>>>0;return()=>{var e=t+=1831565813;e=Math.imul(e^e>>>15,1|e);return(((e^=e+Math.imul(e^e>>>7,61|e))^e>>>14)>>>0)/4294967296}}function Hr(e,t){var r=[...e],a=Dr(t);for(let e=r.length-1;0<e;e--){var n=Math.floor(a()*(e+1));[r[e],r[n]]=[r[n],r[e]]}return r}function jr(e,t){let r=0;for(var[a,n]of e.entries())r+=Math.abs(a-(t.get(n)??a));return r}function _r(e,t){var r,a,n,o,i,s=new Map;for([r,a]of e.entries())s.set(a,r);let l=0;for({a:n,b:o,weight:i}of t){var d=s.get(n),f=s.get(o);null!=d&&null!=f&&(l+=i*Math.abs(d-f))}return l}function Vr(e){var t=rr(e);if(t.length<2)return[];var r,a,n,o,i,s=new Map(t.map((e,t)=>[e,t])),l=tr(e),d=new Map;for(r of e.layout.edges??[])r.isLayoutOnly||(i="string"==typeof r.start?r.start:void 0,o="string"==typeof r.end?r.end:void 0,i&&o&&e.nodeById.has(i)&&e.nodeById.has(o)&&(i=l(i),o=l(o),i)&&o&&i!==o&&(a=s.get(i),n=s.get(o),null!=a)&&null!=n&&([a,n]=a<=n?[i,o]:[o,i],(i=d.get(o=a+"\0"+n))?i.weight++:d.set(o,{a:a,b:n,weight:1})));return[...d.values()]}function Wr(e,t,r){var a=[...e];let n=_r(a,t),o=!0,i=0;for(var s=Math.max(1,a.length);o&&i<s;){o=!1,i++;for(let e=0;e+1<a.length;e++){[a[e],a[e+1]]=[a[e+1],a[e]];var l=_r(a,t);l<n?(n=l,o=!0):[a[e],a[e+1]]=[a[e+1],a[e]]}}return{order:a,cost:n,sourceDistance:jr(a,r)}}function qr(e,t){return e.cost!==t.cost?e.cost<t.cost:e.sourceDistance<t.sourceDistance}function Jr(e,t,r){return t=[...t].sort((e,t)=>e.a===t.a?e.b.localeCompare(t.b):e.a.localeCompare(t.a)).map(({a:e,b:t,weight:r})=>e+`:${t}:`+r).join("|"),$r(e.join("|")+`#${t}#`+r)}function Kr(e,t={}){var r=rr(e);if(r.length<2)return r;var a=Vr(e);if(0===a.length)return r;var n=new Map(r.map((e,t)=>[e,t]));let o=Wr(r,a,n);var i=Math.max(0,t.restarts??8);for(let e=0;e<i;e++){var s=Wr(Hr(r,Jr(r,a,e)),a,n);qr(s,o)&&(o=s)}return o.order}function Qr(e,t){var r=t?.ignoreCrossLaneEdges??!0,a=t?.optimizeRanksByCrossings??!0,n=(e=Dt(e),t?.automaticLaneOrdering?Kr(e,{restarts:8}):void 0),o=(e=Ut(e)).acyclic,{layering:r,graphWithDummies:a}=Rr(r?Or(o,{compactSingleInput:t?.compactSingleInput??ir,ignoreCrossLaneEdges:!0,direction:t?.direction}):kr(o,{compactSingleInput:t?.compactSingleInput??ir,ignoreCrossLaneEdges:!1,optimizeRanksByCrossings:a}),o),i=Ar(r,a,{laneOrder:n});a=Gr(i,a,{layerGap:t?.layerGap,nodeGap:t?.nodeGap,direction:t?.direction,laneOrder:n});return{acyclic:o,reversed:e.reversed,layering:r,ordered:i,coordinates:a}}a($r,"hashString"),a(Dr,"mulberry32"),a(Hr,"deterministicShuffle"),a(jr,"sourceDistance"),a(_r,"laneArrangementCost"),a(Vr,"buildWeightedLaneEdges"),a(Wr,"greedySwitch"),a(qr,"isBetterCandidate"),a(Jr,"seedForRestart"),a(Kr,"optimizeTopLaneOrder"),a(Qr,"sugiyamaLayout");var Zr=1e-6,Ur=15,ea=15,ta=20;function ra(e,t,r){var a=e.x??0,n=(a=t.x-a,t=t.y-(e.y??0),e=Math.abs(a),Math.abs(t));return e<Zr&&n<Zr?r:Zr<n&&e<=3*n?0<t?"bottom":"top":Zr<e?0<a?"right":"left":r}function aa(e,t){return Math.abs(e.to-t.from)<Zr||Math.abs(e.to-t.to)<Zr?e.to:e.from}function na(e,t){return"vertical"===e.orient?{x:e.coord,y:t}:{x:t,y:e.coord}}function oa(e,t){let r=e.nodes??[];var n,o,i;let s=[];for(n of e.edges??[])n.isLayoutOnly||s.push({...n,__originalEdge:n});let l=new Map,d=new Map,f=[],h="LR"===t;for(o of r)l.set(o.id,o);for(i of r.filter(e=>e.isGroup&&!e.parentId)){let e={id:i.id},t=a(a=>{d.set(a.id,e),r.filter(e=>e.parentId===a.id).forEach(t)},"assignLane");t(i)}let g=r.filter(e=>!e.isGroup&&!e.isEdgeLabel).map(e=>{var t=e.width??10,r=e.height??10,a=e.x??0,n=e.y??0;return{nodeId:e.id,minX:a-t/2-8,maxX:a+t/2+8,minY:n-r/2-8,maxY:n+r/2+8,visualXHalfExtent:h?r/2+8:t/2+8}});var u=a((e,t,r,a)=>{let n=f.find(r=>r.orientation===e&&Math.abs(r.coord-t)<1);return n||(n={id:`pipe-${e}-`+t.toFixed(0),orientation:e,coord:t,spanMin:r,spanMax:a,tracks:[]},f.push(n)),n.spanMin=Math.min(n.spanMin,r),n.spanMax=Math.max(n.spanMax,a),n},"getOrAddPipe");let c=a((e,t)=>{var r=e.width??10,a=e.height??10,n=e.x??0,o=e.y??0;switch(t){case"top":return{x:n,y:o-a/2};case"bottom":return{x:n,y:o+a/2};case"left":return{x:n-r/2,y:o};case"right":return{x:n+r/2,y:o}}},"portForSide"),p=a((e,t,r)=>c(e,ra(e,t,r?"bottom":"top")),"getOrthogonalPort"),x=[],m=[],y=new Set;var v=a((e,t,r)=>{if(0===x.length)return 0;var a=Math.abs(t.y-r.y)<Zr,n=Math.abs(t.x-r.x)<Zr;if(!a&&!n)return 0;let o=0;if(a){var i,s=t.y,l=Math.min(t.x,r.x)-Zr,d=Math.max(t.x,r.x)+Zr;if(d<=l)return 0;for(i of x)i.edgeIndex===e||"vertical"!==i.orientation||i.pipe.coord<l||i.pipe.coord>d||i.from-Zr<=s&&i.to+Zr>=s&&(o+=1e3)}else if(n){var f,h=t.x,g=Math.min(t.y,r.y)-Zr,u=Math.max(t.y,r.y)+Zr;if(u<=g)return 0;for(f of x)f.edgeIndex===e||"horizontal"!==f.orientation||f.pipe.coord<g||f.pipe.coord>u||f.from-Zr<=h&&f.to+Zr>=h&&(o+=1e3)}return o},"crossingPenalty");t=s.map((e,t)=>{var r,a,n;return e.start&&e.end?(r=l.get(e.start),a=l.get(e.end),n=d.get(e.start),e=d.get(e.end),{idx:t,crossLane:n&&e&&n.id!==e.id?1:0,dx:r&&a?Math.abs((a.x??0)-(r.x??0)):0,dy:r&&a?Math.abs((a.y??0)-(r.y??0)):0}):{idx:t,crossLane:0,dx:0,dy:0}}).sort((e,t)=>{var r,a;return e.crossLane!==t.crossLane?t.crossLane-e.crossLane:(r=e.dx+e.dy,a=t.dx+t.dy,1<Math.abs(r-a)?r-a:e.idx-t.idx)}).map(e=>e.idx);let b=a((e,t,r,a)=>{let n=Math.min(e.x,t.x),o=Math.max(e.x,t.x),i=Math.min(e.y,t.y),s=Math.max(e.y,t.y);return!!g.find(l=>!(r&&l.nodeId===r||a&&l.nodeId===a||!(Math.abs(e.x-t.x)>Zr?l.minY<e.y&&l.maxY>e.y&&l.maxX>n&&l.minX<o:l.minX<e.x&&l.maxX>e.x&&l.maxY>i&&l.minY<s)))},"isSegmentBlocked"),M=new Map;var I,w,S,C,L,k,T,O=new Map;for(I of s)I.start&&I.end&&I.start!==I.end&&(O.set(I.start,(O.get(I.start)??0)+1),O.set(I.end,(O.get(I.end)??0)+1));let R=a((e,t)=>ra(e,t,"bottom"),"determineSide"),N=new Map;for([w,S]of s.entries())S.start&&S.end&&S.start!==S.end&&(S.points&&0<S.points.length||(C=l.get(S.start),L=l.get(S.end),C&&L&&(k=(L.x??0)-(C.x??0),T=(L.y??0)-(C.y??0),N.set(w,{edgeIdx:w,srcId:S.start,dstId:S.end,srcSide:R(C,{x:L.x??0,y:L.y??0}),dstSide:R(L,{x:C.x??0,y:C.y??0}),absDx:Math.abs(k),absDy:Math.abs(T),dxSign:Math.sign(k),dySign:Math.sign(T)}))));let B=a(e=>"top"===e.srcSide||"bottom"===e.srcSide?0===e.absDx?1/0:e.absDy/e.absDx:0===e.absDy?1/0:e.absDx/e.absDy,"preferenceStrength");var E,F=a(e=>"top"===e.srcSide||"bottom"===e.srcSide?0<=e.dxSign?"right":"left":0<=e.dySign?"bottom":"top","secondarySide"),Y=new Map;for(E of N.values()){var X=E.srcId+":"+E.srcSide;Y.has(X)||Y.set(X,[]),Y.get(X).push(E)}var P,z,A=new Map,G=a((e,t)=>e+":"+t,"loadKey");for(P of N.values())A.set(G(P.srcId,P.srcSide),(A.get(G(P.srcId,P.srcSide))??0)+1),A.set(G(P.dstId,P.dstSide),(A.get(G(P.dstId,P.dstSide))??0)+1);for(z of Y.values())if(!(z.length<2)){z.sort((e,t)=>{var r=B(e),a=B(t);return 1e-9<Math.abs(r-a)?a-r:e.edgeIdx-t.edgeIdx});for(let e=1;e<z.length;e++){var $=z[e],D=F($),H=A.get(G($.srcId,$.srcSide))??0,j=A.get(G($.srcId,D))??0;H<=j||(A.set(G($.srcId,$.srcSide),H-1),A.set(G($.srcId,D),j+1),$.srcSide=D)}}var _,V,W,q,J,K=a(e=>(e=e?.shape,"question"===e||"diamond"===e),"isDiamondNode"),Q=new Map;for(_ of N.values())Q.has(_.dstId)||Q.set(_.dstId,new Set),Q.get(_.dstId).add(_.dstSide);for(V of N.values())K(l.get(V.srcId))&&(q=Q.get(V.srcId))?.has(V.srcSide)&&(W=F(V),q.has(W)||0<(A.get(G(V.srcId,W))??0)||(q=A.get(G(V.srcId,V.srcSide))??0,A.set(G(V.srcId,V.srcSide),Math.max(0,q-1)),A.set(G(V.srcId,W),1),V.srcSide=W));for(J of N.values()){var{edgeIdx:Z,srcId:U,dstId:ee,srcSide:te,dstSide:re}=J,ae=l.get(U),ne=l.get(ee),te=(U=U+`:${te}:src`,"top"===te||"bottom"===te?ne.x??0:ne.y??0),U=(ne=(M.has(U)||M.set(U,[]),M.get(U).push({edgeIdx:Z,oppositeCoord:te}),ee+`:${re}:dst`),"top"===re||"bottom"===re?ae.x??0:ae.y??0);M.has(ne)||M.set(ne,[]),M.get(ne).push({edgeIdx:Z,oppositeCoord:U})}let oe=new Map;var ie,se;for([ie,se]of M)if(!(se.length<2)){se.sort((e,t)=>e.oppositeCoord-t.oppositeCoord);var le,de=(le=ie.split(":")).slice(0,-2).join(":"),fe=le[le.length-2],he=le[le.length-1];if(le=l.get(de)){de="left"===fe||"right"===fe?le.height??10:le.width??10,fe=le.shape;var ge,ue,ce=Math.min(20,Math.max(8,("question"===fe||"diamond"===fe?.3*de:de)/(se.length+1))),pe=-ce*(se.length-1)/2;for([ge,ue]of se.entries()){var xe=pe+ge*ce,me=ue.edgeIdx+":"+he;oe.set(me,xe)}}}let ye=a(e=>Boolean(s[e]?.labelNodeId),"edgeHasLabelNode");var ve=a((e,t)=>!!e&&((M.get(e+`:${t}:src`)??[]).some(({edgeIdx:e})=>ye(e))||(M.get(e+`:${t}:dst`)??[]).some(({edgeIdx:e})=>ye(e))),"faceHasLabelNode");let be=a((e,t,r)=>"top"===t||"bottom"===t?{x:e.x+r,y:e.y}:{x:e.x,y:e.y+r},"applyPortOffset");var Me,Ie=a((e,t,r)=>{var a=N.get(e),n={x:r.x??0,y:r.y??0},o={x:t.x??0,y:t.y??0},i=a?.srcSide??R(t,n),s=a?.dstSide??R(r,o);let l=a?c(t,a.srcSide):p(t,n,!0),d=a?c(r,a.dstSide):p(r,o,!1);return t=oe.get(e+":src"),n=oe.get(e+":dst"),void 0!==t&&(l=be(l,i,t)),void 0!==n&&(d=be(d,s,n)),{pSrcPort:l,pDstPort:d,srcSide:i,dstSide:s}},"portsForEdge");for(Me of t){let e=s[Me];if(m[Me]=[],e.start&&e.end&&!(e.points&&0<e.points.length)&&e.start!==e.end){var we=l.get(e.start),Se=l.get(e.end);if(we&&Se){var Ce,Le,{pSrcPort:ke,pDstPort:Te,srcSide:Oe,dstSide:Re}=Ie(Me,we,Se),Ne={...ke},Be={...Te},Ee="top"===Re||"bottom"===Re,Fe=((Je="top"===Oe||"bottom"===Oe)?(Ce=ke.y>(we.y??0),Ne.y=Ce?ke.y+ta:ke.y-ta):(Ce=ke.x>(we.x??0),Ne.x=Ce?ke.x+ta:ke.x-ta),Ee?(Le=Te.y>(Se.y??0),Be.y=Le?Te.y+ta:Te.y-ta):(Le=Te.x>(Se.x??0),Be.x=Le?Te.x+ta:Te.x-ta),a((e,t)=>{for(var r of g)if(!t.includes(r.nodeId)&&e.x>r.minX&&e.x<r.maxX&&e.y>r.minY&&e.y<r.maxY)return{inside:!0,obstacle:r};return{inside:!1}},"isPointInObstacle")),Ye=a((e,t,r,a,n)=>n?(n=e.y>(t.y??0),{x:(r.x??0)>=e.x?a.maxX+Ur:a.minX-Ur,y:n?a.maxY+ea:a.minY-ea,leavesPositiveSide:n}):(n=e.x>(t.x??0),t=(r.y??0)>=e.y,{x:n?a.maxX+Ur:a.minX-Ur,y:t?a.maxY+ea:a.minY-ea,leavesPositiveSide:n}),"obstacleDetour");let t=[];var Xe,Pe=[e.start,e.end],ze=Fe(Ne,Pe);ze.inside&&ze.obstacle&&(ze=ze.obstacle,t=Je?(Je=Ye(ke,we,Se,ze,!0),Ne.x=Je.x,Ne.y=Je.y,Xe=Je.leavesPositiveSide?Math.min(ze.minY-2,ke.y+ta):Math.max(ze.maxY+2,ke.y-ta),[{x:ke.x,y:Xe},{x:Je.x,y:Xe},{x:Je.x,y:Je.y}]):(Je=(Xe=Ye(ke,we,Se,ze,!1)).leavesPositiveSide?Math.min(ze.minX-2,ke.x+ta):Math.max(ze.maxX+2,ke.x-ta),Ne.x=Xe.x,Ne.y=Xe.y,[{x:Je,y:ke.y},{x:Je,y:Xe.y},{x:Xe.x,y:Xe.y}]));let r=[];if((ze=Fe(Be,Pe)).inside&&ze.obstacle&&(Je=ze.obstacle,r=Ee?(Fe=Ye(Te,Se,we,Je,!0),Be.x=Fe.x,Be.y=Fe.y,[{x:Fe.x,y:Fe.y},{x:Te.x,y:Fe.y}]):(Pe=Ye(Te,Se,we,Je,!1),Be.x=Pe.x,Be.y=Pe.y,[{x:Pe.x,y:Pe.y},{x:Pe.x,y:Te.y}])),0===t.length&&0===r.length&&(ze=Ur,Ee=Math.abs(Ne.x-Be.x)<ze,Fe=Math.abs(Ne.y-Be.y)<ze,Ye=void 0!==oe.get(Me+":src")||void 0!==oe.get(Me+":dst"),Se=(M.get(`${e.start??""}:${Oe}:src`)?.length??0)+(M.get(`${e.start??""}:${Oe}:dst`)?.length??0),we=(M.get(`${e.end??""}:${Re}:src`)?.length??0)+(M.get(`${e.end??""}:${Re}:dst`)?.length??0),Je=1<Se||1<we,Pe=O.get(e.start??"")??0,ze=O.get(e.end??"")??0,Oe=1<Se&&ve(e.start,Oe)||1<we&&ve(e.end,Re),Re=Je&&!Oe&&(Se<=1||Pe<=2)&&(we<=1||ze<=2),(Ee||Fe)&&!Ye&&(!Je||Re)&&!b(ke,Te,e.start,e.end))){e.points=[{...ke},{...Ne},{...Be},{...Te}],y.add(Me),Oe=Fe?"horizontal":"vertical",Se=Fe?ke.y:ke.x,Pe=Fe?Math.min(ke.x,Te.x):Math.min(ke.y,Te.y),we=Fe?Math.max(ke.x,Te.x):Math.max(ke.y,Te.y),ze={id:`fast-path-${Oe}-${Se.toFixed(0)}-`+Me,orientation:Oe,coord:Se,spanMin:Pe,spanMax:we,tracks:[]},x.push({edgeIndex:Me,segmentIndex:0,orientation:Oe,pipe:ze,trackIndex:0,from:Pe,to:we});continue}var Ae,Ge,$e;Ee=u("vertical",Ne.x,Ne.y,Ne.y),Ye=(Ne.x=Ee.coord,u("vertical",Be.x,Be.y,Be.y));Be.x=Ye.coord;let n=Math.min(Ne.x,Be.x)-50,o=Math.max(Ne.x,Be.x)+50,i=Math.min(Ne.y,Be.y)-50,s=Math.max(Ne.y,Be.y)+50;for(Ae of g){var De=Math.min(Ne.x,Be.x),He=Math.max(Ne.x,Be.x),je=Math.min(Ne.y,Be.y),_e=Math.max(Ne.y,Be.y);Ae.minX<He&&Ae.maxX>De&&Ae.minY<_e&&Ae.maxY>je&&(n=Math.min(n,Ae.minX-25),o=Math.max(o,Ae.maxX+25),i=Math.min(i,Ae.minY-25),s=Math.max(s,Ae.maxY+25))}for(Ge of g)Ge.maxX<n||Ge.minX>o||Ge.maxY<i||Ge.minY>s||($e=Ur,u("horizontal",Ge.minY-$e,n,o),u("horizontal",Ge.maxY+$e,n,o),$e=ea,u("vertical",Ge.minX-$e,i,s),u("vertical",Ge.maxX+$e,i,s));u("horizontal",Ne.y,n,o),u("horizontal",Be.y,n,o);var Ve=f.filter(e=>"horizontal"===e.orientation&&e.coord>=i&&e.coord<=s),We=f.filter(e=>"vertical"===e.orientation&&e.coord>=n&&e.coord<=o),qe=a((e,t)=>e.toFixed(1)+","+t.toFixed(1),"getKey"),Je=qe(Ne.x,Ne.y),Ke=qe(Be.x,Be.y),Qe=new Map,Ze=new Map,Ue=new Map,et=new Set,tt=[];Qe.set(Je,0),Ue.set(Je,"n"),tt.push({key:Je,f:Math.hypot(Be.x-Ne.x,Be.y-Ne.y),pt:Ne}),et.add(Je);let l=[],d=a((t,r)=>b(t,r,e.start,e.end),"checkSegmentBlocked");if(Re={x:Be.x,y:Ne.y},Fe=d(Ne,Re),Se=d(Re,Be),Oe=Fe||Se,ze={x:Ne.x,y:Be.y},Pe=d(Ne,ze),we=d(ze,Be),Oe?Pe||we||(l=Math.abs(Ne.x-Be.x)<Zr?[Ne,Be]:[Ne,ze,Be]):l=Math.abs(Ne.y-Be.y)<Zr||Math.abs(Ne.x-Be.x)<Zr?[Ne,Be]:[Ne,Re,Be],0===l.length)for(;0<tt.length;){tt.sort((e,t)=>e.f-t.f);var rt=tt.shift();if(et.delete(rt.key),rt.key===Ke){let e=Ke;for(l=[Be];Ze.has(e);){var at=Ze.get(e);l.unshift(at),e=qe(at.x,at.y)}break}let t=rt.pt.x,r=rt.pt.y;var nt,ot=We.sort((e,t)=>e.coord-t.coord),it=ot.findIndex(e=>Math.abs(e.coord-t)<1),st=Ve.sort((e,t)=>e.coord-t.coord),lt=st.findIndex(e=>Math.abs(e.coord-r)<1),dt=[];for(nt of(0<it&&dt.push({x:ot[it-1].coord,y:r}),0<=it&&it<ot.length-1&&dt.push({x:ot[it+1].coord,y:r}),0<lt&&dt.push({x:t,y:st[lt-1].coord}),0<=lt&<<st.length-1&&dt.push({x:t,y:st[lt+1].coord}),dt)){let a=Math.min(t,nt.x),n=Math.max(t,nt.x),o=Math.min(r,nt.y),i=Math.max(r,nt.y);var ft=g.some(s=>s.nodeId!==e.start&&s.nodeId!==e.end&&(a!==n?s.minY<r&&s.maxY>r&&s.maxX>a&&s.minX<n:s.minX<t&&s.maxX>t&&s.maxY>o&&s.minY<i));if(!ft){let e=qe(nt.x,nt.y);ft=Math.abs(nt.x-t)+Math.abs(nt.y-r);var ht=v(Me,rt.pt,nt);let a=0;var gt=Be.x-Ne.x,ut=Be.y-Ne.y,ct=nt.x-t,pt=nt.y-r;(10<ut&&pt<-5||ut<-10&&5<pt)&&(a=100*Math.abs(pt)),(10<gt&&ct<-5||gt<-10&&5<ct)&&(a+=50*Math.abs(ct));let n=0;ut=Ue.get(rt.key)??"n",pt=Math.abs(ct)>Zr?"h":"v","n"!==ut&&ut!==pt&&(n=50),gt=ft+ht+a+n,ct=(Qe.get(rt.key)??1/0)+gt,ut=Math.abs(Be.x-nt.x)+Math.abs(Be.y-nt.y),ct<(Qe.get(e)??1/0)&&(Ze.set(e,rt.pt),Qe.set(e,ct),Ue.set(e,pt),et.has(e)?-1!==(ft=tt.findIndex(t=>t.key===e))&&(tt[ft].f=ct+ut):(tt.push({key:e,f:ct+ut,pt:nt}),et.add(e)))}}}if(4<(l=0===l.length?[Ne,{x:Ne.x,y:Be.y},Be]:l).length){let e=l[0],t=l[l.length-1],r=Math.min(e.x,t.x),n=Math.max(e.x,t.x),o=Math.min(e.y,t.y),i=Math.max(e.y,t.y);for(var xt of l)r=Math.min(r,xt.x),n=Math.max(n,xt.x),o=Math.min(o,xt.y),i=Math.max(i,xt.y);if(Ee=n>Math.max(e.x,t.x),Ye=r<Math.min(e.x,t.x),h){let a=ea;if(Ee){let r=Math.max(e.x,t.x),o=Math.min(e.y,t.y),i=Math.max(e.y,t.y);if(Je=g.filter(e=>e.minX<r&&e.maxX>r&&e.minY<i&&e.maxY>o),0<Je.length){let r=Math.max(e.x,t.x);for(var mt of Je){var yt=(mt.minX+mt.maxX)/2;void 0===mt.visualXHalfExtent||isNaN(mt.visualXHalfExtent)||(yt=yt+mt.visualXHalfExtent+a,r=Math.max(r,yt))}isNaN(r)||(n=r)}}if(Ye&&(Fe=g.filter(r=>r.minX<Math.min(e.x,t.x)+a&&r.minY<Math.max(e.y,t.y)&&r.maxY>Math.min(e.y,t.y)),0<Fe.length)){let n=Math.min(e.x,t.x);for(var vt of Fe)vt=(vt.minX+vt.maxX)/2-vt.visualXHalfExtent-a,n=Math.min(n,vt);r=n}}let s=a(r=>{var a=t.y>e.y,n=g.filter(r=>{var a=Math.min(e.x,t.x)<r.maxX&&Math.max(e.x,t.x)>r.minX;r=Math.min(e.y,t.y)<r.maxY&&Math.max(e.y,t.y)>r.minY;return a&&r});let o=n;if(0!==(o=h&&0<n.length&&0<(n=n.filter(e=>e.minX<r&&e.maxX>r)).length?n:o).length)if(n=Ur,a){if((a=Math.max(...o.map(e=>e.maxY))+n)<t.y-Zr)return a}else if((a=Math.min(...o.map(e=>e.minY))-n)>t.y+Zr)return a;return t.y},"findBestReturnY");Se=a(r=>{var a=s(r),n={x:r,y:e.y},o=(r={x:r,y:a},{x:t.x,y:a}),i=d(e,n),l=d(n,r),f=d(r,o),h=a!==t.y&&d(o,t);return i||l||f||h?null:Math.abs(a-t.y)<Zr?[e,n,r,t]:[e,n,r,o,t]},"trySimplifyWithDetourX"),(Oe=Ee&&!Ye?Se(n):Ye&&!Ee?Se(r):null)&&(l=Oe)}var bt,Mt,It,wt=[ke,...t,...l,...r.reverse(),Te],St=(3<=wt.length&&(Pe=wt[wt.length-1],we=wt[wt.length-2],ze=wt[wt.length-3],Re=Math.abs(ze.y-we.y)<Zr&&Math.abs(we.y-Pe.y)<Zr,Je=Math.abs(ze.x-we.x)<Zr&&Math.abs(we.x-Pe.x)<Zr,Re?(Fe=Math.sign(we.x-ze.x),Ye=Math.sign(Pe.x-ze.x),0!==Fe&&Fe===Ye&&Math.abs(we.x-ze.x)>Math.abs(Pe.x-ze.x)&&wt.splice(-2,1)):Je&&(Ee=Math.sign(we.y-ze.y),Se=Math.sign(Pe.y-ze.y),0!==Ee)&&Ee===Se&&Math.abs(we.y-ze.y)>Math.abs(Pe.y-ze.y)&&wt.splice(-2,1)),[wt[0]]);for(let e=1;e<wt.length-1;e++)1===e?St.push(wt[e]):(bt=St[St.length-1],Mt=wt[e],It=wt[e+1],Math.abs(bt.y-Mt.y)<Zr&&Math.abs(Mt.y-It.y)<Zr?Mt.x>bt.x!=It.x>Mt.x&&St.push(Mt):Math.abs(bt.x-Mt.x)<Zr&&Math.abs(Mt.x-It.x)<Zr&&Mt.y>bt.y==It.y>Mt.y||St.push(Mt));St.push(wt[wt.length-1]);for(let e=0;e<St.length-1;e++){var Ct=St[e],Lt=St[e+1],kt=Math.abs(Ct.x-Lt.x)<Zr?"vertical":"horizontal",Tt="vertical"==kt?Ct.x:Ct.y,Ot="vertical"==kt?Math.min(Ct.y,Lt.y):Math.min(Ct.x,Lt.x);Tt={edgeIndex:Me,segmentIndex:e,orientation:kt,pipe:Lt=u(kt,Tt,Ot,Ct="vertical"==kt?Math.max(Ct.y,Lt.y):Math.max(Ct.x,Lt.x)),trackIndex:0,from:Ot,to:Ct};x.push(Tt),m[Me].push(x.length-1),Lt.tracks[0]||(Lt.tracks[0]={index:0,coord:Lt.coord,segments:[]}),Lt.tracks[0].segments.push({edgeIndex:Me,segmentIndex:e,from:Ot,to:Ct})}}}}let Rt=a((e,t)=>e.from<t.to&&t.from<e.to,"segmentsOverlap"),Nt=a((e,t,r,a)=>{var n=!a.segments.some(r=>(r.edgeIndex!==t.edgeIndex||r.segmentIndex!==t.segmentIndex)&&Rt(r,e)),o=!r.segments.some(r=>(r.edgeIndex!==e.edgeIndex||r.segmentIndex!==e.segmentIndex)&&Rt(r,t));return n&&o&&(e.trackIndex=a.index,t.trackIndex=r.index,r.segments=[...r.segments.filter(t=>t.edgeIndex!==e.edgeIndex||t.segmentIndex!==e.segmentIndex),{edgeIndex:t.edgeIndex,segmentIndex:t.segmentIndex,from:t.from,to:t.to}],a.segments=[...a.segments.filter(e=>e.edgeIndex!==t.edgeIndex||e.segmentIndex!==t.segmentIndex),{edgeIndex:e.edgeIndex,segmentIndex:e.segmentIndex,from:e.from,to:e.to}],!0)},"trySwapSegmentsAcrossTracks"),Bt=a(e=>{var t=e.tracks.length;return e.tracks[t]={index:t,coord:e.coord,segments:[]},t},"createNewTrack"),Et=a((e,t)=>{var r=e.pipe.tracks[e.trackIndex];r.segments=r.segments.filter(t=>t.edgeIndex!==e.edgeIndex||t.segmentIndex!==e.segmentIndex),e.trackIndex=t,e.pipe.tracks[t].segments.push({edgeIndex:e.edgeIndex,segmentIndex:e.segmentIndex,from:e.from,to:e.to})},"moveSegmentToTrack"),Ft=a((e,t)=>{var r;for(r of m[e.edgeIndex]){var a=x[r];a.pipe===e.pipe&&Et(a,t)}},"moveSegmentChainToTrack"),Yt=a(e=>{var t=m[e.edgeIndex],r=[];return 0<(e=t.indexOf(x.indexOf(e)))&&r.push(x[t[e-1]]),e<t.length-1&&r.push(x[t[e+1]]),r},"getAdjacentSegmentsAlongEdge"),Xt=a((e,t)=>{var r;return e.orientation!==t.orientation&&(r="horizontal"===e.orientation?t:e).pipe.coord>(e="horizontal"===e.orientation?e:t).from&&r.pipe.coord<e.to&&e.pipe.coord>r.from&&e.pipe.coord<r.to},"haveAnyCrossing"),Pt=a((e,t)=>{for(var r of e.tracks)if(!r.segments.some(e=>(e.edgeIndex!==t.edgeIndex||e.segmentIndex!==t.segmentIndex)&&Rt(e,t)))return r.index;return-1},"findAvailableTrack"),zt=a((e,t)=>{if(e.trackIndex===t.trackIndex)return Rt(e,t);e=Yt(e);let r=Yt(t);return e.some(e=>r.some(t=>Xt(e,t)))},"segmentsConflict"),At=a((e,t,r)=>{Nt(e,t,e.pipe.tracks[e.trackIndex],t.pipe.tracks[t.trackIndex])||r(t,-1!==(r=Pt(e.pipe,t))?r:Bt(e.pipe))},"resolveTrackConflict"),Gt=a(e=>{let t=0;for(let n=0;n<e.length;n++)for(let o=n+1;o<e.length;o++){var r=e[n],a=e[o];r.pipe===a.pipe&&zt(r,a)&&(t++,At(r,a,Ft))}return t},"resolveHandleConflicts"),$t=new Map,Dt=a(e=>{if($t.has(e))return $t.get(e);var t=m[e];if(0===t.length)return i={dest:0,deviation:0,base:0,delta:0},$t.set(e,i),i;var r=x[t[0]].pipe.coord;let a=r;for(let e=1;e<t.length;e++){if("horizontal"===(o=x[t[e]]).orientation){var n=o.from,o=o.to;a=Math.abs(n-r)>Math.abs(o-r)?n:o;break}}var i={dest:a,deviation:i=Math.abs(a-r),base:r,delta:a-r};return $t.set(e,i),i},"getDestInfo");var Ht=a(()=>{let e=0;var t,r,n,o=new Map;for([t,r]of s.entries())0!==m[t].length&&r.start&&(o.has(r.start)||o.set(r.start,[]),o.get(r.start).push(t));let i=a(e=>{var t,r;return(e=s[e]).start&&e.end&&(t=l.get(e.start),e=l.get(e.end),t)&&e?(r=(e.x??0)-(t.x??0),e=(e.y??0)-(t.y??0),Math.abs(r)+Math.abs(e)):0},"getEdgeDistance");for(n of o.values()){n.sort((e,t)=>{var r=Dt(e),a=Dt(t);return 1<Math.abs(r.deviation-a.deviation)?r.deviation-a.deviation:1<Math.abs(r.dest-a.dest)?r.dest-a.dest:(r=i(e),a=i(t),1<Math.abs(r-a)||(a=m[e].length)!==(r=m[t].length)?a-r:1===a&&(r=m[e][0],a=m[t][0],x[r]&&x[a]&&(e=x[r],t=x[a],r=Math.abs(e.to-e.from),a=Math.abs(t.to-t.from),1<Math.abs(r-a)))?r-a:0)});var d=n.map(e=>x[m[e][0]]);e+=Gt(d)}return e},"fixSourceHandleCrossings"),jt=a(()=>{let e=0;var t,r,n,o=new Map;for([t,r]of s.entries())0!==m[t].length&&r.end&&(o.has(r.end)||o.set(r.end,[]),o.get(r.end).push(t));for(n of o.values()){n.sort((e,t)=>{var r=a(e=>(e=m[e]).length<2?0:(e=x[e[e.length-2]],Math.abs(e.to-e.from)),"getDist"),n=r(e);r=r(t);return.1<Math.abs(n-r)?n-r:e-t});var i=n.map(e=>x[m[e][m[e].length-1]]);e+=Gt(i)}return e},"fixTargetHandleCrossings"),_t=a(()=>{let e=0;for(var t of f){var r,a=[];for(r of t.tracks)for(let e of r.segments){var n=m[e.edgeIndex].find(t=>x[t].segmentIndex===e.segmentIndex);void 0!==n&&a.push(x[n])}a.sort((e,t)=>e.edgeIndex-t.edgeIndex||e.segmentIndex-t.segmentIndex);for(let t=0;t<a.length;t++)for(let r=t+1;r<a.length;r++){var o=a[t],i=a[r];zt(o,i)&&(e++,At(o,i,Et))}}return e},"fixPipeCrossings");let Vt=0;for(var Wt,qt,Jt;Vt<10;){var Kt=0;if(0===(Kt+=Ht())+jt()+_t())break;Vt++}let Qt=new Map;for(let e of f){let t=[];e.tracks.forEach(e=>{e.segments.forEach(r=>{t.push({edgeIndex:r.edgeIndex,segmentIndex:r.segmentIndex,trackIndex:e.index,from:r.from,to:r.to})})}),t.sort((e,t)=>e.from-t.from);var Zt=[];if(0<t.length){let e=[t[0]],r=t[0].to;for(let a=1;a<t.length;a++){var Ut=t[a];r=Ut.from<r?(e.push(Ut),Math.max(r,Ut.to)):(Zt.push(e),e=[Ut],Ut.to)}Zt.push(e)}for(let t of Zt){let r=new Set,n=(t.forEach(e=>r.add(e.trackIndex)),new Map);t.forEach(e=>{var t=Dt(e.edgeIndex);n.set(e.trackIndex,(n.get(e.trackIndex)??0)+t.delta)});var er,tr,rr,ar,nr,or,ir,sr=[...r].filter(e=>(n.get(e)??0)<-1),lr=[...r].filter(e=>1<(n.get(e)??0)),dr=[...r].filter(e=>Math.abs(n.get(e)??0)<=1),fr=(sr.sort((e,t)=>(n.get(t)??0)-(n.get(e)??0)),lr.sort((e,t)=>(n.get(e)??0)-(n.get(t)??0)),a((r,a)=>{t.filter(e=>e.trackIndex===r).forEach(t=>{var r=y.has(t.edgeIndex)?e.coord:a;Qt.set(t.edgeIndex+"-"+t.segmentIndex,r)})},"assignCoord"));let o=0;for(er of sr)o++,fr(er,e.coord-10*o);0===dr.length&&0<r.size&&(tr=[...r].sort((e,t)=>Math.abs(n.get(e)??0)-Math.abs(n.get(t)??0))[0],-1!==(rr=sr.indexOf(tr))&&sr.splice(rr,1),-1!==(sr=lr.indexOf(tr))&&lr.splice(sr,1),dr.push(tr));let i=0;for(ar of dr)0===i?fr(ar,e.coord):(nr=i%2==1?1:-1,or=Math.ceil(i/2),fr(ar,e.coord+nr*or*10*.5)),i++;let s=0;for(ir of lr)s++,fr(ir,e.coord+10*s)}}for([Wt,qt]of s.entries()){if(0!==(br=m[Wt]??[]).length){var hr=[],gr=l.get(qt.start),ur=l.get(qt.end),{pSrcPort:gr,pDstPort:ur}=Ie(Wt,gr,ur),cr=br.map(e=>{e=x[e];var t=Qt.get(e.edgeIndex+"-"+e.segmentIndex)??e.pipe.coord;return{orient:e.orientation,coord:t,from:e.from,to:e.to}});hr.push(gr);for(let e=0;e<cr.length;e++){var pr=cr[e],xr=hr[hr.length-1],mr="vertical"===pr.orient?xr.y:xr.x,yr=(xr="vertical"===pr.orient?xr.x:xr.y,cr[e+1]),vr=e<cr.length-1;Math.abs(xr-pr.coord)>Zr&&hr.push(na(pr,mr)),vr&&yr.orient===pr.orient?Math.abs(pr.coord-yr.coord)>Zr?(xr="vertical"===pr.orient?(mr+yr.from)/2:aa(pr,yr),hr.push(na(pr,xr),na(yr,xr))):0!==e&&e!==cr.length-2||hr.push(na(pr,aa(pr,yr))):vr?hr.push(na(pr,yr.coord)):(xr=Math.abs(pr.from-mr)<Math.abs(pr.to-mr)?pr.to:pr.from,hr.push(na(pr,xr)))}var br=hr[hr.length-1],Mr=((Math.abs(br.x-ur.x)>Zr||Math.abs(br.y-ur.y)>Zr)&&hr.push(ur),[]);0<hr.length&&Mr.push(hr[0]);for(let e=1;e<hr.length;e++){var Ir=hr[e],wr=Mr[Mr.length-1];(Math.abs(Ir.x-wr.x)>Zr||Math.abs(Ir.y-wr.y)>Zr)&&Mr.push(Ir)}qt.points=Mr}}for(Jt of s){var Sr=Jt.__originalEdge;Sr&&Jt.points&&(Sr.points=Jt.points)}e.edges=(e.edges??[]).filter(e=>!e.isLayoutOnly);var Cr,Lr=a((e,t)=>{var r,a,n,o,i=t.x??0,s=t.y??0,l=t.width??0;t=t.height??0;return l<=0||t<=0||(r=i+l/2,a=s-t/2,s+=t/2,e.x<(t=i-l/2))||e.x>r||e.y<a||e.y>s?e:(i=e.x-t,l=r-e.x,n=e.y-a,(o=Math.min(i,l,n,s-e.y))===i?{x:t,y:e.y}:o===l?{x:r,y:e.y}:o===n?{x:e.x,y:a}:{x:e.x,y:s})},"nodeBoundaryClamp");for(Cr of e.edges){var kr,Tr,Or=Cr.points;!Or||Or.length<2||(kr=Cr.start,Tr=Cr.end,kr=kr?l.get(kr):void 0,Tr=Tr?l.get(Tr):void 0,kr&&(Or[0]=Lr(Or[0],kr)),Tr&&(Or[Or.length-1]=Lr(Or[Or.length-1],Tr)))}return e}function ia(e){return e.direction??"TB"}function sa(e){var t,r,a=V(e),n=e.config.flowchart?.nodeSpacing??40,o=e.config.flowchart?.rankSpacing??100,i=e.config.swimlane?.ignoreCrossLaneEdges??!0,s=e.config.swimlane?.optimizeRanksByCrossings??!0,l=e.config.swimlane?.automaticLaneOrdering??!1,d=ia(e),{ordered:i,coordinates:s}=Qr(a,{nodeGap:n,layerGap:o,ignoreCrossLaneEdges:i,optimizeRanksByCrossings:s,automaticLaneOrdering:l,direction:d});for(t of(W(a,i,s,{nodeGap:n,layerGap:o}),e.edges??[]))delete t.points;for(r of(oa(e,d),e.edges??[]))r.curve&&"basis"!==r.curve||(r.curve="rounded");return $t(e,d),Gt(e),d}async function la(e,t){t=t.select("g");var a=(n(t,e.markers,e.type,e.diagramId),o(),i(),s(),r(),_(e),q(e));a=(e.nodes=a.nodes,e.edges=a.edges,await I(t,e)).groups;sa(e),await G(e,a)}a(ra,"chooseOrthogonalSide"),a(aa,"sharedLineEndpointCoord"),a(na,"pointOnLine"),a(oa,"routeEdgesOrthogonal"),a(ia,"getSwimlaneDirection"),a(sa,"runSwimlaneLayoutCore"),a(la,"render");export{la as render};
|