collabmd 0.1.54 → 0.1.55
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/bin/collabmd.js +19 -38
- package/dist/client/assets/CodeMirrorEditor-UCMRAMCV-cMeDxAEL.js +1 -0
- package/dist/client/assets/{abnfDiagram-VCTEODGH-DxNxad6-.js → abnfDiagram-VCTEODGH-D2UdmYvj.js} +1 -1
- package/dist/client/assets/{abnfDiagram-O67JEVCF-Dwt6a0Ds.js → abnfDiagram-YUKMZFIV-DbmU4Q-X.js} +1 -1
- package/dist/client/assets/api-client-utils-C5ESDKMG.js +1 -0
- package/dist/client/assets/architecture-7GRP2DOG-BBwRXFv3.js +1 -1
- package/dist/client/assets/architecture-WOLXFQ4H-C0NxYiG7.js +1 -0
- package/dist/client/assets/{architectureDiagram-NJMV4G6O-D5CGiX3G.js → architectureDiagram-47P4ROYG-C7OjXK9S.js} +3 -3
- package/dist/client/assets/{architectureDiagram-5GKGNRK7-C1uvg5id.js → architectureDiagram-5GKGNRK7-CSiUzzeN.js} +1 -1
- package/dist/client/assets/base-CaIEJUF9.css +1 -0
- package/dist/client/assets/{blockDiagram-BEXU5L5S-BgTM0var.js → blockDiagram-E7TT5TSB-DMG-YlZw.js} +3 -3
- package/dist/client/assets/{blockDiagram-I7D4REHJ-B2YonsoG.js → blockDiagram-I7D4REHJ-sXfAgK2w.js} +1 -1
- package/dist/client/assets/{browser-BKLM0ThC-BCLQGPD6-K2seJgRL.js → browser-BKLM0ThC-BCLQGPD6-CcMAHZXi.js} +1 -1
- package/dist/client/assets/{c4Diagram-7LVT6UL2-r4IwomZm.js → c4Diagram-7LVT6UL2-C88V_K-8.js} +1 -1
- package/dist/client/assets/{c4Diagram-YGBWAQC7-_xZPrNkB.js → c4Diagram-CRA5TL53-D3F9ElJv.js} +2 -2
- package/dist/client/assets/canvasEditor-BJkwGzO1.css +1 -0
- package/dist/client/assets/canvasEditor-sBK7KfrD.js +1 -0
- package/dist/client/assets/{chunk-6AZGARVD--pTGpDnx.js → chunk-24IY7LWP-flnn6SWX.js} +1 -1
- package/dist/client/assets/chunk-2BW5OAIV-CNFO1U_e.js +10 -0
- package/dist/client/assets/{chunk-2E4U76K2-CIQUuV9n.js → chunk-2E4U76K2-DEnS5IbF.js} +1 -1
- package/dist/client/assets/{chunk-5V3GS4D5-B5uC2oxu.js → chunk-3M4EKCLJ-D-sZGCtO.js} +1 -1
- package/dist/client/assets/chunk-3YJQHVM4-Ctp__8EK.js +2 -0
- package/dist/client/assets/{chunk-7PRAP22T-9uTvtc_-.js → chunk-4EA7E6EY-bU4wRJot.js} +1 -1
- package/dist/client/assets/{chunk-4HAMMTFA-q0ldNVvr.js → chunk-4HAMMTFA-CQy6Skzw.js} +1 -1
- package/dist/client/assets/{chunk-6K3QC6MW-JnuvEGV4.js → chunk-4S7OKTRW-BpUW13a3.js} +1 -1
- package/dist/client/assets/{chunk-ICYGCRZG-odvlDZyA.js → chunk-53FOQ5SW-5lPdGYP4.js} +1 -1
- package/dist/client/assets/{chunk-75Z2AOVW-DitkSoSG.js → chunk-75Z2AOVW-BRdhvVTZ.js} +1 -1
- package/dist/client/assets/{chunk-GWA4HPMP-CGmv2yIq.js → chunk-7TKQ45FW-rA2u-WUl.js} +1 -1
- package/dist/client/assets/{chunk-GTNCS2PH-ChgkzEIi.js → chunk-AW2ZBBNX-DL0KGAdi.js} +3 -3
- package/dist/client/assets/{chunk-747NJXEK-BjqqAsS9.js → chunk-BP2KR52E-DAQ1pzDV.js} +1 -1
- package/dist/client/assets/{chunk-CLGD4ZFX-BfYJtJm1.js → chunk-CLGD4ZFX-DJiSE0gD.js} +1 -1
- package/dist/client/assets/{chunk-5DYCD2WN-BKWCKnK-.js → chunk-DBDB3WZW-CXleNlok.js} +1 -1
- package/dist/client/assets/{chunk-DU6HZSFF-CWlP1Dk_.js → chunk-DU6HZSFF-C-18UZkS.js} +1 -1
- package/dist/client/assets/{chunk-MBY4JIJT-DTJ4UcAm.js → chunk-E2ZNV5FY-D_07zfWd.js} +3 -3
- package/dist/client/assets/chunk-EU5HNXII-CETVNUXF.js +213 -0
- package/dist/client/assets/{chunk-F27PBJKO-DPcsPcEs.js → chunk-F27PBJKO-_beIJos4.js} +1 -1
- package/dist/client/assets/{chunk-2ZTRR5NV-DcPRfelM.js → chunk-F6S3BTY2-DVWKCAHp.js} +1 -1
- package/dist/client/assets/{chunk-ISPTBLVO-BMsDq9Ha.js → chunk-FLFP27SU-CydzbSsY.js} +2 -2
- package/dist/client/assets/chunk-FVRAUYC3-C7b9SJ81.js +1 -0
- package/dist/client/assets/{chunk-GMAD6QVW-Bgk8qnty.js → chunk-GMAD6QVW-DnZH7DxV.js} +1 -1
- package/dist/client/assets/{chunk-GVQU2GXP-CQ8cl-Uu.js → chunk-GVQU2GXP-B0Vm415C.js} +1 -1
- package/dist/client/assets/chunk-H5A3YXKD-ChP7mNJq.js +41 -0
- package/dist/client/assets/{chunk-742MDFTN-D1nh6vNv.js → chunk-HJ2JQQFS-DQX7RePR.js} +1 -1
- package/dist/client/assets/{chunk-NETBCI7D-CmUwDWUZ.js → chunk-HTAEGDNF-C0PA_N-c.js} +1 -1
- package/dist/client/assets/{chunk-IMKFNOWR-CBqxfpcP.js → chunk-IMKFNOWR-DoO8IHzF.js} +1 -1
- package/dist/client/assets/{chunk-IH6LHLGP-BNevEHZK.js → chunk-KPI5JJXK-B2ld5-w4.js} +1 -1
- package/dist/client/assets/{chunk-WEXAMYUT-DDlVNp8J.js → chunk-KQW6MTUR-OQ4MyMr_.js} +1 -1
- package/dist/client/assets/{chunk-L3NEJ4N5-BflzkdTI.js → chunk-L3NEJ4N5-CvHossEU.js} +1 -1
- package/dist/client/assets/chunk-NGNAAXSQ-DqoPQk1a.js +136 -0
- package/dist/client/assets/{chunk-UA2S7LBM-DicYDjDM.js → chunk-NTY3LDVX-CVWLK_fh.js} +1 -1
- package/dist/client/assets/{chunk-UY3FDG6J-QT-rkt0y.js → chunk-OD3NTWWA-Dz9nCUGX.js} +1 -1
- package/dist/client/assets/{chunk-OSK3NFVY-DqeKV_pg.js → chunk-OSK3NFVY-C3JOcBao.js} +1 -1
- package/dist/client/assets/{chunk-P2QGCYS3-BA--DhpW.js → chunk-P2QGCYS3-Bfo8qS8r.js} +1 -1
- package/dist/client/assets/{chunk-POPQ4Y6H-V_NEc45n.js → chunk-POPQ4Y6H-sv6rCftH.js} +1 -1
- package/dist/client/assets/{chunk-PWAF6VOD-D_kLse-N.js → chunk-PWAF6VOD-B-AT-L2H.js} +1 -1
- package/dist/client/assets/{chunk-3Z5EZCMW-BAnA6eQ7.js → chunk-QNH66VMT-Cb9xxTwQ.js} +1 -1
- package/dist/client/assets/{chunk-SHT3W25Y-YM3S-A_M.js → chunk-SHT3W25Y-C1lu518T.js} +1 -1
- package/dist/client/assets/{chunk-GNY47TPC-CTrH5O5R.js → chunk-SVEVUXB4-BnM-LXop.js} +1 -1
- package/dist/client/assets/{chunk-SVP7TREG-DdNhDOmW.js → chunk-SVP7TREG-CKqt0syj.js} +1 -1
- package/dist/client/assets/{chunk-TICWLB2K-BGGgCr4x.js → chunk-TICWLB2K-D2ZnWAfF.js} +1 -1
- package/dist/client/assets/{chunk-TLUHSLCS-DCZhIDYA.js → chunk-TLUHSLCS-BMIhqv1X.js} +1 -1
- package/dist/client/assets/{chunk-6EIED4P4-DBVWq7Tz.js → chunk-TPMEZKFX-DIPHIqGb.js} +1 -1
- package/dist/client/assets/{chunk-6TQVIW2G-BSj0l_pu.js → chunk-VPELOWWC-DXayM28-.js} +1 -1
- package/dist/client/assets/chunk-VPRB5NB3-BqaJfj_v.js +127 -0
- package/dist/client/assets/{chunk-I5DQTOEV-aBZooNp1.js → chunk-VTWWFHGB-SZnJiyWY.js} +1 -1
- package/dist/client/assets/{chunk-KI3K4JFJ-FTtDwx3-.js → chunk-VZTHESGH-eHyXmK8W.js} +1 -1
- package/dist/client/assets/{chunk-7INBJB4K-CDmiHbaX.js → chunk-XC4XBNZT-D9oehSn8.js} +20 -20
- package/dist/client/assets/{chunk-XHIXRSVI-DN_fEwws.js → chunk-YK26KJH5-DVy3MGMd.js} +1 -1
- package/dist/client/assets/{chunk-6AEJRKK7-DTVZj5bY.js → chunk-Z6ETV63D-DOcrnz-P.js} +1 -1
- package/dist/client/assets/{chunk-OUJLGHUK-75UXlPjl.js → chunk-ZO67DCNQ-BAOMIkLF.js} +1 -1
- package/dist/client/assets/classDiagram-ZZMXUADV-BmETdFmC.js +1 -0
- package/dist/client/assets/{classDiagram-v2-NBCMYWYE-3TQORq33.js → classDiagram-v2-K4WV4PDN-eaadfJDB.js} +3 -3
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-BmETdFmC.js +1 -0
- package/dist/client/assets/{comment-markdown-renderer-Bxi_JRSR.js → comment-markdown-renderer-CpBKaj7H.js} +1 -1
- package/dist/client/assets/comment-thread-store-DUQsWtnu.js +1 -0
- package/dist/client/assets/comment-threads-DnfkLVJA.js +4 -0
- package/dist/client/assets/comment-ui-shared-D_pgPUti.js +7 -0
- package/dist/client/assets/cynefin-EF2NZ3EQ-DVkJeZ8i.js +1 -0
- package/dist/client/assets/cynefin-OW5HDTMX-CF3N9j1_.js +1 -1
- package/dist/client/assets/{cynefinDiagram-VND7K2PF-DwfMZ3vk.js → cynefinDiagram-3GCD6N5R-DjpAsBHC.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-DTnLZaO7.js → cynefinDiagram-5FMLGOSQ-D2rFQG67.js} +1 -1
- package/dist/client/assets/dagre-C-rnJpZF.js +1 -0
- package/dist/client/assets/{dagre-GXQ25YYZ-Vtyx08Qh.js → dagre-GXQ25YYZ-Cku9eia9.js} +2 -2
- package/dist/client/assets/{dagre-6A5THRUB-DewyAGK6.js → dagre-W4DXFKR2-DOMOIsPd.js} +2 -2
- package/dist/client/assets/deferred-collab-C9aa9cvT.css +1 -0
- package/dist/client/assets/deferred-git-BPQ-UgrN.css +1 -0
- package/dist/client/assets/deferred-preview-B-RebLry.css +1 -0
- package/dist/client/assets/{diagram-22UHCM2B-DbZirFfl.js → diagram-2UJZ2QOL-D8WvnEyx.js} +6 -6
- package/dist/client/assets/{diagram-3UASUU5V-DmhdYv6_.js → diagram-OVF4WLC6-D8_escYE.js} +2 -2
- package/dist/client/assets/{diagram-CDSNMT55-D_qyS11R.js → diagram-PFPMY2P6-B1izZfrN.js} +3 -3
- package/dist/client/assets/{diagram-S7CK7UJ4-CGTzfo2f.js → diagram-S7CK7UJ4-BzicH2t-.js} +1 -1
- package/dist/client/assets/{diagram-MLGK6HIB-DIBG6Ivu.js → diagram-UMYRVEAY-Djf7WDjZ.js} +1 -1
- package/dist/client/assets/{diagram-UQ7AKVKN-CWZS8QtB.js → diagram-UQ7AKVKN-DqX4zTtr.js} +1 -1
- package/dist/client/assets/{diagram-VSXAHHWV-DaO1nOZF.js → diagram-VSXAHHWV-DnVbfI4Y.js} +1 -1
- package/dist/client/assets/{diagram-VX7I27RA-B54P6Cyf.js → diagram-VX7I27RA-D-Dj0TQC.js} +1 -1
- package/dist/client/assets/{diagram-MPIPVDR6-D9XsALDV.js → diagram-YEKJPTXX-B40bP3Yr.js} +2 -2
- package/dist/client/assets/{diagram-Z3DM3KII-Cl2EXiXp.js → diagram-Z3DM3KII-_iT7Uz5p.js} +1 -1
- package/dist/client/assets/diagram-ZIFT7M5P-BUUK0oNw.js +3 -0
- package/dist/client/assets/{direct-engine-DVLMOJWp-C-YL5NFb.js → direct-engine-DVLMOJWp-DWtWIifK.js} +1 -1
- package/dist/client/assets/dist-26Ce-5t4.js +1 -0
- package/dist/client/assets/dist-8MLNn-I6.js +1 -0
- package/dist/client/assets/dist-Amm5Pr1C.js +1 -0
- package/dist/client/assets/dist-BXXPaoUV.js +1 -0
- package/dist/client/assets/{dist-CoXN2D3R.js → dist-Bkb-_VdB.js} +1 -1
- package/dist/client/assets/dist-Bl4yuUS9.js +1 -0
- package/dist/client/assets/{dist-lw5TGjI6.js → dist-C2CGvCPd.js} +1 -1
- package/dist/client/assets/dist-C2niyEh0.js +1 -0
- package/dist/client/assets/{dist-DOHWxIty.js → dist-CFCSUmJk.js} +1 -1
- package/dist/client/assets/dist-CHUI56fT.js +6 -0
- package/dist/client/assets/dist-CJh3Qrid.js +13 -0
- package/dist/client/assets/{dist-Ch6Sr9KF.js → dist-CKxETpSC.js} +3 -3
- package/dist/client/assets/dist-CSHJthAI.js +2 -0
- package/dist/client/assets/dist-CbKnZGN4.js +1 -0
- package/dist/client/assets/{dist-KrdpB_GB.js → dist-Cik4RJXj.js} +1 -1
- package/dist/client/assets/{dist-uk11ih8u.js → dist-CqkAY6Ot.js} +2 -2
- package/dist/client/assets/dist-D2ql2LCd.js +1 -0
- package/dist/client/assets/{dist-BpAUe9sL.js → dist-D47MOYFN.js} +1 -1
- package/dist/client/assets/dist-DBhUaexM.js +1 -0
- package/dist/client/assets/dist-DJux6Vc5.js +1 -0
- package/dist/client/assets/{dist-9Eodxf4G.js → dist-DLNdMWPH.js} +1 -1
- package/dist/client/assets/dist-DPJj-Y3l.js +1 -0
- package/dist/client/assets/{dist-BSAZ-Hek.js → dist-DRYFMufe.js} +6 -6
- package/dist/client/assets/{dist-BrKhPlc9.js → dist-DTGcVSU8.js} +1 -1
- package/dist/client/assets/dist-DlOxjzWi.js +9 -0
- package/dist/client/assets/{dist-BT9gJXCb.js → dist-DogjjM_B.js} +1 -1
- package/dist/client/assets/dist-Dyv_RvyB.js +23 -0
- package/dist/client/assets/dist-FUFeH5Cx.js +1 -0
- package/dist/client/assets/dist-It70ktCU.js +1 -0
- package/dist/client/assets/dist-QMvcnJHf.js +1 -0
- package/dist/client/assets/dist-QN1K2czv.js +11 -0
- package/dist/client/assets/dist-W8ilOKl3.js +1 -0
- package/dist/client/assets/dist-_17-t9qP.js +1 -0
- package/dist/client/assets/{dist-DeCV9FU4.js → dist-uE774WWs.js} +1 -1
- package/dist/client/assets/document-formatter-DtXmKZcy.js +1 -0
- package/dist/client/assets/drawioEditor-DO6IOaJ1.js +9 -0
- package/dist/client/assets/{ebnfDiagram-PWID7BFC-PfC84FyI.js → ebnfDiagram-PWID7BFC-IemGPf9X.js} +1 -1
- package/dist/client/assets/{ebnfDiagram-ZINNZB2B-DYvm_QtE.js → ebnfDiagram-VR2GEFS7-9fXqy1DI.js} +1 -1
- package/dist/client/assets/editor-session-CPsqXY_A.js +13 -0
- package/dist/client/assets/elk-IJKZMXRS-DsbrbBYg.js +27 -0
- package/dist/client/assets/embedded-editor-base-C44ZcCZv.css +1 -0
- package/dist/client/assets/{embedpdf-TkbBYowM.js → embedpdf-BfUI-3pv.js} +1 -1
- package/dist/client/assets/{embedpdf-cl9qiF45-itpgqvGY.js → embedpdf-cl9qiF45-CLMxJTMP.js} +2 -2
- package/dist/client/assets/en-7ZVUCEYH-C_VXKxxb.js +1 -0
- package/dist/client/assets/{erDiagram-OPXOYQCR-o8GRv8A_.js → erDiagram-O2IAPWRE-Cdadm-HN.js} +2 -2
- package/dist/client/assets/{erDiagram-RLTQ6QDP-C9cJl5NB.js → erDiagram-RLTQ6QDP-CGGmjm8t.js} +1 -1
- package/dist/client/assets/eventmodeling-K75KTNOO-BWBlZ5cR.js +1 -0
- package/dist/client/assets/eventmodeling-NTZA5JFV-CDy1bN6j.js +1 -1
- package/dist/client/assets/excalidraw-element-link-NQnskRkm.js +1 -0
- package/dist/client/assets/excalidraw-scene-DLlw4jyc.js +1 -0
- package/dist/client/assets/excalidrawEditor-DiKOIudt.css +1 -0
- package/dist/client/assets/excalidrawEditor-W2lZ5Mej.js +9 -0
- package/dist/client/assets/export-page-Bomh9oEr.js +46 -0
- package/dist/client/assets/exportDocument-BFIOECJ3.js +2 -0
- package/dist/client/assets/exportDocument-D0mONgQ4.css +1 -0
- package/dist/client/assets/file-kind-BGxTVHan.js +1 -0
- package/dist/client/assets/{file-search-BA8o_gs0.js → file-search-Dk2O14Vw.js} +1 -1
- package/dist/client/assets/flowDiagram-HODETNUW-DcVVYJUZ.js +1 -0
- package/dist/client/assets/flowDiagram-OXPTDLAJ-Dy6y46oF.js +1 -0
- package/dist/client/assets/{ganttDiagram-EL5Y4UJY-x40PW0Ah.js → ganttDiagram-EL5Y4UJY-Duu4KnsU.js} +1 -1
- package/dist/client/assets/ganttDiagram-R7TSEDQI-BWy52pjn.js +292 -0
- package/dist/client/assets/gitGraph-4MIJSDKK-B-rpDYbz.js +1 -1
- package/dist/client/assets/gitGraph-VSP46ZUC-1499lQAI.js +1 -0
- package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-ahsNaZsp.js → gitGraphDiagram-WWUBYQGX-CaJ0vC1a.js} +1 -1
- package/dist/client/assets/gitGraphDiagram-XJZIOB7I-DJwp9ilx.js +106 -0
- package/dist/client/assets/graphlib-DS17s2tU.js +1 -0
- package/dist/client/assets/image-6XY3GD3F-DCWbu6d4.js +1 -0
- package/dist/client/assets/image-lightbox-controller-DAcXEXxT.js +184 -0
- package/dist/client/assets/index-CglpXOg7.css +1 -0
- package/dist/client/assets/index-D3WGkxfI.js +960 -0
- package/dist/client/assets/info-A6RAGUB7-BlutK7BT.js +1 -1
- package/dist/client/assets/info-OHQRW6UA-BDFQOo4H.js +1 -0
- package/dist/client/assets/{infoDiagram-27XIBGKW-MrZyptIy.js → infoDiagram-27XIBGKW-DBJh7QOu.js} +1 -1
- package/dist/client/assets/{infoDiagram-VRGFBTTK-KkUjDRAQ.js → infoDiagram-5W2HQ5XZ-DmWsqJ0w.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-5VMMS53U-Bnt9yM0O.js → ishikawaDiagram-5VMMS53U-CeEbSJem.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-OU5B5YK6-Di9BcpOY.js → ishikawaDiagram-K3B6WC7H-DH1NI35G.js} +2 -2
- package/dist/client/assets/{journeyDiagram-3NMN7TZE-Bl0abK1r.js → journeyDiagram-3NMN7TZE-BoIEEr6U.js} +1 -1
- package/dist/client/assets/{journeyDiagram-ZHPQQLJL-J-sGrs9e.js → journeyDiagram-COXZFDF6-CnHV2f9V.js} +3 -3
- package/dist/client/assets/{kanban-definition-PNTS6WVX-5ZDV_yIa.js → kanban-definition-P3RFRI5V-Cxvn5ZAG.js} +4 -4
- package/dist/client/assets/{kanban-definition-UXKFOSKX-DMgUfNt0.js → kanban-definition-UXKFOSKX-BY16Tgbr.js} +1 -1
- package/dist/client/assets/keyboard-shortcuts-BWNCBJqw.js +1 -0
- package/dist/client/assets/lobby-presence-DNNXcuwR.js +1 -0
- package/dist/client/assets/{markdown-CZ1tYEW8.js → markdown-DU84620G.js} +1 -1
- package/dist/client/assets/markdown-headings-zYEUahfW.js +41 -0
- package/dist/client/assets/{markdown-math-CyyBVuDO.js → markdown-math-B96cnrz1.js} +11 -11
- package/dist/client/assets/{mermaid-parser.core-Bpogunsh.js → mermaid-parser.core-R-uwU5kf.js} +3 -3
- package/dist/client/assets/{mermaid-parser.core-DBy--Jc0.js → mermaid-parser.core-mE6t1qEO.js} +1 -1
- package/dist/client/assets/mermaid.core-D8Z6LN7O.js +10 -0
- package/dist/client/assets/{mindmap-definition-NLK3R4M7-ByVb-0vj.js → mindmap-definition-LZFPQGKD-DVfFenfJ.js} +3 -3
- package/dist/client/assets/{mindmap-definition-YA3MSWOX-DBZN5_GH.js → mindmap-definition-YA3MSWOX-DtiE80UJ.js} +1 -1
- package/dist/client/assets/packet-AYTQ26CC-DvbY8dI6.js +1 -1
- package/dist/client/assets/packet-JDAUHWVQ-DJ9K2MA4.js +1 -0
- package/dist/client/assets/{pegDiagram-GJSIUBJH-aost1sSO.js → pegDiagram-BGZESJAR-DxfvEcwv.js} +1 -1
- package/dist/client/assets/{pegDiagram-XKGWAZYB-DRo8CZu3.js → pegDiagram-XKGWAZYB-CyozY-Kt.js} +1 -1
- package/dist/client/assets/pie-WAS4IAKB-DWSm9SSD.js +1 -1
- package/dist/client/assets/pie-XZMESJXO-CQIQasY-.js +1 -0
- package/dist/client/assets/{pieDiagram-5QR66LMP-BICdpEuz.js → pieDiagram-CAPJLFHJ-CRlMcrv3.js} +2 -2
- package/dist/client/assets/{pieDiagram-E7YTZNPT-CZThaHsc.js → pieDiagram-E7YTZNPT-BRdmTkDq.js} +1 -1
- package/dist/client/assets/preload-helper-CYtfOYgs.js +1 -0
- package/dist/client/assets/preview-render-compiler-D_aJv7Ew.js +3 -0
- package/dist/client/assets/{preview-render-worker-BA4VK_GY.js → preview-render-worker-dFNyrVyB.js} +46 -42
- package/dist/client/assets/prod-ItolaHmf.js +145 -0
- package/dist/client/assets/prod-rdly4JJQ.js +1 -0
- package/dist/client/assets/{quadrantDiagram-AXDQQJYC-C5iowkl_.js → quadrantDiagram-AXDQQJYC-7QyPIXkF.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-O4NWA36T-Bgx5bF97.js → quadrantDiagram-GDMTTRAM-DE30uqTl.js} +3 -3
- package/dist/client/assets/quick-switcher-controller-DsK70I7K.js +1 -0
- package/dist/client/assets/radar-ABXABTNO-ByfpCXh9.js +1 -0
- package/dist/client/assets/radar-RG4KPBEZ-BfNQUEQy.js +1 -1
- package/dist/client/assets/railroad-74A4TZTK-BaQ6U6eJ.js +1 -1
- package/dist/client/assets/railroad-I3PHUGI6-CTUn9HhI.js +1 -0
- package/dist/client/assets/railroad-abnf-HS5TGJTU-BJ3KZw7J.js +1 -1
- package/dist/client/assets/railroad-abnf-LNEFI6M7-Ct-b-y0F.js +1 -0
- package/dist/client/assets/railroad-ebnf-DWYD2UWJ-BZMYMWOe.js +1 -0
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-DA0sEq7w.js +1 -1
- package/dist/client/assets/railroad-peg-JR7BVNR7-Dj23PxYc.js +1 -0
- package/dist/client/assets/railroad-peg-WCYAUIDC-DCmlICzO.js +1 -1
- package/dist/client/assets/{railroadDiagram-O6MQD6OU-BTt_rKjT.js → railroadDiagram-O6MQD6OU-BPk3RS2D.js} +1 -1
- package/dist/client/assets/{railroadDiagram-XR7U4H2S-DbVoNgSz.js → railroadDiagram-SM67HX2B-CZRXJ647.js} +1 -1
- package/dist/client/assets/{requirementDiagram-BXWQKSXE-BkvazG7r.js → requirementDiagram-BXWQKSXE-BRwfym6z.js} +1 -1
- package/dist/client/assets/{requirementDiagram-PLB6GJNP-BT0j9C40.js → requirementDiagram-X7JNWC4A-BofCuLJA.js} +4 -4
- package/dist/client/assets/{sankeyDiagram-P5KCCOFB-C_IemB9h.js → sankeyDiagram-P5KCCOFB-D4LcrKpW.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-IPEJSGJF-X1BCUIrf.js → sankeyDiagram-UM26HJRW-CLKMDbej.js} +3 -3
- package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-CxFBgLGd.js → sequenceDiagram-WJ2MYXX4-DQjtv-Bs.js} +1 -1
- package/dist/client/assets/sequenceDiagram-ZO4K6R2Y-CDP_m6ma.js +169 -0
- package/dist/client/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
- package/dist/client/assets/sizeCapture-INFHLROL-BMR1ovSU.js +1 -0
- package/dist/client/assets/src-D5mvpivG.js +2 -0
- package/dist/client/assets/{standalone-DbyFjvTU.js → standalone-D_lg5NC9.js} +1 -1
- package/dist/client/assets/{stateDiagram-D77RDMKH-BaSQ6Owj.js → stateDiagram-D77RDMKH-DSMvV-kF.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-ClmOOUsT.js +1 -0
- package/dist/client/assets/{stateDiagram-v2-GCMORJYK-CsVcfwVp.js → stateDiagram-v2-TBUQTH76-Dc5-FKzd.js} +2 -2
- package/dist/client/assets/{swimlanes-42K2YHIH-CALFEmiS.js → swimlanes-42K2YHIH-BUz31lO3.js} +1 -1
- package/dist/client/assets/{swimlanes-2SLR337P-CnYTVqRX.js → swimlanes-N4OXWK64-Dd3dFdPD.js} +1 -1
- package/dist/client/assets/swimlanesDiagram-K3J5GTZL-Bz9gFdls.js +8 -0
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-DoDs3zod.js +8 -0
- package/dist/client/assets/{timeline-definition-24CTP7MA-zse-5Dbm.js → timeline-definition-24CTP7MA-BvqCvSjy.js} +1 -1
- package/dist/client/assets/{timeline-definition-EJHVYXUP-BhqPlKkN.js → timeline-definition-YOQAKGHF-D2XWPSLs.js} +3 -3
- package/dist/client/assets/treeView-D4JQ5SDB-DcX7Bx0H.js +1 -0
- package/dist/client/assets/treeView-Q6P3EWNA-BvHOzbu9.js +1 -1
- package/dist/client/assets/treemap-SAJKECNS-BcCHmcAX.js +1 -0
- package/dist/client/assets/treemap-WGGIJYW6-oety7paS.js +1 -1
- package/dist/client/assets/usecaseDiagram-VIAY4XPW-CDe-IMjS.js +328 -0
- package/dist/client/assets/vault-api-client-DrRW0QwO.js +7 -0
- package/dist/client/assets/{vennDiagram-4TSXK5OY-DgHr6cJD.js → vennDiagram-4TSXK5OY-BW6Qp12d.js} +1 -1
- package/dist/client/assets/{vennDiagram-UO4OBE2U-BRwLn2Q1.js → vennDiagram-BLWOH2XV-KxIPKpHi.js} +3 -3
- package/dist/client/assets/wardley-7MLQ67FV-DOahSwbZ.js +1 -0
- package/dist/client/assets/wardley-WFR3VGLG-BdwDpX_I.js +1 -1
- package/dist/client/assets/{wardleyDiagram-VM6X3IG4-9A60XZis.js → wardleyDiagram-VM6X3IG4-BoCETVsK.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-VNRHLVJA-B_tMcVFG.js → wardleyDiagram-YMQ3BMBF-BNYqEy7M.js} +4 -4
- package/dist/client/assets/{wiki-link-resolver-Dch88erO.js → wiki-link-resolver-BCdGUpdu.js} +1 -1
- package/dist/client/assets/{worker-engine-BCCrxWYm-CX0qJ_cG.js → worker-engine-BCCrxWYm-1fphds7O.js} +1 -1
- package/dist/client/assets/workspace-sync-client-C_P9wtjf.js +1 -0
- package/dist/client/assets/{xychartDiagram-S5SC5T6Z-D00iy-wB.js → xychartDiagram-S5SC5T6Z-eB5Fu9P7.js} +1 -1
- package/dist/client/assets/xychartDiagram-TAQBALBS-Sv6aaptV.js +7 -0
- package/dist/client/assets/yjs-Jd9fna_Y.js +4 -0
- package/dist/client/assets/yjs-provider-reset-guard-Cqu0Z6xH.js +1 -0
- package/dist/client/canvas-editor.html +16 -0
- package/dist/client/drawio-editor.html +7 -6
- package/dist/client/excalidraw-editor.html +31 -30
- package/dist/client/export-document.html +4 -3
- package/dist/client/index.html +2 -2
- package/package.json +27 -29
- package/scripts/local-compose.mjs +101 -0
- package/src/client/app/canvas-editor.html +13 -0
- package/src/client/application/app-shell/git-feature.js +3 -2
- package/src/client/application/app-shell/ui-feature-identity.js +1 -0
- package/src/client/application/app-shell/ui-feature-shell.js +2 -0
- package/src/client/application/app-shell/ui-feature-tab-activity.js +4 -0
- package/src/client/application/app-shell/workspace-feature.js +8 -34
- package/src/client/application/diagram-chrome.js +8 -11
- package/src/client/application/diagram-preview-hydrator.js +5 -5
- package/src/client/application/mermaid-preview-hydrator.js +3 -2
- package/src/client/application/plantuml-preview-hydrator.js +6 -0
- package/src/client/application/preview-render-compiler.js +34 -98
- package/src/client/application/preview-render-executor.js +3 -0
- package/src/client/application/preview-render-worker.js +2 -0
- package/src/client/application/preview-renderer.js +9 -5
- package/src/client/application/workspace-coordinator.js +18 -10
- package/src/client/application/workspace-preview-controller.js +105 -158
- package/src/client/application/workspace-route-controller.js +29 -54
- package/src/client/bootstrap/canvas-markdown-preview.js +87 -0
- package/src/client/bootstrap/collabmd-app-shell.js +28 -13
- package/src/client/canvas-editor.js +143 -0
- package/src/client/domain/canvas-view.js +50 -0
- package/src/client/domain/excalidraw-scene.js +4 -49
- package/src/client/domain/highlight-runtime.js +0 -4
- package/src/client/domain/markdown-formatting.js +12 -94
- package/src/client/domain/markdown-headings.js +98 -0
- package/src/client/domain/wiki-link-completions.js +42 -10
- package/src/client/infrastructure/browser-preferences-port.js +27 -33
- package/src/client/infrastructure/canvas-room-client.js +210 -0
- package/src/client/infrastructure/canvas-text-editor.js +36 -0
- package/src/client/infrastructure/comment-thread-store.js +19 -77
- package/src/client/infrastructure/editor-view-adapter.js +0 -30
- package/src/client/infrastructure/excalidraw-room-client.js +22 -10
- package/src/client/infrastructure/hosted-api-client.js +4 -2
- package/src/client/infrastructure/vault-api-client.js +4 -4
- package/src/client/presentation/canvas-editor-view.js +1028 -0
- package/src/client/presentation/canvas-embed-controller.js +116 -0
- package/src/client/presentation/canvas-picker.js +111 -0
- package/src/client/presentation/drawio-embed-controller.js +1 -3
- package/src/client/presentation/excalidraw-embed-controller.js +10 -3
- package/src/client/presentation/file-action-controller.js +37 -0
- package/src/client/presentation/file-explorer-controller.js +1 -2
- package/src/client/presentation/file-explorer-view.js +7 -1
- package/src/client/presentation/file-icon-svg.js +1 -1
- package/src/client/presentation/file-tree-state.js +4 -1
- package/src/client/presentation/image-lightbox-controller.js +1 -5
- package/src/client/presentation/team-settings-controller.js +44 -10
- package/src/client/styles/components/actions.css +4 -16
- package/src/client/styles/components/surfaces.css +0 -7
- package/src/client/styles/features/comment-card.css +1 -2
- package/src/client/styles/features/comment-markdown.css +0 -18
- package/src/client/styles/features/diagram-preview.css +0 -18
- package/src/client/styles/features/git-branch.css +0 -4
- package/src/client/styles/foundation/themes.css +6 -0
- package/src/client/styles/foundation/utilities.css +1 -2
- package/src/client/styles/layout/editor-page.css +0 -13
- package/src/client/styles/layout/responsive.css +2 -7
- package/src/client/styles/layout/shell.css +13 -1
- package/src/client/styles/layout/view-modes.css +1 -0
- package/src/client/styles/surfaces/canvas-editor.css +239 -0
- package/src/domain/canvas-room-codec.js +359 -0
- package/src/domain/collabmd-content-capabilities.js +10 -1
- package/src/domain/comment-threads.js +49 -5
- package/src/domain/excalidraw-room-codec.js +23 -73
- package/src/domain/excalidraw-scene.js +48 -0
- package/src/domain/file-kind.js +13 -1
- package/src/server/application/workspace-reconciliation.js +0 -14
- package/src/server/domain/backlink-index.js +1 -36
- package/src/server/domain/bases/base-index-snapshot-store.js +41 -24
- package/src/server/domain/bases/base-query-service.js +1 -47
- package/src/server/domain/collaboration/collaboration-room.js +149 -15
- package/src/server/domain/collaboration/room-registry.js +7 -7
- package/src/server/domain/hosted-workspace.js +29 -2
- package/src/server/domain/plantuml-encoder.js +7 -43
- package/src/server/infrastructure/git/diff-service.js +1 -5
- package/src/server/infrastructure/git/history-service.js +18 -2
- package/src/server/infrastructure/git/untracked-files.js +1 -1
- package/src/server/infrastructure/http/create-git-api-command-handler.js +60 -149
- package/src/server/infrastructure/http/create-hosted-api-handler.js +5 -2
- package/src/server/infrastructure/http/create-vault-api-query-handler.js +2 -2
- package/src/server/infrastructure/http/http-response.js +2 -36
- package/src/server/infrastructure/http/request-body.js +14 -49
- package/src/server/infrastructure/persistence/hosted-metadata-store.js +12 -3
- package/src/server/infrastructure/persistence/path-utils.js +8 -2
- package/src/server/infrastructure/persistence/vault-file-store.js +26 -60
- package/src/server/{infrastructure/git → shared}/image-mime.js +2 -2
- package/dist/client/assets/CodeMirrorEditor-UCMRAMCV-kJfwukbn.js +0 -1
- package/dist/client/assets/_basePickBy-QJXUw_pr.js +0 -1
- package/dist/client/assets/_baseUniq-DR4vVjyC.js +0 -1
- package/dist/client/assets/architecture-7GRP2DOG-DJVtYNt-.js +0 -1
- package/dist/client/assets/browser-utils-S4QYY31r.js +0 -1
- package/dist/client/assets/chunk-3FUC2YCW-8tZlhTGX.js +0 -1
- package/dist/client/assets/chunk-7M6MHVWA-BDakkknV.js +0 -213
- package/dist/client/assets/chunk-FOHPRMQF-Dmmo5Kak.js +0 -161
- package/dist/client/assets/chunk-O7XYJQB3-D0_ZY2za.js +0 -126
- package/dist/client/assets/chunk-T5WUORNS-DD7KlyY6.js +0 -40
- package/dist/client/assets/chunk-Z7XXMR3K-P4Vaq8hD.js +0 -10
- package/dist/client/assets/chunk-ZIGJFQKS-b8OUHKK5.js +0 -2
- package/dist/client/assets/classDiagram-ZZMXUADV-QLbh_Nkf.js +0 -1
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-QLbh_Nkf.js +0 -1
- package/dist/client/assets/comment-thread-store-CHvy8GF8.js +0 -1
- package/dist/client/assets/comment-threads-nJhK1yfc.js +0 -4
- package/dist/client/assets/cynefin-OW5HDTMX-e-Quc9Yl.js +0 -1
- package/dist/client/assets/dagre-D7FiCLLP.js +0 -1
- package/dist/client/assets/deferred-collab-D4cxEdad.css +0 -1
- package/dist/client/assets/deferred-git-BHKtkFYi.css +0 -1
- package/dist/client/assets/deferred-preview-BAXYgf4T.css +0 -1
- package/dist/client/assets/diagram-ATOU4E4O-B5uX-jVO.js +0 -3
- package/dist/client/assets/dist-B2ZNQifU.js +0 -1
- package/dist/client/assets/dist-B6QCMNze.js +0 -1
- package/dist/client/assets/dist-BIAv19LO.js +0 -1
- package/dist/client/assets/dist-BKYp1-dl.js +0 -13
- package/dist/client/assets/dist-BSTbcioM.js +0 -11
- package/dist/client/assets/dist-BTVg1m-V.js +0 -1
- package/dist/client/assets/dist-Bi9ZIYXq.js +0 -9
- package/dist/client/assets/dist-Bqo-XRVG.js +0 -1
- package/dist/client/assets/dist-CBsvKPcT.js +0 -1
- package/dist/client/assets/dist-CJBYh9Wy.js +0 -23
- package/dist/client/assets/dist-CRwfjtwz.js +0 -2
- package/dist/client/assets/dist-CX7Kc61C.js +0 -1
- package/dist/client/assets/dist-CYfPeupF.js +0 -1
- package/dist/client/assets/dist-CucpLxUY.js +0 -1
- package/dist/client/assets/dist-DHBMeCxC.js +0 -6
- package/dist/client/assets/dist-DLEg9d4u.js +0 -1
- package/dist/client/assets/dist-DYFBD-wW.js +0 -1
- package/dist/client/assets/dist-DugWGOjQ.js +0 -1
- package/dist/client/assets/dist-NNrRnB-f.js +0 -1
- package/dist/client/assets/dist-PUxZqhFe.js +0 -1
- package/dist/client/assets/dist-cYiJMWHJ.js +0 -1
- package/dist/client/assets/dist-iKC7go4m.js +0 -1
- package/dist/client/assets/document-formatter-6I63vstk.js +0 -1
- package/dist/client/assets/drawioEditor-DNTjsjzJ.js +0 -9
- package/dist/client/assets/editor-session-D8GGkJak.js +0 -14
- package/dist/client/assets/elk-276RUBZZ-B8LB3Pac.js +0 -27
- package/dist/client/assets/embedded-editor-base-elU0Avik.css +0 -1
- package/dist/client/assets/en-JTHJ2SIP-DBz9bRq4.js +0 -1
- package/dist/client/assets/eventmodeling-NTZA5JFV-Dxtv5D-P.js +0 -1
- package/dist/client/assets/excalidraw-element-link-BRZOTIeI.js +0 -7
- package/dist/client/assets/excalidraw-scene-6uROebca.js +0 -1
- package/dist/client/assets/excalidrawEditor-BCTFp_CV.css +0 -1
- package/dist/client/assets/excalidrawEditor-D0orhhku.js +0 -9
- package/dist/client/assets/export-page-CVJNMERq.js +0 -46
- package/dist/client/assets/exportDocument-Ba-n1X4U.css +0 -1
- package/dist/client/assets/exportDocument-DSshnmnZ.js +0 -2
- package/dist/client/assets/file-kind-BwMIcZbi.js +0 -1
- package/dist/client/assets/flowDiagram-HODETNUW-Bq4470NR.js +0 -1
- package/dist/client/assets/flowDiagram-KWPJA3E3-DQG9qGiU.js +0 -1
- package/dist/client/assets/ganttDiagram-FUAMR5RP-BQpsI7gQ.js +0 -292
- package/dist/client/assets/gitGraph-4MIJSDKK-ZaBIE4Lb.js +0 -1
- package/dist/client/assets/gitGraphDiagram-X574FWY7-wbs_2m9f.js +0 -106
- package/dist/client/assets/graphlib-C9Tl7QrK.js +0 -1
- package/dist/client/assets/image-I42VHMUI-B2-c_ifV.js +0 -1
- package/dist/client/assets/index-BCgNcVNs.css +0 -1
- package/dist/client/assets/index-BpmR5Qqk.js +0 -1140
- package/dist/client/assets/info-A6RAGUB7-BcGxhjED.js +0 -1
- package/dist/client/assets/lobby-presence-KJrYhMdN.js +0 -1
- package/dist/client/assets/mermaid.core-BeOUPE3Q.js +0 -10
- package/dist/client/assets/packet-AYTQ26CC-CqpSjTWl.js +0 -1
- package/dist/client/assets/pie-WAS4IAKB-Bg2eCNl5.js +0 -1
- package/dist/client/assets/preload-helper-BAlEavIC.js +0 -1
- package/dist/client/assets/preview-render-compiler-BmWQStaL.js +0 -43
- package/dist/client/assets/prod-CA0ie9yD.js +0 -145
- package/dist/client/assets/prod-yKJZ3E4s.js +0 -1
- package/dist/client/assets/quick-switcher-controller-B5vT9Vj5.js +0 -1
- package/dist/client/assets/radar-RG4KPBEZ-DxExotg6.js +0 -1
- package/dist/client/assets/railroad-74A4TZTK-FfHmeIQk.js +0 -1
- package/dist/client/assets/railroad-abnf-HS5TGJTU-CLkdDRsJ.js +0 -1
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-B162zvcG.js +0 -1
- package/dist/client/assets/railroad-peg-WCYAUIDC-CGs5GeJ5.js +0 -1
- package/dist/client/assets/sequenceDiagram-PO4LG4MO-B-2QfXhV.js +0 -169
- package/dist/client/assets/sizeCapture-INFHLROL-B0uUizjq.js +0 -1
- package/dist/client/assets/sizeCapture-INFHLROL-DrzwYt5z.js +0 -1
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-CLlwrdvU.js +0 -1
- package/dist/client/assets/swimlanesDiagram-TC7HE7FX-Bh4tmz27.js +0 -8
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-xhehUG9e.js +0 -8
- package/dist/client/assets/treeView-Q6P3EWNA-Cccy0ngL.js +0 -1
- package/dist/client/assets/treemap-WGGIJYW6-sMRCjCtX.js +0 -1
- package/dist/client/assets/usecaseDiagram-POWQR4AR-DR2LHQYs.js +0 -328
- package/dist/client/assets/vault-api-client-NS_EVHJ3.js +0 -7
- package/dist/client/assets/wardley-WFR3VGLG-Y7xty_3m.js +0 -1
- package/dist/client/assets/workspace-sync-client-BrMtf6zN.js +0 -1
- package/dist/client/assets/xychartDiagram-PMCCYNJV-fRpZ1MA5.js +0 -7
- package/dist/client/assets/yjs-B41tM6Sz.js +0 -4
- package/dist/client/assets/yjs-provider-reset-guard-DpntzUDR.js +0 -1
- package/scripts/local-plantuml-compose.mjs +0 -92
- package/scripts/local-structurizr-compose.mjs +0 -101
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isBaseFilePath,
|
|
3
|
+
isCanvasFilePath,
|
|
3
4
|
isDiagramFilePath,
|
|
4
5
|
isHtmlFilePath,
|
|
5
6
|
isMarkdownFilePath,
|
|
@@ -39,6 +40,7 @@ export class WorkspacePreviewController {
|
|
|
39
40
|
constructor({
|
|
40
41
|
backlinksPanel,
|
|
41
42
|
basesPreview = null,
|
|
43
|
+
canvasEmbed = null,
|
|
42
44
|
drawioEmbed,
|
|
43
45
|
elements,
|
|
44
46
|
excalidrawEmbed,
|
|
@@ -55,13 +57,13 @@ export class WorkspacePreviewController {
|
|
|
55
57
|
outlineController,
|
|
56
58
|
previewRenderer,
|
|
57
59
|
pdfPreview = null,
|
|
58
|
-
schedulePreviewLayoutSync,
|
|
59
60
|
scrollSyncController,
|
|
60
61
|
structurizrPreview = null,
|
|
61
62
|
videoEmbed,
|
|
62
63
|
}) {
|
|
63
64
|
this.backlinksPanel = backlinksPanel;
|
|
64
65
|
this.basesPreview = basesPreview ?? { reconcileEmbeds() {}, renderStandalone() {} };
|
|
66
|
+
this.canvasEmbed = canvasEmbed;
|
|
65
67
|
this.drawioEmbed = drawioEmbed ?? {
|
|
66
68
|
detachForCommit() {},
|
|
67
69
|
hydrateVisibleEmbeds() {},
|
|
@@ -94,7 +96,9 @@ export class WorkspacePreviewController {
|
|
|
94
96
|
this.outlineController = outlineController;
|
|
95
97
|
this.previewRenderer = previewRenderer;
|
|
96
98
|
this.pdfPreview = pdfPreview ?? { cancel() {}, render() {} };
|
|
97
|
-
this.
|
|
99
|
+
this.previewHydrationPaused = false;
|
|
100
|
+
this.pendingPreviewLayoutSync = false;
|
|
101
|
+
this.previewLayoutSyncTimer = null;
|
|
98
102
|
this.scrollSyncController = scrollSyncController;
|
|
99
103
|
this.structurizrPreview = structurizrPreview ?? {
|
|
100
104
|
queueSync() {},
|
|
@@ -142,11 +146,13 @@ export class WorkspacePreviewController {
|
|
|
142
146
|
}
|
|
143
147
|
|
|
144
148
|
resetPreviewMode() {
|
|
149
|
+
this.canvasEmbed?.unmount();
|
|
145
150
|
this.setHtmlPreviewMaximized(false);
|
|
146
151
|
this.htmlPreviewShell = null;
|
|
147
152
|
this.pdfPreview.cancel();
|
|
148
153
|
this.elements.previewContent?.classList.remove('is-drawio-file-preview');
|
|
149
154
|
this.elements.previewContent?.classList.remove('is-excalidraw-file-preview');
|
|
155
|
+
this.elements.previewContent?.classList.remove('is-canvas-file-preview');
|
|
150
156
|
this.elements.previewContent?.classList.remove('is-base-file-preview');
|
|
151
157
|
this.elements.previewContent?.classList.remove('is-image-file-preview');
|
|
152
158
|
this.elements.previewContent?.classList.remove('is-pdf-file-preview');
|
|
@@ -160,6 +166,7 @@ export class WorkspacePreviewController {
|
|
|
160
166
|
syncFileChrome(filePath, { drawioMode = null, preferPreviewForBase = false } = {}) {
|
|
161
167
|
const isDrawio = this.isDrawioFile(filePath);
|
|
162
168
|
const isExcalidraw = this.isExcalidrawFile(filePath);
|
|
169
|
+
const isCanvas = isCanvasFilePath(filePath);
|
|
163
170
|
const isBase = this.isBaseFile(filePath);
|
|
164
171
|
const isImage = this.isImageFile(filePath);
|
|
165
172
|
const isPdf = this.isPdfFile(filePath);
|
|
@@ -169,11 +176,14 @@ export class WorkspacePreviewController {
|
|
|
169
176
|
const isPlantUml = this.isPlantUmlFile(filePath);
|
|
170
177
|
const isStructurizr = isStructurizrFilePath(filePath);
|
|
171
178
|
const isDiagramFile = isDiagramFilePath(filePath);
|
|
172
|
-
const usesHeaderBacklinks = isExcalidraw || (isDrawio && drawioMode !== 'text');
|
|
179
|
+
const usesHeaderBacklinks = isExcalidraw || isCanvas || (isDrawio && drawioMode !== 'text');
|
|
173
180
|
|
|
174
181
|
this.backlinksPanel.setDisplayMode?.(usesHeaderBacklinks ? 'header' : 'dock');
|
|
175
182
|
|
|
176
183
|
this.elements.editorFindButton?.classList.toggle('hidden', !isMarkdown);
|
|
184
|
+
this.elements.toolbarViewToggle?.classList.toggle('hidden', isCanvas);
|
|
185
|
+
this.elements.mobileViewToggle?.classList.toggle('hidden', isCanvas);
|
|
186
|
+
this.elements.toggleWrapButton?.classList.toggle('hidden', isCanvas);
|
|
177
187
|
syncFormatDocumentButton(this.elements.editorFormatButton, filePath, isPlantUml);
|
|
178
188
|
this.elements.markdownToolbar?.classList.toggle('hidden', !isMarkdown);
|
|
179
189
|
this.elements.exportMenuGroup?.classList.toggle('hidden', !isMarkdown);
|
|
@@ -188,7 +198,7 @@ export class WorkspacePreviewController {
|
|
|
188
198
|
this.backlinksPanel.clear();
|
|
189
199
|
}
|
|
190
200
|
|
|
191
|
-
if ((isDrawio && drawioMode !== 'text') || isExcalidraw || isHtml || isImage || isPdf || (isBase && preferPreviewForBase)) {
|
|
201
|
+
if ((isDrawio && drawioMode !== 'text') || isExcalidraw || isCanvas || isHtml || isImage || isPdf || (isBase && preferPreviewForBase)) {
|
|
192
202
|
this.layoutController.setView('preview', { persist: false });
|
|
193
203
|
this.outlineController.close();
|
|
194
204
|
this.backlinksPanel.clear();
|
|
@@ -201,19 +211,47 @@ export class WorkspacePreviewController {
|
|
|
201
211
|
}
|
|
202
212
|
}
|
|
203
213
|
|
|
204
|
-
|
|
214
|
+
prepareFilePreview(className) {
|
|
205
215
|
const previewElement = this.elements.previewContent;
|
|
206
|
-
if (!previewElement)
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
216
|
+
if (!previewElement) return null;
|
|
209
217
|
|
|
210
218
|
this.videoEmbed?.detachForCommit();
|
|
211
219
|
this.drawioEmbed.detachForCommit();
|
|
212
220
|
this.excalidrawEmbed.detachForCommit();
|
|
213
221
|
this.resetPreviewMode();
|
|
214
|
-
previewElement.classList.add(
|
|
222
|
+
if (className) previewElement.classList.add(className);
|
|
215
223
|
const renderHost = this.previewRenderer.ensureRenderHost();
|
|
216
224
|
this.previewRenderer.normalizePreviewChildren(renderHost);
|
|
225
|
+
return { previewElement, renderHost };
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
commitFilePreview(renderHost, content) {
|
|
229
|
+
if (renderHost) {
|
|
230
|
+
renderHost.replaceChildren(content);
|
|
231
|
+
renderHost.style.minHeight = '';
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
renderCanvasFilePreview(filePath) {
|
|
236
|
+
const preview = this.prepareFilePreview('is-canvas-file-preview');
|
|
237
|
+
if (!preview) return;
|
|
238
|
+
const { previewElement, renderHost } = preview;
|
|
239
|
+
|
|
240
|
+
if (renderHost) renderHost.style.minHeight = '';
|
|
241
|
+
this.canvasEmbed?.mount(filePath, renderHost);
|
|
242
|
+
previewElement.dataset.renderPhase = 'ready';
|
|
243
|
+
this.outlineController.close();
|
|
244
|
+
this.scrollSyncController.setLargeDocumentMode(false);
|
|
245
|
+
this.scrollSyncController.invalidatePreviewBlocks();
|
|
246
|
+
this.videoEmbed?.reconcileEmbeds(previewElement);
|
|
247
|
+
this.drawioEmbed.reconcileEmbeds(previewElement);
|
|
248
|
+
this.excalidrawEmbed.reconcileEmbeds(previewElement, { isLargeDocument: false });
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
renderExcalidrawFilePreview(filePath) {
|
|
252
|
+
const preview = this.prepareFilePreview('is-excalidraw-file-preview');
|
|
253
|
+
if (!preview) return;
|
|
254
|
+
const { previewElement, renderHost } = preview;
|
|
217
255
|
|
|
218
256
|
const placeholder = document.createElement('div');
|
|
219
257
|
placeholder.className = 'excalidraw-embed-placeholder';
|
|
@@ -224,10 +262,7 @@ export class WorkspacePreviewController {
|
|
|
224
262
|
loadingShell.className = 'preview-shell';
|
|
225
263
|
loadingShell.textContent = 'Loading Excalidraw preview…';
|
|
226
264
|
placeholder.appendChild(loadingShell);
|
|
227
|
-
|
|
228
|
-
renderHost.replaceChildren(placeholder);
|
|
229
|
-
renderHost.style.minHeight = '';
|
|
230
|
-
}
|
|
265
|
+
this.commitFilePreview(renderHost, placeholder);
|
|
231
266
|
|
|
232
267
|
previewElement.dataset.renderPhase = 'ready';
|
|
233
268
|
this.outlineController.refresh();
|
|
@@ -238,22 +273,13 @@ export class WorkspacePreviewController {
|
|
|
238
273
|
this.excalidrawEmbed.reconcileEmbeds(previewElement, { isLargeDocument: false });
|
|
239
274
|
this.drawioEmbed.hydrateVisibleEmbeds();
|
|
240
275
|
this.excalidrawEmbed.hydrateVisibleEmbeds();
|
|
241
|
-
this.
|
|
276
|
+
this.schedulePreviewLayoutSync({ delayMs: 0 });
|
|
242
277
|
}
|
|
243
278
|
|
|
244
279
|
renderDrawioFilePreview(filePath) {
|
|
245
|
-
const
|
|
246
|
-
if (!
|
|
247
|
-
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
this.videoEmbed?.detachForCommit();
|
|
251
|
-
this.drawioEmbed.detachForCommit();
|
|
252
|
-
this.excalidrawEmbed.detachForCommit();
|
|
253
|
-
this.resetPreviewMode();
|
|
254
|
-
previewElement.classList.add('is-drawio-file-preview');
|
|
255
|
-
const renderHost = this.previewRenderer.ensureRenderHost();
|
|
256
|
-
this.previewRenderer.normalizePreviewChildren(renderHost);
|
|
280
|
+
const preview = this.prepareFilePreview('is-drawio-file-preview');
|
|
281
|
+
if (!preview) return;
|
|
282
|
+
const { previewElement, renderHost } = preview;
|
|
257
283
|
|
|
258
284
|
const placeholder = document.createElement('div');
|
|
259
285
|
placeholder.className = 'drawio-embed-placeholder';
|
|
@@ -266,10 +292,7 @@ export class WorkspacePreviewController {
|
|
|
266
292
|
loadingShell.textContent = 'Loading draw.io preview…';
|
|
267
293
|
placeholder.appendChild(loadingShell);
|
|
268
294
|
|
|
269
|
-
|
|
270
|
-
renderHost.replaceChildren(placeholder);
|
|
271
|
-
renderHost.style.minHeight = '';
|
|
272
|
-
}
|
|
295
|
+
this.commitFilePreview(renderHost, placeholder);
|
|
273
296
|
|
|
274
297
|
previewElement.dataset.renderPhase = 'ready';
|
|
275
298
|
this.outlineController.refresh();
|
|
@@ -278,22 +301,13 @@ export class WorkspacePreviewController {
|
|
|
278
301
|
this.videoEmbed?.reconcileEmbeds(previewElement);
|
|
279
302
|
this.drawioEmbed.reconcileEmbeds(previewElement);
|
|
280
303
|
this.drawioEmbed.hydrateVisibleEmbeds();
|
|
281
|
-
this.
|
|
304
|
+
this.schedulePreviewLayoutSync({ delayMs: 0 });
|
|
282
305
|
}
|
|
283
306
|
|
|
284
307
|
renderImageFilePreview(filePath) {
|
|
285
|
-
const
|
|
286
|
-
if (!
|
|
287
|
-
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
this.videoEmbed?.detachForCommit();
|
|
291
|
-
this.drawioEmbed.detachForCommit();
|
|
292
|
-
this.excalidrawEmbed.detachForCommit();
|
|
293
|
-
this.resetPreviewMode();
|
|
294
|
-
previewElement.classList.add('is-image-file-preview');
|
|
295
|
-
const renderHost = this.previewRenderer.ensureRenderHost();
|
|
296
|
-
this.previewRenderer.normalizePreviewChildren(renderHost);
|
|
308
|
+
const preview = this.prepareFilePreview('is-image-file-preview');
|
|
309
|
+
if (!preview) return;
|
|
310
|
+
const { previewElement, renderHost } = preview;
|
|
297
311
|
|
|
298
312
|
const shell = document.createElement('figure');
|
|
299
313
|
shell.className = 'image-file-preview-shell';
|
|
@@ -304,32 +318,20 @@ export class WorkspacePreviewController {
|
|
|
304
318
|
image.src = resolveApiUrl(`/attachment?path=${encodeURIComponent(filePath)}`);
|
|
305
319
|
shell.appendChild(image);
|
|
306
320
|
|
|
307
|
-
|
|
308
|
-
renderHost.replaceChildren(shell);
|
|
309
|
-
renderHost.style.minHeight = '';
|
|
310
|
-
}
|
|
321
|
+
this.commitFilePreview(renderHost, shell);
|
|
311
322
|
|
|
312
323
|
previewElement.dataset.renderPhase = 'ready';
|
|
313
324
|
this.outlineController.refresh();
|
|
314
325
|
this.scrollSyncController.setLargeDocumentMode(false);
|
|
315
326
|
this.scrollSyncController.invalidatePreviewBlocks();
|
|
316
327
|
this.videoEmbed?.reconcileEmbeds(previewElement);
|
|
317
|
-
this.
|
|
328
|
+
this.schedulePreviewLayoutSync({ delayMs: 0 });
|
|
318
329
|
}
|
|
319
330
|
|
|
320
331
|
renderPdfFilePreview(filePath) {
|
|
321
|
-
const
|
|
322
|
-
if (!
|
|
323
|
-
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
this.videoEmbed?.detachForCommit();
|
|
327
|
-
this.drawioEmbed.detachForCommit();
|
|
328
|
-
this.excalidrawEmbed.detachForCommit();
|
|
329
|
-
this.resetPreviewMode();
|
|
330
|
-
previewElement.classList.add('is-pdf-file-preview');
|
|
331
|
-
const renderHost = this.previewRenderer.ensureRenderHost();
|
|
332
|
-
this.previewRenderer.normalizePreviewChildren(renderHost);
|
|
332
|
+
const preview = this.prepareFilePreview('is-pdf-file-preview');
|
|
333
|
+
if (!preview) return;
|
|
334
|
+
const { previewElement, renderHost } = preview;
|
|
333
335
|
|
|
334
336
|
if (renderHost) {
|
|
335
337
|
this.pdfPreview.render({
|
|
@@ -345,23 +347,14 @@ export class WorkspacePreviewController {
|
|
|
345
347
|
this.scrollSyncController.setLargeDocumentMode(false);
|
|
346
348
|
this.scrollSyncController.invalidatePreviewBlocks();
|
|
347
349
|
this.videoEmbed?.reconcileEmbeds(previewElement);
|
|
348
|
-
this.
|
|
350
|
+
this.schedulePreviewLayoutSync({ delayMs: 0 });
|
|
349
351
|
}
|
|
350
352
|
|
|
351
353
|
renderHtmlFilePreview({ content = '' } = {}) {
|
|
352
|
-
const previewElement = this.elements.previewContent;
|
|
353
|
-
if (!previewElement) {
|
|
354
|
-
return;
|
|
355
|
-
}
|
|
356
|
-
|
|
357
354
|
const wasMaximized = this.htmlPreviewShell?.classList.contains('is-maximized') ?? false;
|
|
358
|
-
this.
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
this.resetPreviewMode();
|
|
362
|
-
previewElement.classList.add('is-html-file-preview');
|
|
363
|
-
const renderHost = this.previewRenderer.ensureRenderHost();
|
|
364
|
-
this.previewRenderer.normalizePreviewChildren(renderHost);
|
|
355
|
+
const preview = this.prepareFilePreview('is-html-file-preview');
|
|
356
|
+
if (!preview) return;
|
|
357
|
+
const { previewElement, renderHost } = preview;
|
|
365
358
|
|
|
366
359
|
const source = String(content ?? '');
|
|
367
360
|
const iframe = document.createElement('iframe');
|
|
@@ -397,32 +390,20 @@ export class WorkspacePreviewController {
|
|
|
397
390
|
this.htmlPreviewShell = shell;
|
|
398
391
|
this.setHtmlPreviewMaximized(wasMaximized);
|
|
399
392
|
|
|
400
|
-
|
|
401
|
-
renderHost.replaceChildren(shell);
|
|
402
|
-
renderHost.style.minHeight = '';
|
|
403
|
-
}
|
|
393
|
+
this.commitFilePreview(renderHost, shell);
|
|
404
394
|
|
|
405
395
|
previewElement.dataset.renderPhase = 'ready';
|
|
406
396
|
this.outlineController.close();
|
|
407
397
|
this.backlinksPanel.clear();
|
|
408
398
|
this.scrollSyncController.setLargeDocumentMode(false);
|
|
409
399
|
this.scrollSyncController.invalidatePreviewBlocks();
|
|
410
|
-
this.
|
|
400
|
+
this.schedulePreviewLayoutSync({ delayMs: 0 });
|
|
411
401
|
}
|
|
412
402
|
|
|
413
403
|
async renderBaseFilePreview(filePath, { source = null } = {}) {
|
|
414
|
-
const
|
|
415
|
-
if (!
|
|
416
|
-
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
this.videoEmbed?.detachForCommit();
|
|
420
|
-
this.drawioEmbed.detachForCommit();
|
|
421
|
-
this.excalidrawEmbed.detachForCommit();
|
|
422
|
-
this.resetPreviewMode();
|
|
423
|
-
previewElement.classList.add('is-base-file-preview');
|
|
424
|
-
const renderHost = this.previewRenderer.ensureRenderHost();
|
|
425
|
-
this.previewRenderer.normalizePreviewChildren(renderHost);
|
|
404
|
+
const preview = this.prepareFilePreview('is-base-file-preview');
|
|
405
|
+
if (!preview) return;
|
|
406
|
+
const { previewElement, renderHost } = preview;
|
|
426
407
|
|
|
427
408
|
if (renderHost) {
|
|
428
409
|
renderHost.style.minHeight = '';
|
|
@@ -441,22 +422,13 @@ export class WorkspacePreviewController {
|
|
|
441
422
|
this.scrollSyncController.setLargeDocumentMode(false);
|
|
442
423
|
this.scrollSyncController.invalidatePreviewBlocks();
|
|
443
424
|
this.videoEmbed?.reconcileEmbeds(previewElement);
|
|
444
|
-
this.
|
|
425
|
+
this.schedulePreviewLayoutSync({ delayMs: 0 });
|
|
445
426
|
}
|
|
446
427
|
|
|
447
428
|
async renderStructurizrFilePreview(filePath, { source = null } = {}) {
|
|
448
|
-
const
|
|
449
|
-
if (!
|
|
450
|
-
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
this.videoEmbed?.detachForCommit();
|
|
454
|
-
this.drawioEmbed.detachForCommit();
|
|
455
|
-
this.excalidrawEmbed.detachForCommit();
|
|
456
|
-
this.resetPreviewMode();
|
|
457
|
-
previewElement.classList.add('is-structurizr-file-preview');
|
|
458
|
-
const renderHost = this.previewRenderer.ensureRenderHost();
|
|
459
|
-
this.previewRenderer.normalizePreviewChildren(renderHost);
|
|
429
|
+
const preview = this.prepareFilePreview('is-structurizr-file-preview');
|
|
430
|
+
if (!preview) return;
|
|
431
|
+
const { previewElement, renderHost } = preview;
|
|
460
432
|
if (renderHost) {
|
|
461
433
|
renderHost.style.minHeight = '';
|
|
462
434
|
}
|
|
@@ -473,21 +445,13 @@ export class WorkspacePreviewController {
|
|
|
473
445
|
this.scrollSyncController.setLargeDocumentMode(false);
|
|
474
446
|
this.scrollSyncController.invalidatePreviewBlocks();
|
|
475
447
|
this.videoEmbed?.reconcileEmbeds(previewElement);
|
|
476
|
-
this.
|
|
448
|
+
this.schedulePreviewLayoutSync({ delayMs: 0 });
|
|
477
449
|
}
|
|
478
450
|
|
|
479
451
|
renderTextFilePreview({ content = '' } = {}) {
|
|
480
|
-
const
|
|
481
|
-
if (!
|
|
482
|
-
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
this.videoEmbed?.detachForCommit();
|
|
486
|
-
this.drawioEmbed.detachForCommit();
|
|
487
|
-
this.excalidrawEmbed.detachForCommit();
|
|
488
|
-
this.resetPreviewMode();
|
|
489
|
-
const renderHost = this.previewRenderer.ensureRenderHost();
|
|
490
|
-
this.previewRenderer.normalizePreviewChildren(renderHost);
|
|
452
|
+
const preview = this.prepareFilePreview();
|
|
453
|
+
if (!preview) return;
|
|
454
|
+
const { previewElement, renderHost } = preview;
|
|
491
455
|
|
|
492
456
|
const shell = document.createElement('div');
|
|
493
457
|
shell.className = 'preview-shell';
|
|
@@ -497,10 +461,7 @@ export class WorkspacePreviewController {
|
|
|
497
461
|
pre.appendChild(code);
|
|
498
462
|
shell.appendChild(pre);
|
|
499
463
|
|
|
500
|
-
|
|
501
|
-
renderHost.replaceChildren(shell);
|
|
502
|
-
renderHost.style.minHeight = '';
|
|
503
|
-
}
|
|
464
|
+
this.commitFilePreview(renderHost, shell);
|
|
504
465
|
|
|
505
466
|
previewElement.dataset.renderPhase = 'ready';
|
|
506
467
|
this.outlineController.close();
|
|
@@ -508,7 +469,7 @@ export class WorkspacePreviewController {
|
|
|
508
469
|
this.scrollSyncController.setLargeDocumentMode(false);
|
|
509
470
|
this.scrollSyncController.invalidatePreviewBlocks();
|
|
510
471
|
this.videoEmbed?.reconcileEmbeds(previewElement);
|
|
511
|
-
this.
|
|
472
|
+
this.schedulePreviewLayoutSync({ delayMs: 0 });
|
|
512
473
|
}
|
|
513
474
|
|
|
514
475
|
createResizeHandler(restoreSidebarState) {
|
|
@@ -517,7 +478,7 @@ export class WorkspacePreviewController {
|
|
|
517
478
|
clearTimeout(resizeTimer);
|
|
518
479
|
resizeTimer = setTimeout(() => {
|
|
519
480
|
restoreSidebarState?.();
|
|
520
|
-
this.
|
|
481
|
+
this.schedulePreviewLayoutSync({ delayMs: 0 });
|
|
521
482
|
}, 100);
|
|
522
483
|
};
|
|
523
484
|
}
|
|
@@ -534,22 +495,23 @@ export class WorkspacePreviewController {
|
|
|
534
495
|
return observer;
|
|
535
496
|
}
|
|
536
497
|
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
previewLayoutSyncTimer
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
498
|
+
resetPreviewLayoutSync() {
|
|
499
|
+
clearTimeout(this.previewLayoutSyncTimer);
|
|
500
|
+
this.previewLayoutSyncTimer = null;
|
|
501
|
+
this.pendingPreviewLayoutSync = false;
|
|
502
|
+
this.previewHydrationPaused = false;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
schedulePreviewLayoutSync({ delayMs = 120 } = {}) {
|
|
506
|
+
if (this.previewHydrationPaused) {
|
|
507
|
+
this.pendingPreviewLayoutSync = true;
|
|
546
508
|
return;
|
|
547
509
|
}
|
|
548
510
|
|
|
549
|
-
clearTimeout(previewLayoutSyncTimer);
|
|
511
|
+
clearTimeout(this.previewLayoutSyncTimer);
|
|
550
512
|
|
|
551
|
-
|
|
552
|
-
|
|
513
|
+
this.previewLayoutSyncTimer = setTimeout(() => {
|
|
514
|
+
this.previewLayoutSyncTimer = null;
|
|
553
515
|
|
|
554
516
|
const hasSession = Boolean(this.getSession());
|
|
555
517
|
const isDrawioPreview = this.elements.previewContent?.classList?.contains?.('is-drawio-file-preview') ?? false;
|
|
@@ -562,8 +524,8 @@ export class WorkspacePreviewController {
|
|
|
562
524
|
return;
|
|
563
525
|
}
|
|
564
526
|
|
|
565
|
-
if (
|
|
566
|
-
|
|
527
|
+
if (this.previewHydrationPaused) {
|
|
528
|
+
this.pendingPreviewLayoutSync = true;
|
|
567
529
|
return;
|
|
568
530
|
}
|
|
569
531
|
|
|
@@ -586,40 +548,25 @@ export class WorkspacePreviewController {
|
|
|
586
548
|
},
|
|
587
549
|
});
|
|
588
550
|
}, delayMs);
|
|
589
|
-
|
|
590
|
-
setPreviewLayoutSyncTimer(nextTimer);
|
|
591
551
|
}
|
|
592
552
|
|
|
593
|
-
handleEditorScrollActivityChange({
|
|
594
|
-
isActive,
|
|
595
|
-
pendingPreviewLayoutSync,
|
|
596
|
-
previewLayoutSyncTimer,
|
|
597
|
-
setHydrationPaused,
|
|
598
|
-
setPendingPreviewLayoutSync,
|
|
599
|
-
setPreviewLayoutSyncTimer,
|
|
600
|
-
}) {
|
|
553
|
+
handleEditorScrollActivityChange(isActive) {
|
|
601
554
|
const nextPaused = Boolean(isActive);
|
|
602
|
-
|
|
555
|
+
this.previewHydrationPaused = nextPaused;
|
|
603
556
|
this.previewRenderer.setHydrationPaused(nextPaused);
|
|
604
557
|
this.drawioEmbed.setHydrationPaused(nextPaused);
|
|
605
558
|
this.excalidrawEmbed.setHydrationPaused(nextPaused);
|
|
606
559
|
|
|
607
560
|
if (nextPaused) {
|
|
608
|
-
clearTimeout(previewLayoutSyncTimer);
|
|
609
|
-
|
|
610
|
-
|
|
561
|
+
clearTimeout(this.previewLayoutSyncTimer);
|
|
562
|
+
this.previewLayoutSyncTimer = null;
|
|
563
|
+
this.pendingPreviewLayoutSync = true;
|
|
611
564
|
return;
|
|
612
565
|
}
|
|
613
566
|
|
|
614
|
-
if (pendingPreviewLayoutSync) {
|
|
615
|
-
|
|
616
|
-
this.schedulePreviewLayoutSync({
|
|
617
|
-
delayMs: 0,
|
|
618
|
-
hydrationPaused: false,
|
|
619
|
-
previewLayoutSyncTimer: null,
|
|
620
|
-
setPendingPreviewLayoutSync,
|
|
621
|
-
setPreviewLayoutSyncTimer,
|
|
622
|
-
});
|
|
567
|
+
if (this.pendingPreviewLayoutSync) {
|
|
568
|
+
this.pendingPreviewLayoutSync = false;
|
|
569
|
+
this.schedulePreviewLayoutSync({ delayMs: 0 });
|
|
623
570
|
}
|
|
624
571
|
}
|
|
625
572
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export class WorkspaceRouteController {
|
|
2
2
|
constructor({
|
|
3
3
|
backlinksPanel,
|
|
4
|
+
canvasEmbed = null,
|
|
4
5
|
clearInitialFileBootstrap,
|
|
5
6
|
clearStaticPreviewDocument = null,
|
|
6
7
|
closeSidebarOnMobile,
|
|
@@ -38,6 +39,7 @@ export class WorkspaceRouteController {
|
|
|
38
39
|
layoutController,
|
|
39
40
|
}) {
|
|
40
41
|
this.backlinksPanel = backlinksPanel;
|
|
42
|
+
this.canvasEmbed = canvasEmbed;
|
|
41
43
|
this.clearInitialFileBootstrap = clearInitialFileBootstrap;
|
|
42
44
|
this.clearStaticPreviewDocument = clearStaticPreviewDocument;
|
|
43
45
|
this.closeSidebarOnMobile = closeSidebarOnMobile;
|
|
@@ -83,8 +85,7 @@ export class WorkspaceRouteController {
|
|
|
83
85
|
}
|
|
84
86
|
|
|
85
87
|
const route = this.navigation.getHashRoute();
|
|
86
|
-
const
|
|
87
|
-
const canLeave = await this.prepareActiveExcalidrawDisconnect(nextFilePath);
|
|
88
|
+
const canLeave = route.type === 'file' || await this.prepareActiveEmbedDisconnect();
|
|
88
89
|
if (!canLeave) {
|
|
89
90
|
return;
|
|
90
91
|
}
|
|
@@ -171,11 +172,6 @@ export class WorkspaceRouteController {
|
|
|
171
172
|
this.elements.emptyState?.classList.remove('hidden');
|
|
172
173
|
this.elements.editorPage?.classList.add('hidden');
|
|
173
174
|
this.elements.diffPage?.classList.add('hidden');
|
|
174
|
-
if (this.elements.previewContent) {
|
|
175
|
-
this.elements.previewContent.innerHTML = '';
|
|
176
|
-
this.elements.previewContent.dataset.renderPhase = 'ready';
|
|
177
|
-
}
|
|
178
|
-
this.videoEmbed?.reconcileEmbeds(this.elements.previewContent);
|
|
179
175
|
this.resetPreviewSurface();
|
|
180
176
|
|
|
181
177
|
this.renderAvatars();
|
|
@@ -187,8 +183,7 @@ export class WorkspaceRouteController {
|
|
|
187
183
|
}
|
|
188
184
|
}
|
|
189
185
|
|
|
190
|
-
|
|
191
|
-
this.fileHistoryView?.hide?.();
|
|
186
|
+
prepareGitView(filePath = null) {
|
|
192
187
|
this.setSessionLoadToken(this.getSessionLoadToken() + 1);
|
|
193
188
|
this.clearInitialFileBootstrap();
|
|
194
189
|
this.clearStaticPreviewDocument?.();
|
|
@@ -196,18 +191,18 @@ export class WorkspaceRouteController {
|
|
|
196
191
|
this.setSession(null);
|
|
197
192
|
this.resetPreviewMode();
|
|
198
193
|
this.layoutController.reset();
|
|
199
|
-
this.setCurrentFilePath(
|
|
194
|
+
this.setCurrentFilePath(filePath);
|
|
200
195
|
this.lobby.setCurrentFile(null);
|
|
201
|
-
this.fileExplorer.setActiveFile(
|
|
196
|
+
this.fileExplorer.setActiveFile(filePath);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
showDiffState() {
|
|
200
|
+
this.fileHistoryView?.hide?.();
|
|
201
|
+
this.prepareGitView();
|
|
202
202
|
|
|
203
203
|
this.elements.emptyState?.classList.add('hidden');
|
|
204
204
|
this.elements.editorPage?.classList.add('hidden');
|
|
205
205
|
this.elements.diffPage?.classList.remove('hidden');
|
|
206
|
-
if (this.elements.previewContent) {
|
|
207
|
-
this.elements.previewContent.innerHTML = '';
|
|
208
|
-
this.elements.previewContent.dataset.renderPhase = 'ready';
|
|
209
|
-
}
|
|
210
|
-
this.videoEmbed?.reconcileEmbeds(this.elements.previewContent);
|
|
211
206
|
this.resetPreviewSurface();
|
|
212
207
|
|
|
213
208
|
this.elements.outlineToggle?.classList.add('hidden');
|
|
@@ -220,25 +215,11 @@ export class WorkspaceRouteController {
|
|
|
220
215
|
|
|
221
216
|
showFileHistoryState(filePath) {
|
|
222
217
|
this.gitDiffView.hide();
|
|
223
|
-
this.
|
|
224
|
-
this.clearInitialFileBootstrap();
|
|
225
|
-
this.clearStaticPreviewDocument?.();
|
|
226
|
-
this.workspaceCoordinator.cleanupSession();
|
|
227
|
-
this.setSession(null);
|
|
228
|
-
this.resetPreviewMode();
|
|
229
|
-
this.layoutController.reset();
|
|
230
|
-
this.setCurrentFilePath(filePath);
|
|
231
|
-
this.lobby.setCurrentFile(null);
|
|
232
|
-
this.fileExplorer.setActiveFile(filePath);
|
|
218
|
+
this.prepareGitView(filePath);
|
|
233
219
|
|
|
234
220
|
this.elements.emptyState?.classList.add('hidden');
|
|
235
221
|
this.elements.editorPage?.classList.add('hidden');
|
|
236
222
|
this.elements.diffPage?.classList.remove('hidden');
|
|
237
|
-
if (this.elements.previewContent) {
|
|
238
|
-
this.elements.previewContent.innerHTML = '';
|
|
239
|
-
this.elements.previewContent.dataset.renderPhase = 'ready';
|
|
240
|
-
}
|
|
241
|
-
this.videoEmbed?.reconcileEmbeds(this.elements.previewContent);
|
|
242
223
|
this.resetPreviewSurface();
|
|
243
224
|
|
|
244
225
|
this.elements.outlineToggle?.classList.add('hidden');
|
|
@@ -252,25 +233,11 @@ export class WorkspaceRouteController {
|
|
|
252
233
|
showPreviewOnlyState(filePath) {
|
|
253
234
|
this.gitDiffView.hide();
|
|
254
235
|
this.fileHistoryView?.hide?.();
|
|
255
|
-
this.
|
|
256
|
-
this.clearInitialFileBootstrap();
|
|
257
|
-
this.clearStaticPreviewDocument?.();
|
|
258
|
-
this.workspaceCoordinator.cleanupSession();
|
|
259
|
-
this.setSession(null);
|
|
260
|
-
this.resetPreviewMode();
|
|
261
|
-
this.layoutController.reset();
|
|
262
|
-
this.setCurrentFilePath(filePath);
|
|
263
|
-
this.lobby.setCurrentFile(null);
|
|
264
|
-
this.fileExplorer.setActiveFile(filePath);
|
|
236
|
+
this.prepareGitView(filePath);
|
|
265
237
|
|
|
266
238
|
this.elements.emptyState?.classList.add('hidden');
|
|
267
239
|
this.elements.editorPage?.classList.remove('hidden');
|
|
268
240
|
this.elements.diffPage?.classList.add('hidden');
|
|
269
|
-
if (this.elements.previewContent) {
|
|
270
|
-
this.elements.previewContent.innerHTML = '';
|
|
271
|
-
this.elements.previewContent.dataset.renderPhase = 'ready';
|
|
272
|
-
}
|
|
273
|
-
this.videoEmbed?.reconcileEmbeds(this.elements.previewContent);
|
|
274
241
|
this.resetPreviewSurface();
|
|
275
242
|
|
|
276
243
|
this.elements.markdownToolbar?.classList.add('hidden');
|
|
@@ -281,6 +248,7 @@ export class WorkspaceRouteController {
|
|
|
281
248
|
}
|
|
282
249
|
|
|
283
250
|
async openFile(filePath, options = {}) {
|
|
251
|
+
if (!await this.prepareActiveEmbedDisconnect(filePath)) return false;
|
|
284
252
|
const shouldRevealInTree = this.pendingTreeRevealPath === filePath;
|
|
285
253
|
if (shouldRevealInTree) {
|
|
286
254
|
this.pendingTreeRevealPath = null;
|
|
@@ -305,14 +273,16 @@ export class WorkspaceRouteController {
|
|
|
305
273
|
return true;
|
|
306
274
|
}
|
|
307
275
|
|
|
308
|
-
async
|
|
309
|
-
const activeFilePath = this.workspaceCoordinator.stateStore?.
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
276
|
+
async prepareActiveEmbedDisconnect(nextFilePath = null) {
|
|
277
|
+
const activeFilePath = this.workspaceCoordinator.stateStore?.currentFilePath
|
|
278
|
+
?? this.workspaceCoordinator.stateStore?.get?.('currentFilePath')
|
|
279
|
+
?? null;
|
|
280
|
+
if (!activeFilePath || activeFilePath === nextFilePath) return true;
|
|
281
|
+
const embed = this.workspaceCoordinator.isCanvasFile?.(activeFilePath)
|
|
282
|
+
? this.canvasEmbed
|
|
283
|
+
: (this.workspaceCoordinator.isExcalidrawFile?.(activeFilePath) ? this.excalidrawEmbed : null);
|
|
284
|
+
if (embed) {
|
|
285
|
+
const canLeave = await embed.prepareFileDisconnect(activeFilePath, {
|
|
316
286
|
timeoutMs: 10000,
|
|
317
287
|
});
|
|
318
288
|
if (!canLeave) {
|
|
@@ -376,6 +346,11 @@ export class WorkspaceRouteController {
|
|
|
376
346
|
}
|
|
377
347
|
|
|
378
348
|
resetPreviewSurface() {
|
|
349
|
+
if (this.elements.previewContent) {
|
|
350
|
+
this.elements.previewContent.innerHTML = '';
|
|
351
|
+
this.elements.previewContent.dataset.renderPhase = 'ready';
|
|
352
|
+
}
|
|
353
|
+
this.videoEmbed?.reconcileEmbeds(this.elements.previewContent);
|
|
379
354
|
this.imageLightbox?.close?.();
|
|
380
355
|
this.previewRenderer.setHydrationPaused(false);
|
|
381
356
|
this.drawioEmbed.setHydrationPaused(false);
|