@runfusion/fusion 0.76.0-beta.2 → 0.76.0-beta.3

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 (144) hide show
  1. package/dist/bin.js +323 -59
  2. package/dist/child-process-worker.js +274 -42
  3. package/dist/client/.vite/manifest.json +273 -273
  4. package/dist/client/assets/{AgentDetailView-gak4EWTI.js → AgentDetailView-T767kKTg.js} +1 -1
  5. package/dist/client/assets/{AgentPermissionPolicyEditor-DP1QbZL-.js → AgentPermissionPolicyEditor--u9jyUf2.js} +1 -1
  6. package/dist/client/assets/{AgentsView-DAMRTKzI.js → AgentsView-6Ifu7qDr.js} +5 -5
  7. package/dist/client/assets/{ChatView-iE-2gf5P.js → ChatView-BV3lixQi.js} +1 -1
  8. package/dist/client/assets/{CommandCenter-B6RnkLYm.js → CommandCenter-CSRYoveB.js} +1 -1
  9. package/dist/client/assets/{DevServerView-DcFL_LzK.js → DevServerView-B9So_oYx.js} +1 -1
  10. package/dist/client/assets/{DirectoryPicker-CtjqrYoO.js → DirectoryPicker-BhyDL_2m.js} +1 -1
  11. package/dist/client/assets/{DocumentsView-BkAe2S4H.js → DocumentsView-pbERA7O-.js} +1 -1
  12. package/dist/client/assets/{EvalsView-CbGA9dMn.js → EvalsView-DJQ4ltCg.js} +1 -1
  13. package/dist/client/assets/{ExperimentalAgentOnboardingModal-CMgO_S8T.js → ExperimentalAgentOnboardingModal-BwJuzkzB.js} +1 -1
  14. package/dist/client/assets/{GoalsView-_3P9J5sf.js → GoalsView-B6X5_0Ve.js} +1 -1
  15. package/dist/client/assets/InsightsView-CJgI0J7S.js +11 -0
  16. package/dist/client/assets/{InsightsView-Gn5lOBA0.css → InsightsView-DAAXuX4v.css} +1 -1
  17. package/dist/client/assets/{MemoryView-DwJas8vi.js → MemoryView-BHq1AHPu.js} +1 -1
  18. package/dist/client/assets/{PiExtensionsManager-B_LiW_e9.js → PiExtensionsManager-B8At6fO8.js} +1 -1
  19. package/dist/client/assets/{PluginManager-BkB6WLQc.js → PluginManager-k7hV7_9e.js} +1 -1
  20. package/dist/client/assets/{PullRequestView-DcH5tmYc.js → PullRequestView-B1hZFrWo.js} +1 -1
  21. package/dist/client/assets/{ReportModal-BOEbqtqG.js → ReportModal-C46V_zEa.js} +1 -1
  22. package/dist/client/assets/{ResearchView-Dp6V42pI.js → ResearchView-D8G85BYN.js} +2 -2
  23. package/dist/client/assets/{SecretsView-BCqXHB2L.js → SecretsView-CTri9LRK.js} +1 -1
  24. package/dist/client/assets/{SessionTerminal-CkdoQv4y.js → SessionTerminal-BRf6r4Vp.js} +1 -1
  25. package/dist/client/assets/SettingsModal-D0RBeZik.js +21 -0
  26. package/dist/client/assets/{SettingsModal-Dc7YG6KB.js → SettingsModal-rUQcSTJp.js} +1 -1
  27. package/dist/client/assets/{SettingsTextareaRow-WSkBoAOO.js → SettingsTextareaRow-BirlBcem.js} +1 -1
  28. package/dist/client/assets/{SetupWizardModal-VTrJAsKd.js → SetupWizardModal-xnCBM9EL.js} +2 -2
  29. package/dist/client/assets/{SkillsView-CXeXOxfF.js → SkillsView-O5U0ep50.js} +1 -1
  30. package/dist/client/assets/{WorkflowNodeEditor-DoxLGPRF.js → WorkflowNodeEditor-BX4d2qqF.js} +3 -3
  31. package/dist/client/assets/{agent-import-generation-upc0yw-M.js → agent-import-generation-DnqVkPkz.js} +1 -1
  32. package/dist/client/assets/{agentsOrgChartLayout-C3iumMrW.js → agentsOrgChartLayout-CKuzbhFf.js} +1 -1
  33. package/dist/client/assets/app-B2FwULu2.js +5 -0
  34. package/dist/client/assets/{app-BA9gw9hx.js → app-B6nJaqAl.js} +2 -2
  35. package/dist/client/assets/{app-B_lScKc1.js → app-CGXZeIRc.js} +2 -2
  36. package/dist/client/assets/{app-DG_vjDw5.js → app-CGtkeBF5.js} +3 -3
  37. package/dist/client/assets/{app-GBgoY-oh.js → app-CNzN1Plu.js} +2 -2
  38. package/dist/client/assets/{app-B0KFGP8D.js → app-DLs-f5yM.js} +3 -3
  39. package/dist/client/assets/{app-DeHIOCEP.js → app-DsvtcRUG.js} +2 -2
  40. package/dist/client/assets/{architectureDiagram-3BPJPVTR-D6jqc3fJ.js → architectureDiagram-3BPJPVTR-gi467xY0.js} +1 -1
  41. package/dist/client/assets/{blockDiagram-GPEHLZMM-DY3AKuPD.js → blockDiagram-GPEHLZMM-B_gpcYiR.js} +1 -1
  42. package/dist/client/assets/{c4Diagram-AAUBKEIU-CpD52V4g.js → c4Diagram-AAUBKEIU-DeylEYsQ.js} +1 -1
  43. package/dist/client/assets/channel-BoE8DeM4.js +1 -0
  44. package/dist/client/assets/{chunk-2J33WTMH-CPeIHyAX.js → chunk-2J33WTMH-BL2WY0HN.js} +1 -1
  45. package/dist/client/assets/{chunk-4BX2VUAB-ivAwI4xM.js → chunk-4BX2VUAB-BkLExGMe.js} +1 -1
  46. package/dist/client/assets/{chunk-55IACEB6-BtVQ5XaZ.js → chunk-55IACEB6-CSTvCF5T.js} +1 -1
  47. package/dist/client/assets/{chunk-727SXJPM-1eap1vDU.js → chunk-727SXJPM-9J8pKk4x.js} +1 -1
  48. package/dist/client/assets/{chunk-AQP2D5EJ-B2NB3BW9.js → chunk-AQP2D5EJ-DXC1vPWr.js} +1 -1
  49. package/dist/client/assets/{chunk-FMBD7UC4-Hk_smNYv.js → chunk-FMBD7UC4-CFRUb-zD.js} +1 -1
  50. package/dist/client/assets/{chunk-ND2GUHAM-BmGCAojk.js → chunk-ND2GUHAM-B87HFYS8.js} +1 -1
  51. package/dist/client/assets/{chunk-QZHKN3VN-D0aXZ8CV.js → chunk-QZHKN3VN-CTjHiGbd.js} +1 -1
  52. package/dist/client/assets/classDiagram-4FO5ZUOK-qnbLX_9_.js +1 -0
  53. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-qnbLX_9_.js +1 -0
  54. package/dist/client/assets/{cose-bilkent-S5V4N54A-DAbu_gnF.js → cose-bilkent-S5V4N54A-D3Edq3L9.js} +1 -1
  55. package/dist/client/assets/{dagre-BM42HDAG-BdmLlrDJ.js → dagre-BM42HDAG-CwwbeQfN.js} +1 -1
  56. package/dist/client/assets/{dashboard-view-CULL1yhL.js → dashboard-view-BLAoW3D4.js} +1 -1
  57. package/dist/client/assets/{dashboard-view-PRCWCSLm.js → dashboard-view-DAlJxqiJ.js} +1 -1
  58. package/dist/client/assets/{dashboard-view-BoFBSXUn.js → dashboard-view-QxQwJFLz.js} +1 -1
  59. package/dist/client/assets/{dashboard-view-CxXMDfNY.js → dashboard-view-aPzfv99T.js} +1 -1
  60. package/dist/client/assets/{diagram-2AECGRRQ-PpqLbVUA.js → diagram-2AECGRRQ-koJWWXE4.js} +1 -1
  61. package/dist/client/assets/{diagram-5GNKFQAL-9rkGmTwh.js → diagram-5GNKFQAL-Yob5cOKT.js} +1 -1
  62. package/dist/client/assets/{diagram-KO2AKTUF-BT-efOMo.js → diagram-KO2AKTUF-DelvFSkK.js} +1 -1
  63. package/dist/client/assets/{diagram-LMA3HP47-w79OWFxg.js → diagram-LMA3HP47-CMput2h2.js} +1 -1
  64. package/dist/client/assets/{diagram-OG6HWLK6-Bye9I5IO.js → diagram-OG6HWLK6-04VXDl79.js} +1 -1
  65. package/dist/client/assets/{erDiagram-TEJ5UH35-aodREgDf.js → erDiagram-TEJ5UH35-C9iP8Uyp.js} +1 -1
  66. package/dist/client/assets/{flowDiagram-I6XJVG4X-D0DKItY3.js → flowDiagram-I6XJVG4X-DENQvu_t.js} +1 -1
  67. package/dist/client/assets/{folder-open-CqvaMJvx.js → folder-open-D-554oji.js} +1 -1
  68. package/dist/client/assets/{ganttDiagram-6RSMTGT7-CZVApkvw.js → ganttDiagram-6RSMTGT7-BqOttZAT.js} +1 -1
  69. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-D_ynwJ4p.js → gitGraphDiagram-PVQCEYII-CDcydi-5.js} +1 -1
  70. package/dist/client/assets/{index-BzAldNrK.css → index-CXTd3LAB.css} +1 -1
  71. package/dist/client/assets/{index-DWRJyaa3.js → index-CtYRoouR.js} +264 -264
  72. package/dist/client/assets/{infoDiagram-5YYISTIA-pJG6zxjk.js → infoDiagram-5YYISTIA-B5LQQnxt.js} +1 -1
  73. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-nFZ5laUo.js → ishikawaDiagram-YF4QCWOH-DpFEt7D2.js} +1 -1
  74. package/dist/client/assets/{journeyDiagram-JHISSGLW-CWpCaAIe.js → journeyDiagram-JHISSGLW-MELtgu22.js} +1 -1
  75. package/dist/client/assets/{kanban-definition-UN3LZRKU-ATkPspKa.js → kanban-definition-UN3LZRKU-h33PLATd.js} +1 -1
  76. package/dist/client/assets/{mermaid.core-CDXPNs7a.js → mermaid.core-Dk2mUPOq.js} +4 -4
  77. package/dist/client/assets/{mindmap-definition-RKZ34NQL-BkqS9tpe.js → mindmap-definition-RKZ34NQL-B_T4O2-B.js} +1 -1
  78. package/dist/client/assets/{pieDiagram-4H26LBE5-DEUyVLs-.js → pieDiagram-4H26LBE5-B1YIFkRl.js} +1 -1
  79. package/dist/client/assets/{puzzle-DQ0y1-XK.js → puzzle-hvecxlpJ.js} +1 -1
  80. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-ESBJNK5c.js → quadrantDiagram-W4KKPZXB-BoGQR_hO.js} +1 -1
  81. package/dist/client/assets/{requirementDiagram-4Y6WPE33-CqPs7zcv.js → requirementDiagram-4Y6WPE33-BSDmUBIx.js} +1 -1
  82. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-CkFN0m14.js → sankeyDiagram-5OEKKPKP-Dz_GqOa5.js} +1 -1
  83. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-Dx2nDuMO.js → sequenceDiagram-3UESZ5HK-B6twjYUH.js} +1 -1
  84. package/dist/client/assets/{shield-alert-BS05s4RM.js → shield-alert-BX4WRJOv.js} +1 -1
  85. package/dist/client/assets/{standing-instructions-template-xprxYNHm.js → standing-instructions-template-BJY317CC.js} +1 -1
  86. package/dist/client/assets/{stateDiagram-AJRCARHV-EUPmRFGd.js → stateDiagram-AJRCARHV-DuwqWLx-.js} +1 -1
  87. package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-DcQ2mhi5.js → stateDiagram-v2-BHNVJYJU-Bu8Sk187.js} +1 -1
  88. package/dist/client/assets/{timeline-definition-PNZ67QCA-D4YO_3V-.js → timeline-definition-PNZ67QCA-BS6VnqSI.js} +1 -1
  89. package/dist/client/assets/{upload-BjyBtxo7.js → upload-CaDoyaMW.js} +1 -1
  90. package/dist/client/assets/{users-D5ogZ7WQ.js → users-C5uCLwVM.js} +1 -1
  91. package/dist/client/assets/{vennDiagram-CIIHVFJN-BT5_XuQL.js → vennDiagram-CIIHVFJN-CUbzqT5Y.js} +1 -1
  92. package/dist/client/assets/{wardley-L42UT6IY-X_ZMW457.js → wardley-L42UT6IY-Mv-NotFS.js} +1 -1
  93. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-GK9nONHU.js → wardleyDiagram-YWT4CUSO-DuYpvLZX.js} +1 -1
  94. package/dist/client/assets/{xychartDiagram-2RQKCTM6-Dw3zXHAq.js → xychartDiagram-2RQKCTM6-24_7QXdw.js} +1 -1
  95. package/dist/client/index.html +2 -2
  96. package/dist/client/version.json +1 -1
  97. package/dist/droid-cli/package.json +1 -1
  98. package/dist/extension.js +285 -47
  99. package/dist/pi-claude-cli/package.json +1 -1
  100. package/dist/plugin-sdk/index.d.ts +23 -0
  101. package/dist/plugin-sdk/index.js +2 -0
  102. package/dist/plugins/fusion-plugin-acp-runtime/bundled.js +2 -0
  103. package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
  104. package/dist/plugins/fusion-plugin-claude-runtime/bundled.js +2 -0
  105. package/dist/plugins/fusion-plugin-claude-runtime/package.json +1 -1
  106. package/dist/plugins/fusion-plugin-cli-printing-press/bundled.js +2 -0
  107. package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
  108. package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +2 -0
  109. package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
  110. package/dist/plugins/fusion-plugin-cursor-runtime/bundled.js +2 -0
  111. package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
  112. package/dist/plugins/fusion-plugin-dependency-graph/bundled.js +2 -0
  113. package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
  114. package/dist/plugins/fusion-plugin-droid-runtime/bundled.js +2 -0
  115. package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
  116. package/dist/plugins/fusion-plugin-grok-runtime/bundled.js +2 -0
  117. package/dist/plugins/fusion-plugin-grok-runtime/package.json +1 -1
  118. package/dist/plugins/fusion-plugin-hermes-runtime/bundled.js +2 -0
  119. package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
  120. package/dist/plugins/fusion-plugin-linear-import/bundled.js +2 -0
  121. package/dist/plugins/fusion-plugin-linear-import/package.json +1 -1
  122. package/dist/plugins/fusion-plugin-omp-runtime/bundled.js +2 -0
  123. package/dist/plugins/fusion-plugin-omp-runtime/package.json +1 -1
  124. package/dist/plugins/fusion-plugin-openclaw-runtime/bundled.js +2 -0
  125. package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
  126. package/dist/plugins/fusion-plugin-paperclip-runtime/bundled.js +2 -0
  127. package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
  128. package/dist/plugins/fusion-plugin-quality/bundled.js +2 -0
  129. package/dist/plugins/fusion-plugin-quality/package.json +1 -1
  130. package/dist/plugins/fusion-plugin-reports/bundled.js +2 -0
  131. package/dist/plugins/fusion-plugin-reports/package.json +1 -1
  132. package/dist/plugins/fusion-plugin-roadmap/bundled.js +2 -0
  133. package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
  134. package/dist/plugins/fusion-plugin-todos/bundled.js +2 -0
  135. package/dist/plugins/fusion-plugin-todos/package.json +1 -1
  136. package/dist/plugins/fusion-plugin-whatsapp-chat/bundled.js +2 -0
  137. package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
  138. package/package.json +1 -1
  139. package/dist/client/assets/InsightsView-DOhO7xH5.js +0 -11
  140. package/dist/client/assets/SettingsModal-D4Fn4GlS.js +0 -21
  141. package/dist/client/assets/app-DBCGrz-f.js +0 -5
  142. package/dist/client/assets/channel-CaxOu15c.js +0 -1
  143. package/dist/client/assets/classDiagram-4FO5ZUOK-DXIkGbsl.js +0 -1
  144. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DXIkGbsl.js +0 -1
