@inkeep/open-knowledge 0.38.0-beta.3 → 0.38.0-beta.4

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 (124) hide show
  1. package/dist/THIRD_PARTY_NOTICES.md +6 -7
  2. package/dist/{acp-harness-probe-Ct8pfFMY.mjs → acp-harness-probe-HXih6ZdV.mjs} +2 -2
  3. package/dist/assets/skills/discovery/SKILL.md +1 -1
  4. package/dist/assets/skills/project/SKILL.md +1 -1
  5. package/dist/assets/skills/write-skill/SKILL.md +1 -1
  6. package/dist/cli.mjs +6 -6
  7. package/dist/constants-DwK-tP-f.mjs +2 -0
  8. package/dist/index.mjs +1 -1
  9. package/dist/init-B2VDisuq.mjs +1 -0
  10. package/dist/{init-D9F7E2Zo.mjs → init-e_IGVKiY.mjs} +3 -3
  11. package/dist/{launch-json-removal-CPZQ5r30.mjs → launch-json-removal-D9iLWqvN.mjs} +2 -2
  12. package/dist/{loader-WHvowLTe.mjs → loader-B9kWbDug.mjs} +2 -2
  13. package/dist/loader-CYLxd0QN.mjs +1 -0
  14. package/dist/{preview-Iw8HVKKO.mjs → preview-BS1icqKH.mjs} +2 -2
  15. package/dist/preview-BxVh4XVd.mjs +1 -0
  16. package/dist/public/assets/{ActivityModeContent-CQTRie_S.js → ActivityModeContent-BQeZuILy.js} +1 -1
  17. package/dist/public/assets/{AgentDiffPane-ZsuLVO9W.js → AgentDiffPane-CiFNU0h-.js} +1 -1
  18. package/dist/public/assets/{CodeMirrorPropInput-DUwQlljh.js → CodeMirrorPropInput-BDpilu8K.js} +3 -3
  19. package/dist/public/assets/{DocumentContext-CPZffvoA.js → DocumentContext-C4eewS75.js} +1 -1
  20. package/dist/public/assets/{EnableSyncConfirmDialog-BfZ_iVD2.js → EnableSyncConfirmDialog-CLtmD52b.js} +1 -1
  21. package/dist/public/assets/{FeedbackForm-BUn96JmL.js → FeedbackForm-DH4DaXLD.js} +1 -1
  22. package/dist/public/assets/{ManagedArtifactProperties-CHmkRShb.js → ManagedArtifactProperties-CzFEbg0T.js} +1 -1
  23. package/dist/public/assets/{MermaidDocEditor-cedDjA-A.js → MermaidDocEditor-BgRVEFx4.js} +1 -1
  24. package/dist/public/assets/{PropertyPanel-CpcpWkfS.js → PropertyPanel-BwnXcEQL.js} +1 -1
  25. package/dist/public/assets/{SettingsDialogBody-B6_psJil.js → SettingsDialogBody-0nrbk-EZ.js} +1 -1
  26. package/dist/public/assets/{ShareReceiveMissDialog-ClkBICGx.js → ShareReceiveMissDialog-CHR2clGS.js} +1 -1
  27. package/dist/public/assets/{SourceEditor-Bp45kdTW.js → SourceEditor-DYIbaxIY.js} +1 -1
  28. package/dist/public/assets/{TerminalSessionsHost-CNebjNFj.js → TerminalSessionsHost-BjojawIi.js} +2 -2
  29. package/dist/public/assets/{TerminalWindowApp-B6bT25Jw.js → TerminalWindowApp-jhlpCVAO.js} +1 -1
  30. package/dist/public/assets/{ThreadView-CmIHLGuV.js → ThreadView-myy5nXD-.js} +1 -1
  31. package/dist/public/assets/{TimelineDiffPane-DffKOwf1.js → TimelineDiffPane-Zfm2PLUq.js} +1 -1
  32. package/dist/public/assets/{abnfDiagram-VRR7QNED-VSTZcs2U.js → abnfDiagram-VRR7QNED-D9F9DXsr.js} +1 -1
  33. package/dist/public/assets/architecture-TIHT7OUA-B1GVwxkr.js +1 -0
  34. package/dist/public/assets/{architectureDiagram-ZJ3FMSHR-CdM-QQxh.js → architectureDiagram-ZJ3FMSHR-DfsVDv0h.js} +1 -1
  35. package/dist/public/assets/{auth-state-cache-CfU3gJ3i.js → auth-state-cache-BUoG-O4E.js} +1 -1
  36. package/dist/public/assets/{chunk-5FCAYU7R-NiUcHUPk.js → chunk-5FCAYU7R-BZbSx9vA.js} +1 -1
  37. package/dist/public/assets/{chunk-5HE753X5-Dg-RP8eS.js → chunk-5HE753X5-B2Flc7i4.js} +1 -1
  38. package/dist/public/assets/{chunk-5JV3BV7I-B4O-mi81.js → chunk-5JV3BV7I-B6P7lOib.js} +1 -1
  39. package/dist/public/assets/{chunk-5TONJI2A-0kIjpsBw.js → chunk-5TONJI2A-Bx2IxKM5.js} +1 -1
  40. package/dist/public/assets/{chunk-BIQX33UG-D48fi9B_.js → chunk-BIQX33UG-BK09YW6f.js} +1 -1
  41. package/dist/public/assets/{chunk-CQNSW5MT-v0U-WvYg.js → chunk-CQNSW5MT-BAtlNSBX.js} +1 -1
  42. package/dist/public/assets/{chunk-CYSBUYHQ-DxqLAiLc.js → chunk-CYSBUYHQ-D8hsDORv.js} +1 -1
  43. package/dist/public/assets/{chunk-EMLP6XTP-CJ9U9-wH.js → chunk-EMLP6XTP-ChQSYJxh.js} +1 -1
  44. package/dist/public/assets/{chunk-JG7HCLWE-C-1xmmk6.js → chunk-JG7HCLWE-Biog_J3i.js} +1 -1
  45. package/dist/public/assets/{chunk-MOZMSUNE-C1Vt9ku6.js → chunk-MOZMSUNE-CPb1eEls.js} +1 -1
  46. package/dist/public/assets/{chunk-OSBZ3O6U-C6W744Of.js → chunk-OSBZ3O6U-DLOl9lpV.js} +1 -1
  47. package/dist/public/assets/{chunk-QBLGF6JB-gEqmaH-L.js → chunk-QBLGF6JB-CXHeFNVR.js} +1 -1
  48. package/dist/public/assets/{chunk-R7FJI6CG-BDAk393G.js → chunk-R7FJI6CG-C16CHt3a.js} +1 -1
  49. package/dist/public/assets/{chunk-U6XO7XAA-BrFJStxD.js → chunk-U6XO7XAA-DbjPtJON.js} +1 -1
  50. package/dist/public/assets/{chunk-YOTPTUD7-D0J4uIcv.js → chunk-YOTPTUD7-CI44npHy.js} +1 -1
  51. package/dist/public/assets/{client-version-BBhtdyiC.js → client-version-nevRUfmx.js} +1 -1
  52. package/dist/public/assets/{config-provider-DstRVgzH.js → config-provider-CD9uoQQz.js} +1 -1
  53. package/dist/public/assets/cynefin-VYW2F7L2-IoPsg8uT.js +1 -0
  54. package/dist/public/assets/{cynefinDiagram-TSTJHNR4-BSgy8cxo.js → cynefinDiagram-TSTJHNR4-BerNcsRY.js} +1 -1
  55. package/dist/public/assets/{diagram-FQU43EPY-CMvIHgbq.js → diagram-FQU43EPY-Bn3pI3fo.js} +1 -1
  56. package/dist/public/assets/{diagram-G47NLZAW-fKFf9jF_.js → diagram-G47NLZAW-DlmHXzE8.js} +1 -1
  57. package/dist/public/assets/{diagram-NH7WQ7WH-B7-_M2pB.js → diagram-NH7WQ7WH-DSU5C3aY.js} +1 -1
  58. package/dist/public/assets/{diagram-OA4YK3LP-DZtbNsi6.js → diagram-OA4YK3LP-BxczHUUr.js} +1 -1
  59. package/dist/public/assets/{diagram-WEI45ONY-CCuX-lrB.js → diagram-WEI45ONY-9RfHZ21T.js} +1 -1
  60. package/dist/public/assets/{dist-DKsN2Ojq.js → dist-BigQ5-K5.js} +1 -1
  61. package/dist/public/assets/dist-DfKVxirz.js +124 -0
  62. package/dist/public/assets/{ebnfDiagram-CCIWWBDH-lTULSp5K.js → ebnfDiagram-CCIWWBDH-D2xzvzqw.js} +1 -1
  63. package/dist/public/assets/eventmodeling-45OFAUF4-Miu5EHpe.js +1 -0
  64. package/dist/public/assets/gitGraph-TEB2WS4Q-OmjugmYN.js +1 -0
  65. package/dist/public/assets/{gitGraphDiagram-IHSO6WYX-DST3agGX.js → gitGraphDiagram-IHSO6WYX-LRtYXzVh.js} +1 -1
  66. package/dist/public/assets/{index-XkYGz2OG.js → index-DZjGzqUr.js} +7 -7
  67. package/dist/public/assets/info-DKCQHKI2-BNI5cXhn.js +1 -0
  68. package/dist/public/assets/{infoDiagram-FWYZ7A6U-Cj1rH5Ql.js → infoDiagram-FWYZ7A6U-CoQbECuU.js} +1 -1
  69. package/dist/public/assets/{mermaid-parser.core-BO-Jr815.js → mermaid-parser.core-3Xu6H-xr.js} +2 -2
  70. package/dist/public/assets/{mermaid.core-BQ2yyMHt.js → mermaid.core-BgfUsmdk.js} +3 -3
  71. package/dist/public/assets/packet-7NZHBO7P-B_5BB2Lm.js +1 -0
  72. package/dist/public/assets/{pegDiagram-2B236MQR-VQ3qdS5Z.js → pegDiagram-2B236MQR-BWoigFVh.js} +1 -1
  73. package/dist/public/assets/{pending-receive-nav-store-CVDTioM4.js → pending-receive-nav-store-Dqowl8LB.js} +1 -1
  74. package/dist/public/assets/pie-RZYD4A2V-DN_XCApP.js +1 -0
  75. package/dist/public/assets/{pieDiagram-ENE6RG2P-B5fNaqzS.js → pieDiagram-ENE6RG2P-CkC6m5hO.js} +1 -1
  76. package/dist/public/assets/radar-I7S5WNFK-KdS1Y0nk.js +1 -0
  77. package/dist/public/assets/railroad-3IZDKUUU-CargXMo2.js +1 -0
  78. package/dist/public/assets/railroad-abnf-AHOZXSZD-rKz-719h.js +1 -0
  79. package/dist/public/assets/railroad-ebnf-EBAXGLYW-BwxcIuUm.js +1 -0
  80. package/dist/public/assets/railroad-peg-LSFZ7HO6-D-qfZOX5.js +1 -0
  81. package/dist/public/assets/{railroadDiagram-RFXS5EU6-hi-XN2Rm.js → railroadDiagram-RFXS5EU6-DFdEG7eg.js} +1 -1
  82. package/dist/public/assets/{selection-context-BpEA0WhV.js → selection-context-DIZSdbRw.js} +1 -1
  83. package/dist/public/assets/{src-B-pNk3y3.js → src-7sFVeKSR.js} +1 -1
  84. package/dist/public/assets/{telemetry-impl-BgQUPJ0t.js → telemetry-impl-DEJSJ5rS.js} +1 -1
  85. package/dist/public/assets/{telemetry-startup-DcvNN2rn.js → telemetry-startup-Bvr_iW-w.js} +1 -1
  86. package/dist/public/assets/treeView-QDETBFTQ-ocdjjjzR.js +1 -0
  87. package/dist/public/assets/treemap-6X3UGDF4-PQZ2TLFo.js +1 -0
  88. package/dist/public/assets/{typing-burst-detector-CI_4wux0.js → typing-burst-detector-CmSynwPq.js} +1 -1
  89. package/dist/public/assets/{use-activity-panel-DoU5dDI7.js → use-activity-panel-BsQxJQD5.js} +1 -1
  90. package/dist/public/assets/{use-terminal-enabled-B1QnDzPO.js → use-terminal-enabled-jZPkRHXb.js} +1 -1
  91. package/dist/public/assets/{use-timeline-entry-diff-C_hkFzJg.js → use-timeline-entry-diff-DbRWhy_0.js} +1 -1
  92. package/dist/public/assets/wardley-OPB4EBWU-CAyNEwcQ.js +1 -0
  93. package/dist/public/assets/{wardleyDiagram-EHGQE667-ZOtSnSGU.js → wardleyDiagram-EHGQE667-C30zq5TO.js} +1 -1
  94. package/dist/public/index.html +12 -12
  95. package/dist/{repair-launch-json-iB5-JYiw.mjs → repair-launch-json-BfRG-Gd2.mjs} +2 -2
  96. package/dist/{repair-mcp-configs-DppWpRT9.mjs → repair-mcp-configs-D2VQZ6vd.mjs} +2 -2
  97. package/dist/{src-2Aghnvxr.mjs → src-Cx3T59sz.mjs} +2 -2
  98. package/dist/start-D1wBWbC-.mjs +1 -0
  99. package/dist/{start-Bz_PKQaA.mjs → start-DelzatCP.mjs} +2 -2
  100. package/package.json +4 -4
  101. package/dist/constants-BUmipB9M.mjs +0 -2
  102. package/dist/init-UPHhEd-x.mjs +0 -1
  103. package/dist/loader-ZltopDcF.mjs +0 -1
  104. package/dist/preview-D_nS2z_R.mjs +0 -1
  105. package/dist/public/assets/architecture-TIHT7OUA-ei5hsjAY.js +0 -1
  106. package/dist/public/assets/cynefin-VYW2F7L2-CSnwYRoV.js +0 -1
  107. package/dist/public/assets/dist-BS_gC2L8.js +0 -124
  108. package/dist/public/assets/eventmodeling-45OFAUF4-DaV8ZCTn.js +0 -1
  109. package/dist/public/assets/gitGraph-TEB2WS4Q-P9_tpoZt.js +0 -1
  110. package/dist/public/assets/info-DKCQHKI2-DJJ8FtaQ.js +0 -1
  111. package/dist/public/assets/packet-7NZHBO7P-DOwsFu9x.js +0 -1
  112. package/dist/public/assets/pie-RZYD4A2V-DEV7c1Ne.js +0 -1
  113. package/dist/public/assets/radar-I7S5WNFK-B607lrnK.js +0 -1
  114. package/dist/public/assets/railroad-3IZDKUUU-CRgAnFFT.js +0 -1
  115. package/dist/public/assets/railroad-abnf-AHOZXSZD-DulrY9_U.js +0 -1
  116. package/dist/public/assets/railroad-ebnf-EBAXGLYW-D8e0kEYb.js +0 -1
  117. package/dist/public/assets/railroad-peg-LSFZ7HO6-C2iIAAkK.js +0 -1
  118. package/dist/public/assets/treeView-QDETBFTQ-DIWn4fzK.js +0 -1
  119. package/dist/public/assets/treemap-6X3UGDF4-WPqEPk4A.js +0 -1
  120. package/dist/public/assets/wardley-OPB4EBWU-CFdyGX48.js +0 -1
  121. package/dist/start-CCUiCESR.mjs +0 -1
  122. /package/dist/public/assets/{chunk-KEIR6QF5-CFEoHvxJ.js → chunk-KEIR6QF5-dYt3HMDt.js} +0 -0
  123. /package/dist/public/assets/{dist-BneDw0Gk.js → dist-Y35lJRjm.js} +0 -0
  124. /package/dist/public/assets/{panzoom.es-BH0upAOZ.js → panzoom.es-DSQCRJbU.js} +0 -0
