collabmd 0.1.33 → 0.1.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{CodeMirrorEditor-UCMRAMCV-Bg0dawOb.js → CodeMirrorEditor-UCMRAMCV-CvLFeHXu.js} +1 -1
- package/dist/client/assets/_baseFor-Bfo4esZ5.js +1 -0
- package/dist/client/assets/arc-tRoMuWFi.js +1 -0
- package/dist/client/assets/architecture-YZFGNWBL-CtU43_5T.js +1 -0
- package/dist/client/assets/{architectureDiagram-2XIMDMQ5-kYbOThe4.js → architectureDiagram-Q4EWVU46-CVdcOotN.js} +4 -4
- package/dist/client/assets/blockDiagram-DXYQGD6D-B_gNUKQ4.js +132 -0
- package/dist/client/assets/c4Diagram-AHTNJAMY-BSDwfduG.js +10 -0
- package/dist/client/assets/channel-BDb1g_mJ.js +1 -0
- package/dist/client/assets/chunk-2KRD3SAO-C6u8y11R.js +1 -0
- package/dist/client/assets/chunk-336JU56O-Ch9X5KoM.js +2 -0
- package/dist/client/assets/{chunk-HHEYEP7N-DlevL8bq.js → chunk-426QAEUC-CwJ7loGf.js} +1 -1
- package/dist/client/assets/chunk-4TB4RGXK-BEsauZP5.js +206 -0
- package/dist/client/assets/chunk-5FUZZQ4R-6x8SlhH9.js +62 -0
- package/dist/client/assets/chunk-5PVQY5BW-R5SE6dhE.js +2 -0
- package/dist/client/assets/chunk-67CJDMHE-CjXw5hFa.js +1 -0
- package/dist/client/assets/chunk-7N4EOEYR-DNHyuswJ.js +1 -0
- package/dist/client/assets/chunk-AA7GKIK3-DayE4IF_.js +1 -0
- package/dist/client/assets/chunk-BSJP7CBP-CexlYBxB.js +1 -0
- package/dist/client/assets/chunk-CIAEETIT-CkDJ4DYI.js +1 -0
- package/dist/client/assets/{chunk-KX2RTZJC-BTiOJb7N.js → chunk-EDXVE4YY-BVR_nF3y.js} +1 -1
- package/dist/client/assets/chunk-ENJZ2VHE-CFVWytAB.js +10 -0
- package/dist/client/assets/chunk-FOC6F5B3-DzCiCLGs.js +1 -0
- package/dist/client/assets/chunk-ICPOFSXX-B9LPHgU7.js +122 -0
- package/dist/client/assets/chunk-K5T4RW27-kmGSebVE.js +94 -0
- package/dist/client/assets/chunk-KGLVRYIC-DVjPRsaR.js +1 -0
- package/dist/client/assets/chunk-LIHQZDEY-DKFj13sC.js +1 -0
- package/dist/client/assets/chunk-NU2UP6EN-UVL-wkIc.js +35 -0
- package/dist/client/assets/chunk-ORNJ4GCN-D0uTAC-5.js +1 -0
- package/dist/client/assets/{chunk-NQ4KR5QH-CMJKI6Oj.js → chunk-OYMX7WX6-nWiNHNyD.js} +25 -14
- package/dist/client/assets/{chunk-PU5JKC2W-D_6N6t8f.js → chunk-U2HBQHQK-Bue4Ufzn.js} +6 -6
- package/dist/client/assets/{chunk-PQ6SQG4A-D1AbThjy.js → chunk-X2U36JSP-CRE6lp7n.js} +1 -1
- package/dist/client/assets/{chunk-XPW4576I-DJr4_4Yy.js → chunk-XPW4576I-BL5M-tF8.js} +1 -1
- package/dist/client/assets/{chunk-JSJVCQXG-DPQ9cPJt.js → chunk-YZCP3GAM-D7Z5wUWA.js} +1 -1
- package/dist/client/assets/chunk-ZZ45TVLE-CBbl1Qec.js +1 -0
- package/dist/client/assets/classDiagram-6PBFFD2Q-MIbgV5UL.js +1 -0
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-Bb70vg2O.js +1 -0
- package/dist/client/assets/clike-BFTLRaGS.js +1 -0
- package/dist/client/assets/clone-D6JWrlxJ.js +1 -0
- package/dist/client/assets/{coffeescript-B_7eyHAa.js → coffeescript-B7GZajzV.js} +1 -1
- package/dist/client/assets/{cose-bilkent-S5V4N54A-DASO2hrk.js → cose-bilkent-S5V4N54A-xxgR5OJ-.js} +1 -1
- package/dist/client/assets/{cypher-DE6I2lIA.js → cypher-DEGl2llJ.js} +1 -1
- package/dist/client/assets/cytoscape.esm-B3PRdePO.js +321 -0
- package/dist/client/assets/{d-BNkKjn0o.js → d-BspB0dox.js} +1 -1
- package/dist/client/assets/dagre-KV5264BT-C2K9mFg1.js +4 -0
- package/dist/client/assets/dagre-VaFYRFbD.js +1 -0
- package/dist/client/assets/diagram-5BDNPKRD-DE0M0jaM.js +10 -0
- package/dist/client/assets/diagram-G4DWMVQ6-BfaRuSTT.js +24 -0
- package/dist/client/assets/diagram-MMDJMWI5-91Bly_hN.js +43 -0
- package/dist/client/assets/diagram-TYMM5635-fBkLwZGN.js +24 -0
- package/dist/client/assets/{dist-BzpfHRaE.js → dist-74GtnE06.js} +1 -1
- package/dist/client/assets/dist-B3lARV_e.js +1 -0
- package/dist/client/assets/{dist-O1z0Ayg0.js → dist-BCvzlTeb.js} +1 -1
- package/dist/client/assets/{dist-DsL7sqZR.js → dist-BMlUxhOz.js} +1 -1
- package/dist/client/assets/dist-BSED50tI.js +13 -0
- package/dist/client/assets/{dist-B-02vKOA.js → dist-Bkn7JaJv.js} +1 -1
- package/dist/client/assets/dist-Bq8Z0WUT.js +1 -0
- package/dist/client/assets/{dist-E_jPb93e.js → dist-Bzb9nPam.js} +1 -1
- package/dist/client/assets/{dist-CL-jjdvG.js → dist-C0e9kfNh.js} +1 -1
- package/dist/client/assets/dist-C8wdW7W4.js +1 -0
- package/dist/client/assets/dist-CDUQ5ELn.js +1 -0
- package/dist/client/assets/dist-CHSg_nUM.js +1 -0
- package/dist/client/assets/dist-CSAH9iuE.js +6 -0
- package/dist/client/assets/{dist-CxfohGIV.js → dist-CSNMpi-w.js} +1 -1
- package/dist/client/assets/dist-CZPTvk_g2.js +1 -0
- package/dist/client/assets/{dist-k47-Io7D.js → dist-Co8HE14w.js} +1 -1
- package/dist/client/assets/{dist-Bc2ND6i3.js → dist-CqU98NzX.js} +1 -1
- package/dist/client/assets/{dist-BzbYwa8m.js → dist-D0dQAc9b.js} +1 -1
- package/dist/client/assets/{dist-Dyt7n5Ui.js → dist-D1-dK0Dk.js} +1 -1
- package/dist/client/assets/{dist-B4uQVR_X.js → dist-DAKGEzm0.js} +1 -1
- package/dist/client/assets/dist-DBzteOlY.js +1 -0
- package/dist/client/assets/{dist-CjII8VDS.js → dist-DSRCADL9.js} +1 -1
- package/dist/client/assets/{dist-lDhnP-K1.js → dist-DdR2aYqj.js} +1 -1
- package/dist/client/assets/{dist-DUvaQ-Bj.js → dist-DidT3Jay.js} +1 -1
- package/dist/client/assets/dist-Doo91MTa.js +1 -0
- package/dist/client/assets/{dist-BLAlZer_.js → dist-Dwy75xI6.js} +1 -1
- package/dist/client/assets/{dist-3uAMa5w5.js → dist-FC9LftvP.js} +1 -1
- package/dist/client/assets/{dist-CGV1S_as.js → dist-PPAeaw4t.js} +1 -1
- package/dist/client/assets/{dist-BtnXjRx0.js → dist-VPEWg0Ob.js} +1 -1
- package/dist/client/assets/{dist-CXpKYW9s.js → dist-cQSK4Xor.js} +1 -1
- package/dist/client/assets/{dist-rMhng5DK.js → dist-r5I9Jgww.js} +1 -1
- package/dist/client/assets/drawio-editor-CWLEpwps.js +9 -0
- package/dist/client/assets/{drawioEditor-D6clB5OH.js → drawioEditor-5rJhxjA4.js} +2 -2
- package/dist/client/assets/{ecl-M7Iek4lq.js → ecl-D9rhJ9-u.js} +1 -1
- package/dist/client/assets/{editor-session-Dzy_85Wp.js → editor-session-CLOuvy37.js} +3 -3
- package/dist/client/assets/{erDiagram-INFDFZHY-DlIf-fb7.js → erDiagram-SMLLAGMA-DUQcqEQ1.js} +33 -18
- package/dist/client/assets/excalidraw-editor-ukEKPqGJ.js +9 -0
- package/dist/client/assets/{excalidraw-mermaid-stub-Bwe-bKcT.js → excalidraw-mermaid-stub-Df0Q2qkW.js} +1 -1
- package/dist/client/assets/excalidraw-scene-CDK3oDnm.js +176 -0
- package/dist/client/assets/excalidrawEditor-BJ8QLmWc.js +2 -0
- package/dist/client/assets/{export-page-PeexH2QK.js → export-page-D2rCmrUH.js} +2 -2
- package/dist/client/assets/exportDocument-Dunnjgii.js +2 -0
- package/dist/client/assets/{fcl-BWKK0S4-.js → fcl-CUXJFJn1.js} +1 -1
- package/dist/client/assets/flatten-CX_XvnUf.js +1 -0
- package/dist/client/assets/flowDiagram-DWJPFMVM-B_A5JyId.js +162 -0
- package/dist/client/assets/ganttDiagram-T4ZO3ILL-HM3CD7bk.js +292 -0
- package/dist/client/assets/gitGraph-7Q5UKJZL-BrBlB49D.js +1 -0
- package/dist/client/assets/gitGraphDiagram-UUTBAWPF-Dw7twZDm.js +106 -0
- package/dist/client/assets/graphlib-DDD4Vdye.js +1 -0
- package/dist/client/assets/{groovy-BEKazBrO.js → groovy-Di--Vb9Z.js} +1 -1
- package/dist/client/assets/{haxe-BY9d_5nB.js → haxe-CcPA1xnA.js} +1 -1
- package/dist/client/assets/image-XLNPCCAD-BFNybKza.js +1 -0
- package/dist/client/assets/{image-blob-reduce.esm-DriR2zT9.js → image-blob-reduce.esm-DiuPkovC.js} +1 -1
- package/dist/client/assets/{index-Czg_KL-i.js → index-BbziNMqE.js} +2 -2
- package/dist/client/assets/info-OMHHGYJF-BcmgcSx1.js +1 -0
- package/dist/client/assets/{infoDiagram-LFFYTUFH-DFTI0nfs.js → infoDiagram-42DDH7IO-DX-d3DMp.js} +1 -1
- package/dist/client/assets/isEmpty-BKDbo1FH.js +1 -0
- package/dist/client/assets/ishikawaDiagram-UXIWVN3A-BHmsxpMs.js +70 -0
- package/dist/client/assets/{javascript-CdiVhQeA.js → javascript-gTK9fxz6.js} +1 -1
- package/dist/client/assets/javascript-qUBHINSy.js +1 -0
- package/dist/client/assets/{journeyDiagram-4ABVD52K-DDur6iHm.js → journeyDiagram-VCZTEJTY-jxDSjgE1.js} +2 -2
- package/dist/client/assets/{jsx-runtime-C2p7wRmT.js → jsx-runtime-B_8UNt-W.js} +1 -1
- package/dist/client/assets/{kanban-definition-K7BYSVSG-dA6NPLsg.js → kanban-definition-6JOO6SKY-od3qY1mE.js} +2 -2
- package/dist/client/assets/line-CZsGUM4H.js +1 -0
- package/dist/client/assets/{lua-kutgyRGY.js → lua-Cg0FqIlO.js} +1 -1
- package/dist/client/assets/main-CN0kbtGk.js +1369 -0
- package/dist/client/assets/mermaid-parser.core-DtIbxv6L.js +4 -0
- package/dist/client/assets/mermaid-runtime-vVJfjscE.js +11 -0
- package/dist/client/assets/{mindmap-definition-YRQLILUH-DjQcsPoe.js → mindmap-definition-QFDTVHPH-C9qrdAqo.js} +39 -11
- package/dist/client/assets/packet-4T2RLAQJ-DYYSvRuJ.js +1 -0
- package/dist/client/assets/pica-BEurQXMu.js +2 -0
- package/dist/client/assets/pie-ZZUOXDRM-cG65Mc64.js +1 -0
- package/dist/client/assets/pieDiagram-DEJITSTG-BHXxj7wl.js +30 -0
- package/dist/client/assets/{preview-render-compiler-BjLlHmiQ.js → preview-render-compiler-BHeDhYho.js} +2 -2
- package/dist/client/assets/preview-render-compiler-D3QM1Ryz.js +1 -0
- package/dist/client/assets/{preview-render-profile-CR4dJZrp.js → preview-render-profile-BF6os3x9.js} +5 -5
- package/dist/client/assets/{preview-render-worker-B4dH2yxj.js → preview-render-worker-C4AFtMIr.js} +6 -6
- package/dist/client/assets/{pug-DkUcLYWt.js → pug-lkTEco3G.js} +1 -1
- package/dist/client/assets/{python-CZtTmYkS.js → python-BUyhM0Ew.js} +1 -1
- package/dist/client/assets/{q-I27iQntV.js → q-Dls1OX0D.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-337W2JSQ-CYKgdx7K.js → quadrantDiagram-34T5L4WZ-CWW7LORF.js} +1 -1
- package/dist/client/assets/{quick-switcher-controller-DcyllYpm.js → quick-switcher-controller-B1erSgJ1.js} +1 -1
- package/dist/client/assets/{r-DN_EydfL.js → r-DeZ8Mdev.js} +1 -1
- package/dist/client/assets/radar-PYXPWWZC-Bmpup_xw.js +1 -0
- package/dist/client/assets/reduce-C6FuFJbE.js +1 -0
- package/dist/client/assets/requirementDiagram-MS252O5E-CTljNdQH.js +84 -0
- package/dist/client/assets/{room-yJaBAoEU.js → room-DI7DXGeS.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-WA2Y5GQK-CfHe3D6R.js → sankeyDiagram-XADWPNL6-CCfFkC74.js} +1 -1
- package/dist/client/assets/sequenceDiagram-FGHM5R23-BD9vj6WG.js +157 -0
- package/dist/client/assets/{sparql-BOvq0dv7.js → sparql-vm8qNO8J.js} +1 -1
- package/dist/client/assets/sql-GL7dVWcd.js +1 -0
- package/dist/client/assets/stateDiagram-FHFEXIEX-CpiX3KPd.js +1 -0
- package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-D_5ufPqT.js +1 -0
- package/dist/client/assets/{swift-BCxe4-cw.js → swift-CKcKnWv9.js} +1 -1
- package/dist/client/assets/timeline-definition-GMOUNBTQ-BafRAkSF.js +120 -0
- package/dist/client/assets/treeView-SZITEDCU-NbjhK5cw.js +1 -0
- package/dist/client/assets/treemap-W4RFUUIX-DJzRbb-x.js +1 -0
- package/dist/client/assets/{turtle-GBz_E4RG.js → turtle-BkP3ExOG.js} +1 -1
- package/dist/client/assets/{vault-api-client-p7h7cXKM.js → vault-api-client-DSx3mWkH.js} +1 -1
- package/dist/client/assets/{vault-utils-5Xr0MXCb.js → vault-utils-CRpy8MQz.js} +1 -1
- package/dist/client/assets/vennDiagram-DHZGUBPP-DSngq_Zj.js +34 -0
- package/dist/client/assets/{verilog-C4wTycyo.js → verilog-DSARZZPc.js} +1 -1
- package/dist/client/assets/{vhdl-Bwndeg44.js → vhdl-CnYyYTpa.js} +1 -1
- package/dist/client/assets/wardley-RL74JXVD-DTNoH_BY.js +1 -0
- package/dist/client/assets/wardleyDiagram-NUSXRM2D-CAEd2kJG.js +20 -0
- package/dist/client/assets/{xychartDiagram-JWTSCODW-C3vA70iJ.js → xychartDiagram-5P7HB3ND-BScQpnru.js} +6 -6
- package/dist/client/assets/{yjs-provider-reset-guard-CtERLBID.js → yjs-provider-reset-guard-_Q3mj6tP.js} +1 -1
- package/dist/client/drawio-editor.html +1 -1
- package/dist/client/excalidraw-editor.html +1 -1
- package/dist/client/export-document.html +1 -1
- package/dist/client/index.html +1 -1
- package/package.json +12 -11
- package/src/client/application/app-shell/git-feature.js +44 -36
- package/src/client/application/app-shell/ui-feature-shell.js +87 -63
- package/src/client/application/quick-switcher-loader.js +39 -0
- package/src/client/bootstrap/collabmd-app-shell.js +16 -20
- package/src/client/domain/keyboard-shortcuts.js +8 -0
- package/src/client/drawio-editor.js +13 -0
- package/src/client/excalidraw-editor.js +13 -0
- package/src/client/infrastructure/excalidraw-room-client.js +1 -1
- package/src/client/infrastructure/workspace-sync-client.js +26 -3
- package/src/client/presentation/comment-ui/comment-ui-card.js +83 -3
- package/src/client/presentation/comment-ui/comment-ui-state.js +25 -2
- package/src/client/presentation/drawio-embed-controller.js +18 -0
- package/src/client/presentation/excalidraw-embed-controller.js +11 -1
- package/src/client/presentation/file-history-view-controller.js +9 -1
- package/src/client/presentation/git-panel-controller.js +103 -91
- package/src/server/domain/backlink-index.js +74 -94
- package/src/server/domain/bases/base-index-snapshot-store.js +46 -62
- package/src/server/domain/markdown-reference-extractor.js +233 -0
- package/src/server/infrastructure/http/create-request-handler.js +63 -28
- package/src/server/infrastructure/http/create-vault-api-command-handler.js +275 -256
- package/src/server/infrastructure/http/create-vault-api-query-handler.js +255 -233
- package/src/server/infrastructure/persistence/vault-file-store.js +107 -16
- package/src/server/infrastructure/workspace/file-system-sync-service.js +37 -11
- package/dist/client/assets/_basePickBy-Dv0sK1l7.js +0 -1
- package/dist/client/assets/_baseUniq-DKYX57ji.js +0 -1
- package/dist/client/assets/arc-DrfYGhWk.js +0 -1
- package/dist/client/assets/architecture-PBZL5I3N-DiglIZi9.js +0 -1
- package/dist/client/assets/blockDiagram-WCTKOSBZ-GIgTqnhk.js +0 -132
- package/dist/client/assets/c4Diagram-IC4MRINW-CkHO1i_L.js +0 -10
- package/dist/client/assets/channel-CgsU9TSN.js +0 -1
- package/dist/client/assets/chunk-7E7YKBS2-TdU92i9i.js +0 -1
- package/dist/client/assets/chunk-7R4GIKGN-mqd2GwMg.js +0 -80
- package/dist/client/assets/chunk-C72U2L5F-CJKQWBtz.js +0 -1
- package/dist/client/assets/chunk-EGIJ26TM-C4nq20om.js +0 -1
- package/dist/client/assets/chunk-GEFDOKGD-Bs7FmFox.js +0 -2
- package/dist/client/assets/chunk-GLR3WWYH-qQe2O5VQ.js +0 -2
- package/dist/client/assets/chunk-KYZI473N-CTSCuqRb.js +0 -53
- package/dist/client/assets/chunk-L3YUKLVL-CJZMBtKF.js +0 -1
- package/dist/client/assets/chunk-MX3YWQON-DQpSwRf6.js +0 -1
- package/dist/client/assets/chunk-NU2UP6EN-DlUENSHU.js +0 -35
- package/dist/client/assets/chunk-O4XLMI2P-CcVxZh41.js +0 -7
- package/dist/client/assets/chunk-OZEHJAEY-DjBZbgu0.js +0 -1
- package/dist/client/assets/chunk-R5LLSJPH-CkjKXM73.js +0 -1
- package/dist/client/assets/chunk-WL4C6EOR-axcuKSup.js +0 -189
- package/dist/client/assets/chunk-XIRO2GV7-4wqVHjs_.js +0 -1
- package/dist/client/assets/chunk-XZSTWKYB-C8Y_hIKZ.js +0 -94
- package/dist/client/assets/chunk-YBOYWFTD-CKg4ymFF.js +0 -1
- package/dist/client/assets/classDiagram-VBA2DB6C-BHZpvOxK.js +0 -1
- package/dist/client/assets/classDiagram-v2-RAHNMMFH-DA7HMUUs.js +0 -1
- package/dist/client/assets/clike-1_ZsiVV8.js +0 -1
- package/dist/client/assets/clone-Dgi8Z4IL.js +0 -1
- package/dist/client/assets/cytoscape.esm-Czjc507F.js +0 -321
- package/dist/client/assets/dagre-CfB3Fw33.js +0 -1
- package/dist/client/assets/dagre-KLK3FWXG-CC7tq2Ky.js +0 -4
- package/dist/client/assets/diagram-E7M64L7V-CMt7BN5M.js +0 -24
- package/dist/client/assets/diagram-IFDJBPK2-BFMBUGpd.js +0 -43
- package/dist/client/assets/diagram-P4PSJMXO-CviA1xXr.js +0 -24
- package/dist/client/assets/dist-3bQB_we3.js +0 -1
- package/dist/client/assets/dist-8Igu3Ee_2.js +0 -1
- package/dist/client/assets/dist-BU8uusJX.js +0 -1
- package/dist/client/assets/dist-BVB8rn7o.js +0 -1
- package/dist/client/assets/dist-D5QOYy7y.js +0 -6
- package/dist/client/assets/dist-DIi0uqLJ.js +0 -1
- package/dist/client/assets/dist-DJ16N7ol.js +0 -1
- package/dist/client/assets/dist-DWJL3_bF.js +0 -13
- package/dist/client/assets/dist-OQE68wIX.js +0 -1
- package/dist/client/assets/dist-x7PIEmJu.js +0 -1
- package/dist/client/assets/drawio-editor-BMTwP5mD.js +0 -9
- package/dist/client/assets/excalidraw-editor-CAP9F8CB.js +0 -9
- package/dist/client/assets/excalidraw-scene-BF_bT1OL.js +0 -176
- package/dist/client/assets/excalidrawEditor-DD4AvzYP.js +0 -2
- package/dist/client/assets/exportDocument-Zfwq1XVx.js +0 -2
- package/dist/client/assets/flowDiagram-PKNHOUZH-C_t-mkwb.js +0 -162
- package/dist/client/assets/ganttDiagram-A5KZAMGK-BtK9Tb--.js +0 -292
- package/dist/client/assets/gitGraph-HDMCJU4V-CT7YfbD3.js +0 -1
- package/dist/client/assets/gitGraphDiagram-K3NZZRJ6-DULDLGiJ.js +0 -65
- package/dist/client/assets/graphlib-BgRST-Qg.js +0 -1
- package/dist/client/assets/image-XLNPCCAD-CFiKwiWK.js +0 -1
- package/dist/client/assets/info-3K5VOQVL-DUpNyDC-.js +0 -1
- package/dist/client/assets/isArrayLikeObject-BId_dPHM.js +0 -1
- package/dist/client/assets/isEmpty-CVvRj8fj.js +0 -1
- package/dist/client/assets/ishikawaDiagram-PHBUUO56-DpBuDpC6.js +0 -70
- package/dist/client/assets/javascript-UJe68_xi.js +0 -1
- package/dist/client/assets/line-B2GMovaI.js +0 -1
- package/dist/client/assets/main-DeowJOSp.js +0 -1368
- package/dist/client/assets/math-B-LMBwub.js +0 -1
- package/dist/client/assets/mermaid-parser.core-B1ogGcR8.js +0 -4
- package/dist/client/assets/mermaid-runtime-Bn8A6DGx.js +0 -11
- package/dist/client/assets/packet-RMMSAZCW-DEwNbIrA.js +0 -1
- package/dist/client/assets/pica-C1TdTz-C.js +0 -2
- package/dist/client/assets/pie-UPGHQEXC-D5M_lSjo.js +0 -1
- package/dist/client/assets/pieDiagram-SKSYHLDU-jhHouFpk.js +0 -30
- package/dist/client/assets/preview-render-compiler-Duy_3IcP.js +0 -1
- package/dist/client/assets/radar-KQ55EAFF-AU1qh3Bw.js +0 -1
- package/dist/client/assets/requirementDiagram-Z7DCOOCP-D9SHxoW7.js +0 -73
- package/dist/client/assets/sequenceDiagram-2WXFIKYE-CZsMMqAJ.js +0 -145
- package/dist/client/assets/sql-DDFeQNTK.js +0 -1
- package/dist/client/assets/stateDiagram-RAJIS63D-CoNZjTYV.js +0 -1
- package/dist/client/assets/stateDiagram-v2-FVOUBMTO-1zOw6NmQ.js +0 -1
- package/dist/client/assets/timeline-definition-YZTLITO2-DSe2mrG8.js +0 -61
- package/dist/client/assets/treemap-KZPCXAKY-C9UI2fwP.js +0 -1
- package/dist/client/assets/vennDiagram-LZ73GAT5-xSzaIpy1.js +0 -34
- /package/dist/client/assets/{chunk-55IACEB6-CpncB3ru.js → chunk-55IACEB6-DLqevMSj.js} +0 -0
- /package/dist/client/assets/{chunk-QZHKN3VN-CgLPFSk5.js → chunk-QZHKN3VN-BnOS2iQW.js} +0 -0
- /package/dist/client/assets/{drawio-room-DEivFyNV.js → drawio-room-1i6Nn0_Z.js} +0 -0
- /package/dist/client/assets/{excalidraw-mermaid-stub-BZPU4ZhU.js → excalidraw-mermaid-stub-DzxtBcQW.js} +0 -0
- /package/dist/client/assets/{file-kind-DBptLlF_.js → file-kind-DmKq2MvD.js} +0 -0
- /package/dist/client/assets/{preview-diagram-utils-COt-IYMD.js → preview-diagram-utils-D8VypUft.js} +0 -0
- /package/dist/client/assets/{rough.esm-DE_lJ5Ge.js → rough.esm-BU2knLt9.js} +0 -0
- /package/dist/client/assets/{runtime-config-CqhchMC4.js → runtime-config-DWTejofP.js} +0 -0
|
@@ -43,6 +43,7 @@ function openComposerForSelection(origin = 'editor', sourceRect = null) {
|
|
|
43
43
|
: this.session?.getCommentAnchorClientRect?.(anchor));
|
|
44
44
|
this.activeCard = {
|
|
45
45
|
anchor,
|
|
46
|
+
composerDraft: null,
|
|
46
47
|
mode: 'create',
|
|
47
48
|
origin: nextOrigin,
|
|
48
49
|
replyThreadId: null,
|
|
@@ -57,8 +58,10 @@ function openThreadGroup(group, { anchor, origin, sourceRect }) {
|
|
|
57
58
|
this.activeCard = {
|
|
58
59
|
anchor,
|
|
59
60
|
groupKey: group.key,
|
|
61
|
+
groupThreadIds: group.threads.map((thread) => thread.id),
|
|
60
62
|
mode: 'group',
|
|
61
63
|
origin,
|
|
64
|
+
replyDrafts: {},
|
|
62
65
|
replyThreadId: null,
|
|
63
66
|
sourceRect,
|
|
64
67
|
};
|
|
@@ -97,9 +100,59 @@ function updateCardSourceRect() {
|
|
|
97
100
|
return this.activeCard.sourceRect;
|
|
98
101
|
}
|
|
99
102
|
|
|
103
|
+
/** @this {any} */
|
|
104
|
+
function createTextareaDraft(textarea) {
|
|
105
|
+
if (!(textarea instanceof HTMLTextAreaElement)) {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return {
|
|
110
|
+
selectionDirection: textarea.selectionDirection ?? 'none',
|
|
111
|
+
selectionEnd: textarea.selectionEnd,
|
|
112
|
+
selectionStart: textarea.selectionStart,
|
|
113
|
+
value: textarea.value,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/** @this {any} */
|
|
118
|
+
function captureActiveCardDraft() {
|
|
119
|
+
if (!this.activeCard) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const textarea = this.cardRoot?.querySelector('.comment-card-input');
|
|
124
|
+
const draft = createTextareaDraft(textarea);
|
|
125
|
+
if (!draft) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
if (this.activeCard.mode === 'create') {
|
|
130
|
+
this.activeCard.composerDraft = draft;
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (this.activeCard.mode === 'group' && this.activeCard.replyThreadId) {
|
|
135
|
+
this.activeCard.replyDrafts = {
|
|
136
|
+
...(this.activeCard.replyDrafts ?? {}),
|
|
137
|
+
[this.activeCard.replyThreadId]: draft,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/** @this {any} */
|
|
143
|
+
function createPendingFocusTarget(element, draft = null) {
|
|
144
|
+
return {
|
|
145
|
+
element,
|
|
146
|
+
selectionDirection: draft?.selectionDirection ?? 'none',
|
|
147
|
+
selectionEnd: Number.isInteger(draft?.selectionEnd) ? draft.selectionEnd : null,
|
|
148
|
+
selectionStart: Number.isInteger(draft?.selectionStart) ? draft.selectionStart : null,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
|
|
100
152
|
/** @this {any} */
|
|
101
153
|
function renderCard() {
|
|
102
154
|
const root = this.ensureCardRoot();
|
|
155
|
+
this.captureActiveCardDraft();
|
|
103
156
|
root.replaceChildren();
|
|
104
157
|
root.classList.toggle('hidden', !this.activeCard);
|
|
105
158
|
if (!this.activeCard) {
|
|
@@ -245,6 +298,7 @@ function createComposer() {
|
|
|
245
298
|
textarea.rows = 4;
|
|
246
299
|
textarea.maxLength = COMMENT_BODY_MAX_LENGTH;
|
|
247
300
|
textarea.placeholder = 'Add context, feedback, or a question...';
|
|
301
|
+
textarea.value = this.activeCard?.composerDraft?.value ?? '';
|
|
248
302
|
|
|
249
303
|
const actions = document.createElement('div');
|
|
250
304
|
actions.className = 'ui-record-actions comment-card-actions';
|
|
@@ -277,7 +331,7 @@ function createComposer() {
|
|
|
277
331
|
this.closeCard();
|
|
278
332
|
});
|
|
279
333
|
|
|
280
|
-
this.pendingCardFocusElement = textarea;
|
|
334
|
+
this.pendingCardFocusElement = createPendingFocusTarget(textarea, this.activeCard?.composerDraft);
|
|
281
335
|
return form;
|
|
282
336
|
}
|
|
283
337
|
|
|
@@ -329,6 +383,9 @@ function createThreadElement(thread) {
|
|
|
329
383
|
reply.setAttribute('aria-label', isReplying ? 'Cancel reply' : 'Reply to thread');
|
|
330
384
|
reply.title = isReplying ? 'Cancel reply' : 'Reply to thread';
|
|
331
385
|
reply.addEventListener('click', () => {
|
|
386
|
+
if (isReplying && this.activeCard?.replyDrafts?.[thread.id]) {
|
|
387
|
+
delete this.activeCard.replyDrafts[thread.id];
|
|
388
|
+
}
|
|
332
389
|
this.activeCard = {
|
|
333
390
|
...this.activeCard,
|
|
334
391
|
replyThreadId: isReplying ? null : thread.id,
|
|
@@ -517,12 +574,14 @@ function createReactionPickerButton(thread, message, emoji) {
|
|
|
517
574
|
function createReplyComposer(thread) {
|
|
518
575
|
const form = document.createElement('form');
|
|
519
576
|
form.className = 'comment-reply-form';
|
|
577
|
+
const draft = this.activeCard?.replyDrafts?.[thread.id] ?? null;
|
|
520
578
|
|
|
521
579
|
const textarea = document.createElement('textarea');
|
|
522
580
|
textarea.className = inputClassNames({ extra: 'comment-card-input' });
|
|
523
581
|
textarea.rows = 3;
|
|
524
582
|
textarea.maxLength = COMMENT_BODY_MAX_LENGTH;
|
|
525
583
|
textarea.placeholder = 'Reply to thread...';
|
|
584
|
+
textarea.value = draft?.value ?? '';
|
|
526
585
|
|
|
527
586
|
const actions = document.createElement('div');
|
|
528
587
|
actions.className = 'ui-record-actions comment-card-actions';
|
|
@@ -532,6 +591,9 @@ function createReplyComposer(thread) {
|
|
|
532
591
|
cancel.className = buttonClassNames({ variant: 'secondary' });
|
|
533
592
|
cancel.textContent = 'Cancel';
|
|
534
593
|
cancel.addEventListener('click', () => {
|
|
594
|
+
if (this.activeCard?.replyDrafts?.[thread.id]) {
|
|
595
|
+
delete this.activeCard.replyDrafts[thread.id];
|
|
596
|
+
}
|
|
535
597
|
this.activeCard = {
|
|
536
598
|
...this.activeCard,
|
|
537
599
|
replyThreadId: null,
|
|
@@ -546,7 +608,7 @@ function createReplyComposer(thread) {
|
|
|
546
608
|
|
|
547
609
|
actions.append(cancel, submit);
|
|
548
610
|
form.append(textarea, actions);
|
|
549
|
-
this.pendingCardFocusElement = textarea;
|
|
611
|
+
this.pendingCardFocusElement = createPendingFocusTarget(textarea, draft);
|
|
550
612
|
|
|
551
613
|
form.addEventListener('submit', async (event) => {
|
|
552
614
|
event.preventDefault();
|
|
@@ -556,6 +618,9 @@ function createReplyComposer(thread) {
|
|
|
556
618
|
return;
|
|
557
619
|
}
|
|
558
620
|
|
|
621
|
+
if (this.activeCard?.replyDrafts?.[thread.id]) {
|
|
622
|
+
delete this.activeCard.replyDrafts[thread.id];
|
|
623
|
+
}
|
|
559
624
|
this.activeCard = {
|
|
560
625
|
...this.activeCard,
|
|
561
626
|
replyThreadId: null,
|
|
@@ -597,7 +662,8 @@ function positionCard(card) {
|
|
|
597
662
|
|
|
598
663
|
/** @this {any} */
|
|
599
664
|
function flushPendingCardFocus() {
|
|
600
|
-
const
|
|
665
|
+
const pendingTarget = this.pendingCardFocusElement;
|
|
666
|
+
const element = pendingTarget instanceof HTMLElement ? pendingTarget : pendingTarget?.element;
|
|
601
667
|
if (!(element instanceof HTMLElement) || !element.isConnected) {
|
|
602
668
|
this.pendingCardFocusElement = null;
|
|
603
669
|
return;
|
|
@@ -615,6 +681,17 @@ function flushPendingCardFocus() {
|
|
|
615
681
|
}
|
|
616
682
|
|
|
617
683
|
element.focus({ preventScroll: true });
|
|
684
|
+
if (
|
|
685
|
+
element instanceof HTMLTextAreaElement
|
|
686
|
+
&& Number.isInteger(pendingTarget?.selectionStart)
|
|
687
|
+
&& Number.isInteger(pendingTarget?.selectionEnd)
|
|
688
|
+
) {
|
|
689
|
+
element.setSelectionRange(
|
|
690
|
+
pendingTarget.selectionStart,
|
|
691
|
+
pendingTarget.selectionEnd,
|
|
692
|
+
pendingTarget.selectionDirection ?? 'none',
|
|
693
|
+
);
|
|
694
|
+
}
|
|
618
695
|
};
|
|
619
696
|
|
|
620
697
|
focusElement();
|
|
@@ -633,14 +710,17 @@ function flushPendingCardFocus() {
|
|
|
633
710
|
}
|
|
634
711
|
|
|
635
712
|
export const commentUiCardMethods = {
|
|
713
|
+
captureActiveCardDraft,
|
|
636
714
|
closeCard,
|
|
637
715
|
createComposer,
|
|
716
|
+
createPendingFocusTarget,
|
|
638
717
|
createMessageElement,
|
|
639
718
|
createQuickReactionButton,
|
|
640
719
|
createReactionBar,
|
|
641
720
|
createReactionPicker,
|
|
642
721
|
createReactionPickerButton,
|
|
643
722
|
createReplyComposer,
|
|
723
|
+
createTextareaDraft,
|
|
644
724
|
createThreadElement,
|
|
645
725
|
ensureCardRoot,
|
|
646
726
|
flushPendingCardFocus,
|
|
@@ -165,11 +165,34 @@ function handleEditorContentChange() {
|
|
|
165
165
|
/** @this {CommentUiStateContext} */
|
|
166
166
|
function setThreads(threads = []) {
|
|
167
167
|
this.threads = sortThreads(threads);
|
|
168
|
+
const groups = this.getThreadGroups();
|
|
168
169
|
if (
|
|
169
170
|
this.activeCard?.mode === 'group'
|
|
170
|
-
&& !this.getThreadGroups().some((group) => group.key === this.activeCard.groupKey)
|
|
171
171
|
) {
|
|
172
|
-
this.activeCard
|
|
172
|
+
const activeThreadIds = Array.isArray(this.activeCard.groupThreadIds)
|
|
173
|
+
? this.activeCard.groupThreadIds
|
|
174
|
+
: [];
|
|
175
|
+
const matchingGroup = groups.find((group) => group.key === this.activeCard.groupKey)
|
|
176
|
+
?? groups.find((group) => (
|
|
177
|
+
group.threads.length === activeThreadIds.length
|
|
178
|
+
&& group.threads.every((thread) => activeThreadIds.includes(thread.id))
|
|
179
|
+
));
|
|
180
|
+
if (!matchingGroup) {
|
|
181
|
+
this.activeCard = null;
|
|
182
|
+
} else {
|
|
183
|
+
this.activeCard = {
|
|
184
|
+
...this.activeCard,
|
|
185
|
+
anchor: matchingGroup.anchor,
|
|
186
|
+
groupKey: matchingGroup.key,
|
|
187
|
+
groupThreadIds: matchingGroup.threads.map((thread) => thread.id),
|
|
188
|
+
};
|
|
189
|
+
if (
|
|
190
|
+
this.activeCard.replyThreadId
|
|
191
|
+
&& !matchingGroup.threads.some((thread) => thread.id === this.activeCard.replyThreadId)
|
|
192
|
+
) {
|
|
193
|
+
this.activeCard.replyThreadId = null;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
173
196
|
}
|
|
174
197
|
if (
|
|
175
198
|
this.reactionPicker
|
|
@@ -98,6 +98,7 @@ export class DrawioEmbedController {
|
|
|
98
98
|
getTheme,
|
|
99
99
|
onOpenFile = null,
|
|
100
100
|
onOpenTextFile = null,
|
|
101
|
+
onToggleQuickSwitcher = null,
|
|
101
102
|
previewContainer,
|
|
102
103
|
previewElement,
|
|
103
104
|
toastController,
|
|
@@ -106,6 +107,7 @@ export class DrawioEmbedController {
|
|
|
106
107
|
this.getTheme = getTheme;
|
|
107
108
|
this.onOpenFile = onOpenFile;
|
|
108
109
|
this.onOpenTextFile = onOpenTextFile;
|
|
110
|
+
this.onToggleQuickSwitcher = onToggleQuickSwitcher;
|
|
109
111
|
this.previewContainer = previewContainer;
|
|
110
112
|
this.previewElement = previewElement;
|
|
111
113
|
this.toastController = toastController;
|
|
@@ -585,7 +587,15 @@ export class DrawioEmbedController {
|
|
|
585
587
|
return null;
|
|
586
588
|
}
|
|
587
589
|
|
|
590
|
+
_isMessageFromEntry(event, entry) {
|
|
591
|
+
return Boolean(entry?.iframe?.contentWindow && event.source === entry.iframe.contentWindow);
|
|
592
|
+
}
|
|
593
|
+
|
|
588
594
|
_onMessage(event) {
|
|
595
|
+
if (event.origin !== window.location.origin) {
|
|
596
|
+
return;
|
|
597
|
+
}
|
|
598
|
+
|
|
589
599
|
const payload = event.data;
|
|
590
600
|
if (!payload || payload.source !== 'drawio-editor') {
|
|
591
601
|
return;
|
|
@@ -595,6 +605,9 @@ export class DrawioEmbedController {
|
|
|
595
605
|
if (!entry) {
|
|
596
606
|
return;
|
|
597
607
|
}
|
|
608
|
+
if (!this._isMessageFromEntry(event, entry)) {
|
|
609
|
+
return;
|
|
610
|
+
}
|
|
598
611
|
|
|
599
612
|
if (payload.type === 'fallback-text') {
|
|
600
613
|
if (entry.mode === 'view') {
|
|
@@ -616,6 +629,11 @@ export class DrawioEmbedController {
|
|
|
616
629
|
|
|
617
630
|
if (payload.type === 'request-open-file') {
|
|
618
631
|
this.onOpenFile?.(entry.filePath);
|
|
632
|
+
return;
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
if (payload.type === 'request-toggle-quick-switcher') {
|
|
636
|
+
this.onToggleQuickSwitcher?.();
|
|
619
637
|
}
|
|
620
638
|
}
|
|
621
639
|
|
|
@@ -55,6 +55,7 @@ export class ExcalidrawEmbedController {
|
|
|
55
55
|
getTheme,
|
|
56
56
|
getLocalUser,
|
|
57
57
|
onOpenFile = null,
|
|
58
|
+
onToggleQuickSwitcher = null,
|
|
58
59
|
previewContainer,
|
|
59
60
|
previewElement,
|
|
60
61
|
toastController,
|
|
@@ -62,6 +63,7 @@ export class ExcalidrawEmbedController {
|
|
|
62
63
|
this.getTheme = getTheme;
|
|
63
64
|
this.getLocalUser = getLocalUser;
|
|
64
65
|
this.onOpenFile = onOpenFile;
|
|
66
|
+
this.onToggleQuickSwitcher = onToggleQuickSwitcher;
|
|
65
67
|
this.previewContainer = previewContainer;
|
|
66
68
|
this.previewElement = previewElement;
|
|
67
69
|
this.toastController = toastController;
|
|
@@ -153,6 +155,7 @@ export class ExcalidrawEmbedController {
|
|
|
153
155
|
this.hydrationIdleId = null;
|
|
154
156
|
this.hydrationQueue = [];
|
|
155
157
|
this.hydrationInProgress = false;
|
|
158
|
+
this._exitMaximizedEmbed();
|
|
156
159
|
if (this.overlayRoot) {
|
|
157
160
|
this.overlayRoot.hidden = true;
|
|
158
161
|
}
|
|
@@ -762,7 +765,9 @@ export class ExcalidrawEmbedController {
|
|
|
762
765
|
enterMaximize();
|
|
763
766
|
}
|
|
764
767
|
});
|
|
765
|
-
openBtn.addEventListener('click', () => {
|
|
768
|
+
openBtn.addEventListener('click', (event) => {
|
|
769
|
+
event.preventDefault();
|
|
770
|
+
this._exitMaximizedEmbed();
|
|
766
771
|
this.onOpenFile?.(entry.filePath);
|
|
767
772
|
});
|
|
768
773
|
|
|
@@ -1194,6 +1199,11 @@ export class ExcalidrawEmbedController {
|
|
|
1194
1199
|
return;
|
|
1195
1200
|
}
|
|
1196
1201
|
|
|
1202
|
+
if (msg.type === 'request-toggle-quick-switcher') {
|
|
1203
|
+
this.onToggleQuickSwitcher?.();
|
|
1204
|
+
return;
|
|
1205
|
+
}
|
|
1206
|
+
|
|
1197
1207
|
if (msg.type === 'error') {
|
|
1198
1208
|
if (entry.isParked) {
|
|
1199
1209
|
return;
|
|
@@ -516,9 +516,15 @@ export class FileHistoryViewController {
|
|
|
516
516
|
additions: Number(selectedEntry.additions || 0),
|
|
517
517
|
deletions: Number(selectedEntry.deletions || 0),
|
|
518
518
|
} : null);
|
|
519
|
+
const hasSelection = Boolean(selectedEntry);
|
|
520
|
+
|
|
521
|
+
this.syncToolbarIndicators(selectedEntry, selectedSummary, hasSelection);
|
|
522
|
+
this.syncToolbarButtonStates(hasSelection);
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
syncToolbarIndicators(selectedEntry, selectedSummary, hasSelection) {
|
|
519
526
|
const additions = Number(selectedSummary?.additions || 0);
|
|
520
527
|
const deletions = Number(selectedSummary?.deletions || 0);
|
|
521
|
-
const hasSelection = Boolean(selectedEntry);
|
|
522
528
|
|
|
523
529
|
if (this.fileIndicator) {
|
|
524
530
|
this.fileIndicator.textContent = selectedEntry?.type === 'commit'
|
|
@@ -535,7 +541,9 @@ export class FileHistoryViewController {
|
|
|
535
541
|
`;
|
|
536
542
|
this.stats.classList.toggle('hidden', !hasSelection);
|
|
537
543
|
}
|
|
544
|
+
}
|
|
538
545
|
|
|
546
|
+
syncToolbarButtonStates(hasSelection) {
|
|
539
547
|
this.backToHistoryButton?.classList.add('hidden');
|
|
540
548
|
this.gitActionsGroup?.classList.add('hidden');
|
|
541
549
|
this.layoutToggle?.classList.add('hidden');
|
|
@@ -149,115 +149,125 @@ export class GitPanelController {
|
|
|
149
149
|
};
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
void this.setMode(nextMode);
|
|
161
|
-
}
|
|
162
|
-
return;
|
|
152
|
+
_handlePanelModeClick(event) {
|
|
153
|
+
const modeButton = event.target instanceof Element
|
|
154
|
+
? event.target.closest('[data-git-panel-mode]')
|
|
155
|
+
: null;
|
|
156
|
+
if (modeButton) {
|
|
157
|
+
const nextMode = modeButton.getAttribute('data-git-panel-mode');
|
|
158
|
+
if (nextMode === 'changes' || nextMode === 'history') {
|
|
159
|
+
void this.setMode(nextMode);
|
|
163
160
|
}
|
|
161
|
+
return true;
|
|
162
|
+
}
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
164
165
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
166
|
+
_handleSectionToggleClick(event) {
|
|
167
|
+
const toggleButton = event.target instanceof Element
|
|
168
|
+
? event.target.closest('[data-git-section-toggle]')
|
|
169
|
+
: null;
|
|
170
|
+
if (toggleButton) {
|
|
171
|
+
this.toggleSection(toggleButton.getAttribute('data-git-section-toggle'));
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
173
176
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
}
|
|
177
|
+
_handleCommitHistoryClick(event) {
|
|
178
|
+
const historyButton = event.target instanceof Element
|
|
179
|
+
? event.target.closest('[data-git-commit-hash]')
|
|
180
|
+
: null;
|
|
181
|
+
if (historyButton && !event.target.closest('[data-git-history-load-more]')) {
|
|
182
|
+
const hash = historyButton.getAttribute('data-git-commit-hash');
|
|
183
|
+
if (hash) {
|
|
182
184
|
this.onSelectCommit(hash, { path: this.selection.commitHash === hash ? this.selection.path : null });
|
|
183
|
-
return;
|
|
184
185
|
}
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
185
190
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
191
|
+
_handleFileSelectionClick(event) {
|
|
192
|
+
const fileButton = event.target instanceof Element
|
|
193
|
+
? event.target.closest('[data-git-path]')
|
|
194
|
+
: null;
|
|
195
|
+
if (fileButton && !event.target.closest('[data-git-file-action]')) {
|
|
196
|
+
const filePath = fileButton.getAttribute('data-git-path');
|
|
197
|
+
if (filePath) {
|
|
198
|
+
this.onSelectDiff(filePath, { scope: fileButton.getAttribute('data-git-scope') || 'working-tree' });
|
|
192
199
|
}
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
193
204
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
+
_handleFileActionClick(event) {
|
|
206
|
+
const actionButton = event.target instanceof Element
|
|
207
|
+
? event.target.closest('[data-git-file-action]')
|
|
208
|
+
: null;
|
|
209
|
+
if (actionButton) {
|
|
210
|
+
const action = actionButton.getAttribute('data-git-file-action');
|
|
211
|
+
const filePath = actionButton.getAttribute('data-git-path');
|
|
212
|
+
if (action && filePath) {
|
|
213
|
+
event.preventDefault();
|
|
214
|
+
event.stopPropagation();
|
|
215
|
+
void this.handleFileAction(action, filePath, actionButton.getAttribute('data-git-scope') || 'working-tree');
|
|
205
216
|
}
|
|
217
|
+
return true;
|
|
218
|
+
}
|
|
219
|
+
return false;
|
|
220
|
+
}
|
|
206
221
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
222
|
+
_handlePanelClick(event) {
|
|
223
|
+
if (this._handlePanelModeClick(event)) return;
|
|
224
|
+
if (this._handleSectionToggleClick(event)) return;
|
|
225
|
+
if (this._handleCommitHistoryClick(event)) return;
|
|
226
|
+
|
|
227
|
+
if (event.target instanceof Element && event.target.closest('[data-git-history-load-more]')) {
|
|
228
|
+
void this.loadMoreHistory();
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
if (this._handleFileSelectionClick(event)) return;
|
|
233
|
+
|
|
234
|
+
const pullBackupButton = event.target instanceof Element
|
|
235
|
+
? event.target.closest('[data-git-pull-backup-path]')
|
|
236
|
+
: null;
|
|
237
|
+
if (pullBackupButton) {
|
|
238
|
+
const summaryPath = pullBackupButton.getAttribute('data-git-pull-backup-path');
|
|
239
|
+
if (summaryPath) {
|
|
215
240
|
this.onOpenPullBackup(summaryPath);
|
|
216
|
-
return;
|
|
217
241
|
}
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
218
244
|
|
|
219
|
-
|
|
220
|
-
? event.target.closest('[data-git-file-action]')
|
|
221
|
-
: null;
|
|
222
|
-
if (actionButton) {
|
|
223
|
-
const action = actionButton.getAttribute('data-git-file-action');
|
|
224
|
-
const filePath = actionButton.getAttribute('data-git-path');
|
|
225
|
-
const scope = actionButton.getAttribute('data-git-scope') || 'working-tree';
|
|
226
|
-
if (!action || !filePath) {
|
|
227
|
-
return;
|
|
228
|
-
}
|
|
245
|
+
if (this._handleFileActionClick(event)) return;
|
|
229
246
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
}
|
|
247
|
+
if (event.target instanceof Element && event.target.closest('[data-git-view-all]')) {
|
|
248
|
+
this.onViewAllDiff();
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
235
251
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
this.onViewAllDiff();
|
|
241
|
-
return;
|
|
242
|
-
}
|
|
252
|
+
if (event.target instanceof Element && event.target.closest('[data-git-commit-staged]')) {
|
|
253
|
+
void this.handleCommitStaged();
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
243
256
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
257
|
+
const syncButton = event.target instanceof Element
|
|
258
|
+
? event.target.closest('[data-git-sync-action]')
|
|
259
|
+
: null;
|
|
260
|
+
if (syncButton) {
|
|
261
|
+
const action = syncButton.getAttribute('data-git-sync-action');
|
|
262
|
+
if (action === 'pull' || action === 'push') {
|
|
263
|
+
void this.handleSyncAction(action);
|
|
250
264
|
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
251
267
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
if (syncButton) {
|
|
256
|
-
const action = syncButton.getAttribute('data-git-sync-action');
|
|
257
|
-
if (action === 'pull' || action === 'push') {
|
|
258
|
-
void this.handleSyncAction(action);
|
|
259
|
-
}
|
|
260
|
-
}
|
|
268
|
+
initialize() {
|
|
269
|
+
this.panel?.addEventListener('click', (event) => {
|
|
270
|
+
this._handlePanelClick(event);
|
|
261
271
|
});
|
|
262
272
|
|
|
263
273
|
this.searchInput?.addEventListener('input', (event) => {
|
|
@@ -720,6 +730,7 @@ export class GitPanelController {
|
|
|
720
730
|
&& this.selection.scope === file.scope;
|
|
721
731
|
const dirPath = getPathDir(file.path);
|
|
722
732
|
const displayName = getPathLeaf(file.path);
|
|
733
|
+
const fullPath = String(file.path || '');
|
|
723
734
|
const statusClass = badgeClass(file.status);
|
|
724
735
|
const stageAction = file.scope === 'staged'
|
|
725
736
|
? { label: 'Unstage', value: 'unstage' }
|
|
@@ -736,6 +747,7 @@ export class GitPanelController {
|
|
|
736
747
|
type="button"
|
|
737
748
|
data-git-path="${escapeHtml(file.path)}"
|
|
738
749
|
data-git-scope="${escapeHtml(file.scope)}"
|
|
750
|
+
title="${escapeHtml(fullPath)}"
|
|
739
751
|
>
|
|
740
752
|
${fileIconSvg()}
|
|
741
753
|
<span class="ui-item-copy git-file-copy">
|