@runfusion/fusion 0.44.0 → 0.45.0
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/README.md +2 -1
- package/dist/bin.js +6902 -2143
- package/dist/client/.vite/manifest.json +1115 -328
- package/dist/client/assets/AgentDetailView-CgbB51Iw.css +1 -0
- package/dist/client/assets/AgentDetailView-DJTi6hKC.js +18 -0
- package/dist/client/assets/{AgentPermissionPolicyEditor--YS4iMUY.js → AgentPermissionPolicyEditor-C5DR9dUS.js} +2 -2
- package/dist/client/assets/AgentsView-BNd90PSx.js +29 -0
- package/dist/client/assets/AgentsView-CzMa5Olf.css +1 -0
- package/dist/client/assets/ChatView-B7JaZCL_.js +19 -0
- package/dist/client/assets/ChatView-BtjkE0V7.css +1 -0
- package/dist/client/assets/CommandCenter-CHO21xEW.js +74 -0
- package/dist/client/assets/CommandCenter-Xs5Ftv8s.css +1 -0
- package/dist/client/assets/DevServerView-B_p91Mj_.css +1 -0
- package/dist/client/assets/DevServerView-H9OkT1ld.js +1 -0
- package/dist/client/assets/DirectoryPicker-DegxT8ia.js +1 -0
- package/dist/client/assets/DocumentsView-kVVQYISc.js +1 -0
- package/dist/client/assets/EvalsView-C9-iTSat.js +1 -0
- package/dist/client/assets/EvalsView-CTbgPUne.css +1 -0
- package/dist/client/assets/ExperimentalAgentOnboardingModal-3ZEFv8sr.css +1 -0
- package/dist/client/assets/ExperimentalAgentOnboardingModal-DjP_xNkc.js +1 -0
- package/dist/client/assets/GoalsView-CUh8JBnJ.css +1 -0
- package/dist/client/assets/GoalsView-VoIHJJ5l.js +2 -0
- package/dist/client/assets/InsightsView-BIZaUcpd.js +11 -0
- package/dist/client/assets/InsightsView-C7yRTMPn.css +1 -0
- package/dist/client/assets/MemoryView-7v7rv6ns.js +2 -0
- package/dist/client/assets/MemoryView-CBDUr2Jy.css +1 -0
- package/dist/client/assets/PiExtensionsManager-CB89rV4U.js +11 -0
- package/dist/client/assets/PluginManager-BNSuW_R4.js +1 -0
- package/dist/client/assets/PullRequestView-CI5jdKBL.js +6 -0
- package/dist/client/assets/PullRequestView-CpdE3Yo_.css +1 -0
- package/dist/client/assets/ResearchView-BT5dR_m8.js +1 -0
- package/dist/client/assets/ResearchView-DIVNQF4_.css +1 -0
- package/dist/client/assets/SecretsView-CvFioX7R.css +1 -0
- package/dist/client/assets/SecretsView-WPYI58Uo.js +1 -0
- package/dist/client/assets/SessionTerminal-C6gyOWLt.js +2 -0
- package/dist/client/assets/SessionTerminal-D4R3ScvQ.css +1 -0
- package/dist/client/assets/SettingsModal-BESN59Ao.css +1 -0
- package/dist/client/assets/SettingsModal-BZokaNyx.css +1 -0
- package/dist/client/assets/SettingsModal-Bq_3AbaB.js +1 -0
- package/dist/client/assets/SettingsModal-JHACoQJe.js +21 -0
- package/dist/client/assets/SetupWizardModal-CrgbnR_d.js +2 -0
- package/dist/client/assets/ShadcnColorPicker-1icHuwhC.js +11 -0
- package/dist/client/assets/ShadcnColorPicker-pqVWCC5-.css +1 -0
- package/dist/client/assets/SkillsView-CJ8snrma.css +1 -0
- package/dist/client/assets/SkillsView-byuSe3e0.js +1 -0
- package/dist/client/assets/TodoView-CIsL_uvQ.css +1 -0
- package/dist/client/assets/TodoView-CQ9GjYBg.js +6 -0
- package/dist/client/assets/WorkflowNodeEditor-DW7sJZUX.js +8 -0
- package/dist/client/assets/WorkflowNodeEditor-f_XPV5Jd.css +1 -0
- package/dist/client/assets/{addon-fit-SnYDEvGm.js → addon-fit-C1WQXRvu.js} +1 -1
- package/dist/client/assets/{addon-unicode11-s5GoZCpi.js → addon-unicode11-BVmNDUBM.js} +1 -1
- package/dist/client/assets/{addon-web-links-jjt2f_oV.js → addon-web-links-CkVew5xs.js} +1 -1
- package/dist/client/assets/{addon-webgl-Icn-RnEx.js → addon-webgl-uLc0RKcC.js} +1 -1
- package/dist/client/assets/agentSkills-CeytXLHF.js +1 -0
- package/dist/client/assets/{ExperimentalAgentOnboardingModal-CZ_jbgep.css → agentSkills-bQJ4X1gH.css} +1 -1
- package/dist/client/assets/agentsOrgChartLayout-BMvyuaLA.js +1 -0
- package/dist/client/assets/app-3wbZ08YC.js +13 -0
- package/dist/client/assets/app-7-5DWLtg.js +13 -0
- package/dist/client/assets/app-CSvE5Noc.js +13 -0
- package/dist/client/assets/app-CZ2LTFce.js +13 -0
- package/dist/client/assets/app-Cv9xEnll.js +13 -0
- package/dist/client/assets/app-x_yPcO5Y.js +13 -0
- package/dist/client/assets/arc-cxkkNsnK.js +1 -0
- package/dist/client/assets/architectureDiagram-3BPJPVTR-BRI0QwDf.js +36 -0
- package/dist/client/assets/band-CquvqAHh.js +1 -0
- package/dist/client/assets/blockDiagram-GPEHLZMM-BXkN8Hv_.js +132 -0
- package/dist/client/assets/c4Diagram-AAUBKEIU-C_Kcokep.js +10 -0
- package/dist/client/assets/channel-Clzpzu32.js +1 -0
- package/dist/client/assets/chunk-2J33WTMH-BGeuCz9C.js +1 -0
- package/dist/client/assets/chunk-4BX2VUAB-DcVdctr0.js +1 -0
- package/dist/client/assets/chunk-55IACEB6-Dg6gDigQ.js +1 -0
- package/dist/client/assets/chunk-727SXJPM-B9B-vlEb.js +206 -0
- package/dist/client/assets/chunk-AQP2D5EJ-LrWQ-2yi.js +231 -0
- package/dist/client/assets/chunk-FMBD7UC4-Bnd6hAED.js +15 -0
- package/dist/client/assets/chunk-ND2GUHAM-nAw93UB5.js +1 -0
- package/dist/client/assets/chunk-QZHKN3VN-CgprKcZo.js +1 -0
- package/dist/client/assets/classDiagram-4FO5ZUOK-CzYHP-af.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CzYHP-af.js +1 -0
- package/dist/client/assets/common-BDp2y6CF.js +1 -0
- package/dist/client/assets/common-BnEo5fLN.js +1 -0
- package/dist/client/assets/common-Bzr_Y8h4.js +1 -0
- package/dist/client/assets/common-CvwyFzfv.js +1 -0
- package/dist/client/assets/common-CztCXRkz.js +1 -0
- package/dist/client/assets/common-DPe2mbb7.js +1 -0
- package/dist/client/assets/cose-bilkent-S5V4N54A-Bhn0g_iK.js +1 -0
- package/dist/client/assets/cytoscape.esm-OyMbaexL.js +331 -0
- package/dist/client/assets/dagre-BM42HDAG-CP4kfwqd.js +4 -0
- package/dist/client/assets/{dashboard-view-B4LXCv5H.js → dashboard-view-CM6Xin_H.js} +1680 -1620
- package/dist/client/assets/dashboard-view-DV1nEhh9.js +1 -0
- package/dist/client/assets/dashboard-view-D_zsA-kz.css +1 -0
- package/dist/client/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/client/assets/diagram-2AECGRRQ-DPhzVEUf.js +43 -0
- package/dist/client/assets/diagram-5GNKFQAL-8QOC3K_L.js +10 -0
- package/dist/client/assets/diagram-KO2AKTUF-C1twgEch.js +3 -0
- package/dist/client/assets/diagram-LMA3HP47-3bEegSuf.js +24 -0
- package/dist/client/assets/diagram-OG6HWLK6-BJ_x0rm6.js +24 -0
- package/dist/client/assets/erDiagram-TEJ5UH35-DNiiS5q6.js +85 -0
- package/dist/client/assets/flowDiagram-I6XJVG4X-DoouPklt.js +162 -0
- package/dist/client/assets/{folder-open-33WGVnbp.js → folder-open-CuUs2W7f.js} +1 -1
- package/dist/client/assets/ganttDiagram-6RSMTGT7-BrR6VnP5.js +292 -0
- package/dist/client/assets/gitGraphDiagram-PVQCEYII-BV8_J6Ee.js +106 -0
- package/dist/client/assets/graph--OzhPTMs.js +1 -0
- package/dist/client/assets/index-BZBQ_KsL.css +1 -0
- package/dist/client/assets/index-CZcWjLAb.js +1459 -0
- package/dist/client/assets/infoDiagram-5YYISTIA-DGwIIFkR.js +2 -0
- package/dist/client/assets/init-Dmth1JHB.js +1 -0
- package/dist/client/assets/ishikawaDiagram-YF4QCWOH-D5dEH4RE.js +70 -0
- package/dist/client/assets/journeyDiagram-JHISSGLW-BuuSWPw5.js +139 -0
- package/dist/client/assets/kanban-definition-UN3LZRKU-DA34uUla.js +89 -0
- package/dist/client/assets/katex-HP8lGamR.js +257 -0
- package/dist/client/assets/layout-SsrduOYp.js +1 -0
- package/dist/client/assets/linear-dXivciGL.js +1 -0
- package/dist/client/assets/mermaid.core-Ch4HatqA.js +309 -0
- package/dist/client/assets/mindmap-definition-RKZ34NQL-DUCG-qD3.js +96 -0
- package/dist/client/assets/ordinal-DILIJJjt.js +1 -0
- package/dist/client/assets/pieDiagram-4H26LBE5-DWvFGiLa.js +30 -0
- package/dist/client/assets/quadrantDiagram-W4KKPZXB-OPTVW3WT.js +7 -0
- package/dist/client/assets/requirementDiagram-4Y6WPE33-D7feZvlU.js +84 -0
- package/dist/client/assets/sankeyDiagram-5OEKKPKP-AtnSsEX1.js +40 -0
- package/dist/client/assets/sequenceDiagram-3UESZ5HK-BZjHUeI5.js +162 -0
- package/dist/client/assets/{shield-alert-CqeGWBUK.js → shield-alert-CzaF9ROV.js} +1 -1
- package/dist/client/assets/stateDiagram-AJRCARHV-C8j23Pvn.js +1 -0
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-CiZR_S5-.js +1 -0
- package/dist/client/assets/step-yuy0qJer.js +1 -0
- package/dist/client/assets/time-DoDTxsna.js +1 -0
- package/dist/client/assets/timeline-definition-PNZ67QCA-DvfNz25n.js +120 -0
- package/dist/client/assets/{upload-C11J2diI.js → upload-DTsYywhN.js} +1 -1
- package/dist/client/assets/{users-a-ELbyyZ.js → users-yAd09tKP.js} +1 -1
- package/dist/client/assets/{vendor-i18n-DYlSUfot.js → vendor-i18n-GF3RlKbq.js} +2 -2
- package/dist/client/assets/{vendor-react-BTgM5bbZ.js → vendor-react-SZ_qB27O.js} +1 -1
- package/dist/client/assets/vendor-reactflow-Bg-Qjzh8.js +15 -0
- package/dist/client/assets/{vendor-xterm-ea7-K05z.js → vendor-xterm-BNq00GSj.js} +1 -1
- package/dist/client/assets/vennDiagram-CIIHVFJN-CG2aMt3v.js +34 -0
- package/dist/client/assets/wardley-L42UT6IY-BnhBteen.js +173 -0
- package/dist/client/assets/wardleyDiagram-YWT4CUSO-DwqTzM3T.js +78 -0
- package/dist/client/assets/xychartDiagram-2RQKCTM6-5Cv2ZKMV.js +7 -0
- package/dist/client/assets/zoom-out-NWbVkreR.js +41 -0
- package/dist/client/index.html +30 -10
- package/dist/client/sw.js +1 -1
- package/dist/client/theme-data.css +3082 -206
- package/dist/client/version.json +1 -1
- package/dist/droid-cli/index.ts +56 -40
- package/dist/droid-cli/package.json +1 -1
- package/dist/droid-cli/src/__tests__/index.test.ts +47 -21
- package/dist/droid-cli/src/__tests__/process-manager.test.ts +50 -33
- package/dist/extension.js +4935 -827
- package/dist/pi-claude-cli/package.json +1 -1
- package/dist/pi-claude-cli/src/__tests__/process-manager.test.ts +25 -0
- package/dist/pi-claude-cli/src/process-manager.ts +11 -1
- package/dist/plugin-sdk/index.d.ts +126 -4
- package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
- package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
- package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
- package/dist/plugins/fusion-plugin-droid-runtime/bundled.js +68 -44
- package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-reports/package.json +1 -1
- package/dist/plugins/fusion-plugin-roadmap/bundled.js +5 -11
- package/dist/plugins/fusion-plugin-roadmap/manifest.json +1 -11
- package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
- package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
- package/package.json +3 -3
- package/skill/fusion/SKILL.md +1 -1
- package/skill/fusion/references/cli-commands.md +2 -1
- package/skill/fusion/references/extension-tools.md +10 -0
- package/skill/fusion/references/fusion-capabilities.md +3 -1
- package/dist/client/assets/AgentDetailView-CanIeYHg.css +0 -1
- package/dist/client/assets/AgentDetailView-DxV8pFHX.js +0 -18
- package/dist/client/assets/AgentsView-BVILQjdS.css +0 -1
- package/dist/client/assets/AgentsView-CTzbcvhK.js +0 -29
- package/dist/client/assets/ChatView-COygcnyk.js +0 -6
- package/dist/client/assets/ChatView-DwJAd5G1.css +0 -1
- package/dist/client/assets/CommandCenter-CTaopaC0.css +0 -1
- package/dist/client/assets/CommandCenter-DoKX2HWm.js +0 -56
- package/dist/client/assets/DevServerView-Cyevyvqx.js +0 -1
- package/dist/client/assets/DevServerView-VTQY28P7.css +0 -1
- package/dist/client/assets/DirectoryPicker-DBdyXEhR.js +0 -1
- package/dist/client/assets/DocumentsView-BzSMyrns.js +0 -1
- package/dist/client/assets/DocumentsView-WfVoTZt8.css +0 -1
- package/dist/client/assets/EvalsView-CUNJ1TLc.css +0 -1
- package/dist/client/assets/EvalsView-ikz00o9g.js +0 -1
- package/dist/client/assets/ExperimentalAgentOnboardingModal-D-rzCCET.js +0 -499
- package/dist/client/assets/GoalsView-Bfu1Oy2-.js +0 -2
- package/dist/client/assets/GoalsView-rg9VSIza.css +0 -1
- package/dist/client/assets/InsightsView-Cgmf5nES.js +0 -11
- package/dist/client/assets/InsightsView-LMv1M1dU.css +0 -1
- package/dist/client/assets/MemoryView-DkEuDKQs.js +0 -2
- package/dist/client/assets/MemoryView-zaXewZzi.css +0 -1
- package/dist/client/assets/NodesView-7VInxyf_.css +0 -1
- package/dist/client/assets/NodesView-B_KYfS4o.js +0 -14
- package/dist/client/assets/PiExtensionsManager-Dz69kkKs.js +0 -11
- package/dist/client/assets/PluginManager-LHCVcduP.js +0 -1
- package/dist/client/assets/PullRequestView-3AdbS2a1.css +0 -1
- package/dist/client/assets/PullRequestView-DBJutLLl.js +0 -6
- package/dist/client/assets/ResearchView-DTh8FLUm.css +0 -1
- package/dist/client/assets/ResearchView-gpn1XcVy.js +0 -1
- package/dist/client/assets/SecretsView-B7YqIowt.js +0 -1
- package/dist/client/assets/SecretsView-Djo1rahi.css +0 -1
- package/dist/client/assets/SessionTerminal-9l4bdKcn.js +0 -2
- package/dist/client/assets/SessionTerminal-BNgtmXb3.css +0 -1
- package/dist/client/assets/SettingsModal-BGEK9_9A.js +0 -31
- package/dist/client/assets/SettingsModal-CKv0TJfM.css +0 -1
- package/dist/client/assets/SettingsModal-CXogw-Er.css +0 -1
- package/dist/client/assets/SettingsModal-DIIoHGUH.js +0 -1
- package/dist/client/assets/SetupWizardModal-BcVeMxeX.js +0 -1
- package/dist/client/assets/SetupWizardModal-CIqFbkrD.css +0 -1
- package/dist/client/assets/SkillsView-3bhGyWs1.css +0 -1
- package/dist/client/assets/SkillsView-BxSJ4PHL.js +0 -1
- package/dist/client/assets/StashRecoveryView-B_8WIQEo.css +0 -1
- package/dist/client/assets/StashRecoveryView-BhFQ2FsP.js +0 -1
- package/dist/client/assets/TodoView-7xIh-Fmi.css +0 -1
- package/dist/client/assets/TodoView-BZpewjy0.js +0 -6
- package/dist/client/assets/WorkflowNodeEditor-Yn1FRF2v.css +0 -1
- package/dist/client/assets/WorkflowNodeEditor-tWsgCdVt.js +0 -8
- package/dist/client/assets/app-BmGA0Hiz.js +0 -13
- package/dist/client/assets/app-CEVYlVuJ.js +0 -13
- package/dist/client/assets/app-CbBFax2C.js +0 -13
- package/dist/client/assets/app-DORKrGAz.js +0 -13
- package/dist/client/assets/app-DQibuQ9z.js +0 -13
- package/dist/client/assets/app-k76GrQP0.js +0 -13
- package/dist/client/assets/common-BRyX4VxB.js +0 -1
- package/dist/client/assets/common-CN9QPI2d.js +0 -1
- package/dist/client/assets/common-CNbjPELi.js +0 -1
- package/dist/client/assets/common-DFDqu_n0.js +0 -1
- package/dist/client/assets/common-DgWWKG8Z.js +0 -1
- package/dist/client/assets/common-X6PzBnVA.js +0 -1
- package/dist/client/assets/createLucideIcon-DmVITl5d.js +0 -21
- package/dist/client/assets/dashboard-view-BFoyhTYF.js +0 -3
- package/dist/client/assets/dashboard-view-Cxzm_eqc.js +0 -1
- package/dist/client/assets/dashboard-view-DdGlfuu-.css +0 -1
- package/dist/client/assets/dashboard-view-_8yfNwju.css +0 -1
- package/dist/client/assets/index-Bglw05rM.js +0 -791
- package/dist/client/assets/index-FYgnflWD.css +0 -1
- package/dist/client/assets/vendor-reactflow-ZasuEfF9.js +0 -15
- package/dist/client/assets/x-PItWc-wQ.js +0 -61
- package/dist/client/assets/zoom-out-CzlHv0Kj.js +0 -21
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as t,j as H}from"./vendor-react-SZ_qB27O.js";import{dj as ve,dk as Ye,dl as _e,dm as Xe,dn as je}from"./index-CZcWjLAb.js";import{Z as $e,a as Ge,M as We,R as Le}from"./zoom-out-NWbVkreR.js";import"./vendor-i18n-GF3RlKbq.js";import"./vendor-reactflow-Bg-Qjzh8.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.js";const xe=4,we=300,Fe=24;function Ue({taskId:r,position:i,scale:o,canDrag:a,onPositionChange:d,onDragStateChange:c,onDragEnd:x,onDoubleTap:b}){const[I,z]=t.useState(!1),M=t.useRef(null),T=t.useRef(i),E=t.useRef(!1),n=t.useRef(null),m=t.useRef(!1);T.current=i,m.current=I;const l=t.useCallback(()=>{n.current=null},[]),P=t.useCallback(u=>{M.current=null,z(!1),m.current=!1,u&&(c?.(!1),x?.(),E.current=!0,l())},[x,c,l]),N=t.useCallback(u=>{if(!u.isPrimary)return;if(u.defaultPrevented){l();return}const S=Date.now();n.current&&S-n.current.timeStamp>we&&l(),a&&u.stopPropagation();const p=u.currentTarget;a&&typeof p.setPointerCapture=="function"&&p.setPointerCapture(u.pointerId),M.current={pointerId:u.pointerId,pointerType:u.pointerType,startPointer:{x:u.clientX,y:u.clientY},startPosition:T.current,defaultPrevented:u.defaultPrevented,movedBeyondThreshold:!1}},[a,l]),v=t.useCallback(u=>{const S=M.current;if(!S||S.pointerId!==u.pointerId)return;a&&u.stopPropagation();const p=u.clientX-S.startPointer.x,U=u.clientY-S.startPointer.y,_=Math.hypot(p,U);if(_>=xe&&(S.movedBeyondThreshold=!0),!a){S.movedBeyondThreshold&&l();return}if(!m.current&&_>=xe&&(z(!0),m.current=!0,c?.(!0),l()),_<xe)return;const re=o>0?o:1;d(r,{x:S.startPosition.x+p/re,y:S.startPosition.y+U/re})},[a,c,d,l,o,r]),G=t.useCallback((u,S)=>{if(!b||S.defaultPrevented||S.movedBeyondThreshold)return Date.now()-(n.current?.timeStamp??0)>we&&l(),!1;if(S.pointerType==="mouse")return l(),!1;const p={timeStamp:Date.now(),point:{x:S.startPointer.x,y:S.startPointer.y}},U=n.current;return!U||p.timeStamp-U.timeStamp>we||Math.hypot(p.point.x-U.point.x,p.point.y-U.point.y)>Fe?(n.current=p,!1):(E.current=!0,l(),b(),!0)},[b,l]),Z=t.useCallback(u=>{const S=M.current;if(!S||S.pointerId!==u.pointerId)return;a&&u.stopPropagation(),a&&typeof u.currentTarget.hasPointerCapture=="function"&&u.currentTarget.hasPointerCapture(u.pointerId)&&typeof u.currentTarget.releasePointerCapture=="function"&&u.currentTarget.releasePointerCapture(u.pointerId);const p=m.current;!p&&G(u,S)&&u.preventDefault(),P(p)},[a,P,G]),W=t.useCallback(u=>{const S=M.current;!S||S.pointerId!==u.pointerId||(a&&u.stopPropagation(),a&&typeof u.currentTarget.hasPointerCapture=="function"&&u.currentTarget.hasPointerCapture(u.pointerId)&&typeof u.currentTarget.releasePointerCapture=="function"&&u.currentTarget.releasePointerCapture(u.pointerId),l(),P(m.current))},[a,P,l]),Y=t.useCallback(u=>{E.current&&(E.current=!1,u.preventDefault(),u.stopPropagation())},[]);return t.useMemo(()=>({isDragging:I,onPointerDown:N,onPointerMove:v,onPointerUp:Z,onPointerCancel:W,onClickCapture:Y}),[I,Y,W,N,v,Z])}const Be=new Set(["planning","researching","executing","finalizing","merging","merging-fix"]);function Ze(r){return r?r.charAt(0).toUpperCase()+r.slice(1):"Executing"}function Ke({style:r,position:i,scale:o,isSelected:a=!1,isHighlighted:d=!1,isDimmed:c=!1,onMouseEnter:x,onMouseLeave:b,onClick:I,onNodePositionChange:z,onNodeDragStateChange:M,onNodeDragEnd:T,...E}){const{task:n,globalPaused:m,taskStuckTimeoutMs:l,lastFetchTimeMs:P,onOpenDetail:N}=E,v=n.status==="failed",G=n.paused===!0,Z=ve(n,l,P),W=n.column==="triage"&&n.status==="awaiting-approval",Y=!m&&!v&&!G&&!Z&&!W&&(n.column==="in-progress"||Be.has(n.status)),u=typeof n.currentStep=="number"&&n.currentStep>=0&&Array.isArray(n.steps)&&n.currentStep<n.steps.length,S=n.column==="in-review",p=Ue({taskId:n.id,position:i,scale:o,canDrag:a,onPositionChange:z,onDragStateChange:M,onDragEnd:T,onDoubleTap:()=>N(n)});return H.jsxs("div",{className:`graph-task-node${a?" graph-node--draggable graph-task-node--selected":""}${p.isDragging?" graph-node--dragging":""}${d?" graph-task-node--highlighted graph-node--highlighted":""}${c?" graph-task-node--dimmed graph-node--dimmed":""}${Y?" graph-task-node--active":""}${S?" graph-task-node--in-review":""}`,style:r,draggable:!1,"data-testid":`graph-task-node-${n.id}`,"data-current-step":Y&&u?String(n.currentStep):void 0,onMouseEnter:x,onMouseLeave:b,onClick:I,onDoubleClick:U=>{U.defaultPrevented||N(n)},onClickCapture:p.onClickCapture,onPointerDown:p.onPointerDown,onPointerMove:p.onPointerMove,onPointerUp:p.onPointerUp,onPointerCancel:p.onPointerCancel,children:[Y?H.jsx("div",{className:"graph-task-active-indicator",children:H.jsx("span",{className:"graph-task-active-indicator-text",children:Ze(n.status)})}):null,H.jsx(Ye,{...E,onOpenDetail:()=>{},disableDrag:!0})]})}function Ve({zoom:r,onZoomIn:i,onZoomOut:o,onFitToGraph:a,onResetView:d}){return H.jsxs("div",{className:"graph-toolbar","data-testid":"graph-toolbar",children:[H.jsx("button",{className:"btn btn-icon",title:"Zoom in (Ctrl+=)","aria-label":"Zoom in",onClick:i,children:H.jsx($e,{size:16})}),H.jsx("button",{className:"btn btn-icon",title:"Zoom out (Ctrl+-)","aria-label":"Zoom out",onClick:o,children:H.jsx(Ge,{size:16})}),H.jsxs("div",{className:"graph-toolbar__zoom-label","aria-live":"polite",children:[Math.round(r*100),"%"]}),H.jsx("button",{className:"btn btn-icon",title:"Fit to graph (Ctrl+Shift+F)","aria-label":"Fit to graph",onClick:a,children:H.jsx(We,{size:16})}),H.jsx("button",{className:"btn btn-icon",title:"Reset view (Ctrl+0)","aria-label":"Reset view",onClick:d,children:H.jsx(Le,{size:16})})]})}const qe=280,Je=100;function Qe({edges:r,positions:i,nodeWidth:o=qe,nodeHeight:a=Je,nodeHeights:d,highlightedEdgeIds:c}){const x=!!(c&&c.size>0);return H.jsxs("svg",{className:"dependency-graph-edges","aria-hidden":"true",children:[H.jsx("defs",{children:H.jsx("marker",{id:"dependency-graph-arrowhead",markerWidth:"10",markerHeight:"7",refX:"10",refY:"3.5",orient:"auto",markerUnits:"strokeWidth",children:H.jsx("path",{d:"M 0 0 L 10 3.5 L 0 7 z",style:{fill:"var(--border)"}})})}),r.map(b=>{const I=i.get(b.source),z=i.get(b.target);if(!I||!z)return null;const M=`${b.source}->${b.target}`,T=x&&(c?.has(M)??!1),E=I.x+o/2,n=I.y+(d?.get(b.source)??a),m=z.x+o/2,l=z.y,P=n+(l-n)/2;return H.jsx("path",{"data-testid":"dependency-edge","data-edge-id":M,className:`dependency-graph-edge${T?" graph-edge--highlighted":""}${x&&!T?" graph-edge--dimmed":""}`,d:`M ${E} ${n} C ${E} ${P}, ${m} ${P}, ${m} ${l}`,fill:"none",markerEnd:"url(#dependency-graph-arrowhead)",style:{opacity:x&&!T?.15:1,stroke:T?"var(--todo)":"var(--border)",strokeWidth:T?"var(--space-xs)":"var(--btn-border-width)",transition:"opacity var(--transition-fast), stroke var(--transition-fast), stroke-width var(--transition-fast)"}},M)})]})}const et=new Set(["triage","todo","in-progress","in-review"]);function tt(r){return r.filter(i=>et.has(i.column))}const nt={nodeWidth:280,nodeHeight:100,horizontalGap:40,verticalGap:80,orientation:"vertical"};function ke(r,i){const o={...nt,...i},a=r.nodes.map(n=>n.task.id);if(a.length===0)return new Map;const d=new Map,c=new Map;for(const n of a)c.set(n,0),d.set(n,[]);for(const n of r.edges)!c.has(n.source)||!c.has(n.target)||(d.get(n.target)?.push(n.source),c.set(n.source,(c.get(n.source)??0)+1));const x=a.filter(n=>(c.get(n)??0)===0),b=[];for(;x.length>0;){const n=x.shift();b.push(n);for(const m of d.get(n)??[]){const l=(c.get(m)??0)-1;c.set(m,l),l===0&&x.push(m)}}for(const n of a)b.includes(n)||b.push(n);const I=new Map;for(const n of b){const m=r.edges.filter(P=>P.source===n).map(P=>P.target);let l=0;for(const P of m)l=Math.max(l,(I.get(P)??0)+1);I.set(n,l)}const z=new Map;for(const n of a){const m=I.get(n)??0,l=z.get(m)??[];l.push(n),z.set(m,l)}const M=new Map,T=Array.from(z.keys()).sort((n,m)=>n-m),E=new Map;if(o.orientation==="vertical"){let n=0;for(const m of T){E.set(m,n);const l=z.get(m)??[],P=Math.max(o.nodeHeight,...l.map(N=>o.measuredHeights?.get(N)??o.nodeHeight));n+=P+o.verticalGap}}for(const n of T){const m=z.get(n)??[];if(m.sort(),o.orientation==="horizontal"){const G=-(m.reduce((Y,u)=>Y+(o.measuredHeights?.get(u)??o.nodeHeight),0)+Math.max(0,m.length-1)*o.verticalGap)/2,Z=n*(o.nodeWidth+o.horizontalGap);let W=G;for(const Y of m)M.set(Y,{x:Z,y:W}),W+=(o.measuredHeights?.get(Y)??o.nodeHeight)+o.verticalGap;continue}const N=-(m.length*o.nodeWidth+Math.max(0,m.length-1)*o.horizontalGap)/2;m.forEach((v,G)=>{const Z=N+G*(o.nodeWidth+o.horizontalGap),W=E.get(n)??n*(o.nodeHeight+o.verticalGap);M.set(v,{x:Z,y:W})})}return M}function rt(r){return t.useMemo(()=>{const i=r.map(d=>({task:d})),o=new Set(r.map(d=>d.id)),a=r.flatMap(d=>(d.dependencies??[]).filter(c=>o.has(c)).map(c=>({source:d.id,target:c})));return{nodes:i,edges:a}},[r])}const ue=.1,le=3,De=40,ot=200;function te(r,i,o){return Math.min(o,Math.max(i,r))}function st(r){if(!(r instanceof HTMLElement))return!1;const i=r.tagName.toLowerCase();return r.isContentEditable||i==="input"||i==="textarea"||i==="select"}function it(){const[r,i]=t.useState({x:0,y:0}),[o,a]=t.useState(1),[d,c]=t.useState(!1),x=t.useRef(r),b=t.useRef(o),I=t.useRef(null),z=t.useRef(null),M=t.useRef(new Map),T=t.useRef(null),E=t.useRef({minX:0,minY:0,maxX:0,maxY:0});t.useEffect(()=>{x.current=r},[r]),t.useEffect(()=>{b.current=o},[o]),t.useEffect(()=>()=>{I.current!==null&&window.clearTimeout(I.current)},[]);const n=t.useMemo(()=>`translate(${r.x}px, ${r.y}px) scale(${o})`,[r.x,r.y,o]),m=t.useMemo(()=>Math.round(o*100),[o]),l=t.useCallback(s=>{if(!s){I.current!==null&&(window.clearTimeout(I.current),I.current=null),c(!1);return}c(!0),I.current!==null&&window.clearTimeout(I.current),I.current=window.setTimeout(()=>{c(!1),I.current=null},ot)},[]),P=t.useCallback((s,h,w,k=b.current)=>{const C=E.current;if(C.maxX<=C.minX||C.maxY<=C.minY)return{x:te(s.x,-h,h),y:te(s.y,-w,w)};const X=h-C.maxX*k,A=-C.minX*k,j=w-C.maxY*k,B=-C.minY*k,oe=X>A?(X+A)/2:te(s.x,X,A),q=j>B?(j+B)/2:te(s.y,j,B);return{x:oe,y:q}},[]),N=t.useCallback((s,h,w,k)=>{const C=b.current,X=x.current,A=te(s,ue,le),j=A/C,B=P({x:h.x-(h.x-X.x)*j,y:h.y-(h.y-X.y)*j},w,k,A);a(A),i(B)},[P]),v=t.useCallback((s,h,w,k)=>{l(!1);const C=k??{x:h/2,y:w/2};N(b.current*s,C,h,w)},[l,N]),G=t.useCallback((s,h)=>{if(s&&h){v(1.2,s,h);return}a(w=>te(w+.1,ue,le))},[v]),Z=t.useCallback((s,h)=>{if(s&&h){v(1/1.2,s,h);return}a(w=>te(w-.1,ue,le))},[v]),W=t.useCallback(()=>{l(!0),i({x:0,y:0}),a(1)},[l]),Y=t.useCallback((s,h,w,k)=>{if(l(!0),s.size===0){i({x:0,y:0}),a(1);return}const C=k?.nodeWidth??280,X=k?.nodeHeight??100,A=Array.from(s.entries()),j=Math.min(...A.map(([,ee])=>ee.x)),B=Math.min(...A.map(([,ee])=>ee.y)),oe=Math.max(...A.map(([,ee])=>ee.x+C)),q=Math.max(...A.map(([ee,me])=>me.y+(k?.measuredHeights?.get(ee)??X))),L=Math.max(1,oe-j),J=Math.max(1,q-B),Q=Math.max(1,h-De*2),pe=Math.max(1,w-De*2),se=te(Math.min(Q/L,pe/J),ue,le),de=(h-L*se)/2-j*se,he=(w-J*se)/2-B*se;a(se),i(P({x:de,y:he},h,w,se))},[P,l]),u=t.useCallback((s,h)=>{if(M.current.set(s,h),M.current.size===2){const[w,k]=Array.from(M.current.values());T.current={distance:Math.hypot(w.x-k.x,w.y-k.y),zoom:b.current,pan:x.current,midpoint:{x:(w.x+k.x)/2,y:(w.y+k.y)/2}},z.current=null;return}z.current={start:h,panStart:x.current}},[]),S=t.useCallback((s,h,w,k)=>{if(M.current.has(s)&&M.current.set(s,h),M.current.size===2&&T.current){l(!1);const[A,j]=Array.from(M.current.values()),oe=Math.hypot(A.x-j.x,A.y-j.y)/Math.max(1,T.current.distance),q={x:(A.x+j.x)/2,y:(A.y+j.y)/2},L=te(T.current.zoom*oe,ue,le),J=L/T.current.zoom,Q=P({x:q.x-(T.current.midpoint.x-T.current.pan.x)*J,y:q.y-(T.current.midpoint.y-T.current.pan.y)*J},w,k);a(L),i(Q);return}const C=z.current;if(!C)return;l(!1);const X={x:C.panStart.x+(h.x-C.start.x),y:C.panStart.y+(h.y-C.start.y)};i(P(X,w,k))},[P,l]),p=t.useCallback(s=>{if(M.current.delete(s),M.current.size<2&&(T.current=null),M.current.size===1){const[h]=Array.from(M.current.values());z.current={start:h,panStart:x.current};return}M.current.size===0&&(z.current=null)},[]),U=t.useCallback((s,h,w,k)=>{l(!1);const C={x:x.current.x-s,y:x.current.y-h};i(P(C,w,k))},[P,l]),_=t.useCallback((s,h,w,k)=>{const C=s<0?1.1:.9;l(!1),N(b.current*C,h,w,k)},[l,N]),re=t.useCallback(s=>{E.current=s},[]),V=t.useCallback((s,h,w,k,C)=>{if(st(s.target))return;const X=s.metaKey||s.ctrlKey;if(s.key==="Escape"){s.preventDefault(),W();return}if(X){if(s.key==="="||s.key==="+"){s.preventDefault(),v(1.2,h,w);return}if(s.key==="-"){s.preventDefault(),v(1/1.2,h,w);return}if(s.key==="0"){s.preventDefault(),W();return}(s.key==="f"||s.key==="F")&&s.shiftKey&&(s.preventDefault(),Y(k,h,w,C))}},[Y,W,v]);return{pan:r,zoom:o,zoomPercent:m,transform:n,transitioning:d,zoomIn:G,zoomOut:Z,resetView:W,fitToGraph:Y,setAnimate:l,onPointerDown:u,onPointerMove:S,onPointerUp:p,onWheelPan:U,onWheelZoom:_,handleKeyDown:V,setGraphBounds:re}}function at(r){const{upstreamMap:i,downstreamMap:o}=t.useMemo(()=>{const d=new Map,c=new Map;for(const x of r)d.set(x.id,new Set(x.dependencies??[])),c.has(x.id)||c.set(x.id,new Set);for(const x of r)for(const b of x.dependencies??[])c.has(b)||c.set(b,new Set),c.get(b)?.add(x.id);return{upstreamMap:d,downstreamMap:c}},[r]);return{getChain:t.useCallback(d=>{if(!i.has(d)&&!o.has(d))return new Set;const c=new Set([d]),x=(b,I)=>{const z=[b],M=new Set([b]);for(;z.length>0;){const T=z.shift();if(!T)continue;const E=I.get(T);if(E)for(const n of E)M.has(n)||(M.add(n),c.add(n),z.push(n))}};return x(d,i),x(d,o),c},[o,i])}}const Me="fusion-plugin-dependency-graph:positions";function fe(r){if(!r||typeof r!="object")return!1;const i=r;return typeof i.x=="number"&&Number.isFinite(i.x)&&typeof i.y=="number"&&Number.isFinite(i.y)}function ct(r){const i=_e(Me,r);if(!i)return{};try{const o=JSON.parse(i);if(!o||typeof o!="object")return{};const a={};for(const[d,c]of Object.entries(o))fe(c)&&(a[d]=c);return a}catch{return{}}}function ut(r,i,o){const a={};for(const[d,c]of Object.entries(r))i.has(d)&&fe(c)&&(a[d]=c);Xe(Me,JSON.stringify(a),o)}function lt(r){je(Me,r)}function dt(r,i,o){const a={};for(const[d,c]of Object.entries(r))o.has(d)&&fe(c)&&(a[d]=c);for(const[d,c]of Object.entries(i))o.has(d)&&fe(c)&&(a[d]=c);return a}function ft(r,i){const o={};for(const[a,d]of Object.entries(r))i.has(a)&&(o[a]=d);return o}function pt({projectId:r,visibleTaskIds:i}){const[o,a]=t.useState(null);t.useEffect(()=>{a(ct(r))},[r]);const d=t.useCallback(x=>{ut(x,i,r),a(ft(x,i))},[r,i]),c=t.useCallback(()=>{lt(r),a(null)},[r]);return{savedPositions:o,persistPositions:d,clearSavedPositions:c}}const ce=280,ne=100,ht=768,Re=4;function mt({tasks:r,projectId:i,onOpenTaskDetail:o,onOpenDetail:a,addToast:d,globalPaused:c,onUpdateTask:x,onArchiveTask:b,onUnarchiveTask:I,onDeleteTask:z,onRetryTask:M,onOpenDetailWithTab:T,taskStuckTimeoutMs:E,onOpenMission:n,onMoveTask:m,lastFetchTimeMs:l,workflowStepNameLookup:P}){const N=t.useRef(null),v=t.useRef(null),G=t.useRef(!1),Z=t.useRef(new Map),[W,Y]=t.useState(null),[u,S]=t.useState(null),[p,U]=t.useState({width:0,height:0}),[_,re]=t.useState(new Map),V=t.useMemo(()=>tt(r),[r]),s=rt(V),{getChain:h}=at(V),w=W??u,k=t.useMemo(()=>w?h(w):new Set,[w,h]),C=t.useMemo(()=>{const e=p.width||(typeof window<"u"?window.innerWidth:0);return(p.height||(typeof window<"u"?window.innerHeight:0))>e||e<ht?"horizontal":"vertical"},[p.height,p.width]),X=t.useMemo(()=>({nodeWidth:ce,nodeHeight:ne,horizontalGap:40,verticalGap:80,orientation:C,measuredHeights:_}),[_,C]),A=t.useMemo(()=>ke(s,X),[s,X]),j=t.useMemo(()=>new Set(V.map(e=>e.id)),[V]),{savedPositions:B,persistPositions:oe,clearSavedPositions:q}=pt({projectId:i,visibleTaskIds:j}),[L,J]=t.useState(A),[Q,pe]=t.useState(!1);t.useEffect(()=>{const e={};for(const[g,D]of A.entries())e[g]=D;const f=B?dt(e,B,j):e;J(new Map(Object.entries(f)))},[A,B,j]),t.useEffect(()=>{const e=N.current;if(!e)return;const f=(D,O)=>{U(y=>y.width===D&&y.height===O?y:{width:D,height:O})};if(typeof ResizeObserver>"u"){f(e.clientWidth||(typeof window<"u"?window.innerWidth:0),e.clientHeight||(typeof window<"u"?window.innerHeight:0));return}f(e.clientWidth,e.clientHeight);const g=new ResizeObserver(D=>{const O=D[0];O&&f(O.contentRect.width,O.contentRect.height)});return g.observe(e),()=>g.disconnect()},[]),t.useEffect(()=>{const e=N.current;if(!e)return;const f=new Set(s.nodes.map(y=>y.task.id)),g=new Map;for(const y of f){const R=e.querySelector(`[data-testid="graph-task-node-${y}"]`);R&&g.set(y,R)}Z.current=g,re(y=>{let R=!1;const $=new Map;for(const[K,ae]of y.entries()){if(!f.has(K)){R=!0;continue}$.set(K,ae)}return R?$:y});const D=(y,R)=>{re($=>{const K=$.get(y);if(K!==void 0&&Math.abs(K-R)<1)return $;const ae=new Map($);return ae.set(y,R),ae})};for(const[y,R]of g.entries())D(y,R.offsetHeight||ne);if(typeof ResizeObserver>"u")return;const O=new ResizeObserver(y=>{for(const R of y){const $=R.target,K=Array.from(g.entries()).find(([,ae])=>ae===$)?.[0];K&&D(K,$.offsetHeight||ne)}});for(const y of g.values())O.observe(y);return()=>O.disconnect()},[s.nodes,L,p.height,p.width]);const{transform:se,zoom:de,transitioning:he,zoomIn:ee,zoomOut:me,resetView:Ie,fitToGraph:ge,onPointerDown:He,onPointerMove:ze,onPointerUp:be,onWheelPan:Ne,onWheelZoom:Oe,handleKeyDown:Ee,setGraphBounds:Pe}=it(),F=t.useMemo(()=>{const e=Array.from(L.values());if(e.length===0)return{minX:0,minY:0,maxX:0,maxY:0,width:0,height:0};const f=Math.min(...e.map(y=>y.x)),g=Math.min(...e.map(y=>y.y)),D=Math.max(...e.map(y=>y.x+ce)),O=Math.max(...Array.from(L.entries()).map(([y,R])=>R.y+(_.get(y)??ne)));return{minX:f,minY:g,maxX:D,maxY:O,width:Math.max(0,D-f),height:Math.max(0,O-g)}},[_,L]),ie=t.useMemo(()=>{if(L.size===0)return L;const e=new Map;for(const[f,g]of L.entries())e.set(f,{x:g.x-F.minX,y:g.y-F.minY});return e},[F.minX,F.minY,L]);t.useEffect(()=>{Pe({minX:0,minY:0,maxX:F.width,maxY:F.height})},[F.height,F.width,Pe]);const Se=t.useMemo(()=>Array.from(ie.keys()).sort().join("|"),[ie]),ye=t.useMemo(()=>[Se,p.width,p.height,F.width,F.height,Array.from(_.entries()).sort(([e],[f])=>e.localeCompare(f)).map(([e,f])=>`${e}:${Math.round(f)}`).join("|")].join("::"),[F.height,F.width,Se,_,p.height,p.width]),Te=t.useRef(null);t.useEffect(()=>{if(V.length===0||ie.size===0)return;const e=N.current;if(!e)return;const f=e.clientWidth||p.width,g=e.clientHeight||p.height;if(f===0||g===0||Te.current===ye)return;let D=0,O=0;const y=()=>{const R=N.current;if(!R)return;const $=R.clientWidth||p.width,K=R.clientHeight||p.height;$===0||K===0||(ge(ie,$,K,{nodeWidth:ce,nodeHeight:ne,measuredHeights:_}),Te.current=ye)};return typeof requestAnimationFrame=="function"?D=requestAnimationFrame(()=>{O=requestAnimationFrame(y)}):y(),()=>{D&&cancelAnimationFrame(D),O&&cancelAnimationFrame(O)}},[V.length,ye,ge,_,ie,p.height,p.width]);const Ce=t.useCallback(()=>{q();const e=ke(s,X);J(e)},[q,s,X]),Ae=t.useCallback(()=>{const e={};for(const[f,g]of L.entries())e[f]=g;oe(e)},[oe,L]);return H.jsxs("section",{className:"dependency-graph","data-testid":"dependency-graph",children:[H.jsx("div",{ref:N,className:"dependency-graph__viewport",onPointerDown:e=>{Q||(v.current={x:e.clientX,y:e.clientY},G.current=!1,He(e.pointerId,{x:e.clientX,y:e.clientY}))},onPointerMove:e=>{if(Q)return;const f=N.current;if(!f)return;const g=v.current;if(g){const D=Math.abs(e.clientX-g.x),O=Math.abs(e.clientY-g.y);(D>Re||O>Re)&&(G.current=!0)}ze(e.pointerId,{x:e.clientX,y:e.clientY},f.clientWidth,f.clientHeight)},onPointerUp:e=>{Q||be(e.pointerId),v.current=null},onPointerCancel:e=>{Q||be(e.pointerId),v.current=null,G.current=!1},onWheel:e=>{e.preventDefault();const f=N.current;if(f){if(e.ctrlKey||e.metaKey){const g=f.getBoundingClientRect();Oe(e.deltaY,{x:e.clientX-g.left,y:e.clientY-g.top},f.clientWidth,f.clientHeight);return}Ne(e.deltaX,e.deltaY,f.clientWidth,f.clientHeight)}},onKeyDown:e=>{const f=N.current;f&&Ee(e,f.clientWidth,f.clientHeight,ie,{nodeWidth:ce,nodeHeight:ne,measuredHeights:_})},tabIndex:0,onClick:()=>{G.current||Q||S(null)},children:V.length===0?H.jsx("div",{className:"dependency-graph__empty",children:"No active tasks to display in graph view."}):H.jsxs("div",{className:`graph-canvas-transform${he?" graph-canvas-transform--animate":""}`,style:{transform:se,width:`${F.width}px`,height:`${F.height}px`},children:[H.jsx(Qe,{edges:s.edges,positions:ie,nodeWidth:ce,nodeHeight:ne,nodeHeights:_,highlightedEdgeIds:k.size>0?new Set(s.edges.filter(e=>k.has(e.source)&&k.has(e.target)).map(e=>`${e.source}->${e.target}`)):void 0}),H.jsx("div",{className:"dependency-graph__nodes-layer",children:s.nodes.map(e=>{const f=ie.get(e.task.id);return f?H.jsx(Ke,{task:e.task,projectId:i,isSelected:u===e.task.id,style:{minHeight:`${ne}px`,left:`${f.x}px`,top:`${f.y}px`},position:f,scale:de,onNodePositionChange:(g,D)=>{J(O=>{const y={x:D.x+F.minX,y:D.y+F.minY},R=O.get(g);if(R&&R.x===y.x&&R.y===y.y)return O;const $=new Map(O);return $.set(g,y),$})},onNodeDragStateChange:pe,onNodeDragEnd:Ae,isHighlighted:k.size>0&&k.has(e.task.id),isDimmed:k.size>0&&!k.has(e.task.id),onOpenDetail:a??(g=>o?.(g.id)),addToast:d??(()=>{}),globalPaused:c,onUpdateTask:x,onArchiveTask:b,onUnarchiveTask:I,onDeleteTask:z,onRetryTask:M,onOpenDetailWithTab:T,taskStuckTimeoutMs:E,onOpenMission:n,onMoveTask:m,lastFetchTimeMs:l,workflowStepNameLookup:P,onMouseEnter:()=>Y(e.task.id),onMouseLeave:()=>Y(null),onClick:g=>{g.stopPropagation(),G.current=!1,S(D=>D===e.task.id?null:e.task.id)}},e.task.id):null})})]})}),H.jsx(Ve,{zoom:de,onZoomIn:()=>{const e=N.current;e&&ee(e.clientWidth,e.clientHeight)},onZoomOut:()=>{const e=N.current;e&&me(e.clientWidth,e.clientHeight)},onFitToGraph:()=>{Ce();const e=N.current;if(!e)return;const f=ke(s,X),g=new Map,D=Array.from(f.values()),O=D.length>0?Math.min(...D.map(R=>R.x)):0,y=D.length>0?Math.min(...D.map(R=>R.y)):0;for(const[R,$]of f.entries())g.set(R,{x:$.x-O,y:$.y-y});ge(g,e.clientWidth,e.clientHeight,{nodeWidth:ce,nodeHeight:ne,measuredHeights:_})},onResetView:()=>{Ce(),Ie()}})]})}function gt(r){return new Map((r??[]).map(i=>[i.id,i.name]))}function St({context:r}){return t.createElement(mt,{tasks:r?.tasks??[],projectId:r?.projectId,workflowStepNameLookup:gt(r?.workflowSteps),onOpenDetail:r?.openTaskDetail})}export{mt as DependencyGraph,St as DependencyGraphDashboardView,St as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ce-view{display:flex;color:var(--text);flex:1 1 auto;flex-direction:column;min-width:0;min-height:0;width:100%;height:100%;box-sizing:border-box;overflow:hidden}.ce-view-body{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--space-lg);min-width:0;min-height:0;padding:var(--space-lg) calc(var(--space-lg) + var(--space-xs)) var(--space-lg);box-sizing:border-box;overflow:auto}.ce-view-summary{font-size:.8rem;color:var(--text-muted)}.ce-loading,.ce-view-error{padding:var(--space-md) var(--space-lg);font-size:.85rem}.ce-view-error{color:var(--color-error)}.ce-empty{max-width:36rem;padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-md);align-items:flex-start}.ce-empty h3{margin:0}.ce-empty-hint{color:var(--text-muted);font-size:.85rem}.ce-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(var(--space-2xl) * 9),1fr));gap:var(--space-lg)}.ce-group{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm)}.ce-group[data-empty=true]{color:var(--text-muted)}.ce-group-header{display:flex;align-items:center;justify-content:space-between}.ce-group-header h3{margin:0;font-size:.95rem}.ce-group-count{font-size:.75rem;color:var(--text-dim)}.ce-group-empty{margin:0;font-size:.8rem;color:var(--text-dim)}.ce-artifact-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:calc(var(--space-sm) - var(--space-xs) / 2)}.ce-artifact{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);font-size:.85rem}.ce-artifact.is-selected{font-weight:600}.ce-artifact-btn{background:none;border:none;text-align:left;cursor:pointer;display:flex;flex-direction:column;color:inherit;padding:var(--space-xs) 0;flex:1}.ce-artifact-path{font-size:.7rem;color:var(--text-dim)}.ce-artifact-open{appearance:none;background:none;border:none;color:var(--color-info);cursor:pointer;font:inherit;padding:0;text-decoration:underline}.ce-artifact-open:hover,.ce-artifact-open:focus-visible{color:var(--color-info)}.ce-artifact-error .ce-artifact-error-msg{color:var(--color-error);font-size:.78rem}.ce-artifact-error{flex-direction:column;align-items:flex-start;gap:calc(var(--space-xs) / 2)}.ce-view[data-mobile=true] .ce-view-body{width:100%;padding:var(--space-sm)}.ce-view[data-mobile=true] .ce-groups{grid-template-columns:1fr}.ce-view[data-mobile=true] .ce-flow-header,.ce-view[data-mobile=true] .ce-flow-guidance-row{align-items:stretch;flex-direction:column}.ce-view[data-mobile=true] .ce-view-start,.ce-view[data-mobile=true] .ce-flow-close,.ce-view[data-mobile=true] .ce-flow-cancel{margin-left:0}.ce-view[data-mobile=true] .ce-flow-turn{max-width:100%}@media(max-width:768px){.ce-view-body{width:100%;padding:var(--space-sm)}.ce-flow-header,.ce-flow-guidance-row{align-items:stretch;flex-direction:column}.ce-session-row{align-items:stretch;flex-direction:row}.ce-session-open{flex-wrap:wrap}.ce-flow-turn{max-width:100%}.ce-view-start,.ce-session-cancel,.ce-session-discard,.ce-flow-cancel,.ce-flow-close{margin-left:0}}.ce-launcher{margin:var(--space-md) 0}.ce-launcher-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(var(--space-2xl) * 4.5),1fr));gap:var(--space-sm)}.ce-launcher-tile{width:100%;display:flex;align-items:center;gap:var(--space-sm)}.ce-launcher-icon{flex:none}.ce-view-start{margin-left:auto}.ce-flow{margin:var(--space-md) 0;display:flex;flex:1 1 auto;flex-direction:column;gap:calc(var(--space-sm) + var(--space-xs) / 2);min-height:0;overflow-y:auto}.ce-flow-header{display:flex;align-items:center;gap:var(--space-sm)}.ce-flow-header h3{margin:0;text-transform:capitalize}.ce-flow-status{font-size:.72rem;color:var(--text-muted);text-transform:capitalize}.ce-flow-cancel,.ce-flow-close{margin-left:auto}.ce-flow-cancel+.ce-flow-close{margin-left:0}.ce-flow-transcript{list-style:none;margin:0;padding:0;display:flex;flex:1 1 auto;flex-direction:column;gap:calc(var(--space-sm) - var(--space-xs) / 2);min-height:0;overflow-y:auto}.ce-flow-turn{display:flex;flex-direction:column}.ce-flow-turn-role{font-size:.65rem;text-transform:uppercase;color:var(--text-dim)}.ce-flow-turn-agent .ce-flow-turn-text{white-space:pre-wrap}.ce-flow-thinking{font-style:italic;color:var(--text-muted)}.ce-flow-question-panel,.ce-flow-question{display:flex;flex-direction:column;gap:var(--space-sm)}.ce-flow-question{gap:var(--space-xs)}.ce-flow-question-text{font-weight:600;margin:0}.ce-flow-question-desc{font-size:.8rem;color:var(--text-muted);margin:0}.ce-flow-text{display:flex;flex-direction:column;gap:var(--space-xs)}.ce-flow-text textarea,.ce-flow-guidance-row textarea{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-primary);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.ce-flow-text textarea{width:100%;resize:vertical}.ce-flow-text textarea:focus,.ce-flow-guidance-row textarea:focus{border-color:var(--todo);box-shadow:var(--focus-ring)}.ce-flow-text textarea::placeholder,.ce-flow-guidance-row textarea::placeholder{color:var(--text-dim)}.ce-flow-confirm{display:flex;gap:var(--space-sm)}.ce-flow-options,.ce-flow-options ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:calc(var(--space-sm) - var(--space-xs) / 2)}.ce-flow-option{width:100%;text-align:left;display:flex;flex-direction:column}.ce-flow-option-desc{font-size:.72rem;color:var(--text-muted)}.ce-flow-checkbox{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.ce-flow-checkbox:hover{background:var(--card-hover);border-color:var(--text-muted)}.ce-flow-checkbox:has(input:focus-visible){border-color:var(--todo);box-shadow:var(--focus-ring)}.ce-flow-checkbox-input{width:var(--space-lg);height:var(--space-lg);margin:0;accent-color:var(--todo)}.ce-flow-error{color:var(--color-error);font-size:.82rem}.ce-flow-degraded{border:1px dashed var(--color-warning);border-radius:var(--radius-sm);padding:calc(var(--space-sm) + var(--space-xs) / 2);background:color-mix(in srgb,var(--color-warning) 8%,transparent)}.ce-flow-degraded-banner{margin:0 0 var(--space-xs);font-size:.78rem;font-weight:600;color:var(--color-warning)}.ce-flow-degraded-options{font-size:.78rem;color:var(--text-muted);margin:0 0 var(--space-xs);padding-left:calc(var(--space-lg) + var(--space-xs) / 2)}.ce-sessions{margin-bottom:var(--space-md)}.ce-sessions-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:calc(var(--space-sm) - var(--space-xs) / 2)}.ce-session-row{display:flex;align-items:center;gap:var(--space-sm)}.ce-session-row.is-active .ce-session-open{border-color:var(--todo);background:color-mix(in srgb,var(--todo) 8%,transparent)}.ce-session-open{flex:1 1 auto;min-width:0;display:flex;align-items:baseline;justify-content:flex-start;gap:calc(var(--space-sm) + var(--space-xs) / 2);text-align:left;padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer}.ce-session-open:hover:not(:disabled){background:var(--card-hover);border-color:var(--text-muted)}.ce-session-open:disabled{cursor:default;opacity:.6}.ce-session-stage{font-weight:600}.ce-session-status{font-size:.74rem;text-transform:capitalize;color:var(--text-muted)}.ce-session-status-awaiting_input{color:var(--color-warning);font-weight:600}.ce-session-status-error,.ce-session-status-interrupted{color:var(--color-error)}.ce-session-status-completed{color:var(--color-success)}.ce-session-updated{margin-left:auto;font-size:.72rem;color:var(--text-dim)}.ce-session-cancel,.ce-session-discard{flex:none}.ce-session-cancel,.ce-flow-cancel{appearance:none;display:inline-flex;align-items:center;justify-content:center;width:calc(var(--space-xl) + var(--space-sm));height:calc(var(--space-xl) + var(--space-sm));padding:var(--space-xs);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-error);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast)}.ce-session-cancel:hover:not(:disabled),.ce-flow-cancel:hover:not(:disabled){background:color-mix(in srgb,var(--color-error) 10%,transparent);color:var(--color-error)}.ce-session-cancel:focus-visible,.ce-flow-cancel:focus-visible{box-shadow:var(--focus-ring);outline:none}.ce-session-cancel:disabled,.ce-flow-cancel:disabled{cursor:default;opacity:.6}.ce-flow-transcript{list-style:none;margin:0 0 var(--space-md);padding:0;display:flex;flex:1 1 auto;flex-direction:column;gap:calc(var(--space-sm) - var(--space-xs) / 4);min-height:0;overflow-y:auto}.ce-flow-turn{display:flex;flex-direction:column;gap:calc(var(--space-xs) / 2);max-width:85%;padding:calc(var(--space-sm) - var(--space-xs) / 4) calc(var(--space-sm) + var(--space-xs) / 2);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--border) 30%,transparent)}.ce-flow-turn-user{align-self:flex-end;background:color-mix(in srgb,var(--todo) 12%,transparent)}.ce-flow-turn-role{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim)}.ce-flow-turn-text{white-space:pre-wrap;word-break:break-word;font-size:.86rem}.ce-flow-turn-answer.is-steering{border-left:3px solid var(--color-warning)}.ce-flow-turn-comment{font-size:.78rem;font-style:italic;color:var(--text-muted);border-top:1px dashed color-mix(in srgb,var(--border) 60%,transparent);padding-top:var(--space-xs)}.ce-flow-turn-done{align-self:center;background:color-mix(in srgb,var(--color-success) 10%,transparent);font-size:.8rem}.ce-flow-artifact-path{color:var(--text-dim)}.ce-flow-turn-activity{background:transparent;padding:0;max-width:100%}.ce-flow-activity-details summary{cursor:pointer;font-size:.78rem;color:var(--text-muted)}.ce-flow-activity{display:flex;flex-direction:column;gap:var(--space-xs);margin:calc(var(--space-sm) - var(--space-xs) / 2) 0 0;padding:var(--space-sm) calc(var(--space-sm) + var(--space-xs) / 2);border:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--border) 12%,transparent);max-height:16rem;overflow-y:auto}.ce-activity-block{margin:0;font-size:.76rem;white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono, ui-monospace, monospace)}.ce-activity-thinking{color:var(--text-dim);font-style:italic}.ce-activity-tool{font-size:.76rem;font-family:var(--font-mono, ui-monospace, monospace)}.ce-activity-tool.is-running .ce-activity-tool-marker{color:var(--todo)}.ce-activity-tool.is-done .ce-activity-tool-marker{color:var(--color-success)}.ce-activity-tool.is-error .ce-activity-tool-marker{color:var(--color-error)}.ce-flow-working{margin:var(--space-xs) 0}.ce-flow-working-label{display:flex;align-items:center;gap:calc(var(--space-sm) - var(--space-xs) / 4);margin:0 0 calc(var(--space-sm) - var(--space-xs) / 2);font-size:.82rem;color:var(--text-muted)}.ce-flow-pulse{width:var(--space-sm);height:var(--space-sm);border-radius:50%;background:var(--todo);animation:ce-pulse 1.2s ease-in-out infinite}@keyframes ce-pulse{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.ce-flow-guidance{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px dashed color-mix(in srgb,var(--border) 70%,transparent)}.ce-flow-guidance-label{display:block;font-size:.74rem;color:var(--text-dim);margin-bottom:calc(var(--space-sm) - var(--space-xs) / 2)}.ce-flow-guidance-row{display:flex;gap:var(--space-xs);align-items:flex-end}.ce-flow-guidance-row textarea{flex:1;resize:vertical}.ce-flow-recover,.ce-flow-complete{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.ce-flow-recover p,.ce-flow-complete p{margin:0}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function J(n){return Math.abs(n=Math.round(n))>=1e21?n.toLocaleString("en").replace(/,/g,""):n.toString(10)}function j(n,t){if(!isFinite(n)||n===0)return null;var e=(n=t?n.toExponential(t-1):n.toExponential()).indexOf("e"),i=n.slice(0,e);return[i.length>1?i[0]+i.slice(2):i,+n.slice(e+1)]}function K(n){return n=j(Math.abs(n)),n?n[1]:NaN}function Q(n,t){return function(e,i){for(var o=e.length,a=[],c=0,h=n[0],M=0;o>0&&h>0&&(M+h+1>i&&(h=Math.max(1,i-M)),a.push(e.substring(o-=h,o+h)),!((M+=h+1)>i));)h=n[c=(c+1)%n.length];return a.reverse().join(t)}}function V(n){return function(t){return t.replace(/[0-9]/g,function(e){return n[+e]})}}var W=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function $(n){if(!(t=W.exec(n)))throw new Error("invalid format: "+n);var t;return new L({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}$.prototype=L.prototype;function L(n){this.fill=n.fill===void 0?" ":n.fill+"",this.align=n.align===void 0?">":n.align+"",this.sign=n.sign===void 0?"-":n.sign+"",this.symbol=n.symbol===void 0?"":n.symbol+"",this.zero=!!n.zero,this.width=n.width===void 0?void 0:+n.width,this.comma=!!n.comma,this.precision=n.precision===void 0?void 0:+n.precision,this.trim=!!n.trim,this.type=n.type===void 0?"":n.type+""}L.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function _(n){n:for(var t=n.length,e=1,i=-1,o;e<t;++e)switch(n[e]){case".":i=o=e;break;case"0":i===0&&(i=e),o=e;break;default:if(!+n[e])break n;i>0&&(i=0);break}return i>0?n.slice(0,i)+n.slice(o+1):n}var N;function v(n,t){var e=j(n,t);if(!e)return N=void 0,n.toPrecision(t);var i=e[0],o=e[1],a=o-(N=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,c=i.length;return a===c?i:a>c?i+new Array(a-c+1).join("0"):a>0?i.slice(0,a)+"."+i.slice(a):"0."+new Array(1-a).join("0")+j(n,Math.max(0,t+a-1))[0]}function X(n,t){var e=j(n,t);if(!e)return n+"";var i=e[0],o=e[1];return o<0?"0."+new Array(-o).join("0")+i:i.length>o+1?i.slice(0,o+1)+"."+i.slice(o+1):i+new Array(o-i.length+2).join("0")}const O={"%":(n,t)=>(n*100).toFixed(t),b:n=>Math.round(n).toString(2),c:n=>n+"",d:J,e:(n,t)=>n.toExponential(t),f:(n,t)=>n.toFixed(t),g:(n,t)=>n.toPrecision(t),o:n=>Math.round(n).toString(8),p:(n,t)=>X(n*100,t),r:X,s:v,X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function R(n){return n}var U=Array.prototype.map,Y=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function nn(n){var t=n.grouping===void 0||n.thousands===void 0?R:Q(U.call(n.grouping,Number),n.thousands+""),e=n.currency===void 0?"":n.currency[0]+"",i=n.currency===void 0?"":n.currency[1]+"",o=n.decimal===void 0?".":n.decimal+"",a=n.numerals===void 0?R:V(U.call(n.numerals,String)),c=n.percent===void 0?"%":n.percent+"",h=n.minus===void 0?"−":n.minus+"",M=n.nan===void 0?"NaN":n.nan+"";function T(f,g){f=$(f);var b=f.fill,p=f.align,m=f.sign,w=f.symbol,S=f.zero,E=f.width,F=f.comma,y=f.precision,C=f.trim,d=f.type;d==="n"?(F=!0,d="g"):O[d]||(y===void 0&&(y=12),C=!0,d="g"),(S||b==="0"&&p==="=")&&(S=!0,b="0",p="=");var q=(g&&g.prefix!==void 0?g.prefix:"")+(w==="$"?e:w==="#"&&/[boxX]/.test(d)?"0"+d.toLowerCase():""),B=(w==="$"?i:/[%p]/.test(d)?c:"")+(g&&g.suffix!==void 0?g.suffix:""),D=O[d],H=/[defgprs%]/.test(d);y=y===void 0?6:/[gprs]/.test(d)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y));function G(r){var l=q,u=B,x,I,k;if(d==="c")u=D(r)+u,r="";else{r=+r;var P=r<0||1/r<0;if(r=isNaN(r)?M:D(Math.abs(r),y),C&&(r=_(r)),P&&+r==0&&m!=="+"&&(P=!1),l=(P?m==="("?m:h:m==="-"||m==="("?"":m)+l,u=(d==="s"&&!isNaN(r)&&N!==void 0?Y[8+N/3]:"")+u+(P&&m==="("?")":""),H){for(x=-1,I=r.length;++x<I;)if(k=r.charCodeAt(x),48>k||k>57){u=(k===46?o+r.slice(x+1):r.slice(x))+u,r=r.slice(0,x);break}}}F&&!S&&(r=t(r,1/0));var z=l.length+r.length+u.length,s=z<E?new Array(E-z+1).join(b):"";switch(F&&S&&(r=t(s+r,s.length?E-u.length:1/0),s=""),p){case"<":r=l+r+u+s;break;case"=":r=l+s+r+u;break;case"^":r=s.slice(0,z=s.length>>1)+l+r+u+s.slice(z);break;default:r=s+l+r+u;break}return a(r)}return G.toString=function(){return f+""},G}function Z(f,g){var b=Math.max(-8,Math.min(8,Math.floor(K(g)/3)))*3,p=Math.pow(10,-b),m=T((f=$(f),f.type="f",f),{suffix:Y[8+b/3]});return function(w){return m(p*w)}}return{format:T,formatPrefix:Z}}var A,tn,rn;en({thousands:",",grouping:[3],currency:["$",""]});function en(n){return A=nn(n),tn=A.format,rn=A.formatPrefix,A}export{rn as a,tn as b,K as e,$ as f};
|
|
@@ -0,0 +1,43 @@
|
|
|
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-Ch4HatqA.js";import{p as H}from"./chunk-4BX2VUAB-DcVdctr0.js";import{p as V}from"./wardley-L42UT6IY-BnhBteen.js";import"./index-CZcWjLAb.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-GF3RlKbq.js";import"./vendor-reactflow-Bg-Qjzh8.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.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
|
+
.radarCurve-${r} {
|
|
3
|
+
color: ${s};
|
|
4
|
+
fill: ${s};
|
|
5
|
+
fill-opacity: ${t.curveOpacity};
|
|
6
|
+
stroke: ${s};
|
|
7
|
+
stroke-width: ${t.curveStrokeWidth};
|
|
8
|
+
}
|
|
9
|
+
.radarLegendBox-${r} {
|
|
10
|
+
fill: ${s};
|
|
11
|
+
fill-opacity: ${t.curveOpacity};
|
|
12
|
+
stroke: ${s};
|
|
13
|
+
}
|
|
14
|
+
`}return e},"genIndexStyles"),it=l(a=>{const t=W(),e=C(),r=y(t,e.themeVariables),s=y(r.radar,a);return{themeVariables:r,radarOptions:s}},"buildRadarStyleOptions"),lt=l(({radar:a}={})=>{const{themeVariables:t,radarOptions:e}=it(a);return`
|
|
15
|
+
.radarTitle {
|
|
16
|
+
font-size: ${t.fontSize};
|
|
17
|
+
color: ${t.titleColor};
|
|
18
|
+
dominant-baseline: hanging;
|
|
19
|
+
text-anchor: middle;
|
|
20
|
+
}
|
|
21
|
+
.radarAxisLine {
|
|
22
|
+
stroke: ${e.axisColor};
|
|
23
|
+
stroke-width: ${e.axisStrokeWidth};
|
|
24
|
+
}
|
|
25
|
+
.radarAxisLabel {
|
|
26
|
+
dominant-baseline: middle;
|
|
27
|
+
text-anchor: middle;
|
|
28
|
+
font-size: ${e.axisLabelFontSize}px;
|
|
29
|
+
color: ${e.axisColor};
|
|
30
|
+
}
|
|
31
|
+
.radarGraticule {
|
|
32
|
+
fill: ${e.graticuleColor};
|
|
33
|
+
fill-opacity: ${e.graticuleOpacity};
|
|
34
|
+
stroke: ${e.graticuleColor};
|
|
35
|
+
stroke-width: ${e.graticuleStrokeWidth};
|
|
36
|
+
}
|
|
37
|
+
.radarLegendText {
|
|
38
|
+
text-anchor: start;
|
|
39
|
+
font-size: ${e.legendFontSize}px;
|
|
40
|
+
dominant-baseline: hanging;
|
|
41
|
+
}
|
|
42
|
+
${ot(t,e)}
|
|
43
|
+
`},"styles"),ft={parser:tt,db:$,renderer:nt,styles:lt};export{ft as diagram};
|
|
@@ -0,0 +1,10 @@
|
|
|
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-Ch4HatqA.js";import{p as $}from"./chunk-4BX2VUAB-DcVdctr0.js";import{I as z}from"./chunk-QZHKN3VN-CgprKcZo.js";import{p as A}from"./wardley-L42UT6IY-BnhBteen.js";import"./index-CZcWjLAb.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-GF3RlKbq.js";import"./vendor-reactflow-Bg-Qjzh8.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.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
|
+
`+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
|
+
.treeView-node-label {
|
|
4
|
+
font-size: ${t};
|
|
5
|
+
fill: ${r};
|
|
6
|
+
}
|
|
7
|
+
.treeView-node-line {
|
|
8
|
+
stroke: ${i};
|
|
9
|
+
}
|
|
10
|
+
`},"styles"),P=O,de={db:w,renderer:j,parser:F,styles:P};export{de as diagram};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{p as re}from"./chunk-4BX2VUAB-DcVdctr0.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-Ch4HatqA.js";import{p as pe,i as be}from"./wardley-L42UT6IY-BnhBteen.js";import{s as ve}from"./vendor-reactflow-Bg-Qjzh8.js";import"./index-CZcWjLAb.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-GF3RlKbq.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.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),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
|
+
`,"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};
|
|
@@ -0,0 +1,24 @@
|
|
|
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-Ch4HatqA.js";import{p as W}from"./chunk-4BX2VUAB-DcVdctr0.js";import{p as _}from"./wardley-L42UT6IY-BnhBteen.js";import"./index-CZcWjLAb.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-GF3RlKbq.js";import"./vendor-reactflow-Bg-Qjzh8.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.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
|
+
.packetByte {
|
|
3
|
+
font-size: ${e.byteFontSize};
|
|
4
|
+
}
|
|
5
|
+
.packetByte.start {
|
|
6
|
+
fill: ${e.startByteColor};
|
|
7
|
+
}
|
|
8
|
+
.packetByte.end {
|
|
9
|
+
fill: ${e.endByteColor};
|
|
10
|
+
}
|
|
11
|
+
.packetLabel {
|
|
12
|
+
fill: ${e.labelColor};
|
|
13
|
+
font-size: ${e.labelFontSize};
|
|
14
|
+
}
|
|
15
|
+
.packetTitle {
|
|
16
|
+
fill: ${e.titleColor};
|
|
17
|
+
font-size: ${e.titleFontSize};
|
|
18
|
+
}
|
|
19
|
+
.packetBlock {
|
|
20
|
+
stroke: ${e.blockStrokeColor};
|
|
21
|
+
stroke-width: ${e.blockStrokeWidth};
|
|
22
|
+
fill: ${e.blockFillColor};
|
|
23
|
+
}
|
|
24
|
+
`},"styles"),et={parser:v,get db(){return new w},renderer:I,styles:O};export{et as diagram};
|
|
@@ -0,0 +1,24 @@
|
|
|
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-Ch4HatqA.js";import{s as we}from"./chunk-2J33WTMH-BGeuCz9C.js";import{p as Ce}from"./chunk-4BX2VUAB-DcVdctr0.js";import{p as Te}from"./wardley-L42UT6IY-BnhBteen.js";import{s as Y}from"./vendor-reactflow-Bg-Qjzh8.js";import{b as I}from"./defaultLocale-DX6XiGOO.js";import{o as U}from"./ordinal-DILIJJjt.js";import"./index-CZcWjLAb.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-GF3RlKbq.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.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
|
+
.treemapNode.section {
|
|
3
|
+
stroke: ${r.sectionStrokeColor};
|
|
4
|
+
stroke-width: ${r.sectionStrokeWidth};
|
|
5
|
+
fill: ${r.sectionFillColor};
|
|
6
|
+
}
|
|
7
|
+
.treemapNode.leaf {
|
|
8
|
+
stroke: ${r.leafStrokeColor};
|
|
9
|
+
stroke-width: ${r.leafStrokeWidth};
|
|
10
|
+
fill: ${r.leafFillColor};
|
|
11
|
+
}
|
|
12
|
+
.treemapLabel {
|
|
13
|
+
fill: ${d};
|
|
14
|
+
font-size: ${r.labelFontSize};
|
|
15
|
+
}
|
|
16
|
+
.treemapValue {
|
|
17
|
+
fill: ${h};
|
|
18
|
+
font-size: ${r.valueFontSize};
|
|
19
|
+
}
|
|
20
|
+
.treemapTitle {
|
|
21
|
+
fill: ${o};
|
|
22
|
+
font-size: ${r.titleFontSize};
|
|
23
|
+
}
|
|
24
|
+
`},"getStyles"),it=st,Ct={parser:le,get db(){return new ae},renderer:lt,styles:it};export{Ct as diagram};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import{g as Mt}from"./chunk-55IACEB6-Dg6gDigQ.js";import{s as Bt}from"./chunk-2J33WTMH-BGeuCz9C.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-Ch4HatqA.js";import{s as qt}from"./vendor-reactflow-Bg-Qjzh8.js";import{c as Jt}from"./channel-Clzpzu32.js";import"./index-CZcWjLAb.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-GF3RlKbq.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.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
|
+
`+_.showPosition()+`
|
|
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
|
+
`+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()+`
|
|
5
|
+
`+o+"^"},"showPosition"),test_match:l(function(n,o){var c,r,p;if(this.options.backtrack_lexer&&(p={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(p.yylloc.range=this.yylloc.range.slice(0))),r=n[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+n[0].length},this.yytext+=n[0],this.match+=n[0],this.matches=n,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(n[0].length),this.matched+=n[0],c=this.performAction.call(this,this.yy,this,o,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var t in p)this[t]=p[t];return!1}return!1},"test_match"),next:l(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var n,o,c,r;this._more||(this.yytext="",this.match="");for(var p=this._currentRules(),t=0;t<p.length;t++)if(c=this._input.match(this.rules[p[t]]),c&&(!o||c[0].length>o[0].length)){if(o=c,r=t,this.options.backtrack_lexer){if(n=this.test_match(c,p[t]),n!==!1)return n;if(this._backtrack){o=!1;continue}else return!1}else if(!this.options.flex)break}return o?(n=this.test_match(o,p[r]),n!==!1?n:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
|
|
6
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:l(function(){var o=this.next();return o||this.lex()},"lex"),begin:l(function(o){this.conditionStack.push(o)},"begin"),popState:l(function(){var o=this.conditionStack.length-1;return o>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:l(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:l(function(o){return o=this.conditionStack.length-1-Math.abs(o||0),o>=0?this.conditionStack[o]:"INITIAL"},"topState"),pushState:l(function(o){this.begin(o)},"pushState"),stateStackSize:l(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:l(function(o,c,r,p){switch(r){case 0:return this.begin("acc_title"),24;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),26;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 33;case 8:return 34;case 9:return 35;case 10:return 36;case 11:return 10;case 12:break;case 13:return 8;case 14:return 50;case 15:return 72;case 16:return 4;case 17:return this.begin("block"),17;case 18:return 49;case 19:return 49;case 20:return 42;case 21:return 15;case 22:return 13;case 23:break;case 24:return 61;case 25:return 58;case 26:return 58;case 27:return 62;case 28:break;case 29:return this.popState(),19;case 30:return c.yytext[0];case 31:return 20;case 32:return 21;case 33:return this.begin("style"),44;case 34:return this.popState(),10;case 35:break;case 36:return 13;case 37:return 42;case 38:return 49;case 39:return this.begin("style"),37;case 40:return 43;case 41:return 65;case 42:return 67;case 43:return 67;case 44:return 67;case 45:return 65;case 46:return 65;case 47:return 66;case 48:return 66;case 49:return 66;case 50:return 66;case 51:return 66;case 52:return 67;case 53:return 66;case 54:return 67;case 55:return 68;case 56:return 68;case 57:return 51;case 58:return 68;case 59:return 68;case 60:return 68;case 61:return 52;case 62:return 48;case 63:return 68;case 64:return 65;case 65:return 66;case 66:return 67;case 67:return 69;case 68:return 70;case 69:return 71;case 70:return 71;case 71:return 70;case 72:return 70;case 73:return 70;case 74:return 41;case 75:return 47;case 76:return 40;case 77:return c.yytext[0];case 78:return 6}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:#)/i,/^(?:#)/i,/^(?:,)/i,/^(?::::)/i,/^(?::)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:([^\s]*)[~].*[~]([^\s]*))/i,/^(?:([\*A-Za-z_\u00C0-\uFFFF][A-Za-z0-9\-\_\[\]\(\)\u00C0-\uFFFF\*]*))/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:style\b)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?::)/i,/^(?:,)/i,/^(?:#)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:[0-9]+\.[0-9]+)/i,/^(?:1(?=\s+[A-Za-z_"']))/i,/^(?:1(?=\s+[0-9]))/i,/^(?:1(?=(--|\.\.|\.-|-\.)))/i,/^(?:1\b)/i,/^(?:[0-9]+)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:u(?=[\.\-\|]))/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:;)/i,/^(?:([^\x00-\x7F]|\w|-|\*|\.)+)/i,/^(?:.)/i,/^(?:$)/i],conditions:{style:{rules:[34,35,36,37,38,74,75],inclusive:!1},acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[23,24,25,26,27,28,29,30],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,31,32,33,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,76,77,78],inclusive:!0}}};return I})();ut.lexer=vt;function $(){this.yy={}}return l($,"Parser"),$.prototype=ut,ut.Parser=$,new $})();_t.parser=_t;var $t=_t,te=class{constructor(){this.entities=new Map,this.relationships=[],this.classes=new Map,this.direction="TB",this.Cardinality={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},this.Identification={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},this.setAccTitle=Ft,this.getAccTitle=Yt,this.setAccDescription=Pt,this.getAccDescription=zt,this.setDiagramTitle=Gt,this.getDiagramTitle=Kt,this.getConfig=l(()=>it().er,"getConfig"),this.clear(),this.addEntity=this.addEntity.bind(this),this.addAttributes=this.addAttributes.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setDirection=this.setDirection.bind(this),this.addCssStyles=this.addCssStyles.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}static{l(this,"ErDB")}addEntity(e,i=""){return this.entities.has(e)?!this.entities.get(e)?.alias&&i&&(this.entities.get(e).alias=i,V.info(`Add alias '${i}' to entity '${e}'`)):(this.entities.set(e,{id:`entity-${e}-${this.entities.size}`,label:e,attributes:[],alias:i,shape:"erBox",look:it().look??"default",cssClasses:"default",cssStyles:[],labelType:"markdown"}),V.info("Added new entity :",e)),this.entities.get(e)}getEntity(e){return this.entities.get(e)}getEntities(){return this.entities}getClasses(){return this.classes}addAttributes(e,i){const h=this.addEntity(e);let a;for(a=i.length-1;a>=0;a--)i[a].keys||(i[a].keys=[]),i[a].comment||(i[a].comment=""),h.attributes.push(i[a]),V.debug("Added attribute ",i[a].name)}addRelationship(e,i,h,a){const u=this.entities.get(e),d=this.entities.get(h);if(!u||!d)return;const y={entityA:u.id,roleA:i,entityB:d.id,relSpec:a};this.relationships.push(y),V.debug("Added new relationship :",y)}getRelationships(){return this.relationships}getDirection(){return this.direction}setDirection(e){this.direction=e}getCompiledStyles(e){let i=[];for(const h of e){const a=this.classes.get(h);a?.styles&&(i=[...i,...a.styles??[]].map(u=>u.trim())),a?.textStyles&&(i=[...i,...a.textStyles??[]].map(u=>u.trim()))}return i}addCssStyles(e,i){for(const h of e){const a=this.entities.get(h);if(!i||!a)return;for(const u of i)a.cssStyles.push(u)}}addClass(e,i){e.forEach(h=>{let a=this.classes.get(h);a===void 0&&(a={id:h,styles:[],textStyles:[]},this.classes.set(h,a)),i&&i.forEach(function(u){if(/color/.exec(u)){const d=u.replace("fill","bgFill");a.textStyles.push(d)}a.styles.push(u)})})}setClass(e,i){for(const h of e){const a=this.entities.get(h);if(a)for(const u of i)a.cssClasses+=" "+u}}clear(){this.entities=new Map,this.classes=new Map,this.relationships=[],Ut()}getData(){const e=[],i=[],h=it();let a=0;for(const d of this.entities.keys()){const y=this.entities.get(d);y&&(y.cssCompiledStyles=this.getCompiledStyles(y.cssClasses.split(" ")),y.colorIndex=a++,e.push(y))}let u=0;for(const d of this.relationships){const y={id:Zt(d.entityA,d.entityB,{prefix:"id",counter:u++}),type:"normal",curve:"basis",start:d.entityA,end:d.entityB,label:d.roleA,labelpos:"c",thickness:"normal",classes:"relationshipLine",arrowTypeStart:d.relSpec.cardB.toLowerCase(),arrowTypeEnd:d.relSpec.cardA.toLowerCase(),pattern:d.relSpec.relType=="IDENTIFYING"?"solid":"dashed",look:h.look,labelType:"markdown"};i.push(y)}return{nodes:e,edges:i,other:{},config:h,direction:"TB"}}},xt={};Wt(xt,{draw:()=>ee});var ee=l(async function(e,i,h,a){V.info("REF0:"),V.info("Drawing er diagram (unified)",i);const{securityLevel:u,er:d,layout:y}=it(),f=a.db.getData(),k=Mt(i,u);f.type=a.type,f.layoutAlgorithm=Qt(y),f.config.flowchart.nodeSpacing=d?.nodeSpacing||140,f.config.flowchart.rankSpacing=d?.rankSpacing||80,f.direction=a.db.getDirection();const{config:j}=f,{look:W}=j;W==="neo"?f.markers=["only_one_neo","zero_or_one_neo","one_or_more_neo","zero_or_more_neo"]:f.markers=["only_one","zero_or_one","one_or_more","zero_or_more"],f.diagramId=i,await Xt(f,k),f.layoutAlgorithm==="elk"&&k.select(".edges").lower();const T=k.selectAll('[id*="-background"]');Array.from(T).length>0&&T.each(function(){const M=qt(this),R=M.attr("id").replace("-background",""),S=k.select(`#${CSS.escape(R)}`);if(!S.empty()){const C=S.attr("transform");M.attr("transform",C)}});const Q=8;Ht.insertTitle(k,"erDiagramTitleText",d?.titleTopMargin??25,a.db.getDiagramTitle()),Bt(k,Q,"erDiagram",d?.useMaxWidth??!0)},"draw"),Ct=l((e,i)=>{const h=Jt,a=h(e,"r"),u=h(e,"g"),d=h(e,"b");return jt(a,u,d,i)},"fade"),rt=new Set(["redux-color","redux-dark-color"]),se=l(e=>{const{theme:i,look:h,bkgColorArray:a,borderColorArray:u}=e;if(!rt.has(i))return"";const d=a?.length>0;let y="";for(let f=0;f<e.THEME_COLOR_LIMIT;f++)y+=`
|
|
7
|
+
|
|
8
|
+
[data-look="${h}"][data-color-id="color-${f}"].node path {
|
|
9
|
+
stroke: ${u[f]};
|
|
10
|
+
${d?`fill: ${a[f]};`:""}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
[data-look="${h}"][data-color-id="color-${f}"].node rect {
|
|
14
|
+
stroke: ${u[f]};
|
|
15
|
+
${d?`fill: ${a[f]};`:""}
|
|
16
|
+
}
|
|
17
|
+
`;return y},"genColor"),ie=l(e=>{const{look:i,theme:h,erEdgeLabelBackground:a,strokeWidth:u}=e;return`
|
|
18
|
+
${se(e)}
|
|
19
|
+
.entityBox {
|
|
20
|
+
fill: ${e.mainBkg};
|
|
21
|
+
stroke: ${e.nodeBorder};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.relationshipLabelBox {
|
|
25
|
+
fill: ${e.tertiaryColor};
|
|
26
|
+
opacity: 0.7;
|
|
27
|
+
background-color: ${e.tertiaryColor};
|
|
28
|
+
rect {
|
|
29
|
+
opacity: 0.5;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.labelBkg {
|
|
34
|
+
background-color: ${rt.has(h)&&a?a:Ct(e.tertiaryColor,.5)};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.edgeLabel {
|
|
38
|
+
background-color: ${rt.has(h)&&a?a:e.edgeLabelBackground};
|
|
39
|
+
}
|
|
40
|
+
.edgeLabel .label rect {
|
|
41
|
+
fill: ${rt.has(h)&&a?a:e.edgeLabelBackground};
|
|
42
|
+
}
|
|
43
|
+
.edgeLabel .label text {
|
|
44
|
+
fill: ${e.textColor};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.edgeLabel .label {
|
|
48
|
+
fill: ${e.nodeBorder};
|
|
49
|
+
font-size: 14px;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.label {
|
|
53
|
+
font-family: ${e.fontFamily};
|
|
54
|
+
color: ${e.nodeTextColor||e.textColor};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.edge-pattern-dashed {
|
|
58
|
+
stroke-dasharray: 8,8;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.node rect,
|
|
62
|
+
.node circle,
|
|
63
|
+
.node ellipse,
|
|
64
|
+
.node polygon
|
|
65
|
+
{
|
|
66
|
+
fill: ${e.mainBkg};
|
|
67
|
+
stroke: ${e.nodeBorder};
|
|
68
|
+
stroke-width: ${i==="neo"?u:"1px"};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.relationshipLine {
|
|
72
|
+
stroke: ${e.lineColor};
|
|
73
|
+
stroke-width: ${i==="neo"?u:"1px"};
|
|
74
|
+
fill: none;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.marker {
|
|
78
|
+
fill: none !important;
|
|
79
|
+
stroke: ${e.lineColor} !important;
|
|
80
|
+
stroke-width: 1;
|
|
81
|
+
}
|
|
82
|
+
[data-look=neo].labelBkg {
|
|
83
|
+
background-color: ${Ct(e.tertiaryColor,.5)};
|
|
84
|
+
}
|
|
85
|
+
`},"getStyles"),re=ie,_e={parser:$t,get db(){return new te},renderer:xt,styles:re};export{_e as diagram};
|