@@ -0,0 +1,124 @@
1
+ import{MESSAGE_OPS as e,PARTICIPANT_TYPES as t}from"./dist-Y35lJRjm.js";function n(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function r(e,t){let r=new Map,i=new Map,a=new Map,o=[],s=[...e.querySelectorAll(`g.node`)],c=new Set;for(let e of t.nodes){let t=RegExp(`[-_]${n(e.id)}[-_]\\d+$`),i=s.find(e=>!c.has(e)&&t.test(e.id));i&&(r.set(e.entityId,i),c.add(i),i.setAttribute(`data-mw-entity`,e.entityId))}let l=t.nodes.filter(e=>!r.has(e.entityId)),u=s.filter(e=>!c.has(e));if(l.length===u.length)l.forEach((e,t)=>{r.set(e.entityId,u[t]),u[t].setAttribute(`data-mw-entity`,e.entityId)});else for(let e of l)o.push(e.entityId);let d=[...e.querySelectorAll(`.edgePaths > path, path.flowchart-link`)],f=new Set;for(let e of t.edges){let t=RegExp(`^L[-_]${n(e.source)}[-_]${n(e.target)}[-_]\\d+`),r=d.find(e=>!f.has(e)&&t.test(e.id));r&&(i.set(e.entityId,r),f.add(r),r.setAttribute(`data-mw-entity`,e.entityId))}let p=t.edges.filter(e=>!i.has(e.entityId)),m=d.filter(e=>!f.has(e));if(p.length===m.length)p.forEach((e,t)=>{i.set(e.entityId,m[t]),m[t].setAttribute(`data-mw-entity`,e.entityId)});else for(let e of p)o.push(e.entityId);for(let n of t.subgraphs){let t=[...e.querySelectorAll(`g.cluster`)].find(e=>e.id===n.id||e.id.includes(n.id)||e.querySelector(`.cluster-label`)?.textContent?.trim()===(n.title??n.id));t&&!t.hasAttribute(`data-mw-entity`)&&(t.setAttribute(`data-mw-entity`,n.entityId),r.set(n.entityId,t))}let h=[...e.querySelectorAll(`.edgeLabels > .edgeLabel`)];if(h.length===t.edges.length)t.edges.forEach((e,t)=>{a.set(e.entityId,h[t]),h[t].setAttribute(`data-mw-entity`,e.entityId)});else{let e=t.edges.filter(e=>e.label!==null&&e.label!==``);h.length===e.length&&e.forEach((e,t)=>{a.set(e.entityId,h[t]),h[t].setAttribute(`data-mw-entity`,e.entityId)})}return{nodes:r,edges:i,edgeLabels:a,failed:o}}function i(e,t){let r=new Map,i=new Map,a=new Map,o=[],s=[...e.querySelectorAll(`g.node`)].filter(e=>!/root_start|root_end/.test(e.id)),c=new Set;for(let e of t.states){let t=RegExp(`[-_]${n(e.id)}[-_]\\d+$`),i=s.find(e=>!c.has(e)&&t.test(e.id));i&&(r.set(e.entityId,i),c.add(i),i.setAttribute(`data-mw-entity`,e.entityId))}let l=t.states.filter(e=>!r.has(e.entityId)),u=s.filter(e=>!c.has(e));if(l.length===u.length)l.forEach((e,t)=>{r.set(e.entityId,u[t]),u[t].setAttribute(`data-mw-entity`,e.entityId)});else for(let e of l)o.push(e.entityId);for(let n of t.states.filter(e=>e.isComposite)){let t=[...e.querySelectorAll(`g.cluster`)].find(e=>e.id.includes(n.id)||e.querySelector(`.cluster-label, .label-container + *`)?.textContent?.trim()===n.label);t&&!t.hasAttribute(`data-mw-entity`)&&(t.setAttribute(`data-mw-entity`,n.entityId),r.set(n.entityId,t))}let d=[...e.querySelectorAll(`.edgePaths > path, path.transition`)];if(d.length===t.transitions.length)t.transitions.forEach((e,t)=>{i.set(e.entityId,d[t]),d[t].setAttribute(`data-mw-entity`,e.entityId)});else for(let e of t.transitions)o.push(e.entityId);let f=[...e.querySelectorAll(`.edgeLabels > .edgeLabel`)];if(f.length===t.transitions.length)t.transitions.forEach((e,t)=>{a.set(e.entityId,f[t]),f[t].setAttribute(`data-mw-entity`,e.entityId)});else{let e=t.transitions.filter(e=>e.label);f.length===e.length&&e.forEach((e,t)=>{a.set(e.entityId,f[t]),f[t].setAttribute(`data-mw-entity`,e.entityId)})}return{nodes:r,edges:i,edgeLabels:a,failed:o}}function a(e,t){let r=new Map,i=new Map,a=new Map,o=[],s=[...e.querySelectorAll(`g.node`)],c=new Set;for(let e of t.classes){let t=RegExp(`[-_]${n(e.id)}[-_]\\d+$`),i=s.find(e=>!c.has(e)&&t.test(e.id));i&&(r.set(e.entityId,i),c.add(i),i.setAttribute(`data-mw-entity`,e.entityId))}let l=t.classes.filter(e=>!r.has(e.entityId)),u=s.filter(e=>!c.has(e));if(l.length===u.length)l.forEach((e,t)=>{r.set(e.entityId,u[t]),u[t].setAttribute(`data-mw-entity`,e.entityId)});else for(let e of l)o.push(e.entityId);for(let e of t.classes){let t=r.get(e.entityId);if(!t)continue;let n=[...t.querySelectorAll(`.nodeLabel`)],i=e.members.filter(e=>!e.text.includes(`(`)),a=e.members.filter(e=>e.text.includes(`(`));[...i,...a].forEach((t,r)=>{let i=n[r+1];i&&(i.setAttribute(`data-mw-member-class`,e.id),i.setAttribute(`data-mw-member-line`,String(t.lineIndex)))})}let d=[...e.querySelectorAll(`.edgePaths > path, path.relation`)];if(d.length===t.relations.length)t.relations.forEach((e,t)=>{i.set(e.entityId,d[t]),d[t].setAttribute(`data-mw-entity`,e.entityId)});else for(let e of t.relations)o.push(e.entityId);let f=[...e.querySelectorAll(`.edgeLabels > .edgeLabel`)];return f.length===t.relations.length&&t.relations.forEach((e,t)=>{a.set(e.entityId,f[t]),f[t].setAttribute(`data-mw-entity`,e.entityId)}),{nodes:r,edges:i,edgeLabels:a,failed:o}}function o(e,t){let r=new Map,i=new Map,a=new Map,o=[],s=[...e.querySelectorAll(`g[id*="entity"], g.node`)],c=new Set;for(let e of t.entities){let t=RegExp(`entity-${n(e.id)}-|[-_]${n(e.id)}[-_]\\d+$`),i=s.find(e=>!c.has(e)&&t.test(e.id));i&&(r.set(e.entityId,i),c.add(i),i.setAttribute(`data-mw-entity`,e.entityId))}let l=t.entities.filter(e=>!r.has(e.entityId)),u=s.filter(e=>!c.has(e));if(l.length&&l.length===u.length)l.forEach((e,t)=>{r.set(e.entityId,u[t]),u[t].setAttribute(`data-mw-entity`,e.entityId)});else for(let e of l)o.push(e.entityId);for(let e of t.entities){let t=r.get(e.entityId);if(!t||!e.attributes.length)continue;let n=[...t.querySelectorAll(`.nodeLabel`)];e.attributes.forEach((t,r)=>{for(let i=0;i<4;i++){let a=n[1+r*4+i];a&&(a.setAttribute(`data-mw-attr-entity`,e.id),a.setAttribute(`data-mw-attr-line`,String(t.lineIndex)))}})}let d=[...e.querySelectorAll(`path.relationshipLine, .er.relationshipLine, .edgePaths > path`)];if(d.length===t.relations.length)t.relations.forEach((e,t)=>{i.set(e.entityId,d[t]),d[t].setAttribute(`data-mw-entity`,e.entityId)});else for(let e of t.relations)o.push(e.entityId);let f=[...e.querySelectorAll(`.relationshipLabel, .er.relationshipLabel, .edgeLabels > .edgeLabel`)];return f.length===t.relations.length&&t.relations.forEach((e,t)=>{a.set(e.entityId,f[t]),f[t].setAttribute(`data-mw-entity`,e.entityId)}),{nodes:r,edges:i,edgeLabels:a,failed:o}}function s(e,t){let n=new Map,r=new Map,i=new Map,a=[],o=[...e.querySelectorAll(`.pieCircle`)];[...e.querySelectorAll(`g.legend`)].forEach((e,r)=>{let i=e.querySelector(`text`)?.textContent?.trim()??``,a=t.slices.find(e=>e.label===i||i.startsWith(`${e.label} `));if(!a)return;let s=o[r];s&&!n.has(a.entityId)&&(n.set(a.entityId,s),s.setAttribute(`data-mw-entity`,a.entityId),e.setAttribute(`data-mw-entity`,a.entityId))});for(let e of t.slices)n.has(e.entityId)||a.push(e.entityId);return{nodes:n,edges:r,edgeLabels:i,failed:a}}function c(e,t){let n=new Map,r=new Map,i=new Map,a=[],o=[...e.querySelectorAll(`rect.task`)],s=[...e.querySelectorAll(`text.taskText`)];if(o.length===t.tasks.length)t.tasks.forEach((e,t)=>{n.set(e.entityId,o[t]),o[t].setAttribute(`data-mw-entity`,e.entityId),s[t]?.setAttribute(`data-mw-entity`,e.entityId)});else for(let e of t.tasks)a.push(e.entityId);return{nodes:n,edges:r,edgeLabels:i,failed:a}}function l(e,t){let n=new Map,r=new Map,i=new Map,a=[],o=[...e.querySelectorAll(`text, span, p, div`)].filter(e=>e.children.length===0||e.tagName===`text`),s=new Set;for(let r of t.items){if(!r.matchText){a.push(r.entityId);continue}let t=r.matchText.trim(),i=o.find(e=>!s.has(e)&&e.textContent?.trim()===t)??o.find(e=>!s.has(e)&&(e.textContent?.trim().startsWith(t)??!1));if(!i){a.push(r.entityId);continue}s.add(i);let c=i,l=i.closest(`g`)??i.parentElement;l&&l!==e&&(l.textContent?.trim().length??0)<=t.length+24&&(c=l),c.setAttribute(`data-mw-entity`,r.entityId),c!==i&&i.setAttribute(`data-mw-entity`,r.entityId);for(let e of new Set([c,i])){let t=e.style;t&&(t.pointerEvents=`auto`)}n.set(r.entityId,c)}return{nodes:n,edges:r,edgeLabels:i,failed:a}}function u(e,t){let n=new Map,r=new Map,i=new Map,a=new Map,o=[];for(let r of t.participants){let t=[...e.querySelectorAll(`[name="${CSS.escape(r.id)}"]`)];if(t.length){n.set(r.entityId,t);for(let e of t)e.setAttribute(`data-mw-entity`,r.entityId);for(let e of t){let t=e.parentElement;t&&t.tagName===`g`&&t.setAttribute(`data-mw-entity`,r.entityId)}}else o.push(r.entityId)}let s=[...e.querySelectorAll(`line.actor-line, .actor-line`)];for(let e of t.participants){let t=n.get(e.entityId);if(!t?.length)continue;let i=t[0].getBoundingClientRect(),a=i.left+i.width/2,o=null,c=1/0;for(let e of s){let t=e.getBoundingClientRect(),n=Math.abs(t.left+t.width/2-a);n<c&&(c=n,o=e)}o&&c<40&&r.set(e.entityId,o)}let c=t.events.filter(e=>e.kind===`message`),l=[...e.querySelectorAll(`text.messageText`)],u=[...e.querySelectorAll(`.messageLine0, .messageLine1`)];c.forEach((e,t)=>{let n=u[t],r=l[t];n?(i.set(e.entityId,n),n.setAttribute(`data-mw-entity`,e.entityId)):o.push(e.entityId),r&&(a.set(e.entityId,r),r.setAttribute(`data-mw-entity`,e.entityId))});let d=t.events.filter(e=>e.kind===`note`),f=[...e.querySelectorAll(`.note`)],p=[...e.querySelectorAll(`.noteText`)];return d.forEach((e,t)=>{let n=f[t],r=p[t];if(n){i.set(e.entityId,n),n.setAttribute(`data-mw-entity`,e.entityId);let t=n.parentElement;t&&t.tagName===`g`&&t.setAttribute(`data-mw-entity`,e.entityId)}else o.push(e.entityId);r&&(a.set(e.entityId,r),r.setAttribute(`data-mw-entity`,e.entityId))}),{participants:n,lifelines:r,events:i,eventTexts:a,failed:o}}var d=e=>`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${e}</svg>`,f={trash:d(`<path d="M3 6h18"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"/><path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/><line x1="10" x2="10" y1="11" y2="17"/><line x1="14" x2="14" y1="11" y2="17"/>`),pencil:d(`<path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"/><path d="m15 5 4 4"/>`),palette:d(`<circle cx="13.5" cy="6.5" r=".5" fill="currentColor"/><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"/><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"/><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"/><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z"/>`),copy:d(`<rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/>`),shapes:d(`<path d="M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z"/><rect x="3" y="14" width="7" height="7" rx="1"/><circle cx="17.5" cy="17.5" r="3.5"/>`),arrowRight:d(`<path d="M5 12h14"/><path d="m12 5 7 7-7 7"/>`),arrowLeftRight:d(`<path d="M8 3 4 7l4 4"/><path d="M4 7h16"/><path d="m16 21 4-4-4-4"/><path d="M20 17H4"/>`),arrowLeftToLine:d(`<path d="M3 19V5"/><path d="m13 6-6 6 6 6"/><path d="M7 12h14"/>`),arrowRightToLine:d(`<path d="M17 12H3"/><path d="m11 18 6-6-6-6"/><path d="M21 5v14"/>`),square:d(`<rect width="18" height="18" x="3" y="3" rx="2"/>`),stickyNote:d(`<path d="M16 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11l5-5V5a2 2 0 0 0-2-2Z"/><path d="M15 21v-4a2 2 0 0 1 2-2h4"/>`),frame:d(`<line x1="22" x2="2" y1="6" y2="6"/><line x1="22" x2="2" y1="18" y2="18"/><line x1="6" x2="6" y1="2" y2="22"/><line x1="18" x2="18" y1="2" y2="22"/>`),group:d(`<path d="M3 7V5a2 2 0 0 1 2-2h2"/><path d="M17 3h2a2 2 0 0 1 2 2v2"/><path d="M21 17v2a2 2 0 0 1-2 2h-2"/><path d="M7 21H5a2 2 0 0 1-2-2v-2"/><rect width="7" height="5" x="7" y="7" rx="1"/><rect width="7" height="5" x="10" y="12" rx="1"/>`),listPlus:d(`<path d="M11 12H3"/><path d="M16 6H3"/><path d="M16 18H3"/><path d="M18 9v6"/><path d="M21 12h-6"/>`),braces:d(`<path d="M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1"/><path d="M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1"/>`),hash:d(`<line x1="4" x2="20" y1="9" y2="9"/><line x1="4" x2="20" y1="15" y2="15"/><line x1="10" x2="8" y1="3" y2="21"/><line x1="16" x2="14" y1="3" y2="21"/>`),calendar:d(`<path d="M8 2v4"/><path d="M16 2v4"/><rect width="18" height="18" x="3" y="4" rx="2"/><path d="M3 10h18"/>`),user:d(`<path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/>`),minus:d(`<path d="M5 12h14"/>`),plus:d(`<path d="M5 12h14"/><path d="M12 5v14"/>`),maximize:d(`<path d="M8 3H5a2 2 0 0 0-2 2v3"/><path d="M21 8V5a2 2 0 0 0-2-2h-3"/><path d="M3 16v3a2 2 0 0 0 2 2h3"/><path d="M16 21h3a2 2 0 0 0 2-2v-3"/>`),ellipsis:d(`<circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/>`),chevronDown:d(`<path d="m6 9 6 6 6-6"/>`)},p=class{host;el=null;panelEl=null;constructor(e){this.host=e}get isOpen(){return this.el!==null}show(e,t){this.hide();let n=document.createElement(`div`);n.className=`mw-popover`,n.addEventListener(`pointerdown`,e=>e.stopPropagation());for(let e of t){let t=document.createElement(`button`);if(t.type=`button`,t.className=`mw-popover-btn`+(e.active?` active`:``)+(e.danger?` danger`:``),t.title=e.title,e.icon?t.innerHTML=e.icon:(t.classList.add(`text`),t.textContent=e.glyph??``),e.panel){t.classList.add(`has-panel`);let e=document.createElement(`span`);e.className=`mw-caret`,e.innerHTML=f.chevronDown,t.appendChild(e)}t.addEventListener(`click`,t=>{t.stopPropagation(),e.panel?this.togglePanel(e.panel):(this.hide(),e.onClick?.())}),n.appendChild(t)}this.host.appendChild(n),this.el=n;let r=this.host.parentElement,i=e.left+e.width/2,a=n.offsetWidth/2;r&&r.clientWidth>n.offsetWidth+8&&(i=Math.min(Math.max(i,a+4+r.scrollLeft),r.scrollLeft+r.clientWidth-a-4)),n.style.left=`${i}px`;let o=e.top-8;o-n.offsetHeight<4?(n.classList.add(`mw-popover-below`),n.style.top=`${e.top+(e.height??0)+8}px`):n.style.top=`${o}px`}togglePanel(e){if(this.panelEl){this.panelEl.remove(),this.panelEl=null;return}let t=document.createElement(`div`);t.className=`mw-popover-panel`;let n=document.createElement(`div`);n.className=`mw-popover-panel-title`,n.textContent=e.title,t.appendChild(n);let r=e.sections??[{items:e.items??[]}];for(let e of r){if(e.title){let n=document.createElement(`div`);n.className=`mw-popover-section-title`,n.textContent=e.title,t.appendChild(n)}let n=document.createElement(`div`);n.className=`mw-popover-grid`,n.style.gridTemplateColumns=`repeat(${e.columns??3}, 1fr)`;for(let t of e.items){let e=document.createElement(`button`);if(e.type=`button`,e.className=`mw-popover-cell`+(t.selected?` selected`:``)+(t.swatch?` swatch`:``),e.title=t.title,t.swatch){let n=document.createElement(`span`);n.className=`mw-swatch-dot`,t.swatch===`none`?n.classList.add(`none`):n.style.background=t.swatch,e.appendChild(n)}else e.textContent=t.glyph??``;e.addEventListener(`click`,e=>{e.stopPropagation(),this.hide(),t.onClick()}),n.appendChild(e)}t.appendChild(n)}this.el.appendChild(t),this.panelEl=t;let i=this.host.getBoundingClientRect().top;t.getBoundingClientRect().top<i+2&&t.classList.add(`below`)}hide(){this.el?.remove(),this.el=null,this.panelEl=null}},m=`
2
+ .mw-popover.mw-popover-below { transform: translate(-50%, 0); }
3
+ .mw-popover {
4
+ position: absolute; z-index: 20; transform: translate(-50%, -100%);
5
+ display: flex; align-items: center; gap: 2px; padding: 4px;
6
+ background: var(--mw-chrome-bg, #0a0a0a); border: 1px solid var(--mw-chrome-border, #333);
7
+ border-radius: 8px; box-shadow: 0 0 0 1px rgba(0,0,0,0.4), 0 8px 30px rgba(0,0,0,0.45);
8
+ font: 13px/1 -apple-system, "Geist", "Inter", "Segoe UI", ui-sans-serif, system-ui, sans-serif;
9
+ }
10
+ .mw-popover-btn {
11
+ border: none; background: none; border-radius: 6px; cursor: pointer;
12
+ height: 28px; min-width: 28px; padding: 0 6px;
13
+ display: inline-flex; align-items: center; justify-content: center; gap: 3px;
14
+ color: var(--mw-chrome-dim, #a1a1a1); line-height: 1;
15
+ transition: background 0.12s, color 0.12s;
16
+ }
17
+ .mw-popover-btn svg { width: 15px; height: 15px; flex: none; }
18
+ .mw-popover-btn.text { font-size: 11.5px; font-weight: 500; letter-spacing: 0.01em; }
19
+ .mw-popover-btn .mw-caret { display: inline-flex; opacity: 0.55; margin-left: -1px; }
20
+ .mw-popover-btn .mw-caret svg { width: 9px; height: 9px; }
21
+ .mw-popover-btn:hover { background: var(--mw-chrome-hover, #1f1f1f); color: var(--mw-chrome-fg, #ededed); }
22
+ .mw-popover-btn.active { background: var(--mw-accent, #0070f3); color: #fff; }
23
+ .mw-popover-btn.danger:hover { background: rgba(255, 68, 68, 0.12); color: #ff4444; }
24
+ .mw-popover-panel {
25
+ position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%);
26
+ background: var(--mw-chrome-bg, #0a0a0a); border: 1px solid var(--mw-chrome-border, #333);
27
+ border-radius: 8px; box-shadow: 0 0 0 1px rgba(0,0,0,0.4), 0 8px 30px rgba(0,0,0,0.45);
28
+ padding: 6px; min-width: 140px;
29
+ }
30
+ .mw-popover-panel.below { bottom: auto; top: calc(100% + 6px); }
31
+ .mw-popover-panel-title {
32
+ font-size: 10px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.07em;
33
+ color: var(--mw-chrome-dim, #666); padding: 3px 5px 7px; white-space: nowrap;
34
+ }
35
+ .mw-popover-section-title {
36
+ font-size: 10px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.06em;
37
+ color: var(--mw-chrome-dim, #666); padding: 6px 5px 4px; white-space: nowrap;
38
+ }
39
+ .mw-popover-grid { display: grid; gap: 2px; }
40
+ .mw-popover-cell {
41
+ border: 1px solid transparent; background: none; border-radius: 6px; padding: 7px 8px;
42
+ cursor: pointer; font-size: 12px; color: var(--mw-chrome-dim, #a1a1a1); white-space: nowrap;
43
+ transition: background 0.12s, color 0.12s;
44
+ }
45
+ .mw-popover-cell:hover { background: var(--mw-chrome-hover, #1f1f1f); color: var(--mw-chrome-fg, #ededed); }
46
+ .mw-popover-cell.selected {
47
+ border-color: var(--mw-accent, #0070f3); color: var(--mw-chrome-fg, #ededed);
48
+ background: color-mix(in srgb, var(--mw-accent, #0070f3) 12%, transparent);
49
+ }
50
+ .mw-popover-cell.swatch { padding: 5px; display: flex; align-items: center; justify-content: center; }
51
+ .mw-swatch-dot { width: 15px; height: 15px; border-radius: 99px; display: block; border: 1px solid rgba(255,255,255,0.18); }
52
+ .mw-swatch-dot.none {
53
+ background: linear-gradient(to top left, transparent 45%, #ff4444 46%, #ff4444 54%, transparent 55%);
54
+ border: 1px solid var(--mw-chrome-dim, #666);
55
+ }
56
+ .mw-lifeline-plus {
57
+ position: absolute; z-index: 15; transform: translate(-50%, -50%);
58
+ width: 18px; height: 18px; border-radius: 99px; border: none; cursor: pointer;
59
+ background: var(--mw-accent, #0070f3); color: #fff; font-size: 13px; line-height: 1;
60
+ display: flex; align-items: center; justify-content: center;
61
+ box-shadow: 0 2px 8px rgba(0,0,0,0.5);
62
+ transition: transform 0.12s;
63
+ }
64
+ .mw-lifeline-plus:hover { transform: translate(-50%, -50%) scale(1.15); }
65
+ .mw-plus-menu {
66
+ position: absolute; z-index: 21; transform: translate(-50%, 4px);
67
+ background: var(--mw-chrome-bg, #0a0a0a); border: 1px solid var(--mw-chrome-border, #333);
68
+ border-radius: 8px; box-shadow: 0 0 0 1px rgba(0,0,0,0.4), 0 8px 30px rgba(0,0,0,0.45); padding: 4px;
69
+ display: flex; flex-direction: column; min-width: 150px;
70
+ font: 13px/1.2 -apple-system, "Geist", "Inter", "Segoe UI", ui-sans-serif, system-ui, sans-serif;
71
+ }
72
+ .mw-plus-menu button {
73
+ border: none; background: none; text-align: left; border-radius: 6px; padding: 7px 10px;
74
+ cursor: pointer; color: var(--mw-chrome-dim, #a1a1a1); font-size: 12.5px;
75
+ transition: background 0.12s, color 0.12s;
76
+ }
77
+ .mw-plus-menu button:hover { background: var(--mw-chrome-hover, #1f1f1f); color: var(--mw-chrome-fg, #ededed); }
78
+ `,h=[`#ef4444`,`#f97316`,`#eab308`,`#22c55e`,`#06b6d4`,`#6366f1`,`#d946ef`,`#64748b`],g=`
79
+ .mw-canvas { position: relative; overflow: auto; outline: none; }
80
+ .mw-canvas .mw-svg-host { user-select: none; -webkit-user-select: none; }
81
+ .mw-canvas .mw-svg-host { min-height: 100%; display: flex; align-items: flex-start; justify-content: center; padding: 16px; box-sizing: border-box; }
82
+ .mw-canvas svg { max-width: 100%; height: auto; }
83
+ .mw-canvas.mw-panzoom { overflow: hidden; }
84
+ .mw-canvas.mw-panzoom .mw-svg-host { position: absolute; inset: 0; display: block; padding: 0; min-height: 0; overflow: hidden; }
85
+ .mw-canvas.mw-panzoom .mw-svg-host svg { position: absolute; left: 0; top: 0; max-width: none; height: auto; transform-origin: 0 0; }
86
+ .mw-canvas.mw-panzoom .mw-svg-host { cursor: grab; }
87
+ .mw-canvas.mw-panzoom.mw-panning .mw-svg-host { cursor: grabbing; }
88
+ .mw-canvas.mw-panzoom [data-mw-entity] { cursor: pointer; }
89
+ .mw-zoom-controls { position: absolute; right: 10px; bottom: 10px; display: flex; gap: 4px; z-index: 6; }
90
+ .mw-zoom-btn { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; padding: 0; border-radius: 7px; border: 1px solid var(--mw-chrome-border, rgba(128,128,128,.35)); background: var(--mw-chrome-bg, rgba(24,24,27,.92)); color: var(--mw-chrome-fg, #e4e4e7); cursor: pointer; }
91
+ .mw-zoom-btn:hover { background: var(--mw-chrome-hover, rgba(63,63,70,.9)); }
92
+ .mw-zoom-btn svg { width: 14px; height: 14px; }
93
+ .mw-canvas [data-mw-entity] { cursor: pointer; }
94
+ .mw-canvas.mw-readonly [data-mw-entity] { cursor: default; }
95
+ .mw-canvas.mw-tool-connect [data-mw-entity^="node:"] { cursor: crosshair; }
96
+ .mw-canvas [data-mw-entity]:hover { filter: drop-shadow(0 0 3px var(--mw-accent, #6366f1)); }
97
+ .mw-canvas .mw-selected { filter: drop-shadow(0 0 2px var(--mw-accent, #6366f1)) drop-shadow(0 0 5px var(--mw-accent, #6366f1)) !important; }
98
+ .mw-canvas .mw-ghost-edge { stroke: var(--mw-accent, #6366f1); stroke-width: 2; stroke-dasharray: 6 4; fill: none; pointer-events: none; }
99
+ .mw-canvas .mw-connect-source { filter: drop-shadow(0 0 5px var(--mw-accent, #6366f1)) !important; }
100
+ .mw-inplace-editor {
101
+ position: absolute; z-index: 10; white-space: pre; outline: none;
102
+ padding: 1px 3px; margin: -1px -3px; border-radius: 3px;
103
+ caret-color: var(--mw-accent, #6366f1);
104
+ box-shadow: 0 1.5px 0 0 var(--mw-accent, #6366f1);
105
+ background: color-mix(in srgb, var(--mw-editor-bg, #fff) 35%, transparent);
106
+ }
107
+ .mw-error-badge {
108
+ position: absolute; top: 8px; right: 8px; z-index: 5;
109
+ font: 500 11px/1.4 ui-sans-serif, system-ui, sans-serif;
110
+ background: #dc2626; color: #fff; border-radius: 6px; padding: 3px 8px;
111
+ max-width: 60%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
112
+ }
113
+ .mw-drop-indicator {
114
+ position: absolute; left: 6%; right: 6%; height: 2.5px; z-index: 14;
115
+ background: var(--mw-accent, #6366f1); border-radius: 2px; pointer-events: none;
116
+ box-shadow: 0 0 6px var(--mw-accent, #6366f1);
117
+ }
118
+ .mw-canvas [contenteditable="true"] {
119
+ outline: none; cursor: text; white-space: pre-wrap; min-width: 8px;
120
+ caret-color: var(--mw-accent, #6366f1);
121
+ }
122
+ `,_=!1,v=0;function y(e){return(e.innerHTML??``).replace(/<br\s*\/?>/gi,`<br/>`).trim()}function b(e){let t=window.getSelection();if(!t?.anchorNode||!e.contains(t.anchorNode))return-1;let n=document.createRange();return n.selectNodeContents(e),n.setEnd(t.anchorNode,t.anchorOffset),n.toString().length}function x(e,t){let n=window.getSelection();if(!n)return;let r=document.createRange(),i=Math.max(0,t),a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),o=a.nextNode();for(;o;){let e=o.textContent?.length??0;if(i<=e){r.setStart(o,i),r.collapse(!0),n.removeAllRanges(),n.addRange(r);return}i-=e,o=a.nextNode()}r.selectNodeContents(e),r.collapse(!1),n.removeAllRanges(),n.addRange(r)}var S=class{editor;container;mermaid;mermaidConfig;svgHost;overlayHost;errorBadge;correlation=null;seqCorrelation=null;popover;plusButtons=[];plusMenu=null;hoveredLifeline=null;svg=null;svgTransformObserver=null;popoverFollowRaf=0;applyingOwnTransform=!1;popoverAnchorPick=null;tool=`select`;readOnly;debounceMs;defaultEdge;hooks;renderTimer=null;lastRenderedCode=``;disposers=[];listeners=new Map;connectSource=null;suppressNextClick=!1;ghostPath=null;dragEvent=null;dragStartY=0;dragging=!1;dropIndicator=null;dropSlots=[];inlineInput=null;inlineHidden=null;pendingEditEntity=null;inPlaceSession=null;lastError=null;renderHeldByEdit=!1;panZoomEnabled;zoomScale=1;zoomTx=0;zoomTy=0;hasUserView=!1;svgSize=null;panSession=null;zoomControls=null;renderSeq=0;constructor(e){if(this.editor=e.editor,this.container=e.container,this.mermaid=e.mermaid,this.readOnly=e.readOnly??!1,this.panZoomEnabled=e.panZoom??!1,this.debounceMs=e.debounceMs??200,this.defaultEdge=e.defaultEdge??{},this.hooks=e.hooks??{},this.mermaidConfig={startOnLoad:!1,...e.mermaidConfig},!_){let e=document.createElement(`style`);e.setAttribute(`data-mw`,``),e.textContent=g+m,document.head.appendChild(e),_=!0}this.container.classList.add(`mw-canvas`),this.container.tabIndex=0,e.accentColor&&this.container.style.setProperty(`--mw-accent`,e.accentColor),this.readOnly&&this.container.classList.add(`mw-readonly`),this.svgHost=document.createElement(`div`),this.svgHost.className=`mw-svg-host`,this.overlayHost=document.createElement(`div`),this.errorBadge=document.createElement(`div`),this.errorBadge.className=`mw-error-badge`,this.errorBadge.style.display=`none`,this.container.append(this.svgHost,this.overlayHost,this.errorBadge),this.popover=new p(this.overlayHost),this.mermaid.initialize(this.mermaidConfig),this.disposers.push(this.editor.on(`change`,()=>this.scheduleRender()),this.editor.on(`selectionChange`,()=>this.applySelectionStyles()));let t=e=>this.onKeyDown(e);this.container.addEventListener(`keydown`,t),this.disposers.push(()=>this.container.removeEventListener(`keydown`,t));let n=e=>{let t=e.target;!t||this.container.contains(t)||(this.inPlaceSession?.finish?.(!0),this.clearLifelineUi(),this.popover.hide(),this.editor.selection.length&&this.editor.clearSelection(`canvas`))};document.addEventListener(`pointerdown`,n,!0),this.disposers.push(()=>document.removeEventListener(`pointerdown`,n,!0)),this.panZoomEnabled&&this.setupPanZoom(),this.render()}on(e,t){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(t),()=>this.listeners.get(e).delete(t)}emit(e,t){this.listeners.get(e)?.forEach(e=>e(t))}get currentTool(){return this.tool}get renderError(){return this.lastError}setTool(e){this.tool=e,this.container.classList.toggle(`mw-tool-connect`,e===`connect`),this.cancelConnect(),this.emit(`toolChange`,e)}setReadOnly(e){this.readOnly=e,this.container.classList.toggle(`mw-readonly`,e),this.closeInlineEditor(!1),this.cancelConnect(),this.clearLifelineUi(),this.updatePopover()}setHooks(e){this.hooks=e}setAccentColor(e){this.container.style.setProperty(`--mw-accent`,e)}setMermaidConfig(e){this.mermaidConfig={...this.mermaidConfig,...e},this.mermaid.initialize(this.mermaidConfig),this.lastRenderedCode=``,this.render()}addNode(e=`rect`,t=`New node`){if(this.readOnly)return;let n=this.editor.dispatch({type:`addNode`,shape:e,label:t})?.created?.[0];n&&(this.pendingEditEntity=n)}scheduleRender(){this.renderTimer&&clearTimeout(this.renderTimer),this.renderTimer=setTimeout(()=>void this.render(),this.debounceMs)}setupPanZoom(){this.container.classList.add(`mw-panzoom`);let e=e=>{if(!e.ctrlKey&&!e.metaKey)return;e.preventDefault();let t=Math.max(-40,Math.min(40,e.deltaY));this.zoomAt(e.clientX,e.clientY,Math.exp(-t*.01))};this.container.addEventListener(`wheel`,e,{passive:!1}),this.disposers.push(()=>this.container.removeEventListener(`wheel`,e));let t=e=>{if(e.button!==0||this.tool===`connect`||e.altKey||this.inlineInput||this.inPlaceSession)return;let t=e.target;if(!t||!this.svgHost.contains(t))return;let n=t;for(;n&&n!==this.container;){if(n.getAttribute?.(`data-mw-entity`))return;n=n.parentElement}this.panSession={pointerId:e.pointerId,x:e.clientX,y:e.clientY,tx:this.zoomTx,ty:this.zoomTy,moved:!1}},n=e=>{let t=this.panSession;if(!t||e.pointerId!==t.pointerId)return;let n=e.clientX-t.x,r=e.clientY-t.y;if(!t.moved&&Math.hypot(n,r)>4){t.moved=!0,this.container.classList.add(`mw-panning`);try{this.container.setPointerCapture(e.pointerId)}catch{}this.popover.hide()}t.moved&&(this.zoomTx=t.tx+n,this.zoomTy=t.ty+r,this.hasUserView=!0,this.applyViewTransform())},r=e=>{let t=this.panSession;!t||e.pointerId!==t.pointerId||(this.panSession=null,this.container.classList.remove(`mw-panning`),t.moved&&(this.suppressNextClick=!0,this.updatePopover()))};this.container.addEventListener(`pointerdown`,t),this.container.addEventListener(`pointermove`,n),this.container.addEventListener(`pointerup`,r),this.container.addEventListener(`pointercancel`,r),this.disposers.push(()=>{this.container.removeEventListener(`pointerdown`,t),this.container.removeEventListener(`pointermove`,n),this.container.removeEventListener(`pointerup`,r),this.container.removeEventListener(`pointercancel`,r)});let i=document.createElement(`div`);i.className=`mw-zoom-controls`;let a=(e,t,n)=>{let r=document.createElement(`button`);r.type=`button`,r.className=`mw-zoom-btn`,r.title=e,r.innerHTML=t,r.addEventListener(`pointerdown`,e=>e.stopPropagation()),r.addEventListener(`click`,e=>{e.stopPropagation(),n()}),i.appendChild(r)};if(a(`Zoom out`,f.minus,()=>this.zoomBy(1/1.25)),a(`Zoom in`,f.plus,()=>this.zoomBy(1.25)),a(`Fit diagram`,f.maximize,()=>this.fitView()),this.container.appendChild(i),this.zoomControls=i,typeof ResizeObserver<`u`){let e=new ResizeObserver(()=>{this.hasUserView||this.fitView()});e.observe(this.container),this.disposers.push(()=>e.disconnect())}}zoomBy(e){let t=this.container.getBoundingClientRect();this.zoomAt(t.left+t.width/2,t.top+t.height/2,e)}zoomAt(e,t,n){if(!this.panZoomEnabled)return;let r=this.container.getBoundingClientRect(),i=e-r.left,a=t-r.top,o=Math.min(Math.max(this.zoomScale*n,.1),4),s=o/this.zoomScale;s!==1&&(this.zoomTx=i-(i-this.zoomTx)*s,this.zoomTy=a-(a-this.zoomTy)*s,this.zoomScale=o,this.hasUserView=!0,this.applyViewTransform(),this.updatePopover())}fitView(){if(!this.panZoomEnabled||!this.svg||!this.svgSize)return;let e=this.container.clientWidth,t=this.container.clientHeight;if(!e||!t)return;let{width:n,height:r}=this.svgSize,i=Math.min((e-56)/n,(t-56)/r);this.zoomScale=Math.min(Math.max(i,.1),2),this.zoomTx=(e-n*this.zoomScale)/2,this.zoomTy=(t-r*this.zoomScale)/2,this.hasUserView=!1,this.applyViewTransform(),this.updatePopover()}applyViewTransform(){this.svg&&(this.applyingOwnTransform=!0,this.svg.style.transform=`translate(${this.zoomTx}px, ${this.zoomTy}px) scale(${this.zoomScale})`,queueMicrotask(()=>{this.applyingOwnTransform=!1}))}prepareSvgForPanZoom(){let e=this.svg;if(!e)return;let t=0,n=0,r=e.viewBox?.baseVal;if(r&&r.width&&r.height)t=r.width,n=r.height;else{let r=e.getBBox?.();t=r?.width||800,n=r?.height||600}this.svgSize={width:t,height:n},e.removeAttribute(`width`),e.removeAttribute(`height`),e.style.width=`${t}px`,e.style.height=`${n}px`,e.style.maxWidth=`none`,this.hasUserView?this.applyViewTransform():this.fitView()}async render(){if(this.inPlaceSession){this.renderHeldByEdit=!0;return}let e=this.editor.code;if(e===this.lastRenderedCode){this.lastError&&(this.lastError=null,this.errorBadge.style.display=`none`,this.editor.setDiagnostics([]),this.emit(`render`,{ok:!0}));return}let t=++this.renderSeq,n=`mw-render-${++v}`;try{let{svg:r}=await this.mermaid.render(n,e);if(t!==this.renderSeq)return;let i=null,a=this.activeInPlaceSession(),o=a?.label;if(a&&o?.isConnected&&(i={value:y(o),caret:b(o)},a.liveTimer&&=(clearTimeout(a.liveTimer),null)),this.lastRenderedCode=e,this.lastError=null,this.errorBadge.style.display=`none`,this.svgHost.innerHTML=r,this.svg=this.svgHost.querySelector(`svg`),this.svg&&(this.panZoomEnabled?this.prepareSvgForPanZoom():this.svg.style.maxWidth=`100%`,this.bindSvg()),this.editor.setDiagnostics([]),this.emit(`render`,{ok:!0}),this.activeInPlaceSession())this.resumeInPlaceSession(i);else if(this.pendingEditEntity){let e=this.pendingEditEntity;this.pendingEditEntity=null,this.editor.entityExists(e)&&this.editEntityLabel(e)}}catch(e){if(t!==this.renderSeq)return;document.getElementById(`d${n}`)?.remove(),document.getElementById(n)?.remove();let r=e instanceof Error?e.message.split(`
123
+ `)[0]:String(e);this.lastError=r,this.errorBadge.textContent=`render error: ${r}`,this.errorBadge.style.display=`block`;let i={message:r,span:null,severity:`error`,source:`mermaid`};this.editor.setDiagnostics([i]),this.emit(`render`,{ok:!1,error:r})}}bindSvg(){let e=this.svg;if(!e)return;let{flowchart:t,sequence:n,state:d,classGraph:f,er:p}=this.editor.result;this.correlation=t?r(e,t):d?i(e,d):f?a(e,f):p?o(e,p):this.editor.result.pie?s(e,this.editor.result.pie):this.editor.result.gantt?c(e,this.editor.result.gantt):this.editor.result.lineItems?l(e,this.editor.result.lineItems):null,this.seqCorrelation=n?u(e,n):null,this.clearLifelineUi(),e.addEventListener(`click`,e=>this.onSvgClick(e)),e.addEventListener(`dblclick`,e=>this.onSvgDblClick(e)),e.addEventListener(`pointerdown`,e=>this.onSvgPointerDown(e)),e.addEventListener(`pointermove`,e=>this.onSvgPointerMove(e)),e.addEventListener(`pointerup`,e=>this.onSvgPointerUp(e)),this.seqCorrelation&&(e.addEventListener(`pointermove`,e=>this.onLifelineHover(e)),e.addEventListener(`pointerleave`,()=>this.scheduleLifelineClear())),this.svgTransformObserver?.disconnect(),typeof MutationObserver<`u`&&(this.svgTransformObserver=new MutationObserver(()=>{this.applyingOwnTransform||this.popoverFollowRaf||!this.popover.isOpen||(this.popoverFollowRaf=(typeof requestAnimationFrame==`function`?requestAnimationFrame:e=>setTimeout(e,16))(()=>{this.popoverFollowRaf=0,this.updatePopover()}))}),this.svgTransformObserver.observe(e,{attributes:!0,attributeFilter:[`style`,`transform`],subtree:!0})),this.applySelectionStyles()}entityFromEvent(e){return this.entityHitFromEvent(e)?.id??null}entityHitFromEvent(e){let t=e.target;for(;t&&t!==this.svg;){let e=t.getAttribute?.(`data-mw-entity`);if(e)return{id:e,el:t};t=t.parentElement}return null}topmostEntityElement(e){let t=null,n=1/0;return this.svg?.querySelectorAll(`[data-mw-entity="${CSS.escape(e)}"]`).forEach(e=>{let r=e.getBoundingClientRect().top;r<n&&(n=r,t=e)}),t}onSvgClick(e){if(this.suppressNextClick){this.suppressNextClick=!1;return}if(this.inlineInput||this.inPlaceSession)return;let t=this.entityHitFromEvent(e);if(t){let n=t.id;if(this.hooks.onEntityClick?.(n,e),this.popoverAnchorPick={entityId:n,index:this.entityElementIndex(n,t.el)},e.shiftKey||e.metaKey||e.ctrlKey){let e=this.editor.selection.includes(n)?this.editor.selection.filter(e=>e!==n):[...this.editor.selection,n];this.editor.setSelection(e,`canvas`)}else this.editor.setSelection([n],`canvas`),this.updatePopover();this.container.focus({preventScroll:!0})}else this.editor.clearSelection(`canvas`)}entityElementIndex(e,t){if(!this.svg)return 0;let n=[...this.svg.querySelectorAll(`[data-mw-entity="${CSS.escape(e)}"]`)].indexOf(t);return n>=0?n:0}onSvgDblClick(e){if(this.readOnly)return;let t=e.target.closest?.(`[data-mw-member-line]`);if(t&&this.editor.result.classGraph){let n=t.getAttribute(`data-mw-member-class`),r=Number(t.getAttribute(`data-mw-member-line`)),i=this.editor.result.classGraph.classById.get(n)?.members.find(e=>e.lineIndex===r);if(i){e.preventDefault(),this.popover.hide(),this.editInPlace(`member:${n}:${r}`,t,`.nodeLabel`,i.text,e=>this.editor.dispatch({type:`cl.setMemberText`,id:n,memberLine:r,text:e},`canvas`),{live:!1});return}}let n=e.target.closest?.(`[data-mw-attr-line]`);if(n&&this.editor.result.er){let t=n.getAttribute(`data-mw-attr-entity`),r=Number(n.getAttribute(`data-mw-attr-line`)),i=this.editor.result.er.entityById.get(t)?.attributes.find(e=>e.lineIndex===r);if(i){e.preventDefault(),this.popover.hide(),this.openOverlayEditor(n,i.text,e=>this.editor.dispatch({type:`er.setAttributeText`,id:t,attrLine:r,text:e},`canvas`));return}}let r=this.entityHitFromEvent(e);r&&(e.preventDefault(),!this.hooks.onEntityDoubleClick?.(r.id)&&this.editEntityLabel(r.id,r.el))}onSvgPointerDown(e){if(this.readOnly)return;let t=this.entityFromEvent(e),n=t?.startsWith(`node:`)||t?.startsWith(`participant:`)||t?.startsWith(`state:`)||t?.startsWith(`class:`)||t?.startsWith(`entity:`),r=this.tool===`connect`||e.altKey;if(n&&r&&t){e.preventDefault(),this.connectSource=t,this.svg?.setPointerCapture?.(e.pointerId),this.entityElement(t)?.classList.add(`mw-connect-source`),this.emit(`connectPreview`,{source:t});return}t?.startsWith(`event:`)&&this.editor.result.sequence&&e.detail<=1&&(this.dragEvent=t,this.dragStartY=e.clientY,this.dragging=!1)}entityElement(e){return this.svg?.querySelector(`[data-mw-entity="${CSS.escape(e)}"]`)??null}onSvgPointerMove(e){if(this.dragEvent&&this.svg){if(!this.dragging&&Math.abs(e.clientY-this.dragStartY)>8&&(this.dragging=!0,this.svg.setPointerCapture?.(e.pointerId),this.computeDropSlots(),this.popover.hide()),this.dragging){let t=this.container.getBoundingClientRect(),n=e.clientY-t.top+this.container.scrollTop,r=this.nearestSlot(n);r&&this.showDropIndicator(r.y)}return}if(!this.connectSource||!this.svg)return;let t=this.entityCenter(this.connectSource),n=this.clientToSvg(e.clientX,e.clientY);!t||!n||(this.ghostPath||(this.ghostPath=document.createElementNS(`http://www.w3.org/2000/svg`,`line`),this.ghostPath.classList.add(`mw-ghost-edge`),this.svg.appendChild(this.ghostPath)),this.ghostPath.setAttribute(`x1`,String(t.x)),this.ghostPath.setAttribute(`y1`,String(t.y)),this.ghostPath.setAttribute(`x2`,String(n.x)),this.ghostPath.setAttribute(`y2`,String(n.y)))}onSvgPointerUp(e){if(this.dragEvent){let t=this.dragEvent,n=this.dragging;if(this.dragEvent=null,this.dragging=!1,this.dropIndicator?.remove(),this.dropIndicator=null,n){this.suppressNextClick=!0;let n=this.container.getBoundingClientRect(),r=this.nearestSlot(e.clientY-n.top+this.container.scrollTop);r&&this.editor.dispatch({type:`seq.moveEvent`,eventId:t,afterEvent:r.afterEvent})}return}if(!this.connectSource)return;let t=this.connectSource,n=t.startsWith(`node:`)?`node:`:t.startsWith(`state:`)?`state:`:t.startsWith(`class:`)?`class:`:t.startsWith(`entity:`)?`entity:`:`participant:`,r=document.elementFromPoint(e.clientX,e.clientY),i=null,a=r;for(;a&&a!==this.container;){let e=a.getAttribute?.(`data-mw-entity`);if(e?.startsWith(n)){i=e;break}a=a.parentElement}this.cancelConnect(),this.suppressNextClick=!0,i&&i!==t&&n===`node:`?this.editor.dispatch({type:`connect`,source:t.slice(5),target:i.slice(5),line:this.defaultEdge.line,arrowEnd:this.defaultEdge.arrowEnd}):i&&i!==t&&n===`participant:`?this.editor.dispatch({type:`seq.addMessage`,source:t.slice(12),target:i.slice(12),text:`message`}):i&&i!==t&&n===`state:`?this.editor.dispatch({type:`st.connect`,source:t.slice(6),target:i.slice(6)}):i&&i!==t&&n===`class:`?this.editor.dispatch({type:`cl.connect`,source:t.slice(6),target:i.slice(6)}):i&&i!==t&&n===`entity:`?this.editor.dispatch({type:`er.connect`,source:t.slice(7),target:i.slice(7)}):(this.editor.setSelection([t],`canvas`),this.container.focus({preventScroll:!0}))}cancelConnect(){this.connectSource&&this.entityElement(this.connectSource)?.classList.remove(`mw-connect-source`),this.connectSource=null,this.ghostPath?.remove(),this.ghostPath=null,this.emit(`connectPreview`,{source:null})}editEntityLabel(e,t){if(this.readOnly)return;let{flowchart:n,sequence:r}=this.editor.result;this.closeInlineEditor(!1),this.inPlaceSession&&this.inPlaceSession.entityId!==e&&this.inPlaceSession.finish?.(!0),this.popover.hide();let i=t&&t.getAttribute(`data-mw-entity`)===e?t:null,a=null,o=``,s=()=>{};if(n&&e.startsWith(`node:`)){let t=n.nodeById.get(e.slice(5));if(!t||(o=t.label,a=this.correlation?.nodes.get(e)??null,s=e=>this.editor.dispatch({type:`renameNode`,id:t.id,label:e},`canvas`),a&&this.editInPlace(e,a,`.nodeLabel`,o,s)))return}else if(n&&e.startsWith(`edge:`)){let t=n.edges.find(t=>t.entityId===e);if(!t||(o=t.label??``,a=this.correlation?.edgeLabels.get(e)??this.correlation?.edges.get(e)??null,s=t=>this.editor.dispatch({type:`setEdgeLabel`,edgeId:e,label:t},`canvas`),t.label&&a&&this.editInPlace(e,a,`.edgeLabel`,o,s)))return}else if(n&&e.startsWith(`subgraph:`)){let t=n.subgraphs.find(t=>t.entityId===e);if(!t)return;o=t.title??t.id,a=this.correlation?.nodes.get(e)?.querySelector(`.cluster-label`)??i??this.correlation?.nodes.get(e)??this.svg?.querySelector(`#${CSS.escape(t.id)}`)??null,s=e=>this.editor.dispatch({type:`renameSubgraph`,id:t.id,title:e},`canvas`)}else if(this.editor.result.state&&e.startsWith(`state:`)){let t=this.editor.result.state.stateById.get(e.slice(6));if(!t||(o=t.label,a=this.correlation?.nodes.get(e)??null,s=e=>this.editor.dispatch({type:`st.setStateLabel`,id:t.id,label:e},`canvas`),a&&this.editInPlace(e,a,`.nodeLabel`,o,s)))return}else if(this.editor.result.state&&e.startsWith(`trans:`)){let t=this.editor.result.state.transitions.find(t=>t.entityId===e);if(!t||(o=t.label??``,a=this.correlation?.edgeLabels.get(e)??this.correlation?.edges.get(e)??null,s=t=>this.editor.dispatch({type:`st.setTransitionLabel`,transId:e,label:t},`canvas`),t.label&&a&&this.editInPlace(e,a,`.edgeLabel`,o,s)))return}else if(this.editor.result.classGraph&&e.startsWith(`class:`)){let t=this.editor.result.classGraph.classById.get(e.slice(6));if(!t)return;o=t.id,a=i??this.correlation?.nodes.get(e)??null,s=e=>this.editor.dispatch({type:`cl.renameClass`,id:t.id,name:e},`canvas`)}else if(this.editor.result.classGraph&&e.startsWith(`rel:`)){let t=this.editor.result.classGraph.relations.find(t=>t.entityId===e);if(!t)return;o=t.label??``,a=this.correlation?.edgeLabels.get(e)??this.correlation?.edges.get(e)??null,s=t=>this.editor.dispatch({type:`cl.setRelationLabel`,relId:e,label:t},`canvas`)}else if(this.editor.result.er&&e.startsWith(`entity:`)){let t=this.editor.result.er.entityById.get(e.slice(7));if(!t)return;o=t.id,a=i??this.correlation?.nodes.get(e)??null,s=e=>this.editor.dispatch({type:`er.renameEntity`,id:t.id,name:e},`canvas`)}else if(this.editor.result.er&&e.startsWith(`erel:`)){let t=this.editor.result.er.relations.find(t=>t.entityId===e);if(!t)return;o=t.label,a=this.correlation?.edgeLabels.get(e)??this.correlation?.edges.get(e)??null,s=t=>this.editor.dispatch({type:`er.setRelationLabel`,relId:e,label:t},`canvas`)}else if(this.editor.result.pie&&e.startsWith(`slice:`)){let t=this.editor.result.pie.slices.find(t=>t.entityId===e);if(!t)return;o=String(t.value),a=i??this.entityElement(e),s=t=>{let n=Number(t);Number.isFinite(n)&&this.editor.dispatch({type:`pie.setValue`,sliceId:e,value:n},`canvas`)}}else if(this.editor.result.gantt&&e.startsWith(`task:`)){let t=this.editor.result.gantt.tasks.find(t=>t.entityId===e);if(!t)return;o=t.name,a=i??this.entityElement(e),s=t=>this.editor.dispatch({type:`gantt.setTaskName`,taskId:e,name:t},`canvas`)}else if(this.editor.result.lineItems&&e.startsWith(`item:`)){let t=this.editor.result.lineItems.items.find(t=>t.entityId===e);if(!t)return;o=t.text,a=i??this.entityElement(e),s=t=>this.editor.dispatch({type:`li.setLine`,itemId:e,text:t},`canvas`)}else if(r&&e.startsWith(`participant:`)){let t=r.participantById.get(e.slice(12));if(!t)return;o=t.label,a=i??this.topmostEntityElement(e),s=e=>this.editor.dispatch({type:`seq.renameParticipant`,id:t.id,name:e},`canvas`)}else if(r&&e.startsWith(`event:`)){let t=r.events.find(t=>t.entityId===e);if(!t)return;o=t.stmt.text,a=this.seqCorrelation?.eventTexts.get(e)??i??this.entityElement(e),s=t=>this.editor.dispatch({type:`seq.setEventText`,eventId:e,text:t},`canvas`)}a&&this.openOverlayEditor(a,o,s)}editInPlace(e,t,n,r,i,a={}){let o=t.matches?.(n)?t.querySelector(`p`)??t:t.querySelector(`${n} p`)??t.querySelector(n);if(!o||!(o instanceof HTMLElement))return!1;let s=this.inPlaceSession?.entityId===e;if(s&&this.inPlaceSession.label===o&&o.isConnected)return o.focus(),!0;s||(this.inPlaceSession={entityId:e,labelSelector:n,original:r,lastCommitted:r,caretOffset:-1,commitValue:i,liveTimer:null,label:null,finish:null});let c=this.inPlaceSession;c.label=o,o.setAttribute(`contenteditable`,`true`);let l=o.closest(`foreignObject`),u=o.style.whiteSpace,d=l?.style.overflow??``;if(o.style.whiteSpace=`nowrap`,l&&(l.style.overflow=`visible`),o.focus(),s&&c.caretOffset>=0)x(o,c.caretOffset);else{let e=window.getSelection(),t=document.createRange();t.selectNodeContents(o),e?.removeAllRanges(),e?.addRange(t)}let f=()=>{let e=b(o);e>=0&&(c.caretOffset=e)},p=()=>{if(this.inPlaceSession!==c)return;let e=y(o);!e||e===c.lastCommitted||(f(),c.lastCommitted=e,c.commitValue(e))},m=e=>{if(this.inPlaceSession!==c)return;this.inPlaceSession=null,c.liveTimer&&clearTimeout(c.liveTimer),o.removeAttribute(`contenteditable`),o.style.whiteSpace=u,l&&(l.style.overflow=d),o.removeEventListener(`keydown`,g),o.removeEventListener(`blur`,_),o.removeEventListener(`input`,h);let t=y(o);e?t&&t!==c.lastCommitted?c.commitValue(t):t||(o.textContent=c.lastCommitted):(o.innerHTML=c.original,c.lastCommitted!==c.original&&c.commitValue(c.original)),this.renderHeldByEdit&&(this.renderHeldByEdit=!1,this.scheduleRender()),this.updatePopover()},h=()=>{a.live!==!1&&(c.liveTimer&&clearTimeout(c.liveTimer),c.liveTimer=setTimeout(p,450))},g=e=>{e.stopPropagation(),e.key===`Enter`?(e.preventDefault(),m(!0)):e.key===`Escape`&&m(!1)},_=()=>{setTimeout(()=>{this.inPlaceSession===c&&o.isConnected&&document.activeElement!==o&&m(!0)},60)};return c.finish=m,o.addEventListener(`keydown`,g),o.addEventListener(`blur`,_),o.addEventListener(`input`,h),!0}activeInPlaceSession(){return this.inPlaceSession}resumeInPlaceSession(e){let t=this.inPlaceSession;if(!t)return;if(!this.editor.entityExists(t.entityId)){this.inPlaceSession=null;return}let n=(t.entityId.startsWith(`edge:`)?this.correlation?.edgeLabels.get(t.entityId):null)??this.entityElement(t.entityId);if(!n){this.inPlaceSession=null;return}this.editInPlace(t.entityId,n,t.labelSelector,t.lastCommitted,t.commitValue);let r=this.inPlaceSession===t?t.label:null;!r||!e||(e.value&&e.value!==t.lastCommitted&&e.value!==y(r)&&(r.innerHTML=e.value,r.dispatchEvent(new Event(`input`))),e.caret>=0&&x(r,e.caret))}findTextTarget(e,t){let n=e=>(e.tagName===`text`||e.tagName===`SPAN`||e.tagName===`P`||e.tagName===`DIV`||e.tagName===`tspan`)&&(e.children.length===0||e.tagName===`text`)&&(e.textContent?.trim().length??0)>0;if(n(e))return e;let r=[...e.querySelectorAll(`text, tspan, span, p, div`)].filter(n);return!r.length&&e.parentElement&&(r=[...e.parentElement.querySelectorAll(`text, tspan, span, p, div`)].filter(n)),r.find(e=>e.textContent?.trim()===t.trim())??r.find(e=>t.trim().startsWith(e.textContent?.trim()??`\0`))??r[0]??e}openOverlayEditor(e,t,n){e=this.findTextTarget(e,t);let r=this.hostRect(e),i=e.querySelector(`tspan`)??e,a=window.getComputedStyle(i),o=document.createElement(`div`);o.className=`mw-inplace-editor`,o.contentEditable=`true`,o.spellcheck=!1,o.textContent=t,o.style.left=`${r.left+r.width/2}px`,o.style.top=`${r.top}px`,o.style.transform=`translateX(-50%)`,o.style.textAlign=`center`,o.style.minWidth=`${Math.max(24,r.width)}px`,o.style.lineHeight=`${Math.max(r.height,12)}px`,o.style.fontStyle=a.fontStyle,o.style.fontWeight=a.fontWeight;let s=this.panZoomEnabled?this.zoomScale:1,c=Number.parseFloat(a.fontSize);o.style.fontSize=Number.isFinite(c)?`${c*s}px`:a.fontSize,o.style.fontFamily=a.fontFamily;let l=a.fill&&a.fill!==`none`&&i instanceof SVGElement?a.fill:a.color;o.style.color=l||`inherit`,this.overlayHost.appendChild(o),this.inlineInput=o;let u=e,d=u.style?.visibility??``;u.style&&(u.style.visibility=`hidden`),this.inlineHidden={el:u,prevVisibility:d},o.focus();let f=document.createRange();f.selectNodeContents(o);let p=window.getSelection();p?.removeAllRanges(),p?.addRange(f);let m=()=>{let e=(o.textContent??``).trim();this.closeInlineEditor(!1),e!==t&&n(e)};o.addEventListener(`keydown`,e=>{e.stopPropagation(),e.key===`Enter`&&(e.preventDefault(),m()),e.key===`Escape`&&this.closeInlineEditor(!1)}),o.addEventListener(`blur`,m)}closeInlineEditor(e){if(this.inlineHidden&&=(this.inlineHidden.el.style&&(this.inlineHidden.el.style.visibility=this.inlineHidden.prevVisibility),null),this.inlineInput){let t=this.inlineInput;this.inlineInput=null,t.remove(),e&&this.container.focus({preventScroll:!0})}}onKeyDown(e){if(!this.inlineInput){if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`z`){e.preventDefault(),e.shiftKey?this.editor.redo():this.editor.undo();return}if(!this.readOnly){if((e.key===`Delete`||e.key===`Backspace`)&&this.editor.selection.length){e.preventDefault(),this.editor.deleteEntities(this.editor.selection,`canvas`);return}if(e.key===`Escape`){this.cancelConnect(),this.editor.clearSelection(`canvas`);return}e.key===`Enter`&&this.editor.selection.length===1&&(e.preventDefault(),this.editEntityLabel(this.editor.selection[0]))}}}applySelectionStyles(){if(this.svg){this.svg.querySelectorAll(`.mw-selected`).forEach(e=>e.classList.remove(`mw-selected`));for(let e of this.editor.selection)this.svg.querySelectorAll(`[data-mw-entity="${CSS.escape(e)}"]`).forEach(e=>{e.classList.add(`mw-selected`)});this.updatePopover()}}hostRect(e){let t=e.getBoundingClientRect(),n=this.container.getBoundingClientRect();return{left:t.left-n.left+this.container.scrollLeft,top:t.top-n.top+this.container.scrollTop,width:t.width,height:t.height}}updatePopover(){if(this.popover.hide(),this.readOnly||this.inlineInput||this.inPlaceSession)return;let e=this.editor.selection;if(e.length!==1||!this.svg)return;let t=e[0],n=[...this.svg.querySelectorAll(`[data-mw-entity="${CSS.escape(t)}"]`)],r=null,i=this.popoverAnchorPick;if(i&&i.entityId===t&&n[i.index])r=n[i.index];else{let e=1/0;for(let t of n){let n=t.getBoundingClientRect().top;n<e&&(e=n,r=t)}}if(!r)return;let a=this.actionsFor(t);a.length&&this.popover.show(this.hostRect(r),a)}colorSection(e,t){return{title:e,columns:5,items:[...h.map(n=>({swatch:n,title:`${e}: ${n}`,onClick:()=>t(n)})),{swatch:`none`,title:`${e}: default`,onClick:()=>t(null)}]}}actionsFor(n){let{flowchart:r,sequence:i}=this.editor.result,a={icon:f.trash,title:`Delete`,danger:!0,onClick:()=>this.editor.deleteEntities([n])},o={icon:f.pencil,title:`Edit text`,onClick:()=>this.editEntityLabel(n)};if(r&&n.startsWith(`node:`)){let e=r.nodeById.get(n.slice(5));return e?[{icon:f.shapes,title:`Node shape`,panel:{title:`Node shape`,items:[{s:`rect`,g:`▭`,t:`Rectangle`},{s:`round`,g:`▢`,t:`Rounded`},{s:`stadium`,g:`⬭`,t:`Stadium`},{s:`diamond`,g:`◇`,t:`Diamond`},{s:`hexagon`,g:`⬡`,t:`Hexagon`},{s:`circle`,g:`◯`,t:`Circle`},{s:`cylinder`,g:`⛁`,t:`Cylinder`},{s:`subroutine`,g:`⧉`,t:`Subroutine`}].map(t=>({glyph:t.g,title:t.t,selected:e.shape===t.s,onClick:()=>this.editor.dispatch({type:`setNodeShape`,id:e.id,shape:t.s})}))}},{icon:f.palette,title:`Colors`,panel:{title:`Colors`,sections:[`fill`,`stroke`,`color`].map(t=>this.colorSection(t===`fill`?`Fill`:t===`stroke`?`Border`:`Text`,n=>this.editor.dispatch({type:`setNodeColor`,id:e.id,prop:t,value:n})))}},{icon:f.copy,title:`Duplicate`,onClick:()=>this.editor.dispatch({type:`duplicateNode`,id:e.id})},o,a]:[]}if(r&&n.startsWith(`subgraph:`))return[{icon:f.pencil,title:`Rename subgraph`,onClick:()=>this.editEntityLabel(n)}];if(r&&n.startsWith(`edge:`)){let e=r.edges.find(e=>e.entityId===n);return e?[{icon:f.arrowRight,title:`Edge type`,panel:{title:`Edge type`,items:[{line:`solid`,arrowEnd:`arrow`,g:`—▶`,t:`solid arrow`},{line:`dotted`,arrowEnd:`arrow`,g:`⋯▶`,t:`dotted arrow`},{line:`thick`,arrowEnd:`arrow`,g:`═▶`,t:`thick arrow`},{line:`solid`,arrowEnd:`open`,g:`——`,t:`solid open`},{line:`dotted`,arrowEnd:`open`,g:`⋯⋯`,t:`dotted open`},{line:`thick`,arrowEnd:`open`,g:`══`,t:`thick open`},{line:`solid`,arrowEnd:`cross`,g:`—✕`,t:`solid cross`},{line:`solid`,arrowEnd:`circle`,g:`—●`,t:`solid circle`}].map(t=>({glyph:t.g,title:t.t,selected:e.seg.line===t.line&&e.seg.arrowEnd===t.arrowEnd,onClick:()=>this.editor.dispatch({type:`setEdgeStyle`,edgeId:n,line:t.line,arrowEnd:t.arrowEnd})}))}},{icon:f.palette,title:`Edge color`,panel:{title:`Edge color`,sections:[this.colorSection(`Stroke`,e=>this.editor.dispatch({type:`setEdgeColor`,edgeId:n,value:e}))]}},{icon:f.arrowLeftRight,title:`Reverse direction`,onClick:()=>this.editor.dispatch({type:`reverseEdge`,edgeId:n})},o,a]:[]}if(this.editor.result.state&&n.startsWith(`state:`)){let e=this.editor.result.state.stateById.get(n.slice(6));return e?e.isComposite?[o]:[{icon:f.square,title:`State type`,panel:{title:`State type`,items:[{t:`state`,g:`▢`},{t:`choice`,g:`◇`},{t:`fork`,g:`⑃`},{t:`join`,g:`⑂`}].map(t=>({glyph:t.g,title:t.t,selected:(e.stereotype??`state`)===t.t,onClick:()=>this.editor.dispatch({type:`st.setStateType`,id:e.id,stype:t.t})}))}},{icon:f.stickyNote,title:`Add note`,panel:{title:`Note`,items:[`left`,`right`].map(t=>({glyph:t===`left`?`◧`:`◨`,title:`Note ${t}`,onClick:()=>this.editor.dispatch({type:`st.addStateNote`,id:e.id,side:t})}))}},{icon:f.frame,title:`Move to composite`,onClick:()=>this.editor.dispatch({type:`st.moveToComposite`,id:e.id})},o,a]:[]}if(this.editor.result.state&&n.startsWith(`trans:`))return[{icon:f.arrowLeftRight,title:`Reverse direction`,onClick:()=>this.editor.dispatch({type:`st.reverseTransition`,transId:n})},o,a];if(this.editor.result.classGraph&&n.startsWith(`class:`)){let e=this.editor.result.classGraph.classById.get(n.slice(6));return e?[{icon:f.listPlus,title:`Add member`,onClick:()=>{this.editor.dispatch({type:`cl.addMember`,id:e.id,text:`+attribute`})}},{icon:f.braces,title:`Annotation`,panel:{title:`Annotation`,items:[...[`interface`,`abstract`,`service`,`enumeration`].map(t=>({glyph:t,title:`<<${t}>>`,onClick:()=>this.editor.dispatch({type:`cl.setAnnotation`,id:e.id,annotation:t})})),{glyph:`none`,title:`Remove annotation`,onClick:()=>this.editor.dispatch({type:`cl.setAnnotation`,id:e.id,annotation:null})}]}},{icon:f.stickyNote,title:`Add note`,onClick:()=>this.editor.dispatch({type:`cl.addNoteFor`,id:e.id})},{icon:f.pencil,title:`Rename class`,onClick:()=>this.editEntityLabel(n)},a]:[]}if(this.editor.result.classGraph&&n.startsWith(`rel:`)){let e=this.editor.result.classGraph.relations.find(e=>e.entityId===n);return e?[{icon:f.arrowRight,title:`Relation type`,panel:{title:`Relation type`,items:[{op:`<|--`,g:`◁—`,t:`inheritance`},{op:`*--`,g:`◆—`,t:`composition`},{op:`o--`,g:`◇—`,t:`aggregation`},{op:`-->`,g:`—▶`,t:`association`},{op:`--`,g:`——`,t:`link (solid)`},{op:`..>`,g:`⋯▶`,t:`dependency`},{op:`..|>`,g:`⋯▷`,t:`realization`},{op:`..`,g:`⋯⋯`,t:`link (dashed)`}].map(t=>({glyph:t.g,title:t.t,selected:e.stmt.op===t.op,onClick:()=>this.editor.dispatch({type:`cl.setRelationType`,relId:n,op:t.op})}))}},{icon:f.arrowLeftRight,title:`Reverse direction`,onClick:()=>this.editor.dispatch({type:`cl.reverseRelation`,relId:n})},{glyph:`1:1`,title:`Cardinality (e.g. 1, 0..1, 1..*, *)`,onClick:()=>{let t=this.entityElement(n);if(!t)return;this.popover.hide();let r=`${e.stmt.sourceCard??``}:${e.stmt.targetCard??``}`;this.openOverlayEditor(t,r,t=>{let[r=``,i=``]=t.split(`:`);this.editor.dispatch({type:`cl.setCardinality`,relId:n,side:`source`,value:r.trim()||null},`canvas`);let a=this.editor.result.classGraph?.relations.find(t=>t.lineIndex===e.lineIndex&&t.source===e.source&&t.target===e.target);a&&this.editor.dispatch({type:`cl.setCardinality`,relId:a.entityId,side:`target`,value:i.trim()||null},`canvas`)})}},o,a]:[]}if(this.editor.result.er&&n.startsWith(`entity:`)){let e=this.editor.result.er.entityById.get(n.slice(7));return e?[{icon:f.listPlus,title:`Add attribute`,onClick:()=>this.editor.dispatch({type:`er.addAttribute`,id:e.id})},{icon:f.pencil,title:`Rename entity`,onClick:()=>this.editEntityLabel(n)},a]:[]}if(this.editor.result.er&&n.startsWith(`erel:`)){let e=this.editor.result.er.relations.find(e=>e.entityId===n);if(!e)return[];let t=[{c:`zero-or-one`,g:`0..1`},{c:`exactly-one`,g:`1`},{c:`zero-or-more`,g:`0..*`},{c:`one-or-more`,g:`1..*`}],r=r=>({icon:r===`left`?f.arrowLeftToLine:f.arrowRightToLine,title:`${r===`left`?`Source`:`Target`} cardinality`,panel:{title:`${r===`left`?e.source:e.target} cardinality`,items:t.map(e=>({glyph:e.g,title:e.c,onClick:()=>this.editor.dispatch({type:`er.setCardinality`,relId:n,side:r,card:e.c})}))}});return[r(`left`),r(`right`),{icon:e.stmt.line===`--`?f.minus:f.ellipsis,title:e.stmt.line===`--`?`Make non-identifying (dashed)`:`Make identifying (solid)`,onClick:()=>this.editor.dispatch({type:`er.setIdentifying`,relId:n,identifying:e.stmt.line!==`--`})},o,a]}if(this.editor.result.pie&&n.startsWith(`slice:`)){let e=this.editor.result.pie.slices.find(e=>e.entityId===n);return e?[{icon:f.hash,title:`Edit value`,onClick:()=>this.editEntityLabel(n)},{icon:f.pencil,title:`Edit label`,onClick:()=>{let t=this.entityElement(n);t&&(this.popover.hide(),this.openOverlayEditor(t,e.label,e=>this.editor.dispatch({type:`pie.setLabel`,sliceId:n,label:e},`canvas`)))}},a]:[]}if(this.editor.result.gantt&&n.startsWith(`task:`)){let e=this.editor.result.gantt.tasks.find(e=>e.entityId===n);return e?[{icon:f.pencil,title:`Rename task`,onClick:()=>this.editEntityLabel(n)},{icon:f.calendar,title:`Edit schedule (id, start, duration)`,onClick:()=>{let t=this.entityElement(n);t&&(this.popover.hide(),this.openOverlayEditor(t,e.meta,e=>this.editor.dispatch({type:`gantt.setTaskMeta`,taskId:n,meta:e},`canvas`)))}},a]:[]}if(this.editor.result.lineItems&&n.startsWith(`item:`))return[{icon:f.pencil,title:`Edit line`,onClick:()=>this.editEntityLabel(n)},a];if(i&&n.startsWith(`participant:`)){let e=i.participantById.get(n.slice(12));if(!e)return[];let r={participant:`▭`,actor:`웃`,boundary:`⊢○`,control:`◉`,entity:`◯`,database:`⛁`,collections:`⧉`,queue:`▤`};return[{icon:f.user,title:`Participant type`,panel:{title:`Participant type`,items:t.map(t=>({glyph:r[t],title:t,selected:e.ptype===t,onClick:()=>this.editor.dispatch({type:`seq.setParticipantType`,id:e.id,ptype:t})}))}},{icon:f.pencil,title:`Rename`,onClick:()=>this.editEntityLabel(n)},a]}if(i&&n.startsWith(`event:`)){let t=i.events.find(e=>e.entityId===n);if(!t)return[];if(t.kind===`message`){let r={"->":`——`,"->>":`—▶`,"-->":`⋯⋯`,"-->>":`⋯▶`,"-x":`—✕`,"--x":`⋯✕`,"-)":`—⟩`,"--)":`⋯⟩`};return[{icon:f.arrowRight,title:`Message type`,panel:{title:`Message type`,items:e.map(e=>({glyph:r[e.op],title:e.label,selected:t.stmt.op===e.op,onClick:()=>this.editor.dispatch({type:`seq.setMessageOp`,eventId:n,op:e.op})}))}},{icon:f.arrowLeftRight,title:`Reverse direction`,onClick:()=>this.editor.dispatch({type:`seq.reverseMessage`,eventId:n})},{icon:f.group,title:`Wrap in fragment`,panel:{title:`Fragment`,items:[`loop`,`alt`,`opt`,`par`,`critical`,`break`,`rect`].map(e=>({glyph:e,title:`Wrap in ${e}`,onClick:()=>this.editor.dispatch({type:`seq.wrapInFragment`,eventId:n,kind:e})}))}},o,a]}return[o,a]}return[]}computeDropSlots(){let e=this.editor.result.sequence;if(this.dropSlots=[],!e||!this.seqCorrelation)return;let t=e.events.map(e=>{let t=this.seqCorrelation.events.get(e.entityId);if(!t)return null;let n=this.hostRect(t);return{ev:e,y:n.top+n.height/2}}).filter(e=>e!==null);if(t.length){this.dropSlots.push({y:t[0].y-24,afterEvent:null});for(let e=1;e<t.length;e++)this.dropSlots.push({y:(t[e-1].y+t[e].y)/2,afterEvent:t[e-1].ev.entityId});this.dropSlots.push({y:t[t.length-1].y+24,afterEvent:t[t.length-1].ev.entityId})}}nearestSlot(e){let t=null,n=1/0;for(let r of this.dropSlots){let i=Math.abs(r.y-e);i<n&&(n=i,t=r)}return t}showDropIndicator(e){this.dropIndicator||(this.dropIndicator=document.createElement(`div`),this.dropIndicator.className=`mw-drop-indicator`,this.overlayHost.appendChild(this.dropIndicator)),this.dropIndicator.style.top=`${e}px`}plusHovered=!1;lifelineClearTimer=null;onLifelineHover(e){if(this.readOnly||!this.seqCorrelation||this.connectSource||!this.editor.result.sequence)return;let t=null;for(let[n,r]of this.seqCorrelation.lifelines){let i=r.getBoundingClientRect(),a=i.left+i.width/2;if(Math.abs(e.clientX-a)<=16&&e.clientY>=i.top-8&&e.clientY<=i.bottom+8){t=n;break}}t!==this.hoveredLifeline&&(t?this.showLifelinePlus(t):this.scheduleLifelineClear())}showLifelinePlus(e){this.clearLifelineUi();let t=this.editor.result.sequence,n=this.seqCorrelation?.lifelines.get(e);if(!t||!n)return;this.hoveredLifeline=e;let r=e.slice(12),i=this.hostRect(n),a=i.left+i.width/2,o=[],s=t.events.map(e=>{let t=this.seqCorrelation?.events.get(e.entityId);if(!t)return null;let n=this.hostRect(t);return{ev:e,y:n.top+n.height/2}}).filter(e=>e!==null);if(s.length===0)o.push({y:i.top+i.height/2,afterEvent:null});else{o.push({y:(i.top+s[0].y)/2,afterEvent:null});for(let e=1;e<s.length;e++)o.push({y:(s[e-1].y+s[e].y)/2,afterEvent:s[e-1].ev.entityId});o.push({y:(s[s.length-1].y+i.top+i.height)/2,afterEvent:s[s.length-1].ev.entityId})}for(let e of o){let t=document.createElement(`button`);t.type=`button`,t.className=`mw-lifeline-plus`,t.textContent=`+`,t.title=`Insert here (self message / note)`,t.style.left=`${a}px`,t.style.top=`${e.y}px`,t.addEventListener(`pointerenter`,()=>{this.plusHovered=!0}),t.addEventListener(`pointerleave`,()=>{this.plusHovered=!1,this.scheduleLifelineClear()}),t.addEventListener(`click`,n=>{n.stopPropagation(),this.openPlusMenu(t,r,e.afterEvent)}),this.overlayHost.appendChild(t),this.plusButtons.push(t)}}openPlusMenu(e,t,n){this.plusMenu?.remove();let r=document.createElement(`div`);r.className=`mw-plus-menu`,r.style.left=e.style.left,r.style.top=`${parseFloat(e.style.top)+12}px`,r.addEventListener(`pointerdown`,e=>e.stopPropagation());let i=(e,t)=>{let n=document.createElement(`button`);n.type=`button`,n.textContent=e,n.addEventListener(`click`,e=>{e.stopPropagation(),this.clearLifelineUi(),t()}),r.appendChild(n)};i(`↩ Self message`,()=>{let e=this.editor.dispatch({type:`seq.addMessage`,source:t,target:t,text:`message`,afterEvent:n},`canvas`);e?.created?.[0]&&(this.pendingEditEntity=e.created[0])});let a=(e,r)=>i(e,()=>{let e=this.editor.dispatch({type:`seq.addNote`,participant:t,placement:r,text:`note`,afterEvent:n},`canvas`);e?.created?.[0]&&(this.pendingEditEntity=e.created[0])});a(`▭ Note over`,`over`),a(`▭ Note left`,`left of`),a(`▭ Note right`,`right of`),this.overlayHost.appendChild(r),this.plusMenu=r}scheduleLifelineClear(){this.lifelineClearTimer&&clearTimeout(this.lifelineClearTimer),this.lifelineClearTimer=setTimeout(()=>{!this.plusHovered&&!this.plusMenu&&this.clearLifelineUi()},400)}clearLifelineUi(){this.plusButtons.forEach(e=>e.remove()),this.plusButtons=[],this.plusMenu?.remove(),this.plusMenu=null,this.hoveredLifeline=null,this.plusHovered=!1}clientToSvg(e,t){if(!this.svg)return null;let n=this.svg.getScreenCTM();if(!n)return null;let r=new DOMPoint(e,t).matrixTransform(n.inverse());return{x:r.x,y:r.y}}entityCenter(e){let t=this.entityElement(e);if(!t)return null;let n=t.getBoundingClientRect();return this.clientToSvg(n.left+n.width/2,n.top+n.height/2)}async validate(){try{return await this.mermaid.parse(this.editor.code),!0}catch(e){let t=e instanceof Error?e.message.split(`
124
+ `)[0]:String(e);return this.editor.setDiagnostics([{message:t,span:null,severity:`error`,source:`mermaid`}]),!1}}destroy(){this.renderTimer&&clearTimeout(this.renderTimer),this.lifelineClearTimer&&clearTimeout(this.lifelineClearTimer),this.inPlaceSession?.liveTimer&&clearTimeout(this.inPlaceSession.liveTimer),this.inPlaceSession=null,this.svgTransformObserver?.disconnect(),this.svgTransformObserver=null,this.disposers.forEach(e=>e()),this.closeInlineEditor(!1),this.cancelConnect(),this.clearLifelineUi(),this.popover.hide(),this.container.classList.remove(`mw-canvas`,`mw-tool-connect`,`mw-readonly`,`mw-panzoom`,`mw-panning`),this.svgHost.remove(),this.overlayHost.remove(),this.errorBadge.remove(),this.zoomControls?.remove()}};export{S as MermaidCanvasView,p as Popover,r as correlateFlowchart,u as correlateSequence};
@@ -1 +1 @@
1
- import{n as e}from"./chunk-U6XO7XAA-BrFJStxD.js";import{n as t}from"./chunk-Y2CYZVJY-CX0MjbSu.js";import{t as n}from"./src-BlkIpXCO.js";import"./chunk-WYO6CB5R-DyzfGKK0.js";import"./chunk-VAUOI2AC-BGyW6aBf.js";import{n as r,r as i,t as a}from"./chunk-MOJQB5TN-Pk-JS7uF.js";import{t as o}from"./chunk-JWPE2WC7-BuX-EugW.js";import{t as s}from"./mermaid-parser.core-BO-Jr815.js";var c=e().RailroadEbnf.parser.LangiumParser,l=t(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformChoice`),u=t(e=>{let t=e.elements.map(p);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformSequence`),d=t(e=>{switch(e.$type){case`EbnfTerminal`:return{type:`terminal`,value:e.value};case`EbnfNonTerminal`:return{type:`nonterminal`,name:e.name};case`EbnfSpecial`:return{type:`special`,text:e.text};case`EbnfGroup`:return l(e.element);case`EbnfOptional`:return{type:`optional`,element:l(e.element)};case`EbnfRepetition`:return{type:`repetition`,element:l(e.element),min:0,max:1/0};default:throw Error(`Unsupported EBNF primary node: ${e.$type}`)}},`transformPrimary`),f=t((e,t)=>{switch(t.$type){case`EbnfOptionalPostfix`:return{type:`optional`,element:e};case`EbnfZeroOrMorePostfix`:return{type:`repetition`,element:e,min:0,max:1/0};case`EbnfOneOrMorePostfix`:return{type:`repetition`,element:e,min:1,max:1/0};case`EbnfExceptionPostfix`:return{type:`sequence`,elements:[e,{type:`terminal`,value:`-`},d(t.except)]};default:throw Error(`Unsupported EBNF postfix node: ${t.$type}`)}},`transformPostfix`),p=t(e=>e.postfixes.reduce((e,t)=>f(e,t),d(e.base)),`transformTerm`),m=t(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=t(e=>{o(e,a),e.title&&a.setTitle(e.title),e.rules.map(e=>a.addRule(m(e)))},`populateDb`),g={parser:{parse:t(e=>{a.clear(),n.debug(`[EBNF Parser] Starting Langium parse`);let t=c.parse(e);if(t.lexerErrors.length>0||t.parserErrors.length>0)throw new s(t);let r=t.value;n.debug(`[EBNF Parser] Parsed rules:`,r.rules.length),h(r),n.debug(`[EBNF Parser] Parse complete`)},`parse`),parser:{yy:a}},db:a,renderer:i,styles:r};export{g as diagram};
1
+ import{n as e}from"./chunk-U6XO7XAA-DbjPtJON.js";import{n as t}from"./chunk-Y2CYZVJY-CX0MjbSu.js";import{t as n}from"./src-BlkIpXCO.js";import"./chunk-WYO6CB5R-DyzfGKK0.js";import"./chunk-VAUOI2AC-BGyW6aBf.js";import{n as r,r as i,t as a}from"./chunk-MOJQB5TN-Pk-JS7uF.js";import{t as o}from"./chunk-JWPE2WC7-BuX-EugW.js";import{t as s}from"./mermaid-parser.core-3Xu6H-xr.js";var c=e().RailroadEbnf.parser.LangiumParser,l=t(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformChoice`),u=t(e=>{let t=e.elements.map(p);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformSequence`),d=t(e=>{switch(e.$type){case`EbnfTerminal`:return{type:`terminal`,value:e.value};case`EbnfNonTerminal`:return{type:`nonterminal`,name:e.name};case`EbnfSpecial`:return{type:`special`,text:e.text};case`EbnfGroup`:return l(e.element);case`EbnfOptional`:return{type:`optional`,element:l(e.element)};case`EbnfRepetition`:return{type:`repetition`,element:l(e.element),min:0,max:1/0};default:throw Error(`Unsupported EBNF primary node: ${e.$type}`)}},`transformPrimary`),f=t((e,t)=>{switch(t.$type){case`EbnfOptionalPostfix`:return{type:`optional`,element:e};case`EbnfZeroOrMorePostfix`:return{type:`repetition`,element:e,min:0,max:1/0};case`EbnfOneOrMorePostfix`:return{type:`repetition`,element:e,min:1,max:1/0};case`EbnfExceptionPostfix`:return{type:`sequence`,elements:[e,{type:`terminal`,value:`-`},d(t.except)]};default:throw Error(`Unsupported EBNF postfix node: ${t.$type}`)}},`transformPostfix`),p=t(e=>e.postfixes.reduce((e,t)=>f(e,t),d(e.base)),`transformTerm`),m=t(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=t(e=>{o(e,a),e.title&&a.setTitle(e.title),e.rules.map(e=>a.addRule(m(e)))},`populateDb`),g={parser:{parse:t(e=>{a.clear(),n.debug(`[EBNF Parser] Starting Langium parse`);let t=c.parse(e);if(t.lexerErrors.length>0||t.parserErrors.length>0)throw new s(t);let r=t.value;n.debug(`[EBNF Parser] Parsed rules:`,r.rules.length),h(r),n.debug(`[EBNF Parser] Parse complete`)},`parse`),parser:{yy:a}},db:a,renderer:i,styles:r};export{g as diagram};
@@ -0,0 +1 @@
1
+ import"./chunk-KEIR6QF5-dYt3HMDt.js";import{n as e}from"./chunk-5JV3BV7I-B6P7lOib.js";export{e as createEventModelingServices};
@@ -0,0 +1 @@
1
+ import"./chunk-KEIR6QF5-dYt3HMDt.js";import{n as e}from"./chunk-CYSBUYHQ-D8hsDORv.js";export{e as createGitGraphServices};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-CX0MjbSu.js";import{t}from"./src-BlkIpXCO.js";import{H as n,K as r,U as i,Y as a,a as o,b as s,f as c,s as l,v as u,w as d,x as f,y as p}from"./chunk-WYO6CB5R-DyzfGKK0.js";import{C as m}from"./src-DlwJ21NB.js";import{g as h,i as g,m as _}from"./chunk-ICXQ74PX-BF1AraUQ.js";import{t as v}from"./chunk-JWPE2WC7-BuX-EugW.js";import{n as y}from"./mermaid-parser.core-BO-Jr815.js";import{t as b}from"./chunk-2Q5K7J3B-Bk0ErfBQ.js";var x={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},ee=c.gitGraph,S=e(()=>g({...ee,...s().gitGraph}),`getConfig`),C=new b(()=>{let e=S(),t=e.mainBranchName,n=e.mainBranchOrder;return{mainBranchName:t,commits:new Map,head:null,branchConfig:new Map([[t,{name:t,order:n}]]),branches:new Map([[t,null]]),currBranch:t,direction:`LR`,seq:0,options:{}}});function w(){return _({length:7})}e(w,`getID`);function T(e,t){let n=Object.create(null);return e.reduce((e,r)=>{let i=t(r);return n[i]||(n[i]=!0,e.push(r)),e},[])}e(T,`uniqBy`);var te=e(function(e){C.records.direction=e},`setDirection`),ne=e(function(e){t.debug(`options str`,e),e=e?.trim(),e||=`{}`;try{C.records.options=JSON.parse(e)}catch(e){t.error(`error while parsing gitGraph options`,e.message)}},`setOptions`),re=e(function(){return C.records.options},`getOptions`),ie=e(function(e){let n=e.msg,r=e.id,i=e.type,a=e.tags;t.info(`commit`,n,r,i,a),t.debug(`Entering commit:`,n,r,i,a);let o=S();r=l.sanitizeText(r,o),n=l.sanitizeText(n,o),a=a?.map(e=>l.sanitizeText(e,o));let s={id:r||C.records.seq+`-`+w(),message:n,seq:C.records.seq++,type:i??x.NORMAL,tags:a??[],parents:C.records.head==null?[]:[C.records.head.id],branch:C.records.currBranch};C.records.head=s,t.info(`main branch`,o.mainBranchName),C.records.commits.has(s.id)&&t.warn(`Commit ID ${s.id} already exists`),C.records.commits.set(s.id,s),C.records.branches.set(C.records.currBranch,s.id),t.debug(`in pushCommit `+s.id)},`commit`),ae=e(function(e){let n=e.name,r=e.order;if(n=l.sanitizeText(n,S()),C.records.branches.has(n))throw Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${n}")`);C.records.branches.set(n,C.records.head==null?null:C.records.head.id),C.records.branchConfig.set(n,{name:n,order:r}),E(n),t.debug(`in createBranch`)},`branch`),oe=e(e=>{let n=e.branch,r=e.id,i=e.type,a=e.tags,o=S();n=l.sanitizeText(n,o),r&&=l.sanitizeText(r,o);let s=C.records.branches.get(C.records.currBranch),c=C.records.branches.get(n),u=s?C.records.commits.get(s):void 0,d=c?C.records.commits.get(c):void 0;if(u&&d&&u.branch===n)throw Error(`Cannot merge branch '${n}' into itself.`);if(C.records.currBranch===n){let e=Error(`Incorrect usage of "merge". Cannot merge a branch to itself`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch abc`]},e}if(u===void 0||!u){let e=Error(`Incorrect usage of "merge". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`commit`]},e}if(!C.records.branches.has(n)){let e=Error(`Incorrect usage of "merge". Branch to be merged (`+n+`) does not exist`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch ${n}`]},e}if(d===void 0||!d){let e=Error(`Incorrect usage of "merge". Branch to be merged (`+n+`) has no commits`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`"commit"`]},e}if(u===d){let e=Error(`Incorrect usage of "merge". Both branches have same head`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch abc`]},e}if(r&&C.records.commits.has(r)){let e=Error(`Incorrect usage of "merge". Commit with id:`+r+` already exists, use different custom id`);throw e.hash={text:`merge ${n} ${r} ${i} ${a?.join(` `)}`,token:`merge ${n} ${r} ${i} ${a?.join(` `)}`,expected:[`merge ${n} ${r}_UNIQUE ${i} ${a?.join(` `)}`]},e}let f=c||``,p={id:r||`${C.records.seq}-${w()}`,message:`merged branch ${n} into ${C.records.currBranch}`,seq:C.records.seq++,parents:C.records.head==null?[]:[C.records.head.id,f],branch:C.records.currBranch,type:x.MERGE,customType:i,customId:!!r,tags:a??[]};C.records.head=p,C.records.commits.set(p.id,p),C.records.branches.set(C.records.currBranch,p.id),t.debug(C.records.branches),t.debug(`in mergeBranch`)},`merge`),se=e(function(e){let n=e.id,r=e.targetId,i=e.tags,a=e.parent;t.debug(`Entering cherryPick:`,n,r,i);let o=S();if(n=l.sanitizeText(n,o),r=l.sanitizeText(r,o),i=i?.map(e=>l.sanitizeText(e,o)),a=l.sanitizeText(a,o),!n||!C.records.commits.has(n)){let e=Error(`Incorrect usage of "cherryPick". Source commit id should exist and provided`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let s=C.records.commits.get(n);if(s===void 0||!s)throw Error(`Incorrect usage of "cherryPick". Source commit id should exist and provided`);if(a&&!(Array.isArray(s.parents)&&s.parents.includes(a)))throw Error(`Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.`);let c=s.branch;if(s.type===x.MERGE&&!a)throw Error(`Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.`);if(!r||!C.records.commits.has(r)){if(c===C.records.currBranch){let e=Error(`Incorrect usage of "cherryPick". Source commit is already on current branch`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let e=C.records.branches.get(C.records.currBranch);if(e===void 0||!e){let e=Error(`Incorrect usage of "cherry-pick". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let o=C.records.commits.get(e);if(o===void 0||!o){let e=Error(`Incorrect usage of "cherry-pick". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let l={id:C.records.seq+`-`+w(),message:`cherry-picked ${s?.message} into ${C.records.currBranch}`,seq:C.records.seq++,parents:C.records.head==null?[]:[C.records.head.id,s.id],branch:C.records.currBranch,type:x.CHERRY_PICK,tags:i?i.filter(Boolean):[`cherry-pick:${s.id}${s.type===x.MERGE?`|parent:${a}`:``}`]};C.records.head=l,C.records.commits.set(l.id,l),C.records.branches.set(C.records.currBranch,l.id),t.debug(C.records.branches),t.debug(`in cherryPick`)}},`cherryPick`),E=e(function(e){if(e=l.sanitizeText(e,S()),C.records.branches.has(e)){C.records.currBranch=e;let t=C.records.branches.get(C.records.currBranch);t===void 0||!t?C.records.head=null:C.records.head=C.records.commits.get(t)??null}else{let t=Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${e}")`);throw t.hash={text:`checkout ${e}`,token:`checkout ${e}`,expected:[`branch ${e}`]},t}},`checkout`);function D(e,t,n){let r=e.indexOf(t);r===-1?e.push(n):e.splice(r,1,n)}e(D,`upsert`);function O(e){let n=e.reduce((e,t)=>e.seq>t.seq?e:t,e[0]),r=``;e.forEach(function(e){e===n?r+=` *`:r+=` |`});let i=[r,n.id,n.seq];for(let e in C.records.branches)C.records.branches.get(e)===n.id&&i.push(e);if(t.debug(i.join(` `)),n.parents&&n.parents.length==2&&n.parents[0]&&n.parents[1]){let t=C.records.commits.get(n.parents[0]);D(e,n,t),n.parents[1]&&e.push(C.records.commits.get(n.parents[1]))}else if(n.parents.length==0)return;else if(n.parents[0]){let t=C.records.commits.get(n.parents[0]);D(e,n,t)}e=T(e,e=>e.id),O(e)}e(O,`prettyPrintCommitHistory`);var ce=e(function(){t.debug(C.records.commits);let e=k()[0];O([e])},`prettyPrint`),le=e(function(){C.reset(),o()},`clear`),ue=e(function(){return[...C.records.branchConfig.values()].map((e,t)=>e.order!==null&&e.order!==void 0?e:{...e,order:parseFloat(`0.${t}`)}).sort((e,t)=>(e.order??0)-(t.order??0)).map(({name:e})=>({name:e}))},`getBranchesAsObjArray`),de=e(function(){return C.records.branches},`getBranches`),fe=e(function(){return C.records.commits},`getCommits`),k=e(function(){let e=[...C.records.commits.values()];return e.forEach(function(e){t.debug(e.id)}),e.sort((e,t)=>e.seq-t.seq),e},`getCommitsArray`),A={commitType:x,getConfig:S,setDirection:te,setOptions:ne,getOptions:re,commit:ie,branch:ae,merge:oe,cherryPick:se,checkout:E,prettyPrint:ce,clear:le,getBranchesAsObjArray:ue,getBranches:de,getCommits:fe,getCommitsArray:k,getCurrentBranch:e(function(){return C.records.currBranch},`getCurrentBranch`),getDirection:e(function(){return C.records.direction},`getDirection`),getHead:e(function(){return C.records.head},`getHead`),setAccTitle:i,getAccTitle:p,getAccDescription:u,setAccDescription:n,setDiagramTitle:r,getDiagramTitle:d},pe=e((e,t)=>{v(e,t),e.dir&&t.setDirection(e.dir);for(let n of e.statements)me(n,t)},`populate`),me=e((n,r)=>{let i={Commit:e(e=>r.commit(he(e)),`Commit`),Branch:e(e=>r.branch(ge(e)),`Branch`),Merge:e(e=>r.merge(_e(e)),`Merge`),Checkout:e(e=>r.checkout(ve(e)),`Checkout`),CherryPicking:e(e=>r.cherryPick(ye(e)),`CherryPicking`)}[n.$type];i?i(n):t.error(`Unknown statement type: ${n.$type}`)},`parseStatement`),he=e(e=>({id:e.id,msg:e.message??``,type:e.type===void 0?x.NORMAL:x[e.type],tags:e.tags??void 0}),`parseCommit`),ge=e(e=>({name:e.name,order:e.order??0}),`parseBranch`),_e=e(e=>({branch:e.branch,id:e.id??``,type:e.type===void 0?void 0:x[e.type],tags:e.tags??void 0}),`parseMerge`),ve=e(e=>e.branch,`parseCheckout`),ye=e(e=>({id:e.id,targetId:``,tags:e.tags?.length===0?void 0:e.tags,parent:e.parent}),`parseCherryPicking`),be={parse:e(async e=>{let n=await y(`gitGraph`,e);t.debug(n),pe(n,A)},`parse`)},j=10,M=40,N=4,P=2,F=8,I=new Set([`redux`,`redux-dark`,`redux-color`,`redux-dark-color`]),L=12,R=new Set([`redux-color`,`redux-dark-color`]),xe=new Set([`dark`,`redux-dark`,`redux-dark-color`,`neo-dark`]),z=e((e,t,n=!1)=>n&&e>0?(e-1)%(t-1)+1:e%t,`calcColorIndex`),B=new Map,V=new Map,H=30,U=new Map,W=[],G=0,K=`LR`,q=e(()=>{B.clear(),V.clear(),U.clear(),G=0,W=[],K=`LR`},`clear`),J=e(e=>{let t=document.createElementNS(`http://www.w3.org/2000/svg`,`text`);return(typeof e==`string`?e.split(/\\n|\n|<br\s*\/?>/gi):e).forEach(e=>{let n=document.createElementNS(`http://www.w3.org/2000/svg`,`tspan`);n.setAttributeNS(`http://www.w3.org/XML/1998/namespace`,`xml:space`,`preserve`),n.setAttribute(`dy`,`1em`),n.setAttribute(`x`,`0`),n.setAttribute(`class`,`row`),n.textContent=e.trim(),t.appendChild(n)}),t},`drawText`),Y=e(t=>{let n,r,i;return K===`BT`?(r=e((e,t)=>e<=t,`comparisonFunc`),i=1/0):(r=e((e,t)=>e>=t,`comparisonFunc`),i=0),t.forEach(e=>{let t=K===`TB`||K==`BT`?V.get(e)?.y:V.get(e)?.x;t!==void 0&&r(t,i)&&(n=e,i=t)}),n},`findClosestParent`),Se=e(e=>{let t=``,n=1/0;return e.forEach(e=>{let r=V.get(e).y;r<=n&&(t=e,n=r)}),t||void 0},`findClosestParentBT`),Ce=e((e,t,n)=>{let r=n,i=n,a=[];e.forEach(e=>{let n=t.get(e);if(!n)throw Error(`Commit not found for key ${e}`);n.parents.length?(r=Te(n),i=Math.max(r,i)):a.push(n),Ee(n,r)}),r=i,a.forEach(e=>{De(e,r,n)}),e.forEach(e=>{let n=t.get(e);if(n?.parents.length){let e=Se(n.parents);r=V.get(e).y-M,r<=i&&(i=r);let t=B.get(n.branch).pos,a=r-j;V.set(n.id,{x:t,y:a})}})},`setParallelBTPos`),we=e(e=>{let t=Y(e.parents.filter(e=>e!==null));if(!t)throw Error(`Closest parent not found for commit ${e.id}`);let n=V.get(t)?.y;if(n===void 0)throw Error(`Closest parent position not found for commit ${e.id}`);return n},`findClosestParentPos`),Te=e(e=>we(e)+M,`calculateCommitPosition`),Ee=e((e,t)=>{let n=B.get(e.branch);if(!n)throw Error(`Branch not found for commit ${e.id}`);let r=n.pos,i=t+j;return V.set(e.id,{x:r,y:i}),{x:r,y:i}},`setCommitPosition`),De=e((e,t,n)=>{let r=B.get(e.branch);if(!r)throw Error(`Branch not found for commit ${e.id}`);let i=t+n,a=r.pos;V.set(e.id,{x:a,y:i})},`setRootPosition`),Oe=e((e,t,n,r,i,a)=>{let{theme:o}=f(),s=I.has(o??``),c=R.has(o??``),l=xe.has(o??``);if(a===x.HIGHLIGHT)e.append(`rect`).attr(`x`,n.x-10+(s?3:0)).attr(`y`,n.y-10+(s?3:0)).attr(`width`,s?14:20).attr(`height`,s?14:20).attr(`class`,`commit ${t.id} commit-highlight${z(i,F,c)} ${r}-outer`),e.append(`rect`).attr(`x`,n.x-6+(s?2:0)).attr(`y`,n.y-6+(s?2:0)).attr(`width`,s?8:12).attr(`height`,s?8:12).attr(`class`,`commit ${t.id} commit${z(i,F,c)} ${r}-inner`);else if(a===x.CHERRY_PICK)e.append(`circle`).attr(`cx`,n.x).attr(`cy`,n.y).attr(`r`,s?7:10).attr(`class`,`commit ${t.id} ${r}`),e.append(`circle`).attr(`cx`,n.x-3).attr(`cy`,n.y+2).attr(`r`,s?2.5:2.75).attr(`fill`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`circle`).attr(`cx`,n.x+3).attr(`cy`,n.y+2).attr(`r`,s?2.5:2.75).attr(`fill`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`line`).attr(`x1`,n.x+3).attr(`y1`,n.y+1).attr(`x2`,n.x).attr(`y2`,n.y-5).attr(`stroke`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`line`).attr(`x1`,n.x-3).attr(`y1`,n.y+1).attr(`x2`,n.x).attr(`y2`,n.y-5).attr(`stroke`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`);else{let o=e.append(`circle`);if(o.attr(`cx`,n.x),o.attr(`cy`,n.y),o.attr(`r`,s?7:10),o.attr(`class`,`commit ${t.id} commit${z(i,F,c)}`),a===x.MERGE){let a=e.append(`circle`);a.attr(`cx`,n.x),a.attr(`cy`,n.y),a.attr(`r`,s?5:6),a.attr(`class`,`commit ${r} ${t.id} commit${z(i,F,c)}`)}if(a===x.REVERSE){let a=e.append(`path`),o=s?4:5;a.attr(`d`,`M ${n.x-o},${n.y-o}L${n.x+o},${n.y+o}M${n.x-o},${n.y+o}L${n.x+o},${n.y-o}`).attr(`class`,`commit ${r} ${t.id} commit${z(i,F,c)}`)}}},`drawCommitBullet`),ke=e((e,t,n,r,i)=>{if(t.type!==x.CHERRY_PICK&&(t.customId&&t.type===x.MERGE||t.type!==x.MERGE)&&i.showCommitLabel){let a=e.append(`g`),o=a.insert(`rect`).attr(`class`,`commit-label-bkg`),s=a.append(`text`).attr(`x`,r).attr(`y`,n.y+25).attr(`class`,`commit-label`).text(t.id),c=s.node()?.getBBox();if(c&&(o.attr(`x`,n.posWithOffset-c.width/2-P).attr(`y`,n.y+13.5).attr(`width`,c.width+2*P).attr(`height`,c.height+2*P),K===`TB`||K===`BT`?(o.attr(`x`,n.x-(c.width+4*N+5)).attr(`y`,n.y-12),s.attr(`x`,n.x-(c.width+4*N)).attr(`y`,n.y+c.height-12)):s.attr(`x`,n.posWithOffset-c.width/2),i.rotateCommitLabel))if(K===`TB`||K===`BT`)s.attr(`transform`,`rotate(-45, `+n.x+`, `+n.y+`)`),o.attr(`transform`,`rotate(-45, `+n.x+`, `+n.y+`)`);else{let e=-7.5-(c.width+10)/25*9.5,t=10+c.width/25*8.5;a.attr(`transform`,`translate(`+e+`, `+t+`) rotate(-45, `+r+`, `+n.y+`)`)}}},`drawCommitLabel`),Ae=e((e,t,n,r)=>{if(t.tags.length>0){let i=0,a=0,o=0,s=[];for(let r of t.tags.reverse()){let t=e.insert(`polygon`),c=e.append(`circle`),l=e.append(`text`).attr(`y`,n.y-16-i).attr(`class`,`tag-label`).text(r),u=l.node()?.getBBox();if(!u)throw Error(`Tag bbox not found`);a=Math.max(a,u.width),o=Math.max(o,u.height),l.attr(`x`,n.posWithOffset-u.width/2),s.push({tag:l,hole:c,rect:t,yOffset:i}),i+=20}for(let{tag:e,hole:t,rect:i,yOffset:c}of s){let s=o/2,l=n.y-19.2-c;if(i.attr(`class`,`tag-label-bkg`).attr(`points`,`
1
+ import{n as e}from"./chunk-Y2CYZVJY-CX0MjbSu.js";import{t}from"./src-BlkIpXCO.js";import{H as n,K as r,U as i,Y as a,a as o,b as s,f as c,s as l,v as u,w as d,x as f,y as p}from"./chunk-WYO6CB5R-DyzfGKK0.js";import{C as m}from"./src-DlwJ21NB.js";import{g as h,i as g,m as _}from"./chunk-ICXQ74PX-BF1AraUQ.js";import{t as v}from"./chunk-JWPE2WC7-BuX-EugW.js";import{n as y}from"./mermaid-parser.core-3Xu6H-xr.js";import{t as b}from"./chunk-2Q5K7J3B-Bk0ErfBQ.js";var x={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},ee=c.gitGraph,S=e(()=>g({...ee,...s().gitGraph}),`getConfig`),C=new b(()=>{let e=S(),t=e.mainBranchName,n=e.mainBranchOrder;return{mainBranchName:t,commits:new Map,head:null,branchConfig:new Map([[t,{name:t,order:n}]]),branches:new Map([[t,null]]),currBranch:t,direction:`LR`,seq:0,options:{}}});function w(){return _({length:7})}e(w,`getID`);function T(e,t){let n=Object.create(null);return e.reduce((e,r)=>{let i=t(r);return n[i]||(n[i]=!0,e.push(r)),e},[])}e(T,`uniqBy`);var te=e(function(e){C.records.direction=e},`setDirection`),ne=e(function(e){t.debug(`options str`,e),e=e?.trim(),e||=`{}`;try{C.records.options=JSON.parse(e)}catch(e){t.error(`error while parsing gitGraph options`,e.message)}},`setOptions`),re=e(function(){return C.records.options},`getOptions`),ie=e(function(e){let n=e.msg,r=e.id,i=e.type,a=e.tags;t.info(`commit`,n,r,i,a),t.debug(`Entering commit:`,n,r,i,a);let o=S();r=l.sanitizeText(r,o),n=l.sanitizeText(n,o),a=a?.map(e=>l.sanitizeText(e,o));let s={id:r||C.records.seq+`-`+w(),message:n,seq:C.records.seq++,type:i??x.NORMAL,tags:a??[],parents:C.records.head==null?[]:[C.records.head.id],branch:C.records.currBranch};C.records.head=s,t.info(`main branch`,o.mainBranchName),C.records.commits.has(s.id)&&t.warn(`Commit ID ${s.id} already exists`),C.records.commits.set(s.id,s),C.records.branches.set(C.records.currBranch,s.id),t.debug(`in pushCommit `+s.id)},`commit`),ae=e(function(e){let n=e.name,r=e.order;if(n=l.sanitizeText(n,S()),C.records.branches.has(n))throw Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${n}")`);C.records.branches.set(n,C.records.head==null?null:C.records.head.id),C.records.branchConfig.set(n,{name:n,order:r}),E(n),t.debug(`in createBranch`)},`branch`),oe=e(e=>{let n=e.branch,r=e.id,i=e.type,a=e.tags,o=S();n=l.sanitizeText(n,o),r&&=l.sanitizeText(r,o);let s=C.records.branches.get(C.records.currBranch),c=C.records.branches.get(n),u=s?C.records.commits.get(s):void 0,d=c?C.records.commits.get(c):void 0;if(u&&d&&u.branch===n)throw Error(`Cannot merge branch '${n}' into itself.`);if(C.records.currBranch===n){let e=Error(`Incorrect usage of "merge". Cannot merge a branch to itself`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch abc`]},e}if(u===void 0||!u){let e=Error(`Incorrect usage of "merge". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`commit`]},e}if(!C.records.branches.has(n)){let e=Error(`Incorrect usage of "merge". Branch to be merged (`+n+`) does not exist`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch ${n}`]},e}if(d===void 0||!d){let e=Error(`Incorrect usage of "merge". Branch to be merged (`+n+`) has no commits`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`"commit"`]},e}if(u===d){let e=Error(`Incorrect usage of "merge". Both branches have same head`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch abc`]},e}if(r&&C.records.commits.has(r)){let e=Error(`Incorrect usage of "merge". Commit with id:`+r+` already exists, use different custom id`);throw e.hash={text:`merge ${n} ${r} ${i} ${a?.join(` `)}`,token:`merge ${n} ${r} ${i} ${a?.join(` `)}`,expected:[`merge ${n} ${r}_UNIQUE ${i} ${a?.join(` `)}`]},e}let f=c||``,p={id:r||`${C.records.seq}-${w()}`,message:`merged branch ${n} into ${C.records.currBranch}`,seq:C.records.seq++,parents:C.records.head==null?[]:[C.records.head.id,f],branch:C.records.currBranch,type:x.MERGE,customType:i,customId:!!r,tags:a??[]};C.records.head=p,C.records.commits.set(p.id,p),C.records.branches.set(C.records.currBranch,p.id),t.debug(C.records.branches),t.debug(`in mergeBranch`)},`merge`),se=e(function(e){let n=e.id,r=e.targetId,i=e.tags,a=e.parent;t.debug(`Entering cherryPick:`,n,r,i);let o=S();if(n=l.sanitizeText(n,o),r=l.sanitizeText(r,o),i=i?.map(e=>l.sanitizeText(e,o)),a=l.sanitizeText(a,o),!n||!C.records.commits.has(n)){let e=Error(`Incorrect usage of "cherryPick". Source commit id should exist and provided`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let s=C.records.commits.get(n);if(s===void 0||!s)throw Error(`Incorrect usage of "cherryPick". Source commit id should exist and provided`);if(a&&!(Array.isArray(s.parents)&&s.parents.includes(a)))throw Error(`Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.`);let c=s.branch;if(s.type===x.MERGE&&!a)throw Error(`Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.`);if(!r||!C.records.commits.has(r)){if(c===C.records.currBranch){let e=Error(`Incorrect usage of "cherryPick". Source commit is already on current branch`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let e=C.records.branches.get(C.records.currBranch);if(e===void 0||!e){let e=Error(`Incorrect usage of "cherry-pick". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let o=C.records.commits.get(e);if(o===void 0||!o){let e=Error(`Incorrect usage of "cherry-pick". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let l={id:C.records.seq+`-`+w(),message:`cherry-picked ${s?.message} into ${C.records.currBranch}`,seq:C.records.seq++,parents:C.records.head==null?[]:[C.records.head.id,s.id],branch:C.records.currBranch,type:x.CHERRY_PICK,tags:i?i.filter(Boolean):[`cherry-pick:${s.id}${s.type===x.MERGE?`|parent:${a}`:``}`]};C.records.head=l,C.records.commits.set(l.id,l),C.records.branches.set(C.records.currBranch,l.id),t.debug(C.records.branches),t.debug(`in cherryPick`)}},`cherryPick`),E=e(function(e){if(e=l.sanitizeText(e,S()),C.records.branches.has(e)){C.records.currBranch=e;let t=C.records.branches.get(C.records.currBranch);t===void 0||!t?C.records.head=null:C.records.head=C.records.commits.get(t)??null}else{let t=Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${e}")`);throw t.hash={text:`checkout ${e}`,token:`checkout ${e}`,expected:[`branch ${e}`]},t}},`checkout`);function D(e,t,n){let r=e.indexOf(t);r===-1?e.push(n):e.splice(r,1,n)}e(D,`upsert`);function O(e){let n=e.reduce((e,t)=>e.seq>t.seq?e:t,e[0]),r=``;e.forEach(function(e){e===n?r+=` *`:r+=` |`});let i=[r,n.id,n.seq];for(let e in C.records.branches)C.records.branches.get(e)===n.id&&i.push(e);if(t.debug(i.join(` `)),n.parents&&n.parents.length==2&&n.parents[0]&&n.parents[1]){let t=C.records.commits.get(n.parents[0]);D(e,n,t),n.parents[1]&&e.push(C.records.commits.get(n.parents[1]))}else if(n.parents.length==0)return;else if(n.parents[0]){let t=C.records.commits.get(n.parents[0]);D(e,n,t)}e=T(e,e=>e.id),O(e)}e(O,`prettyPrintCommitHistory`);var ce=e(function(){t.debug(C.records.commits);let e=k()[0];O([e])},`prettyPrint`),le=e(function(){C.reset(),o()},`clear`),ue=e(function(){return[...C.records.branchConfig.values()].map((e,t)=>e.order!==null&&e.order!==void 0?e:{...e,order:parseFloat(`0.${t}`)}).sort((e,t)=>(e.order??0)-(t.order??0)).map(({name:e})=>({name:e}))},`getBranchesAsObjArray`),de=e(function(){return C.records.branches},`getBranches`),fe=e(function(){return C.records.commits},`getCommits`),k=e(function(){let e=[...C.records.commits.values()];return e.forEach(function(e){t.debug(e.id)}),e.sort((e,t)=>e.seq-t.seq),e},`getCommitsArray`),A={commitType:x,getConfig:S,setDirection:te,setOptions:ne,getOptions:re,commit:ie,branch:ae,merge:oe,cherryPick:se,checkout:E,prettyPrint:ce,clear:le,getBranchesAsObjArray:ue,getBranches:de,getCommits:fe,getCommitsArray:k,getCurrentBranch:e(function(){return C.records.currBranch},`getCurrentBranch`),getDirection:e(function(){return C.records.direction},`getDirection`),getHead:e(function(){return C.records.head},`getHead`),setAccTitle:i,getAccTitle:p,getAccDescription:u,setAccDescription:n,setDiagramTitle:r,getDiagramTitle:d},pe=e((e,t)=>{v(e,t),e.dir&&t.setDirection(e.dir);for(let n of e.statements)me(n,t)},`populate`),me=e((n,r)=>{let i={Commit:e(e=>r.commit(he(e)),`Commit`),Branch:e(e=>r.branch(ge(e)),`Branch`),Merge:e(e=>r.merge(_e(e)),`Merge`),Checkout:e(e=>r.checkout(ve(e)),`Checkout`),CherryPicking:e(e=>r.cherryPick(ye(e)),`CherryPicking`)}[n.$type];i?i(n):t.error(`Unknown statement type: ${n.$type}`)},`parseStatement`),he=e(e=>({id:e.id,msg:e.message??``,type:e.type===void 0?x.NORMAL:x[e.type],tags:e.tags??void 0}),`parseCommit`),ge=e(e=>({name:e.name,order:e.order??0}),`parseBranch`),_e=e(e=>({branch:e.branch,id:e.id??``,type:e.type===void 0?void 0:x[e.type],tags:e.tags??void 0}),`parseMerge`),ve=e(e=>e.branch,`parseCheckout`),ye=e(e=>({id:e.id,targetId:``,tags:e.tags?.length===0?void 0:e.tags,parent:e.parent}),`parseCherryPicking`),be={parse:e(async e=>{let n=await y(`gitGraph`,e);t.debug(n),pe(n,A)},`parse`)},j=10,M=40,N=4,P=2,F=8,I=new Set([`redux`,`redux-dark`,`redux-color`,`redux-dark-color`]),L=12,R=new Set([`redux-color`,`redux-dark-color`]),xe=new Set([`dark`,`redux-dark`,`redux-dark-color`,`neo-dark`]),z=e((e,t,n=!1)=>n&&e>0?(e-1)%(t-1)+1:e%t,`calcColorIndex`),B=new Map,V=new Map,H=30,U=new Map,W=[],G=0,K=`LR`,q=e(()=>{B.clear(),V.clear(),U.clear(),G=0,W=[],K=`LR`},`clear`),J=e(e=>{let t=document.createElementNS(`http://www.w3.org/2000/svg`,`text`);return(typeof e==`string`?e.split(/\\n|\n|<br\s*\/?>/gi):e).forEach(e=>{let n=document.createElementNS(`http://www.w3.org/2000/svg`,`tspan`);n.setAttributeNS(`http://www.w3.org/XML/1998/namespace`,`xml:space`,`preserve`),n.setAttribute(`dy`,`1em`),n.setAttribute(`x`,`0`),n.setAttribute(`class`,`row`),n.textContent=e.trim(),t.appendChild(n)}),t},`drawText`),Y=e(t=>{let n,r,i;return K===`BT`?(r=e((e,t)=>e<=t,`comparisonFunc`),i=1/0):(r=e((e,t)=>e>=t,`comparisonFunc`),i=0),t.forEach(e=>{let t=K===`TB`||K==`BT`?V.get(e)?.y:V.get(e)?.x;t!==void 0&&r(t,i)&&(n=e,i=t)}),n},`findClosestParent`),Se=e(e=>{let t=``,n=1/0;return e.forEach(e=>{let r=V.get(e).y;r<=n&&(t=e,n=r)}),t||void 0},`findClosestParentBT`),Ce=e((e,t,n)=>{let r=n,i=n,a=[];e.forEach(e=>{let n=t.get(e);if(!n)throw Error(`Commit not found for key ${e}`);n.parents.length?(r=Te(n),i=Math.max(r,i)):a.push(n),Ee(n,r)}),r=i,a.forEach(e=>{De(e,r,n)}),e.forEach(e=>{let n=t.get(e);if(n?.parents.length){let e=Se(n.parents);r=V.get(e).y-M,r<=i&&(i=r);let t=B.get(n.branch).pos,a=r-j;V.set(n.id,{x:t,y:a})}})},`setParallelBTPos`),we=e(e=>{let t=Y(e.parents.filter(e=>e!==null));if(!t)throw Error(`Closest parent not found for commit ${e.id}`);let n=V.get(t)?.y;if(n===void 0)throw Error(`Closest parent position not found for commit ${e.id}`);return n},`findClosestParentPos`),Te=e(e=>we(e)+M,`calculateCommitPosition`),Ee=e((e,t)=>{let n=B.get(e.branch);if(!n)throw Error(`Branch not found for commit ${e.id}`);let r=n.pos,i=t+j;return V.set(e.id,{x:r,y:i}),{x:r,y:i}},`setCommitPosition`),De=e((e,t,n)=>{let r=B.get(e.branch);if(!r)throw Error(`Branch not found for commit ${e.id}`);let i=t+n,a=r.pos;V.set(e.id,{x:a,y:i})},`setRootPosition`),Oe=e((e,t,n,r,i,a)=>{let{theme:o}=f(),s=I.has(o??``),c=R.has(o??``),l=xe.has(o??``);if(a===x.HIGHLIGHT)e.append(`rect`).attr(`x`,n.x-10+(s?3:0)).attr(`y`,n.y-10+(s?3:0)).attr(`width`,s?14:20).attr(`height`,s?14:20).attr(`class`,`commit ${t.id} commit-highlight${z(i,F,c)} ${r}-outer`),e.append(`rect`).attr(`x`,n.x-6+(s?2:0)).attr(`y`,n.y-6+(s?2:0)).attr(`width`,s?8:12).attr(`height`,s?8:12).attr(`class`,`commit ${t.id} commit${z(i,F,c)} ${r}-inner`);else if(a===x.CHERRY_PICK)e.append(`circle`).attr(`cx`,n.x).attr(`cy`,n.y).attr(`r`,s?7:10).attr(`class`,`commit ${t.id} ${r}`),e.append(`circle`).attr(`cx`,n.x-3).attr(`cy`,n.y+2).attr(`r`,s?2.5:2.75).attr(`fill`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`circle`).attr(`cx`,n.x+3).attr(`cy`,n.y+2).attr(`r`,s?2.5:2.75).attr(`fill`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`line`).attr(`x1`,n.x+3).attr(`y1`,n.y+1).attr(`x2`,n.x).attr(`y2`,n.y-5).attr(`stroke`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`line`).attr(`x1`,n.x-3).attr(`y1`,n.y+1).attr(`x2`,n.x).attr(`y2`,n.y-5).attr(`stroke`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`);else{let o=e.append(`circle`);if(o.attr(`cx`,n.x),o.attr(`cy`,n.y),o.attr(`r`,s?7:10),o.attr(`class`,`commit ${t.id} commit${z(i,F,c)}`),a===x.MERGE){let a=e.append(`circle`);a.attr(`cx`,n.x),a.attr(`cy`,n.y),a.attr(`r`,s?5:6),a.attr(`class`,`commit ${r} ${t.id} commit${z(i,F,c)}`)}if(a===x.REVERSE){let a=e.append(`path`),o=s?4:5;a.attr(`d`,`M ${n.x-o},${n.y-o}L${n.x+o},${n.y+o}M${n.x-o},${n.y+o}L${n.x+o},${n.y-o}`).attr(`class`,`commit ${r} ${t.id} commit${z(i,F,c)}`)}}},`drawCommitBullet`),ke=e((e,t,n,r,i)=>{if(t.type!==x.CHERRY_PICK&&(t.customId&&t.type===x.MERGE||t.type!==x.MERGE)&&i.showCommitLabel){let a=e.append(`g`),o=a.insert(`rect`).attr(`class`,`commit-label-bkg`),s=a.append(`text`).attr(`x`,r).attr(`y`,n.y+25).attr(`class`,`commit-label`).text(t.id),c=s.node()?.getBBox();if(c&&(o.attr(`x`,n.posWithOffset-c.width/2-P).attr(`y`,n.y+13.5).attr(`width`,c.width+2*P).attr(`height`,c.height+2*P),K===`TB`||K===`BT`?(o.attr(`x`,n.x-(c.width+4*N+5)).attr(`y`,n.y-12),s.attr(`x`,n.x-(c.width+4*N)).attr(`y`,n.y+c.height-12)):s.attr(`x`,n.posWithOffset-c.width/2),i.rotateCommitLabel))if(K===`TB`||K===`BT`)s.attr(`transform`,`rotate(-45, `+n.x+`, `+n.y+`)`),o.attr(`transform`,`rotate(-45, `+n.x+`, `+n.y+`)`);else{let e=-7.5-(c.width+10)/25*9.5,t=10+c.width/25*8.5;a.attr(`transform`,`translate(`+e+`, `+t+`) rotate(-45, `+r+`, `+n.y+`)`)}}},`drawCommitLabel`),Ae=e((e,t,n,r)=>{if(t.tags.length>0){let i=0,a=0,o=0,s=[];for(let r of t.tags.reverse()){let t=e.insert(`polygon`),c=e.append(`circle`),l=e.append(`text`).attr(`y`,n.y-16-i).attr(`class`,`tag-label`).text(r),u=l.node()?.getBBox();if(!u)throw Error(`Tag bbox not found`);a=Math.max(a,u.width),o=Math.max(o,u.height),l.attr(`x`,n.posWithOffset-u.width/2),s.push({tag:l,hole:c,rect:t,yOffset:i}),i+=20}for(let{tag:e,hole:t,rect:i,yOffset:c}of s){let s=o/2,l=n.y-19.2-c;if(i.attr(`class`,`tag-label-bkg`).attr(`points`,`
2
2
  ${r-a/2-N/2},${l+P}
3
3
  ${r-a/2-N/2},${l-P}
4
4
  ${n.posWithOffset-a/2-N},${l-s-P}