@runfusion/fusion 0.78.0-beta.2 → 0.78.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.
- package/dist/bin.js +1150 -285
- package/dist/child-process-worker.js +760 -203
- package/dist/client/.vite/manifest.json +253 -253
- package/dist/client/assets/{AgentDetailView-4tEdPTG2.js → AgentDetailView-DAtUBPar.js} +1 -1
- package/dist/client/assets/{AgentPermissionPolicyEditor-DIGxjQFE.js → AgentPermissionPolicyEditor-Cth5Qyvz.js} +1 -1
- package/dist/client/assets/{AgentsView-BXFYQAPe.js → AgentsView-D6odi29-.js} +3 -3
- package/dist/client/assets/{CommandCenter-vknNrxBN.js → CommandCenter-DUlZFMvJ.js} +1 -1
- package/dist/client/assets/{DevServerView-COFb49kW.js → DevServerView-GD1-vwId.js} +1 -1
- package/dist/client/assets/{DirectoryPicker-C-wYRUc5.js → DirectoryPicker-De3Q7_zu.js} +1 -1
- package/dist/client/assets/{DocumentsView-B-uzhK3C.js → DocumentsView-BMYBV8DV.js} +1 -1
- package/dist/client/assets/{EvalsView-BcOgXvPe.js → EvalsView-CYfclysr.js} +1 -1
- package/dist/client/assets/{ExperimentalAgentOnboardingModal-B0zF29ER.js → ExperimentalAgentOnboardingModal-B1dQuReY.js} +1 -1
- package/dist/client/assets/{GoalsView--Cj2se_t.js → GoalsView-BHxjegdt.js} +1 -1
- package/dist/client/assets/{InsightsView-qMoM8oFe.js → InsightsView-DK0EP68R.js} +1 -1
- package/dist/client/assets/{MemoryView-Ca0Y2fYg.js → MemoryView-O8vfqipX.js} +1 -1
- package/dist/client/assets/{PatchnodeView--E259o36.js → PatchnodeView-WM5ZlnTS.js} +1 -1
- package/dist/client/assets/{PiExtensionsManager-DKKLn5YE.js → PiExtensionsManager-BrTit_vk.js} +1 -1
- package/dist/client/assets/{PluginManager-e0Rnv7RI.js → PluginManager-DBUm9Q30.js} +1 -1
- package/dist/client/assets/{PullRequestView-BFe77u-d.js → PullRequestView-DW9EqNT3.js} +1 -1
- package/dist/client/assets/{ReportModal-DvyDEj8D.js → ReportModal-Cv7Lxy1u.js} +1 -1
- package/dist/client/assets/{ResearchView-DROedGZR.js → ResearchView-DDGbBXlh.js} +1 -1
- package/dist/client/assets/{SecretsView-DTrrJEt9.js → SecretsView-C2K-n5_X.js} +1 -1
- package/dist/client/assets/{SettingsModal-CSbSmwxZ.js → SettingsModal-C7npF9nB.js} +3 -3
- package/dist/client/assets/{SettingsModal-DnTX4rMK.js → SettingsModal-Crpg0GmF.js} +1 -1
- package/dist/client/assets/{SettingsTextareaRow-y3gQ4u_G.js → SettingsTextareaRow-B7FIDTtF.js} +1 -1
- package/dist/client/assets/{SetupWizardModal-ClAbtrU0.js → SetupWizardModal-CBWFrde9.js} +2 -2
- package/dist/client/assets/{SkillsView-BpEJE16a.js → SkillsView-B1l4qkYj.js} +1 -1
- package/dist/client/assets/{WorkflowNodeEditor-CSbhpY5K.js → WorkflowNodeEditor-e122mQ0Z.js} +1 -1
- package/dist/client/assets/{agent-import-generation-BT0ZBGQA.js → agent-import-generation-CX_NVRPC.js} +1 -1
- package/dist/client/assets/{agentsOrgChartLayout-C_tkb_Pq.js → agentsOrgChartLayout-BAhAecHd.js} +1 -1
- package/dist/client/assets/{app-C8kudFlj.js → app-BO1iuWOt.js} +1 -1
- package/dist/client/assets/{app-B0hINWeH.js → app-BRFfR55q.js} +1 -1
- package/dist/client/assets/{app-BSxI9vvS.js → app-BW03hpJV.js} +3 -3
- package/dist/client/assets/{app-C8jogXBu.js → app-B_skBURN.js} +1 -1
- package/dist/client/assets/{app-hEhR2PdL.js → app-C0JL4IcI.js} +3 -3
- package/dist/client/assets/{app-BeDYumHl.js → app-C5uZ_9kI.js} +3 -3
- package/dist/client/assets/app-DxFiSzSJ.js +5 -0
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-BfPYqDRS.js → architectureDiagram-3BPJPVTR-BOmFDW7M.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-BEcaGTmc.js → blockDiagram-GPEHLZMM-D7CnZ9-e.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-BX1xrinF.js → c4Diagram-AAUBKEIU-CQZw8PeP.js} +1 -1
- package/dist/client/assets/channel-Drj7VQBu.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-OksyoE_c.js → chunk-2J33WTMH-DBS2o2AZ.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-C5ivKrB5.js → chunk-4BX2VUAB-CFKEnTmJ.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-C7vkVq-W.js → chunk-55IACEB6-DpjYRScs.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-c-khhz21.js → chunk-727SXJPM-Db7lQvPG.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-DwxYJXXQ.js → chunk-AQP2D5EJ-rSGEvDdj.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-BKhdu4up.js → chunk-FMBD7UC4-Cdi9zNME.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-okVZM2p2.js → chunk-ND2GUHAM-D_3BQZ27.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-DDso7rM3.js → chunk-QZHKN3VN-DnVoTnz9.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-DGxwjUYU.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DGxwjUYU.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-CNT9ltBk.js → cose-bilkent-S5V4N54A-HQFw9frh.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-C5a30-g5.js → dagre-BM42HDAG-BdHp0sc2.js} +1 -1
- package/dist/client/assets/{dashboard-view-Brqe-SVE.js → dashboard-view-C3vvo4zP.js} +1 -1
- package/dist/client/assets/{dashboard-view-DxpkE7dL.js → dashboard-view-CoxDPI4m.js} +1 -1
- package/dist/client/assets/{dashboard-view-WFOf0Kpl.js → dashboard-view-DaqL1Ufr.js} +1 -1
- package/dist/client/assets/{dashboard-view-DyAQ_agZ.js → dashboard-view-mWhkEiwE.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-DG7EyUNe.js → diagram-2AECGRRQ-BDu9AETT.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-DE7lhEna.js → diagram-5GNKFQAL-2qzqfWTz.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-DFtJNqNF.js → diagram-KO2AKTUF-DYa-tplS.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-DUAuxZQD.js → diagram-LMA3HP47-ChwcQccK.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-DCKETcWy.js → diagram-OG6HWLK6-DoGKft5E.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-pa0blyAD.js → erDiagram-TEJ5UH35-5dsSgUXk.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-D7Veqs1W.js → flowDiagram-I6XJVG4X-BOHB4RzL.js} +1 -1
- package/dist/client/assets/{folder-open-CojKP0zy.js → folder-open-BQcY8jvq.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-CsqBMy2D.js → ganttDiagram-6RSMTGT7-BD3aivUG.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-BRrVKZJo.js → gitGraphDiagram-PVQCEYII-HBZEAECF.js} +1 -1
- package/dist/client/assets/{index-Dliz9s5K.css → index-26HUNwwJ.css} +1 -1
- package/dist/client/assets/{index-Cv_ouAgx.js → index-QU8sENvc.js} +298 -298
- package/dist/client/assets/{infoDiagram-5YYISTIA-o2GEmmb2.js → infoDiagram-5YYISTIA-d7hsqM0V.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-k1p6nWtj.js → ishikawaDiagram-YF4QCWOH-k4Dnhc_y.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-B43V37S0.js → journeyDiagram-JHISSGLW-Dh3yqZPQ.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-HRMYyAQB.js → kanban-definition-UN3LZRKU-BYqpe7Ju.js} +1 -1
- package/dist/client/assets/{mermaid.core-6vt3zKxL.js → mermaid.core-D5Ccw5tQ.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-D3VJuvfj.js → mindmap-definition-RKZ34NQL-D64P3Mc4.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-D0RjFhk9.js → pieDiagram-4H26LBE5-CtMfKnlZ.js} +1 -1
- package/dist/client/assets/{puzzle-D3dJEsTf.js → puzzle-D4y4g-nb.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-DHaEqU3Q.js → quadrantDiagram-W4KKPZXB-B5gSMr9M.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-DnfFCRP0.js → requirementDiagram-4Y6WPE33-DKtBfWDi.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-D6GCuiqV.js → sankeyDiagram-5OEKKPKP-BcWeBcNk.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-DaGYYzxS.js → sequenceDiagram-3UESZ5HK-Crp7Mc0M.js} +1 -1
- package/dist/client/assets/{standing-instructions-template-CN8Kp4Hq.js → standing-instructions-template-lD5Vcanq.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-ek4Wb8ai.js → stateDiagram-AJRCARHV-CA5FEPYe.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-EPn8Vq7v.js → stateDiagram-v2-BHNVJYJU-Bo75sO6t.js} +1 -1
- package/dist/client/assets/{timeline-definition-PNZ67QCA-CyAwCbnE.js → timeline-definition-PNZ67QCA-Dmr4NeTD.js} +1 -1
- package/dist/client/assets/{upload-BhpNL3xI.js → upload-CzJ1o8Px.js} +1 -1
- package/dist/client/assets/{users-Bka1cIkR.js → users-BMnytPKO.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-Bd8-8r3a.js → vennDiagram-CIIHVFJN-DfbBSNgT.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-nNvWflNF.js → wardley-L42UT6IY-Wxq1L5VU.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-Dy7XrvPx.js → wardleyDiagram-YWT4CUSO-D6HnIS8j.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-38VTptR4.js → xychartDiagram-2RQKCTM6-5MfFlu30.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/client/version.json +1 -1
- package/dist/droid-cli/package.json +1 -1
- package/dist/extension.js +844 -264
- package/dist/pi-claude-cli/package.json +1 -1
- package/dist/plugin-sdk/index.d.ts +39 -11
- package/dist/plugin-sdk/index.js +2 -2
- package/dist/plugins/fusion-plugin-acp-runtime/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-claude-runtime/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-claude-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-cli-printing-press/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
- package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
- package/dist/plugins/fusion-plugin-cursor-runtime/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-dependency-graph/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
- package/dist/plugins/fusion-plugin-droid-runtime/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-grok-runtime/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-grok-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-hermes-runtime/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-linear-import/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-linear-import/package.json +1 -1
- package/dist/plugins/fusion-plugin-omp-runtime/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-omp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-openclaw-runtime/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-paperclip-runtime/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-quality/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-quality/package.json +1 -1
- package/dist/plugins/fusion-plugin-reports/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-reports/package.json +1 -1
- package/dist/plugins/fusion-plugin-roadmap/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
- package/dist/plugins/fusion-plugin-todos/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-todos/package.json +1 -1
- package/dist/plugins/fusion-plugin-whatsapp-chat/bundled.js +2 -2
- package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
- package/package.json +1 -1
- package/dist/client/assets/app-DZ5j1n3j.js +0 -5
- package/dist/client/assets/channel-BjDq20V4.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-B114c_Fi.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-B114c_Fi.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,j as I}from"./vendor-react-SZ_qB27O.js";import{dq as At,dr as vt,ds as Xt,dt as Yt}from"./index-Cv_ouAgx.js";import{Z as _t,a as jt,M as $t,R as Gt}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,Wt=24;function Ft({taskId:n,position:s,scale:r,canDrag:i,onPositionChange:p,onDragStateChange:a,onDragEnd:k,onDoubleTap:b}){const[D,H]=e.useState(!1),M=e.useRef(null),C=e.useRef(s),v=e.useRef(!1),o=e.useRef(null),c=e.useRef(!1);C.current=s,c.current=D;const d=e.useCallback(()=>{o.current=null},[]),g=e.useCallback(l=>{M.current=null,H(!1),c.current=!1,l&&(a?.(!1),k?.(),v.current=!0,d())},[k,a,d]),Y=e.useCallback(l=>{if(!l.isPrimary)return;if(l.defaultPrevented){d();return}const f=Date.now();o.current&&f-o.current.timeStamp>wt&&d(),i&&l.stopPropagation();const N=l.currentTarget;i&&typeof N.setPointerCapture=="function"&&N.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}},[i,d]),O=e.useCallback(l=>{const f=M.current;if(!f||f.pointerId!==l.pointerId)return;i&&l.stopPropagation();const N=l.clientX-f.startPointer.x,E=l.clientY-f.startPointer.y,J=Math.hypot(N,E);if(J>=xt&&(f.movedBeyondThreshold=!0),!i){f.movedBeyondThreshold&&d();return}if(!c.current&&J>=xt&&(H(!0),c.current=!0,a?.(!0),d()),J<xt)return;const U=r>0?r:1;p(n,{x:f.startPosition.x+N/U,y:f.startPosition.y+E/U})},[i,a,p,d,r,n]),L=e.useCallback((l,f)=>{if(!b||f.defaultPrevented||f.movedBeyondThreshold)return Date.now()-(o.current?.timeStamp??0)>wt&&d(),!1;if(f.pointerType==="mouse")return d(),!1;const N={timeStamp:Date.now(),point:{x:f.startPointer.x,y:f.startPointer.y}},E=o.current;return!E||N.timeStamp-E.timeStamp>wt||Math.hypot(N.point.x-E.point.x,N.point.y-E.point.y)>Wt?(o.current=N,!1):(v.current=!0,d(),b(),!0)},[b,d]),B=e.useCallback(l=>{const f=M.current;if(!f||f.pointerId!==l.pointerId)return;i&&l.stopPropagation(),i&&typeof l.currentTarget.hasPointerCapture=="function"&&l.currentTarget.hasPointerCapture(l.pointerId)&&typeof l.currentTarget.releasePointerCapture=="function"&&l.currentTarget.releasePointerCapture(l.pointerId);const N=c.current;!N&&L(l,f)&&l.preventDefault(),g(N)},[i,g,L]),X=e.useCallback(l=>{const f=M.current;!f||f.pointerId!==l.pointerId||(i&&l.stopPropagation(),i&&typeof l.currentTarget.hasPointerCapture=="function"&&l.currentTarget.hasPointerCapture(l.pointerId)&&typeof l.currentTarget.releasePointerCapture=="function"&&l.currentTarget.releasePointerCapture(l.pointerId),d(),g(c.current))},[i,g,d]),G=e.useCallback(l=>{v.current&&(v.current=!1,l.preventDefault(),l.stopPropagation())},[]);return e.useMemo(()=>({isDragging:D,onPointerDown:Y,onPointerMove:O,onPointerUp:B,onPointerCancel:X,onClickCapture:G}),[D,G,X,Y,O,B])}const Lt=new Set(["planning","researching","executing","finalizing","merging","merging-fix"]);function Ut(n){return n?n.charAt(0).toUpperCase()+n.slice(1):"Executing"}function Bt({taskColumnFlags:n,style:s,position:r,scale:i,isSelected:p=!1,isHighlighted:a=!1,isDimmed:k=!1,onMouseEnter:b,onMouseLeave:D,onClick:H,onNodePositionChange:M,onNodeDragStateChange:C,onNodeDragEnd:v,...o}){const{task:c,globalPaused:d,onOpenDetail:g}=o,Y=c.status==="failed",O=c.paused===!0,L=c.column==="in-progress"||Lt.has(c.status),B=c.status==="awaiting-approval"&&!L,X=!d&&!Y&&!O&&!B&&L,G=typeof c.currentStep=="number"&&c.currentStep>=0&&Array.isArray(c.steps)&&c.currentStep<c.steps.length,l=c.column==="in-review",f=Ft({taskId:c.id,position:r,scale:i,canDrag:p,onPositionChange:M,onDragStateChange:C,onDragEnd:v,onDoubleTap:()=>g(c)});return I.jsxs("div",{className:`graph-task-node${p?" graph-node--draggable graph-task-node--selected":""}${f.isDragging?" graph-node--dragging":""}${a?" graph-task-node--highlighted graph-node--highlighted":""}${k?" graph-task-node--dimmed graph-node--dimmed":""}${X?" graph-task-node--active":""}${l?" graph-task-node--in-review":""}`,style:s,draggable:!1,"data-testid":`graph-task-node-${c.id}`,"data-current-step":X&&G?String(c.currentStep):void 0,onMouseEnter:b,onMouseLeave:D,onClick:H,onDoubleClick:N=>{N.defaultPrevented||g(c)},onClickCapture:f.onClickCapture,onPointerDown:f.onPointerDown,onPointerMove:f.onPointerMove,onPointerUp:f.onPointerUp,onPointerCancel:f.onPointerCancel,children:[X?I.jsx("div",{className:"graph-task-active-indicator",children:I.jsx("span",{className:"graph-task-active-indicator-text",children:Ut(c.status)})}):null,I.jsx(At,{...o,taskColumnFlags:n,onOpenDetail:()=>{}})]})}function Zt({zoom:n,onZoomIn:s,onZoomOut:r,onFitToGraph:i,onResetView:p}){return I.jsxs("div",{className:"graph-toolbar","data-testid":"graph-toolbar",children:[I.jsx("button",{className:"btn btn-icon",title:"Zoom in (Ctrl+=)","aria-label":"Zoom in",onClick:s,children:I.jsx(_t,{size:16})}),I.jsx("button",{className:"btn btn-icon",title:"Zoom out (Ctrl+-)","aria-label":"Zoom out",onClick:r,children:I.jsx(jt,{size:16})}),I.jsxs("div",{className:"graph-toolbar__zoom-label","aria-live":"polite",children:[Math.round(n*100),"%"]}),I.jsx("button",{className:"btn btn-icon",title:"Fit to graph (Ctrl+Shift+F)","aria-label":"Fit to graph",onClick:i,children:I.jsx($t,{size:16})}),I.jsx("button",{className:"btn btn-icon",title:"Reset view (Ctrl+0)","aria-label":"Reset view",onClick:p,children:I.jsx(Gt,{size:16})})]})}const Kt=280,Vt=100;function qt({edges:n,positions:s,nodeWidth:r=Kt,nodeHeight:i=Vt,nodeHeights:p,highlightedEdgeIds:a}){const k=!!(a&&a.size>0);return I.jsxs("svg",{className:"dependency-graph-edges","aria-hidden":"true",children:[I.jsx("defs",{children:I.jsx("marker",{id:"dependency-graph-arrowhead",markerWidth:"10",markerHeight:"7",refX:"10",refY:"3.5",orient:"auto",markerUnits:"strokeWidth",children:I.jsx("path",{d:"M 0 0 L 10 3.5 L 0 7 z",style:{fill:"var(--border)"}})})}),n.map(b=>{const D=s.get(b.source),H=s.get(b.target);if(!D||!H)return null;const M=`${b.source}->${b.target}`,C=k&&(a?.has(M)??!1),v=D.x+r/2,o=D.y+(p?.get(b.source)??i),c=H.x+r/2,d=H.y,g=o+(d-o)/2;return I.jsx("path",{"data-testid":"dependency-edge","data-edge-id":M,className:`dependency-graph-edge${C?" graph-edge--highlighted":""}${k&&!C?" graph-edge--dimmed":""}`,d:`M ${v} ${o} C ${v} ${g}, ${c} ${g}, ${c} ${d}`,fill:"none",markerEnd:"url(#dependency-graph-arrowhead)",style:{opacity:k&&!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 Jt=new Set(["done","archived"]);function Qt(n){return n.filter(s=>typeof s.column=="string"&&s.column.length>0&&!Jt.has(s.column))}const te={nodeWidth:280,nodeHeight:100,horizontalGap:40,verticalGap:80,orientation:"vertical"};function kt(n,s){const r={...te,...s},i=n.nodes.map(o=>o.task.id);if(i.length===0)return new Map;const p=new Map,a=new Map;for(const o of i)a.set(o,0),p.set(o,[]);for(const o of n.edges)!a.has(o.source)||!a.has(o.target)||(p.get(o.target)?.push(o.source),a.set(o.source,(a.get(o.source)??0)+1));const k=i.filter(o=>(a.get(o)??0)===0),b=[];for(;k.length>0;){const o=k.shift();b.push(o);for(const c of p.get(o)??[]){const d=(a.get(c)??0)-1;a.set(c,d),d===0&&k.push(c)}}for(const o of i)b.includes(o)||b.push(o);const D=new Map;for(const o of b){const c=n.edges.filter(g=>g.source===o).map(g=>g.target);let d=0;for(const g of c)d=Math.max(d,(D.get(g)??0)+1);D.set(o,d)}const H=new Map;for(const o of i){const c=D.get(o)??0,d=H.get(c)??[];d.push(o),H.set(c,d)}const M=new Map,C=Array.from(H.keys()).sort((o,c)=>o-c),v=new Map;if(r.orientation==="vertical"){let o=0;for(const c of C){v.set(c,o);const d=H.get(c)??[],g=Math.max(r.nodeHeight,...d.map(Y=>r.measuredHeights?.get(Y)??r.nodeHeight));o+=g+r.verticalGap}}for(const o of C){const c=H.get(o)??[];if(c.sort(),r.orientation==="horizontal"){const L=-(c.reduce((G,l)=>G+(r.measuredHeights?.get(l)??r.nodeHeight),0)+Math.max(0,c.length-1)*r.verticalGap)/2,B=o*(r.nodeWidth+r.horizontalGap);let X=L;for(const G of c)M.set(G,{x:B,y:X}),X+=(r.measuredHeights?.get(G)??r.nodeHeight)+r.verticalGap;continue}const Y=-(c.length*r.nodeWidth+Math.max(0,c.length-1)*r.horizontalGap)/2;c.forEach((O,L)=>{const B=Y+L*(r.nodeWidth+r.horizontalGap),X=v.get(o)??o*(r.nodeHeight+r.verticalGap);M.set(O,{x:B,y:X})})}return M}function ee(n){return e.useMemo(()=>{const s=n.map(p=>({task:p})),r=new Set(n.map(p=>p.id)),i=n.flatMap(p=>(p.dependencies??[]).filter(a=>r.has(a)).map(a=>({source:p.id,target:a})));return{nodes:s,edges:i}},[n])}const ut=.1,lt=3,Rt=40,ne=200;function nt(n,s,r){return Math.min(r,Math.max(s,n))}function re(n){if(!(n instanceof HTMLElement))return!1;const s=n.tagName.toLowerCase();return n.isContentEditable||s==="input"||s==="textarea"||s==="select"}function oe(){const[n,s]=e.useState({x:0,y:0}),[r,i]=e.useState(1),[p,a]=e.useState(!1),k=e.useRef(n),b=e.useRef(r),D=e.useRef(null),H=e.useRef(null),M=e.useRef(new Map),C=e.useRef(null),v=e.useRef({minX:0,minY:0,maxX:0,maxY:0});e.useEffect(()=>{k.current=n},[n]),e.useEffect(()=>{b.current=r},[r]),e.useEffect(()=>()=>{D.current!==null&&window.clearTimeout(D.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(u=>{if(!u){D.current!==null&&(window.clearTimeout(D.current),D.current=null),a(!1);return}a(!0),D.current!==null&&window.clearTimeout(D.current),D.current=window.setTimeout(()=>{a(!1),D.current=null},ne)},[]),g=e.useCallback((u,m,y,T=b.current)=>{const P=v.current;if(P.maxX<=P.minX||P.maxY<=P.minY)return{x:nt(u.x,-m,m),y:nt(u.y,-y,y)};const W=m-P.maxX*T,A=-P.minX*T,_=y-P.maxY*T,K=-P.minY*T,ot=W>A?(W+A)/2:nt(u.x,W,A),$=_>K?(_+K)/2:nt(u.y,_,K);return{x:ot,y:$}},[]),Y=e.useCallback((u,m,y,T)=>{const P=b.current,W=k.current,A=nt(u,ut,lt),_=A/P,K=g({x:m.x-(m.x-W.x)*_,y:m.y-(m.y-W.y)*_},y,T,A);i(A),s(K)},[g]),O=e.useCallback((u,m,y,T)=>{d(!1);const P=T??{x:m/2,y:y/2};Y(b.current*u,P,m,y)},[d,Y]),L=e.useCallback((u,m)=>{if(u&&m){O(1.2,u,m);return}i(y=>nt(y+.1,ut,lt))},[O]),B=e.useCallback((u,m)=>{if(u&&m){O(1/1.2,u,m);return}i(y=>nt(y-.1,ut,lt))},[O]),X=e.useCallback(()=>{d(!0),s({x:0,y:0}),i(1)},[d]),G=e.useCallback((u,m,y,T)=>{if(d(!0),u.size===0){s({x:0,y:0}),i(1);return}const P=T?.nodeWidth??280,W=T?.nodeHeight??100,A=Array.from(u.entries()),_=Math.min(...A.map(([,et])=>et.x)),K=Math.min(...A.map(([,et])=>et.y)),ot=Math.max(...A.map(([,et])=>et.x+P)),$=Math.max(...A.map(([et,mt])=>mt.y+(T?.measuredHeights?.get(et)??W))),Q=Math.max(1,ot-_),V=Math.max(1,$-K),ct=Math.max(1,m-Rt*2),ft=Math.max(1,y-Rt*2),tt=nt(Math.min(ct/Q,ft/V),ut,lt),pt=(m-Q*tt)/2-_*tt,ht=(y-V*tt)/2-K*tt;i(tt),s(g({x:pt,y:ht},m,y,tt))},[g,d]),l=e.useCallback((u,m)=>{if(M.current.set(u,m),M.current.size===2){const[y,T]=Array.from(M.current.values());C.current={distance:Math.hypot(y.x-T.x,y.y-T.y),zoom:b.current,pan:k.current,midpoint:{x:(y.x+T.x)/2,y:(y.y+T.y)/2}},H.current=null;return}H.current={start:m,panStart:k.current}},[]),f=e.useCallback((u,m,y,T)=>{if(M.current.has(u)&&M.current.set(u,m),M.current.size===2&&C.current){d(!1);const[A,_]=Array.from(M.current.values()),ot=Math.hypot(A.x-_.x,A.y-_.y)/Math.max(1,C.current.distance),$={x:(A.x+_.x)/2,y:(A.y+_.y)/2},Q=nt(C.current.zoom*ot,ut,lt),V=Q/C.current.zoom,ct=g({x:$.x-(C.current.midpoint.x-C.current.pan.x)*V,y:$.y-(C.current.midpoint.y-C.current.pan.y)*V},y,T);i(Q),s(ct);return}const P=H.current;if(!P)return;d(!1);const W={x:P.panStart.x+(m.x-P.start.x),y:P.panStart.y+(m.y-P.start.y)};s(g(W,y,T))},[g,d]),N=e.useCallback(u=>{if(M.current.delete(u),M.current.size<2&&(C.current=null),M.current.size===1){const[m]=Array.from(M.current.values());H.current={start:m,panStart:k.current};return}M.current.size===0&&(H.current=null)},[]),E=e.useCallback((u,m,y,T)=>{d(!1);const P={x:k.current.x-u,y:k.current.y-m};s(g(P,y,T))},[g,d]),J=e.useCallback((u,m,y,T)=>{const P=u<0?1.1:.9;d(!1),Y(b.current*P,m,y,T)},[d,Y]),U=e.useCallback(u=>{v.current=u},[]),Z=e.useCallback((u,m,y,T,P)=>{if(re(u.target))return;const W=u.metaKey||u.ctrlKey;if(u.key==="Escape"){u.preventDefault(),X();return}if(W){if(u.key==="="||u.key==="+"){u.preventDefault(),O(1.2,m,y);return}if(u.key==="-"){u.preventDefault(),O(1/1.2,m,y);return}if(u.key==="0"){u.preventDefault(),X();return}(u.key==="f"||u.key==="F")&&u.shiftKey&&(u.preventDefault(),G(T,m,y,P))}},[G,X,O]);return{pan:n,zoom:r,zoomPercent:c,transform:o,transitioning:p,zoomIn:L,zoomOut:B,resetView:X,fitToGraph:G,setAnimate:d,onPointerDown:l,onPointerMove:f,onPointerUp:N,onWheelPan:E,onWheelZoom:J,handleKeyDown:Z,setGraphBounds:U}}function se(n){const{upstreamMap:s,downstreamMap:r}=e.useMemo(()=>{const p=new Map,a=new Map;for(const k of n)p.set(k.id,new Set(k.dependencies??[])),a.has(k.id)||a.set(k.id,new Set);for(const k of n)for(const b of k.dependencies??[])a.has(b)||a.set(b,new Set),a.get(b)?.add(k.id);return{upstreamMap:p,downstreamMap:a}},[n]);return{getChain:e.useCallback(p=>{if(!s.has(p)&&!r.has(p))return new Set;const a=new Set([p]),k=(b,D)=>{const H=[b],M=new Set([b]);for(;H.length>0;){const C=H.shift();if(!C)continue;const v=D.get(C);if(v)for(const o of v)M.has(o)||(M.add(o),a.add(o),H.push(o))}};return k(p,s),k(p,r),a},[r,s])}}const Mt="fusion-plugin-dependency-graph:positions";function dt(n){if(!n||typeof n!="object")return!1;const s=n;return typeof s.x=="number"&&Number.isFinite(s.x)&&typeof s.y=="number"&&Number.isFinite(s.y)}function ie(n){const s=vt(Mt,n);if(!s)return{};try{const r=JSON.parse(s);if(!r||typeof r!="object")return{};const i={};for(const[p,a]of Object.entries(r))dt(a)&&(i[p]=a);return i}catch{return{}}}function ae(n,s,r){const i={};for(const[p,a]of Object.entries(n))s.has(p)&&dt(a)&&(i[p]=a);Xt(Mt,JSON.stringify(i),r)}function ce(n){Yt(Mt,n)}function ue(n,s,r){const i={};for(const[p,a]of Object.entries(n))r.has(p)&&dt(a)&&(i[p]=a);for(const[p,a]of Object.entries(s))r.has(p)&&dt(a)&&(i[p]=a);return i}function le(n,s){const r={};for(const[i,p]of Object.entries(n))s.has(i)&&(r[i]=p);return r}function de({projectId:n,visibleTaskIds:s}){const[r,i]=e.useState(null);e.useEffect(()=>{i(ie(n))},[n]);const p=e.useCallback(k=>{ae(k,s,n),i(le(k,s))},[n,s]),a=e.useCallback(()=>{ce(n),i(null)},[n]);return{savedPositions:r,persistPositions:p,clearSavedPositions:a}}const at=280,rt=100,fe=768,Dt=4;function pe({tasks:n,projectId:s,columnFlagsByTaskId:r,onOpenTaskDetail:i,onOpenDetail:p,addToast:a,globalPaused:k,onUpdateTask:b,onArchiveTask:D,onUnarchiveTask:H,onDeleteTask:M,onRetryTask:C,onOpenDetailWithTab:v,onOpenMission:o,onMoveTask:c,lastFetchTimeMs:d}){const g=e.useRef(null),Y=e.useRef(null),O=e.useRef(!1),L=e.useRef(new Map),[B,X]=e.useState(null),[G,l]=e.useState(null),[f,N]=e.useState({width:0,height:0}),[E,J]=e.useState(new Map),U=e.useMemo(()=>Qt(n),[n]),Z=ee(U),{getChain:u}=se(U),m=B??G,y=e.useMemo(()=>m?u(m):new Set,[m,u]),T=e.useMemo(()=>{const t=f.width||(typeof window<"u"?window.innerWidth:0);return(f.height||(typeof window<"u"?window.innerHeight:0))>t||t<fe?"horizontal":"vertical"},[f.height,f.width]),P=e.useMemo(()=>({nodeWidth:at,nodeHeight:rt,horizontalGap:40,verticalGap:80,orientation:T,measuredHeights:E}),[E,T]),W=e.useMemo(()=>kt(Z,P),[Z,P]),A=e.useMemo(()=>new Set(U.map(t=>t.id)),[U]),{savedPositions:_,persistPositions:K,clearSavedPositions:ot}=de({projectId:s,visibleTaskIds:A}),[$,Q]=e.useState(W),[V,ct]=e.useState(!1);e.useEffect(()=>{const t={};for(const[x,S]of W.entries())t[x]=S;const h=_?ue(t,_,A):t;Q(new Map(Object.entries(h)))},[W,_,A]),e.useEffect(()=>{const t=g.current;if(!t)return;const h=(S,z)=>{N(w=>w.width===S&&w.height===z?w:{width:S,height:z})};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 x=new ResizeObserver(S=>{const z=S[0];z&&h(z.contentRect.width,z.contentRect.height)});return x.observe(t),()=>x.disconnect()},[]),e.useEffect(()=>{const t=g.current;if(!t)return;const h=new Set(Z.nodes.map(w=>w.task.id)),x=new Map;for(const w of h){const R=t.querySelector(`[data-testid="graph-task-node-${w}"]`);R&&x.set(w,R)}L.current=x,J(w=>{let R=!1;const j=new Map;for(const[q,it]of w.entries()){if(!h.has(q)){R=!0;continue}j.set(q,it)}return R?j:w});const S=(w,R)=>{J(j=>{const q=j.get(w);if(q!==void 0&&Math.abs(q-R)<1)return j;const it=new Map(j);return it.set(w,R),it})};for(const[w,R]of x.entries())S(w,R.offsetHeight||rt);if(typeof ResizeObserver>"u")return;const z=new ResizeObserver(w=>{for(const R of w){const j=R.target,q=Array.from(x.entries()).find(([,it])=>it===j)?.[0];q&&S(q,j.offsetHeight||rt)}});for(const w of x.values())z.observe(w);return()=>z.disconnect()},[Z.nodes,$,f.height,f.width]);const{transform:ft,zoom:tt,transitioning:pt,zoomIn:ht,zoomOut:et,resetView:mt,fitToGraph:gt,onPointerDown:It,onPointerMove:Ht,onPointerUp:bt,onWheelPan:zt,onWheelZoom:Et,handleKeyDown:Ot,setGraphBounds:Pt}=oe(),F=e.useMemo(()=>{const t=Array.from($.values());if(t.length===0)return{minX:0,minY:0,maxX:0,maxY:0,width:0,height:0};const h=Math.min(...t.map(w=>w.x)),x=Math.min(...t.map(w=>w.y)),S=Math.max(...t.map(w=>w.x+at)),z=Math.max(...Array.from($.entries()).map(([w,R])=>R.y+(E.get(w)??rt)));return{minX:h,minY:x,maxX:S,maxY:z,width:Math.max(0,S-h),height:Math.max(0,z-x)}},[E,$]),st=e.useMemo(()=>{if($.size===0)return $;const t=new Map;for(const[h,x]of $.entries())t.set(h,{x:x.x-F.minX,y:x.y-F.minY});return t},[F.minX,F.minY,$]);e.useEffect(()=>{Pt({minX:0,minY:0,maxX:F.width,maxY:F.height})},[F.height,F.width,Pt]);const Ct=e.useMemo(()=>Array.from(st.keys()).sort().join("|"),[st]),yt=e.useMemo(()=>[Ct,f.width,f.height,F.width,F.height,Array.from(E.entries()).sort(([t],[h])=>t.localeCompare(h)).map(([t,h])=>`${t}:${Math.round(h)}`).join("|")].join("::"),[F.height,F.width,Ct,E,f.height,f.width]),Tt=e.useRef(null);e.useEffect(()=>{if(U.length===0||st.size===0)return;const t=g.current;if(!t)return;const h=t.clientWidth||f.width,x=t.clientHeight||f.height;if(h===0||x===0||Tt.current===yt)return;let S=0,z=0;const w=()=>{const R=g.current;if(!R)return;const j=R.clientWidth||f.width,q=R.clientHeight||f.height;j===0||q===0||(gt(st,j,q,{nodeWidth:at,nodeHeight:rt,measuredHeights:E}),Tt.current=yt)};return typeof requestAnimationFrame=="function"?S=requestAnimationFrame(()=>{z=requestAnimationFrame(w)}):w(),()=>{S&&cancelAnimationFrame(S),z&&cancelAnimationFrame(z)}},[U.length,yt,gt,E,st,f.height,f.width]);const St=e.useCallback(()=>{ot();const t=kt(Z,P);Q(t)},[ot,Z,P]),Nt=e.useCallback(()=>{const t={};for(const[h,x]of $.entries())t[h]=x;K(t)},[K,$]);return I.jsxs("section",{className:"dependency-graph","data-testid":"dependency-graph",children:[I.jsx("div",{ref:g,className:"dependency-graph__viewport",onPointerDown:t=>{V||(Y.current={x:t.clientX,y:t.clientY},O.current=!1,It(t.pointerId,{x:t.clientX,y:t.clientY}))},onPointerMove:t=>{if(V)return;const h=g.current;if(!h)return;const x=Y.current;if(x){const S=Math.abs(t.clientX-x.x),z=Math.abs(t.clientY-x.y);(S>Dt||z>Dt)&&(O.current=!0)}Ht(t.pointerId,{x:t.clientX,y:t.clientY},h.clientWidth,h.clientHeight)},onPointerUp:t=>{V||bt(t.pointerId),Y.current=null},onPointerCancel:t=>{V||bt(t.pointerId),Y.current=null,O.current=!1},onWheel:t=>{t.preventDefault();const h=g.current;if(h){if(t.ctrlKey||t.metaKey){const x=h.getBoundingClientRect();Et(t.deltaY,{x:t.clientX-x.left,y:t.clientY-x.top},h.clientWidth,h.clientHeight);return}zt(t.deltaX,t.deltaY,h.clientWidth,h.clientHeight)}},onKeyDown:t=>{const h=g.current;h&&Ot(t,h.clientWidth,h.clientHeight,st,{nodeWidth:at,nodeHeight:rt,measuredHeights:E})},tabIndex:0,onClick:()=>{O.current||V||l(null)},children:U.length===0?I.jsx("div",{className:"dependency-graph__empty",children:"No active tasks to display in graph view."}):I.jsxs("div",{className:`graph-canvas-transform${pt?" graph-canvas-transform--animate":""}`,style:{transform:ft,width:`${F.width}px`,height:`${F.height}px`},children:[I.jsx(qt,{edges:Z.edges,positions:st,nodeWidth:at,nodeHeight:rt,nodeHeights:E,highlightedEdgeIds:y.size>0?new Set(Z.edges.filter(t=>y.has(t.source)&&y.has(t.target)).map(t=>`${t.source}->${t.target}`)):void 0}),I.jsx("div",{className:"dependency-graph__nodes-layer",children:Z.nodes.map(t=>{const h=st.get(t.task.id);return h?I.jsx(Bt,{task:t.task,projectId:s,taskColumnFlags:r?.get(t.task.id),isSelected:G===t.task.id,style:{minHeight:`${rt}px`,left:`${h.x}px`,top:`${h.y}px`},position:h,scale:tt,onNodePositionChange:(x,S)=>{Q(z=>{const w={x:S.x+F.minX,y:S.y+F.minY},R=z.get(x);if(R&&R.x===w.x&&R.y===w.y)return z;const j=new Map(z);return j.set(x,w),j})},onNodeDragStateChange:ct,onNodeDragEnd:Nt,isHighlighted:y.size>0&&y.has(t.task.id),isDimmed:y.size>0&&!y.has(t.task.id),onOpenDetail:p??(x=>i?.(x.id)),addToast:a??(()=>{}),globalPaused:k,onUpdateTask:b,onArchiveTask:D,onUnarchiveTask:H,onDeleteTask:M,onRetryTask:C,onOpenDetailWithTab:v,onOpenMission:o,onMoveTask:c,lastFetchTimeMs:d,onMouseEnter:()=>X(t.task.id),onMouseLeave:()=>X(null),onClick:x=>{x.stopPropagation(),O.current=!1,l(S=>S===t.task.id?null:t.task.id)}},t.task.id):null})})]})}),I.jsx(Zt,{zoom:tt,onZoomIn:()=>{const t=g.current;t&&ht(t.clientWidth,t.clientHeight)},onZoomOut:()=>{const t=g.current;t&&et(t.clientWidth,t.clientHeight)},onFitToGraph:()=>{St();const t=g.current;if(!t)return;const h=kt(Z,P),x=new Map,S=Array.from(h.values()),z=S.length>0?Math.min(...S.map(R=>R.x)):0,w=S.length>0?Math.min(...S.map(R=>R.y)):0;for(const[R,j]of h.entries())x.set(R,{x:j.x-z,y:j.y-w});gt(x,t.clientWidth,t.clientHeight,{nodeWidth:at,nodeHeight:rt,measuredHeights:E})},onResetView:()=>{St(),mt()}})]})}function be({context:n}){return e.createElement(pe,{tasks:n?.tasks??[],projectId:n?.projectId,columnFlagsByTaskId:n?.columnFlagsByTaskId,onOpenDetail:n?.openTaskDetail})}export{pe as DependencyGraph,be as DependencyGraphDashboardView,be as default};
|
|
1
|
+
import{r as e,j as I}from"./vendor-react-SZ_qB27O.js";import{dq as At,dr as vt,ds as Xt,dt as Yt}from"./index-QU8sENvc.js";import{Z as _t,a as jt,M as $t,R as Gt}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,Wt=24;function Ft({taskId:n,position:s,scale:r,canDrag:i,onPositionChange:p,onDragStateChange:a,onDragEnd:k,onDoubleTap:b}){const[D,H]=e.useState(!1),M=e.useRef(null),C=e.useRef(s),v=e.useRef(!1),o=e.useRef(null),c=e.useRef(!1);C.current=s,c.current=D;const d=e.useCallback(()=>{o.current=null},[]),g=e.useCallback(l=>{M.current=null,H(!1),c.current=!1,l&&(a?.(!1),k?.(),v.current=!0,d())},[k,a,d]),Y=e.useCallback(l=>{if(!l.isPrimary)return;if(l.defaultPrevented){d();return}const f=Date.now();o.current&&f-o.current.timeStamp>wt&&d(),i&&l.stopPropagation();const N=l.currentTarget;i&&typeof N.setPointerCapture=="function"&&N.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}},[i,d]),O=e.useCallback(l=>{const f=M.current;if(!f||f.pointerId!==l.pointerId)return;i&&l.stopPropagation();const N=l.clientX-f.startPointer.x,E=l.clientY-f.startPointer.y,J=Math.hypot(N,E);if(J>=xt&&(f.movedBeyondThreshold=!0),!i){f.movedBeyondThreshold&&d();return}if(!c.current&&J>=xt&&(H(!0),c.current=!0,a?.(!0),d()),J<xt)return;const U=r>0?r:1;p(n,{x:f.startPosition.x+N/U,y:f.startPosition.y+E/U})},[i,a,p,d,r,n]),L=e.useCallback((l,f)=>{if(!b||f.defaultPrevented||f.movedBeyondThreshold)return Date.now()-(o.current?.timeStamp??0)>wt&&d(),!1;if(f.pointerType==="mouse")return d(),!1;const N={timeStamp:Date.now(),point:{x:f.startPointer.x,y:f.startPointer.y}},E=o.current;return!E||N.timeStamp-E.timeStamp>wt||Math.hypot(N.point.x-E.point.x,N.point.y-E.point.y)>Wt?(o.current=N,!1):(v.current=!0,d(),b(),!0)},[b,d]),B=e.useCallback(l=>{const f=M.current;if(!f||f.pointerId!==l.pointerId)return;i&&l.stopPropagation(),i&&typeof l.currentTarget.hasPointerCapture=="function"&&l.currentTarget.hasPointerCapture(l.pointerId)&&typeof l.currentTarget.releasePointerCapture=="function"&&l.currentTarget.releasePointerCapture(l.pointerId);const N=c.current;!N&&L(l,f)&&l.preventDefault(),g(N)},[i,g,L]),X=e.useCallback(l=>{const f=M.current;!f||f.pointerId!==l.pointerId||(i&&l.stopPropagation(),i&&typeof l.currentTarget.hasPointerCapture=="function"&&l.currentTarget.hasPointerCapture(l.pointerId)&&typeof l.currentTarget.releasePointerCapture=="function"&&l.currentTarget.releasePointerCapture(l.pointerId),d(),g(c.current))},[i,g,d]),G=e.useCallback(l=>{v.current&&(v.current=!1,l.preventDefault(),l.stopPropagation())},[]);return e.useMemo(()=>({isDragging:D,onPointerDown:Y,onPointerMove:O,onPointerUp:B,onPointerCancel:X,onClickCapture:G}),[D,G,X,Y,O,B])}const Lt=new Set(["planning","researching","executing","finalizing","merging","merging-fix"]);function Ut(n){return n?n.charAt(0).toUpperCase()+n.slice(1):"Executing"}function Bt({taskColumnFlags:n,style:s,position:r,scale:i,isSelected:p=!1,isHighlighted:a=!1,isDimmed:k=!1,onMouseEnter:b,onMouseLeave:D,onClick:H,onNodePositionChange:M,onNodeDragStateChange:C,onNodeDragEnd:v,...o}){const{task:c,globalPaused:d,onOpenDetail:g}=o,Y=c.status==="failed",O=c.paused===!0,L=c.column==="in-progress"||Lt.has(c.status),B=c.status==="awaiting-approval"&&!L,X=!d&&!Y&&!O&&!B&&L,G=typeof c.currentStep=="number"&&c.currentStep>=0&&Array.isArray(c.steps)&&c.currentStep<c.steps.length,l=c.column==="in-review",f=Ft({taskId:c.id,position:r,scale:i,canDrag:p,onPositionChange:M,onDragStateChange:C,onDragEnd:v,onDoubleTap:()=>g(c)});return I.jsxs("div",{className:`graph-task-node${p?" graph-node--draggable graph-task-node--selected":""}${f.isDragging?" graph-node--dragging":""}${a?" graph-task-node--highlighted graph-node--highlighted":""}${k?" graph-task-node--dimmed graph-node--dimmed":""}${X?" graph-task-node--active":""}${l?" graph-task-node--in-review":""}`,style:s,draggable:!1,"data-testid":`graph-task-node-${c.id}`,"data-current-step":X&&G?String(c.currentStep):void 0,onMouseEnter:b,onMouseLeave:D,onClick:H,onDoubleClick:N=>{N.defaultPrevented||g(c)},onClickCapture:f.onClickCapture,onPointerDown:f.onPointerDown,onPointerMove:f.onPointerMove,onPointerUp:f.onPointerUp,onPointerCancel:f.onPointerCancel,children:[X?I.jsx("div",{className:"graph-task-active-indicator",children:I.jsx("span",{className:"graph-task-active-indicator-text",children:Ut(c.status)})}):null,I.jsx(At,{...o,taskColumnFlags:n,onOpenDetail:()=>{}})]})}function Zt({zoom:n,onZoomIn:s,onZoomOut:r,onFitToGraph:i,onResetView:p}){return I.jsxs("div",{className:"graph-toolbar","data-testid":"graph-toolbar",children:[I.jsx("button",{className:"btn btn-icon",title:"Zoom in (Ctrl+=)","aria-label":"Zoom in",onClick:s,children:I.jsx(_t,{size:16})}),I.jsx("button",{className:"btn btn-icon",title:"Zoom out (Ctrl+-)","aria-label":"Zoom out",onClick:r,children:I.jsx(jt,{size:16})}),I.jsxs("div",{className:"graph-toolbar__zoom-label","aria-live":"polite",children:[Math.round(n*100),"%"]}),I.jsx("button",{className:"btn btn-icon",title:"Fit to graph (Ctrl+Shift+F)","aria-label":"Fit to graph",onClick:i,children:I.jsx($t,{size:16})}),I.jsx("button",{className:"btn btn-icon",title:"Reset view (Ctrl+0)","aria-label":"Reset view",onClick:p,children:I.jsx(Gt,{size:16})})]})}const Kt=280,Vt=100;function qt({edges:n,positions:s,nodeWidth:r=Kt,nodeHeight:i=Vt,nodeHeights:p,highlightedEdgeIds:a}){const k=!!(a&&a.size>0);return I.jsxs("svg",{className:"dependency-graph-edges","aria-hidden":"true",children:[I.jsx("defs",{children:I.jsx("marker",{id:"dependency-graph-arrowhead",markerWidth:"10",markerHeight:"7",refX:"10",refY:"3.5",orient:"auto",markerUnits:"strokeWidth",children:I.jsx("path",{d:"M 0 0 L 10 3.5 L 0 7 z",style:{fill:"var(--border)"}})})}),n.map(b=>{const D=s.get(b.source),H=s.get(b.target);if(!D||!H)return null;const M=`${b.source}->${b.target}`,C=k&&(a?.has(M)??!1),v=D.x+r/2,o=D.y+(p?.get(b.source)??i),c=H.x+r/2,d=H.y,g=o+(d-o)/2;return I.jsx("path",{"data-testid":"dependency-edge","data-edge-id":M,className:`dependency-graph-edge${C?" graph-edge--highlighted":""}${k&&!C?" graph-edge--dimmed":""}`,d:`M ${v} ${o} C ${v} ${g}, ${c} ${g}, ${c} ${d}`,fill:"none",markerEnd:"url(#dependency-graph-arrowhead)",style:{opacity:k&&!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 Jt=new Set(["done","archived"]);function Qt(n){return n.filter(s=>typeof s.column=="string"&&s.column.length>0&&!Jt.has(s.column))}const te={nodeWidth:280,nodeHeight:100,horizontalGap:40,verticalGap:80,orientation:"vertical"};function kt(n,s){const r={...te,...s},i=n.nodes.map(o=>o.task.id);if(i.length===0)return new Map;const p=new Map,a=new Map;for(const o of i)a.set(o,0),p.set(o,[]);for(const o of n.edges)!a.has(o.source)||!a.has(o.target)||(p.get(o.target)?.push(o.source),a.set(o.source,(a.get(o.source)??0)+1));const k=i.filter(o=>(a.get(o)??0)===0),b=[];for(;k.length>0;){const o=k.shift();b.push(o);for(const c of p.get(o)??[]){const d=(a.get(c)??0)-1;a.set(c,d),d===0&&k.push(c)}}for(const o of i)b.includes(o)||b.push(o);const D=new Map;for(const o of b){const c=n.edges.filter(g=>g.source===o).map(g=>g.target);let d=0;for(const g of c)d=Math.max(d,(D.get(g)??0)+1);D.set(o,d)}const H=new Map;for(const o of i){const c=D.get(o)??0,d=H.get(c)??[];d.push(o),H.set(c,d)}const M=new Map,C=Array.from(H.keys()).sort((o,c)=>o-c),v=new Map;if(r.orientation==="vertical"){let o=0;for(const c of C){v.set(c,o);const d=H.get(c)??[],g=Math.max(r.nodeHeight,...d.map(Y=>r.measuredHeights?.get(Y)??r.nodeHeight));o+=g+r.verticalGap}}for(const o of C){const c=H.get(o)??[];if(c.sort(),r.orientation==="horizontal"){const L=-(c.reduce((G,l)=>G+(r.measuredHeights?.get(l)??r.nodeHeight),0)+Math.max(0,c.length-1)*r.verticalGap)/2,B=o*(r.nodeWidth+r.horizontalGap);let X=L;for(const G of c)M.set(G,{x:B,y:X}),X+=(r.measuredHeights?.get(G)??r.nodeHeight)+r.verticalGap;continue}const Y=-(c.length*r.nodeWidth+Math.max(0,c.length-1)*r.horizontalGap)/2;c.forEach((O,L)=>{const B=Y+L*(r.nodeWidth+r.horizontalGap),X=v.get(o)??o*(r.nodeHeight+r.verticalGap);M.set(O,{x:B,y:X})})}return M}function ee(n){return e.useMemo(()=>{const s=n.map(p=>({task:p})),r=new Set(n.map(p=>p.id)),i=n.flatMap(p=>(p.dependencies??[]).filter(a=>r.has(a)).map(a=>({source:p.id,target:a})));return{nodes:s,edges:i}},[n])}const ut=.1,lt=3,Rt=40,ne=200;function nt(n,s,r){return Math.min(r,Math.max(s,n))}function re(n){if(!(n instanceof HTMLElement))return!1;const s=n.tagName.toLowerCase();return n.isContentEditable||s==="input"||s==="textarea"||s==="select"}function oe(){const[n,s]=e.useState({x:0,y:0}),[r,i]=e.useState(1),[p,a]=e.useState(!1),k=e.useRef(n),b=e.useRef(r),D=e.useRef(null),H=e.useRef(null),M=e.useRef(new Map),C=e.useRef(null),v=e.useRef({minX:0,minY:0,maxX:0,maxY:0});e.useEffect(()=>{k.current=n},[n]),e.useEffect(()=>{b.current=r},[r]),e.useEffect(()=>()=>{D.current!==null&&window.clearTimeout(D.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(u=>{if(!u){D.current!==null&&(window.clearTimeout(D.current),D.current=null),a(!1);return}a(!0),D.current!==null&&window.clearTimeout(D.current),D.current=window.setTimeout(()=>{a(!1),D.current=null},ne)},[]),g=e.useCallback((u,m,y,T=b.current)=>{const P=v.current;if(P.maxX<=P.minX||P.maxY<=P.minY)return{x:nt(u.x,-m,m),y:nt(u.y,-y,y)};const W=m-P.maxX*T,A=-P.minX*T,_=y-P.maxY*T,K=-P.minY*T,ot=W>A?(W+A)/2:nt(u.x,W,A),$=_>K?(_+K)/2:nt(u.y,_,K);return{x:ot,y:$}},[]),Y=e.useCallback((u,m,y,T)=>{const P=b.current,W=k.current,A=nt(u,ut,lt),_=A/P,K=g({x:m.x-(m.x-W.x)*_,y:m.y-(m.y-W.y)*_},y,T,A);i(A),s(K)},[g]),O=e.useCallback((u,m,y,T)=>{d(!1);const P=T??{x:m/2,y:y/2};Y(b.current*u,P,m,y)},[d,Y]),L=e.useCallback((u,m)=>{if(u&&m){O(1.2,u,m);return}i(y=>nt(y+.1,ut,lt))},[O]),B=e.useCallback((u,m)=>{if(u&&m){O(1/1.2,u,m);return}i(y=>nt(y-.1,ut,lt))},[O]),X=e.useCallback(()=>{d(!0),s({x:0,y:0}),i(1)},[d]),G=e.useCallback((u,m,y,T)=>{if(d(!0),u.size===0){s({x:0,y:0}),i(1);return}const P=T?.nodeWidth??280,W=T?.nodeHeight??100,A=Array.from(u.entries()),_=Math.min(...A.map(([,et])=>et.x)),K=Math.min(...A.map(([,et])=>et.y)),ot=Math.max(...A.map(([,et])=>et.x+P)),$=Math.max(...A.map(([et,mt])=>mt.y+(T?.measuredHeights?.get(et)??W))),Q=Math.max(1,ot-_),V=Math.max(1,$-K),ct=Math.max(1,m-Rt*2),ft=Math.max(1,y-Rt*2),tt=nt(Math.min(ct/Q,ft/V),ut,lt),pt=(m-Q*tt)/2-_*tt,ht=(y-V*tt)/2-K*tt;i(tt),s(g({x:pt,y:ht},m,y,tt))},[g,d]),l=e.useCallback((u,m)=>{if(M.current.set(u,m),M.current.size===2){const[y,T]=Array.from(M.current.values());C.current={distance:Math.hypot(y.x-T.x,y.y-T.y),zoom:b.current,pan:k.current,midpoint:{x:(y.x+T.x)/2,y:(y.y+T.y)/2}},H.current=null;return}H.current={start:m,panStart:k.current}},[]),f=e.useCallback((u,m,y,T)=>{if(M.current.has(u)&&M.current.set(u,m),M.current.size===2&&C.current){d(!1);const[A,_]=Array.from(M.current.values()),ot=Math.hypot(A.x-_.x,A.y-_.y)/Math.max(1,C.current.distance),$={x:(A.x+_.x)/2,y:(A.y+_.y)/2},Q=nt(C.current.zoom*ot,ut,lt),V=Q/C.current.zoom,ct=g({x:$.x-(C.current.midpoint.x-C.current.pan.x)*V,y:$.y-(C.current.midpoint.y-C.current.pan.y)*V},y,T);i(Q),s(ct);return}const P=H.current;if(!P)return;d(!1);const W={x:P.panStart.x+(m.x-P.start.x),y:P.panStart.y+(m.y-P.start.y)};s(g(W,y,T))},[g,d]),N=e.useCallback(u=>{if(M.current.delete(u),M.current.size<2&&(C.current=null),M.current.size===1){const[m]=Array.from(M.current.values());H.current={start:m,panStart:k.current};return}M.current.size===0&&(H.current=null)},[]),E=e.useCallback((u,m,y,T)=>{d(!1);const P={x:k.current.x-u,y:k.current.y-m};s(g(P,y,T))},[g,d]),J=e.useCallback((u,m,y,T)=>{const P=u<0?1.1:.9;d(!1),Y(b.current*P,m,y,T)},[d,Y]),U=e.useCallback(u=>{v.current=u},[]),Z=e.useCallback((u,m,y,T,P)=>{if(re(u.target))return;const W=u.metaKey||u.ctrlKey;if(u.key==="Escape"){u.preventDefault(),X();return}if(W){if(u.key==="="||u.key==="+"){u.preventDefault(),O(1.2,m,y);return}if(u.key==="-"){u.preventDefault(),O(1/1.2,m,y);return}if(u.key==="0"){u.preventDefault(),X();return}(u.key==="f"||u.key==="F")&&u.shiftKey&&(u.preventDefault(),G(T,m,y,P))}},[G,X,O]);return{pan:n,zoom:r,zoomPercent:c,transform:o,transitioning:p,zoomIn:L,zoomOut:B,resetView:X,fitToGraph:G,setAnimate:d,onPointerDown:l,onPointerMove:f,onPointerUp:N,onWheelPan:E,onWheelZoom:J,handleKeyDown:Z,setGraphBounds:U}}function se(n){const{upstreamMap:s,downstreamMap:r}=e.useMemo(()=>{const p=new Map,a=new Map;for(const k of n)p.set(k.id,new Set(k.dependencies??[])),a.has(k.id)||a.set(k.id,new Set);for(const k of n)for(const b of k.dependencies??[])a.has(b)||a.set(b,new Set),a.get(b)?.add(k.id);return{upstreamMap:p,downstreamMap:a}},[n]);return{getChain:e.useCallback(p=>{if(!s.has(p)&&!r.has(p))return new Set;const a=new Set([p]),k=(b,D)=>{const H=[b],M=new Set([b]);for(;H.length>0;){const C=H.shift();if(!C)continue;const v=D.get(C);if(v)for(const o of v)M.has(o)||(M.add(o),a.add(o),H.push(o))}};return k(p,s),k(p,r),a},[r,s])}}const Mt="fusion-plugin-dependency-graph:positions";function dt(n){if(!n||typeof n!="object")return!1;const s=n;return typeof s.x=="number"&&Number.isFinite(s.x)&&typeof s.y=="number"&&Number.isFinite(s.y)}function ie(n){const s=vt(Mt,n);if(!s)return{};try{const r=JSON.parse(s);if(!r||typeof r!="object")return{};const i={};for(const[p,a]of Object.entries(r))dt(a)&&(i[p]=a);return i}catch{return{}}}function ae(n,s,r){const i={};for(const[p,a]of Object.entries(n))s.has(p)&&dt(a)&&(i[p]=a);Xt(Mt,JSON.stringify(i),r)}function ce(n){Yt(Mt,n)}function ue(n,s,r){const i={};for(const[p,a]of Object.entries(n))r.has(p)&&dt(a)&&(i[p]=a);for(const[p,a]of Object.entries(s))r.has(p)&&dt(a)&&(i[p]=a);return i}function le(n,s){const r={};for(const[i,p]of Object.entries(n))s.has(i)&&(r[i]=p);return r}function de({projectId:n,visibleTaskIds:s}){const[r,i]=e.useState(null);e.useEffect(()=>{i(ie(n))},[n]);const p=e.useCallback(k=>{ae(k,s,n),i(le(k,s))},[n,s]),a=e.useCallback(()=>{ce(n),i(null)},[n]);return{savedPositions:r,persistPositions:p,clearSavedPositions:a}}const at=280,rt=100,fe=768,Dt=4;function pe({tasks:n,projectId:s,columnFlagsByTaskId:r,onOpenTaskDetail:i,onOpenDetail:p,addToast:a,globalPaused:k,onUpdateTask:b,onArchiveTask:D,onUnarchiveTask:H,onDeleteTask:M,onRetryTask:C,onOpenDetailWithTab:v,onOpenMission:o,onMoveTask:c,lastFetchTimeMs:d}){const g=e.useRef(null),Y=e.useRef(null),O=e.useRef(!1),L=e.useRef(new Map),[B,X]=e.useState(null),[G,l]=e.useState(null),[f,N]=e.useState({width:0,height:0}),[E,J]=e.useState(new Map),U=e.useMemo(()=>Qt(n),[n]),Z=ee(U),{getChain:u}=se(U),m=B??G,y=e.useMemo(()=>m?u(m):new Set,[m,u]),T=e.useMemo(()=>{const t=f.width||(typeof window<"u"?window.innerWidth:0);return(f.height||(typeof window<"u"?window.innerHeight:0))>t||t<fe?"horizontal":"vertical"},[f.height,f.width]),P=e.useMemo(()=>({nodeWidth:at,nodeHeight:rt,horizontalGap:40,verticalGap:80,orientation:T,measuredHeights:E}),[E,T]),W=e.useMemo(()=>kt(Z,P),[Z,P]),A=e.useMemo(()=>new Set(U.map(t=>t.id)),[U]),{savedPositions:_,persistPositions:K,clearSavedPositions:ot}=de({projectId:s,visibleTaskIds:A}),[$,Q]=e.useState(W),[V,ct]=e.useState(!1);e.useEffect(()=>{const t={};for(const[x,S]of W.entries())t[x]=S;const h=_?ue(t,_,A):t;Q(new Map(Object.entries(h)))},[W,_,A]),e.useEffect(()=>{const t=g.current;if(!t)return;const h=(S,z)=>{N(w=>w.width===S&&w.height===z?w:{width:S,height:z})};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 x=new ResizeObserver(S=>{const z=S[0];z&&h(z.contentRect.width,z.contentRect.height)});return x.observe(t),()=>x.disconnect()},[]),e.useEffect(()=>{const t=g.current;if(!t)return;const h=new Set(Z.nodes.map(w=>w.task.id)),x=new Map;for(const w of h){const R=t.querySelector(`[data-testid="graph-task-node-${w}"]`);R&&x.set(w,R)}L.current=x,J(w=>{let R=!1;const j=new Map;for(const[q,it]of w.entries()){if(!h.has(q)){R=!0;continue}j.set(q,it)}return R?j:w});const S=(w,R)=>{J(j=>{const q=j.get(w);if(q!==void 0&&Math.abs(q-R)<1)return j;const it=new Map(j);return it.set(w,R),it})};for(const[w,R]of x.entries())S(w,R.offsetHeight||rt);if(typeof ResizeObserver>"u")return;const z=new ResizeObserver(w=>{for(const R of w){const j=R.target,q=Array.from(x.entries()).find(([,it])=>it===j)?.[0];q&&S(q,j.offsetHeight||rt)}});for(const w of x.values())z.observe(w);return()=>z.disconnect()},[Z.nodes,$,f.height,f.width]);const{transform:ft,zoom:tt,transitioning:pt,zoomIn:ht,zoomOut:et,resetView:mt,fitToGraph:gt,onPointerDown:It,onPointerMove:Ht,onPointerUp:bt,onWheelPan:zt,onWheelZoom:Et,handleKeyDown:Ot,setGraphBounds:Pt}=oe(),F=e.useMemo(()=>{const t=Array.from($.values());if(t.length===0)return{minX:0,minY:0,maxX:0,maxY:0,width:0,height:0};const h=Math.min(...t.map(w=>w.x)),x=Math.min(...t.map(w=>w.y)),S=Math.max(...t.map(w=>w.x+at)),z=Math.max(...Array.from($.entries()).map(([w,R])=>R.y+(E.get(w)??rt)));return{minX:h,minY:x,maxX:S,maxY:z,width:Math.max(0,S-h),height:Math.max(0,z-x)}},[E,$]),st=e.useMemo(()=>{if($.size===0)return $;const t=new Map;for(const[h,x]of $.entries())t.set(h,{x:x.x-F.minX,y:x.y-F.minY});return t},[F.minX,F.minY,$]);e.useEffect(()=>{Pt({minX:0,minY:0,maxX:F.width,maxY:F.height})},[F.height,F.width,Pt]);const Ct=e.useMemo(()=>Array.from(st.keys()).sort().join("|"),[st]),yt=e.useMemo(()=>[Ct,f.width,f.height,F.width,F.height,Array.from(E.entries()).sort(([t],[h])=>t.localeCompare(h)).map(([t,h])=>`${t}:${Math.round(h)}`).join("|")].join("::"),[F.height,F.width,Ct,E,f.height,f.width]),Tt=e.useRef(null);e.useEffect(()=>{if(U.length===0||st.size===0)return;const t=g.current;if(!t)return;const h=t.clientWidth||f.width,x=t.clientHeight||f.height;if(h===0||x===0||Tt.current===yt)return;let S=0,z=0;const w=()=>{const R=g.current;if(!R)return;const j=R.clientWidth||f.width,q=R.clientHeight||f.height;j===0||q===0||(gt(st,j,q,{nodeWidth:at,nodeHeight:rt,measuredHeights:E}),Tt.current=yt)};return typeof requestAnimationFrame=="function"?S=requestAnimationFrame(()=>{z=requestAnimationFrame(w)}):w(),()=>{S&&cancelAnimationFrame(S),z&&cancelAnimationFrame(z)}},[U.length,yt,gt,E,st,f.height,f.width]);const St=e.useCallback(()=>{ot();const t=kt(Z,P);Q(t)},[ot,Z,P]),Nt=e.useCallback(()=>{const t={};for(const[h,x]of $.entries())t[h]=x;K(t)},[K,$]);return I.jsxs("section",{className:"dependency-graph","data-testid":"dependency-graph",children:[I.jsx("div",{ref:g,className:"dependency-graph__viewport",onPointerDown:t=>{V||(Y.current={x:t.clientX,y:t.clientY},O.current=!1,It(t.pointerId,{x:t.clientX,y:t.clientY}))},onPointerMove:t=>{if(V)return;const h=g.current;if(!h)return;const x=Y.current;if(x){const S=Math.abs(t.clientX-x.x),z=Math.abs(t.clientY-x.y);(S>Dt||z>Dt)&&(O.current=!0)}Ht(t.pointerId,{x:t.clientX,y:t.clientY},h.clientWidth,h.clientHeight)},onPointerUp:t=>{V||bt(t.pointerId),Y.current=null},onPointerCancel:t=>{V||bt(t.pointerId),Y.current=null,O.current=!1},onWheel:t=>{t.preventDefault();const h=g.current;if(h){if(t.ctrlKey||t.metaKey){const x=h.getBoundingClientRect();Et(t.deltaY,{x:t.clientX-x.left,y:t.clientY-x.top},h.clientWidth,h.clientHeight);return}zt(t.deltaX,t.deltaY,h.clientWidth,h.clientHeight)}},onKeyDown:t=>{const h=g.current;h&&Ot(t,h.clientWidth,h.clientHeight,st,{nodeWidth:at,nodeHeight:rt,measuredHeights:E})},tabIndex:0,onClick:()=>{O.current||V||l(null)},children:U.length===0?I.jsx("div",{className:"dependency-graph__empty",children:"No active tasks to display in graph view."}):I.jsxs("div",{className:`graph-canvas-transform${pt?" graph-canvas-transform--animate":""}`,style:{transform:ft,width:`${F.width}px`,height:`${F.height}px`},children:[I.jsx(qt,{edges:Z.edges,positions:st,nodeWidth:at,nodeHeight:rt,nodeHeights:E,highlightedEdgeIds:y.size>0?new Set(Z.edges.filter(t=>y.has(t.source)&&y.has(t.target)).map(t=>`${t.source}->${t.target}`)):void 0}),I.jsx("div",{className:"dependency-graph__nodes-layer",children:Z.nodes.map(t=>{const h=st.get(t.task.id);return h?I.jsx(Bt,{task:t.task,projectId:s,taskColumnFlags:r?.get(t.task.id),isSelected:G===t.task.id,style:{minHeight:`${rt}px`,left:`${h.x}px`,top:`${h.y}px`},position:h,scale:tt,onNodePositionChange:(x,S)=>{Q(z=>{const w={x:S.x+F.minX,y:S.y+F.minY},R=z.get(x);if(R&&R.x===w.x&&R.y===w.y)return z;const j=new Map(z);return j.set(x,w),j})},onNodeDragStateChange:ct,onNodeDragEnd:Nt,isHighlighted:y.size>0&&y.has(t.task.id),isDimmed:y.size>0&&!y.has(t.task.id),onOpenDetail:p??(x=>i?.(x.id)),addToast:a??(()=>{}),globalPaused:k,onUpdateTask:b,onArchiveTask:D,onUnarchiveTask:H,onDeleteTask:M,onRetryTask:C,onOpenDetailWithTab:v,onOpenMission:o,onMoveTask:c,lastFetchTimeMs:d,onMouseEnter:()=>X(t.task.id),onMouseLeave:()=>X(null),onClick:x=>{x.stopPropagation(),O.current=!1,l(S=>S===t.task.id?null:t.task.id)}},t.task.id):null})})]})}),I.jsx(Zt,{zoom:tt,onZoomIn:()=>{const t=g.current;t&&ht(t.clientWidth,t.clientHeight)},onZoomOut:()=>{const t=g.current;t&&et(t.clientWidth,t.clientHeight)},onFitToGraph:()=>{St();const t=g.current;if(!t)return;const h=kt(Z,P),x=new Map,S=Array.from(h.values()),z=S.length>0?Math.min(...S.map(R=>R.x)):0,w=S.length>0?Math.min(...S.map(R=>R.y)):0;for(const[R,j]of h.entries())x.set(R,{x:j.x-z,y:j.y-w});gt(x,t.clientWidth,t.clientHeight,{nodeWidth:at,nodeHeight:rt,measuredHeights:E})},onResetView:()=>{St(),mt()}})]})}function be({context:n}){return e.createElement(pe,{tasks:n?.tasks??[],projectId:n?.projectId,columnFlagsByTaskId:n?.columnFlagsByTaskId,onOpenDetail:n?.openTaskDetail})}export{pe as DependencyGraph,be as DependencyGraphDashboardView,be as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as n,j as t}from"./vendor-react-SZ_qB27O.js";import{V as I,H as P}from"./index-
|
|
1
|
+
import{r as n,j as t}from"./vendor-react-SZ_qB27O.js";import{V as I,H as P}from"./index-QU8sENvc.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 D(s){const e=s.project?.reviewArtifacts??s.global?.reviewArtifacts;return e==="user-facing"||e==="on"?e:"off"}function z(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(D(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:z(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{r as y,j as t}from"./vendor-react-SZ_qB27O.js";import{c as e,I as C_}from"./createLucideIcon-CshVyKO4.js";import{A as V0,C as P0,D as B0,G as D0,L as F0,M as R0,S as P}from"./sparkles-jMBujqYW.js";import{B as T0,b as U0,C as O0,d as B,E as G0,a as Z0,c as E0,L as W0}from"./list-checks-Dj2-DY9o.js";import{C as X0,b as K0,a as Q0,P as J0,T as N0,X as Y0}from"./x-Bt4TvqS0.js";import{a as D,C as F}from"./circle-check-BchOjVT4.js";import{L as R}from"./loader-circle-BZLkElvN.js";import{M as ea,R as aa,Z as ta,a as ca}from"./zoom-out-DzDzWQt1.js";import{P as C0,R as oa,S as na}from"./shield-check-DwJMibgX.js";import{V as i_}from"./index-
|
|
1
|
+
import{r as y,j as t}from"./vendor-react-SZ_qB27O.js";import{c as e,I as C_}from"./createLucideIcon-CshVyKO4.js";import{A as V0,C as P0,D as B0,G as D0,L as F0,M as R0,S as P}from"./sparkles-jMBujqYW.js";import{B as T0,b as U0,C as O0,d as B,E as G0,a as Z0,c as E0,L as W0}from"./list-checks-Dj2-DY9o.js";import{C as X0,b as K0,a as Q0,P as J0,T as N0,X as Y0}from"./x-Bt4TvqS0.js";import{a as D,C as F}from"./circle-check-BchOjVT4.js";import{L as R}from"./loader-circle-BZLkElvN.js";import{M as ea,R as aa,Z as ta,a as ca}from"./zoom-out-DzDzWQt1.js";import{P as C0,R as oa,S as na}from"./shield-check-DwJMibgX.js";import{V as i_}from"./index-QU8sENvc.js";import"./vendor-i18n-Duky4gdQ.js";import"./vendor-codemirror-CcrtqoCy.js";import"./vendor-reactflow-BlIeoTu4.js";import"./vendor-xterm-BNq00GSj.js";/**
|
|
2
2
|
* @license lucide-react v0.542.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -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-
|
|
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-D5Ccw5tQ.js";import{p as H}from"./chunk-4BX2VUAB-CFKEnTmJ.js";import{p as V}from"./wardley-L42UT6IY-Wxq1L5VU.js";import"./index-QU8sENvc.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-
|
|
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-D5Ccw5tQ.js";import{p as $}from"./chunk-4BX2VUAB-CFKEnTmJ.js";import{I as z}from"./chunk-QZHKN3VN-DnVoTnz9.js";import{p as A}from"./wardley-L42UT6IY-Wxq1L5VU.js";import"./index-QU8sENvc.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-
|
|
1
|
+
import{p as re}from"./chunk-4BX2VUAB-CFKEnTmJ.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-D5Ccw5tQ.js";import{p as pe,i as be}from"./wardley-L42UT6IY-Wxq1L5VU.js";import{s as ve}from"./vendor-reactflow-BlIeoTu4.js";import"./index-QU8sENvc.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(" "," ")),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(" "," "),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-
|
|
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-D5Ccw5tQ.js";import{p as W}from"./chunk-4BX2VUAB-CFKEnTmJ.js";import{p as _}from"./wardley-L42UT6IY-Wxq1L5VU.js";import"./index-QU8sENvc.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-6vt3zKxL.js";import{s as we}from"./chunk-2J33WTMH-OksyoE_c.js";import{p as Ce}from"./chunk-4BX2VUAB-C5ivKrB5.js";import{p as Te}from"./wardley-L42UT6IY-nNvWflNF.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-Cv_ouAgx.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-D5Ccw5tQ.js";import{s as we}from"./chunk-2J33WTMH-DBS2o2AZ.js";import{p as Ce}from"./chunk-4BX2VUAB-CFKEnTmJ.js";import{p as Te}from"./wardley-L42UT6IY-Wxq1L5VU.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-QU8sENvc.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};
|
package/dist/client/assets/{erDiagram-TEJ5UH35-pa0blyAD.js → erDiagram-TEJ5UH35-5dsSgUXk.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as Mt}from"./chunk-55IACEB6-C7vkVq-W.js";import{s as Bt}from"./chunk-2J33WTMH-OksyoE_c.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-6vt3zKxL.js";import{s as qt}from"./vendor-reactflow-BlIeoTu4.js";import{c as Jt}from"./channel-BjDq20V4.js";import"./index-Cv_ouAgx.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-DpjYRScs.js";import{s as Bt}from"./chunk-2J33WTMH-DBS2o2AZ.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-D5Ccw5tQ.js";import{s as qt}from"./vendor-reactflow-BlIeoTu4.js";import{c as Jt}from"./channel-Drj7VQBu.js";import"./index-QU8sENvc.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()+`
|
package/dist/client/assets/{flowDiagram-I6XJVG4X-D7Veqs1W.js → flowDiagram-I6XJVG4X-BOHB4RzL.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as qe}from"./chunk-FMBD7UC4-
|
|
1
|
+
import{g as qe}from"./chunk-FMBD7UC4-Cdi9zNME.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-D5Ccw5tQ.js";import{c as ct}from"./chunk-ND2GUHAM-D_3BQZ27.js";import{g as ht}from"./chunk-55IACEB6-DpjYRScs.js";import{s as dt}from"./chunk-2J33WTMH-DBS2o2AZ.js";import{s as se}from"./vendor-reactflow-BlIeoTu4.js";import{c as pt}from"./channel-Drj7VQBu.js";import"./index-QU8sENvc.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+`
|