@chrome-acp/proxy-server 1.0.13 → 1.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.
Files changed (110) hide show
  1. package/dist/server.d.ts.map +1 -1
  2. package/dist/server.js +33 -0
  3. package/dist/server.js.map +1 -1
  4. package/package.json +1 -1
  5. package/public/assets/{architectureDiagram-VXUJARFQ-sCkIxoin.js → architectureDiagram-VXUJARFQ-wjPFzNar.js} +2 -2
  6. package/public/assets/{architectureDiagram-VXUJARFQ-sCkIxoin.js.map → architectureDiagram-VXUJARFQ-wjPFzNar.js.map} +1 -1
  7. package/public/assets/{blockDiagram-VD42YOAC-iT0EVpEs.js → blockDiagram-VD42YOAC-Bow3HM3P.js} +2 -2
  8. package/public/assets/{blockDiagram-VD42YOAC-iT0EVpEs.js.map → blockDiagram-VD42YOAC-Bow3HM3P.js.map} +1 -1
  9. package/public/assets/{c4Diagram-YG6GDRKO-FJvkcwxD.js → c4Diagram-YG6GDRKO-SQHtWv3g.js} +2 -2
  10. package/public/assets/{c4Diagram-YG6GDRKO-FJvkcwxD.js.map → c4Diagram-YG6GDRKO-SQHtWv3g.js.map} +1 -1
  11. package/public/assets/channel-pKLLLs1E.js +2 -0
  12. package/public/assets/{channel-CyLd3bNA.js.map → channel-pKLLLs1E.js.map} +1 -1
  13. package/public/assets/{chunk-ABZYJK2D-CNhdKuqi.js → chunk-ABZYJK2D-x9qEUFTA.js} +3 -3
  14. package/public/assets/{chunk-ABZYJK2D-CNhdKuqi.js.map → chunk-ABZYJK2D-x9qEUFTA.js.map} +1 -1
  15. package/public/assets/{chunk-ATLVNIR6-CbO2X_Tw.js → chunk-ATLVNIR6-D0SaqbxC.js} +2 -2
  16. package/public/assets/{chunk-ATLVNIR6-CbO2X_Tw.js.map → chunk-ATLVNIR6-D0SaqbxC.js.map} +1 -1
  17. package/public/assets/{chunk-B4BG7PRW-BaHtw4gW.js → chunk-B4BG7PRW-CSi9IqPy.js} +2 -2
  18. package/public/assets/{chunk-B4BG7PRW-BaHtw4gW.js.map → chunk-B4BG7PRW-CSi9IqPy.js.map} +1 -1
  19. package/public/assets/{chunk-DI55MBZ5-2htM0VVO.js → chunk-DI55MBZ5-CjGu8W9o.js} +2 -2
  20. package/public/assets/{chunk-DI55MBZ5-2htM0VVO.js.map → chunk-DI55MBZ5-CjGu8W9o.js.map} +1 -1
  21. package/public/assets/{chunk-EXTU4WIE-C_bM8CPH.js → chunk-EXTU4WIE-FY5Pwz_y.js} +2 -2
  22. package/public/assets/{chunk-EXTU4WIE-C_bM8CPH.js.map → chunk-EXTU4WIE-FY5Pwz_y.js.map} +1 -1
  23. package/public/assets/{chunk-JA3XYJ7Z-CGuln6zv.js → chunk-JA3XYJ7Z-BkoNu2jJ.js} +2 -2
  24. package/public/assets/{chunk-JA3XYJ7Z-CGuln6zv.js.map → chunk-JA3XYJ7Z-BkoNu2jJ.js.map} +1 -1
  25. package/public/assets/{chunk-JZLCHNYA-B8Ldycwo.js → chunk-JZLCHNYA-DC3nqPAp.js} +2 -2
  26. package/public/assets/{chunk-JZLCHNYA-B8Ldycwo.js.map → chunk-JZLCHNYA-DC3nqPAp.js.map} +1 -1
  27. package/public/assets/{chunk-N4CR4FBY-DAPshrUE.js → chunk-N4CR4FBY-B6bbaafi.js} +3 -3
  28. package/public/assets/{chunk-N4CR4FBY-DAPshrUE.js.map → chunk-N4CR4FBY-B6bbaafi.js.map} +1 -1
  29. package/public/assets/{chunk-QN33PNHL-BG2wK195.js → chunk-QN33PNHL-DKVBKRLD.js} +2 -2
  30. package/public/assets/{chunk-QN33PNHL-BG2wK195.js.map → chunk-QN33PNHL-DKVBKRLD.js.map} +1 -1
  31. package/public/assets/{chunk-QXUST7PY-BOQY0Xfy.js → chunk-QXUST7PY-CV4pkmTu.js} +2 -2
  32. package/public/assets/{chunk-QXUST7PY-BOQY0Xfy.js.map → chunk-QXUST7PY-CV4pkmTu.js.map} +1 -1
  33. package/public/assets/{chunk-S3R3BYOJ-lQHMbpG7.js → chunk-S3R3BYOJ-6YeBT-eZ.js} +2 -2
  34. package/public/assets/{chunk-S3R3BYOJ-lQHMbpG7.js.map → chunk-S3R3BYOJ-6YeBT-eZ.js.map} +1 -1
  35. package/public/assets/{chunk-TZMSLE5B-Ddu4HD6D.js → chunk-TZMSLE5B-CZ4oRZWD.js} +2 -2
  36. package/public/assets/{chunk-TZMSLE5B-Ddu4HD6D.js.map → chunk-TZMSLE5B-CZ4oRZWD.js.map} +1 -1
  37. package/public/assets/classDiagram-2ON5EDUG-D8v77MD7.js +2 -0
  38. package/public/assets/{classDiagram-2ON5EDUG-DXiWlO2N.js.map → classDiagram-2ON5EDUG-D8v77MD7.js.map} +1 -1
  39. package/public/assets/classDiagram-v2-WZHVMYZB-DrGCW_EL.js +2 -0
  40. package/public/assets/{classDiagram-v2-WZHVMYZB-CfVsna1C.js.map → classDiagram-v2-WZHVMYZB-DrGCW_EL.js.map} +1 -1
  41. package/public/assets/clone-cscKn85s.js +2 -0
  42. package/public/assets/{clone-BkO8YVlC.js.map → clone-cscKn85s.js.map} +1 -1
  43. package/public/assets/{code-block-IT6T5CEO-RwvK23k6.js → code-block-IT6T5CEO-Cir7lBBX.js} +2 -2
  44. package/public/assets/{code-block-IT6T5CEO-RwvK23k6.js.map → code-block-IT6T5CEO-Cir7lBBX.js.map} +1 -1
  45. package/public/assets/{dagre-6UL2VRFP-C9Ozm0MP.js → dagre-6UL2VRFP-CW0qvz_s.js} +2 -2
  46. package/public/assets/{dagre-6UL2VRFP-C9Ozm0MP.js.map → dagre-6UL2VRFP-CW0qvz_s.js.map} +1 -1
  47. package/public/assets/{dagre-Dt0NDwrT.js → dagre-Cl3mneui.js} +2 -2
  48. package/public/assets/{dagre-Dt0NDwrT.js.map → dagre-Cl3mneui.js.map} +1 -1
  49. package/public/assets/{diagram-PSM6KHXK-B-9CxbnI.js → diagram-PSM6KHXK-CsGot5qe.js} +2 -2
  50. package/public/assets/{diagram-PSM6KHXK-B-9CxbnI.js.map → diagram-PSM6KHXK-CsGot5qe.js.map} +1 -1
  51. package/public/assets/{diagram-QEK2KX5R-WcE69a1G.js → diagram-QEK2KX5R-Dk_Ips1R.js} +2 -2
  52. package/public/assets/{diagram-QEK2KX5R-WcE69a1G.js.map → diagram-QEK2KX5R-Dk_Ips1R.js.map} +1 -1
  53. package/public/assets/{diagram-S2PKOQOG-qTE7kYb8.js → diagram-S2PKOQOG-DVCkBYgt.js} +2 -2
  54. package/public/assets/{diagram-S2PKOQOG-qTE7kYb8.js.map → diagram-S2PKOQOG-DVCkBYgt.js.map} +1 -1
  55. package/public/assets/{erDiagram-Q2GNP2WA-CsrooKbE.js → erDiagram-Q2GNP2WA-CDMoNqWr.js} +2 -2
  56. package/public/assets/{erDiagram-Q2GNP2WA-CsrooKbE.js.map → erDiagram-Q2GNP2WA-CDMoNqWr.js.map} +1 -1
  57. package/public/assets/{flowDiagram-NV44I4VS-BGTyi6l5.js → flowDiagram-NV44I4VS-CRYIfhzR.js} +2 -2
  58. package/public/assets/{flowDiagram-NV44I4VS-BGTyi6l5.js.map → flowDiagram-NV44I4VS-CRYIfhzR.js.map} +1 -1
  59. package/public/assets/{ganttDiagram-JELNMOA3-DN7V6mNH.js → ganttDiagram-JELNMOA3-BbkuHdg9.js} +2 -2
  60. package/public/assets/{ganttDiagram-JELNMOA3-DN7V6mNH.js.map → ganttDiagram-JELNMOA3-BbkuHdg9.js.map} +1 -1
  61. package/public/assets/{gitGraphDiagram-NY62KEGX-DIySZYvd.js → gitGraphDiagram-NY62KEGX-o3Bg7nmx.js} +2 -2
  62. package/public/assets/{gitGraphDiagram-NY62KEGX-DIySZYvd.js.map → gitGraphDiagram-NY62KEGX-o3Bg7nmx.js.map} +1 -1
  63. package/public/assets/{graphlib-DTtyen5g.js → graphlib-CJzlAqCt.js} +2 -2
  64. package/public/assets/{graphlib-DTtyen5g.js.map → graphlib-CJzlAqCt.js.map} +1 -1
  65. package/public/assets/{infoDiagram-WHAUD3N6-Bv-GY92Y.js → infoDiagram-WHAUD3N6-BIutCfum.js} +2 -2
  66. package/public/assets/{infoDiagram-WHAUD3N6-Bv-GY92Y.js.map → infoDiagram-WHAUD3N6-BIutCfum.js.map} +1 -1
  67. package/public/assets/{journeyDiagram-XKPGCS4Q-DW6RNfq2.js → journeyDiagram-XKPGCS4Q-TLxotP0p.js} +2 -2
  68. package/public/assets/{journeyDiagram-XKPGCS4Q-DW6RNfq2.js.map → journeyDiagram-XKPGCS4Q-TLxotP0p.js.map} +1 -1
  69. package/public/assets/{kanban-definition-3W4ZIXB7-CWT846-C.js → kanban-definition-3W4ZIXB7-B_QHM6Sw.js} +2 -2
  70. package/public/assets/{kanban-definition-3W4ZIXB7-CWT846-C.js.map → kanban-definition-3W4ZIXB7-B_QHM6Sw.js.map} +1 -1
  71. package/public/assets/katex-Bnbp0kKK.js +1 -0
  72. package/public/assets/{line-B6Rb3qg4.js → line-B9W3o98k.js} +2 -2
  73. package/public/assets/{line-B6Rb3qg4.js.map → line-B9W3o98k.js.map} +1 -1
  74. package/public/assets/main-B0hyavHe.css +2 -0
  75. package/public/assets/{main-BMydeOxF.js → main-BxrWPNWG.js} +68 -68
  76. package/public/assets/main-BxrWPNWG.js.map +1 -0
  77. package/public/assets/{mermaid-VLURNSYL-ChlNLhSf.js → mermaid-VLURNSYL-Dwtbd3VO.js} +1 -1
  78. package/public/assets/{mermaid.core-RqJdZ0fi.js → mermaid.core-CpgIepIq.js} +4 -4
  79. package/public/assets/{mermaid.core-RqJdZ0fi.js.map → mermaid.core-CpgIepIq.js.map} +1 -1
  80. package/public/assets/{mindmap-definition-VGOIOE7T-N5RK9_nf.js → mindmap-definition-VGOIOE7T-BJ758uf4.js} +2 -2
  81. package/public/assets/{mindmap-definition-VGOIOE7T-N5RK9_nf.js.map → mindmap-definition-VGOIOE7T-BJ758uf4.js.map} +1 -1
  82. package/public/assets/{pieDiagram-ADFJNKIX-C3so7eY9.js → pieDiagram-ADFJNKIX-Dd8dtgHZ.js} +2 -2
  83. package/public/assets/{pieDiagram-ADFJNKIX-C3so7eY9.js.map → pieDiagram-ADFJNKIX-Dd8dtgHZ.js.map} +1 -1
  84. package/public/assets/{quadrantDiagram-AYHSOK5B-B9rusor8.js → quadrantDiagram-AYHSOK5B-DelknGes.js} +2 -2
  85. package/public/assets/{quadrantDiagram-AYHSOK5B-B9rusor8.js.map → quadrantDiagram-AYHSOK5B-DelknGes.js.map} +1 -1
  86. package/public/assets/{radix-C85A9-aH.js → radix-CyrXeX7S.js} +2 -2
  87. package/public/assets/{radix-C85A9-aH.js.map → radix-CyrXeX7S.js.map} +1 -1
  88. package/public/assets/{requirementDiagram-UZGBJVZJ-W_vTa6sR.js → requirementDiagram-UZGBJVZJ-CGCbxKd6.js} +2 -2
  89. package/public/assets/{requirementDiagram-UZGBJVZJ-W_vTa6sR.js.map → requirementDiagram-UZGBJVZJ-CGCbxKd6.js.map} +1 -1
  90. package/public/assets/{sankeyDiagram-TZEHDZUN-oekRPPoE.js → sankeyDiagram-TZEHDZUN-UOBpib_k.js} +2 -2
  91. package/public/assets/{sankeyDiagram-TZEHDZUN-oekRPPoE.js.map → sankeyDiagram-TZEHDZUN-UOBpib_k.js.map} +1 -1
  92. package/public/assets/{sequenceDiagram-WL72ISMW-Cln9cEgi.js → sequenceDiagram-WL72ISMW-BuIva0Lb.js} +2 -2
  93. package/public/assets/{sequenceDiagram-WL72ISMW-Cln9cEgi.js.map → sequenceDiagram-WL72ISMW-BuIva0Lb.js.map} +1 -1
  94. package/public/assets/{stateDiagram-FKZM4ZOC-DNskec5X.js → stateDiagram-FKZM4ZOC-DMM22UFw.js} +2 -2
  95. package/public/assets/{stateDiagram-FKZM4ZOC-DNskec5X.js.map → stateDiagram-FKZM4ZOC-DMM22UFw.js.map} +1 -1
  96. package/public/assets/stateDiagram-v2-4FDKWEC3-DoQv2RVT.js +2 -0
  97. package/public/assets/{stateDiagram-v2-4FDKWEC3-CHFN0nby.js.map → stateDiagram-v2-4FDKWEC3-DoQv2RVT.js.map} +1 -1
  98. package/public/assets/{timeline-definition-IT6M3QCI-Dc6yDbAi.js → timeline-definition-IT6M3QCI-BuulvLu6.js} +2 -2
  99. package/public/assets/{timeline-definition-IT6M3QCI-Dc6yDbAi.js.map → timeline-definition-IT6M3QCI-BuulvLu6.js.map} +1 -1
  100. package/public/assets/{xychartDiagram-PRI3JC2R-LVl4w1dh.js → xychartDiagram-PRI3JC2R-BNUCwm4v.js} +2 -2
  101. package/public/assets/{xychartDiagram-PRI3JC2R-LVl4w1dh.js.map → xychartDiagram-PRI3JC2R-BNUCwm4v.js.map} +1 -1
  102. package/public/index.html +3 -3
  103. package/public/assets/channel-CyLd3bNA.js +0 -2
  104. package/public/assets/classDiagram-2ON5EDUG-DXiWlO2N.js +0 -2
  105. package/public/assets/classDiagram-v2-WZHVMYZB-CfVsna1C.js +0 -2
  106. package/public/assets/clone-BkO8YVlC.js +0 -2
  107. package/public/assets/katex-DJMyQU16.js +0 -1
  108. package/public/assets/main-BMydeOxF.js.map +0 -1
  109. package/public/assets/main-CdjS9337.css +0 -2
  110. package/public/assets/stateDiagram-v2-4FDKWEC3-CHFN0nby.js +0 -2