@@ -1 +1 @@
1
- import{r as e,j as H}from"./vendor-react-SZ_qB27O.js";import{e6 as vt,e7 as Xt,dv as Yt,dx as _t,dw as jt}from"./index-DWRJyaa3.js";import{Z as $t,a as Gt,M as Wt,R as Ft}from"./zoom-out-DzDzWQt1.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-reactflow-BlIeoTu4.js";import"./vendor-xterm-BNq00GSj.js";import"./createLucideIcon-CshVyKO4.js";const xt=4,wt=300,Lt=24;function Ut({taskId:n,position:i,scale:r,canDrag:a,onPositionChange:f,onDragStateChange:u,onDragEnd:y,onDoubleTap:b}){const[I,z]=e.useState(!1),M=e.useRef(null),C=e.useRef(i),X=e.useRef(!1),o=e.useRef(null),c=e.useRef(!1);C.current=i,c.current=I;const d=e.useCallback(()=>{o.current=null},[]),T=e.useCallback(l=>{M.current=null,z(!1),c.current=!1,l&&(u?.(!1),y?.(),X.current=!0,d())},[y,u,d]),E=e.useCallback(l=>{if(!l.isPrimary)return;if(l.defaultPrevented){d();return}const P=Date.now();o.current&&P-o.current.timeStamp>wt&&d(),a&&l.stopPropagation();const x=l.currentTarget;a&&typeof x.setPointerCapture=="function"&&x.setPointerCapture(l.pointerId),M.current={pointerId:l.pointerId,pointerType:l.pointerType,startPointer:{x:l.clientX,y:l.clientY},startPosition:C.current,defaultPrevented:l.defaultPrevented,movedBeyondThreshold:!1}},[a,d]),A=e.useCallback(l=>{const P=M.current;if(!P||P.pointerId!==l.pointerId)return;a&&l.stopPropagation();const x=l.clientX-P.startPointer.x,U=l.clientY-P.startPointer.y,O=Math.hypot(x,U);if(O>=xt&&(P.movedBeyondThreshold=!0),!a){P.movedBeyondThreshold&&d();return}if(!c.current&&O>=xt&&(z(!0),c.current=!0,u?.(!0),d()),O<xt)return;const V=r>0?r:1;f(n,{x:P.startPosition.x+x/V,y:P.startPosition.y+U/V})},[a,u,f,d,r,n]),G=e.useCallback((l,P)=>{if(!b||P.defaultPrevented||P.movedBeyondThreshold)return Date.now()-(o.current?.timeStamp??0)>wt&&d(),!1;if(P.pointerType==="mouse")return d(),!1;const x={timeStamp:Date.now(),point:{x:P.startPointer.x,y:P.startPointer.y}},U=o.current;return!U||x.timeStamp-U.timeStamp>wt||Math.hypot(x.point.x-U.point.x,x.point.y-U.point.y)>Lt?(o.current=x,!1):(X.current=!0,d(),b(),!0)},[b,d]),Z=e.useCallback(l=>{const P=M.current;if(!P||P.pointerId!==l.pointerId)return;a&&l.stopPropagation(),a&&typeof l.currentTarget.hasPointerCapture=="function"&&l.currentTarget.hasPointerCapture(l.pointerId)&&typeof l.currentTarget.releasePointerCapture=="function"&&l.currentTarget.releasePointerCapture(l.pointerId);const x=c.current;!x&&G(l,P)&&l.preventDefault(),T(x)},[a,T,G]),W=e.useCallback(l=>{const P=M.current;!P||P.pointerId!==l.pointerId||(a&&l.stopPropagation(),a&&typeof l.currentTarget.hasPointerCapture=="function"&&l.currentTarget.hasPointerCapture(l.pointerId)&&typeof l.currentTarget.releasePointerCapture=="function"&&l.currentTarget.releasePointerCapture(l.pointerId),d(),T(c.current))},[a,T,d]),$=e.useCallback(l=>{X.current&&(X.current=!1,l.preventDefault(),l.stopPropagation())},[]);return e.useMemo(()=>({isDragging:I,onPointerDown:E,onPointerMove:A,onPointerUp:Z,onPointerCancel:W,onClickCapture:$}),[I,$,W,E,A,Z])}const Bt=new Set(["planning","researching","executing","finalizing","merging","merging-fix"]);function Zt(n){return n?n.charAt(0).toUpperCase()+n.slice(1):"Executing"}function Kt({taskColumnFlags:n,style:i,position:r,scale:a,isSelected:f=!1,isHighlighted:u=!1,isDimmed:y=!1,onMouseEnter:b,onMouseLeave:I,onClick:z,onNodePositionChange:M,onNodeDragStateChange:C,onNodeDragEnd:X,...o}){const{task:c,globalPaused:d,taskStuckTimeoutMs:T,lastFetchTimeMs:E,onOpenDetail:A}=o,G=c.status==="failed",Z=c.paused===!0,W=vt(c,T,E,n),$=c.column==="in-progress"||Bt.has(c.status),l=c.status==="awaiting-approval"&&!$,P=!d&&!G&&!Z&&!W&&!l&&$,x=typeof c.currentStep=="number"&&c.currentStep>=0&&Array.isArray(c.steps)&&c.currentStep<c.steps.length,U=c.column==="in-review",O=Ut({taskId:c.id,position:r,scale:a,canDrag:f,onPositionChange:M,onDragStateChange:C,onDragEnd:X,onDoubleTap:()=>A(c)});return H.jsxs("div",{className:`graph-task-node${f?" graph-node--draggable graph-task-node--selected":""}${O.isDragging?" graph-node--dragging":""}${u?" graph-task-node--highlighted graph-node--highlighted":""}${y?" graph-task-node--dimmed graph-node--dimmed":""}${P?" graph-task-node--active":""}${U?" graph-task-node--in-review":""}`,style:i,draggable:!1,"data-testid":`graph-task-node-${c.id}`,"data-current-step":P&&x?String(c.currentStep):void 0,onMouseEnter:b,onMouseLeave:I,onClick:z,onDoubleClick:V=>{V.defaultPrevented||A(c)},onClickCapture:O.onClickCapture,onPointerDown:O.onPointerDown,onPointerMove:O.onPointerMove,onPointerUp:O.onPointerUp,onPointerCancel:O.onPointerCancel,children:[P?H.jsx("div",{className:"graph-task-active-indicator",children:H.jsx("span",{className:"graph-task-active-indicator-text",children:Zt(c.status)})}):null,H.jsx(Xt,{...o,taskColumnFlags:n,onOpenDetail:()=>{},disableDrag:!0})]})}function Vt({zoom:n,onZoomIn:i,onZoomOut:r,onFitToGraph:a,onResetView:f}){return H.jsxs("div",{className:"graph-toolbar","data-testid":"graph-toolbar",children:[H.jsx("button",{className:"btn btn-icon",title:"Zoom in (Ctrl+=)","aria-label":"Zoom in",onClick:i,children:H.jsx($t,{size:16})}),H.jsx("button",{className:"btn btn-icon",title:"Zoom out (Ctrl+-)","aria-label":"Zoom out",onClick:r,children:H.jsx(Gt,{size:16})}),H.jsxs("div",{className:"graph-toolbar__zoom-label","aria-live":"polite",children:[Math.round(n*100),"%"]}),H.jsx("button",{className:"btn btn-icon",title:"Fit to graph (Ctrl+Shift+F)","aria-label":"Fit to graph",onClick:a,children:H.jsx(Wt,{size:16})}),H.jsx("button",{className:"btn btn-icon",title:"Reset view (Ctrl+0)","aria-label":"Reset view",onClick:f,children:H.jsx(Ft,{size:16})})]})}const qt=280,Jt=100;function Qt({edges:n,positions:i,nodeWidth:r=qt,nodeHeight:a=Jt,nodeHeights:f,highlightedEdgeIds:u}){const y=!!(u&&u.size>0);return H.jsxs("svg",{className:"dependency-graph-edges","aria-hidden":"true",children:[H.jsx("defs",{children:H.jsx("marker",{id:"dependency-graph-arrowhead",markerWidth:"10",markerHeight:"7",refX:"10",refY:"3.5",orient:"auto",markerUnits:"strokeWidth",children:H.jsx("path",{d:"M 0 0 L 10 3.5 L 0 7 z",style:{fill:"var(--border)"}})})}),n.map(b=>{const I=i.get(b.source),z=i.get(b.target);if(!I||!z)return null;const M=`${b.source}->${b.target}`,C=y&&(u?.has(M)??!1),X=I.x+r/2,o=I.y+(f?.get(b.source)??a),c=z.x+r/2,d=z.y,T=o+(d-o)/2;return H.jsx("path",{"data-testid":"dependency-edge","data-edge-id":M,className:`dependency-graph-edge${C?" graph-edge--highlighted":""}${y&&!C?" graph-edge--dimmed":""}`,d:`M ${X} ${o} C ${X} ${T}, ${c} ${T}, ${c} ${d}`,fill:"none",markerEnd:"url(#dependency-graph-arrowhead)",style:{opacity:y&&!C?.15:1,stroke:C?"var(--todo)":"var(--border)",strokeWidth:C?"var(--space-xs)":"var(--btn-border-width)",transition:"opacity var(--transition-fast), stroke var(--transition-fast), stroke-width var(--transition-fast)"}},M)})]})}const te=new Set(["done","archived"]);function ee(n){return n.filter(i=>typeof i.column=="string"&&i.column.length>0&&!te.has(i.column))}const ne={nodeWidth:280,nodeHeight:100,horizontalGap:40,verticalGap:80,orientation:"vertical"};function kt(n,i){const r={...ne,...i},a=n.nodes.map(o=>o.task.id);if(a.length===0)return new Map;const f=new Map,u=new Map;for(const o of a)u.set(o,0),f.set(o,[]);for(const o of n.edges)!u.has(o.source)||!u.has(o.target)||(f.get(o.target)?.push(o.source),u.set(o.source,(u.get(o.source)??0)+1));const y=a.filter(o=>(u.get(o)??0)===0),b=[];for(;y.length>0;){const o=y.shift();b.push(o);for(const c of f.get(o)??[]){const d=(u.get(c)??0)-1;u.set(c,d),d===0&&y.push(c)}}for(const o of a)b.includes(o)||b.push(o);const I=new Map;for(const o of b){const c=n.edges.filter(T=>T.source===o).map(T=>T.target);let d=0;for(const T of c)d=Math.max(d,(I.get(T)??0)+1);I.set(o,d)}const z=new Map;for(const o of a){const c=I.get(o)??0,d=z.get(c)??[];d.push(o),z.set(c,d)}const M=new Map,C=Array.from(z.keys()).sort((o,c)=>o-c),X=new Map;if(r.orientation==="vertical"){let o=0;for(const c of C){X.set(c,o);const d=z.get(c)??[],T=Math.max(r.nodeHeight,...d.map(E=>r.measuredHeights?.get(E)??r.nodeHeight));o+=T+r.verticalGap}}for(const o of C){const c=z.get(o)??[];if(c.sort(),r.orientation==="horizontal"){const G=-(c.reduce(($,l)=>$+(r.measuredHeights?.get(l)??r.nodeHeight),0)+Math.max(0,c.length-1)*r.verticalGap)/2,Z=o*(r.nodeWidth+r.horizontalGap);let W=G;for(const $ of c)M.set($,{x:Z,y:W}),W+=(r.measuredHeights?.get($)??r.nodeHeight)+r.verticalGap;continue}const E=-(c.length*r.nodeWidth+Math.max(0,c.length-1)*r.horizontalGap)/2;c.forEach((A,G)=>{const Z=E+G*(r.nodeWidth+r.horizontalGap),W=X.get(o)??o*(r.nodeHeight+r.verticalGap);M.set(A,{x:Z,y:W})})}return M}function re(n){return e.useMemo(()=>{const i=n.map(f=>({task:f})),r=new Set(n.map(f=>f.id)),a=n.flatMap(f=>(f.dependencies??[]).filter(u=>r.has(u)).map(u=>({source:f.id,target:u})));return{nodes:i,edges:a}},[n])}const ut=.1,lt=3,Dt=40,oe=200;function nt(n,i,r){return Math.min(r,Math.max(i,n))}function se(n){if(!(n instanceof HTMLElement))return!1;const i=n.tagName.toLowerCase();return n.isContentEditable||i==="input"||i==="textarea"||i==="select"}function ie(){const[n,i]=e.useState({x:0,y:0}),[r,a]=e.useState(1),[f,u]=e.useState(!1),y=e.useRef(n),b=e.useRef(r),I=e.useRef(null),z=e.useRef(null),M=e.useRef(new Map),C=e.useRef(null),X=e.useRef({minX:0,minY:0,maxX:0,maxY:0});e.useEffect(()=>{y.current=n},[n]),e.useEffect(()=>{b.current=r},[r]),e.useEffect(()=>()=>{I.current!==null&&window.clearTimeout(I.current)},[]);const o=e.useMemo(()=>`translate(${n.x}px, ${n.y}px) scale(${r})`,[n.x,n.y,r]),c=e.useMemo(()=>Math.round(r*100),[r]),d=e.useCallback(s=>{if(!s){I.current!==null&&(window.clearTimeout(I.current),I.current=null),u(!1);return}u(!0),I.current!==null&&window.clearTimeout(I.current),I.current=window.setTimeout(()=>{u(!1),I.current=null},oe)},[]),T=e.useCallback((s,p,w,k=b.current)=>{const S=X.current;if(S.maxX<=S.minX||S.maxY<=S.minY)return{x:nt(s.x,-p,p),y:nt(s.y,-w,w)};const Y=p-S.maxX*k,v=-S.minX*k,_=w-S.maxY*k,B=-S.minY*k,ot=Y>v?(Y+v)/2:nt(s.x,Y,v),J=_>B?(_+B)/2:nt(s.y,_,B);return{x:ot,y:J}},[]),E=e.useCallback((s,p,w,k)=>{const S=b.current,Y=y.current,v=nt(s,ut,lt),_=v/S,B=T({x:p.x-(p.x-Y.x)*_,y:p.y-(p.y-Y.y)*_},w,k,v);a(v),i(B)},[T]),A=e.useCallback((s,p,w,k)=>{d(!1);const S=k??{x:p/2,y:w/2};E(b.current*s,S,p,w)},[d,E]),G=e.useCallback((s,p)=>{if(s&&p){A(1.2,s,p);return}a(w=>nt(w+.1,ut,lt))},[A]),Z=e.useCallback((s,p)=>{if(s&&p){A(1/1.2,s,p);return}a(w=>nt(w-.1,ut,lt))},[A]),W=e.useCallback(()=>{d(!0),i({x:0,y:0}),a(1)},[d]),$=e.useCallback((s,p,w,k)=>{if(d(!0),s.size===0){i({x:0,y:0}),a(1);return}const S=k?.nodeWidth??280,Y=k?.nodeHeight??100,v=Array.from(s.entries()),_=Math.min(...v.map(([,et])=>et.x)),B=Math.min(...v.map(([,et])=>et.y)),ot=Math.max(...v.map(([,et])=>et.x+S)),J=Math.max(...v.map(([et,mt])=>mt.y+(k?.measuredHeights?.get(et)??Y))),F=Math.max(1,ot-_),Q=Math.max(1,J-B),tt=Math.max(1,p-Dt*2),ht=Math.max(1,w-Dt*2),st=nt(Math.min(tt/F,ht/Q),ut,lt),dt=(p-F*st)/2-_*st,pt=(w-Q*st)/2-B*st;a(st),i(T({x:dt,y:pt},p,w,st))},[T,d]),l=e.useCallback((s,p)=>{if(M.current.set(s,p),M.current.size===2){const[w,k]=Array.from(M.current.values());C.current={distance:Math.hypot(w.x-k.x,w.y-k.y),zoom:b.current,pan:y.current,midpoint:{x:(w.x+k.x)/2,y:(w.y+k.y)/2}},z.current=null;return}z.current={start:p,panStart:y.current}},[]),P=e.useCallback((s,p,w,k)=>{if(M.current.has(s)&&M.current.set(s,p),M.current.size===2&&C.current){d(!1);const[v,_]=Array.from(M.current.values()),ot=Math.hypot(v.x-_.x,v.y-_.y)/Math.max(1,C.current.distance),J={x:(v.x+_.x)/2,y:(v.y+_.y)/2},F=nt(C.current.zoom*ot,ut,lt),Q=F/C.current.zoom,tt=T({x:J.x-(C.current.midpoint.x-C.current.pan.x)*Q,y:J.y-(C.current.midpoint.y-C.current.pan.y)*Q},w,k);a(F),i(tt);return}const S=z.current;if(!S)return;d(!1);const Y={x:S.panStart.x+(p.x-S.start.x),y:S.panStart.y+(p.y-S.start.y)};i(T(Y,w,k))},[T,d]),x=e.useCallback(s=>{if(M.current.delete(s),M.current.size<2&&(C.current=null),M.current.size===1){const[p]=Array.from(M.current.values());z.current={start:p,panStart:y.current};return}M.current.size===0&&(z.current=null)},[]),U=e.useCallback((s,p,w,k)=>{d(!1);const S={x:y.current.x-s,y:y.current.y-p};i(T(S,w,k))},[T,d]),O=e.useCallback((s,p,w,k)=>{const S=s<0?1.1:.9;d(!1),E(b.current*S,p,w,k)},[d,E]),V=e.useCallback(s=>{X.current=s},[]),q=e.useCallback((s,p,w,k,S)=>{if(se(s.target))return;const Y=s.metaKey||s.ctrlKey;if(s.key==="Escape"){s.preventDefault(),W();return}if(Y){if(s.key==="="||s.key==="+"){s.preventDefault(),A(1.2,p,w);return}if(s.key==="-"){s.preventDefault(),A(1/1.2,p,w);return}if(s.key==="0"){s.preventDefault(),W();return}(s.key==="f"||s.key==="F")&&s.shiftKey&&(s.preventDefault(),$(k,p,w,S))}},[$,W,A]);return{pan:n,zoom:r,zoomPercent:c,transform:o,transitioning:f,zoomIn:G,zoomOut:Z,resetView:W,fitToGraph:$,setAnimate:d,onPointerDown:l,onPointerMove:P,onPointerUp:x,onWheelPan:U,onWheelZoom:O,handleKeyDown:q,setGraphBounds:V}}function ae(n){const{upstreamMap:i,downstreamMap:r}=e.useMemo(()=>{const f=new Map,u=new Map;for(const y of n)f.set(y.id,new Set(y.dependencies??[])),u.has(y.id)||u.set(y.id,new Set);for(const y of n)for(const b of y.dependencies??[])u.has(b)||u.set(b,new Set),u.get(b)?.add(y.id);return{upstreamMap:f,downstreamMap:u}},[n]);return{getChain:e.useCallback(f=>{if(!i.has(f)&&!r.has(f))return new Set;const u=new Set([f]),y=(b,I)=>{const z=[b],M=new Set([b]);for(;z.length>0;){const C=z.shift();if(!C)continue;const X=I.get(C);if(X)for(const o of X)M.has(o)||(M.add(o),u.add(o),z.push(o))}};return y(f,i),y(f,r),u},[r,i])}}const Mt="fusion-plugin-dependency-graph:positions";function ft(n){if(!n||typeof n!="object")return!1;const i=n;return typeof i.x=="number"&&Number.isFinite(i.x)&&typeof i.y=="number"&&Number.isFinite(i.y)}function ce(n){const i=Yt(Mt,n);if(!i)return{};try{const r=JSON.parse(i);if(!r||typeof r!="object")return{};const a={};for(const[f,u]of Object.entries(r))ft(u)&&(a[f]=u);return a}catch{return{}}}function ue(n,i,r){const a={};for(const[f,u]of Object.entries(n))i.has(f)&&ft(u)&&(a[f]=u);_t(Mt,JSON.stringify(a),r)}function le(n){jt(Mt,n)}function de(n,i,r){const a={};for(const[f,u]of Object.entries(n))r.has(f)&&ft(u)&&(a[f]=u);for(const[f,u]of Object.entries(i))r.has(f)&&ft(u)&&(a[f]=u);return a}function fe(n,i){const r={};for(const[a,f]of Object.entries(n))i.has(a)&&(r[a]=f);return r}function he({projectId:n,visibleTaskIds:i}){const[r,a]=e.useState(null);e.useEffect(()=>{a(ce(n))},[n]);const f=e.useCallback(y=>{ue(y,i,n),a(fe(y,i))},[n,i]),u=e.useCallback(()=>{le(n),a(null)},[n]);return{savedPositions:r,persistPositions:f,clearSavedPositions:u}}const ct=280,rt=100,pe=768,Rt=4;function me({tasks:n,projectId:i,columnFlagsByTaskId:r,onOpenTaskDetail:a,onOpenDetail:f,addToast:u,globalPaused:y,onUpdateTask:b,onArchiveTask:I,onUnarchiveTask:z,onDeleteTask:M,onRetryTask:C,onOpenDetailWithTab:X,taskStuckTimeoutMs:o,onOpenMission:c,onMoveTask:d,lastFetchTimeMs:T}){const E=e.useRef(null),A=e.useRef(null),G=e.useRef(!1),Z=e.useRef(new Map),[W,$]=e.useState(null),[l,P]=e.useState(null),[x,U]=e.useState({width:0,height:0}),[O,V]=e.useState(new Map),q=e.useMemo(()=>ee(n),[n]),s=re(q),{getChain:p}=ae(q),w=W??l,k=e.useMemo(()=>w?p(w):new Set,[w,p]),S=e.useMemo(()=>{const t=x.width||(typeof window<"u"?window.innerWidth:0);return(x.height||(typeof window<"u"?window.innerHeight:0))>t||t<pe?"horizontal":"vertical"},[x.height,x.width]),Y=e.useMemo(()=>({nodeWidth:ct,nodeHeight:rt,horizontalGap:40,verticalGap:80,orientation:S,measuredHeights:O}),[O,S]),v=e.useMemo(()=>kt(s,Y),[s,Y]),_=e.useMemo(()=>new Set(q.map(t=>t.id)),[q]),{savedPositions:B,persistPositions:ot,clearSavedPositions:J}=he({projectId:i,visibleTaskIds:_}),[F,Q]=e.useState(v),[tt,ht]=e.useState(!1);e.useEffect(()=>{const t={};for(const[m,D]of v.entries())t[m]=D;const h=B?de(t,B,_):t;Q(new Map(Object.entries(h)))},[v,B,_]),e.useEffect(()=>{const t=E.current;if(!t)return;const h=(D,N)=>{U(g=>g.width===D&&g.height===N?g:{width:D,height:N})};if(typeof ResizeObserver>"u"){h(t.clientWidth||(typeof window<"u"?window.innerWidth:0),t.clientHeight||(typeof window<"u"?window.innerHeight:0));return}h(t.clientWidth,t.clientHeight);const m=new ResizeObserver(D=>{const N=D[0];N&&h(N.contentRect.width,N.contentRect.height)});return m.observe(t),()=>m.disconnect()},[]),e.useEffect(()=>{const t=E.current;if(!t)return;const h=new Set(s.nodes.map(g=>g.task.id)),m=new Map;for(const g of h){const R=t.querySelector(`[data-testid="graph-task-node-${g}"]`);R&&m.set(g,R)}Z.current=m,V(g=>{let R=!1;const j=new Map;for(const[K,at]of g.entries()){if(!h.has(K)){R=!0;continue}j.set(K,at)}return R?j:g});const D=(g,R)=>{V(j=>{const K=j.get(g);if(K!==void 0&&Math.abs(K-R)<1)return j;const at=new Map(j);return at.set(g,R),at})};for(const[g,R]of m.entries())D(g,R.offsetHeight||rt);if(typeof ResizeObserver>"u")return;const N=new ResizeObserver(g=>{for(const R of g){const j=R.target,K=Array.from(m.entries()).find(([,at])=>at===j)?.[0];K&&D(K,j.offsetHeight||rt)}});for(const g of m.values())N.observe(g);return()=>N.disconnect()},[s.nodes,F,x.height,x.width]);const{transform:st,zoom:dt,transitioning:pt,zoomIn:et,zoomOut:mt,resetView:It,fitToGraph:gt,onPointerDown:Ht,onPointerMove:zt,onPointerUp:bt,onWheelPan:Et,onWheelZoom:Ot,handleKeyDown:Nt,setGraphBounds:Pt}=ie(),L=e.useMemo(()=>{const t=Array.from(F.values());if(t.length===0)return{minX:0,minY:0,maxX:0,maxY:0,width:0,height:0};const h=Math.min(...t.map(g=>g.x)),m=Math.min(...t.map(g=>g.y)),D=Math.max(...t.map(g=>g.x+ct)),N=Math.max(...Array.from(F.entries()).map(([g,R])=>R.y+(O.get(g)??rt)));return{minX:h,minY:m,maxX:D,maxY:N,width:Math.max(0,D-h),height:Math.max(0,N-m)}},[O,F]),it=e.useMemo(()=>{if(F.size===0)return F;const t=new Map;for(const[h,m]of F.entries())t.set(h,{x:m.x-L.minX,y:m.y-L.minY});return t},[L.minX,L.minY,F]);e.useEffect(()=>{Pt({minX:0,minY:0,maxX:L.width,maxY:L.height})},[L.height,L.width,Pt]);const Tt=e.useMemo(()=>Array.from(it.keys()).sort().join("|"),[it]),yt=e.useMemo(()=>[Tt,x.width,x.height,L.width,L.height,Array.from(O.entries()).sort(([t],[h])=>t.localeCompare(h)).map(([t,h])=>`${t}:${Math.round(h)}`).join("|")].join("::"),[L.height,L.width,Tt,O,x.height,x.width]),Ct=e.useRef(null);e.useEffect(()=>{if(q.length===0||it.size===0)return;const t=E.current;if(!t)return;const h=t.clientWidth||x.width,m=t.clientHeight||x.height;if(h===0||m===0||Ct.current===yt)return;let D=0,N=0;const g=()=>{const R=E.current;if(!R)return;const j=R.clientWidth||x.width,K=R.clientHeight||x.height;j===0||K===0||(gt(it,j,K,{nodeWidth:ct,nodeHeight:rt,measuredHeights:O}),Ct.current=yt)};return typeof requestAnimationFrame=="function"?D=requestAnimationFrame(()=>{N=requestAnimationFrame(g)}):g(),()=>{D&&cancelAnimationFrame(D),N&&cancelAnimationFrame(N)}},[q.length,yt,gt,O,it,x.height,x.width]);const St=e.useCallback(()=>{J();const t=kt(s,Y);Q(t)},[J,s,Y]),At=e.useCallback(()=>{const t={};for(const[h,m]of F.entries())t[h]=m;ot(t)},[ot,F]);return H.jsxs("section",{className:"dependency-graph","data-testid":"dependency-graph",children:[H.jsx("div",{ref:E,className:"dependency-graph__viewport",onPointerDown:t=>{tt||(A.current={x:t.clientX,y:t.clientY},G.current=!1,Ht(t.pointerId,{x:t.clientX,y:t.clientY}))},onPointerMove:t=>{if(tt)return;const h=E.current;if(!h)return;const m=A.current;if(m){const D=Math.abs(t.clientX-m.x),N=Math.abs(t.clientY-m.y);(D>Rt||N>Rt)&&(G.current=!0)}zt(t.pointerId,{x:t.clientX,y:t.clientY},h.clientWidth,h.clientHeight)},onPointerUp:t=>{tt||bt(t.pointerId),A.current=null},onPointerCancel:t=>{tt||bt(t.pointerId),A.current=null,G.current=!1},onWheel:t=>{t.preventDefault();const h=E.current;if(h){if(t.ctrlKey||t.metaKey){const m=h.getBoundingClientRect();Ot(t.deltaY,{x:t.clientX-m.left,y:t.clientY-m.top},h.clientWidth,h.clientHeight);return}Et(t.deltaX,t.deltaY,h.clientWidth,h.clientHeight)}},onKeyDown:t=>{const h=E.current;h&&Nt(t,h.clientWidth,h.clientHeight,it,{nodeWidth:ct,nodeHeight:rt,measuredHeights:O})},tabIndex:0,onClick:()=>{G.current||tt||P(null)},children:q.length===0?H.jsx("div",{className:"dependency-graph__empty",children:"No active tasks to display in graph view."}):H.jsxs("div",{className:`graph-canvas-transform${pt?" graph-canvas-transform--animate":""}`,style:{transform:st,width:`${L.width}px`,height:`${L.height}px`},children:[H.jsx(Qt,{edges:s.edges,positions:it,nodeWidth:ct,nodeHeight:rt,nodeHeights:O,highlightedEdgeIds:k.size>0?new Set(s.edges.filter(t=>k.has(t.source)&&k.has(t.target)).map(t=>`${t.source}->${t.target}`)):void 0}),H.jsx("div",{className:"dependency-graph__nodes-layer",children:s.nodes.map(t=>{const h=it.get(t.task.id);return h?H.jsx(Kt,{task:t.task,projectId:i,taskColumnFlags:r?.get(t.task.id),isSelected:l===t.task.id,style:{minHeight:`${rt}px`,left:`${h.x}px`,top:`${h.y}px`},position:h,scale:dt,onNodePositionChange:(m,D)=>{Q(N=>{const g={x:D.x+L.minX,y:D.y+L.minY},R=N.get(m);if(R&&R.x===g.x&&R.y===g.y)return N;const j=new Map(N);return j.set(m,g),j})},onNodeDragStateChange:ht,onNodeDragEnd:At,isHighlighted:k.size>0&&k.has(t.task.id),isDimmed:k.size>0&&!k.has(t.task.id),onOpenDetail:f??(m=>a?.(m.id)),addToast:u??(()=>{}),globalPaused:y,onUpdateTask:b,onArchiveTask:I,onUnarchiveTask:z,onDeleteTask:M,onRetryTask:C,onOpenDetailWithTab:X,taskStuckTimeoutMs:o,onOpenMission:c,onMoveTask:d,lastFetchTimeMs:T,onMouseEnter:()=>$(t.task.id),onMouseLeave:()=>$(null),onClick:m=>{m.stopPropagation(),G.current=!1,P(D=>D===t.task.id?null:t.task.id)}},t.task.id):null})})]})}),H.jsx(Vt,{zoom:dt,onZoomIn:()=>{const t=E.current;t&&et(t.clientWidth,t.clientHeight)},onZoomOut:()=>{const t=E.current;t&&mt(t.clientWidth,t.clientHeight)},onFitToGraph:()=>{St();const t=E.current;if(!t)return;const h=kt(s,Y),m=new Map,D=Array.from(h.values()),N=D.length>0?Math.min(...D.map(R=>R.x)):0,g=D.length>0?Math.min(...D.map(R=>R.y)):0;for(const[R,j]of h.entries())m.set(R,{x:j.x-N,y:j.y-g});gt(m,t.clientWidth,t.clientHeight,{nodeWidth:ct,nodeHeight:rt,measuredHeights:O})},onResetView:()=>{St(),It()}})]})}function Te({context:n}){return e.createElement(me,{tasks:n?.tasks??[],projectId:n?.projectId,columnFlagsByTaskId:n?.columnFlagsByTaskId,onOpenDetail:n?.openTaskDetail})}export{me as DependencyGraph,Te as DependencyGraphDashboardView,Te as default};
1
+ import{r as e,j as H}from"./vendor-react-SZ_qB27O.js";import{e8 as vt,e9 as Xt,dx as Yt,dz as _t,dy as jt}from"./index-CtYRoouR.js";import{Z as $t,a as Gt,M as Wt,R as Ft}from"./zoom-out-DzDzWQt1.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-reactflow-BlIeoTu4.js";import"./vendor-xterm-BNq00GSj.js";import"./createLucideIcon-CshVyKO4.js";const xt=4,wt=300,Lt=24;function Ut({taskId:n,position:i,scale:r,canDrag:a,onPositionChange:f,onDragStateChange:u,onDragEnd:y,onDoubleTap:b}){const[I,z]=e.useState(!1),M=e.useRef(null),C=e.useRef(i),X=e.useRef(!1),o=e.useRef(null),c=e.useRef(!1);C.current=i,c.current=I;const d=e.useCallback(()=>{o.current=null},[]),T=e.useCallback(l=>{M.current=null,z(!1),c.current=!1,l&&(u?.(!1),y?.(),X.current=!0,d())},[y,u,d]),E=e.useCallback(l=>{if(!l.isPrimary)return;if(l.defaultPrevented){d();return}const P=Date.now();o.current&&P-o.current.timeStamp>wt&&d(),a&&l.stopPropagation();const x=l.currentTarget;a&&typeof x.setPointerCapture=="function"&&x.setPointerCapture(l.pointerId),M.current={pointerId:l.pointerId,pointerType:l.pointerType,startPointer:{x:l.clientX,y:l.clientY},startPosition:C.current,defaultPrevented:l.defaultPrevented,movedBeyondThreshold:!1}},[a,d]),A=e.useCallback(l=>{const P=M.current;if(!P||P.pointerId!==l.pointerId)return;a&&l.stopPropagation();const x=l.clientX-P.startPointer.x,U=l.clientY-P.startPointer.y,O=Math.hypot(x,U);if(O>=xt&&(P.movedBeyondThreshold=!0),!a){P.movedBeyondThreshold&&d();return}if(!c.current&&O>=xt&&(z(!0),c.current=!0,u?.(!0),d()),O<xt)return;const V=r>0?r:1;f(n,{x:P.startPosition.x+x/V,y:P.startPosition.y+U/V})},[a,u,f,d,r,n]),G=e.useCallback((l,P)=>{if(!b||P.defaultPrevented||P.movedBeyondThreshold)return Date.now()-(o.current?.timeStamp??0)>wt&&d(),!1;if(P.pointerType==="mouse")return d(),!1;const x={timeStamp:Date.now(),point:{x:P.startPointer.x,y:P.startPointer.y}},U=o.current;return!U||x.timeStamp-U.timeStamp>wt||Math.hypot(x.point.x-U.point.x,x.point.y-U.point.y)>Lt?(o.current=x,!1):(X.current=!0,d(),b(),!0)},[b,d]),Z=e.useCallback(l=>{const P=M.current;if(!P||P.pointerId!==l.pointerId)return;a&&l.stopPropagation(),a&&typeof l.currentTarget.hasPointerCapture=="function"&&l.currentTarget.hasPointerCapture(l.pointerId)&&typeof l.currentTarget.releasePointerCapture=="function"&&l.currentTarget.releasePointerCapture(l.pointerId);const x=c.current;!x&&G(l,P)&&l.preventDefault(),T(x)},[a,T,G]),W=e.useCallback(l=>{const P=M.current;!P||P.pointerId!==l.pointerId||(a&&l.stopPropagation(),a&&typeof l.currentTarget.hasPointerCapture=="function"&&l.currentTarget.hasPointerCapture(l.pointerId)&&typeof l.currentTarget.releasePointerCapture=="function"&&l.currentTarget.releasePointerCapture(l.pointerId),d(),T(c.current))},[a,T,d]),$=e.useCallback(l=>{X.current&&(X.current=!1,l.preventDefault(),l.stopPropagation())},[]);return e.useMemo(()=>({isDragging:I,onPointerDown:E,onPointerMove:A,onPointerUp:Z,onPointerCancel:W,onClickCapture:$}),[I,$,W,E,A,Z])}const Bt=new Set(["planning","researching","executing","finalizing","merging","merging-fix"]);function Zt(n){return n?n.charAt(0).toUpperCase()+n.slice(1):"Executing"}function Kt({taskColumnFlags:n,style:i,position:r,scale:a,isSelected:f=!1,isHighlighted:u=!1,isDimmed:y=!1,onMouseEnter:b,onMouseLeave:I,onClick:z,onNodePositionChange:M,onNodeDragStateChange:C,onNodeDragEnd:X,...o}){const{task:c,globalPaused:d,taskStuckTimeoutMs:T,lastFetchTimeMs:E,onOpenDetail:A}=o,G=c.status==="failed",Z=c.paused===!0,W=vt(c,T,E,n),$=c.column==="in-progress"||Bt.has(c.status),l=c.status==="awaiting-approval"&&!$,P=!d&&!G&&!Z&&!W&&!l&&$,x=typeof c.currentStep=="number"&&c.currentStep>=0&&Array.isArray(c.steps)&&c.currentStep<c.steps.length,U=c.column==="in-review",O=Ut({taskId:c.id,position:r,scale:a,canDrag:f,onPositionChange:M,onDragStateChange:C,onDragEnd:X,onDoubleTap:()=>A(c)});return H.jsxs("div",{className:`graph-task-node${f?" graph-node--draggable graph-task-node--selected":""}${O.isDragging?" graph-node--dragging":""}${u?" graph-task-node--highlighted graph-node--highlighted":""}${y?" graph-task-node--dimmed graph-node--dimmed":""}${P?" graph-task-node--active":""}${U?" graph-task-node--in-review":""}`,style:i,draggable:!1,"data-testid":`graph-task-node-${c.id}`,"data-current-step":P&&x?String(c.currentStep):void 0,onMouseEnter:b,onMouseLeave:I,onClick:z,onDoubleClick:V=>{V.defaultPrevented||A(c)},onClickCapture:O.onClickCapture,onPointerDown:O.onPointerDown,onPointerMove:O.onPointerMove,onPointerUp:O.onPointerUp,onPointerCancel:O.onPointerCancel,children:[P?H.jsx("div",{className:"graph-task-active-indicator",children:H.jsx("span",{className:"graph-task-active-indicator-text",children:Zt(c.status)})}):null,H.jsx(Xt,{...o,taskColumnFlags:n,onOpenDetail:()=>{},disableDrag:!0})]})}function Vt({zoom:n,onZoomIn:i,onZoomOut:r,onFitToGraph:a,onResetView:f}){return H.jsxs("div",{className:"graph-toolbar","data-testid":"graph-toolbar",children:[H.jsx("button",{className:"btn btn-icon",title:"Zoom in (Ctrl+=)","aria-label":"Zoom in",onClick:i,children:H.jsx($t,{size:16})}),H.jsx("button",{className:"btn btn-icon",title:"Zoom out (Ctrl+-)","aria-label":"Zoom out",onClick:r,children:H.jsx(Gt,{size:16})}),H.jsxs("div",{className:"graph-toolbar__zoom-label","aria-live":"polite",children:[Math.round(n*100),"%"]}),H.jsx("button",{className:"btn btn-icon",title:"Fit to graph (Ctrl+Shift+F)","aria-label":"Fit to graph",onClick:a,children:H.jsx(Wt,{size:16})}),H.jsx("button",{className:"btn btn-icon",title:"Reset view (Ctrl+0)","aria-label":"Reset view",onClick:f,children:H.jsx(Ft,{size:16})})]})}const qt=280,Jt=100;function Qt({edges:n,positions:i,nodeWidth:r=qt,nodeHeight:a=Jt,nodeHeights:f,highlightedEdgeIds:u}){const y=!!(u&&u.size>0);return H.jsxs("svg",{className:"dependency-graph-edges","aria-hidden":"true",children:[H.jsx("defs",{children:H.jsx("marker",{id:"dependency-graph-arrowhead",markerWidth:"10",markerHeight:"7",refX:"10",refY:"3.5",orient:"auto",markerUnits:"strokeWidth",children:H.jsx("path",{d:"M 0 0 L 10 3.5 L 0 7 z",style:{fill:"var(--border)"}})})}),n.map(b=>{const I=i.get(b.source),z=i.get(b.target);if(!I||!z)return null;const M=`${b.source}->${b.target}`,C=y&&(u?.has(M)??!1),X=I.x+r/2,o=I.y+(f?.get(b.source)??a),c=z.x+r/2,d=z.y,T=o+(d-o)/2;return H.jsx("path",{"data-testid":"dependency-edge","data-edge-id":M,className:`dependency-graph-edge${C?" graph-edge--highlighted":""}${y&&!C?" graph-edge--dimmed":""}`,d:`M ${X} ${o} C ${X} ${T}, ${c} ${T}, ${c} ${d}`,fill:"none",markerEnd:"url(#dependency-graph-arrowhead)",style:{opacity:y&&!C?.15:1,stroke:C?"var(--todo)":"var(--border)",strokeWidth:C?"var(--space-xs)":"var(--btn-border-width)",transition:"opacity var(--transition-fast), stroke var(--transition-fast), stroke-width var(--transition-fast)"}},M)})]})}const te=new Set(["done","archived"]);function ee(n){return n.filter(i=>typeof i.column=="string"&&i.column.length>0&&!te.has(i.column))}const ne={nodeWidth:280,nodeHeight:100,horizontalGap:40,verticalGap:80,orientation:"vertical"};function kt(n,i){const r={...ne,...i},a=n.nodes.map(o=>o.task.id);if(a.length===0)return new Map;const f=new Map,u=new Map;for(const o of a)u.set(o,0),f.set(o,[]);for(const o of n.edges)!u.has(o.source)||!u.has(o.target)||(f.get(o.target)?.push(o.source),u.set(o.source,(u.get(o.source)??0)+1));const y=a.filter(o=>(u.get(o)??0)===0),b=[];for(;y.length>0;){const o=y.shift();b.push(o);for(const c of f.get(o)??[]){const d=(u.get(c)??0)-1;u.set(c,d),d===0&&y.push(c)}}for(const o of a)b.includes(o)||b.push(o);const I=new Map;for(const o of b){const c=n.edges.filter(T=>T.source===o).map(T=>T.target);let d=0;for(const T of c)d=Math.max(d,(I.get(T)??0)+1);I.set(o,d)}const z=new Map;for(const o of a){const c=I.get(o)??0,d=z.get(c)??[];d.push(o),z.set(c,d)}const M=new Map,C=Array.from(z.keys()).sort((o,c)=>o-c),X=new Map;if(r.orientation==="vertical"){let o=0;for(const c of C){X.set(c,o);const d=z.get(c)??[],T=Math.max(r.nodeHeight,...d.map(E=>r.measuredHeights?.get(E)??r.nodeHeight));o+=T+r.verticalGap}}for(const o of C){const c=z.get(o)??[];if(c.sort(),r.orientation==="horizontal"){const G=-(c.reduce(($,l)=>$+(r.measuredHeights?.get(l)??r.nodeHeight),0)+Math.max(0,c.length-1)*r.verticalGap)/2,Z=o*(r.nodeWidth+r.horizontalGap);let W=G;for(const $ of c)M.set($,{x:Z,y:W}),W+=(r.measuredHeights?.get($)??r.nodeHeight)+r.verticalGap;continue}const E=-(c.length*r.nodeWidth+Math.max(0,c.length-1)*r.horizontalGap)/2;c.forEach((A,G)=>{const Z=E+G*(r.nodeWidth+r.horizontalGap),W=X.get(o)??o*(r.nodeHeight+r.verticalGap);M.set(A,{x:Z,y:W})})}return M}function re(n){return e.useMemo(()=>{const i=n.map(f=>({task:f})),r=new Set(n.map(f=>f.id)),a=n.flatMap(f=>(f.dependencies??[]).filter(u=>r.has(u)).map(u=>({source:f.id,target:u})));return{nodes:i,edges:a}},[n])}const ut=.1,lt=3,Dt=40,oe=200;function nt(n,i,r){return Math.min(r,Math.max(i,n))}function se(n){if(!(n instanceof HTMLElement))return!1;const i=n.tagName.toLowerCase();return n.isContentEditable||i==="input"||i==="textarea"||i==="select"}function ie(){const[n,i]=e.useState({x:0,y:0}),[r,a]=e.useState(1),[f,u]=e.useState(!1),y=e.useRef(n),b=e.useRef(r),I=e.useRef(null),z=e.useRef(null),M=e.useRef(new Map),C=e.useRef(null),X=e.useRef({minX:0,minY:0,maxX:0,maxY:0});e.useEffect(()=>{y.current=n},[n]),e.useEffect(()=>{b.current=r},[r]),e.useEffect(()=>()=>{I.current!==null&&window.clearTimeout(I.current)},[]);const o=e.useMemo(()=>`translate(${n.x}px, ${n.y}px) scale(${r})`,[n.x,n.y,r]),c=e.useMemo(()=>Math.round(r*100),[r]),d=e.useCallback(s=>{if(!s){I.current!==null&&(window.clearTimeout(I.current),I.current=null),u(!1);return}u(!0),I.current!==null&&window.clearTimeout(I.current),I.current=window.setTimeout(()=>{u(!1),I.current=null},oe)},[]),T=e.useCallback((s,p,w,k=b.current)=>{const S=X.current;if(S.maxX<=S.minX||S.maxY<=S.minY)return{x:nt(s.x,-p,p),y:nt(s.y,-w,w)};const Y=p-S.maxX*k,v=-S.minX*k,_=w-S.maxY*k,B=-S.minY*k,ot=Y>v?(Y+v)/2:nt(s.x,Y,v),J=_>B?(_+B)/2:nt(s.y,_,B);return{x:ot,y:J}},[]),E=e.useCallback((s,p,w,k)=>{const S=b.current,Y=y.current,v=nt(s,ut,lt),_=v/S,B=T({x:p.x-(p.x-Y.x)*_,y:p.y-(p.y-Y.y)*_},w,k,v);a(v),i(B)},[T]),A=e.useCallback((s,p,w,k)=>{d(!1);const S=k??{x:p/2,y:w/2};E(b.current*s,S,p,w)},[d,E]),G=e.useCallback((s,p)=>{if(s&&p){A(1.2,s,p);return}a(w=>nt(w+.1,ut,lt))},[A]),Z=e.useCallback((s,p)=>{if(s&&p){A(1/1.2,s,p);return}a(w=>nt(w-.1,ut,lt))},[A]),W=e.useCallback(()=>{d(!0),i({x:0,y:0}),a(1)},[d]),$=e.useCallback((s,p,w,k)=>{if(d(!0),s.size===0){i({x:0,y:0}),a(1);return}const S=k?.nodeWidth??280,Y=k?.nodeHeight??100,v=Array.from(s.entries()),_=Math.min(...v.map(([,et])=>et.x)),B=Math.min(...v.map(([,et])=>et.y)),ot=Math.max(...v.map(([,et])=>et.x+S)),J=Math.max(...v.map(([et,mt])=>mt.y+(k?.measuredHeights?.get(et)??Y))),F=Math.max(1,ot-_),Q=Math.max(1,J-B),tt=Math.max(1,p-Dt*2),ht=Math.max(1,w-Dt*2),st=nt(Math.min(tt/F,ht/Q),ut,lt),dt=(p-F*st)/2-_*st,pt=(w-Q*st)/2-B*st;a(st),i(T({x:dt,y:pt},p,w,st))},[T,d]),l=e.useCallback((s,p)=>{if(M.current.set(s,p),M.current.size===2){const[w,k]=Array.from(M.current.values());C.current={distance:Math.hypot(w.x-k.x,w.y-k.y),zoom:b.current,pan:y.current,midpoint:{x:(w.x+k.x)/2,y:(w.y+k.y)/2}},z.current=null;return}z.current={start:p,panStart:y.current}},[]),P=e.useCallback((s,p,w,k)=>{if(M.current.has(s)&&M.current.set(s,p),M.current.size===2&&C.current){d(!1);const[v,_]=Array.from(M.current.values()),ot=Math.hypot(v.x-_.x,v.y-_.y)/Math.max(1,C.current.distance),J={x:(v.x+_.x)/2,y:(v.y+_.y)/2},F=nt(C.current.zoom*ot,ut,lt),Q=F/C.current.zoom,tt=T({x:J.x-(C.current.midpoint.x-C.current.pan.x)*Q,y:J.y-(C.current.midpoint.y-C.current.pan.y)*Q},w,k);a(F),i(tt);return}const S=z.current;if(!S)return;d(!1);const Y={x:S.panStart.x+(p.x-S.start.x),y:S.panStart.y+(p.y-S.start.y)};i(T(Y,w,k))},[T,d]),x=e.useCallback(s=>{if(M.current.delete(s),M.current.size<2&&(C.current=null),M.current.size===1){const[p]=Array.from(M.current.values());z.current={start:p,panStart:y.current};return}M.current.size===0&&(z.current=null)},[]),U=e.useCallback((s,p,w,k)=>{d(!1);const S={x:y.current.x-s,y:y.current.y-p};i(T(S,w,k))},[T,d]),O=e.useCallback((s,p,w,k)=>{const S=s<0?1.1:.9;d(!1),E(b.current*S,p,w,k)},[d,E]),V=e.useCallback(s=>{X.current=s},[]),q=e.useCallback((s,p,w,k,S)=>{if(se(s.target))return;const Y=s.metaKey||s.ctrlKey;if(s.key==="Escape"){s.preventDefault(),W();return}if(Y){if(s.key==="="||s.key==="+"){s.preventDefault(),A(1.2,p,w);return}if(s.key==="-"){s.preventDefault(),A(1/1.2,p,w);return}if(s.key==="0"){s.preventDefault(),W();return}(s.key==="f"||s.key==="F")&&s.shiftKey&&(s.preventDefault(),$(k,p,w,S))}},[$,W,A]);return{pan:n,zoom:r,zoomPercent:c,transform:o,transitioning:f,zoomIn:G,zoomOut:Z,resetView:W,fitToGraph:$,setAnimate:d,onPointerDown:l,onPointerMove:P,onPointerUp:x,onWheelPan:U,onWheelZoom:O,handleKeyDown:q,setGraphBounds:V}}function ae(n){const{upstreamMap:i,downstreamMap:r}=e.useMemo(()=>{const f=new Map,u=new Map;for(const y of n)f.set(y.id,new Set(y.dependencies??[])),u.has(y.id)||u.set(y.id,new Set);for(const y of n)for(const b of y.dependencies??[])u.has(b)||u.set(b,new Set),u.get(b)?.add(y.id);return{upstreamMap:f,downstreamMap:u}},[n]);return{getChain:e.useCallback(f=>{if(!i.has(f)&&!r.has(f))return new Set;const u=new Set([f]),y=(b,I)=>{const z=[b],M=new Set([b]);for(;z.length>0;){const C=z.shift();if(!C)continue;const X=I.get(C);if(X)for(const o of X)M.has(o)||(M.add(o),u.add(o),z.push(o))}};return y(f,i),y(f,r),u},[r,i])}}const Mt="fusion-plugin-dependency-graph:positions";function ft(n){if(!n||typeof n!="object")return!1;const i=n;return typeof i.x=="number"&&Number.isFinite(i.x)&&typeof i.y=="number"&&Number.isFinite(i.y)}function ce(n){const i=Yt(Mt,n);if(!i)return{};try{const r=JSON.parse(i);if(!r||typeof r!="object")return{};const a={};for(const[f,u]of Object.entries(r))ft(u)&&(a[f]=u);return a}catch{return{}}}function ue(n,i,r){const a={};for(const[f,u]of Object.entries(n))i.has(f)&&ft(u)&&(a[f]=u);_t(Mt,JSON.stringify(a),r)}function le(n){jt(Mt,n)}function de(n,i,r){const a={};for(const[f,u]of Object.entries(n))r.has(f)&&ft(u)&&(a[f]=u);for(const[f,u]of Object.entries(i))r.has(f)&&ft(u)&&(a[f]=u);return a}function fe(n,i){const r={};for(const[a,f]of Object.entries(n))i.has(a)&&(r[a]=f);return r}function he({projectId:n,visibleTaskIds:i}){const[r,a]=e.useState(null);e.useEffect(()=>{a(ce(n))},[n]);const f=e.useCallback(y=>{ue(y,i,n),a(fe(y,i))},[n,i]),u=e.useCallback(()=>{le(n),a(null)},[n]);return{savedPositions:r,persistPositions:f,clearSavedPositions:u}}const ct=280,rt=100,pe=768,Rt=4;function me({tasks:n,projectId:i,columnFlagsByTaskId:r,onOpenTaskDetail:a,onOpenDetail:f,addToast:u,globalPaused:y,onUpdateTask:b,onArchiveTask:I,onUnarchiveTask:z,onDeleteTask:M,onRetryTask:C,onOpenDetailWithTab:X,taskStuckTimeoutMs:o,onOpenMission:c,onMoveTask:d,lastFetchTimeMs:T}){const E=e.useRef(null),A=e.useRef(null),G=e.useRef(!1),Z=e.useRef(new Map),[W,$]=e.useState(null),[l,P]=e.useState(null),[x,U]=e.useState({width:0,height:0}),[O,V]=e.useState(new Map),q=e.useMemo(()=>ee(n),[n]),s=re(q),{getChain:p}=ae(q),w=W??l,k=e.useMemo(()=>w?p(w):new Set,[w,p]),S=e.useMemo(()=>{const t=x.width||(typeof window<"u"?window.innerWidth:0);return(x.height||(typeof window<"u"?window.innerHeight:0))>t||t<pe?"horizontal":"vertical"},[x.height,x.width]),Y=e.useMemo(()=>({nodeWidth:ct,nodeHeight:rt,horizontalGap:40,verticalGap:80,orientation:S,measuredHeights:O}),[O,S]),v=e.useMemo(()=>kt(s,Y),[s,Y]),_=e.useMemo(()=>new Set(q.map(t=>t.id)),[q]),{savedPositions:B,persistPositions:ot,clearSavedPositions:J}=he({projectId:i,visibleTaskIds:_}),[F,Q]=e.useState(v),[tt,ht]=e.useState(!1);e.useEffect(()=>{const t={};for(const[m,D]of v.entries())t[m]=D;const h=B?de(t,B,_):t;Q(new Map(Object.entries(h)))},[v,B,_]),e.useEffect(()=>{const t=E.current;if(!t)return;const h=(D,N)=>{U(g=>g.width===D&&g.height===N?g:{width:D,height:N})};if(typeof ResizeObserver>"u"){h(t.clientWidth||(typeof window<"u"?window.innerWidth:0),t.clientHeight||(typeof window<"u"?window.innerHeight:0));return}h(t.clientWidth,t.clientHeight);const m=new ResizeObserver(D=>{const N=D[0];N&&h(N.contentRect.width,N.contentRect.height)});return m.observe(t),()=>m.disconnect()},[]),e.useEffect(()=>{const t=E.current;if(!t)return;const h=new Set(s.nodes.map(g=>g.task.id)),m=new Map;for(const g of h){const R=t.querySelector(`[data-testid="graph-task-node-${g}"]`);R&&m.set(g,R)}Z.current=m,V(g=>{let R=!1;const j=new Map;for(const[K,at]of g.entries()){if(!h.has(K)){R=!0;continue}j.set(K,at)}return R?j:g});const D=(g,R)=>{V(j=>{const K=j.get(g);if(K!==void 0&&Math.abs(K-R)<1)return j;const at=new Map(j);return at.set(g,R),at})};for(const[g,R]of m.entries())D(g,R.offsetHeight||rt);if(typeof ResizeObserver>"u")return;const N=new ResizeObserver(g=>{for(const R of g){const j=R.target,K=Array.from(m.entries()).find(([,at])=>at===j)?.[0];K&&D(K,j.offsetHeight||rt)}});for(const g of m.values())N.observe(g);return()=>N.disconnect()},[s.nodes,F,x.height,x.width]);const{transform:st,zoom:dt,transitioning:pt,zoomIn:et,zoomOut:mt,resetView:It,fitToGraph:gt,onPointerDown:Ht,onPointerMove:zt,onPointerUp:bt,onWheelPan:Et,onWheelZoom:Ot,handleKeyDown:Nt,setGraphBounds:Pt}=ie(),L=e.useMemo(()=>{const t=Array.from(F.values());if(t.length===0)return{minX:0,minY:0,maxX:0,maxY:0,width:0,height:0};const h=Math.min(...t.map(g=>g.x)),m=Math.min(...t.map(g=>g.y)),D=Math.max(...t.map(g=>g.x+ct)),N=Math.max(...Array.from(F.entries()).map(([g,R])=>R.y+(O.get(g)??rt)));return{minX:h,minY:m,maxX:D,maxY:N,width:Math.max(0,D-h),height:Math.max(0,N-m)}},[O,F]),it=e.useMemo(()=>{if(F.size===0)return F;const t=new Map;for(const[h,m]of F.entries())t.set(h,{x:m.x-L.minX,y:m.y-L.minY});return t},[L.minX,L.minY,F]);e.useEffect(()=>{Pt({minX:0,minY:0,maxX:L.width,maxY:L.height})},[L.height,L.width,Pt]);const Tt=e.useMemo(()=>Array.from(it.keys()).sort().join("|"),[it]),yt=e.useMemo(()=>[Tt,x.width,x.height,L.width,L.height,Array.from(O.entries()).sort(([t],[h])=>t.localeCompare(h)).map(([t,h])=>`${t}:${Math.round(h)}`).join("|")].join("::"),[L.height,L.width,Tt,O,x.height,x.width]),Ct=e.useRef(null);e.useEffect(()=>{if(q.length===0||it.size===0)return;const t=E.current;if(!t)return;const h=t.clientWidth||x.width,m=t.clientHeight||x.height;if(h===0||m===0||Ct.current===yt)return;let D=0,N=0;const g=()=>{const R=E.current;if(!R)return;const j=R.clientWidth||x.width,K=R.clientHeight||x.height;j===0||K===0||(gt(it,j,K,{nodeWidth:ct,nodeHeight:rt,measuredHeights:O}),Ct.current=yt)};return typeof requestAnimationFrame=="function"?D=requestAnimationFrame(()=>{N=requestAnimationFrame(g)}):g(),()=>{D&&cancelAnimationFrame(D),N&&cancelAnimationFrame(N)}},[q.length,yt,gt,O,it,x.height,x.width]);const St=e.useCallback(()=>{J();const t=kt(s,Y);Q(t)},[J,s,Y]),At=e.useCallback(()=>{const t={};for(const[h,m]of F.entries())t[h]=m;ot(t)},[ot,F]);return H.jsxs("section",{className:"dependency-graph","data-testid":"dependency-graph",children:[H.jsx("div",{ref:E,className:"dependency-graph__viewport",onPointerDown:t=>{tt||(A.current={x:t.clientX,y:t.clientY},G.current=!1,Ht(t.pointerId,{x:t.clientX,y:t.clientY}))},onPointerMove:t=>{if(tt)return;const h=E.current;if(!h)return;const m=A.current;if(m){const D=Math.abs(t.clientX-m.x),N=Math.abs(t.clientY-m.y);(D>Rt||N>Rt)&&(G.current=!0)}zt(t.pointerId,{x:t.clientX,y:t.clientY},h.clientWidth,h.clientHeight)},onPointerUp:t=>{tt||bt(t.pointerId),A.current=null},onPointerCancel:t=>{tt||bt(t.pointerId),A.current=null,G.current=!1},onWheel:t=>{t.preventDefault();const h=E.current;if(h){if(t.ctrlKey||t.metaKey){const m=h.getBoundingClientRect();Ot(t.deltaY,{x:t.clientX-m.left,y:t.clientY-m.top},h.clientWidth,h.clientHeight);return}Et(t.deltaX,t.deltaY,h.clientWidth,h.clientHeight)}},onKeyDown:t=>{const h=E.current;h&&Nt(t,h.clientWidth,h.clientHeight,it,{nodeWidth:ct,nodeHeight:rt,measuredHeights:O})},tabIndex:0,onClick:()=>{G.current||tt||P(null)},children:q.length===0?H.jsx("div",{className:"dependency-graph__empty",children:"No active tasks to display in graph view."}):H.jsxs("div",{className:`graph-canvas-transform${pt?" graph-canvas-transform--animate":""}`,style:{transform:st,width:`${L.width}px`,height:`${L.height}px`},children:[H.jsx(Qt,{edges:s.edges,positions:it,nodeWidth:ct,nodeHeight:rt,nodeHeights:O,highlightedEdgeIds:k.size>0?new Set(s.edges.filter(t=>k.has(t.source)&&k.has(t.target)).map(t=>`${t.source}->${t.target}`)):void 0}),H.jsx("div",{className:"dependency-graph__nodes-layer",children:s.nodes.map(t=>{const h=it.get(t.task.id);return h?H.jsx(Kt,{task:t.task,projectId:i,taskColumnFlags:r?.get(t.task.id),isSelected:l===t.task.id,style:{minHeight:`${rt}px`,left:`${h.x}px`,top:`${h.y}px`},position:h,scale:dt,onNodePositionChange:(m,D)=>{Q(N=>{const g={x:D.x+L.minX,y:D.y+L.minY},R=N.get(m);if(R&&R.x===g.x&&R.y===g.y)return N;const j=new Map(N);return j.set(m,g),j})},onNodeDragStateChange:ht,onNodeDragEnd:At,isHighlighted:k.size>0&&k.has(t.task.id),isDimmed:k.size>0&&!k.has(t.task.id),onOpenDetail:f??(m=>a?.(m.id)),addToast:u??(()=>{}),globalPaused:y,onUpdateTask:b,onArchiveTask:I,onUnarchiveTask:z,onDeleteTask:M,onRetryTask:C,onOpenDetailWithTab:X,taskStuckTimeoutMs:o,onOpenMission:c,onMoveTask:d,lastFetchTimeMs:T,onMouseEnter:()=>$(t.task.id),onMouseLeave:()=>$(null),onClick:m=>{m.stopPropagation(),G.current=!1,P(D=>D===t.task.id?null:t.task.id)}},t.task.id):null})})]})}),H.jsx(Vt,{zoom:dt,onZoomIn:()=>{const t=E.current;t&&et(t.clientWidth,t.clientHeight)},onZoomOut:()=>{const t=E.current;t&&mt(t.clientWidth,t.clientHeight)},onFitToGraph:()=>{St();const t=E.current;if(!t)return;const h=kt(s,Y),m=new Map,D=Array.from(h.values()),N=D.length>0?Math.min(...D.map(R=>R.x)):0,g=D.length>0?Math.min(...D.map(R=>R.y)):0;for(const[R,j]of h.entries())m.set(R,{x:j.x-N,y:j.y-g});gt(m,t.clientWidth,t.clientHeight,{nodeWidth:ct,nodeHeight:rt,measuredHeights:O})},onResetView:()=>{St(),It()}})]})}function Te({context:n}){return e.createElement(me,{tasks:n?.tasks??[],projectId:n?.projectId,columnFlagsByTaskId:n?.columnFlagsByTaskId,onOpenDetail:n?.openTaskDetail})}export{me as DependencyGraph,Te as DependencyGraphDashboardView,Te as default};
@@ -1 +1 @@
1
- import{r as n,j as t}from"./vendor-react-SZ_qB27O.js";import{V as I,z as P}from"./index-DWRJyaa3.js";import{P as b,R as A,S as E}from"./shield-check-DwJMibgX.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-reactflow-BlIeoTu4.js";import"./vendor-xterm-BNq00GSj.js";import"./createLucideIcon-CshVyKO4.js";function $(s){return s.type==="video"&&s.authorType==="system"&&s.authorId==="executor"}async function g(s){const e=await s.text();let r=e||s.statusText;try{const u=JSON.parse(e);typeof u.error=="string"&&u.error.trim()&&(r=u.error)}catch{}return new Error(r)}async function T(s){const e=await fetch(`/api/plugins/fusion-plugin-quality/runs?projectId=${encodeURIComponent(s)}`);if(!e.ok)throw await g(e);return(await e.json()).runs??[]}function z(s){const e=s.project?.reviewArtifacts??s.global?.reviewArtifacts;return e==="user-facing"||e==="on"?e:"off"}function D(s){const e=Date.parse(s);if(!Number.isFinite(e))return s;try{return new Date(e).toLocaleString(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}catch{return s}}function L(s){return s==null?"—":s<1e3?`${s}ms`:`${Math.round(s/1e3)}s`}function O({status:s}){const e=s.toLowerCase().replace(/\s+/g,"_");return t.jsx("span",{className:`quality-status quality-status--${e}`,"data-status":e,children:s})}function G({context:s}){const e=s?.projectId,[r,u]=n.useState([]),[w,c]=n.useState(null),[o,q]=n.useState(!1),[f,N]=n.useState(null),[S,p]=n.useState("off"),[m,j]=n.useState([]),[k,v]=n.useState(null);n.useEffect(()=>{if(!e){p("off"),j([]),v(null);return}p("off"),j([]),v(null);const i=new AbortController;return(async()=>{try{const a=`projectId=${encodeURIComponent(e)}`,[d,l]=await Promise.all([fetch(`/api/settings/scopes?${a}`,{signal:i.signal}),fetch(`/api/artifacts?type=video&${a}`,{signal:i.signal})]);if(!d.ok)throw await g(d);if(!l.ok)throw await g(l);const C=await d.json(),R=await l.json();i.signal.aborted||(p(z(C)),j(R.filter($)),v(e))}catch(a){i.signal.aborted||c(a instanceof Error?a.message:String(a))}})(),()=>i.abort()},[e]);const _=k===e&&S!=="off",y=n.useCallback(async()=>{if(e){q(!0),c(null);try{u(await T(e))}catch(i){c(i instanceof Error?i.message:String(i))}finally{q(!1)}}},[e]);n.useEffect(()=>{y()},[y]);const x=async(i,h=!1)=>{if(e){N(i),c(null);try{const a=await fetch(`/api/plugins/fusion-plugin-quality/runs?projectId=${encodeURIComponent(e)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:e,preset:i,source:"hub",confirmFullSuite:h})});if(!a.ok){const d=await a.text();try{const l=JSON.parse(d);if(typeof l.error=="string"&&l.error.trim()){c(l.error);return}}catch{}c(d||a.statusText);return}await y()}finally{N(null)}}},V=e?t.jsxs(t.Fragment,{children:[t.jsxs("span",{className:"quality-header-count","data-testid":"quality-run-count",children:[r.length," ",r.length===1?"run":"runs"]}),t.jsxs("button",{type:"button",className:"btn btn-sm",disabled:o||f!=null,onClick:()=>void x("verify-fast"),"data-testid":"quality-run-verify-fast",children:[t.jsx(b,{size:14,"aria-hidden":"true"}),"verify:fast"]}),t.jsxs("button",{type:"button",className:"btn btn-sm",disabled:o||f!=null,onClick:()=>void x("test-gate"),"data-testid":"quality-run-test-gate",children:[t.jsx(b,{size:14,"aria-hidden":"true"}),"test:gate"]}),t.jsxs("button",{type:"button",className:"btn btn-sm",disabled:o||f!=null,onClick:()=>void x("project-test"),"data-testid":"quality-run-project-test",children:[t.jsx(b,{size:14,"aria-hidden":"true"}),"project test"]}),t.jsx("button",{type:"button",className:"btn btn-icon btn-sm",disabled:o||f!=null,onClick:()=>void y(),"aria-label":"Refresh Quality runs",title:"Refresh","data-testid":"quality-refresh",children:t.jsx(A,{size:14,className:o?"spin":void 0,"aria-hidden":"true"})})]}):null;return t.jsxs("div",{className:"quality-view","data-testid":"quality-hub",children:[t.jsx(I,{icon:E,title:"Quality",actions:V,titleId:"quality-view-title"}),t.jsxs("div",{className:"quality-view-body",children:[t.jsx("p",{className:"quality-view-lede",children:"Project-wide test runs. Advisory only — does not change merge eligibility. Prefer Task QA for worktree-scoped preview, screenshots, and suggested cases."}),e?t.jsxs(t.Fragment,{children:[w?t.jsx("p",{className:"quality-view-error",role:"alert",children:w}):null,t.jsxs("section",{className:"quality-runs-card card","data-testid":"quality-runs-card",children:[t.jsxs("header",{className:"quality-runs-card__header",children:[t.jsx("h3",{children:"Run history"}),t.jsx("span",{className:"quality-runs-card__count",children:o&&r.length===0?"Loading…":`${r.length} total`})]}),t.jsx("div",{className:"quality-runs-table-wrap",children:t.jsxs("table",{className:"quality-runs-table",children:[t.jsx("thead",{children:t.jsxs("tr",{children:[t.jsx("th",{scope:"col",children:"Status"}),t.jsx("th",{scope:"col",children:"Preset"}),t.jsx("th",{scope:"col",children:"Command"}),t.jsx("th",{scope:"col",children:"Duration"}),t.jsx("th",{scope:"col",children:"When"})]})}),t.jsx("tbody",{children:r.length===0?t.jsx("tr",{children:t.jsx("td",{colSpan:5,className:"quality-runs-table__empty",children:o?"Loading runs…":"No runs yet. Start a preset from the header."})}):r.map(i=>t.jsxs("tr",{"data-testid":"quality-run-row",children:[t.jsx("td",{children:t.jsx(O,{status:i.status})}),t.jsx("td",{children:i.presetId??"—"}),t.jsx("td",{className:"quality-runs-table__command",children:i.command}),t.jsx("td",{children:L(i.durationMs)}),t.jsx("td",{children:D(i.createdAt)})]},i.id))})]})})]}),_?t.jsxs("section",{className:"quality-verification-videos-card card","data-testid":"quality-verification-videos",children:[t.jsxs("header",{className:"quality-verification-videos-card__header",children:[t.jsx("h3",{children:"Verification videos"}),t.jsxs("span",{className:"quality-verification-videos-card__count",children:[m.length," total"]})]}),m.length===0?t.jsx("p",{className:"quality-verification-videos-card__empty","data-testid":"quality-verification-videos-empty",children:"No verification videos captured yet."}):t.jsx("div",{className:"quality-verification-videos-list",children:m.map(i=>{const h=s?.tasks.find(a=>a.id===i.taskId);return t.jsxs("article",{className:"quality-verification-video-row","data-testid":"quality-verification-video-row",children:[t.jsx("video",{className:"quality-verification-video-row__media",controls:!0,preload:"metadata",src:P(i.id,e)}),t.jsxs("div",{className:"quality-verification-video-row__details",children:[t.jsx("h4",{children:i.title}),h?t.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>s?.openTaskDetail(h),"data-testid":"quality-verification-video-open-task",children:"Open task"}):null]})]},i.id)})})]}):t.jsx("p",{className:"quality-verification-videos-disabled","data-testid":"quality-verification-videos-disabled",children:"Verification videos appear here when Review Artifacts is enabled."})]}):t.jsx("p",{className:"quality-view-empty-project",children:"Select a project to view Quality data."})]})]})}export{G as QualityDashboardView,G as default,$ as isVerificationVideo};
1
+ import{r as n,j as t}from"./vendor-react-SZ_qB27O.js";import{V as I,z as P}from"./index-CtYRoouR.js";import{P as b,R as A,S as E}from"./shield-check-DwJMibgX.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-reactflow-BlIeoTu4.js";import"./vendor-xterm-BNq00GSj.js";import"./createLucideIcon-CshVyKO4.js";function $(s){return s.type==="video"&&s.authorType==="system"&&s.authorId==="executor"}async function g(s){const e=await s.text();let r=e||s.statusText;try{const u=JSON.parse(e);typeof u.error=="string"&&u.error.trim()&&(r=u.error)}catch{}return new Error(r)}async function T(s){const e=await fetch(`/api/plugins/fusion-plugin-quality/runs?projectId=${encodeURIComponent(s)}`);if(!e.ok)throw await g(e);return(await e.json()).runs??[]}function z(s){const e=s.project?.reviewArtifacts??s.global?.reviewArtifacts;return e==="user-facing"||e==="on"?e:"off"}function D(s){const e=Date.parse(s);if(!Number.isFinite(e))return s;try{return new Date(e).toLocaleString(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}catch{return s}}function L(s){return s==null?"—":s<1e3?`${s}ms`:`${Math.round(s/1e3)}s`}function O({status:s}){const e=s.toLowerCase().replace(/\s+/g,"_");return t.jsx("span",{className:`quality-status quality-status--${e}`,"data-status":e,children:s})}function G({context:s}){const e=s?.projectId,[r,u]=n.useState([]),[w,c]=n.useState(null),[o,q]=n.useState(!1),[f,N]=n.useState(null),[S,p]=n.useState("off"),[m,j]=n.useState([]),[k,v]=n.useState(null);n.useEffect(()=>{if(!e){p("off"),j([]),v(null);return}p("off"),j([]),v(null);const i=new AbortController;return(async()=>{try{const a=`projectId=${encodeURIComponent(e)}`,[d,l]=await Promise.all([fetch(`/api/settings/scopes?${a}`,{signal:i.signal}),fetch(`/api/artifacts?type=video&${a}`,{signal:i.signal})]);if(!d.ok)throw await g(d);if(!l.ok)throw await g(l);const C=await d.json(),R=await l.json();i.signal.aborted||(p(z(C)),j(R.filter($)),v(e))}catch(a){i.signal.aborted||c(a instanceof Error?a.message:String(a))}})(),()=>i.abort()},[e]);const _=k===e&&S!=="off",y=n.useCallback(async()=>{if(e){q(!0),c(null);try{u(await T(e))}catch(i){c(i instanceof Error?i.message:String(i))}finally{q(!1)}}},[e]);n.useEffect(()=>{y()},[y]);const x=async(i,h=!1)=>{if(e){N(i),c(null);try{const a=await fetch(`/api/plugins/fusion-plugin-quality/runs?projectId=${encodeURIComponent(e)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:e,preset:i,source:"hub",confirmFullSuite:h})});if(!a.ok){const d=await a.text();try{const l=JSON.parse(d);if(typeof l.error=="string"&&l.error.trim()){c(l.error);return}}catch{}c(d||a.statusText);return}await y()}finally{N(null)}}},V=e?t.jsxs(t.Fragment,{children:[t.jsxs("span",{className:"quality-header-count","data-testid":"quality-run-count",children:[r.length," ",r.length===1?"run":"runs"]}),t.jsxs("button",{type:"button",className:"btn btn-sm",disabled:o||f!=null,onClick:()=>void x("verify-fast"),"data-testid":"quality-run-verify-fast",children:[t.jsx(b,{size:14,"aria-hidden":"true"}),"verify:fast"]}),t.jsxs("button",{type:"button",className:"btn btn-sm",disabled:o||f!=null,onClick:()=>void x("test-gate"),"data-testid":"quality-run-test-gate",children:[t.jsx(b,{size:14,"aria-hidden":"true"}),"test:gate"]}),t.jsxs("button",{type:"button",className:"btn btn-sm",disabled:o||f!=null,onClick:()=>void x("project-test"),"data-testid":"quality-run-project-test",children:[t.jsx(b,{size:14,"aria-hidden":"true"}),"project test"]}),t.jsx("button",{type:"button",className:"btn btn-icon btn-sm",disabled:o||f!=null,onClick:()=>void y(),"aria-label":"Refresh Quality runs",title:"Refresh","data-testid":"quality-refresh",children:t.jsx(A,{size:14,className:o?"spin":void 0,"aria-hidden":"true"})})]}):null;return t.jsxs("div",{className:"quality-view","data-testid":"quality-hub",children:[t.jsx(I,{icon:E,title:"Quality",actions:V,titleId:"quality-view-title"}),t.jsxs("div",{className:"quality-view-body",children:[t.jsx("p",{className:"quality-view-lede",children:"Project-wide test runs. Advisory only — does not change merge eligibility. Prefer Task QA for worktree-scoped preview, screenshots, and suggested cases."}),e?t.jsxs(t.Fragment,{children:[w?t.jsx("p",{className:"quality-view-error",role:"alert",children:w}):null,t.jsxs("section",{className:"quality-runs-card card","data-testid":"quality-runs-card",children:[t.jsxs("header",{className:"quality-runs-card__header",children:[t.jsx("h3",{children:"Run history"}),t.jsx("span",{className:"quality-runs-card__count",children:o&&r.length===0?"Loading…":`${r.length} total`})]}),t.jsx("div",{className:"quality-runs-table-wrap",children:t.jsxs("table",{className:"quality-runs-table",children:[t.jsx("thead",{children:t.jsxs("tr",{children:[t.jsx("th",{scope:"col",children:"Status"}),t.jsx("th",{scope:"col",children:"Preset"}),t.jsx("th",{scope:"col",children:"Command"}),t.jsx("th",{scope:"col",children:"Duration"}),t.jsx("th",{scope:"col",children:"When"})]})}),t.jsx("tbody",{children:r.length===0?t.jsx("tr",{children:t.jsx("td",{colSpan:5,className:"quality-runs-table__empty",children:o?"Loading runs…":"No runs yet. Start a preset from the header."})}):r.map(i=>t.jsxs("tr",{"data-testid":"quality-run-row",children:[t.jsx("td",{children:t.jsx(O,{status:i.status})}),t.jsx("td",{children:i.presetId??"—"}),t.jsx("td",{className:"quality-runs-table__command",children:i.command}),t.jsx("td",{children:L(i.durationMs)}),t.jsx("td",{children:D(i.createdAt)})]},i.id))})]})})]}),_?t.jsxs("section",{className:"quality-verification-videos-card card","data-testid":"quality-verification-videos",children:[t.jsxs("header",{className:"quality-verification-videos-card__header",children:[t.jsx("h3",{children:"Verification videos"}),t.jsxs("span",{className:"quality-verification-videos-card__count",children:[m.length," total"]})]}),m.length===0?t.jsx("p",{className:"quality-verification-videos-card__empty","data-testid":"quality-verification-videos-empty",children:"No verification videos captured yet."}):t.jsx("div",{className:"quality-verification-videos-list",children:m.map(i=>{const h=s?.tasks.find(a=>a.id===i.taskId);return t.jsxs("article",{className:"quality-verification-video-row","data-testid":"quality-verification-video-row",children:[t.jsx("video",{className:"quality-verification-video-row__media",controls:!0,preload:"metadata",src:P(i.id,e)}),t.jsxs("div",{className:"quality-verification-video-row__details",children:[t.jsx("h4",{children:i.title}),h?t.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>s?.openTaskDetail(h),"data-testid":"quality-verification-video-open-task",children:"Open task"}):null]})]},i.id)})})]}):t.jsx("p",{className:"quality-verification-videos-disabled","data-testid":"quality-verification-videos-disabled",children:"Verification videos appear here when Review Artifacts is enabled."})]}):t.jsx("p",{className:"quality-view-empty-project",children:"Select a project to view Quality data."})]})]})}export{G as QualityDashboardView,G as default,$ as isVerificationVideo};
@@ -1,4 +1,4 @@
1
- import{s as k,g as R,q as E,p as I,a as _,b as F,_ as l,K as D,z,G as y,E as C,H as G,l as P,L as W,d as B}from"./mermaid.core-CDXPNs7a.js";import{p as H}from"./chunk-4BX2VUAB-ivAwI4xM.js";import{p as V}from"./wardley-L42UT6IY-X_ZMW457.js";import"./index-DWRJyaa3.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-reactflow-BlIeoTu4.js";import"./vendor-xterm-BNq00GSj.js";import"./step-yuy0qJer.js";var x={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},w={axes:[],curves:[],options:x},g=structuredClone(w),j=G.radar,q=l(()=>y({...j,...C().radar}),"getConfig"),b=l(()=>g.axes,"getAxes"),K=l(()=>g.curves,"getCurves"),N=l(()=>g.options,"getOptions"),U=l(a=>{g.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),X=l(a=>{g.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:Y(t.entries)}))},"setCurves"),Y=l(a=>{if(a[0].axis==null)return a.map(e=>e.value);const t=b();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{const r=a.find(s=>s.axis?.$refText===e.name);if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),Z=l(a=>{const t=a.reduce((e,r)=>(e[r.name]=r,e),{});g.options={showLegend:t.showLegend?.value??x.showLegend,ticks:t.ticks?.value??x.ticks,max:t.max?.value??x.max,min:t.min?.value??x.min,graticule:t.graticule?.value??x.graticule}},"setOptions"),J=l(()=>{z(),g=structuredClone(w)},"clear"),$={getAxes:b,getCurves:K,getOptions:N,setAxes:U,setCurves:X,setOptions:Z,getConfig:q,clear:J,setAccTitle:F,getAccTitle:_,setDiagramTitle:I,getDiagramTitle:E,getAccDescription:R,setAccDescription:k},Q=l(a=>{H(a,$);const{axes:t,curves:e,options:r}=a;$.setAxes(t),$.setCurves(e),$.setOptions(r)},"populate"),tt={parse:l(async a=>{const t=await V("radar",a);P.debug(t),Q(t)},"parse")},et=l((a,t,e,r)=>{const s=r.db,o=s.getAxes(),i=s.getCurves(),n=s.getOptions(),c=s.getConfig(),d=s.getDiagramTitle(),u=D(t),p=at(u,c),m=n.max??Math.max(...i.map(f=>Math.max(...f.entries))),h=n.min,v=Math.min(c.width,c.height)/2;rt(p,o,v,n.ticks,n.graticule),st(p,o,v,c),M(p,o,i,h,m,n.graticule,c),T(p,i,n.showLegend,c),p.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),at=l((a,t)=>{const e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,s={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return B(a,r,e,t.useMaxWidth??!0),a.attr("viewBox",`0 0 ${e} ${r}`),a.append("g").attr("transform",`translate(${s.x}, ${s.y})`)},"drawFrame"),rt=l((a,t,e,r,s)=>{if(s==="circle")for(let o=0;o<r;o++){const i=e*(o+1)/r;a.append("circle").attr("r",i).attr("class","radarGraticule")}else if(s==="polygon"){const o=t.length;for(let i=0;i<r;i++){const n=e*(i+1)/r,c=t.map((d,u)=>{const p=2*u*Math.PI/o-Math.PI/2,m=n*Math.cos(p),h=n*Math.sin(p);return`${m},${h}`}).join(" ");a.append("polygon").attr("points",c).attr("class","radarGraticule")}}},"drawGraticule"),st=l((a,t,e,r)=>{const s=t.length;for(let o=0;o<s;o++){const i=t[o].label,n=2*o*Math.PI/s-Math.PI/2;a.append("line").attr("x1",0).attr("y1",0).attr("x2",e*r.axisScaleFactor*Math.cos(n)).attr("y2",e*r.axisScaleFactor*Math.sin(n)).attr("class","radarAxisLine"),a.append("text").text(i).attr("x",e*r.axisLabelFactor*Math.cos(n)).attr("y",e*r.axisLabelFactor*Math.sin(n)).attr("class","radarAxisLabel")}},"drawAxes");function M(a,t,e,r,s,o,i){const n=t.length,c=Math.min(i.width,i.height)/2;e.forEach((d,u)=>{if(d.entries.length!==n)return;const p=d.entries.map((m,h)=>{const v=2*Math.PI*h/n-Math.PI/2,f=A(m,r,s,c),S=f*Math.cos(v),O=f*Math.sin(v);return{x:S,y:O}});o==="circle"?a.append("path").attr("d",L(p,i.curveTension)).attr("class",`radarCurve-${u}`):o==="polygon"&&a.append("polygon").attr("points",p.map(m=>`${m.x},${m.y}`).join(" ")).attr("class",`radarCurve-${u}`)})}l(M,"drawCurves");function A(a,t,e,r){const s=Math.min(Math.max(a,t),e);return r*(s-t)/(e-t)}l(A,"relativeRadius");function L(a,t){const e=a.length;let r=`M${a[0].x},${a[0].y}`;for(let s=0;s<e;s++){const o=a[(s-1+e)%e],i=a[s],n=a[(s+1)%e],c=a[(s+2)%e],d={x:i.x+(n.x-o.x)*t,y:i.y+(n.y-o.y)*t},u={x:n.x-(c.x-i.x)*t,y:n.y-(c.y-i.y)*t};r+=` C${d.x},${d.y} ${u.x},${u.y} ${n.x},${n.y}`}return`${r} Z`}l(L,"closedRoundCurve");function T(a,t,e,r){if(!e)return;const s=(r.width/2+r.marginRight)*3/4,o=-(r.height/2+r.marginTop)*3/4,i=20;t.forEach((n,c)=>{const d=a.append("g").attr("transform",`translate(${s}, ${o+c*i})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${c}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(n.label)})}l(T,"drawLegend");var nt={draw:et},ot=l((a,t)=>{let e="";for(let r=0;r<a.THEME_COLOR_LIMIT;r++){const s=a[`cScale${r}`];e+=`
1
+ import{s as k,g as R,q as E,p as I,a as _,b as F,_ as l,K as D,z,G as y,E as C,H as G,l as P,L as W,d as B}from"./mermaid.core-Dk2mUPOq.js";import{p as H}from"./chunk-4BX2VUAB-BkLExGMe.js";import{p as V}from"./wardley-L42UT6IY-Mv-NotFS.js";import"./index-CtYRoouR.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-reactflow-BlIeoTu4.js";import"./vendor-xterm-BNq00GSj.js";import"./step-yuy0qJer.js";var x={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},w={axes:[],curves:[],options:x},g=structuredClone(w),j=G.radar,q=l(()=>y({...j,...C().radar}),"getConfig"),b=l(()=>g.axes,"getAxes"),K=l(()=>g.curves,"getCurves"),N=l(()=>g.options,"getOptions"),U=l(a=>{g.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),X=l(a=>{g.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:Y(t.entries)}))},"setCurves"),Y=l(a=>{if(a[0].axis==null)return a.map(e=>e.value);const t=b();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{const r=a.find(s=>s.axis?.$refText===e.name);if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),Z=l(a=>{const t=a.reduce((e,r)=>(e[r.name]=r,e),{});g.options={showLegend:t.showLegend?.value??x.showLegend,ticks:t.ticks?.value??x.ticks,max:t.max?.value??x.max,min:t.min?.value??x.min,graticule:t.graticule?.value??x.graticule}},"setOptions"),J=l(()=>{z(),g=structuredClone(w)},"clear"),$={getAxes:b,getCurves:K,getOptions:N,setAxes:U,setCurves:X,setOptions:Z,getConfig:q,clear:J,setAccTitle:F,getAccTitle:_,setDiagramTitle:I,getDiagramTitle:E,getAccDescription:R,setAccDescription:k},Q=l(a=>{H(a,$);const{axes:t,curves:e,options:r}=a;$.setAxes(t),$.setCurves(e),$.setOptions(r)},"populate"),tt={parse:l(async a=>{const t=await V("radar",a);P.debug(t),Q(t)},"parse")},et=l((a,t,e,r)=>{const s=r.db,o=s.getAxes(),i=s.getCurves(),n=s.getOptions(),c=s.getConfig(),d=s.getDiagramTitle(),u=D(t),p=at(u,c),m=n.max??Math.max(...i.map(f=>Math.max(...f.entries))),h=n.min,v=Math.min(c.width,c.height)/2;rt(p,o,v,n.ticks,n.graticule),st(p,o,v,c),M(p,o,i,h,m,n.graticule,c),T(p,i,n.showLegend,c),p.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),at=l((a,t)=>{const e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,s={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return B(a,r,e,t.useMaxWidth??!0),a.attr("viewBox",`0 0 ${e} ${r}`),a.append("g").attr("transform",`translate(${s.x}, ${s.y})`)},"drawFrame"),rt=l((a,t,e,r,s)=>{if(s==="circle")for(let o=0;o<r;o++){const i=e*(o+1)/r;a.append("circle").attr("r",i).attr("class","radarGraticule")}else if(s==="polygon"){const o=t.length;for(let i=0;i<r;i++){const n=e*(i+1)/r,c=t.map((d,u)=>{const p=2*u*Math.PI/o-Math.PI/2,m=n*Math.cos(p),h=n*Math.sin(p);return`${m},${h}`}).join(" ");a.append("polygon").attr("points",c).attr("class","radarGraticule")}}},"drawGraticule"),st=l((a,t,e,r)=>{const s=t.length;for(let o=0;o<s;o++){const i=t[o].label,n=2*o*Math.PI/s-Math.PI/2;a.append("line").attr("x1",0).attr("y1",0).attr("x2",e*r.axisScaleFactor*Math.cos(n)).attr("y2",e*r.axisScaleFactor*Math.sin(n)).attr("class","radarAxisLine"),a.append("text").text(i).attr("x",e*r.axisLabelFactor*Math.cos(n)).attr("y",e*r.axisLabelFactor*Math.sin(n)).attr("class","radarAxisLabel")}},"drawAxes");function M(a,t,e,r,s,o,i){const n=t.length,c=Math.min(i.width,i.height)/2;e.forEach((d,u)=>{if(d.entries.length!==n)return;const p=d.entries.map((m,h)=>{const v=2*Math.PI*h/n-Math.PI/2,f=A(m,r,s,c),S=f*Math.cos(v),O=f*Math.sin(v);return{x:S,y:O}});o==="circle"?a.append("path").attr("d",L(p,i.curveTension)).attr("class",`radarCurve-${u}`):o==="polygon"&&a.append("polygon").attr("points",p.map(m=>`${m.x},${m.y}`).join(" ")).attr("class",`radarCurve-${u}`)})}l(M,"drawCurves");function A(a,t,e,r){const s=Math.min(Math.max(a,t),e);return r*(s-t)/(e-t)}l(A,"relativeRadius");function L(a,t){const e=a.length;let r=`M${a[0].x},${a[0].y}`;for(let s=0;s<e;s++){const o=a[(s-1+e)%e],i=a[s],n=a[(s+1)%e],c=a[(s+2)%e],d={x:i.x+(n.x-o.x)*t,y:i.y+(n.y-o.y)*t},u={x:n.x-(c.x-i.x)*t,y:n.y-(c.y-i.y)*t};r+=` C${d.x},${d.y} ${u.x},${u.y} ${n.x},${n.y}`}return`${r} Z`}l(L,"closedRoundCurve");function T(a,t,e,r){if(!e)return;const s=(r.width/2+r.marginRight)*3/4,o=-(r.height/2+r.marginTop)*3/4,i=20;t.forEach((n,c)=>{const d=a.append("g").attr("transform",`translate(${s}, ${o+c*i})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${c}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(n.label)})}l(T,"drawLegend");var nt={draw:et},ot=l((a,t)=>{let e="";for(let r=0;r<a.THEME_COLOR_LIMIT;r++){const s=a[`cScale${r}`];e+=`
2
2
  .radarCurve-${r} {
3
3
  color: ${s};
4
4
  fill: ${s};
@@ -1,4 +1,4 @@
1
- import{p as x,b as f,s as C,q as B,g as T,a as y,_ as s,G as u,l as k,K as V,d as _,E as N,z as S,H as D}from"./mermaid.core-CDXPNs7a.js";import{p as $}from"./chunk-4BX2VUAB-ivAwI4xM.js";import{I as z}from"./chunk-QZHKN3VN-D0aXZ8CV.js";import{p as A}from"./wardley-L42UT6IY-X_ZMW457.js";import"./index-DWRJyaa3.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-reactflow-BlIeoTu4.js";import"./vendor-xterm-BNq00GSj.js";import"./step-yuy0qJer.js";var l=new z(()=>({cnt:1,stack:[{id:0,level:-1,name:"/",children:[]}]})),H=s(()=>{l.reset(),S()},"clear"),I=s(()=>l.records.stack[0],"getRoot"),X=s(()=>l.records.cnt,"getCount"),E=D.treeView,L=s(()=>u(E,N().treeView),"getConfig"),R=s((e,t)=>{for(;e<=l.records.stack[l.records.stack.length-1].level;)l.records.stack.pop();const r={id:l.records.cnt++,level:e,name:t,children:[]};l.records.stack[l.records.stack.length-1].children.push(r),l.records.stack.push(r)},"addNode"),W={clear:H,addNode:R,getRoot:I,getCount:X,getConfig:L,getAccTitle:y,getAccDescription:T,getDiagramTitle:B,setAccDescription:C,setAccTitle:f,setDiagramTitle:x},w=W,M=s(e=>{$(e,w),e.nodes.map(t=>w.addNode(t.indent?parseInt(t.indent):0,t.name))},"populate"),F={parse:s(async e=>{const t=await A("treeView",e);k.debug(t),M(t)},"parse")},Y=s((e,t,r,i,n)=>{const c=i.append("text").text(r.name).attr("dominant-baseline","middle").attr("class","treeView-node-label"),{height:p,width:a}=c.node().getBBox(),d=p+n.paddingY*2,o=a+n.paddingX*2;c.attr("x",e+n.paddingX),c.attr("y",t+d/2),r.BBox={x:e,y:t,width:o,height:d}},"positionLabel"),b=s((e,t,r,i,n,c)=>e.append("line").attr("x1",t).attr("y1",r).attr("x2",i).attr("y2",n).attr("stroke-width",c).attr("class","treeView-node-line"),"positionLine"),q=s((e,t,r)=>{let i=0,n=0;const c=s((a,d,o,h)=>{const m=h*(o.rowIndent+o.paddingX);Y(m,i,d,a,o);const{height:g,width:v}=d.BBox;b(a,m-o.rowIndent,i+g/2,m,i+g/2,o.lineThickness),n=Math.max(n,m+v),i+=g},"drawNode"),p=s((a,d=0)=>{c(e,a,r,d),a.children.forEach(g=>{p(g,d+1)});const{x:o,y:h,height:m}=a.BBox;if(a.children.length){const{y:g,height:v}=a.children[a.children.length-1].BBox;b(e,o+r.paddingX,h+m,o+r.paddingX,g+v/2+r.lineThickness/2,r.lineThickness)}},"processNode");return p(t),{totalHeight:i,totalWidth:n}},"drawTree"),G=s((e,t,r,i)=>{k.debug(`Rendering treeView diagram
1
+ import{p as x,b as f,s as C,q as B,g as T,a as y,_ as s,G as u,l as k,K as V,d as _,E as N,z as S,H as D}from"./mermaid.core-Dk2mUPOq.js";import{p as $}from"./chunk-4BX2VUAB-BkLExGMe.js";import{I as z}from"./chunk-QZHKN3VN-CTjHiGbd.js";import{p as A}from"./wardley-L42UT6IY-Mv-NotFS.js";import"./index-CtYRoouR.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-reactflow-BlIeoTu4.js";import"./vendor-xterm-BNq00GSj.js";import"./step-yuy0qJer.js";var l=new z(()=>({cnt:1,stack:[{id:0,level:-1,name:"/",children:[]}]})),H=s(()=>{l.reset(),S()},"clear"),I=s(()=>l.records.stack[0],"getRoot"),X=s(()=>l.records.cnt,"getCount"),E=D.treeView,L=s(()=>u(E,N().treeView),"getConfig"),R=s((e,t)=>{for(;e<=l.records.stack[l.records.stack.length-1].level;)l.records.stack.pop();const r={id:l.records.cnt++,level:e,name:t,children:[]};l.records.stack[l.records.stack.length-1].children.push(r),l.records.stack.push(r)},"addNode"),W={clear:H,addNode:R,getRoot:I,getCount:X,getConfig:L,getAccTitle:y,getAccDescription:T,getDiagramTitle:B,setAccDescription:C,setAccTitle:f,setDiagramTitle:x},w=W,M=s(e=>{$(e,w),e.nodes.map(t=>w.addNode(t.indent?parseInt(t.indent):0,t.name))},"populate"),F={parse:s(async e=>{const t=await A("treeView",e);k.debug(t),M(t)},"parse")},Y=s((e,t,r,i,n)=>{const c=i.append("text").text(r.name).attr("dominant-baseline","middle").attr("class","treeView-node-label"),{height:p,width:a}=c.node().getBBox(),d=p+n.paddingY*2,o=a+n.paddingX*2;c.attr("x",e+n.paddingX),c.attr("y",t+d/2),r.BBox={x:e,y:t,width:o,height:d}},"positionLabel"),b=s((e,t,r,i,n,c)=>e.append("line").attr("x1",t).attr("y1",r).attr("x2",i).attr("y2",n).attr("stroke-width",c).attr("class","treeView-node-line"),"positionLine"),q=s((e,t,r)=>{let i=0,n=0;const c=s((a,d,o,h)=>{const m=h*(o.rowIndent+o.paddingX);Y(m,i,d,a,o);const{height:g,width:v}=d.BBox;b(a,m-o.rowIndent,i+g/2,m,i+g/2,o.lineThickness),n=Math.max(n,m+v),i+=g},"drawNode"),p=s((a,d=0)=>{c(e,a,r,d),a.children.forEach(g=>{p(g,d+1)});const{x:o,y:h,height:m}=a.BBox;if(a.children.length){const{y:g,height:v}=a.children[a.children.length-1].BBox;b(e,o+r.paddingX,h+m,o+r.paddingX,g+v/2+r.lineThickness/2,r.lineThickness)}},"processNode");return p(t),{totalHeight:i,totalWidth:n}},"drawTree"),G=s((e,t,r,i)=>{k.debug(`Rendering treeView diagram
2
2
  `+e);const n=i.db,c=n.getRoot(),p=n.getConfig(),a=V(t),d=a.append("g");d.attr("class","tree-view");const{totalHeight:o,totalWidth:h}=q(d,c,p);a.attr("viewBox",`-${p.lineThickness/2} 0 ${h} ${o}`),_(a,o,h,p.useMaxWidth)},"draw"),K={draw:G},j=K,J={labelFontSize:"16px",labelColor:"black",lineColor:"black"},O=s(({treeView:e})=>{const{labelFontSize:t,labelColor:r,lineColor:i}=u(J,e);return`
3
3
  .treeView-node-label {
4
4
  font-size: ${t};
@@ -1,3 +1,3 @@
1
- import{p as re}from"./chunk-4BX2VUAB-ivAwI4xM.js";import{q as oe,p as se,s as de,g as le,a as ce,b as me,_ as o,l as g,c as T,F as ue,z as xe,G as fe,E as M,H as ge,h as y,w as P,a3 as he}from"./mermaid.core-CDXPNs7a.js";import{p as pe,i as be}from"./wardley-L42UT6IY-X_ZMW457.js";import{s as ve}from"./vendor-reactflow-BlIeoTu4.js";import"./index-DWRJyaa3.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-xterm-BNq00GSj.js";import"./step-yuy0qJer.js";var $="position frame",D="frame positioned",S="position relation",N="relation positioned",we=o(function(e){g.debug("options str",e)},"setOptions"),ye=o(function(){return{}},"getOptions"),Pe=o(function(){C(),xe()},"clear");function C(){B={}}o(C,"reset");var Se=ge.eventmodeling,Fe=o(()=>fe({...Se,...M().eventmodeling}),"getConfig"),B={};function O(){let e=ke;const{ast:n}=B,t=E();if(!n)throw new Error("No data for EventModel");return n.frames.forEach((i,a)=>{const r=L(i,n.dataEntities,t);e=v(e,{$kind:$,index:a,frame:i,textProps:r});let d;K(i)?(g.debug("source frame",i.sourceFrames),d=n.frames.filter(l=>i.sourceFrames.some(c=>c.$refText===l.name)),d.forEach(l=>{e=v(e,{$kind:S,index:a,frame:i,sourceFrame:l})})):e=v(e,{$kind:S,index:a,frame:i})}),e={...e,sortedSwimlanesArray:A(e.swimlanes)},e}o(O,"getState");function I(e){B.ast=e}o(I,"setAst");var s={swimlaneMinHeight:70,swimlanePadding:15,swimlaneGap:10,boxPadding:10,boxOverlap:90,boxDefaultY:0,boxMinWidth:80,boxMaxWidth:450,boxMinHeight:80,boxMaxHeight:750,contentStartX:250,textMaxWidth:430,boxTextFontWeight:"bold",boxTextPadding:10,swimlaneTextFontWeight:"bold",labelUiAutomation:"UI/Automation",labelUiAutomationPrefix:"UI/A: ",labelCommandReadModel:"Command/Read Model",labelCommandReadModelPrefix:"C/RM: ",labelEvents:"Events",labelEventsPrefix:"Stream: "};function E(){return s}o(E,"getDiagramProps");var ke={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]};function W(e){const n=e.split(".");if(n.length===2)return n[0]}o(W,"extractNamespace");function H(e){const n=e.split(".");return n.length===2?n[1]:e}o(H,"extractName");function U(e,n){if(!(!n||n.length===0))return Object.values(e).find(t=>t.namespace===n)}o(U,"findSwimlaneByNamespace");function b(e,n,t){return Math.max(n,...Object.keys(e).filter(i=>{const a=Number.parseInt(i);return a>n&&a<t}).map(i=>Number.parseInt(i)))+1}o(b,"findNextAvailableIndex");function _(e,n){const t=W(e.entityIdentifier),i=U(n,t);switch(e.modelEntityType){case"ui":case"pcr":case"processor":return i?{index:i.index,label:i.namespace||s.labelUiAutomation}:t?{index:b(n,0,100),label:s.labelUiAutomationPrefix+t}:{index:0,label:s.labelUiAutomation};case"rmo":case"readmodel":case"cmd":case"command":return i?{index:i.index,label:i.namespace||s.labelCommandReadModel}:t?{index:b(n,100,200),label:s.labelCommandReadModelPrefix+t}:{index:100,label:s.labelCommandReadModel};case"evt":case"event":default:return i?{index:i.index,label:i.namespace||s.labelEvents}:t?{index:b(n,200,300),label:s.labelEventsPrefix+t}:{index:200,label:s.labelEvents}}}o(_,"calculateSwimlaneProps");function G(e){const{themeVariables:n}=M();switch(e.modelEntityType){case"ui":return{fill:n.emUiFill??"white",stroke:n.emUiStroke??"#dbdada"};case"pcr":case"processor":return{fill:n.emProcessorFill??"#edb3f6",stroke:n.emProcessorStroke??"#b88cbf"};case"rmo":case"readmodel":return{fill:n.emReadModelFill??"#d3f1a2",stroke:n.emReadModelStroke??"#a3b732"};case"cmd":case"command":return{fill:n.emCommandFill??"#bcd6fe",stroke:n.emCommandStroke??"#679ac3"};case"evt":case"event":return{fill:n.emEventFill??"#ffb778",stroke:n.emEventStroke??"#c19a0f"};default:return{fill:"red",stroke:"black"}}}o(G,"calculateEntityVisualProps");function L(e,n,t){const i=M(),a=y(H(e.entityIdentifier)??"",i);let r;const d={fontSize:16,fontWeight:700,fontFamily:'"trebuchet ms", verdana, arial, sans-serif',joinWith:"<br/>"};let c=`<b>${P(a,t.textMaxWidth,d)}</b>`;if(e.dataInlineValue&&(r=e.dataInlineValue,r=r.substring(r.indexOf("{")+1),r=r.substring(0,r.lastIndexOf("}")-1),r=y(r,i),r=P(r,t.textMaxWidth,d),r=r.replaceAll(" ","&nbsp;")),e.dataReference){const p=n.find(w=>w.name===e.dataReference?.$refText);p&&(r=p.dataBlockValue,r=r.substring(r.indexOf(`{
1
+ import{p as re}from"./chunk-4BX2VUAB-BkLExGMe.js";import{q as oe,p as se,s as de,g as le,a as ce,b as me,_ as o,l as g,c as T,F as ue,z as xe,G as fe,E as M,H as ge,h as y,w as P,a3 as he}from"./mermaid.core-Dk2mUPOq.js";import{p as pe,i as be}from"./wardley-L42UT6IY-Mv-NotFS.js";import{s as ve}from"./vendor-reactflow-BlIeoTu4.js";import"./index-CtYRoouR.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-xterm-BNq00GSj.js";import"./step-yuy0qJer.js";var $="position frame",D="frame positioned",S="position relation",N="relation positioned",we=o(function(e){g.debug("options str",e)},"setOptions"),ye=o(function(){return{}},"getOptions"),Pe=o(function(){C(),xe()},"clear");function C(){B={}}o(C,"reset");var Se=ge.eventmodeling,Fe=o(()=>fe({...Se,...M().eventmodeling}),"getConfig"),B={};function O(){let e=ke;const{ast:n}=B,t=E();if(!n)throw new Error("No data for EventModel");return n.frames.forEach((i,a)=>{const r=L(i,n.dataEntities,t);e=v(e,{$kind:$,index:a,frame:i,textProps:r});let d;K(i)?(g.debug("source frame",i.sourceFrames),d=n.frames.filter(l=>i.sourceFrames.some(c=>c.$refText===l.name)),d.forEach(l=>{e=v(e,{$kind:S,index:a,frame:i,sourceFrame:l})})):e=v(e,{$kind:S,index:a,frame:i})}),e={...e,sortedSwimlanesArray:A(e.swimlanes)},e}o(O,"getState");function I(e){B.ast=e}o(I,"setAst");var s={swimlaneMinHeight:70,swimlanePadding:15,swimlaneGap:10,boxPadding:10,boxOverlap:90,boxDefaultY:0,boxMinWidth:80,boxMaxWidth:450,boxMinHeight:80,boxMaxHeight:750,contentStartX:250,textMaxWidth:430,boxTextFontWeight:"bold",boxTextPadding:10,swimlaneTextFontWeight:"bold",labelUiAutomation:"UI/Automation",labelUiAutomationPrefix:"UI/A: ",labelCommandReadModel:"Command/Read Model",labelCommandReadModelPrefix:"C/RM: ",labelEvents:"Events",labelEventsPrefix:"Stream: "};function E(){return s}o(E,"getDiagramProps");var ke={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]};function W(e){const n=e.split(".");if(n.length===2)return n[0]}o(W,"extractNamespace");function H(e){const n=e.split(".");return n.length===2?n[1]:e}o(H,"extractName");function U(e,n){if(!(!n||n.length===0))return Object.values(e).find(t=>t.namespace===n)}o(U,"findSwimlaneByNamespace");function b(e,n,t){return Math.max(n,...Object.keys(e).filter(i=>{const a=Number.parseInt(i);return a>n&&a<t}).map(i=>Number.parseInt(i)))+1}o(b,"findNextAvailableIndex");function _(e,n){const t=W(e.entityIdentifier),i=U(n,t);switch(e.modelEntityType){case"ui":case"pcr":case"processor":return i?{index:i.index,label:i.namespace||s.labelUiAutomation}:t?{index:b(n,0,100),label:s.labelUiAutomationPrefix+t}:{index:0,label:s.labelUiAutomation};case"rmo":case"readmodel":case"cmd":case"command":return i?{index:i.index,label:i.namespace||s.labelCommandReadModel}:t?{index:b(n,100,200),label:s.labelCommandReadModelPrefix+t}:{index:100,label:s.labelCommandReadModel};case"evt":case"event":default:return i?{index:i.index,label:i.namespace||s.labelEvents}:t?{index:b(n,200,300),label:s.labelEventsPrefix+t}:{index:200,label:s.labelEvents}}}o(_,"calculateSwimlaneProps");function G(e){const{themeVariables:n}=M();switch(e.modelEntityType){case"ui":return{fill:n.emUiFill??"white",stroke:n.emUiStroke??"#dbdada"};case"pcr":case"processor":return{fill:n.emProcessorFill??"#edb3f6",stroke:n.emProcessorStroke??"#b88cbf"};case"rmo":case"readmodel":return{fill:n.emReadModelFill??"#d3f1a2",stroke:n.emReadModelStroke??"#a3b732"};case"cmd":case"command":return{fill:n.emCommandFill??"#bcd6fe",stroke:n.emCommandStroke??"#679ac3"};case"evt":case"event":return{fill:n.emEventFill??"#ffb778",stroke:n.emEventStroke??"#c19a0f"};default:return{fill:"red",stroke:"black"}}}o(G,"calculateEntityVisualProps");function L(e,n,t){const i=M(),a=y(H(e.entityIdentifier)??"",i);let r;const d={fontSize:16,fontWeight:700,fontFamily:'"trebuchet ms", verdana, arial, sans-serif',joinWith:"<br/>"};let c=`<b>${P(a,t.textMaxWidth,d)}</b>`;if(e.dataInlineValue&&(r=e.dataInlineValue,r=r.substring(r.indexOf("{")+1),r=r.substring(0,r.lastIndexOf("}")-1),r=y(r,i),r=P(r,t.textMaxWidth,d),r=r.replaceAll(" ","&nbsp;")),e.dataReference){const p=n.find(w=>w.name===e.dataReference?.$refText);p&&(r=p.dataBlockValue,r=r.substring(r.indexOf(`{
2
2
  `)+2),r=r.substring(0,r.lastIndexOf("}")-1),r=y(r,i),r=P(r,t.textMaxWidth,d),r=r.replaceAll(" ","&nbsp;"),r+="<br/>")}const m=r!==void 0;m&&(c+=`<br/><br/><code style="text-align: left; display: block;max-width:${t.textMaxWidth}px">${r}</code>`);const x={fontSize:d.fontSize,fontWeight:d.fontWeight,fontFamily:d.fontFamily},u=he(c,x),h=m?u.width/3:u.width,f={content:c,width:h,height:u.height};return g.debug(`[${e.name}] ${e.entityIdentifier} text`,f),f}o(L,"calculateTextProps");function V(e,n){const t=n,i=G(t.frame),a={width:t.textProps.width+2*s.boxTextPadding,height:t.textProps.height+2*s.boxTextPadding};return[{$kind:D,frame:t.frame,index:t.index,visual:i,dimension:a,textProps:t.textProps}]}o(V,"decidePositionFrame");function X(e,n,t){return n===void 0?s.contentStartX:n.index===e.index&&e.r?e.r+s.boxPadding:t===void 0?s.contentStartX:t.r-s.boxOverlap+s.boxPadding}o(X,"calculateX");function j(e,n){const t=[...e.map(i=>i.r),n];return Math.max(...t)}o(j,"calculateMaxRight");function A(e){return Object.values(e).sort((n,t)=>n.index-t.index)}o(A,"sortedSwimlanesArray");function Y(e,n){const t=n,i=_(t.frame,e.swimlanes);let a;i.index in e.swimlanes?a=e.swimlanes[i.index]:a={index:i.index,label:i.label,r:0,y:i.index*s.swimlaneMinHeight+s.swimlaneGap,height:s.swimlaneMinHeight,maxHeight:s.swimlaneMinHeight};const r=e.boxes.length>0?e.boxes[e.boxes.length-1]:void 0,d=e.previousSwimlaneNumber!==void 0?e.swimlanes[e.previousSwimlaneNumber]:void 0,l={width:Math.max(s.boxMinWidth,Math.min(s.boxMaxWidth,t.dimension.width))+2*s.boxPadding,height:Math.max(s.boxMinHeight,Math.min(s.boxMaxHeight,t.dimension.height))+2*s.boxPadding},c=X(a,d,r),m=c+l.width+s.boxPadding,x=j(Object.values(e.swimlanes),m);a.r=c+l.width,a.maxHeight=Math.max(a.maxHeight,l.height),a.height=Math.max(s.swimlaneMinHeight,a.maxHeight)+2*s.swimlanePadding;const u={x:c,y:s.swimlanePadding+a.y,r:m,dimension:l,leftSibling:!1,swimlane:a,visual:t.visual,text:t.textProps.content,frame:t.frame,index:t.index},h={...e,boxes:[...e.boxes,u],swimlanes:{...e.swimlanes,[`${a.index}`]:a},previousSwimlaneNumber:i.index,previousFrame:t.frame,maxR:x},f=A(h.swimlanes);f.length>0&&(f[0].y=0);for(let p=1;p<f.length;p++){const w=f[p],R=f[p-1];w.y=R.y+R.height+s.swimlaneGap}return h}o(Y,"evolveFramePositioned");function z(e,n){return e===0&&n.sourceFrames.length===0}o(z,"isFirstFrame");function K(e){return e.sourceFrames!==void 0&&e.sourceFrames!==null&&e.sourceFrames.length>0}o(K,"hasSourceFrame");function F(e,n){if(n!=null)return e.find(t=>t.frame.name===n.name)}o(F,"findBoxByFrame");function q(e,n,t){if(!(t<0))for(let i=t;i>=0;i--){const a=e[i];if(a.swimlane.index!==n)return a}}o(q,"findBoxByLineIndex");function J(e,n){const t=n;if(be(t.frame)||z(t.index,t.frame))return[];const i=F(e.boxes,t.frame);if(i===void 0)throw new Error(`Target box not found for frame ${t.frame.name}`);let a;return t.sourceFrame?a=F(e.boxes,t.sourceFrame):a=q(e.boxes,i.swimlane.index,t.index-1),a===void 0?[]:[{$kind:N,frame:t.frame,index:t.index,sourceBox:a,targetBox:i}]}o(J,"decidePositionRelation");function Q(e,n){const t=n,i={visual:{fill:"none",stroke:"#000"},source:{x:t.sourceBox.x,y:t.sourceBox.y},target:{x:t.targetBox.x,y:t.targetBox.y},sourceBox:t.sourceBox,targetBox:t.targetBox};return{...e,relations:[...e.relations,i]}}o(Q,"evolveRelationPositioned");var Me={[$]:V,[S]:J},Be={[D]:Y,[N]:Q};function Z(e,n){const t=Me[n.$kind];if(t==null)return[];const i=t(e,n);return g.debug("decided events",i),i}o(Z,"decide");function ee(e,n){const t=n.reduce((i,a)=>{const r=Be[a.$kind];return r==null?i:r(i,a)},e);return g.debug("evolve events",{state:e,newState:t,events:n}),t}o(ee,"evolve");function v(e,n){const t=Z(e,n);return ee(e,t)}o(v,"dispatch");var k={getConfig:Fe,setOptions:we,getOptions:ye,clear:Pe,setAccTitle:me,getAccTitle:ce,getAccDescription:le,setAccDescription:de,setDiagramTitle:se,getDiagramTitle:oe,setAst:I,getDiagramProps:E,getState:O},Ee={parse:o(async e=>{const n=await pe("eventmodeling",e);g.debug(n),k.setAst(n),re(n,k)},"parse")},Ae=T(),Re=Ae?.eventmodeling;function te(e,n){return t=>{const i=t.swimlane.y+n.swimlanePadding,a=e.append("g").attr("class","em-box");a.append("rect").attr("x",t.x).attr("y",i).attr("rx","3").attr("width",t.dimension.width).attr("height",t.dimension.height).attr("stroke",t.visual.stroke).attr("fill",t.visual.fill),a.append("foreignObject").attr("x",t.x+n.boxPadding).attr("y",i+10).attr("width",t.dimension.width-2*n.boxPadding).attr("height",t.dimension.height-2*n.boxPadding).append("xhtml:div").style("display","table").style("height","100%").style("width","100%").append("span").style("display","table-cell").style("text-align","center").style("vertical-align","middle").html(t.text)}}o(te,"renderD3Box");function ne(e,n){return e>n}o(ne,"dirUpwards");function ie(e,n,t,i){return a=>{const r=a.sourceBox.swimlane.y+n.swimlanePadding,d=a.targetBox.swimlane.y+n.swimlanePadding,l=ne(r,d),c=a.sourceBox.x+a.sourceBox.dimension.width*2/3,m=a.targetBox.x+a.targetBox.dimension.width/3;let x,u;g.debug(`rendering relation up=${l} for `,{sourceBox:a.sourceBox,targetBox:a.targetBox}),l?(x=r,u=d+a.targetBox.dimension.height):(x=r+a.sourceBox.dimension.height,u=d);const h=i.emRelationStroke??a.visual.stroke;e.append("path").attr("class","em-relation").attr("fill",a.visual.fill).attr("stroke",h).attr("stroke-width","1").attr("marker-end",`url(#${t})`).attr("d",`M${c} ${x} L${m} ${u}`)}}o(ie,"renderD3Relation");function ae(e,n,t,i){return a=>{const r=e.append("g").attr("class","em-swimlane"),d=i.emSwimlaneBackgroundOdd??"rgb(250,250,250)",l=i.emSwimlaneBackgroundStroke??"rgb(240,240,240)";r.append("rect").attr("x",0).attr("y",a.y).attr("rx","3").attr("width",n+t.swimlanePadding).attr("height",a.height).attr("fill",d).attr("stroke",l),r.append("text").attr("font-weight",t.swimlaneTextFontWeight).attr("x",30).attr("y",a.y+30).text(a.label)}}o(ae,"renderD3Swimlane");var Te=o(function(e,n,t,i){if(g.debug("in eventmodeling renderer",e+`
3
3
  `,"id:",n,t),!Re)throw new Error("EventModeling config not found");const a=i.db,{themeVariables:r,eventmodeling:d}=T(),l=ve(`[id="${n}"]`),c=a.getDiagramProps(),m=a.getState(),x=`em-arrowhead-${n}`,u=r.emArrowhead??"#000000";m.sortedSwimlanesArray.forEach(ae(l,m.maxR,c,r)),m.boxes.forEach(te(l,c)),m.relations.forEach(ie(l,c,x,r)),l.append("defs").append("marker").attr("id",x).attr("markerWidth","10").attr("markerHeight","7").attr("refX","10").attr("refY","3.5").attr("orient","auto").append("polygon").attr("points","0 0, 10 3.5, 0 7").attr("fill",u),ue(void 0,l,d?.padding??30,d?.useMaxWidth)},"draw"),$e={draw:Te},De=o(e=>"","getStyles"),Ne=De,Xe={parser:Ee,db:k,renderer:$e,styles:Ne};export{Xe as diagram};
@@ -1,4 +1,4 @@
1
- import{_ as b,G as m,K as $,d as B,l as u,b as C,a as S,p as D,q as T,g as z,s as E,E as P,H as F,z as A}from"./mermaid.core-CDXPNs7a.js";import{p as W}from"./chunk-4BX2VUAB-ivAwI4xM.js";import{p as _}from"./wardley-L42UT6IY-X_ZMW457.js";import"./index-DWRJyaa3.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-reactflow-BlIeoTu4.js";import"./vendor-xterm-BNq00GSj.js";import"./step-yuy0qJer.js";var N=F.packet,w=class{constructor(){this.packet=[],this.setAccTitle=C,this.getAccTitle=S,this.setDiagramTitle=D,this.getDiagramTitle=T,this.getAccDescription=z,this.setAccDescription=E}static{b(this,"PacketDB")}getConfig(){const t=m({...N,...P().packet});return t.showBits&&(t.paddingY+=10),t}getPacket(){return this.packet}pushWord(t){t.length>0&&this.packet.push(t)}clear(){A(),this.packet=[]}},L=1e4,M=b((t,e)=>{W(t,e);let r=-1,o=[],n=1;const{bitsPerRow:l}=e.getConfig();for(let{start:a,end:i,bits:d,label:c}of t.blocks){if(a!==void 0&&i!==void 0&&i<a)throw new Error(`Packet block ${a} - ${i} is invalid. End must be greater than start.`);if(a??=r+1,a!==r+1)throw new Error(`Packet block ${a} - ${i??a} is not contiguous. It should start from ${r+1}.`);if(d===0)throw new Error(`Packet block ${a} is invalid. Cannot have a zero bit field.`);for(i??=a+(d??1)-1,d??=i-a+1,r=i,u.debug(`Packet block ${a} - ${r} with label ${c}`);o.length<=l+1&&e.getPacket().length<L;){const[p,s]=Y({start:a,end:i,bits:d,label:c},n,l);if(o.push(p),p.end+1===n*l&&(e.pushWord(o),o=[],n++),!s)break;({start:a,end:i,bits:d,label:c}=s)}}e.pushWord(o)},"populate"),Y=b((t,e,r)=>{if(t.start===void 0)throw new Error("start should have been set during first phase");if(t.end===void 0)throw new Error("end should have been set during first phase");if(t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);if(t.end+1<=e*r)return[t,void 0];const o=e*r-1,n=e*r;return[{start:t.start,end:o,label:t.label,bits:o-t.start},{start:n,end:t.end,label:t.label,bits:t.end-n}]},"getNextFittingBlock"),v={parser:{yy:void 0},parse:b(async t=>{const e=await _("packet",t),r=v.parser?.yy;if(!(r instanceof w))throw new Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");u.debug(e),M(e,r)},"parse")},G=b((t,e,r,o)=>{const n=o.db,l=n.getConfig(),{rowHeight:a,paddingY:i,bitWidth:d,bitsPerRow:c}=l,p=n.getPacket(),s=n.getDiagramTitle(),h=a+i,g=h*(p.length+1)-(s?0:a),k=d*c+2,f=$(e);f.attr("viewBox",`0 0 ${k} ${g}`),B(f,g,k,l.useMaxWidth);for(const[x,y]of p.entries())H(f,y,x,l);f.append("text").text(s).attr("x",k/2).attr("y",g-h/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),H=b((t,e,r,{rowHeight:o,paddingX:n,paddingY:l,bitWidth:a,bitsPerRow:i,showBits:d})=>{const c=t.append("g"),p=r*(o+l)+l;for(const s of e){const h=s.start%i*a+1,g=(s.end-s.start+1)*a-n;if(c.append("rect").attr("x",h).attr("y",p).attr("width",g).attr("height",o).attr("class","packetBlock"),c.append("text").attr("x",h+g/2).attr("y",p+o/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(s.label),!d)continue;const k=s.end===s.start,f=p-2;c.append("text").attr("x",h+(k?g/2:0)).attr("y",f).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(s.start),k||c.append("text").attr("x",h+g).attr("y",f).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(s.end)}},"drawWord"),I={draw:G},K={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},O=b(({packet:t}={})=>{const e=m(K,t);return`
1
+ import{_ as b,G as m,K as $,d as B,l as u,b as C,a as S,p as D,q as T,g as z,s as E,E as P,H as F,z as A}from"./mermaid.core-Dk2mUPOq.js";import{p as W}from"./chunk-4BX2VUAB-BkLExGMe.js";import{p as _}from"./wardley-L42UT6IY-Mv-NotFS.js";import"./index-CtYRoouR.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-reactflow-BlIeoTu4.js";import"./vendor-xterm-BNq00GSj.js";import"./step-yuy0qJer.js";var N=F.packet,w=class{constructor(){this.packet=[],this.setAccTitle=C,this.getAccTitle=S,this.setDiagramTitle=D,this.getDiagramTitle=T,this.getAccDescription=z,this.setAccDescription=E}static{b(this,"PacketDB")}getConfig(){const t=m({...N,...P().packet});return t.showBits&&(t.paddingY+=10),t}getPacket(){return this.packet}pushWord(t){t.length>0&&this.packet.push(t)}clear(){A(),this.packet=[]}},L=1e4,M=b((t,e)=>{W(t,e);let r=-1,o=[],n=1;const{bitsPerRow:l}=e.getConfig();for(let{start:a,end:i,bits:d,label:c}of t.blocks){if(a!==void 0&&i!==void 0&&i<a)throw new Error(`Packet block ${a} - ${i} is invalid. End must be greater than start.`);if(a??=r+1,a!==r+1)throw new Error(`Packet block ${a} - ${i??a} is not contiguous. It should start from ${r+1}.`);if(d===0)throw new Error(`Packet block ${a} is invalid. Cannot have a zero bit field.`);for(i??=a+(d??1)-1,d??=i-a+1,r=i,u.debug(`Packet block ${a} - ${r} with label ${c}`);o.length<=l+1&&e.getPacket().length<L;){const[p,s]=Y({start:a,end:i,bits:d,label:c},n,l);if(o.push(p),p.end+1===n*l&&(e.pushWord(o),o=[],n++),!s)break;({start:a,end:i,bits:d,label:c}=s)}}e.pushWord(o)},"populate"),Y=b((t,e,r)=>{if(t.start===void 0)throw new Error("start should have been set during first phase");if(t.end===void 0)throw new Error("end should have been set during first phase");if(t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);if(t.end+1<=e*r)return[t,void 0];const o=e*r-1,n=e*r;return[{start:t.start,end:o,label:t.label,bits:o-t.start},{start:n,end:t.end,label:t.label,bits:t.end-n}]},"getNextFittingBlock"),v={parser:{yy:void 0},parse:b(async t=>{const e=await _("packet",t),r=v.parser?.yy;if(!(r instanceof w))throw new Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");u.debug(e),M(e,r)},"parse")},G=b((t,e,r,o)=>{const n=o.db,l=n.getConfig(),{rowHeight:a,paddingY:i,bitWidth:d,bitsPerRow:c}=l,p=n.getPacket(),s=n.getDiagramTitle(),h=a+i,g=h*(p.length+1)-(s?0:a),k=d*c+2,f=$(e);f.attr("viewBox",`0 0 ${k} ${g}`),B(f,g,k,l.useMaxWidth);for(const[x,y]of p.entries())H(f,y,x,l);f.append("text").text(s).attr("x",k/2).attr("y",g-h/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),H=b((t,e,r,{rowHeight:o,paddingX:n,paddingY:l,bitWidth:a,bitsPerRow:i,showBits:d})=>{const c=t.append("g"),p=r*(o+l)+l;for(const s of e){const h=s.start%i*a+1,g=(s.end-s.start+1)*a-n;if(c.append("rect").attr("x",h).attr("y",p).attr("width",g).attr("height",o).attr("class","packetBlock"),c.append("text").attr("x",h+g/2).attr("y",p+o/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(s.label),!d)continue;const k=s.end===s.start,f=p-2;c.append("text").attr("x",h+(k?g/2:0)).attr("y",f).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(s.start),k||c.append("text").attr("x",h+g).attr("y",f).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(s.end)}},"drawWord"),I={draw:G},K={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},O=b(({packet:t}={})=>{const e=m(K,t);return`
2
2
  .packetByte {
3
3
  font-size: ${e.byteFontSize};
4
4
  }
@@ -1,4 +1,4 @@
1
- import{_ as w,L as de,E as Q,G as Z,K as he,d as pe,l as J,aR as P,b as ue,a as fe,p as me,q as ge,g as ye,s as Se,H as ve,aS as xe,z as be}from"./mermaid.core-CDXPNs7a.js";import{s as we}from"./chunk-2J33WTMH-CPeIHyAX.js";import{p as Ce}from"./chunk-4BX2VUAB-ivAwI4xM.js";import{p as Te}from"./wardley-L42UT6IY-X_ZMW457.js";import{s as Y}from"./vendor-reactflow-BlIeoTu4.js";import{b as I}from"./defaultLocale-DX6XiGOO.js";import{o as U}from"./ordinal-DILIJJjt.js";import"./index-DWRJyaa3.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-xterm-BNq00GSj.js";import"./step-yuy0qJer.js";import"./init-Dmth1JHB.js";function Le(e){var a=0,n=e.children,l=n&&n.length;if(!l)a=1;else for(;--l>=0;)a+=n[l].value;e.value=a}function $e(){return this.eachAfter(Le)}function Ae(e,a){let n=-1;for(const l of this)e.call(a,l,++n,this);return this}function Fe(e,a){for(var n=this,l=[n],r,o,d=-1;n=l.pop();)if(e.call(a,n,++d,this),r=n.children)for(o=r.length-1;o>=0;--o)l.push(r[o]);return this}function Ne(e,a){for(var n=this,l=[n],r=[],o,d,h,m=-1;n=l.pop();)if(r.push(n),o=n.children)for(d=0,h=o.length;d<h;++d)l.push(o[d]);for(;n=r.pop();)e.call(a,n,++m,this);return this}function Me(e,a){let n=-1;for(const l of this)if(e.call(a,l,++n,this))return l}function Ve(e){return this.eachAfter(function(a){for(var n=+e(a.data)||0,l=a.children,r=l&&l.length;--r>=0;)n+=l[r].value;a.value=n})}function _e(e){return this.eachBefore(function(a){a.children&&a.children.sort(e)})}function ke(e){for(var a=this,n=ze(a,e),l=[a];a!==n;)a=a.parent,l.push(a);for(var r=l.length;e!==n;)l.splice(r,0,e),e=e.parent;return l}function ze(e,a){if(e===a)return e;var n=e.ancestors(),l=a.ancestors(),r=null;for(e=n.pop(),a=l.pop();e===a;)r=e,e=n.pop(),a=l.pop();return r}function De(){for(var e=this,a=[e];e=e.parent;)a.push(e);return a}function Pe(){return Array.from(this)}function Be(){var e=[];return this.eachBefore(function(a){a.children||e.push(a)}),e}function Re(){var e=this,a=[];return e.each(function(n){n!==e&&a.push({source:n.parent,target:n})}),a}function*Ee(){var e=this,a,n=[e],l,r,o;do for(a=n.reverse(),n=[];e=a.pop();)if(yield e,l=e.children)for(r=0,o=l.length;r<o;++r)n.push(l[r]);while(n.length)}function ee(e,a){e instanceof Map?(e=[void 0,e],a===void 0&&(a=Ie)):a===void 0&&(a=He);for(var n=new j(e),l,r=[n],o,d,h,m;l=r.pop();)if((d=a(l.data))&&(m=(d=Array.from(d)).length))for(l.children=d,h=m-1;h>=0;--h)r.push(o=d[h]=new j(d[h])),o.parent=l,o.depth=l.depth+1;return n.eachBefore(Ge)}function We(){return ee(this).eachBefore(Oe)}function He(e){return e.children}function Ie(e){return Array.isArray(e)?e[1]:null}function Oe(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function Ge(e){var a=0;do e.height=a;while((e=e.parent)&&e.height<++a)}function j(e){this.data=e,this.depth=this.height=0,this.parent=null}j.prototype=ee.prototype={constructor:j,count:$e,each:Ae,eachAfter:Ne,eachBefore:Fe,find:Me,sum:Ve,sort:_e,path:ke,ancestors:De,descendants:Pe,leaves:Be,links:Re,copy:We,[Symbol.iterator]:Ee};function qe(e){if(typeof e!="function")throw new Error;return e}function O(){return 0}function G(e){return function(){return e}}function Xe(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function Ye(e,a,n,l,r){for(var o=e.children,d,h=-1,m=o.length,c=e.value&&(l-a)/e.value;++h<m;)d=o[h],d.y0=n,d.y1=r,d.x0=a,d.x1=a+=d.value*c}function je(e,a,n,l,r){for(var o=e.children,d,h=-1,m=o.length,c=e.value&&(r-n)/e.value;++h<m;)d=o[h],d.x0=a,d.x1=l,d.y0=n,d.y1=n+=d.value*c}var Ke=(1+Math.sqrt(5))/2;function Ue(e,a,n,l,r,o){for(var d=[],h=a.children,m,c,p=0,b=0,s=h.length,x,S,v=a.value,u,g,M,N,z,R,V;p<s;){x=r-n,S=o-l;do u=h[b++].value;while(!u&&b<s);for(g=M=u,R=Math.max(S/x,x/S)/(v*e),V=u*u*R,z=Math.max(M/V,V/g);b<s;++b){if(u+=c=h[b].value,c<g&&(g=c),c>M&&(M=c),V=u*u*R,N=Math.max(M/V,V/g),N>z){u-=c;break}z=N}d.push(m={value:u,dice:x<S,children:h.slice(p,b)}),m.dice?Ye(m,n,l,r,v?l+=S*u/v:o):je(m,n,l,v?n+=x*u/v:r,o),v-=u,p=b}return d}const Ze=(function e(a){function n(l,r,o,d,h){Ue(a,l,r,o,d,h)}return n.ratio=function(l){return e((l=+l)>1?l:1)},n})(Ke);function Je(){var e=Ze,a=!1,n=1,l=1,r=[0],o=O,d=O,h=O,m=O,c=O;function p(s){return s.x0=s.y0=0,s.x1=n,s.y1=l,s.eachBefore(b),r=[0],a&&s.eachBefore(Xe),s}function b(s){var x=r[s.depth],S=s.x0+x,v=s.y0+x,u=s.x1-x,g=s.y1-x;u<S&&(S=u=(S+u)/2),g<v&&(v=g=(v+g)/2),s.x0=S,s.y0=v,s.x1=u,s.y1=g,s.children&&(x=r[s.depth+1]=o(s)/2,S+=c(s)-x,v+=d(s)-x,u-=h(s)-x,g-=m(s)-x,u<S&&(S=u=(S+u)/2),g<v&&(v=g=(v+g)/2),e(s,S,v,u,g))}return p.round=function(s){return arguments.length?(a=!!s,p):a},p.size=function(s){return arguments.length?(n=+s[0],l=+s[1],p):[n,l]},p.tile=function(s){return arguments.length?(e=qe(s),p):e},p.padding=function(s){return arguments.length?p.paddingInner(s).paddingOuter(s):p.paddingInner()},p.paddingInner=function(s){return arguments.length?(o=typeof s=="function"?s:G(+s),p):o},p.paddingOuter=function(s){return arguments.length?p.paddingTop(s).paddingRight(s).paddingBottom(s).paddingLeft(s):p.paddingTop()},p.paddingTop=function(s){return arguments.length?(d=typeof s=="function"?s:G(+s),p):d},p.paddingRight=function(s){return arguments.length?(h=typeof s=="function"?s:G(+s),p):h},p.paddingBottom=function(s){return arguments.length?(m=typeof s=="function"?s:G(+s),p):m},p.paddingLeft=function(s){return arguments.length?(c=typeof s=="function"?s:G(+s),p):c},p}var ae=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=ue,this.getAccTitle=fe,this.setDiagramTitle=me,this.getDiagramTitle=ge,this.getAccDescription=ye,this.setAccDescription=Se}static{w(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){const e=ve,a=Q();return Z({...e.treemap,...a.treemap??{}})}addNode(e,a){this.nodes.push(e),this.levels.set(e,a),a===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:"",children:this.outerNodes}}addClass(e,a){const n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},l=a.replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");l&&l.forEach(r=>{xe(r)&&(n?.textStyles?n.textStyles.push(r):n.textStyles=[r]),n?.styles?n.styles.push(r):n.styles=[r]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){be(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function ne(e){if(!e.length)return[];const a=[],n=[];return e.forEach(l=>{const r={name:l.name,children:l.type==="Leaf"?void 0:[]};for(r.classSelector=l?.classSelector,l?.cssCompiledStyles&&(r.cssCompiledStyles=l.cssCompiledStyles),l.type==="Leaf"&&l.value!==void 0&&(r.value=l.value);n.length>0&&n[n.length-1].level>=l.level;)n.pop();if(n.length===0)a.push(r);else{const o=n[n.length-1].node;o.children?o.children.push(r):o.children=[r]}l.type!=="Leaf"&&n.push({node:r,level:l.level})}),a}w(ne,"buildHierarchy");var Qe=w((e,a)=>{Ce(e,a);const n=[];for(const o of e.TreemapRows??[])o.$type==="ClassDefStatement"&&a.addClass(o.className??"",o.styleText??"");for(const o of e.TreemapRows??[]){const d=o.item;if(!d)continue;const h=o.indent?parseInt(o.indent):0,m=et(d),c=d.classSelector?a.getStylesForClass(d.classSelector):[],p=c.length>0?c:void 0,b={level:h,name:m,type:d.$type,value:d.value,classSelector:d.classSelector,cssCompiledStyles:p};n.push(b)}const l=ne(n),r=w((o,d)=>{for(const h of o)a.addNode(h,d),h.children&&h.children.length>0&&r(h.children,d+1)},"addNodesRecursively");r(l,0)},"populate"),et=w(e=>e.name?String(e.name):"","getItemName"),le={parser:{yy:void 0},parse:w(async e=>{try{const n=await Te("treemap",e);J.debug("Treemap AST:",n);const l=le.parser?.yy;if(!(l instanceof ae))throw new Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Qe(n,l)}catch(a){throw J.error("Error parsing treemap:",a),a}},"parse")},tt=10,B=10,q=25,at=w((e,a,n,l)=>{const r=l.db,o=r.getConfig(),d=o.padding??tt,h=r.getDiagramTitle(),m=r.getRoot(),{themeVariables:c}=Q();if(!m)return;const p=h?30:0,b=he(a),s=o.nodeWidth?o.nodeWidth*B:960,x=o.nodeHeight?o.nodeHeight*B:500,S=s,v=x+p;b.attr("viewBox",`0 0 ${S} ${v}`),pe(b,v,S,o.useMaxWidth);let u;try{const t=o.valueFormat||",";if(t==="$0,0")u=w(i=>"$"+I(",")(i),"valueFormat");else if(t.startsWith("$")&&t.includes(",")){const i=/\.\d+/.exec(t),f=i?i[0]:"";u=w(C=>"$"+I(","+f)(C),"valueFormat")}else if(t.startsWith("$")){const i=t.substring(1);u=w(f=>"$"+I(i||"")(f),"valueFormat")}else u=I(t)}catch(t){J.error("Error creating format function:",t),u=I(",")}const g=U().range(["transparent",c.cScale0,c.cScale1,c.cScale2,c.cScale3,c.cScale4,c.cScale5,c.cScale6,c.cScale7,c.cScale8,c.cScale9,c.cScale10,c.cScale11]),M=U().range(["transparent",c.cScalePeer0,c.cScalePeer1,c.cScalePeer2,c.cScalePeer3,c.cScalePeer4,c.cScalePeer5,c.cScalePeer6,c.cScalePeer7,c.cScalePeer8,c.cScalePeer9,c.cScalePeer10,c.cScalePeer11]),N=U().range([c.cScaleLabel0,c.cScaleLabel1,c.cScaleLabel2,c.cScaleLabel3,c.cScaleLabel4,c.cScaleLabel5,c.cScaleLabel6,c.cScaleLabel7,c.cScaleLabel8,c.cScaleLabel9,c.cScaleLabel10,c.cScaleLabel11]);h&&b.append("text").attr("x",S/2).attr("y",p/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(h);const z=b.append("g").attr("transform",`translate(0, ${p})`).attr("class","treemapContainer"),R=ee(m).sum(t=>t.value??0).sort((t,i)=>(i.value??0)-(t.value??0)),te=Je().size([s,x]).paddingTop(t=>t.children&&t.children.length>0?q+B:0).paddingInner(d).paddingLeft(t=>t.children&&t.children.length>0?B:0).paddingRight(t=>t.children&&t.children.length>0?B:0).paddingBottom(t=>t.children&&t.children.length>0?B:0).round(!0)(R),re=te.descendants().filter(t=>t.children&&t.children.length>0),E=z.selectAll(".treemapSection").data(re).enter().append("g").attr("class","treemapSection").attr("transform",t=>`translate(${t.x0},${t.y0})`);E.append("rect").attr("width",t=>t.x1-t.x0).attr("height",q).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",t=>t.depth===0?"display: none;":""),E.append("clipPath").attr("id",(t,i)=>`clip-section-${a}-${i}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-12)).attr("height",q),E.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class",(t,i)=>`treemapSection section${i}`).attr("fill",t=>g(t.data.name)).attr("fill-opacity",.6).attr("stroke",t=>M(t.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",t=>{if(t.depth===0)return"display: none;";const i=P({cssCompiledStyles:t.data.cssCompiledStyles});return i.nodeStyles+";"+i.borderStyles.join(";")}),E.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",q/2).attr("dominant-baseline","middle").text(t=>t.depth===0?"":t.data.name).attr("font-weight","bold").attr("style",t=>{if(t.depth===0)return"display: none;";const i="dominant-baseline: middle; font-size: 12px; fill:"+N(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")}).each(function(t){if(t.depth===0)return;const i=Y(this),f=t.data.name;i.text(f);const C=t.x1-t.x0,L=6;let $;o.showValues!==!1&&t.value?$=C-10-30-10-L:$=C-L-6;const A=Math.max(15,$),y=i.node();if(y.getComputedTextLength()>A){let T=f;for(;T.length>0;){if(T=f.substring(0,T.length-1),T.length===0){i.text("..."),y.getComputedTextLength()>A&&i.text("");break}if(i.text(T+"..."),y.getComputedTextLength()<=A)break}}}),o.showValues!==!1&&E.append("text").attr("class","treemapSectionValue").attr("x",t=>t.x1-t.x0-10).attr("y",q/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(t=>t.value?u(t.value):"").attr("font-style","italic").attr("style",t=>{if(t.depth===0)return"display: none;";const i="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+N(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")});const se=te.leaves(),X=z.selectAll(".treemapLeafGroup").data(se).enter().append("g").attr("class",(t,i)=>`treemapNode treemapLeafGroup leaf${i}${t.data.classSelector?` ${t.data.classSelector}`:""}x`).attr("transform",t=>`translate(${t.x0},${t.y0})`);X.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class","treemapLeaf").attr("fill",t=>t.parent?g(t.parent.data.name):g(t.data.name)).attr("style",t=>P({cssCompiledStyles:t.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",t=>t.parent?g(t.parent.data.name):g(t.data.name)).attr("stroke-width",3),X.append("clipPath").attr("id",(t,i)=>`clip-${a}-${i}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-4)).attr("height",t=>Math.max(0,t.y1-t.y0-4)),X.append("text").attr("class","treemapLabel").attr("x",t=>(t.x1-t.x0)/2).attr("y",t=>(t.y1-t.y0)/2).attr("style",t=>{const i="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+N(t.data.name)+";",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")}).attr("clip-path",(t,i)=>`url(#clip-${a}-${i})`).text(t=>t.data.name).each(function(t){const i=Y(this),f=t.x1-t.x0,C=t.y1-t.y0,L=i.node(),$=4,D=f-2*$,A=C-2*$;if(D<10||A<10){i.style("display","none");return}let y=parseInt(i.style("font-size"),10);const _=8,F=28,T=.6,k=6,W=2;for(;L.getComputedTextLength()>D&&y>_;)y--,i.style("font-size",`${y}px`);let H=Math.max(k,Math.min(F,Math.round(y*T))),K=y+W+H;for(;K>A&&y>_&&(y--,H=Math.max(k,Math.min(F,Math.round(y*T))),!(H<k&&y===_));)i.style("font-size",`${y}px`),K=y+W+H;i.style("font-size",`${y}px`),(L.getComputedTextLength()>D||y<_||A<y)&&i.style("display","none")}),o.showValues!==!1&&X.append("text").attr("class","treemapValue").attr("x",i=>(i.x1-i.x0)/2).attr("y",function(i){return(i.y1-i.y0)/2}).attr("style",i=>{const f="text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+N(i.data.name)+";",C=P({cssCompiledStyles:i.data.cssCompiledStyles});return f+C.labelStyles.replace("color:","fill:")}).attr("clip-path",(i,f)=>`url(#clip-${a}-${f})`).text(i=>i.value?u(i.value):"").each(function(i){const f=Y(this),C=this.parentNode;if(!C){f.style("display","none");return}const L=Y(C).select(".treemapLabel");if(L.empty()||L.style("display")==="none"){f.style("display","none");return}const $=parseFloat(L.style("font-size")),D=28,A=.6,y=6,_=2,F=Math.max(y,Math.min(D,Math.round($*A)));f.style("font-size",`${F}px`);const k=(i.y1-i.y0)/2+$/2+_;f.attr("y",k);const W=i.x1-i.x0,oe=i.y1-i.y0-4,ce=W-8;f.node().getComputedTextLength()>ce||k+F>oe||F<y?f.style("display","none"):f.style("display",null)});const ie=o.diagramPadding??8;we(b,ie,"flowchart",o?.useMaxWidth||!1)},"draw"),nt=w(function(e,a){return a.db.getClasses()},"getClasses"),lt={draw:at,getClasses:nt},rt={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelFontSize:"12px",valueFontSize:"10px",titleFontSize:"14px"},st=w(({treemap:e}={})=>{const a=de(),n=Q(),l=Z(a,n.themeVariables),r=Z(rt,e),o=r.titleColor??l.titleColor,d=r.labelColor??l.textColor,h=r.valueColor??l.textColor;return`
1
+ import{_ as w,L as de,E as Q,G as Z,K as he,d as pe,l as J,aR as P,b as ue,a as fe,p as me,q as ge,g as ye,s as Se,H as ve,aS as xe,z as be}from"./mermaid.core-Dk2mUPOq.js";import{s as we}from"./chunk-2J33WTMH-BL2WY0HN.js";import{p as Ce}from"./chunk-4BX2VUAB-BkLExGMe.js";import{p as Te}from"./wardley-L42UT6IY-Mv-NotFS.js";import{s as Y}from"./vendor-reactflow-BlIeoTu4.js";import{b as I}from"./defaultLocale-DX6XiGOO.js";import{o as U}from"./ordinal-DILIJJjt.js";import"./index-CtYRoouR.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-xterm-BNq00GSj.js";import"./step-yuy0qJer.js";import"./init-Dmth1JHB.js";function Le(e){var a=0,n=e.children,l=n&&n.length;if(!l)a=1;else for(;--l>=0;)a+=n[l].value;e.value=a}function $e(){return this.eachAfter(Le)}function Ae(e,a){let n=-1;for(const l of this)e.call(a,l,++n,this);return this}function Fe(e,a){for(var n=this,l=[n],r,o,d=-1;n=l.pop();)if(e.call(a,n,++d,this),r=n.children)for(o=r.length-1;o>=0;--o)l.push(r[o]);return this}function Ne(e,a){for(var n=this,l=[n],r=[],o,d,h,m=-1;n=l.pop();)if(r.push(n),o=n.children)for(d=0,h=o.length;d<h;++d)l.push(o[d]);for(;n=r.pop();)e.call(a,n,++m,this);return this}function Me(e,a){let n=-1;for(const l of this)if(e.call(a,l,++n,this))return l}function Ve(e){return this.eachAfter(function(a){for(var n=+e(a.data)||0,l=a.children,r=l&&l.length;--r>=0;)n+=l[r].value;a.value=n})}function _e(e){return this.eachBefore(function(a){a.children&&a.children.sort(e)})}function ke(e){for(var a=this,n=ze(a,e),l=[a];a!==n;)a=a.parent,l.push(a);for(var r=l.length;e!==n;)l.splice(r,0,e),e=e.parent;return l}function ze(e,a){if(e===a)return e;var n=e.ancestors(),l=a.ancestors(),r=null;for(e=n.pop(),a=l.pop();e===a;)r=e,e=n.pop(),a=l.pop();return r}function De(){for(var e=this,a=[e];e=e.parent;)a.push(e);return a}function Pe(){return Array.from(this)}function Be(){var e=[];return this.eachBefore(function(a){a.children||e.push(a)}),e}function Re(){var e=this,a=[];return e.each(function(n){n!==e&&a.push({source:n.parent,target:n})}),a}function*Ee(){var e=this,a,n=[e],l,r,o;do for(a=n.reverse(),n=[];e=a.pop();)if(yield e,l=e.children)for(r=0,o=l.length;r<o;++r)n.push(l[r]);while(n.length)}function ee(e,a){e instanceof Map?(e=[void 0,e],a===void 0&&(a=Ie)):a===void 0&&(a=He);for(var n=new j(e),l,r=[n],o,d,h,m;l=r.pop();)if((d=a(l.data))&&(m=(d=Array.from(d)).length))for(l.children=d,h=m-1;h>=0;--h)r.push(o=d[h]=new j(d[h])),o.parent=l,o.depth=l.depth+1;return n.eachBefore(Ge)}function We(){return ee(this).eachBefore(Oe)}function He(e){return e.children}function Ie(e){return Array.isArray(e)?e[1]:null}function Oe(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function Ge(e){var a=0;do e.height=a;while((e=e.parent)&&e.height<++a)}function j(e){this.data=e,this.depth=this.height=0,this.parent=null}j.prototype=ee.prototype={constructor:j,count:$e,each:Ae,eachAfter:Ne,eachBefore:Fe,find:Me,sum:Ve,sort:_e,path:ke,ancestors:De,descendants:Pe,leaves:Be,links:Re,copy:We,[Symbol.iterator]:Ee};function qe(e){if(typeof e!="function")throw new Error;return e}function O(){return 0}function G(e){return function(){return e}}function Xe(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function Ye(e,a,n,l,r){for(var o=e.children,d,h=-1,m=o.length,c=e.value&&(l-a)/e.value;++h<m;)d=o[h],d.y0=n,d.y1=r,d.x0=a,d.x1=a+=d.value*c}function je(e,a,n,l,r){for(var o=e.children,d,h=-1,m=o.length,c=e.value&&(r-n)/e.value;++h<m;)d=o[h],d.x0=a,d.x1=l,d.y0=n,d.y1=n+=d.value*c}var Ke=(1+Math.sqrt(5))/2;function Ue(e,a,n,l,r,o){for(var d=[],h=a.children,m,c,p=0,b=0,s=h.length,x,S,v=a.value,u,g,M,N,z,R,V;p<s;){x=r-n,S=o-l;do u=h[b++].value;while(!u&&b<s);for(g=M=u,R=Math.max(S/x,x/S)/(v*e),V=u*u*R,z=Math.max(M/V,V/g);b<s;++b){if(u+=c=h[b].value,c<g&&(g=c),c>M&&(M=c),V=u*u*R,N=Math.max(M/V,V/g),N>z){u-=c;break}z=N}d.push(m={value:u,dice:x<S,children:h.slice(p,b)}),m.dice?Ye(m,n,l,r,v?l+=S*u/v:o):je(m,n,l,v?n+=x*u/v:r,o),v-=u,p=b}return d}const Ze=(function e(a){function n(l,r,o,d,h){Ue(a,l,r,o,d,h)}return n.ratio=function(l){return e((l=+l)>1?l:1)},n})(Ke);function Je(){var e=Ze,a=!1,n=1,l=1,r=[0],o=O,d=O,h=O,m=O,c=O;function p(s){return s.x0=s.y0=0,s.x1=n,s.y1=l,s.eachBefore(b),r=[0],a&&s.eachBefore(Xe),s}function b(s){var x=r[s.depth],S=s.x0+x,v=s.y0+x,u=s.x1-x,g=s.y1-x;u<S&&(S=u=(S+u)/2),g<v&&(v=g=(v+g)/2),s.x0=S,s.y0=v,s.x1=u,s.y1=g,s.children&&(x=r[s.depth+1]=o(s)/2,S+=c(s)-x,v+=d(s)-x,u-=h(s)-x,g-=m(s)-x,u<S&&(S=u=(S+u)/2),g<v&&(v=g=(v+g)/2),e(s,S,v,u,g))}return p.round=function(s){return arguments.length?(a=!!s,p):a},p.size=function(s){return arguments.length?(n=+s[0],l=+s[1],p):[n,l]},p.tile=function(s){return arguments.length?(e=qe(s),p):e},p.padding=function(s){return arguments.length?p.paddingInner(s).paddingOuter(s):p.paddingInner()},p.paddingInner=function(s){return arguments.length?(o=typeof s=="function"?s:G(+s),p):o},p.paddingOuter=function(s){return arguments.length?p.paddingTop(s).paddingRight(s).paddingBottom(s).paddingLeft(s):p.paddingTop()},p.paddingTop=function(s){return arguments.length?(d=typeof s=="function"?s:G(+s),p):d},p.paddingRight=function(s){return arguments.length?(h=typeof s=="function"?s:G(+s),p):h},p.paddingBottom=function(s){return arguments.length?(m=typeof s=="function"?s:G(+s),p):m},p.paddingLeft=function(s){return arguments.length?(c=typeof s=="function"?s:G(+s),p):c},p}var ae=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=ue,this.getAccTitle=fe,this.setDiagramTitle=me,this.getDiagramTitle=ge,this.getAccDescription=ye,this.setAccDescription=Se}static{w(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){const e=ve,a=Q();return Z({...e.treemap,...a.treemap??{}})}addNode(e,a){this.nodes.push(e),this.levels.set(e,a),a===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:"",children:this.outerNodes}}addClass(e,a){const n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},l=a.replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");l&&l.forEach(r=>{xe(r)&&(n?.textStyles?n.textStyles.push(r):n.textStyles=[r]),n?.styles?n.styles.push(r):n.styles=[r]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){be(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function ne(e){if(!e.length)return[];const a=[],n=[];return e.forEach(l=>{const r={name:l.name,children:l.type==="Leaf"?void 0:[]};for(r.classSelector=l?.classSelector,l?.cssCompiledStyles&&(r.cssCompiledStyles=l.cssCompiledStyles),l.type==="Leaf"&&l.value!==void 0&&(r.value=l.value);n.length>0&&n[n.length-1].level>=l.level;)n.pop();if(n.length===0)a.push(r);else{const o=n[n.length-1].node;o.children?o.children.push(r):o.children=[r]}l.type!=="Leaf"&&n.push({node:r,level:l.level})}),a}w(ne,"buildHierarchy");var Qe=w((e,a)=>{Ce(e,a);const n=[];for(const o of e.TreemapRows??[])o.$type==="ClassDefStatement"&&a.addClass(o.className??"",o.styleText??"");for(const o of e.TreemapRows??[]){const d=o.item;if(!d)continue;const h=o.indent?parseInt(o.indent):0,m=et(d),c=d.classSelector?a.getStylesForClass(d.classSelector):[],p=c.length>0?c:void 0,b={level:h,name:m,type:d.$type,value:d.value,classSelector:d.classSelector,cssCompiledStyles:p};n.push(b)}const l=ne(n),r=w((o,d)=>{for(const h of o)a.addNode(h,d),h.children&&h.children.length>0&&r(h.children,d+1)},"addNodesRecursively");r(l,0)},"populate"),et=w(e=>e.name?String(e.name):"","getItemName"),le={parser:{yy:void 0},parse:w(async e=>{try{const n=await Te("treemap",e);J.debug("Treemap AST:",n);const l=le.parser?.yy;if(!(l instanceof ae))throw new Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Qe(n,l)}catch(a){throw J.error("Error parsing treemap:",a),a}},"parse")},tt=10,B=10,q=25,at=w((e,a,n,l)=>{const r=l.db,o=r.getConfig(),d=o.padding??tt,h=r.getDiagramTitle(),m=r.getRoot(),{themeVariables:c}=Q();if(!m)return;const p=h?30:0,b=he(a),s=o.nodeWidth?o.nodeWidth*B:960,x=o.nodeHeight?o.nodeHeight*B:500,S=s,v=x+p;b.attr("viewBox",`0 0 ${S} ${v}`),pe(b,v,S,o.useMaxWidth);let u;try{const t=o.valueFormat||",";if(t==="$0,0")u=w(i=>"$"+I(",")(i),"valueFormat");else if(t.startsWith("$")&&t.includes(",")){const i=/\.\d+/.exec(t),f=i?i[0]:"";u=w(C=>"$"+I(","+f)(C),"valueFormat")}else if(t.startsWith("$")){const i=t.substring(1);u=w(f=>"$"+I(i||"")(f),"valueFormat")}else u=I(t)}catch(t){J.error("Error creating format function:",t),u=I(",")}const g=U().range(["transparent",c.cScale0,c.cScale1,c.cScale2,c.cScale3,c.cScale4,c.cScale5,c.cScale6,c.cScale7,c.cScale8,c.cScale9,c.cScale10,c.cScale11]),M=U().range(["transparent",c.cScalePeer0,c.cScalePeer1,c.cScalePeer2,c.cScalePeer3,c.cScalePeer4,c.cScalePeer5,c.cScalePeer6,c.cScalePeer7,c.cScalePeer8,c.cScalePeer9,c.cScalePeer10,c.cScalePeer11]),N=U().range([c.cScaleLabel0,c.cScaleLabel1,c.cScaleLabel2,c.cScaleLabel3,c.cScaleLabel4,c.cScaleLabel5,c.cScaleLabel6,c.cScaleLabel7,c.cScaleLabel8,c.cScaleLabel9,c.cScaleLabel10,c.cScaleLabel11]);h&&b.append("text").attr("x",S/2).attr("y",p/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(h);const z=b.append("g").attr("transform",`translate(0, ${p})`).attr("class","treemapContainer"),R=ee(m).sum(t=>t.value??0).sort((t,i)=>(i.value??0)-(t.value??0)),te=Je().size([s,x]).paddingTop(t=>t.children&&t.children.length>0?q+B:0).paddingInner(d).paddingLeft(t=>t.children&&t.children.length>0?B:0).paddingRight(t=>t.children&&t.children.length>0?B:0).paddingBottom(t=>t.children&&t.children.length>0?B:0).round(!0)(R),re=te.descendants().filter(t=>t.children&&t.children.length>0),E=z.selectAll(".treemapSection").data(re).enter().append("g").attr("class","treemapSection").attr("transform",t=>`translate(${t.x0},${t.y0})`);E.append("rect").attr("width",t=>t.x1-t.x0).attr("height",q).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",t=>t.depth===0?"display: none;":""),E.append("clipPath").attr("id",(t,i)=>`clip-section-${a}-${i}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-12)).attr("height",q),E.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class",(t,i)=>`treemapSection section${i}`).attr("fill",t=>g(t.data.name)).attr("fill-opacity",.6).attr("stroke",t=>M(t.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",t=>{if(t.depth===0)return"display: none;";const i=P({cssCompiledStyles:t.data.cssCompiledStyles});return i.nodeStyles+";"+i.borderStyles.join(";")}),E.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",q/2).attr("dominant-baseline","middle").text(t=>t.depth===0?"":t.data.name).attr("font-weight","bold").attr("style",t=>{if(t.depth===0)return"display: none;";const i="dominant-baseline: middle; font-size: 12px; fill:"+N(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")}).each(function(t){if(t.depth===0)return;const i=Y(this),f=t.data.name;i.text(f);const C=t.x1-t.x0,L=6;let $;o.showValues!==!1&&t.value?$=C-10-30-10-L:$=C-L-6;const A=Math.max(15,$),y=i.node();if(y.getComputedTextLength()>A){let T=f;for(;T.length>0;){if(T=f.substring(0,T.length-1),T.length===0){i.text("..."),y.getComputedTextLength()>A&&i.text("");break}if(i.text(T+"..."),y.getComputedTextLength()<=A)break}}}),o.showValues!==!1&&E.append("text").attr("class","treemapSectionValue").attr("x",t=>t.x1-t.x0-10).attr("y",q/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(t=>t.value?u(t.value):"").attr("font-style","italic").attr("style",t=>{if(t.depth===0)return"display: none;";const i="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+N(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")});const se=te.leaves(),X=z.selectAll(".treemapLeafGroup").data(se).enter().append("g").attr("class",(t,i)=>`treemapNode treemapLeafGroup leaf${i}${t.data.classSelector?` ${t.data.classSelector}`:""}x`).attr("transform",t=>`translate(${t.x0},${t.y0})`);X.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class","treemapLeaf").attr("fill",t=>t.parent?g(t.parent.data.name):g(t.data.name)).attr("style",t=>P({cssCompiledStyles:t.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",t=>t.parent?g(t.parent.data.name):g(t.data.name)).attr("stroke-width",3),X.append("clipPath").attr("id",(t,i)=>`clip-${a}-${i}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-4)).attr("height",t=>Math.max(0,t.y1-t.y0-4)),X.append("text").attr("class","treemapLabel").attr("x",t=>(t.x1-t.x0)/2).attr("y",t=>(t.y1-t.y0)/2).attr("style",t=>{const i="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+N(t.data.name)+";",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")}).attr("clip-path",(t,i)=>`url(#clip-${a}-${i})`).text(t=>t.data.name).each(function(t){const i=Y(this),f=t.x1-t.x0,C=t.y1-t.y0,L=i.node(),$=4,D=f-2*$,A=C-2*$;if(D<10||A<10){i.style("display","none");return}let y=parseInt(i.style("font-size"),10);const _=8,F=28,T=.6,k=6,W=2;for(;L.getComputedTextLength()>D&&y>_;)y--,i.style("font-size",`${y}px`);let H=Math.max(k,Math.min(F,Math.round(y*T))),K=y+W+H;for(;K>A&&y>_&&(y--,H=Math.max(k,Math.min(F,Math.round(y*T))),!(H<k&&y===_));)i.style("font-size",`${y}px`),K=y+W+H;i.style("font-size",`${y}px`),(L.getComputedTextLength()>D||y<_||A<y)&&i.style("display","none")}),o.showValues!==!1&&X.append("text").attr("class","treemapValue").attr("x",i=>(i.x1-i.x0)/2).attr("y",function(i){return(i.y1-i.y0)/2}).attr("style",i=>{const f="text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+N(i.data.name)+";",C=P({cssCompiledStyles:i.data.cssCompiledStyles});return f+C.labelStyles.replace("color:","fill:")}).attr("clip-path",(i,f)=>`url(#clip-${a}-${f})`).text(i=>i.value?u(i.value):"").each(function(i){const f=Y(this),C=this.parentNode;if(!C){f.style("display","none");return}const L=Y(C).select(".treemapLabel");if(L.empty()||L.style("display")==="none"){f.style("display","none");return}const $=parseFloat(L.style("font-size")),D=28,A=.6,y=6,_=2,F=Math.max(y,Math.min(D,Math.round($*A)));f.style("font-size",`${F}px`);const k=(i.y1-i.y0)/2+$/2+_;f.attr("y",k);const W=i.x1-i.x0,oe=i.y1-i.y0-4,ce=W-8;f.node().getComputedTextLength()>ce||k+F>oe||F<y?f.style("display","none"):f.style("display",null)});const ie=o.diagramPadding??8;we(b,ie,"flowchart",o?.useMaxWidth||!1)},"draw"),nt=w(function(e,a){return a.db.getClasses()},"getClasses"),lt={draw:at,getClasses:nt},rt={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelFontSize:"12px",valueFontSize:"10px",titleFontSize:"14px"},st=w(({treemap:e}={})=>{const a=de(),n=Q(),l=Z(a,n.themeVariables),r=Z(rt,e),o=r.titleColor??l.titleColor,d=r.labelColor??l.textColor,h=r.valueColor??l.textColor;return`
2
2
  .treemapNode.section {
3
3
  stroke: ${r.sectionStrokeColor};
4
4
  stroke-width: ${r.sectionStrokeWidth};
@@ -1,4 +1,4 @@
1
- import{g as Mt}from"./chunk-55IACEB6-BtVQ5XaZ.js";import{s as Bt}from"./chunk-2J33WTMH-CPeIHyAX.js";import{_ as l,b as Ft,a as Yt,s as Pt,g as zt,p as Gt,q as Kt,c as it,l as V,z as Ut,x as Zt,B as jt,D as Wt,o as Qt,r as Xt,u as Ht}from"./mermaid.core-CDXPNs7a.js";import{s as qt}from"./vendor-reactflow-BlIeoTu4.js";import{c as Jt}from"./channel-CaxOu15c.js";import"./index-DWRJyaa3.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-xterm-BNq00GSj.js";import"./step-yuy0qJer.js";var _t=(function(){var e=l(function(I,n,o,c){for(o=o||{},c=I.length;c--;o[I[c]]=n);return o},"o"),i=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52],h=[1,10],a=[1,11],u=[1,12],d=[1,13],y=[1,23],f=[1,24],k=[1,25],j=[1,26],W=[1,27],T=[1,19],Q=[1,28],M=[1,29],D=[1,20],R=[1,18],S=[1,21],C=[1,22],nt=[1,36],at=[1,37],ot=[1,38],ct=[1,39],lt=[1,40],B=[6,8,10,13,15,17,20,21,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52,65,66,67,68,69],O=[1,45],N=[1,46],F=[1,55],Y=[40,48,50,51,52,70,71],P=[1,66],z=[1,64],A=[1,61],G=[1,65],K=[1,67],X=[6,8,10,13,17,22,24,26,28,33,34,35,36,37,40,41,42,43,44,48,49,50,51,52,65,66,67,68,69],gt=[65,66,67,68,69],bt=[1,84],mt=[1,83],kt=[1,81],Et=[1,82],Tt=[6,10,42,47],L=[6,10,13,41,42,47,48,49],H=[1,92],q=[1,91],J=[1,90],U=[19,58],St=[1,101],Ot=[1,100],ht=[19,58,60,62],ut={trace:l(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,COLON:13,role:14,STYLE_SEPARATOR:15,idList:16,BLOCK_START:17,attributes:18,BLOCK_STOP:19,SQS:20,SQE:21,title:22,title_value:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,direction:29,classDefStatement:30,classStatement:31,styleStatement:32,direction_tb:33,direction_bt:34,direction_rl:35,direction_lr:36,CLASSDEF:37,stylesOpt:38,separator:39,UNICODE_TEXT:40,STYLE_TEXT:41,COMMA:42,CLASS:43,STYLE:44,style:45,styleComponent:46,SEMI:47,NUM:48,BRKT:49,ENTITY_NAME:50,DECIMAL_NUM:51,ENTITY_ONE:52,attribute:53,attributeType:54,attributeName:55,attributeKeyTypeList:56,attributeComment:57,ATTRIBUTE_WORD:58,attributeKeyType:59,",":60,ATTRIBUTE_KEY:61,COMMENT:62,cardinality:63,relType:64,ZERO_OR_ONE:65,ZERO_OR_MORE:66,ONE_OR_MORE:67,ONLY_ONE:68,MD_PARENT:69,NON_IDENTIFYING:70,IDENTIFYING:71,WORD:72,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:"COLON",15:"STYLE_SEPARATOR",17:"BLOCK_START",19:"BLOCK_STOP",20:"SQS",21:"SQE",22:"title",23:"title_value",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"direction_tb",34:"direction_bt",35:"direction_rl",36:"direction_lr",37:"CLASSDEF",40:"UNICODE_TEXT",41:"STYLE_TEXT",42:"COMMA",43:"CLASS",44:"STYLE",47:"SEMI",48:"NUM",49:"BRKT",50:"ENTITY_NAME",51:"DECIMAL_NUM",52:"ENTITY_ONE",58:"ATTRIBUTE_WORD",60:",",61:"ATTRIBUTE_KEY",62:"COMMENT",65:"ZERO_OR_ONE",66:"ZERO_OR_MORE",67:"ONE_OR_MORE",68:"ONLY_ONE",69:"MD_PARENT",70:"NON_IDENTIFYING",71:"IDENTIFYING",72:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,9],[9,7],[9,7],[9,4],[9,6],[9,3],[9,5],[9,1],[9,3],[9,7],[9,9],[9,6],[9,8],[9,4],[9,6],[9,2],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[9,1],[29,1],[29,1],[29,1],[29,1],[30,4],[16,1],[16,1],[16,3],[16,3],[31,3],[32,4],[38,1],[38,3],[45,1],[45,2],[39,1],[39,1],[39,1],[46,1],[46,1],[46,1],[46,1],[11,1],[11,1],[11,1],[11,1],[11,1],[18,1],[18,2],[53,2],[53,3],[53,3],[53,4],[54,1],[55,1],[56,1],[56,3],[59,1],[57,1],[12,3],[63,1],[63,1],[63,1],[63,1],[63,1],[64,1],[64,1],[14,1],[14,1],[14,1]],performAction:l(function(n,o,c,r,p,t,Z){var s=t.length-1;switch(p){case 1:break;case 2:this.$=[];break;case 3:t[s-1].push(t[s]),this.$=t[s-1];break;case 4:case 5:this.$=t[s];break;case 6:case 7:this.$=[];break;case 8:r.addEntity(t[s-4]),r.addEntity(t[s-2]),r.addRelationship(t[s-4],t[s],t[s-2],t[s-3]);break;case 9:r.addEntity(t[s-8]),r.addEntity(t[s-4]),r.addRelationship(t[s-8],t[s],t[s-4],t[s-5]),r.setClass([t[s-8]],t[s-6]),r.setClass([t[s-4]],t[s-2]);break;case 10:r.addEntity(t[s-6]),r.addEntity(t[s-2]),r.addRelationship(t[s-6],t[s],t[s-2],t[s-3]),r.setClass([t[s-6]],t[s-4]);break;case 11:r.addEntity(t[s-6]),r.addEntity(t[s-4]),r.addRelationship(t[s-6],t[s],t[s-4],t[s-5]),r.setClass([t[s-4]],t[s-2]);break;case 12:r.addEntity(t[s-3]),r.addAttributes(t[s-3],t[s-1]);break;case 13:r.addEntity(t[s-5]),r.addAttributes(t[s-5],t[s-1]),r.setClass([t[s-5]],t[s-3]);break;case 14:r.addEntity(t[s-2]);break;case 15:r.addEntity(t[s-4]),r.setClass([t[s-4]],t[s-2]);break;case 16:r.addEntity(t[s]);break;case 17:r.addEntity(t[s-2]),r.setClass([t[s-2]],t[s]);break;case 18:r.addEntity(t[s-6],t[s-4]),r.addAttributes(t[s-6],t[s-1]);break;case 19:r.addEntity(t[s-8],t[s-6]),r.addAttributes(t[s-8],t[s-1]),r.setClass([t[s-8]],t[s-3]);break;case 20:r.addEntity(t[s-5],t[s-3]);break;case 21:r.addEntity(t[s-7],t[s-5]),r.setClass([t[s-7]],t[s-2]);break;case 22:r.addEntity(t[s-3],t[s-1]);break;case 23:r.addEntity(t[s-5],t[s-3]),r.setClass([t[s-5]],t[s]);break;case 24:case 25:this.$=t[s].trim(),r.setAccTitle(this.$);break;case 26:case 27:this.$=t[s].trim(),r.setAccDescription(this.$);break;case 32:r.setDirection("TB");break;case 33:r.setDirection("BT");break;case 34:r.setDirection("RL");break;case 35:r.setDirection("LR");break;case 36:this.$=t[s-3],r.addClass(t[s-2],t[s-1]);break;case 37:case 38:case 59:case 67:this.$=[t[s]];break;case 39:case 40:this.$=t[s-2].concat([t[s]]);break;case 41:this.$=t[s-2],r.setClass(t[s-1],t[s]);break;case 42:this.$=t[s-3],r.addCssStyles(t[s-2],t[s-1]);break;case 43:this.$=[t[s]];break;case 44:t[s-2].push(t[s]),this.$=t[s-2];break;case 46:this.$=t[s-1]+t[s];break;case 54:case 79:case 80:this.$=t[s].replace(/"/g,"");break;case 55:case 56:case 57:case 58:case 81:this.$=t[s];break;case 60:t[s].push(t[s-1]),this.$=t[s];break;case 61:this.$={type:t[s-1],name:t[s]};break;case 62:this.$={type:t[s-2],name:t[s-1],keys:t[s]};break;case 63:this.$={type:t[s-2],name:t[s-1],comment:t[s]};break;case 64:this.$={type:t[s-3],name:t[s-2],keys:t[s-1],comment:t[s]};break;case 65:case 66:case 69:this.$=t[s];break;case 68:t[s-2].push(t[s]),this.$=t[s-2];break;case 70:this.$=t[s].replace(/"/g,"");break;case 71:this.$={cardA:t[s],relType:t[s-1],cardB:t[s-2]};break;case 72:this.$=r.Cardinality.ZERO_OR_ONE;break;case 73:this.$=r.Cardinality.ZERO_OR_MORE;break;case 74:this.$=r.Cardinality.ONE_OR_MORE;break;case 75:this.$=r.Cardinality.ONLY_ONE;break;case 76:this.$=r.Cardinality.MD_PARENT;break;case 77:this.$=r.Identification.NON_IDENTIFYING;break;case 78:this.$=r.Identification.IDENTIFYING;break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},e(i,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,22:h,24:a,26:u,28:d,29:14,30:15,31:16,32:17,33:y,34:f,35:k,36:j,37:W,40:T,43:Q,44:M,48:D,50:R,51:S,52:C},e(i,[2,7],{1:[2,1]}),e(i,[2,3]),{9:30,11:9,22:h,24:a,26:u,28:d,29:14,30:15,31:16,32:17,33:y,34:f,35:k,36:j,37:W,40:T,43:Q,44:M,48:D,50:R,51:S,52:C},e(i,[2,5]),e(i,[2,6]),e(i,[2,16],{12:31,63:35,15:[1,32],17:[1,33],20:[1,34],65:nt,66:at,67:ot,68:ct,69:lt}),{23:[1,41]},{25:[1,42]},{27:[1,43]},e(i,[2,27]),e(i,[2,28]),e(i,[2,29]),e(i,[2,30]),e(i,[2,31]),e(B,[2,54]),e(B,[2,55]),e(B,[2,56]),e(B,[2,57]),e(B,[2,58]),e(i,[2,32]),e(i,[2,33]),e(i,[2,34]),e(i,[2,35]),{16:44,40:O,41:N},{16:47,40:O,41:N},{16:48,40:O,41:N},e(i,[2,4]),{11:49,40:T,48:D,50:R,51:S,52:C},{16:50,40:O,41:N},{18:51,19:[1,52],53:53,54:54,58:F},{11:56,40:T,48:D,50:R,51:S,52:C},{64:57,70:[1,58],71:[1,59]},e(Y,[2,72]),e(Y,[2,73]),e(Y,[2,74]),e(Y,[2,75]),e(Y,[2,76]),e(i,[2,24]),e(i,[2,25]),e(i,[2,26]),{13:P,38:60,41:z,42:A,45:62,46:63,48:G,49:K},e(X,[2,37]),e(X,[2,38]),{16:68,40:O,41:N,42:A},{13:P,38:69,41:z,42:A,45:62,46:63,48:G,49:K},{13:[1,70],15:[1,71]},e(i,[2,17],{63:35,12:72,17:[1,73],42:A,65:nt,66:at,67:ot,68:ct,69:lt}),{19:[1,74]},e(i,[2,14]),{18:75,19:[2,59],53:53,54:54,58:F},{55:76,58:[1,77]},{58:[2,65]},{21:[1,78]},{63:79,65:nt,66:at,67:ot,68:ct,69:lt},e(gt,[2,77]),e(gt,[2,78]),{6:bt,10:mt,39:80,42:kt,47:Et},{40:[1,85],41:[1,86]},e(Tt,[2,43],{46:87,13:P,41:z,48:G,49:K}),e(L,[2,45]),e(L,[2,50]),e(L,[2,51]),e(L,[2,52]),e(L,[2,53]),e(i,[2,41],{42:A}),{6:bt,10:mt,39:88,42:kt,47:Et},{14:89,40:H,50:q,72:J},{16:93,40:O,41:N},{11:94,40:T,48:D,50:R,51:S,52:C},{18:95,19:[1,96],53:53,54:54,58:F},e(i,[2,12]),{19:[2,60]},e(U,[2,61],{56:97,57:98,59:99,61:St,62:Ot}),e([19,58,61,62],[2,66]),e(i,[2,22],{15:[1,103],17:[1,102]}),e([40,48,50,51,52],[2,71]),e(i,[2,36]),{13:P,41:z,45:104,46:63,48:G,49:K},e(i,[2,47]),e(i,[2,48]),e(i,[2,49]),e(X,[2,39]),e(X,[2,40]),e(L,[2,46]),e(i,[2,42]),e(i,[2,8]),e(i,[2,79]),e(i,[2,80]),e(i,[2,81]),{13:[1,105],42:A},{13:[1,107],15:[1,106]},{19:[1,108]},e(i,[2,15]),e(U,[2,62],{57:109,60:[1,110],62:Ot}),e(U,[2,63]),e(ht,[2,67]),e(U,[2,70]),e(ht,[2,69]),{18:111,19:[1,112],53:53,54:54,58:F},{16:113,40:O,41:N},e(Tt,[2,44],{46:87,13:P,41:z,48:G,49:K}),{14:114,40:H,50:q,72:J},{16:115,40:O,41:N},{14:116,40:H,50:q,72:J},e(i,[2,13]),e(U,[2,64]),{59:117,61:St},{19:[1,118]},e(i,[2,20]),e(i,[2,23],{17:[1,119],42:A}),e(i,[2,11]),{13:[1,120],42:A},e(i,[2,10]),e(ht,[2,68]),e(i,[2,18]),{18:121,19:[1,122],53:53,54:54,58:F},{14:123,40:H,50:q,72:J},{19:[1,124]},e(i,[2,21]),e(i,[2,9]),e(i,[2,19])],defaultActions:{55:[2,65],75:[2,60]},parseError:l(function(n,o){if(o.recoverable)this.trace(n);else{var c=new Error(n);throw c.hash=o,c}},"parseError"),parse:l(function(n){var o=this,c=[0],r=[],p=[null],t=[],Z=this.table,s="",tt=0,Nt=0,Dt=2,At=1,Lt=t.slice.call(arguments,1),_=Object.create(this.lexer),x={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(x.yy[dt]=this.yy[dt]);_.setInput(n,x.yy),x.yy.lexer=_,x.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var pt=_.yylloc;t.push(pt);var wt=_.options&&_.options.ranges;typeof x.yy.parseError=="function"?this.parseError=x.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Vt(b){c.length=c.length-2*b,p.length=p.length-b,t.length=t.length-b}l(Vt,"popStack");function It(){var b;return b=r.pop()||_.lex()||At,typeof b!="number"&&(b instanceof Array&&(r=b,b=r.pop()),b=o.symbols_[b]||b),b}l(It,"lex");for(var g,v,m,ft,w={},et,E,Rt,st;;){if(v=c[c.length-1],this.defaultActions[v]?m=this.defaultActions[v]:((g===null||typeof g>"u")&&(g=It()),m=Z[v]&&Z[v][g]),typeof m>"u"||!m.length||!m[0]){var yt="";st=[];for(et in Z[v])this.terminals_[et]&&et>Dt&&st.push("'"+this.terminals_[et]+"'");_.showPosition?yt="Parse error on line "+(tt+1)+`:
1
+ import{g as Mt}from"./chunk-55IACEB6-CSTvCF5T.js";import{s as Bt}from"./chunk-2J33WTMH-BL2WY0HN.js";import{_ as l,b as Ft,a as Yt,s as Pt,g as zt,p as Gt,q as Kt,c as it,l as V,z as Ut,x as Zt,B as jt,D as Wt,o as Qt,r as Xt,u as Ht}from"./mermaid.core-Dk2mUPOq.js";import{s as qt}from"./vendor-reactflow-BlIeoTu4.js";import{c as Jt}from"./channel-BoE8DeM4.js";import"./index-CtYRoouR.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-xterm-BNq00GSj.js";import"./step-yuy0qJer.js";var _t=(function(){var e=l(function(I,n,o,c){for(o=o||{},c=I.length;c--;o[I[c]]=n);return o},"o"),i=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52],h=[1,10],a=[1,11],u=[1,12],d=[1,13],y=[1,23],f=[1,24],k=[1,25],j=[1,26],W=[1,27],T=[1,19],Q=[1,28],M=[1,29],D=[1,20],R=[1,18],S=[1,21],C=[1,22],nt=[1,36],at=[1,37],ot=[1,38],ct=[1,39],lt=[1,40],B=[6,8,10,13,15,17,20,21,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52,65,66,67,68,69],O=[1,45],N=[1,46],F=[1,55],Y=[40,48,50,51,52,70,71],P=[1,66],z=[1,64],A=[1,61],G=[1,65],K=[1,67],X=[6,8,10,13,17,22,24,26,28,33,34,35,36,37,40,41,42,43,44,48,49,50,51,52,65,66,67,68,69],gt=[65,66,67,68,69],bt=[1,84],mt=[1,83],kt=[1,81],Et=[1,82],Tt=[6,10,42,47],L=[6,10,13,41,42,47,48,49],H=[1,92],q=[1,91],J=[1,90],U=[19,58],St=[1,101],Ot=[1,100],ht=[19,58,60,62],ut={trace:l(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,COLON:13,role:14,STYLE_SEPARATOR:15,idList:16,BLOCK_START:17,attributes:18,BLOCK_STOP:19,SQS:20,SQE:21,title:22,title_value:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,direction:29,classDefStatement:30,classStatement:31,styleStatement:32,direction_tb:33,direction_bt:34,direction_rl:35,direction_lr:36,CLASSDEF:37,stylesOpt:38,separator:39,UNICODE_TEXT:40,STYLE_TEXT:41,COMMA:42,CLASS:43,STYLE:44,style:45,styleComponent:46,SEMI:47,NUM:48,BRKT:49,ENTITY_NAME:50,DECIMAL_NUM:51,ENTITY_ONE:52,attribute:53,attributeType:54,attributeName:55,attributeKeyTypeList:56,attributeComment:57,ATTRIBUTE_WORD:58,attributeKeyType:59,",":60,ATTRIBUTE_KEY:61,COMMENT:62,cardinality:63,relType:64,ZERO_OR_ONE:65,ZERO_OR_MORE:66,ONE_OR_MORE:67,ONLY_ONE:68,MD_PARENT:69,NON_IDENTIFYING:70,IDENTIFYING:71,WORD:72,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:"COLON",15:"STYLE_SEPARATOR",17:"BLOCK_START",19:"BLOCK_STOP",20:"SQS",21:"SQE",22:"title",23:"title_value",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"direction_tb",34:"direction_bt",35:"direction_rl",36:"direction_lr",37:"CLASSDEF",40:"UNICODE_TEXT",41:"STYLE_TEXT",42:"COMMA",43:"CLASS",44:"STYLE",47:"SEMI",48:"NUM",49:"BRKT",50:"ENTITY_NAME",51:"DECIMAL_NUM",52:"ENTITY_ONE",58:"ATTRIBUTE_WORD",60:",",61:"ATTRIBUTE_KEY",62:"COMMENT",65:"ZERO_OR_ONE",66:"ZERO_OR_MORE",67:"ONE_OR_MORE",68:"ONLY_ONE",69:"MD_PARENT",70:"NON_IDENTIFYING",71:"IDENTIFYING",72:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,9],[9,7],[9,7],[9,4],[9,6],[9,3],[9,5],[9,1],[9,3],[9,7],[9,9],[9,6],[9,8],[9,4],[9,6],[9,2],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[9,1],[29,1],[29,1],[29,1],[29,1],[30,4],[16,1],[16,1],[16,3],[16,3],[31,3],[32,4],[38,1],[38,3],[45,1],[45,2],[39,1],[39,1],[39,1],[46,1],[46,1],[46,1],[46,1],[11,1],[11,1],[11,1],[11,1],[11,1],[18,1],[18,2],[53,2],[53,3],[53,3],[53,4],[54,1],[55,1],[56,1],[56,3],[59,1],[57,1],[12,3],[63,1],[63,1],[63,1],[63,1],[63,1],[64,1],[64,1],[14,1],[14,1],[14,1]],performAction:l(function(n,o,c,r,p,t,Z){var s=t.length-1;switch(p){case 1:break;case 2:this.$=[];break;case 3:t[s-1].push(t[s]),this.$=t[s-1];break;case 4:case 5:this.$=t[s];break;case 6:case 7:this.$=[];break;case 8:r.addEntity(t[s-4]),r.addEntity(t[s-2]),r.addRelationship(t[s-4],t[s],t[s-2],t[s-3]);break;case 9:r.addEntity(t[s-8]),r.addEntity(t[s-4]),r.addRelationship(t[s-8],t[s],t[s-4],t[s-5]),r.setClass([t[s-8]],t[s-6]),r.setClass([t[s-4]],t[s-2]);break;case 10:r.addEntity(t[s-6]),r.addEntity(t[s-2]),r.addRelationship(t[s-6],t[s],t[s-2],t[s-3]),r.setClass([t[s-6]],t[s-4]);break;case 11:r.addEntity(t[s-6]),r.addEntity(t[s-4]),r.addRelationship(t[s-6],t[s],t[s-4],t[s-5]),r.setClass([t[s-4]],t[s-2]);break;case 12:r.addEntity(t[s-3]),r.addAttributes(t[s-3],t[s-1]);break;case 13:r.addEntity(t[s-5]),r.addAttributes(t[s-5],t[s-1]),r.setClass([t[s-5]],t[s-3]);break;case 14:r.addEntity(t[s-2]);break;case 15:r.addEntity(t[s-4]),r.setClass([t[s-4]],t[s-2]);break;case 16:r.addEntity(t[s]);break;case 17:r.addEntity(t[s-2]),r.setClass([t[s-2]],t[s]);break;case 18:r.addEntity(t[s-6],t[s-4]),r.addAttributes(t[s-6],t[s-1]);break;case 19:r.addEntity(t[s-8],t[s-6]),r.addAttributes(t[s-8],t[s-1]),r.setClass([t[s-8]],t[s-3]);break;case 20:r.addEntity(t[s-5],t[s-3]);break;case 21:r.addEntity(t[s-7],t[s-5]),r.setClass([t[s-7]],t[s-2]);break;case 22:r.addEntity(t[s-3],t[s-1]);break;case 23:r.addEntity(t[s-5],t[s-3]),r.setClass([t[s-5]],t[s]);break;case 24:case 25:this.$=t[s].trim(),r.setAccTitle(this.$);break;case 26:case 27:this.$=t[s].trim(),r.setAccDescription(this.$);break;case 32:r.setDirection("TB");break;case 33:r.setDirection("BT");break;case 34:r.setDirection("RL");break;case 35:r.setDirection("LR");break;case 36:this.$=t[s-3],r.addClass(t[s-2],t[s-1]);break;case 37:case 38:case 59:case 67:this.$=[t[s]];break;case 39:case 40:this.$=t[s-2].concat([t[s]]);break;case 41:this.$=t[s-2],r.setClass(t[s-1],t[s]);break;case 42:this.$=t[s-3],r.addCssStyles(t[s-2],t[s-1]);break;case 43:this.$=[t[s]];break;case 44:t[s-2].push(t[s]),this.$=t[s-2];break;case 46:this.$=t[s-1]+t[s];break;case 54:case 79:case 80:this.$=t[s].replace(/"/g,"");break;case 55:case 56:case 57:case 58:case 81:this.$=t[s];break;case 60:t[s].push(t[s-1]),this.$=t[s];break;case 61:this.$={type:t[s-1],name:t[s]};break;case 62:this.$={type:t[s-2],name:t[s-1],keys:t[s]};break;case 63:this.$={type:t[s-2],name:t[s-1],comment:t[s]};break;case 64:this.$={type:t[s-3],name:t[s-2],keys:t[s-1],comment:t[s]};break;case 65:case 66:case 69:this.$=t[s];break;case 68:t[s-2].push(t[s]),this.$=t[s-2];break;case 70:this.$=t[s].replace(/"/g,"");break;case 71:this.$={cardA:t[s],relType:t[s-1],cardB:t[s-2]};break;case 72:this.$=r.Cardinality.ZERO_OR_ONE;break;case 73:this.$=r.Cardinality.ZERO_OR_MORE;break;case 74:this.$=r.Cardinality.ONE_OR_MORE;break;case 75:this.$=r.Cardinality.ONLY_ONE;break;case 76:this.$=r.Cardinality.MD_PARENT;break;case 77:this.$=r.Identification.NON_IDENTIFYING;break;case 78:this.$=r.Identification.IDENTIFYING;break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},e(i,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,22:h,24:a,26:u,28:d,29:14,30:15,31:16,32:17,33:y,34:f,35:k,36:j,37:W,40:T,43:Q,44:M,48:D,50:R,51:S,52:C},e(i,[2,7],{1:[2,1]}),e(i,[2,3]),{9:30,11:9,22:h,24:a,26:u,28:d,29:14,30:15,31:16,32:17,33:y,34:f,35:k,36:j,37:W,40:T,43:Q,44:M,48:D,50:R,51:S,52:C},e(i,[2,5]),e(i,[2,6]),e(i,[2,16],{12:31,63:35,15:[1,32],17:[1,33],20:[1,34],65:nt,66:at,67:ot,68:ct,69:lt}),{23:[1,41]},{25:[1,42]},{27:[1,43]},e(i,[2,27]),e(i,[2,28]),e(i,[2,29]),e(i,[2,30]),e(i,[2,31]),e(B,[2,54]),e(B,[2,55]),e(B,[2,56]),e(B,[2,57]),e(B,[2,58]),e(i,[2,32]),e(i,[2,33]),e(i,[2,34]),e(i,[2,35]),{16:44,40:O,41:N},{16:47,40:O,41:N},{16:48,40:O,41:N},e(i,[2,4]),{11:49,40:T,48:D,50:R,51:S,52:C},{16:50,40:O,41:N},{18:51,19:[1,52],53:53,54:54,58:F},{11:56,40:T,48:D,50:R,51:S,52:C},{64:57,70:[1,58],71:[1,59]},e(Y,[2,72]),e(Y,[2,73]),e(Y,[2,74]),e(Y,[2,75]),e(Y,[2,76]),e(i,[2,24]),e(i,[2,25]),e(i,[2,26]),{13:P,38:60,41:z,42:A,45:62,46:63,48:G,49:K},e(X,[2,37]),e(X,[2,38]),{16:68,40:O,41:N,42:A},{13:P,38:69,41:z,42:A,45:62,46:63,48:G,49:K},{13:[1,70],15:[1,71]},e(i,[2,17],{63:35,12:72,17:[1,73],42:A,65:nt,66:at,67:ot,68:ct,69:lt}),{19:[1,74]},e(i,[2,14]),{18:75,19:[2,59],53:53,54:54,58:F},{55:76,58:[1,77]},{58:[2,65]},{21:[1,78]},{63:79,65:nt,66:at,67:ot,68:ct,69:lt},e(gt,[2,77]),e(gt,[2,78]),{6:bt,10:mt,39:80,42:kt,47:Et},{40:[1,85],41:[1,86]},e(Tt,[2,43],{46:87,13:P,41:z,48:G,49:K}),e(L,[2,45]),e(L,[2,50]),e(L,[2,51]),e(L,[2,52]),e(L,[2,53]),e(i,[2,41],{42:A}),{6:bt,10:mt,39:88,42:kt,47:Et},{14:89,40:H,50:q,72:J},{16:93,40:O,41:N},{11:94,40:T,48:D,50:R,51:S,52:C},{18:95,19:[1,96],53:53,54:54,58:F},e(i,[2,12]),{19:[2,60]},e(U,[2,61],{56:97,57:98,59:99,61:St,62:Ot}),e([19,58,61,62],[2,66]),e(i,[2,22],{15:[1,103],17:[1,102]}),e([40,48,50,51,52],[2,71]),e(i,[2,36]),{13:P,41:z,45:104,46:63,48:G,49:K},e(i,[2,47]),e(i,[2,48]),e(i,[2,49]),e(X,[2,39]),e(X,[2,40]),e(L,[2,46]),e(i,[2,42]),e(i,[2,8]),e(i,[2,79]),e(i,[2,80]),e(i,[2,81]),{13:[1,105],42:A},{13:[1,107],15:[1,106]},{19:[1,108]},e(i,[2,15]),e(U,[2,62],{57:109,60:[1,110],62:Ot}),e(U,[2,63]),e(ht,[2,67]),e(U,[2,70]),e(ht,[2,69]),{18:111,19:[1,112],53:53,54:54,58:F},{16:113,40:O,41:N},e(Tt,[2,44],{46:87,13:P,41:z,48:G,49:K}),{14:114,40:H,50:q,72:J},{16:115,40:O,41:N},{14:116,40:H,50:q,72:J},e(i,[2,13]),e(U,[2,64]),{59:117,61:St},{19:[1,118]},e(i,[2,20]),e(i,[2,23],{17:[1,119],42:A}),e(i,[2,11]),{13:[1,120],42:A},e(i,[2,10]),e(ht,[2,68]),e(i,[2,18]),{18:121,19:[1,122],53:53,54:54,58:F},{14:123,40:H,50:q,72:J},{19:[1,124]},e(i,[2,21]),e(i,[2,9]),e(i,[2,19])],defaultActions:{55:[2,65],75:[2,60]},parseError:l(function(n,o){if(o.recoverable)this.trace(n);else{var c=new Error(n);throw c.hash=o,c}},"parseError"),parse:l(function(n){var o=this,c=[0],r=[],p=[null],t=[],Z=this.table,s="",tt=0,Nt=0,Dt=2,At=1,Lt=t.slice.call(arguments,1),_=Object.create(this.lexer),x={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(x.yy[dt]=this.yy[dt]);_.setInput(n,x.yy),x.yy.lexer=_,x.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var pt=_.yylloc;t.push(pt);var wt=_.options&&_.options.ranges;typeof x.yy.parseError=="function"?this.parseError=x.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Vt(b){c.length=c.length-2*b,p.length=p.length-b,t.length=t.length-b}l(Vt,"popStack");function It(){var b;return b=r.pop()||_.lex()||At,typeof b!="number"&&(b instanceof Array&&(r=b,b=r.pop()),b=o.symbols_[b]||b),b}l(It,"lex");for(var g,v,m,ft,w={},et,E,Rt,st;;){if(v=c[c.length-1],this.defaultActions[v]?m=this.defaultActions[v]:((g===null||typeof g>"u")&&(g=It()),m=Z[v]&&Z[v][g]),typeof m>"u"||!m.length||!m[0]){var yt="";st=[];for(et in Z[v])this.terminals_[et]&&et>Dt&&st.push("'"+this.terminals_[et]+"'");_.showPosition?yt="Parse error on line "+(tt+1)+`:
2
2
  `+_.showPosition()+`
3
3
  Expecting `+st.join(", ")+", got '"+(this.terminals_[g]||g)+"'":yt="Parse error on line "+(tt+1)+": Unexpected "+(g==At?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(yt,{text:_.match,token:this.terminals_[g]||g,line:_.yylineno,loc:pt,expected:st})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+v+", token: "+g);switch(m[0]){case 1:c.push(g),p.push(_.yytext),t.push(_.yylloc),c.push(m[1]),g=null,Nt=_.yyleng,s=_.yytext,tt=_.yylineno,pt=_.yylloc;break;case 2:if(E=this.productions_[m[1]][1],w.$=p[p.length-E],w._$={first_line:t[t.length-(E||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(E||1)].first_column,last_column:t[t.length-1].last_column},wt&&(w._$.range=[t[t.length-(E||1)].range[0],t[t.length-1].range[1]]),ft=this.performAction.apply(w,[s,Nt,tt,x.yy,m[1],p,t].concat(Lt)),typeof ft<"u")return ft;E&&(c=c.slice(0,-1*E*2),p=p.slice(0,-1*E),t=t.slice(0,-1*E)),c.push(this.productions_[m[1]][0]),p.push(w.$),t.push(w._$),Rt=Z[c[c.length-2]][c[c.length-1]],c.push(Rt);break;case 3:return!0}}return!0},"parse")},vt=(function(){var I={EOF:1,parseError:l(function(o,c){if(this.yy.parser)this.yy.parser.parseError(o,c);else throw new Error(o)},"parseError"),setInput:l(function(n,o){return this.yy=o||this.yy||{},this._input=n,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:l(function(){var n=this._input[0];this.yytext+=n,this.yyleng++,this.offset++,this.match+=n,this.matched+=n;var o=n.match(/(?:\r\n?|\n).*/g);return o?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),n},"input"),unput:l(function(n){var o=n.length,c=n.split(/(?:\r\n?|\n)/g);this._input=n+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-o),this.offset-=o;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===r.length?this.yylloc.first_column:0)+r[r.length-c.length].length-c[0].length:this.yylloc.first_column-o},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-o]),this.yyleng=this.yytext.length,this},"unput"),more:l(function(){return this._more=!0,this},"more"),reject:l(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:l(function(n){this.unput(this.match.slice(n))},"less"),pastInput:l(function(){var n=this.matched.substr(0,this.matched.length-this.match.length);return(n.length>20?"...":"")+n.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:l(function(){var n=this.match;return n.length<20&&(n+=this._input.substr(0,20-n.length)),(n.substr(0,20)+(n.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:l(function(){var n=this.pastInput(),o=new Array(n.length+1).join("-");return n+this.upcomingInput()+`
@@ -1,4 +1,4 @@
1
- import{g as qe}from"./chunk-FMBD7UC4-Hk_smNYv.js";import{_ as b,n as Oe,l as Q,c as g1,o as He,r as Xe,u as ie,b as Qe,s as Je,p as Ze,a as $e,g as et,q as tt,j as st,t as it,J as rt,v as at,x as te,y as nt,z as ut,A as ot,B as lt}from"./mermaid.core-CDXPNs7a.js";import{c as ct}from"./chunk-ND2GUHAM-BmGCAojk.js";import{g as ht}from"./chunk-55IACEB6-BtVQ5XaZ.js";import{s as dt}from"./chunk-2J33WTMH-CPeIHyAX.js";import{s as se}from"./vendor-reactflow-BlIeoTu4.js";import{c as pt}from"./channel-CaxOu15c.js";import"./index-DWRJyaa3.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-xterm-BNq00GSj.js";import"./step-yuy0qJer.js";var ft="flowchart-",gt=class{constructor(){this.vertexCounter=0,this.config=g1(),this.diagramId="",this.vertices=new Map,this.edges=[],this.classes=new Map,this.subGraphs=[],this.subGraphLookup=new Map,this.tooltips=new Map,this.subCount=0,this.firstGraphFlag=!0,this.secCount=-1,this.posCrossRef=[],this.funs=[],this.setAccTitle=Qe,this.setAccDescription=Je,this.setDiagramTitle=Ze,this.getAccTitle=$e,this.getAccDescription=et,this.getDiagramTitle=tt,this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}static{b(this,"FlowDB")}sanitizeText(e){return st.sanitizeText(e,this.config)}sanitizeNodeLabelType(e){switch(e){case"markdown":case"string":case"text":return e;default:return"markdown"}}setDiagramId(e){this.diagramId=e}lookUpDomId(e){for(const i of this.vertices.values())if(i.id===e)return this.diagramId?`${this.diagramId}-${i.domId}`:i.domId;return this.diagramId?`${this.diagramId}-${e}`:e}addVertex(e,i,r,a,o,d,l={},f){if(!e||e.trim().length===0)return;let n;if(f!==void 0){let E;f.includes(`
1
+ import{g as qe}from"./chunk-FMBD7UC4-CFRUb-zD.js";import{_ as b,n as Oe,l as Q,c as g1,o as He,r as Xe,u as ie,b as Qe,s as Je,p as Ze,a as $e,g as et,q as tt,j as st,t as it,J as rt,v as at,x as te,y as nt,z as ut,A as ot,B as lt}from"./mermaid.core-Dk2mUPOq.js";import{c as ct}from"./chunk-ND2GUHAM-B87HFYS8.js";import{g as ht}from"./chunk-55IACEB6-CSTvCF5T.js";import{s as dt}from"./chunk-2J33WTMH-BL2WY0HN.js";import{s as se}from"./vendor-reactflow-BlIeoTu4.js";import{c as pt}from"./channel-BoE8DeM4.js";import"./index-CtYRoouR.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-xterm-BNq00GSj.js";import"./step-yuy0qJer.js";var ft="flowchart-",gt=class{constructor(){this.vertexCounter=0,this.config=g1(),this.diagramId="",this.vertices=new Map,this.edges=[],this.classes=new Map,this.subGraphs=[],this.subGraphLookup=new Map,this.tooltips=new Map,this.subCount=0,this.firstGraphFlag=!0,this.secCount=-1,this.posCrossRef=[],this.funs=[],this.setAccTitle=Qe,this.setAccDescription=Je,this.setDiagramTitle=Ze,this.getAccTitle=$e,this.getAccDescription=et,this.getDiagramTitle=tt,this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}static{b(this,"FlowDB")}sanitizeText(e){return st.sanitizeText(e,this.config)}sanitizeNodeLabelType(e){switch(e){case"markdown":case"string":case"text":return e;default:return"markdown"}}setDiagramId(e){this.diagramId=e}lookUpDomId(e){for(const i of this.vertices.values())if(i.id===e)return this.diagramId?`${this.diagramId}-${i.domId}`:i.domId;return this.diagramId?`${this.diagramId}-${e}`:e}addVertex(e,i,r,a,o,d,l={},f){if(!e||e.trim().length===0)return;let n;if(f!==void 0){let E;f.includes(`
2
2
  `)?E=f+`
3
3
  `:E=`{
4
4
  `+f+`
@@ -1,4 +1,4 @@
1
- import{c as a}from"./index-DWRJyaa3.js";/**
1
+ import{c as a}from"./index-CtYRoouR.js";/**
2
2
  * @license lucide-react v1.7.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.