@@ -1,3 +1,3 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-C9Ozm0MP.js","assets/shiki-BE3D5Aiv.js","assets/rolldown-runtime-jAP2zfWt.js","assets/dist-CINaey7q.js","assets/chunk-JA3XYJ7Z-CGuln6zv.js","assets/main-BMydeOxF.js","assets/radix-C85A9-aH.js","assets/react-BU7bKLEa.js","assets/main-CdjS9337.css","assets/src-CK1-XQNk.js","assets/chunk-S3R3BYOJ-lQHMbpG7.js","assets/math-DYgObbJ6.js","assets/chunk-ABZYJK2D-CNhdKuqi.js","assets/_baseFor-OepriVua.js","assets/dagre-Dt0NDwrT.js","assets/graphlib-DTtyen5g.js","assets/isEmpty-_5bEsqJf.js","assets/reduce-8oaJsJl5.js","assets/flatten-BM2m3yKG.js","assets/clone-BkO8YVlC.js","assets/chunk-ATLVNIR6-CbO2X_Tw.js","assets/chunk-CVBHYZKI-D5XSWNoQ.js","assets/chunk-HN2XXSSU-CNPMRzR_.js","assets/chunk-JZLCHNYA-B8Ldycwo.js","assets/chunk-QXUST7PY-BOQY0Xfy.js","assets/line-B6Rb3qg4.js","assets/path-Bn8S1d5m.js","assets/array-rFRq91wH.js","assets/cose-bilkent-S5V4N54A-CAauRfCL.js","assets/cytoscape.esm-_6W8R34k.js"])))=>i.map(i=>d[i]);
2
- import{o as e}from"./shiki-BE3D5Aiv.js";import{g as t,h as n}from"./src-CK1-XQNk.js";import{s as r,y as i}from"./chunk-ABZYJK2D-CNhdKuqi.js";import{d as a}from"./chunk-S3R3BYOJ-lQHMbpG7.js";import{a as o,i as s,s as c}from"./chunk-JZLCHNYA-B8Ldycwo.js";import{a as l,i as u,n as d,r as f}from"./chunk-QXUST7PY-BOQY0Xfy.js";var p={common:r,getConfig:i,insertCluster:s,insertEdge:d,insertEdgeLabel:f,insertMarkers:u,insertNode:o,interpolateToCurve:a,labelHelper:c,log:t,positionEdgeLabel:l},m={},h=n(e=>{for(let t of e)m[t.name]=t},`registerLayoutLoaders`);n(()=>{h([{name:`dagre`,loader:n(async()=>await e(()=>import(`./dagre-6UL2VRFP-C9Ozm0MP.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27])),`loader`)},...[{name:`cose-bilkent`,loader:n(async()=>await e(()=>import(`./cose-bilkent-S5V4N54A-CAauRfCL.js`),__vite__mapDeps([28,29,9,2])),`loader`)}]])},`registerDefaultLayoutLoaders`)();var g=n(async(e,t)=>{if(!(e.layoutAlgorithm in m))throw Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);let n=m[e.layoutAlgorithm];return(await n.loader()).render(e,t,p,{algorithm:n.algorithm})},`render`),_=n((e=``,{fallback:n=`dagre`}={})=>{if(e in m)return e;if(n in m)return t.warn(`Layout algorithm ${e} is not registered. Using ${n} as fallback.`),n;throw Error(`Both layout algorithms ${e} and ${n} are not registered.`)},`getRegisteredLayoutAlgorithm`);export{h as n,g as r,_ as t};
3
- //# sourceMappingURL=chunk-N4CR4FBY-DAPshrUE.js.map
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-CW0qvz_s.js","assets/shiki-BE3D5Aiv.js","assets/rolldown-runtime-jAP2zfWt.js","assets/dist-CINaey7q.js","assets/chunk-JA3XYJ7Z-BkoNu2jJ.js","assets/main-BxrWPNWG.js","assets/radix-CyrXeX7S.js","assets/react-BU7bKLEa.js","assets/main-B0hyavHe.css","assets/src-CK1-XQNk.js","assets/chunk-S3R3BYOJ-6YeBT-eZ.js","assets/math-DYgObbJ6.js","assets/chunk-ABZYJK2D-x9qEUFTA.js","assets/_baseFor-OepriVua.js","assets/dagre-Cl3mneui.js","assets/graphlib-CJzlAqCt.js","assets/isEmpty-_5bEsqJf.js","assets/reduce-8oaJsJl5.js","assets/flatten-BM2m3yKG.js","assets/clone-cscKn85s.js","assets/chunk-ATLVNIR6-D0SaqbxC.js","assets/chunk-CVBHYZKI-D5XSWNoQ.js","assets/chunk-HN2XXSSU-CNPMRzR_.js","assets/chunk-JZLCHNYA-DC3nqPAp.js","assets/chunk-QXUST7PY-CV4pkmTu.js","assets/line-B9W3o98k.js","assets/path-Bn8S1d5m.js","assets/array-rFRq91wH.js","assets/cose-bilkent-S5V4N54A-CAauRfCL.js","assets/cytoscape.esm-_6W8R34k.js"])))=>i.map(i=>d[i]);
2
+ import{o as e}from"./shiki-BE3D5Aiv.js";import{g as t,h as n}from"./src-CK1-XQNk.js";import{s as r,y as i}from"./chunk-ABZYJK2D-x9qEUFTA.js";import{d as a}from"./chunk-S3R3BYOJ-6YeBT-eZ.js";import{a as o,i as s,s as c}from"./chunk-JZLCHNYA-DC3nqPAp.js";import{a as l,i as u,n as d,r as f}from"./chunk-QXUST7PY-CV4pkmTu.js";var p={common:r,getConfig:i,insertCluster:s,insertEdge:d,insertEdgeLabel:f,insertMarkers:u,insertNode:o,interpolateToCurve:a,labelHelper:c,log:t,positionEdgeLabel:l},m={},h=n(e=>{for(let t of e)m[t.name]=t},`registerLayoutLoaders`);n(()=>{h([{name:`dagre`,loader:n(async()=>await e(()=>import(`./dagre-6UL2VRFP-CW0qvz_s.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27])),`loader`)},...[{name:`cose-bilkent`,loader:n(async()=>await e(()=>import(`./cose-bilkent-S5V4N54A-CAauRfCL.js`),__vite__mapDeps([28,29,9,2])),`loader`)}]])},`registerDefaultLayoutLoaders`)();var g=n(async(e,t)=>{if(!(e.layoutAlgorithm in m))throw Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);let n=m[e.layoutAlgorithm];return(await n.loader()).render(e,t,p,{algorithm:n.algorithm})},`render`),_=n((e=``,{fallback:n=`dagre`}={})=>{if(e in m)return e;if(n in m)return t.warn(`Layout algorithm ${e} is not registered. Using ${n} as fallback.`),n;throw Error(`Both layout algorithms ${e} and ${n} are not registered.`)},`getRegisteredLayoutAlgorithm`);export{h as n,g as r,_ as t};
3
+ //# sourceMappingURL=chunk-N4CR4FBY-B6bbaafi.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":";mUAwBA,IAAI,EAAkB,CACpB,OAAQ,EACR,YACA,gBACA,aACA,kBACA,cAAe,EACf,aACA,qBACA,cACA,MACA,oBACD,CAGG,EAAmB,EAAE,CACrB,EAAwC,EAAQ,GAAY,CAC9D,IAAK,IAAM,KAAU,EACnB,EAAiB,EAAO,MAAQ,GAEjC,wBAAwB,CACwB,MAAa,CAC9D,EAAsB,CACpB,CACE,KAAM,QACN,OAAwB,EAAO,SAAY,YAAM,OAAO,8HAAyB,SAAS,CAC3F,CACD,GAAU,CACR,CACE,KAAM,eACN,OAAwB,EAAO,SAAY,YAAM,OAAO,qEAAgC,SAAS,CAClG,CACF,CACF,CAAC,EACD,+BAA+B,EACJ,CAC9B,IAAI,EAAyB,EAAO,MAAO,EAAa,IAAQ,CAC9D,GAAI,EAAE,EAAY,mBAAmB,GACnC,MAAU,MAAM,6BAA6B,EAAY,kBAAkB,CAE7E,IAAM,EAAmB,EAAiB,EAAY,iBAEtD,OADuB,MAAM,EAAiB,QAAQ,EAChC,OAAO,EAAa,EAAK,EAAiB,CAC9D,UAAW,EAAiB,UAC7B,CAAC,EACD,SAAS,CACR,EAA+C,GAAQ,EAAY,GAAI,CAAE,WAAW,SAAY,EAAE,GAAK,CACzG,GAAI,KAAa,EACf,OAAO,EAET,GAAI,KAAY,EAEd,OADA,EAAI,KAAK,oBAAoB,EAAU,4BAA4B,EAAS,eAAe,CACpF,EAET,MAAU,MAAM,0BAA0B,EAAU,OAAO,EAAS,sBAAsB,EACzF,+BAA+B","names":[],"ignoreList":[0],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-N4CR4FBY.mjs"],"sourcesContent":["import {\n insertEdge,\n insertEdgeLabel,\n markers_default,\n positionEdgeLabel\n} from \"./chunk-QXUST7PY.mjs\";\nimport {\n insertCluster,\n insertNode,\n labelHelper\n} from \"./chunk-JZLCHNYA.mjs\";\nimport {\n interpolateToCurve\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n common_default,\n getConfig\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/internals.ts\nvar internalHelpers = {\n common: common_default,\n getConfig,\n insertCluster,\n insertEdge,\n insertEdgeLabel,\n insertMarkers: markers_default,\n insertNode,\n interpolateToCurve,\n labelHelper,\n log,\n positionEdgeLabel\n};\n\n// src/rendering-util/render.ts\nvar layoutAlgorithms = {};\nvar registerLayoutLoaders = /* @__PURE__ */ __name((loaders) => {\n for (const loader of loaders) {\n layoutAlgorithms[loader.name] = loader;\n }\n}, \"registerLayoutLoaders\");\nvar registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {\n registerLayoutLoaders([\n {\n name: \"dagre\",\n loader: /* @__PURE__ */ __name(async () => await import(\"./dagre-6UL2VRFP.mjs\"), \"loader\")\n },\n ...true ? [\n {\n name: \"cose-bilkent\",\n loader: /* @__PURE__ */ __name(async () => await import(\"./cose-bilkent-S5V4N54A.mjs\"), \"loader\")\n }\n ] : []\n ]);\n}, \"registerDefaultLayoutLoaders\");\nregisterDefaultLayoutLoaders();\nvar render = /* @__PURE__ */ __name(async (data4Layout, svg) => {\n if (!(data4Layout.layoutAlgorithm in layoutAlgorithms)) {\n throw new Error(`Unknown layout algorithm: ${data4Layout.layoutAlgorithm}`);\n }\n const layoutDefinition = layoutAlgorithms[data4Layout.layoutAlgorithm];\n const layoutRenderer = await layoutDefinition.loader();\n return layoutRenderer.render(data4Layout, svg, internalHelpers, {\n algorithm: layoutDefinition.algorithm\n });\n}, \"render\");\nvar getRegisteredLayoutAlgorithm = /* @__PURE__ */ __name((algorithm = \"\", { fallback = \"dagre\" } = {}) => {\n if (algorithm in layoutAlgorithms) {\n return algorithm;\n }\n if (fallback in layoutAlgorithms) {\n log.warn(`Layout algorithm ${algorithm} is not registered. Using ${fallback} as fallback.`);\n return fallback;\n }\n throw new Error(`Both layout algorithms ${algorithm} and ${fallback} are not registered.`);\n}, \"getRegisteredLayoutAlgorithm\");\n\nexport {\n registerLayoutLoaders,\n render,\n getRegisteredLayoutAlgorithm\n};\n"],"file":"chunk-N4CR4FBY-DAPshrUE.js"}
1
+ {"version":3,"mappings":";mUAwBA,IAAI,EAAkB,CACpB,OAAQ,EACR,YACA,gBACA,aACA,kBACA,cAAe,EACf,aACA,qBACA,cACA,MACA,oBACD,CAGG,EAAmB,EAAE,CACrB,EAAwC,EAAQ,GAAY,CAC9D,IAAK,IAAM,KAAU,EACnB,EAAiB,EAAO,MAAQ,GAEjC,wBAAwB,CACwB,MAAa,CAC9D,EAAsB,CACpB,CACE,KAAM,QACN,OAAwB,EAAO,SAAY,YAAM,OAAO,8HAAyB,SAAS,CAC3F,CACD,GAAU,CACR,CACE,KAAM,eACN,OAAwB,EAAO,SAAY,YAAM,OAAO,qEAAgC,SAAS,CAClG,CACF,CACF,CAAC,EACD,+BAA+B,EACJ,CAC9B,IAAI,EAAyB,EAAO,MAAO,EAAa,IAAQ,CAC9D,GAAI,EAAE,EAAY,mBAAmB,GACnC,MAAU,MAAM,6BAA6B,EAAY,kBAAkB,CAE7E,IAAM,EAAmB,EAAiB,EAAY,iBAEtD,OADuB,MAAM,EAAiB,QAAQ,EAChC,OAAO,EAAa,EAAK,EAAiB,CAC9D,UAAW,EAAiB,UAC7B,CAAC,EACD,SAAS,CACR,EAA+C,GAAQ,EAAY,GAAI,CAAE,WAAW,SAAY,EAAE,GAAK,CACzG,GAAI,KAAa,EACf,OAAO,EAET,GAAI,KAAY,EAEd,OADA,EAAI,KAAK,oBAAoB,EAAU,4BAA4B,EAAS,eAAe,CACpF,EAET,MAAU,MAAM,0BAA0B,EAAU,OAAO,EAAS,sBAAsB,EACzF,+BAA+B","names":[],"ignoreList":[0],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-N4CR4FBY.mjs"],"sourcesContent":["import {\n insertEdge,\n insertEdgeLabel,\n markers_default,\n positionEdgeLabel\n} from \"./chunk-QXUST7PY.mjs\";\nimport {\n insertCluster,\n insertNode,\n labelHelper\n} from \"./chunk-JZLCHNYA.mjs\";\nimport {\n interpolateToCurve\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n common_default,\n getConfig\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/internals.ts\nvar internalHelpers = {\n common: common_default,\n getConfig,\n insertCluster,\n insertEdge,\n insertEdgeLabel,\n insertMarkers: markers_default,\n insertNode,\n interpolateToCurve,\n labelHelper,\n log,\n positionEdgeLabel\n};\n\n// src/rendering-util/render.ts\nvar layoutAlgorithms = {};\nvar registerLayoutLoaders = /* @__PURE__ */ __name((loaders) => {\n for (const loader of loaders) {\n layoutAlgorithms[loader.name] = loader;\n }\n}, \"registerLayoutLoaders\");\nvar registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {\n registerLayoutLoaders([\n {\n name: \"dagre\",\n loader: /* @__PURE__ */ __name(async () => await import(\"./dagre-6UL2VRFP.mjs\"), \"loader\")\n },\n ...true ? [\n {\n name: \"cose-bilkent\",\n loader: /* @__PURE__ */ __name(async () => await import(\"./cose-bilkent-S5V4N54A.mjs\"), \"loader\")\n }\n ] : []\n ]);\n}, \"registerDefaultLayoutLoaders\");\nregisterDefaultLayoutLoaders();\nvar render = /* @__PURE__ */ __name(async (data4Layout, svg) => {\n if (!(data4Layout.layoutAlgorithm in layoutAlgorithms)) {\n throw new Error(`Unknown layout algorithm: ${data4Layout.layoutAlgorithm}`);\n }\n const layoutDefinition = layoutAlgorithms[data4Layout.layoutAlgorithm];\n const layoutRenderer = await layoutDefinition.loader();\n return layoutRenderer.render(data4Layout, svg, internalHelpers, {\n algorithm: layoutDefinition.algorithm\n });\n}, \"render\");\nvar getRegisteredLayoutAlgorithm = /* @__PURE__ */ __name((algorithm = \"\", { fallback = \"dagre\" } = {}) => {\n if (algorithm in layoutAlgorithms) {\n return algorithm;\n }\n if (fallback in layoutAlgorithms) {\n log.warn(`Layout algorithm ${algorithm} is not registered. Using ${fallback} as fallback.`);\n return fallback;\n }\n throw new Error(`Both layout algorithms ${algorithm} and ${fallback} are not registered.`);\n}, \"getRegisteredLayoutAlgorithm\");\n\nexport {\n registerLayoutLoaders,\n render,\n getRegisteredLayoutAlgorithm\n};\n"],"file":"chunk-N4CR4FBY-B6bbaafi.js"}
@@ -1,2 +1,2 @@
1
- import{g as e,h as t}from"./src-CK1-XQNk.js";import{c as n}from"./chunk-ABZYJK2D-CNhdKuqi.js";var r=t((t,r,o,s)=>{t.attr(`class`,o);let{width:c,height:l,x:u,y:d}=i(t,r);n(t,l,c,s);let f=a(u,d,c,l,r);t.attr(`viewBox`,f),e.debug(`viewBox configured: ${f} with padding: ${r}`)},`setupViewPortForSVG`),i=t((e,t)=>{let n=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:n.width+t*2,height:n.height+t*2,x:n.x,y:n.y}},`calculateDimensionsWithPadding`),a=t((e,t,n,r,i)=>`${e-i} ${t-i} ${n} ${r}`,`createViewBox`);export{r as t};
2
- //# sourceMappingURL=chunk-QN33PNHL-BG2wK195.js.map
1
+ import{g as e,h as t}from"./src-CK1-XQNk.js";import{c as n}from"./chunk-ABZYJK2D-x9qEUFTA.js";var r=t((t,r,o,s)=>{t.attr(`class`,o);let{width:c,height:l,x:u,y:d}=i(t,r);n(t,l,c,s);let f=a(u,d,c,l,r);t.attr(`viewBox`,f),e.debug(`viewBox configured: ${f} with padding: ${r}`)},`setupViewPortForSVG`),i=t((e,t)=>{let n=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:n.width+t*2,height:n.height+t*2,x:n.x,y:n.y}},`calculateDimensionsWithPadding`),a=t((e,t,n,r,i)=>`${e-i} ${t-i} ${n} ${r}`,`createViewBox`);export{r as t};
2
+ //# sourceMappingURL=chunk-QN33PNHL-DKVBKRLD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-QN33PNHL-BG2wK195.js","names":[],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-QN33PNHL.mjs"],"sourcesContent":["import {\n configureSvgSize\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/setupViewPortForSVG.ts\nvar setupViewPortForSVG = /* @__PURE__ */ __name((svg, padding, cssDiagram, useMaxWidth) => {\n svg.attr(\"class\", cssDiagram);\n const { width, height, x, y } = calculateDimensionsWithPadding(svg, padding);\n configureSvgSize(svg, height, width, useMaxWidth);\n const viewBox = createViewBox(x, y, width, height, padding);\n svg.attr(\"viewBox\", viewBox);\n log.debug(`viewBox configured: ${viewBox} with padding: ${padding}`);\n}, \"setupViewPortForSVG\");\nvar calculateDimensionsWithPadding = /* @__PURE__ */ __name((svg, padding) => {\n const bounds = svg.node()?.getBBox() || { width: 0, height: 0, x: 0, y: 0 };\n return {\n width: bounds.width + padding * 2,\n height: bounds.height + padding * 2,\n x: bounds.x,\n y: bounds.y\n };\n}, \"calculateDimensionsWithPadding\");\nvar createViewBox = /* @__PURE__ */ __name((x, y, width, height, padding) => {\n return `${x - padding} ${y - padding} ${width} ${height}`;\n}, \"createViewBox\");\n\nexport {\n setupViewPortForSVG\n};\n"],"x_google_ignoreList":[0],"mappings":"8FASA,IAAI,EAAsC,GAAQ,EAAK,EAAS,EAAY,IAAgB,CAC1F,EAAI,KAAK,QAAS,EAAW,CAC7B,GAAM,CAAE,QAAO,SAAQ,IAAG,KAAM,EAA+B,EAAK,EAAQ,CAC5E,EAAiB,EAAK,EAAQ,EAAO,EAAY,CACjD,IAAM,EAAU,EAAc,EAAG,EAAG,EAAO,EAAQ,EAAQ,CAC3D,EAAI,KAAK,UAAW,EAAQ,CAC5B,EAAI,MAAM,uBAAuB,EAAQ,iBAAiB,IAAU,EACnE,sBAAsB,CACrB,EAAiD,GAAQ,EAAK,IAAY,CAC5E,IAAM,EAAS,EAAI,MAAM,EAAE,SAAS,EAAI,CAAE,MAAO,EAAG,OAAQ,EAAG,EAAG,EAAG,EAAG,EAAG,CAC3E,MAAO,CACL,MAAO,EAAO,MAAQ,EAAU,EAChC,OAAQ,EAAO,OAAS,EAAU,EAClC,EAAG,EAAO,EACV,EAAG,EAAO,EACX,EACA,iCAAiC,CAChC,EAAgC,GAAQ,EAAG,EAAG,EAAO,EAAQ,IACxD,GAAG,EAAI,EAAQ,GAAG,EAAI,EAAQ,GAAG,EAAM,GAAG,IAChD,gBAAgB"}
1
+ {"version":3,"file":"chunk-QN33PNHL-DKVBKRLD.js","names":[],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-QN33PNHL.mjs"],"sourcesContent":["import {\n configureSvgSize\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/setupViewPortForSVG.ts\nvar setupViewPortForSVG = /* @__PURE__ */ __name((svg, padding, cssDiagram, useMaxWidth) => {\n svg.attr(\"class\", cssDiagram);\n const { width, height, x, y } = calculateDimensionsWithPadding(svg, padding);\n configureSvgSize(svg, height, width, useMaxWidth);\n const viewBox = createViewBox(x, y, width, height, padding);\n svg.attr(\"viewBox\", viewBox);\n log.debug(`viewBox configured: ${viewBox} with padding: ${padding}`);\n}, \"setupViewPortForSVG\");\nvar calculateDimensionsWithPadding = /* @__PURE__ */ __name((svg, padding) => {\n const bounds = svg.node()?.getBBox() || { width: 0, height: 0, x: 0, y: 0 };\n return {\n width: bounds.width + padding * 2,\n height: bounds.height + padding * 2,\n x: bounds.x,\n y: bounds.y\n };\n}, \"calculateDimensionsWithPadding\");\nvar createViewBox = /* @__PURE__ */ __name((x, y, width, height, padding) => {\n return `${x - padding} ${y - padding} ${width} ${height}`;\n}, \"createViewBox\");\n\nexport {\n setupViewPortForSVG\n};\n"],"x_google_ignoreList":[0],"mappings":"8FASA,IAAI,EAAsC,GAAQ,EAAK,EAAS,EAAY,IAAgB,CAC1F,EAAI,KAAK,QAAS,EAAW,CAC7B,GAAM,CAAE,QAAO,SAAQ,IAAG,KAAM,EAA+B,EAAK,EAAQ,CAC5E,EAAiB,EAAK,EAAQ,EAAO,EAAY,CACjD,IAAM,EAAU,EAAc,EAAG,EAAG,EAAO,EAAQ,EAAQ,CAC3D,EAAI,KAAK,UAAW,EAAQ,CAC5B,EAAI,MAAM,uBAAuB,EAAQ,iBAAiB,IAAU,EACnE,sBAAsB,CACrB,EAAiD,GAAQ,EAAK,IAAY,CAC5E,IAAM,EAAS,EAAI,MAAM,EAAE,SAAS,EAAI,CAAE,MAAO,EAAG,OAAQ,EAAG,EAAG,EAAG,EAAG,EAAG,CAC3E,MAAO,CACL,MAAO,EAAO,MAAQ,EAAU,EAChC,OAAQ,EAAO,OAAS,EAAU,EAClC,EAAG,EAAO,EACV,EAAG,EAAO,EACX,EACA,iCAAiC,CAChC,EAAgC,GAAQ,EAAG,EAAG,EAAO,EAAQ,IACxD,GAAG,EAAI,EAAQ,GAAG,EAAI,EAAQ,GAAG,EAAM,GAAG,IAChD,gBAAgB"}
@@ -1,8 +1,8 @@
1
- import{g as e,h as t,p as n}from"./src-CK1-XQNk.js";import{b as r,h as i}from"./chunk-ABZYJK2D-CNhdKuqi.js";import{B as a,F as o,G as s,H as c,I as l,K as u,L as d,R as f,U as p,V as m,W as h,g,z as _}from"./chunk-S3R3BYOJ-lQHMbpG7.js";import{t as v}from"./line-B6Rb3qg4.js";import{n as y}from"./chunk-JA3XYJ7Z-CGuln6zv.js";import{n as b,r as x,t as S}from"./chunk-HN2XXSSU-CNPMRzR_.js";import{t as C}from"./chunk-CVBHYZKI-D5XSWNoQ.js";import{i as w,n as T}from"./chunk-ATLVNIR6-CbO2X_Tw.js";import{d as E,r as D}from"./chunk-JZLCHNYA-B8Ldycwo.js";var ee=t((e,t,n,r,i,a)=>{t.arrowTypeStart&&k(e,`start`,t.arrowTypeStart,n,r,i,a),t.arrowTypeEnd&&k(e,`end`,t.arrowTypeEnd,n,r,i,a)},`addEdgeMarkers`),O={arrow_cross:{type:`cross`,fill:!1},arrow_point:{type:`point`,fill:!0},arrow_barb:{type:`barb`,fill:!0},arrow_circle:{type:`circle`,fill:!1},aggregation:{type:`aggregation`,fill:!1},extension:{type:`extension`,fill:!1},composition:{type:`composition`,fill:!0},dependency:{type:`dependency`,fill:!0},lollipop:{type:`lollipop`,fill:!1},only_one:{type:`onlyOne`,fill:!1},zero_or_one:{type:`zeroOrOne`,fill:!1},one_or_more:{type:`oneOrMore`,fill:!1},zero_or_more:{type:`zeroOrMore`,fill:!1},requirement_arrow:{type:`requirement_arrow`,fill:!1},requirement_contains:{type:`requirement_contains`,fill:!1}},k=t((t,n,r,i,a,o,s)=>{let c=O[r];if(!c){e.warn(`Unknown arrow type: ${r}`);return}let l=`${a}_${o}-${c.type}${n===`start`?`Start`:`End`}`;if(s&&s.trim()!==``){let e=`${l}_${s.replace(/[^\dA-Za-z]/g,`_`)}`;if(!document.getElementById(e)){let t=document.getElementById(l);if(t){let n=t.cloneNode(!0);n.id=e,n.querySelectorAll(`path, circle, line`).forEach(e=>{e.setAttribute(`stroke`,s),c.fill&&e.setAttribute(`fill`,s)}),t.parentNode?.appendChild(n)}}t.attr(`marker-${n}`,`url(${i}#${e})`)}else t.attr(`marker-${n}`,`url(${i}#${l})`)},`addEdgeMarker`),A=new Map,j=new Map,M=t(()=>{A.clear(),j.clear()},`clear`),N=t(e=>e?e.reduce((e,t)=>e+`;`+t,``):``,`getLabelStyles`),P=t(async(t,a)=>{let o=i(r().flowchart.htmlLabels),{labelStyles:s}=w(a);a.labelStyle=s;let c=await y(t,a.label,{style:a.labelStyle,useHtmlLabels:o,addSvgBackground:!0,isNode:!1});e.info(`abc82`,a,a.labelType);let l=t.insert(`g`).attr(`class`,`edgeLabel`),u=l.insert(`g`).attr(`class`,`label`).attr(`data-id`,a.id);u.node().appendChild(c);let d=c.getBBox();if(o){let e=c.children[0],t=n(c);d=e.getBoundingClientRect(),t.attr(`width`,d.width),t.attr(`height`,d.height)}u.attr(`transform`,`translate(`+-d.width/2+`, `+-d.height/2+`)`),A.set(a.id,l),a.width=d.width,a.height=d.height;let f;if(a.startLabelLeft){let e=await D(a.startLabelLeft,N(a.labelStyle)),n=t.insert(`g`).attr(`class`,`edgeTerminals`),r=n.insert(`g`).attr(`class`,`inner`);f=r.node().appendChild(e);let i=e.getBBox();r.attr(`transform`,`translate(`+-i.width/2+`, `+-i.height/2+`)`),j.get(a.id)||j.set(a.id,{}),j.get(a.id).startLeft=n,F(f,a.startLabelLeft)}if(a.startLabelRight){let e=await D(a.startLabelRight,N(a.labelStyle)),n=t.insert(`g`).attr(`class`,`edgeTerminals`),r=n.insert(`g`).attr(`class`,`inner`);f=n.node().appendChild(e),r.node().appendChild(e);let i=e.getBBox();r.attr(`transform`,`translate(`+-i.width/2+`, `+-i.height/2+`)`),j.get(a.id)||j.set(a.id,{}),j.get(a.id).startRight=n,F(f,a.startLabelRight)}if(a.endLabelLeft){let e=await D(a.endLabelLeft,N(a.labelStyle)),n=t.insert(`g`).attr(`class`,`edgeTerminals`),r=n.insert(`g`).attr(`class`,`inner`);f=r.node().appendChild(e);let i=e.getBBox();r.attr(`transform`,`translate(`+-i.width/2+`, `+-i.height/2+`)`),n.node().appendChild(e),j.get(a.id)||j.set(a.id,{}),j.get(a.id).endLeft=n,F(f,a.endLabelLeft)}if(a.endLabelRight){let e=await D(a.endLabelRight,N(a.labelStyle)),n=t.insert(`g`).attr(`class`,`edgeTerminals`),r=n.insert(`g`).attr(`class`,`inner`);f=r.node().appendChild(e);let i=e.getBBox();r.attr(`transform`,`translate(`+-i.width/2+`, `+-i.height/2+`)`),n.node().appendChild(e),j.get(a.id)||j.set(a.id,{}),j.get(a.id).endRight=n,F(f,a.endLabelRight)}return c},`insertEdgeLabel`);function F(e,t){r().flowchart.htmlLabels&&e&&(e.style.width=t.length*9+`px`,e.style.height=`12px`)}t(F,`setTerminalWidth`);var I=t((t,n)=>{e.debug(`Moving label abc88 `,t.id,t.label,A.get(t.id),n);let i=n.updatedPath?n.updatedPath:n.originalPath,{subGraphTitleTotalMargin:a}=C(r());if(t.label){let r=A.get(t.id),o=t.x,s=t.y;if(i){let r=g.calcLabelPosition(i);e.debug(`Moving label `+t.label+` from (`,o,`,`,s,`) to (`,r.x,`,`,r.y,`) abc88`),n.updatedPath&&(o=r.x,s=r.y)}r.attr(`transform`,`translate(${o}, ${s+a/2})`)}if(t.startLabelLeft){let e=j.get(t.id).startLeft,n=t.x,r=t.y;if(i){let e=g.calcTerminalLabelPosition(t.arrowTypeStart?10:0,`start_left`,i);n=e.x,r=e.y}e.attr(`transform`,`translate(${n}, ${r})`)}if(t.startLabelRight){let e=j.get(t.id).startRight,n=t.x,r=t.y;if(i){let e=g.calcTerminalLabelPosition(t.arrowTypeStart?10:0,`start_right`,i);n=e.x,r=e.y}e.attr(`transform`,`translate(${n}, ${r})`)}if(t.endLabelLeft){let e=j.get(t.id).endLeft,n=t.x,r=t.y;if(i){let e=g.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,`end_left`,i);n=e.x,r=e.y}e.attr(`transform`,`translate(${n}, ${r})`)}if(t.endLabelRight){let e=j.get(t.id).endRight,n=t.x,r=t.y;if(i){let e=g.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,`end_right`,i);n=e.x,r=e.y}e.attr(`transform`,`translate(${n}, ${r})`)}},`positionEdgeLabel`),L=t((e,t)=>{let n=e.x,r=e.y,i=Math.abs(t.x-n),a=Math.abs(t.y-r),o=e.width/2,s=e.height/2;return i>=o||a>=s},`outsideNode`),R=t((t,n,r)=>{e.debug(`intersection calc abc89:
1
+ import{g as e,h as t,p as n}from"./src-CK1-XQNk.js";import{b as r,h as i}from"./chunk-ABZYJK2D-x9qEUFTA.js";import{B as a,F as o,G as s,H as c,I as l,K as u,L as d,R as f,U as p,V as m,W as h,g,z as _}from"./chunk-S3R3BYOJ-6YeBT-eZ.js";import{t as v}from"./line-B9W3o98k.js";import{n as y}from"./chunk-JA3XYJ7Z-BkoNu2jJ.js";import{n as b,r as x,t as S}from"./chunk-HN2XXSSU-CNPMRzR_.js";import{t as C}from"./chunk-CVBHYZKI-D5XSWNoQ.js";import{i as w,n as T}from"./chunk-ATLVNIR6-D0SaqbxC.js";import{d as E,r as D}from"./chunk-JZLCHNYA-DC3nqPAp.js";var ee=t((e,t,n,r,i,a)=>{t.arrowTypeStart&&k(e,`start`,t.arrowTypeStart,n,r,i,a),t.arrowTypeEnd&&k(e,`end`,t.arrowTypeEnd,n,r,i,a)},`addEdgeMarkers`),O={arrow_cross:{type:`cross`,fill:!1},arrow_point:{type:`point`,fill:!0},arrow_barb:{type:`barb`,fill:!0},arrow_circle:{type:`circle`,fill:!1},aggregation:{type:`aggregation`,fill:!1},extension:{type:`extension`,fill:!1},composition:{type:`composition`,fill:!0},dependency:{type:`dependency`,fill:!0},lollipop:{type:`lollipop`,fill:!1},only_one:{type:`onlyOne`,fill:!1},zero_or_one:{type:`zeroOrOne`,fill:!1},one_or_more:{type:`oneOrMore`,fill:!1},zero_or_more:{type:`zeroOrMore`,fill:!1},requirement_arrow:{type:`requirement_arrow`,fill:!1},requirement_contains:{type:`requirement_contains`,fill:!1}},k=t((t,n,r,i,a,o,s)=>{let c=O[r];if(!c){e.warn(`Unknown arrow type: ${r}`);return}let l=`${a}_${o}-${c.type}${n===`start`?`Start`:`End`}`;if(s&&s.trim()!==``){let e=`${l}_${s.replace(/[^\dA-Za-z]/g,`_`)}`;if(!document.getElementById(e)){let t=document.getElementById(l);if(t){let n=t.cloneNode(!0);n.id=e,n.querySelectorAll(`path, circle, line`).forEach(e=>{e.setAttribute(`stroke`,s),c.fill&&e.setAttribute(`fill`,s)}),t.parentNode?.appendChild(n)}}t.attr(`marker-${n}`,`url(${i}#${e})`)}else t.attr(`marker-${n}`,`url(${i}#${l})`)},`addEdgeMarker`),A=new Map,j=new Map,M=t(()=>{A.clear(),j.clear()},`clear`),N=t(e=>e?e.reduce((e,t)=>e+`;`+t,``):``,`getLabelStyles`),P=t(async(t,a)=>{let o=i(r().flowchart.htmlLabels),{labelStyles:s}=w(a);a.labelStyle=s;let c=await y(t,a.label,{style:a.labelStyle,useHtmlLabels:o,addSvgBackground:!0,isNode:!1});e.info(`abc82`,a,a.labelType);let l=t.insert(`g`).attr(`class`,`edgeLabel`),u=l.insert(`g`).attr(`class`,`label`).attr(`data-id`,a.id);u.node().appendChild(c);let d=c.getBBox();if(o){let e=c.children[0],t=n(c);d=e.getBoundingClientRect(),t.attr(`width`,d.width),t.attr(`height`,d.height)}u.attr(`transform`,`translate(`+-d.width/2+`, `+-d.height/2+`)`),A.set(a.id,l),a.width=d.width,a.height=d.height;let f;if(a.startLabelLeft){let e=await D(a.startLabelLeft,N(a.labelStyle)),n=t.insert(`g`).attr(`class`,`edgeTerminals`),r=n.insert(`g`).attr(`class`,`inner`);f=r.node().appendChild(e);let i=e.getBBox();r.attr(`transform`,`translate(`+-i.width/2+`, `+-i.height/2+`)`),j.get(a.id)||j.set(a.id,{}),j.get(a.id).startLeft=n,F(f,a.startLabelLeft)}if(a.startLabelRight){let e=await D(a.startLabelRight,N(a.labelStyle)),n=t.insert(`g`).attr(`class`,`edgeTerminals`),r=n.insert(`g`).attr(`class`,`inner`);f=n.node().appendChild(e),r.node().appendChild(e);let i=e.getBBox();r.attr(`transform`,`translate(`+-i.width/2+`, `+-i.height/2+`)`),j.get(a.id)||j.set(a.id,{}),j.get(a.id).startRight=n,F(f,a.startLabelRight)}if(a.endLabelLeft){let e=await D(a.endLabelLeft,N(a.labelStyle)),n=t.insert(`g`).attr(`class`,`edgeTerminals`),r=n.insert(`g`).attr(`class`,`inner`);f=r.node().appendChild(e);let i=e.getBBox();r.attr(`transform`,`translate(`+-i.width/2+`, `+-i.height/2+`)`),n.node().appendChild(e),j.get(a.id)||j.set(a.id,{}),j.get(a.id).endLeft=n,F(f,a.endLabelLeft)}if(a.endLabelRight){let e=await D(a.endLabelRight,N(a.labelStyle)),n=t.insert(`g`).attr(`class`,`edgeTerminals`),r=n.insert(`g`).attr(`class`,`inner`);f=r.node().appendChild(e);let i=e.getBBox();r.attr(`transform`,`translate(`+-i.width/2+`, `+-i.height/2+`)`),n.node().appendChild(e),j.get(a.id)||j.set(a.id,{}),j.get(a.id).endRight=n,F(f,a.endLabelRight)}return c},`insertEdgeLabel`);function F(e,t){r().flowchart.htmlLabels&&e&&(e.style.width=t.length*9+`px`,e.style.height=`12px`)}t(F,`setTerminalWidth`);var I=t((t,n)=>{e.debug(`Moving label abc88 `,t.id,t.label,A.get(t.id),n);let i=n.updatedPath?n.updatedPath:n.originalPath,{subGraphTitleTotalMargin:a}=C(r());if(t.label){let r=A.get(t.id),o=t.x,s=t.y;if(i){let r=g.calcLabelPosition(i);e.debug(`Moving label `+t.label+` from (`,o,`,`,s,`) to (`,r.x,`,`,r.y,`) abc88`),n.updatedPath&&(o=r.x,s=r.y)}r.attr(`transform`,`translate(${o}, ${s+a/2})`)}if(t.startLabelLeft){let e=j.get(t.id).startLeft,n=t.x,r=t.y;if(i){let e=g.calcTerminalLabelPosition(t.arrowTypeStart?10:0,`start_left`,i);n=e.x,r=e.y}e.attr(`transform`,`translate(${n}, ${r})`)}if(t.startLabelRight){let e=j.get(t.id).startRight,n=t.x,r=t.y;if(i){let e=g.calcTerminalLabelPosition(t.arrowTypeStart?10:0,`start_right`,i);n=e.x,r=e.y}e.attr(`transform`,`translate(${n}, ${r})`)}if(t.endLabelLeft){let e=j.get(t.id).endLeft,n=t.x,r=t.y;if(i){let e=g.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,`end_left`,i);n=e.x,r=e.y}e.attr(`transform`,`translate(${n}, ${r})`)}if(t.endLabelRight){let e=j.get(t.id).endRight,n=t.x,r=t.y;if(i){let e=g.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,`end_right`,i);n=e.x,r=e.y}e.attr(`transform`,`translate(${n}, ${r})`)}},`positionEdgeLabel`),L=t((e,t)=>{let n=e.x,r=e.y,i=Math.abs(t.x-n),a=Math.abs(t.y-r),o=e.width/2,s=e.height/2;return i>=o||a>=s},`outsideNode`),R=t((t,n,r)=>{e.debug(`intersection calc abc89:
2
2
  outsidePoint: ${JSON.stringify(n)}
3
3
  insidePoint : ${JSON.stringify(r)}
4
4
  node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let i=t.x,a=t.y,o=Math.abs(i-r.x),s=t.width/2,c=r.x<n.x?s-o:s+o,l=t.height/2,u=Math.abs(n.y-r.y),d=Math.abs(n.x-r.x);if(Math.abs(a-n.y)*s>Math.abs(i-n.x)*l){let t=r.y<n.y?n.y-l-a:a-l-n.y;c=d*t/u;let i={x:r.x<n.x?r.x+c:r.x-d+c,y:r.y<n.y?r.y+u-t:r.y-u+t};return c===0&&(i.x=n.x,i.y=n.y),d===0&&(i.x=n.x),u===0&&(i.y=n.y),e.debug(`abc89 top/bottom calc, Q ${u}, q ${t}, R ${d}, r ${c}`,i),i}else{c=r.x<n.x?n.x-s-i:i-s-n.x;let t=u*c/d,a=r.x<n.x?r.x+d-c:r.x-d+c,o=r.y<n.y?r.y+t:r.y-t;return e.debug(`sides calc abc89, Q ${u}, q ${t}, R ${d}, r ${c}`,{_x:a,_y:o}),c===0&&(a=n.x,o=n.y),d===0&&(a=n.x),u===0&&(o=n.y),{x:a,y:o}}},`intersection`),z=t((t,n)=>{e.warn(`abc88 cutPathAtIntersect`,t,n);let r=[],i=t[0],a=!1;return t.forEach(t=>{if(e.info(`abc88 checking point`,t,n),!L(n,t)&&!a){let o=R(n,i,t);e.debug(`abc88 inside`,t,i,o),e.debug(`abc88 intersection`,o,n);let s=!1;r.forEach(e=>{s||=e.x===o.x&&e.y===o.y}),r.some(e=>e.x===o.x&&e.y===o.y)?e.warn(`abc88 no intersect`,o,r):r.push(o),a=!0}else e.warn(`abc88 outside`,t,i),i=t,a||r.push(t)}),e.debug(`returning points`,r),r},`cutPathAtIntersect`);function B(e){let t=[],n=[];for(let r=1;r<e.length-1;r++){let i=e[r-1],a=e[r],o=e[r+1];(i.x===a.x&&a.y===o.y&&Math.abs(a.x-o.x)>5&&Math.abs(a.y-i.y)>5||i.y===a.y&&a.x===o.x&&Math.abs(a.x-i.x)>5&&Math.abs(a.y-o.y)>5)&&(t.push(a),n.push(r))}return{cornerPoints:t,cornerPointPositions:n}}t(B,`extractCornerPoints`);var V=t(function(e,t,n){let r=t.x-e.x,i=t.y-e.y,a=n/Math.sqrt(r*r+i*i);return{x:t.x-a*r,y:t.y-a*i}},`findAdjacentPoint`),H=t(function(t){let{cornerPointPositions:n}=B(t),r=[];for(let i=0;i<t.length;i++)if(n.includes(i)){let n=t[i-1],a=t[i+1],o=t[i],s=V(n,o,5),c=V(a,o,5),l=c.x-s.x,u=c.y-s.y;r.push(s);let d=Math.sqrt(2)*2,f={x:o.x,y:o.y};Math.abs(a.x-n.x)>10&&Math.abs(a.y-n.y)>=10?(e.debug(`Corner point fixing`,Math.abs(a.x-n.x),Math.abs(a.y-n.y)),f=o.x===s.x?{x:l<0?s.x-5+d:s.x+5-d,y:u<0?s.y-d:s.y+d}:{x:l<0?s.x-d:s.x+d,y:u<0?s.y-5+d:s.y+5-d}):e.debug(`Corner point skipping fixing`,Math.abs(a.x-n.x),Math.abs(a.y-n.y)),r.push(f,c)}else r.push(t[i]);return r},`fixCorners`),U=t((e,t,n)=>{let r=e-t-n,i=Math.floor(r/4);return`0 ${t} ${Array(i).fill(`2 2`).join(` `)} ${n}`},`generateDashArray`),W=t(function(t,i,y,b,C,w,D,O=!1){let{handDrawnSeed:k}=r(),A=i.points,j=!1,M=C;var N=w;let P=[];for(let e in i.cssCompiledStyles)T(e)||P.push(i.cssCompiledStyles[e]);e.debug(`UIO intersect check`,i.points,N.x,M.x),N.intersect&&M.intersect&&!O&&(A=A.slice(1,i.points.length-1),A.unshift(M.intersect(A[0])),e.debug(`Last point UIO`,i.start,`-->`,i.end,A[A.length-1],N,N.intersect(A[A.length-1])),A.push(N.intersect(A[A.length-1])));let F=btoa(JSON.stringify(A));i.toCluster&&(e.info(`to cluster abc88`,y.get(i.toCluster)),A=z(i.points,y.get(i.toCluster).node),j=!0),i.fromCluster&&(e.debug(`from cluster abc88`,y.get(i.fromCluster),JSON.stringify(A,null,2)),A=z(A.reverse(),y.get(i.fromCluster).node).reverse(),j=!0);let I=A.filter(e=>!Number.isNaN(e.y));I=H(I);let L=p;switch(L=u,i.curve){case`linear`:L=u;break;case`basis`:L=p;break;case`cardinal`:L=c;break;case`bumpX`:L=h;break;case`bumpY`:L=s;break;case`catmullRom`:L=m;break;case`monotoneX`:L=_;break;case`monotoneY`:L=a;break;case`natural`:L=f;break;case`step`:L=d;break;case`stepAfter`:L=o;break;case`stepBefore`:L=l;break;default:L=p}let{x:R,y:B}=S(i),V=v().x(R).y(B).curve(L),W;switch(i.thickness){case`normal`:W=`edge-thickness-normal`;break;case`thick`:W=`edge-thickness-thick`;break;case`invisible`:W=`edge-thickness-invisible`;break;default:W=`edge-thickness-normal`}switch(i.pattern){case`solid`:W+=` edge-pattern-solid`;break;case`dotted`:W+=` edge-pattern-dotted`;break;case`dashed`:W+=` edge-pattern-dashed`;break;default:W+=` edge-pattern-solid`}let K,J=i.curve===`rounded`?G(q(I,i),5):V(I),Y=Array.isArray(i.style)?i.style:[i.style],X=Y.find(e=>e?.startsWith(`stroke:`)),Z=!1;if(i.look===`handDrawn`){let e=E.svg(t);Object.assign([],I);let r=e.path(J,{roughness:.3,seed:k});W+=` transition`,K=n(r).select(`path`).attr(`id`,i.id).attr(`class`,` `+W+(i.classes?` `+i.classes:``)).attr(`style`,Y?Y.reduce((e,t)=>e+`;`+t,``):``);let a=K.attr(`d`);K.attr(`d`,a),t.node().appendChild(K.node())}else{let e=P.join(`;`),n=Y?Y.reduce((e,t)=>e+t+`;`,``):``,r=``;i.animate&&(r=` edge-animation-fast`),i.animation&&(r=` edge-animation-`+i.animation);let a=(e?e+`;`+n+`;`:n)+`;`+(Y?Y.reduce((e,t)=>e+`;`+t,``):``);K=t.append(`path`).attr(`d`,J).attr(`id`,i.id).attr(`class`,` `+W+(i.classes?` `+i.classes:``)+(r??``)).attr(`style`,a),X=a.match(/stroke:([^;]+)/)?.[1],Z=i.animate===!0||!!i.animation||e.includes(`animation`);let o=K.node(),s=typeof o.getTotalLength==`function`?o.getTotalLength():0,c=x[i.arrowTypeStart]||0,l=x[i.arrowTypeEnd]||0;if(i.look===`neo`&&!Z){let e=`stroke-dasharray: ${i.pattern===`dotted`||i.pattern===`dashed`?U(s,c,l):`0 ${c} ${s-c-l} ${l}`}; stroke-dashoffset: 0;`;K.attr(`style`,e+K.attr(`style`))}}K.attr(`data-edge`,!0),K.attr(`data-et`,`edge`),K.attr(`data-id`,i.id),K.attr(`data-points`,F),i.showPoints&&I.forEach(e=>{t.append(`circle`).style(`stroke`,`red`).style(`fill`,`red`).attr(`r`,1).attr(`cx`,e.x).attr(`cy`,e.y)});let Q=``;(r().flowchart.arrowMarkerAbsolute||r().state.arrowMarkerAbsolute)&&(Q=window.location.protocol+`//`+window.location.host+window.location.pathname+window.location.search,Q=Q.replace(/\(/g,`\\(`).replace(/\)/g,`\\)`)),e.info(`arrowTypeStart`,i.arrowTypeStart),e.info(`arrowTypeEnd`,i.arrowTypeEnd),ee(K,i,Q,D,b,X);let te=Math.floor(A.length/2),ne=A[te];g.isLabelCoordinateInPath(ne,K.attr(`d`))||(j=!0);let $={};return j&&($.updatedPath=A),$.originalPath=i.points,$},`insertEdge`);function G(e,t){if(e.length<2)return``;let n=``,r=e.length,i=1e-5;for(let a=0;a<r;a++){let o=e[a],s=e[a-1],c=e[a+1];if(a===0)n+=`M${o.x},${o.y}`;else if(a===r-1)n+=`L${o.x},${o.y}`;else{let e=o.x-s.x,r=o.y-s.y,a=c.x-o.x,l=c.y-o.y,u=Math.hypot(e,r),d=Math.hypot(a,l);if(u<i||d<i){n+=`L${o.x},${o.y}`;continue}let f=e/u,p=r/u,m=a/d,h=l/d,g=f*m+p*h,_=Math.max(-1,Math.min(1,g)),v=Math.acos(_);if(v<i||Math.abs(Math.PI-v)<i){n+=`L${o.x},${o.y}`;continue}let y=Math.min(t/Math.sin(v/2),u/2,d/2),b=o.x-f*y,x=o.y-p*y,S=o.x+m*y,C=o.y+h*y;n+=`L${b},${x}`,n+=`Q${o.x},${o.y} ${S},${C}`}}return n}t(G,`generateRoundedPath`);function K(e,t){if(!e||!t)return{angle:0,deltaX:0,deltaY:0};let n=t.x-e.x,r=t.y-e.y;return{angle:Math.atan2(r,n),deltaX:n,deltaY:r}}t(K,`calculateDeltaAndAngle`);function q(e,t){let n=e.map(e=>({...e}));if(e.length>=2&&b[t.arrowTypeStart]){let r=b[t.arrowTypeStart],i=e[0],a=e[1],{angle:o}=K(i,a),s=r*Math.cos(o),c=r*Math.sin(o);n[0].x=i.x+s,n[0].y=i.y+c}let r=e.length;if(r>=2&&b[t.arrowTypeEnd]){let i=b[t.arrowTypeEnd],a=e[r-1],o=e[r-2],{angle:s}=K(o,a),c=i*Math.cos(s),l=i*Math.sin(s);n[r-1].x=a.x-c,n[r-1].y=a.y-l}return n}t(q,`applyMarkerOffsetsToPoints`);var J=t((e,t,n,r)=>{t.forEach(t=>{Y[t](e,n,r)})},`insertMarkers`),Y={extension:t((t,n,r)=>{e.trace(`Making markers for `,r),t.append(`defs`).append(`marker`).attr(`id`,r+`_`+n+`-extensionStart`).attr(`class`,`marker extension `+n).attr(`refX`,18).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,7 L18,13 V 1 Z`),t.append(`defs`).append(`marker`).attr(`id`,r+`_`+n+`-extensionEnd`).attr(`class`,`marker extension `+n).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,1 V 13 L18,7 Z`)},`extension`),composition:t((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-compositionStart`).attr(`class`,`marker composition `+t).attr(`refX`,18).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-compositionEnd`).attr(`class`,`marker composition `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`)},`composition`),aggregation:t((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-aggregationStart`).attr(`class`,`marker aggregation `+t).attr(`refX`,18).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-aggregationEnd`).attr(`class`,`marker aggregation `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`)},`aggregation`),dependency:t((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-dependencyStart`).attr(`class`,`marker dependency `+t).attr(`refX`,6).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 5,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-dependencyEnd`).attr(`class`,`marker dependency `+t).attr(`refX`,13).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L14,7 L9,1 Z`)},`dependency`),lollipop:t((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-lollipopStart`).attr(`class`,`marker lollipop `+t).attr(`refX`,13).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`circle`).attr(`stroke`,`black`).attr(`fill`,`transparent`).attr(`cx`,7).attr(`cy`,7).attr(`r`,6),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-lollipopEnd`).attr(`class`,`marker lollipop `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`circle`).attr(`stroke`,`black`).attr(`fill`,`transparent`).attr(`cx`,7).attr(`cy`,7).attr(`r`,6)},`lollipop`),point:t((e,t,n)=>{e.append(`marker`).attr(`id`,n+`_`+t+`-pointEnd`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,5).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,8).attr(`markerHeight`,8).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 0 0 L 10 5 L 0 10 z`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-pointStart`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,4.5).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,8).attr(`markerHeight`,8).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 0 5 L 10 10 L 10 0 z`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`)},`point`),circle:t((e,t,n)=>{e.append(`marker`).attr(`id`,n+`_`+t+`-circleEnd`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,11).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`circle`).attr(`cx`,`5`).attr(`cy`,`5`).attr(`r`,`5`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-circleStart`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,-1).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`circle`).attr(`cx`,`5`).attr(`cy`,`5`).attr(`r`,`5`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`)},`circle`),cross:t((e,t,n)=>{e.append(`marker`).attr(`id`,n+`_`+t+`-crossEnd`).attr(`class`,`marker cross `+t).attr(`viewBox`,`0 0 11 11`).attr(`refX`,12).attr(`refY`,5.2).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,1 l 9,9 M 10,1 l -9,9`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,2).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-crossStart`).attr(`class`,`marker cross `+t).attr(`viewBox`,`0 0 11 11`).attr(`refX`,-1).attr(`refY`,5.2).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,1 l 9,9 M 10,1 l -9,9`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,2).style(`stroke-dasharray`,`1,0`)},`cross`),barb:t((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-barbEnd`).attr(`refX`,19).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,14).attr(`markerUnits`,`userSpaceOnUse`).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 19,7 L9,13 L14,7 L9,1 Z`)},`barb`),only_one:t((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-onlyOneStart`).attr(`class`,`marker onlyOne `+t).attr(`refX`,0).attr(`refY`,9).attr(`markerWidth`,18).attr(`markerHeight`,18).attr(`orient`,`auto`).append(`path`).attr(`d`,`M9,0 L9,18 M15,0 L15,18`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-onlyOneEnd`).attr(`class`,`marker onlyOne `+t).attr(`refX`,18).attr(`refY`,9).attr(`markerWidth`,18).attr(`markerHeight`,18).attr(`orient`,`auto`).append(`path`).attr(`d`,`M3,0 L3,18 M9,0 L9,18`)},`only_one`),zero_or_one:t((e,t,n)=>{let r=e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-zeroOrOneStart`).attr(`class`,`marker zeroOrOne `+t).attr(`refX`,0).attr(`refY`,9).attr(`markerWidth`,30).attr(`markerHeight`,18).attr(`orient`,`auto`);r.append(`circle`).attr(`fill`,`white`).attr(`cx`,21).attr(`cy`,9).attr(`r`,6),r.append(`path`).attr(`d`,`M9,0 L9,18`);let i=e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-zeroOrOneEnd`).attr(`class`,`marker zeroOrOne `+t).attr(`refX`,30).attr(`refY`,9).attr(`markerWidth`,30).attr(`markerHeight`,18).attr(`orient`,`auto`);i.append(`circle`).attr(`fill`,`white`).attr(`cx`,9).attr(`cy`,9).attr(`r`,6),i.append(`path`).attr(`d`,`M21,0 L21,18`)},`zero_or_one`),one_or_more:t((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-oneOrMoreStart`).attr(`class`,`marker oneOrMore `+t).attr(`refX`,18).attr(`refY`,18).attr(`markerWidth`,45).attr(`markerHeight`,36).attr(`orient`,`auto`).append(`path`).attr(`d`,`M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-oneOrMoreEnd`).attr(`class`,`marker oneOrMore `+t).attr(`refX`,27).attr(`refY`,18).attr(`markerWidth`,45).attr(`markerHeight`,36).attr(`orient`,`auto`).append(`path`).attr(`d`,`M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18`)},`one_or_more`),zero_or_more:t((e,t,n)=>{let r=e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-zeroOrMoreStart`).attr(`class`,`marker zeroOrMore `+t).attr(`refX`,18).attr(`refY`,18).attr(`markerWidth`,57).attr(`markerHeight`,36).attr(`orient`,`auto`);r.append(`circle`).attr(`fill`,`white`).attr(`cx`,48).attr(`cy`,18).attr(`r`,6),r.append(`path`).attr(`d`,`M0,18 Q18,0 36,18 Q18,36 0,18`);let i=e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-zeroOrMoreEnd`).attr(`class`,`marker zeroOrMore `+t).attr(`refX`,39).attr(`refY`,18).attr(`markerWidth`,57).attr(`markerHeight`,36).attr(`orient`,`auto`);i.append(`circle`).attr(`fill`,`white`).attr(`cx`,9).attr(`cy`,18).attr(`r`,6),i.append(`path`).attr(`d`,`M21,18 Q39,0 57,18 Q39,36 21,18`)},`zero_or_more`),requirement_arrow:t((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-requirement_arrowEnd`).attr(`refX`,20).attr(`refY`,10).attr(`markerWidth`,20).attr(`markerHeight`,20).attr(`orient`,`auto`).append(`path`).attr(`d`,`M0,0
5
5
  L20,10
6
6
  M20,10
7
7
  L0,20`)},`requirement_arrow`),requirement_contains:t((e,t,n)=>{let r=e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-requirement_containsStart`).attr(`refX`,0).attr(`refY`,10).attr(`markerWidth`,20).attr(`markerHeight`,20).attr(`orient`,`auto`).append(`g`);r.append(`circle`).attr(`cx`,10).attr(`cy`,10).attr(`r`,9).attr(`fill`,`none`),r.append(`line`).attr(`x1`,1).attr(`x2`,19).attr(`y1`,10).attr(`y2`,10),r.append(`line`).attr(`y1`,1).attr(`y2`,19).attr(`x1`,10).attr(`x2`,10)},`requirement_contains`)},X=J;export{I as a,X as i,W as n,P as r,M as t};
8
- //# sourceMappingURL=chunk-QXUST7PY-BOQY0Xfy.js.map
8
+ //# sourceMappingURL=chunk-QXUST7PY-CV4pkmTu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-QXUST7PY-BOQY0Xfy.js","names":["getConfig","select","curveBasis","curveLinear","curveCardinal","curveBumpX","curveBumpY","curveCatmullRom","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","line","rough"],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-QXUST7PY.mjs"],"sourcesContent":["import {\n getLineFunctionsWithOffset,\n markerOffsets,\n markerOffsets2\n} from \"./chunk-HN2XXSSU.mjs\";\nimport {\n createLabel_default\n} from \"./chunk-JZLCHNYA.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-CVBHYZKI.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-ATLVNIR6.mjs\";\nimport {\n createText\n} from \"./chunk-JA3XYJ7Z.mjs\";\nimport {\n utils_default\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n evaluate,\n getConfig2 as getConfig\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/rendering-elements/edges.js\nimport {\n curveBasis,\n curveLinear,\n curveCardinal,\n curveBumpX,\n curveBumpY,\n curveCatmullRom,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore,\n line,\n select\n} from \"d3\";\nimport rough from \"roughjs\";\n\n// src/rendering-util/rendering-elements/edgeMarker.ts\nvar addEdgeMarkers = /* @__PURE__ */ __name((svgPath, edge, url, id, diagramType, strokeColor) => {\n if (edge.arrowTypeStart) {\n addEdgeMarker(svgPath, \"start\", edge.arrowTypeStart, url, id, diagramType, strokeColor);\n }\n if (edge.arrowTypeEnd) {\n addEdgeMarker(svgPath, \"end\", edge.arrowTypeEnd, url, id, diagramType, strokeColor);\n }\n}, \"addEdgeMarkers\");\nvar arrowTypesMap = {\n arrow_cross: { type: \"cross\", fill: false },\n arrow_point: { type: \"point\", fill: true },\n arrow_barb: { type: \"barb\", fill: true },\n arrow_circle: { type: \"circle\", fill: false },\n aggregation: { type: \"aggregation\", fill: false },\n extension: { type: \"extension\", fill: false },\n composition: { type: \"composition\", fill: true },\n dependency: { type: \"dependency\", fill: true },\n lollipop: { type: \"lollipop\", fill: false },\n only_one: { type: \"onlyOne\", fill: false },\n zero_or_one: { type: \"zeroOrOne\", fill: false },\n one_or_more: { type: \"oneOrMore\", fill: false },\n zero_or_more: { type: \"zeroOrMore\", fill: false },\n requirement_arrow: { type: \"requirement_arrow\", fill: false },\n requirement_contains: { type: \"requirement_contains\", fill: false }\n};\nvar addEdgeMarker = /* @__PURE__ */ __name((svgPath, position, arrowType, url, id, diagramType, strokeColor) => {\n const arrowTypeInfo = arrowTypesMap[arrowType];\n if (!arrowTypeInfo) {\n log.warn(`Unknown arrow type: ${arrowType}`);\n return;\n }\n const endMarkerType = arrowTypeInfo.type;\n const suffix = position === \"start\" ? \"Start\" : \"End\";\n const originalMarkerId = `${id}_${diagramType}-${endMarkerType}${suffix}`;\n if (strokeColor && strokeColor.trim() !== \"\") {\n const colorId = strokeColor.replace(/[^\\dA-Za-z]/g, \"_\");\n const coloredMarkerId = `${originalMarkerId}_${colorId}`;\n if (!document.getElementById(coloredMarkerId)) {\n const originalMarker = document.getElementById(originalMarkerId);\n if (originalMarker) {\n const coloredMarker = originalMarker.cloneNode(true);\n coloredMarker.id = coloredMarkerId;\n const paths = coloredMarker.querySelectorAll(\"path, circle, line\");\n paths.forEach((path) => {\n path.setAttribute(\"stroke\", strokeColor);\n if (arrowTypeInfo.fill) {\n path.setAttribute(\"fill\", strokeColor);\n }\n });\n originalMarker.parentNode?.appendChild(coloredMarker);\n }\n }\n svgPath.attr(`marker-${position}`, `url(${url}#${coloredMarkerId})`);\n } else {\n svgPath.attr(`marker-${position}`, `url(${url}#${originalMarkerId})`);\n }\n}, \"addEdgeMarker\");\n\n// src/rendering-util/rendering-elements/edges.js\nvar edgeLabels = /* @__PURE__ */ new Map();\nvar terminalLabels = /* @__PURE__ */ new Map();\nvar clear = /* @__PURE__ */ __name(() => {\n edgeLabels.clear();\n terminalLabels.clear();\n}, \"clear\");\nvar getLabelStyles = /* @__PURE__ */ __name((styleArray) => {\n let styles = styleArray ? styleArray.reduce((acc, style) => acc + \";\" + style, \"\") : \"\";\n return styles;\n}, \"getLabelStyles\");\nvar insertEdgeLabel = /* @__PURE__ */ __name(async (elem, edge) => {\n let useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels);\n const { labelStyles } = styles2String(edge);\n edge.labelStyle = labelStyles;\n const labelElement = await createText(elem, edge.label, {\n style: edge.labelStyle,\n useHtmlLabels,\n addSvgBackground: true,\n isNode: false\n });\n log.info(\"abc82\", edge, edge.labelType);\n const edgeLabel = elem.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const label = edgeLabel.insert(\"g\").attr(\"class\", \"label\").attr(\"data-id\", edge.id);\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n if (useHtmlLabels) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n edgeLabels.set(edge.id, edgeLabel);\n edge.width = bbox.width;\n edge.height = bbox.height;\n let fo;\n if (edge.startLabelLeft) {\n const startLabelElement = await createLabel_default(\n edge.startLabelLeft,\n getLabelStyles(edge.labelStyle)\n );\n const startEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n const startLabelElement = await createLabel_default(\n edge.startLabelRight,\n getLabelStyles(edge.labelStyle)\n );\n const startEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n const endLabelElement = await createLabel_default(edge.endLabelLeft, getLabelStyles(edge.labelStyle));\n const endEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n const endLabelElement = await createLabel_default(edge.endLabelRight, getLabelStyles(edge.labelStyle));\n const endEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n return labelElement;\n}, \"insertEdgeLabel\");\nfunction setTerminalWidth(fo, value) {\n if (getConfig().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + \"px\";\n fo.style.height = \"12px\";\n }\n}\n__name(setTerminalWidth, \"setTerminalWidth\");\nvar positionEdgeLabel = /* @__PURE__ */ __name((edge, paths) => {\n log.debug(\"Moving label abc88 \", edge.id, edge.label, edgeLabels.get(edge.id), paths);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n const siteConfig = getConfig();\n const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n if (edge.label) {\n const el = edgeLabels.get(edge.id);\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcLabelPosition(path);\n log.debug(\n \"Moving label \" + edge.label + \" from (\",\n x,\n \",\",\n y,\n \") to (\",\n pos.x,\n \",\",\n pos.y,\n \") abc88\"\n );\n if (paths.updatedPath) {\n x = pos.x;\n y = pos.y;\n }\n }\n el.attr(\"transform\", `translate(${x}, ${y + subGraphTitleTotalMargin / 2})`);\n }\n if (edge.startLabelLeft) {\n const el = terminalLabels.get(edge.id).startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, \"start_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.startLabelRight) {\n const el = terminalLabels.get(edge.id).startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n \"start_right\",\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels.get(edge.id).endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelRight) {\n const el = terminalLabels.get(edge.id).endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_right\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n}, \"positionEdgeLabel\");\nvar outsideNode = /* @__PURE__ */ __name((node, point2) => {\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point2.x - x);\n const dy = Math.abs(point2.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n return dx >= w || dy >= h;\n}, \"outsideNode\");\nvar intersection = /* @__PURE__ */ __name((node, outsidePoint, insidePoint) => {\n log.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(x - insidePoint.x);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = R * q / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q\n };\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n log.debug(`abc89 top/bottom calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n return res;\n } else {\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n r = x - w - outsidePoint.x;\n }\n let q = Q * r / R;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.debug(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n return { x: _x, y: _y };\n }\n}, \"intersection\");\nvar cutPathAtIntersect = /* @__PURE__ */ __name((_points, boundaryNode) => {\n log.warn(\"abc88 cutPathAtIntersect\", _points, boundaryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point2) => {\n log.info(\"abc88 checking point\", point2, boundaryNode);\n if (!outsideNode(boundaryNode, point2) && !isInside) {\n const inter = intersection(boundaryNode, lastPointOutside, point2);\n log.debug(\"abc88 inside\", point2, lastPointOutside, inter);\n log.debug(\"abc88 intersection\", inter, boundaryNode);\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;\n });\n if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn(\"abc88 no intersect\", inter, points);\n }\n isInside = true;\n } else {\n log.warn(\"abc88 outside\", point2, lastPointOutside);\n lastPointOutside = point2;\n if (!isInside) {\n points.push(point2);\n }\n }\n });\n log.debug(\"returning points\", points);\n return points;\n}, \"cutPathAtIntersect\");\nfunction extractCornerPoints(points) {\n const cornerPoints = [];\n const cornerPointPositions = [];\n for (let i = 1; i < points.length - 1; i++) {\n const prev = points[i - 1];\n const curr = points[i];\n const next = points[i + 1];\n if (prev.x === curr.x && curr.y === next.y && Math.abs(curr.x - next.x) > 5 && Math.abs(curr.y - prev.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n } else if (prev.y === curr.y && curr.x === next.x && Math.abs(curr.x - prev.x) > 5 && Math.abs(curr.y - next.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n }\n }\n return { cornerPoints, cornerPointPositions };\n}\n__name(extractCornerPoints, \"extractCornerPoints\");\nvar findAdjacentPoint = /* @__PURE__ */ __name(function(pointA, pointB, distance) {\n const xDiff = pointB.x - pointA.x;\n const yDiff = pointB.y - pointA.y;\n const length = Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n const ratio = distance / length;\n return { x: pointB.x - ratio * xDiff, y: pointB.y - ratio * yDiff };\n}, \"findAdjacentPoint\");\nvar fixCorners = /* @__PURE__ */ __name(function(lineData) {\n const { cornerPointPositions } = extractCornerPoints(lineData);\n const newLineData = [];\n for (let i = 0; i < lineData.length; i++) {\n if (cornerPointPositions.includes(i)) {\n const prevPoint = lineData[i - 1];\n const nextPoint = lineData[i + 1];\n const cornerPoint = lineData[i];\n const newPrevPoint = findAdjacentPoint(prevPoint, cornerPoint, 5);\n const newNextPoint = findAdjacentPoint(nextPoint, cornerPoint, 5);\n const xDiff = newNextPoint.x - newPrevPoint.x;\n const yDiff = newNextPoint.y - newPrevPoint.y;\n newLineData.push(newPrevPoint);\n const a = Math.sqrt(2) * 2;\n let newCornerPoint = { x: cornerPoint.x, y: cornerPoint.y };\n if (Math.abs(nextPoint.x - prevPoint.x) > 10 && Math.abs(nextPoint.y - prevPoint.y) >= 10) {\n log.debug(\n \"Corner point fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n const r = 5;\n if (cornerPoint.x === newPrevPoint.x) {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - r + a : newPrevPoint.x + r - a,\n y: yDiff < 0 ? newPrevPoint.y - a : newPrevPoint.y + a\n };\n } else {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - a : newPrevPoint.x + a,\n y: yDiff < 0 ? newPrevPoint.y - r + a : newPrevPoint.y + r - a\n };\n }\n } else {\n log.debug(\n \"Corner point skipping fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n }\n newLineData.push(newCornerPoint, newNextPoint);\n } else {\n newLineData.push(lineData[i]);\n }\n }\n return newLineData;\n}, \"fixCorners\");\nvar generateDashArray = /* @__PURE__ */ __name((len, oValueS, oValueE) => {\n const middleLength = len - oValueS - oValueE;\n const dashLength = 2;\n const gapLength = 2;\n const dashGapPairLength = dashLength + gapLength;\n const numberOfPairs = Math.floor(middleLength / dashGapPairLength);\n const middlePattern = Array(numberOfPairs).fill(`${dashLength} ${gapLength}`).join(\" \");\n const dashArray = `0 ${oValueS} ${middlePattern} ${oValueE}`;\n return dashArray;\n}, \"generateDashArray\");\nvar insertEdge = /* @__PURE__ */ __name(function(elem, edge, clusterDb, diagramType, startNode, endNode, id, skipIntersect = false) {\n const { handDrawnSeed } = getConfig();\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = startNode;\n var head = endNode;\n const edgeClassStyles = [];\n for (const key in edge.cssCompiledStyles) {\n if (isLabelStyle(key)) {\n continue;\n }\n edgeClassStyles.push(edge.cssCompiledStyles[key]);\n }\n log.debug(\"UIO intersect check\", edge.points, head.x, tail.x);\n if (head.intersect && tail.intersect && !skipIntersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.debug(\n \"Last point UIO\",\n edge.start,\n \"-->\",\n edge.end,\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n const pointsStr = btoa(JSON.stringify(points));\n if (edge.toCluster) {\n log.info(\"to cluster abc88\", clusterDb.get(edge.toCluster));\n points = cutPathAtIntersect(edge.points, clusterDb.get(edge.toCluster).node);\n pointsHasChanged = true;\n }\n if (edge.fromCluster) {\n log.debug(\n \"from cluster abc88\",\n clusterDb.get(edge.fromCluster),\n JSON.stringify(points, null, 2)\n );\n points = cutPathAtIntersect(points.reverse(), clusterDb.get(edge.fromCluster).node).reverse();\n pointsHasChanged = true;\n }\n let lineData = points.filter((p) => !Number.isNaN(p.y));\n lineData = fixCorners(lineData);\n let curve = curveBasis;\n curve = curveLinear;\n switch (edge.curve) {\n case \"linear\":\n curve = curveLinear;\n break;\n case \"basis\":\n curve = curveBasis;\n break;\n case \"cardinal\":\n curve = curveCardinal;\n break;\n case \"bumpX\":\n curve = curveBumpX;\n break;\n case \"bumpY\":\n curve = curveBumpY;\n break;\n case \"catmullRom\":\n curve = curveCatmullRom;\n break;\n case \"monotoneX\":\n curve = curveMonotoneX;\n break;\n case \"monotoneY\":\n curve = curveMonotoneY;\n break;\n case \"natural\":\n curve = curveNatural;\n break;\n case \"step\":\n curve = curveStep;\n break;\n case \"stepAfter\":\n curve = curveStepAfter;\n break;\n case \"stepBefore\":\n curve = curveStepBefore;\n break;\n default:\n curve = curveBasis;\n }\n const { x, y } = getLineFunctionsWithOffset(edge);\n const lineFunction = line().x(x).y(y).curve(curve);\n let strokeClasses;\n switch (edge.thickness) {\n case \"normal\":\n strokeClasses = \"edge-thickness-normal\";\n break;\n case \"thick\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n case \"invisible\":\n strokeClasses = \"edge-thickness-invisible\";\n break;\n default:\n strokeClasses = \"edge-thickness-normal\";\n }\n switch (edge.pattern) {\n case \"solid\":\n strokeClasses += \" edge-pattern-solid\";\n break;\n case \"dotted\":\n strokeClasses += \" edge-pattern-dotted\";\n break;\n case \"dashed\":\n strokeClasses += \" edge-pattern-dashed\";\n break;\n default:\n strokeClasses += \" edge-pattern-solid\";\n }\n let svgPath;\n let linePath = edge.curve === \"rounded\" ? generateRoundedPath(applyMarkerOffsetsToPoints(lineData, edge), 5) : lineFunction(lineData);\n const edgeStyles = Array.isArray(edge.style) ? edge.style : [edge.style];\n let strokeColor = edgeStyles.find((style) => style?.startsWith(\"stroke:\"));\n let animatedEdge = false;\n if (edge.look === \"handDrawn\") {\n const rc = rough.svg(elem);\n Object.assign([], lineData);\n const svgPathNode = rc.path(linePath, {\n roughness: 0.3,\n seed: handDrawnSeed\n });\n strokeClasses += \" transition\";\n svgPath = select(svgPathNode).select(\"path\").attr(\"id\", edge.id).attr(\"class\", \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\")).attr(\"style\", edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n let d = svgPath.attr(\"d\");\n svgPath.attr(\"d\", d);\n elem.node().appendChild(svgPath.node());\n } else {\n const stylesFromClasses = edgeClassStyles.join(\";\");\n const styles = edgeStyles ? edgeStyles.reduce((acc, style) => acc + style + \";\", \"\") : \"\";\n let animationClass = \"\";\n if (edge.animate) {\n animationClass = \" edge-animation-fast\";\n }\n if (edge.animation) {\n animationClass = \" edge-animation-\" + edge.animation;\n }\n const pathStyle = (stylesFromClasses ? stylesFromClasses + \";\" + styles + \";\" : styles) + \";\" + (edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n svgPath = elem.append(\"path\").attr(\"d\", linePath).attr(\"id\", edge.id).attr(\n \"class\",\n \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\") + (animationClass ?? \"\")\n ).attr(\"style\", pathStyle);\n strokeColor = pathStyle.match(/stroke:([^;]+)/)?.[1];\n animatedEdge = edge.animate === true || !!edge.animation || stylesFromClasses.includes(\"animation\");\n const pathNode = svgPath.node();\n const len = typeof pathNode.getTotalLength === \"function\" ? pathNode.getTotalLength() : 0;\n const oValueS = markerOffsets2[edge.arrowTypeStart] || 0;\n const oValueE = markerOffsets2[edge.arrowTypeEnd] || 0;\n if (edge.look === \"neo\" && !animatedEdge) {\n const dashArray = edge.pattern === \"dotted\" || edge.pattern === \"dashed\" ? generateDashArray(len, oValueS, oValueE) : `0 ${oValueS} ${len - oValueS - oValueE} ${oValueE}`;\n const mOffset = `stroke-dasharray: ${dashArray}; stroke-dashoffset: 0;`;\n svgPath.attr(\"style\", mOffset + svgPath.attr(\"style\"));\n }\n }\n svgPath.attr(\"data-edge\", true);\n svgPath.attr(\"data-et\", \"edge\");\n svgPath.attr(\"data-id\", edge.id);\n svgPath.attr(\"data-points\", pointsStr);\n if (edge.showPoints) {\n lineData.forEach((point3) => {\n elem.append(\"circle\").style(\"stroke\", \"red\").style(\"fill\", \"red\").attr(\"r\", 1).attr(\"cx\", point3.x).attr(\"cy\", point3.y);\n });\n }\n let url = \"\";\n if (getConfig().flowchart.arrowMarkerAbsolute || getConfig().state.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\").replace(/\\)/g, \"\\\\)\");\n }\n log.info(\"arrowTypeStart\", edge.arrowTypeStart);\n log.info(\"arrowTypeEnd\", edge.arrowTypeEnd);\n addEdgeMarkers(svgPath, edge, url, id, diagramType, strokeColor);\n const midIndex = Math.floor(points.length / 2);\n const point2 = points[midIndex];\n if (!utils_default.isLabelCoordinateInPath(point2, svgPath.attr(\"d\"))) {\n pointsHasChanged = true;\n }\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n}, \"insertEdge\");\nfunction generateRoundedPath(points, radius) {\n if (points.length < 2) {\n return \"\";\n }\n let path = \"\";\n const size = points.length;\n const epsilon = 1e-5;\n for (let i = 0; i < size; i++) {\n const currPoint = points[i];\n const prevPoint = points[i - 1];\n const nextPoint = points[i + 1];\n if (i === 0) {\n path += `M${currPoint.x},${currPoint.y}`;\n } else if (i === size - 1) {\n path += `L${currPoint.x},${currPoint.y}`;\n } else {\n const dx1 = currPoint.x - prevPoint.x;\n const dy1 = currPoint.y - prevPoint.y;\n const dx2 = nextPoint.x - currPoint.x;\n const dy2 = nextPoint.y - currPoint.y;\n const len1 = Math.hypot(dx1, dy1);\n const len2 = Math.hypot(dx2, dy2);\n if (len1 < epsilon || len2 < epsilon) {\n path += `L${currPoint.x},${currPoint.y}`;\n continue;\n }\n const nx1 = dx1 / len1;\n const ny1 = dy1 / len1;\n const nx2 = dx2 / len2;\n const ny2 = dy2 / len2;\n const dot = nx1 * nx2 + ny1 * ny2;\n const clampedDot = Math.max(-1, Math.min(1, dot));\n const angle = Math.acos(clampedDot);\n if (angle < epsilon || Math.abs(Math.PI - angle) < epsilon) {\n path += `L${currPoint.x},${currPoint.y}`;\n continue;\n }\n const cutLen = Math.min(radius / Math.sin(angle / 2), len1 / 2, len2 / 2);\n const startX = currPoint.x - nx1 * cutLen;\n const startY = currPoint.y - ny1 * cutLen;\n const endX = currPoint.x + nx2 * cutLen;\n const endY = currPoint.y + ny2 * cutLen;\n path += `L${startX},${startY}`;\n path += `Q${currPoint.x},${currPoint.y} ${endX},${endY}`;\n }\n }\n return path;\n}\n__name(generateRoundedPath, \"generateRoundedPath\");\nfunction calculateDeltaAndAngle(point1, point2) {\n if (!point1 || !point2) {\n return { angle: 0, deltaX: 0, deltaY: 0 };\n }\n const deltaX = point2.x - point1.x;\n const deltaY = point2.y - point1.y;\n const angle = Math.atan2(deltaY, deltaX);\n return { angle, deltaX, deltaY };\n}\n__name(calculateDeltaAndAngle, \"calculateDeltaAndAngle\");\nfunction applyMarkerOffsetsToPoints(points, edge) {\n const newPoints = points.map((point2) => ({ ...point2 }));\n if (points.length >= 2 && markerOffsets[edge.arrowTypeStart]) {\n const offsetValue = markerOffsets[edge.arrowTypeStart];\n const point1 = points[0];\n const point2 = points[1];\n const { angle } = calculateDeltaAndAngle(point1, point2);\n const offsetX = offsetValue * Math.cos(angle);\n const offsetY = offsetValue * Math.sin(angle);\n newPoints[0].x = point1.x + offsetX;\n newPoints[0].y = point1.y + offsetY;\n }\n const n = points.length;\n if (n >= 2 && markerOffsets[edge.arrowTypeEnd]) {\n const offsetValue = markerOffsets[edge.arrowTypeEnd];\n const point1 = points[n - 1];\n const point2 = points[n - 2];\n const { angle } = calculateDeltaAndAngle(point2, point1);\n const offsetX = offsetValue * Math.cos(angle);\n const offsetY = offsetValue * Math.sin(angle);\n newPoints[n - 1].x = point1.x - offsetX;\n newPoints[n - 1].y = point1.y - offsetY;\n }\n return newPoints;\n}\n__name(applyMarkerOffsetsToPoints, \"applyMarkerOffsetsToPoints\");\n\n// src/rendering-util/rendering-elements/markers.js\nvar insertMarkers = /* @__PURE__ */ __name((elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n}, \"insertMarkers\");\nvar extension = /* @__PURE__ */ __name((elem, type, id) => {\n log.trace(\"Making markers for \", id);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionStart\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,7 L18,13 V 1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionEnd\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 V 13 L18,7 Z\");\n}, \"extension\");\nvar composition = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionStart\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionEnd\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"composition\");\nvar aggregation = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationStart\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationEnd\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"aggregation\");\nvar dependency = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyStart\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 6).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 5,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyEnd\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n}, \"dependency\");\nvar lollipop = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopStart\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopEnd\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n}, \"lollipop\");\nvar point = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 4.5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 5 L 10 10 L 10 0 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n}, \"point\");\nvar circle = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 11).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", -1).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n}, \"circle\");\nvar cross = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossEnd\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", 12).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossStart\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", -1).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n}, \"cross\");\nvar barb = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-barbEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 14).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L9,13 L14,7 L9,1 Z\");\n}, \"barb\");\nvar only_one = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneStart\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M9,0 L9,18 M15,0 L15,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneEnd\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 18).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,0 L3,18 M9,0 L9,18\");\n}, \"only_one\");\nvar zero_or_one = /* @__PURE__ */ __name((elem, type, id) => {\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneStart\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 21).attr(\"cy\", 9).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M9,0 L9,18\");\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneEnd\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 30).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 9).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,0 L21,18\");\n}, \"zero_or_one\");\nvar one_or_more = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreStart\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreEnd\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 27).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\");\n}, \"one_or_more\");\nvar zero_or_more = /* @__PURE__ */ __name((elem, type, id) => {\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreStart\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 48).attr(\"cy\", 18).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M0,18 Q18,0 36,18 Q18,36 0,18\");\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreEnd\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 39).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 18).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,18 Q39,0 57,18 Q39,36 21,18\");\n}, \"zero_or_more\");\nvar requirement_arrow = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_arrowEnd\").attr(\"refX\", 20).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").append(\"path\").attr(\n \"d\",\n `M0,0\n L20,10\n M20,10\n L0,20`\n );\n}, \"requirement_arrow\");\nvar requirement_contains = /* @__PURE__ */ __name((elem, type, id) => {\n const containsNode = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_containsStart\").attr(\"refX\", 0).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").append(\"g\");\n containsNode.append(\"circle\").attr(\"cx\", 10).attr(\"cy\", 10).attr(\"r\", 9).attr(\"fill\", \"none\");\n containsNode.append(\"line\").attr(\"x1\", 1).attr(\"x2\", 19).attr(\"y1\", 10).attr(\"y2\", 10);\n containsNode.append(\"line\").attr(\"y1\", 1).attr(\"y2\", 19).attr(\"x1\", 10).attr(\"x2\", 10);\n}, \"requirement_contains\");\nvar markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle,\n cross,\n barb,\n only_one,\n zero_or_one,\n one_or_more,\n zero_or_more,\n requirement_arrow,\n requirement_contains\n};\nvar markers_default = insertMarkers;\n\nexport {\n clear,\n insertEdgeLabel,\n positionEdgeLabel,\n insertEdge,\n markers_default\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"chunk-QXUST7PY-CV4pkmTu.js","names":["getConfig","select","curveBasis","curveLinear","curveCardinal","curveBumpX","curveBumpY","curveCatmullRom","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","line","rough"],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-QXUST7PY.mjs"],"sourcesContent":["import {\n getLineFunctionsWithOffset,\n markerOffsets,\n markerOffsets2\n} from \"./chunk-HN2XXSSU.mjs\";\nimport {\n createLabel_default\n} from \"./chunk-JZLCHNYA.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-CVBHYZKI.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-ATLVNIR6.mjs\";\nimport {\n createText\n} from \"./chunk-JA3XYJ7Z.mjs\";\nimport {\n utils_default\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n evaluate,\n getConfig2 as getConfig\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/rendering-elements/edges.js\nimport {\n curveBasis,\n curveLinear,\n curveCardinal,\n curveBumpX,\n curveBumpY,\n curveCatmullRom,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore,\n line,\n select\n} from \"d3\";\nimport rough from \"roughjs\";\n\n// src/rendering-util/rendering-elements/edgeMarker.ts\nvar addEdgeMarkers = /* @__PURE__ */ __name((svgPath, edge, url, id, diagramType, strokeColor) => {\n if (edge.arrowTypeStart) {\n addEdgeMarker(svgPath, \"start\", edge.arrowTypeStart, url, id, diagramType, strokeColor);\n }\n if (edge.arrowTypeEnd) {\n addEdgeMarker(svgPath, \"end\", edge.arrowTypeEnd, url, id, diagramType, strokeColor);\n }\n}, \"addEdgeMarkers\");\nvar arrowTypesMap = {\n arrow_cross: { type: \"cross\", fill: false },\n arrow_point: { type: \"point\", fill: true },\n arrow_barb: { type: \"barb\", fill: true },\n arrow_circle: { type: \"circle\", fill: false },\n aggregation: { type: \"aggregation\", fill: false },\n extension: { type: \"extension\", fill: false },\n composition: { type: \"composition\", fill: true },\n dependency: { type: \"dependency\", fill: true },\n lollipop: { type: \"lollipop\", fill: false },\n only_one: { type: \"onlyOne\", fill: false },\n zero_or_one: { type: \"zeroOrOne\", fill: false },\n one_or_more: { type: \"oneOrMore\", fill: false },\n zero_or_more: { type: \"zeroOrMore\", fill: false },\n requirement_arrow: { type: \"requirement_arrow\", fill: false },\n requirement_contains: { type: \"requirement_contains\", fill: false }\n};\nvar addEdgeMarker = /* @__PURE__ */ __name((svgPath, position, arrowType, url, id, diagramType, strokeColor) => {\n const arrowTypeInfo = arrowTypesMap[arrowType];\n if (!arrowTypeInfo) {\n log.warn(`Unknown arrow type: ${arrowType}`);\n return;\n }\n const endMarkerType = arrowTypeInfo.type;\n const suffix = position === \"start\" ? \"Start\" : \"End\";\n const originalMarkerId = `${id}_${diagramType}-${endMarkerType}${suffix}`;\n if (strokeColor && strokeColor.trim() !== \"\") {\n const colorId = strokeColor.replace(/[^\\dA-Za-z]/g, \"_\");\n const coloredMarkerId = `${originalMarkerId}_${colorId}`;\n if (!document.getElementById(coloredMarkerId)) {\n const originalMarker = document.getElementById(originalMarkerId);\n if (originalMarker) {\n const coloredMarker = originalMarker.cloneNode(true);\n coloredMarker.id = coloredMarkerId;\n const paths = coloredMarker.querySelectorAll(\"path, circle, line\");\n paths.forEach((path) => {\n path.setAttribute(\"stroke\", strokeColor);\n if (arrowTypeInfo.fill) {\n path.setAttribute(\"fill\", strokeColor);\n }\n });\n originalMarker.parentNode?.appendChild(coloredMarker);\n }\n }\n svgPath.attr(`marker-${position}`, `url(${url}#${coloredMarkerId})`);\n } else {\n svgPath.attr(`marker-${position}`, `url(${url}#${originalMarkerId})`);\n }\n}, \"addEdgeMarker\");\n\n// src/rendering-util/rendering-elements/edges.js\nvar edgeLabels = /* @__PURE__ */ new Map();\nvar terminalLabels = /* @__PURE__ */ new Map();\nvar clear = /* @__PURE__ */ __name(() => {\n edgeLabels.clear();\n terminalLabels.clear();\n}, \"clear\");\nvar getLabelStyles = /* @__PURE__ */ __name((styleArray) => {\n let styles = styleArray ? styleArray.reduce((acc, style) => acc + \";\" + style, \"\") : \"\";\n return styles;\n}, \"getLabelStyles\");\nvar insertEdgeLabel = /* @__PURE__ */ __name(async (elem, edge) => {\n let useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels);\n const { labelStyles } = styles2String(edge);\n edge.labelStyle = labelStyles;\n const labelElement = await createText(elem, edge.label, {\n style: edge.labelStyle,\n useHtmlLabels,\n addSvgBackground: true,\n isNode: false\n });\n log.info(\"abc82\", edge, edge.labelType);\n const edgeLabel = elem.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const label = edgeLabel.insert(\"g\").attr(\"class\", \"label\").attr(\"data-id\", edge.id);\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n if (useHtmlLabels) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n edgeLabels.set(edge.id, edgeLabel);\n edge.width = bbox.width;\n edge.height = bbox.height;\n let fo;\n if (edge.startLabelLeft) {\n const startLabelElement = await createLabel_default(\n edge.startLabelLeft,\n getLabelStyles(edge.labelStyle)\n );\n const startEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n const startLabelElement = await createLabel_default(\n edge.startLabelRight,\n getLabelStyles(edge.labelStyle)\n );\n const startEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n const endLabelElement = await createLabel_default(edge.endLabelLeft, getLabelStyles(edge.labelStyle));\n const endEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n const endLabelElement = await createLabel_default(edge.endLabelRight, getLabelStyles(edge.labelStyle));\n const endEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n return labelElement;\n}, \"insertEdgeLabel\");\nfunction setTerminalWidth(fo, value) {\n if (getConfig().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + \"px\";\n fo.style.height = \"12px\";\n }\n}\n__name(setTerminalWidth, \"setTerminalWidth\");\nvar positionEdgeLabel = /* @__PURE__ */ __name((edge, paths) => {\n log.debug(\"Moving label abc88 \", edge.id, edge.label, edgeLabels.get(edge.id), paths);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n const siteConfig = getConfig();\n const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n if (edge.label) {\n const el = edgeLabels.get(edge.id);\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcLabelPosition(path);\n log.debug(\n \"Moving label \" + edge.label + \" from (\",\n x,\n \",\",\n y,\n \") to (\",\n pos.x,\n \",\",\n pos.y,\n \") abc88\"\n );\n if (paths.updatedPath) {\n x = pos.x;\n y = pos.y;\n }\n }\n el.attr(\"transform\", `translate(${x}, ${y + subGraphTitleTotalMargin / 2})`);\n }\n if (edge.startLabelLeft) {\n const el = terminalLabels.get(edge.id).startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, \"start_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.startLabelRight) {\n const el = terminalLabels.get(edge.id).startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n \"start_right\",\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels.get(edge.id).endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelRight) {\n const el = terminalLabels.get(edge.id).endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_right\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n}, \"positionEdgeLabel\");\nvar outsideNode = /* @__PURE__ */ __name((node, point2) => {\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point2.x - x);\n const dy = Math.abs(point2.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n return dx >= w || dy >= h;\n}, \"outsideNode\");\nvar intersection = /* @__PURE__ */ __name((node, outsidePoint, insidePoint) => {\n log.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(x - insidePoint.x);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = R * q / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q\n };\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n log.debug(`abc89 top/bottom calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n return res;\n } else {\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n r = x - w - outsidePoint.x;\n }\n let q = Q * r / R;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.debug(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n return { x: _x, y: _y };\n }\n}, \"intersection\");\nvar cutPathAtIntersect = /* @__PURE__ */ __name((_points, boundaryNode) => {\n log.warn(\"abc88 cutPathAtIntersect\", _points, boundaryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point2) => {\n log.info(\"abc88 checking point\", point2, boundaryNode);\n if (!outsideNode(boundaryNode, point2) && !isInside) {\n const inter = intersection(boundaryNode, lastPointOutside, point2);\n log.debug(\"abc88 inside\", point2, lastPointOutside, inter);\n log.debug(\"abc88 intersection\", inter, boundaryNode);\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;\n });\n if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn(\"abc88 no intersect\", inter, points);\n }\n isInside = true;\n } else {\n log.warn(\"abc88 outside\", point2, lastPointOutside);\n lastPointOutside = point2;\n if (!isInside) {\n points.push(point2);\n }\n }\n });\n log.debug(\"returning points\", points);\n return points;\n}, \"cutPathAtIntersect\");\nfunction extractCornerPoints(points) {\n const cornerPoints = [];\n const cornerPointPositions = [];\n for (let i = 1; i < points.length - 1; i++) {\n const prev = points[i - 1];\n const curr = points[i];\n const next = points[i + 1];\n if (prev.x === curr.x && curr.y === next.y && Math.abs(curr.x - next.x) > 5 && Math.abs(curr.y - prev.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n } else if (prev.y === curr.y && curr.x === next.x && Math.abs(curr.x - prev.x) > 5 && Math.abs(curr.y - next.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n }\n }\n return { cornerPoints, cornerPointPositions };\n}\n__name(extractCornerPoints, \"extractCornerPoints\");\nvar findAdjacentPoint = /* @__PURE__ */ __name(function(pointA, pointB, distance) {\n const xDiff = pointB.x - pointA.x;\n const yDiff = pointB.y - pointA.y;\n const length = Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n const ratio = distance / length;\n return { x: pointB.x - ratio * xDiff, y: pointB.y - ratio * yDiff };\n}, \"findAdjacentPoint\");\nvar fixCorners = /* @__PURE__ */ __name(function(lineData) {\n const { cornerPointPositions } = extractCornerPoints(lineData);\n const newLineData = [];\n for (let i = 0; i < lineData.length; i++) {\n if (cornerPointPositions.includes(i)) {\n const prevPoint = lineData[i - 1];\n const nextPoint = lineData[i + 1];\n const cornerPoint = lineData[i];\n const newPrevPoint = findAdjacentPoint(prevPoint, cornerPoint, 5);\n const newNextPoint = findAdjacentPoint(nextPoint, cornerPoint, 5);\n const xDiff = newNextPoint.x - newPrevPoint.x;\n const yDiff = newNextPoint.y - newPrevPoint.y;\n newLineData.push(newPrevPoint);\n const a = Math.sqrt(2) * 2;\n let newCornerPoint = { x: cornerPoint.x, y: cornerPoint.y };\n if (Math.abs(nextPoint.x - prevPoint.x) > 10 && Math.abs(nextPoint.y - prevPoint.y) >= 10) {\n log.debug(\n \"Corner point fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n const r = 5;\n if (cornerPoint.x === newPrevPoint.x) {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - r + a : newPrevPoint.x + r - a,\n y: yDiff < 0 ? newPrevPoint.y - a : newPrevPoint.y + a\n };\n } else {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - a : newPrevPoint.x + a,\n y: yDiff < 0 ? newPrevPoint.y - r + a : newPrevPoint.y + r - a\n };\n }\n } else {\n log.debug(\n \"Corner point skipping fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n }\n newLineData.push(newCornerPoint, newNextPoint);\n } else {\n newLineData.push(lineData[i]);\n }\n }\n return newLineData;\n}, \"fixCorners\");\nvar generateDashArray = /* @__PURE__ */ __name((len, oValueS, oValueE) => {\n const middleLength = len - oValueS - oValueE;\n const dashLength = 2;\n const gapLength = 2;\n const dashGapPairLength = dashLength + gapLength;\n const numberOfPairs = Math.floor(middleLength / dashGapPairLength);\n const middlePattern = Array(numberOfPairs).fill(`${dashLength} ${gapLength}`).join(\" \");\n const dashArray = `0 ${oValueS} ${middlePattern} ${oValueE}`;\n return dashArray;\n}, \"generateDashArray\");\nvar insertEdge = /* @__PURE__ */ __name(function(elem, edge, clusterDb, diagramType, startNode, endNode, id, skipIntersect = false) {\n const { handDrawnSeed } = getConfig();\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = startNode;\n var head = endNode;\n const edgeClassStyles = [];\n for (const key in edge.cssCompiledStyles) {\n if (isLabelStyle(key)) {\n continue;\n }\n edgeClassStyles.push(edge.cssCompiledStyles[key]);\n }\n log.debug(\"UIO intersect check\", edge.points, head.x, tail.x);\n if (head.intersect && tail.intersect && !skipIntersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.debug(\n \"Last point UIO\",\n edge.start,\n \"-->\",\n edge.end,\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n const pointsStr = btoa(JSON.stringify(points));\n if (edge.toCluster) {\n log.info(\"to cluster abc88\", clusterDb.get(edge.toCluster));\n points = cutPathAtIntersect(edge.points, clusterDb.get(edge.toCluster).node);\n pointsHasChanged = true;\n }\n if (edge.fromCluster) {\n log.debug(\n \"from cluster abc88\",\n clusterDb.get(edge.fromCluster),\n JSON.stringify(points, null, 2)\n );\n points = cutPathAtIntersect(points.reverse(), clusterDb.get(edge.fromCluster).node).reverse();\n pointsHasChanged = true;\n }\n let lineData = points.filter((p) => !Number.isNaN(p.y));\n lineData = fixCorners(lineData);\n let curve = curveBasis;\n curve = curveLinear;\n switch (edge.curve) {\n case \"linear\":\n curve = curveLinear;\n break;\n case \"basis\":\n curve = curveBasis;\n break;\n case \"cardinal\":\n curve = curveCardinal;\n break;\n case \"bumpX\":\n curve = curveBumpX;\n break;\n case \"bumpY\":\n curve = curveBumpY;\n break;\n case \"catmullRom\":\n curve = curveCatmullRom;\n break;\n case \"monotoneX\":\n curve = curveMonotoneX;\n break;\n case \"monotoneY\":\n curve = curveMonotoneY;\n break;\n case \"natural\":\n curve = curveNatural;\n break;\n case \"step\":\n curve = curveStep;\n break;\n case \"stepAfter\":\n curve = curveStepAfter;\n break;\n case \"stepBefore\":\n curve = curveStepBefore;\n break;\n default:\n curve = curveBasis;\n }\n const { x, y } = getLineFunctionsWithOffset(edge);\n const lineFunction = line().x(x).y(y).curve(curve);\n let strokeClasses;\n switch (edge.thickness) {\n case \"normal\":\n strokeClasses = \"edge-thickness-normal\";\n break;\n case \"thick\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n case \"invisible\":\n strokeClasses = \"edge-thickness-invisible\";\n break;\n default:\n strokeClasses = \"edge-thickness-normal\";\n }\n switch (edge.pattern) {\n case \"solid\":\n strokeClasses += \" edge-pattern-solid\";\n break;\n case \"dotted\":\n strokeClasses += \" edge-pattern-dotted\";\n break;\n case \"dashed\":\n strokeClasses += \" edge-pattern-dashed\";\n break;\n default:\n strokeClasses += \" edge-pattern-solid\";\n }\n let svgPath;\n let linePath = edge.curve === \"rounded\" ? generateRoundedPath(applyMarkerOffsetsToPoints(lineData, edge), 5) : lineFunction(lineData);\n const edgeStyles = Array.isArray(edge.style) ? edge.style : [edge.style];\n let strokeColor = edgeStyles.find((style) => style?.startsWith(\"stroke:\"));\n let animatedEdge = false;\n if (edge.look === \"handDrawn\") {\n const rc = rough.svg(elem);\n Object.assign([], lineData);\n const svgPathNode = rc.path(linePath, {\n roughness: 0.3,\n seed: handDrawnSeed\n });\n strokeClasses += \" transition\";\n svgPath = select(svgPathNode).select(\"path\").attr(\"id\", edge.id).attr(\"class\", \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\")).attr(\"style\", edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n let d = svgPath.attr(\"d\");\n svgPath.attr(\"d\", d);\n elem.node().appendChild(svgPath.node());\n } else {\n const stylesFromClasses = edgeClassStyles.join(\";\");\n const styles = edgeStyles ? edgeStyles.reduce((acc, style) => acc + style + \";\", \"\") : \"\";\n let animationClass = \"\";\n if (edge.animate) {\n animationClass = \" edge-animation-fast\";\n }\n if (edge.animation) {\n animationClass = \" edge-animation-\" + edge.animation;\n }\n const pathStyle = (stylesFromClasses ? stylesFromClasses + \";\" + styles + \";\" : styles) + \";\" + (edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n svgPath = elem.append(\"path\").attr(\"d\", linePath).attr(\"id\", edge.id).attr(\n \"class\",\n \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\") + (animationClass ?? \"\")\n ).attr(\"style\", pathStyle);\n strokeColor = pathStyle.match(/stroke:([^;]+)/)?.[1];\n animatedEdge = edge.animate === true || !!edge.animation || stylesFromClasses.includes(\"animation\");\n const pathNode = svgPath.node();\n const len = typeof pathNode.getTotalLength === \"function\" ? pathNode.getTotalLength() : 0;\n const oValueS = markerOffsets2[edge.arrowTypeStart] || 0;\n const oValueE = markerOffsets2[edge.arrowTypeEnd] || 0;\n if (edge.look === \"neo\" && !animatedEdge) {\n const dashArray = edge.pattern === \"dotted\" || edge.pattern === \"dashed\" ? generateDashArray(len, oValueS, oValueE) : `0 ${oValueS} ${len - oValueS - oValueE} ${oValueE}`;\n const mOffset = `stroke-dasharray: ${dashArray}; stroke-dashoffset: 0;`;\n svgPath.attr(\"style\", mOffset + svgPath.attr(\"style\"));\n }\n }\n svgPath.attr(\"data-edge\", true);\n svgPath.attr(\"data-et\", \"edge\");\n svgPath.attr(\"data-id\", edge.id);\n svgPath.attr(\"data-points\", pointsStr);\n if (edge.showPoints) {\n lineData.forEach((point3) => {\n elem.append(\"circle\").style(\"stroke\", \"red\").style(\"fill\", \"red\").attr(\"r\", 1).attr(\"cx\", point3.x).attr(\"cy\", point3.y);\n });\n }\n let url = \"\";\n if (getConfig().flowchart.arrowMarkerAbsolute || getConfig().state.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\").replace(/\\)/g, \"\\\\)\");\n }\n log.info(\"arrowTypeStart\", edge.arrowTypeStart);\n log.info(\"arrowTypeEnd\", edge.arrowTypeEnd);\n addEdgeMarkers(svgPath, edge, url, id, diagramType, strokeColor);\n const midIndex = Math.floor(points.length / 2);\n const point2 = points[midIndex];\n if (!utils_default.isLabelCoordinateInPath(point2, svgPath.attr(\"d\"))) {\n pointsHasChanged = true;\n }\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n}, \"insertEdge\");\nfunction generateRoundedPath(points, radius) {\n if (points.length < 2) {\n return \"\";\n }\n let path = \"\";\n const size = points.length;\n const epsilon = 1e-5;\n for (let i = 0; i < size; i++) {\n const currPoint = points[i];\n const prevPoint = points[i - 1];\n const nextPoint = points[i + 1];\n if (i === 0) {\n path += `M${currPoint.x},${currPoint.y}`;\n } else if (i === size - 1) {\n path += `L${currPoint.x},${currPoint.y}`;\n } else {\n const dx1 = currPoint.x - prevPoint.x;\n const dy1 = currPoint.y - prevPoint.y;\n const dx2 = nextPoint.x - currPoint.x;\n const dy2 = nextPoint.y - currPoint.y;\n const len1 = Math.hypot(dx1, dy1);\n const len2 = Math.hypot(dx2, dy2);\n if (len1 < epsilon || len2 < epsilon) {\n path += `L${currPoint.x},${currPoint.y}`;\n continue;\n }\n const nx1 = dx1 / len1;\n const ny1 = dy1 / len1;\n const nx2 = dx2 / len2;\n const ny2 = dy2 / len2;\n const dot = nx1 * nx2 + ny1 * ny2;\n const clampedDot = Math.max(-1, Math.min(1, dot));\n const angle = Math.acos(clampedDot);\n if (angle < epsilon || Math.abs(Math.PI - angle) < epsilon) {\n path += `L${currPoint.x},${currPoint.y}`;\n continue;\n }\n const cutLen = Math.min(radius / Math.sin(angle / 2), len1 / 2, len2 / 2);\n const startX = currPoint.x - nx1 * cutLen;\n const startY = currPoint.y - ny1 * cutLen;\n const endX = currPoint.x + nx2 * cutLen;\n const endY = currPoint.y + ny2 * cutLen;\n path += `L${startX},${startY}`;\n path += `Q${currPoint.x},${currPoint.y} ${endX},${endY}`;\n }\n }\n return path;\n}\n__name(generateRoundedPath, \"generateRoundedPath\");\nfunction calculateDeltaAndAngle(point1, point2) {\n if (!point1 || !point2) {\n return { angle: 0, deltaX: 0, deltaY: 0 };\n }\n const deltaX = point2.x - point1.x;\n const deltaY = point2.y - point1.y;\n const angle = Math.atan2(deltaY, deltaX);\n return { angle, deltaX, deltaY };\n}\n__name(calculateDeltaAndAngle, \"calculateDeltaAndAngle\");\nfunction applyMarkerOffsetsToPoints(points, edge) {\n const newPoints = points.map((point2) => ({ ...point2 }));\n if (points.length >= 2 && markerOffsets[edge.arrowTypeStart]) {\n const offsetValue = markerOffsets[edge.arrowTypeStart];\n const point1 = points[0];\n const point2 = points[1];\n const { angle } = calculateDeltaAndAngle(point1, point2);\n const offsetX = offsetValue * Math.cos(angle);\n const offsetY = offsetValue * Math.sin(angle);\n newPoints[0].x = point1.x + offsetX;\n newPoints[0].y = point1.y + offsetY;\n }\n const n = points.length;\n if (n >= 2 && markerOffsets[edge.arrowTypeEnd]) {\n const offsetValue = markerOffsets[edge.arrowTypeEnd];\n const point1 = points[n - 1];\n const point2 = points[n - 2];\n const { angle } = calculateDeltaAndAngle(point2, point1);\n const offsetX = offsetValue * Math.cos(angle);\n const offsetY = offsetValue * Math.sin(angle);\n newPoints[n - 1].x = point1.x - offsetX;\n newPoints[n - 1].y = point1.y - offsetY;\n }\n return newPoints;\n}\n__name(applyMarkerOffsetsToPoints, \"applyMarkerOffsetsToPoints\");\n\n// src/rendering-util/rendering-elements/markers.js\nvar insertMarkers = /* @__PURE__ */ __name((elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n}, \"insertMarkers\");\nvar extension = /* @__PURE__ */ __name((elem, type, id) => {\n log.trace(\"Making markers for \", id);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionStart\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,7 L18,13 V 1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionEnd\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 V 13 L18,7 Z\");\n}, \"extension\");\nvar composition = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionStart\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionEnd\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"composition\");\nvar aggregation = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationStart\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationEnd\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"aggregation\");\nvar dependency = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyStart\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 6).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 5,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyEnd\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n}, \"dependency\");\nvar lollipop = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopStart\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopEnd\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n}, \"lollipop\");\nvar point = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 4.5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 5 L 10 10 L 10 0 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n}, \"point\");\nvar circle = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 11).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", -1).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n}, \"circle\");\nvar cross = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossEnd\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", 12).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossStart\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", -1).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n}, \"cross\");\nvar barb = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-barbEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 14).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L9,13 L14,7 L9,1 Z\");\n}, \"barb\");\nvar only_one = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneStart\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M9,0 L9,18 M15,0 L15,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneEnd\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 18).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,0 L3,18 M9,0 L9,18\");\n}, \"only_one\");\nvar zero_or_one = /* @__PURE__ */ __name((elem, type, id) => {\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneStart\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 21).attr(\"cy\", 9).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M9,0 L9,18\");\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneEnd\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 30).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 9).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,0 L21,18\");\n}, \"zero_or_one\");\nvar one_or_more = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreStart\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreEnd\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 27).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\");\n}, \"one_or_more\");\nvar zero_or_more = /* @__PURE__ */ __name((elem, type, id) => {\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreStart\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 48).attr(\"cy\", 18).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M0,18 Q18,0 36,18 Q18,36 0,18\");\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreEnd\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 39).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 18).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,18 Q39,0 57,18 Q39,36 21,18\");\n}, \"zero_or_more\");\nvar requirement_arrow = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_arrowEnd\").attr(\"refX\", 20).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").append(\"path\").attr(\n \"d\",\n `M0,0\n L20,10\n M20,10\n L0,20`\n );\n}, \"requirement_arrow\");\nvar requirement_contains = /* @__PURE__ */ __name((elem, type, id) => {\n const containsNode = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_containsStart\").attr(\"refX\", 0).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").append(\"g\");\n containsNode.append(\"circle\").attr(\"cx\", 10).attr(\"cy\", 10).attr(\"r\", 9).attr(\"fill\", \"none\");\n containsNode.append(\"line\").attr(\"x1\", 1).attr(\"x2\", 19).attr(\"y1\", 10).attr(\"y2\", 10);\n containsNode.append(\"line\").attr(\"y1\", 1).attr(\"y2\", 19).attr(\"x1\", 10).attr(\"x2\", 10);\n}, \"requirement_contains\");\nvar markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle,\n cross,\n barb,\n only_one,\n zero_or_one,\n one_or_more,\n zero_or_more,\n requirement_arrow,\n requirement_contains\n};\nvar markers_default = insertMarkers;\n\nexport {\n clear,\n insertEdgeLabel,\n positionEdgeLabel,\n insertEdge,\n markers_default\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}