collabmd 0.1.40 → 0.1.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -0
- package/dist/client/assets/{CodeMirrorEditor-UCMRAMCV-CjJV4GGp.js → CodeMirrorEditor-UCMRAMCV-DHEFSr_E.js} +1 -1
- package/dist/client/assets/{ar-SA-NXDWD63E-BfWwfLiP.js → ar-SA-NXDWD63E-S8m2UyIj.js} +1 -1
- package/dist/client/assets/{arc-B59iLcOr.js → arc-OeTCl9Oy.js} +1 -1
- package/dist/client/assets/architecture-7EHR7CIX-BQpCYB3J.js +1 -0
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-Cs4u0ty-.js → architectureDiagram-3BPJPVTR-CDqq0KA0.js} +2 -2
- package/dist/client/assets/{az-AZ-MXSORGZV-D3w9H6nC.js → az-AZ-MXSORGZV-DSzWvZBB.js} +1 -1
- package/dist/client/assets/bases-preview-controller-CBHDzzot.js +143 -0
- package/dist/client/assets/{bg-BG-O6MV2KSF-CqITeIE6.js → bg-BG-O6MV2KSF-C5nBekx3.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-C4RLg7wo.js → blockDiagram-GPEHLZMM-Z9jBLpGg.js} +1 -1
- package/dist/client/assets/{bn-IN-MMW2ORAC-BZcsVFhS.js → bn-BD-T2VJNT7N-D-8xXOzM.js} +1 -1
- package/dist/client/assets/{bn-BD-T2VJNT7N-DRxwOMG_.js → bn-IN-MMW2ORAC-D-8xXOzM.js} +1 -1
- package/dist/client/assets/button-2ZnWQkWV.js +1 -0
- package/dist/client/assets/{c4Diagram-AAUBKEIU-DMK9WIWS.js → c4Diagram-AAUBKEIU-UA_Eopag.js} +1 -1
- package/dist/client/assets/{ca-ES-MKBCGNOG-D2cujUJ7.js → ca-ES-MKBCGNOG-B3Ly68p3.js} +1 -1
- package/dist/client/assets/channel-CpvwJaGK.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-Beqll06X.js → chunk-2J33WTMH-DjYq2kZ3.js} +1 -1
- package/dist/client/assets/{chunk-3OPIFGDE-Kf30X6bZ.js → chunk-3OPIFGDE-DucrRywM.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-BVNkn9EH.js → chunk-4BX2VUAB-DcdHBPEH.js} +1 -1
- package/dist/client/assets/{chunk-4EGX6M5U-6L36_8q8.js → chunk-4EGX6M5U-BfCFom1o.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-CaPPZbdp.js → chunk-55IACEB6-B7ycySPI.js} +1 -1
- package/dist/client/assets/{chunk-5DO6E6H7-BpgUf0HE.js → chunk-5DO6E6H7-DP8QnaJj.js} +1 -1
- package/dist/client/assets/{chunk-5ZQYHXKU-BJyABJSy.js → chunk-5ZQYHXKU-C4q4UVKa.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-DNANnyAn.js → chunk-727SXJPM-DdWH2cfs.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-D-ou9vaq.js → chunk-AQP2D5EJ-D8o8QwFY.js} +1 -1
- package/dist/client/assets/{chunk-BR22UD5L-CHoFxkAQ.js → chunk-BR22UD5L-CT6fcRkN.js} +1 -1
- package/dist/client/assets/{chunk-BSJP7CBP-AmT6zI00.js → chunk-BSJP7CBP-COmh28sk.js} +1 -1
- package/dist/client/assets/{chunk-CSCIHK7Q-BIoF4mTy.js → chunk-CSCIHK7Q-D0bHjxCO.js} +2 -2
- package/dist/client/assets/{chunk-FHYWG6QK-qLbgayZT.js → chunk-FHYWG6QK-Ce318laP.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-DD6CIukb.js → chunk-FMBD7UC4-CM39cCCr.js} +1 -1
- package/dist/client/assets/{chunk-KSCS5N6A-DSHzBB4H.js → chunk-KSCS5N6A-Bk33m7yK.js} +1 -1
- package/dist/client/assets/{chunk-L5ZTLDWV-Ca0loQr2.js → chunk-L5ZTLDWV-J2sQu4Os.js} +1 -1
- package/dist/client/assets/{chunk-LZXEDZCA-D4QboL2E.js → chunk-LZXEDZCA-CTmBbzaL.js} +2 -2
- package/dist/client/assets/chunk-MMN3DZ5N-pTRxhVYl.js +35 -0
- package/dist/client/assets/{chunk-MPE355IW-BGGMthoR.js → chunk-MPE355IW-C_vkbqLj.js} +1 -1
- package/dist/client/assets/{chunk-MZUSXYTE-CXyCvcyW.js → chunk-MZUSXYTE-BnVcgphH.js} +1 -1
- package/dist/client/assets/{chunk-N66VUXT2-CZ58QOjk.js → chunk-N66VUXT2-B6CG-CnY.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-3Xs0Awks.js → chunk-ND2GUHAM-D-_vkA5V.js} +1 -1
- package/dist/client/assets/{chunk-NNHCCRGN--8l6bbR-.js → chunk-NNHCCRGN-DlpIbxXb.js} +6 -6
- package/dist/client/assets/{chunk-NZK2D7GU-w2jXiKa6.js → chunk-NZK2D7GU-Dc42C0Jt.js} +1 -1
- package/dist/client/assets/{chunk-O5CBEL6O-BFgstMja.js → chunk-O5CBEL6O-DdEDfb8z.js} +1 -1
- package/dist/client/assets/{chunk-PUPMXCY4-JvkUXyIj.js → chunk-PUPMXCY4-BZ88kQjK.js} +1 -1
- package/dist/client/assets/chunk-QZHKN3VN-D5YLQvjj.js +1 -0
- package/dist/client/assets/{chunk-SRAX5OIU-C_UPA-vt.js → chunk-SRAX5OIU-CiRgnkYo.js} +1 -1
- package/dist/client/assets/{chunk-UIBZB4QT-B4OybPy_.js → chunk-UIBZB4QT-r8p3pBHw.js} +1 -1
- package/dist/client/assets/{chunk-WCWK7LTN-BOL8a2ua.js → chunk-WCWK7LTN-DrKYkgXF.js} +1 -1
- package/dist/client/assets/chunk-WU5MYG2G-Cg2iUbET.js +1 -0
- package/dist/client/assets/{chunk-XPW4576I-D5FnFhOk.js → chunk-XPW4576I-BZyvtu42.js} +1 -1
- package/dist/client/assets/{chunk-Z5NKEFVG-GcpeeLo6.js → chunk-Z5NKEFVG-Dknufskm.js} +7 -7
- package/dist/client/assets/classDiagram-4FO5ZUOK-CGWY0cfg.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CGWY0cfg.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-Cx3Qt7pR.js → cose-bilkent-S5V4N54A-BuQb9WEM.js} +1 -1
- package/dist/client/assets/{cs-CZ-V77HGUP7-BXqhmWZb.js → cs-CZ-V77HGUP7-6BCNHMpz.js} +1 -1
- package/dist/client/assets/{cytoscape.esm-B_ygTtvl.js → cytoscape.esm-DelgaX4f.js} +2 -2
- package/dist/client/assets/{da-DK-I5RFNTM4-raD_lQnT.js → da-DK-I5RFNTM4-CVeCWpi2.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-BpURvxT4.js → dagre-BM42HDAG-ux5hA7G6.js} +1 -1
- package/dist/client/assets/{dagre-BcZLxzJJ.js → dagre-Bx709z4p.js} +1 -1
- package/dist/client/assets/{de-CH-WLRDEVBV-CyNG_YAO.js → de-CH-WLRDEVBV-CV-FNCkY.js} +1 -1
- package/dist/client/assets/{de-DE-DTI4WUSC-BAnqlByT.js → de-DE-DTI4WUSC-CV-FNCkY.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-DJH0JVlq.js → diagram-2AECGRRQ-Cx-EPj3F.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-DQG4Q1eS.js → diagram-5GNKFQAL-B6qUTxVg.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-hx21Lv-5.js → diagram-KO2AKTUF-BedClayW.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47--QODJMa9.js → diagram-LMA3HP47-DCwyG0i5.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-CB30hX1a.js → diagram-OG6HWLK6-BZD0jSxR.js} +1 -1
- package/dist/client/assets/diagram-action-icons-aa_KOv9h.js +36 -0
- package/dist/client/assets/{dist-DCqHC6ts.js → dist-B-m0-H59.js} +1 -1
- package/dist/client/assets/dist-B6Q0y0J8.js +1 -0
- package/dist/client/assets/dist-BCQCG0we.js +1 -0
- package/dist/client/assets/{dist-6oqNX0NJ.js → dist-BEyxdnUD.js} +1 -1
- package/dist/client/assets/{dist-Dv_PLWtE.js → dist-BYneHrvV.js} +1 -1
- package/dist/client/assets/dist-BsPHL5xw2.js +1 -0
- package/dist/client/assets/{dist-BBsYBvEp.js → dist-CX-kKEdL.js} +1 -1
- package/dist/client/assets/{dist-DSehUDUA.js → dist-CaLooK5r.js} +1 -1
- package/dist/client/assets/{dist-BOA6xeuH.js → dist-Cd4FT8TV.js} +1 -1
- package/dist/client/assets/{dist-q3smPWAL.js → dist-ClWZ99Dh.js} +1 -1
- package/dist/client/assets/{dist-D5hPoFa5.js → dist-D01mg-Uh.js} +1 -1
- package/dist/client/assets/{dist-CJMPm6rd.js → dist-D36UTodj.js} +1 -1
- package/dist/client/assets/{dist-CtHMYO6t.js → dist-D6YOhZ_d.js} +1 -1
- package/dist/client/assets/{dist-U35xPXYU.js → dist-D8jTFU06.js} +1 -1
- package/dist/client/assets/dist-DGI-0uwF.js +1 -0
- package/dist/client/assets/{dist-D5BVeoD4.js → dist-DGO-wCq8.js} +1 -1
- package/dist/client/assets/dist-DMKYvLqD.js +1 -0
- package/dist/client/assets/{dist-CDsAhnoa.js → dist-DRQhk99i.js} +1 -1
- package/dist/client/assets/{dist-wA96SVn6.js → dist-DScq22KK.js} +1 -1
- package/dist/client/assets/{dist-BQuic6-d.js → dist-DbpddOpB.js} +1 -1
- package/dist/client/assets/{dist-x4M0Qd0y.js → dist-Dl5uZm2T.js} +1 -1
- package/dist/client/assets/{dist-BsTc7qjG.js → dist-DvpEZjAN.js} +1 -1
- package/dist/client/assets/dist-Dw8hKOQm.js +1 -0
- package/dist/client/assets/{dist-Bhn_Fiol.js → dist-G7j-noyR.js} +1 -1
- package/dist/client/assets/dist-PItC1DRE.js +1 -0
- package/dist/client/assets/{dist-CAlqrzaF.js → dist-cMoydUa-.js} +1 -1
- package/dist/client/assets/dist-cTuGB1EW.js +9 -0
- package/dist/client/assets/{dist-DFzJ8okV.js → dist-efgaKpVU.js} +1 -1
- package/dist/client/assets/{dist-Dx8yU-RA.js → dist-nx-MGJIM.js} +1 -1
- package/dist/client/assets/{dist-UnjH15yg.js → dist-pww3cL4Q.js} +7 -7
- package/dist/client/assets/dist-uhQ-mkuh.js +2 -0
- package/dist/client/assets/{dockerfile-D8_6_FRV.js → dockerfile-BLkNEvjs.js} +1 -1
- package/dist/client/assets/drawio-editor-BM_W6Lkj.js +9 -0
- package/dist/client/assets/drawio-embed-controller-BKHnRnaj.js +1 -0
- package/dist/client/assets/drawioEditor-DBfHYCO5.js +2 -0
- package/dist/client/assets/{editor-session-BTPe8PEu.js → editor-session-VueuoR_r.js} +2 -2
- package/dist/client/assets/{el-GR-ZXDJ2OS4-De6xlnXD.js → el-GR-ZXDJ2OS4-DzgGVibO.js} +1 -1
- package/dist/client/assets/{en-CMP6EMR6-Bfz_MnNa.js → en-CMP6EMR6-l-4iz8RC.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-BvMeaml9.js → erDiagram-TEJ5UH35-7XmGIzui.js} +1 -1
- package/dist/client/assets/{es-ES-DYQHAD43-EVQAeFTZ.js → es-ES-DYQHAD43-DP98e8ox.js} +1 -1
- package/dist/client/assets/{eu-ES-QDSYU5Y3-O5XEQp0x.js → eu-ES-QDSYU5Y3-DrEfH-2N.js} +1 -1
- package/dist/client/assets/eventmodeling-FCH6USID-D-VxYsbw.js +1 -0
- package/dist/client/assets/excalidraw-editor-B3ffLqi6.css +1 -0
- package/dist/client/assets/{excalidraw-editor-DzL1T9D9.js → excalidraw-editor-C6fTkMBx.js} +4 -4
- package/dist/client/assets/excalidraw-embed-controller-BKx05cjZ.js +1 -0
- package/dist/client/assets/excalidraw-embed-reconciler-DGiagExg.js +1 -0
- package/dist/client/assets/{excalidraw-mermaid-stub-B5sWezsO.js → excalidraw-mermaid-stub-DE5FTiZB.js} +1 -1
- package/dist/client/assets/excalidraw-scene-DjODomMW.js +176 -0
- package/dist/client/assets/excalidrawEditor-DQD_lLF4.js +2 -0
- package/dist/client/assets/{export-page-BkCqT_2s.js → export-page-D0iHYSPi.js} +4 -4
- package/dist/client/assets/exportDocument-Ct-Zvf7_.js +2 -0
- package/dist/client/assets/{fa-IR-26LZG4PM-BlqI3v_N.js → fa-IR-26LZG4PM-CEwnMxEY.js} +1 -1
- package/dist/client/assets/{factor-Cz-hzBGH.js → factor-D7LVTn2l.js} +1 -1
- package/dist/client/assets/{fi-FI-6YS4KDE4-af5Lkv-j.js → fi-FI-6YS4KDE4-DPKGe_vC.js} +1 -1
- package/dist/client/assets/file-history-view-controller-CK3oHDCT.js +112 -0
- package/dist/client/assets/{flowDiagram-I6XJVG4X-DgXXcK8y.js → flowDiagram-I6XJVG4X-DgTAG2K2.js} +2 -2
- package/dist/client/assets/{fr-FR-BRLLPTZC-CwQyur9E.js → fr-FR-BRLLPTZC-CgMmN9yd.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-BMpbo3vT.js → ganttDiagram-6RSMTGT7-Curra433.js} +1 -1
- package/dist/client/assets/git-diff-view-controller-qorJ_Quo.js +150 -0
- package/dist/client/assets/git-panel-controller-DG8ws6B_.js +203 -0
- package/dist/client/assets/gitGraph-WXDBUCRP-CRS5XD98.js +1 -0
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CCdpTNJZ.js → gitGraphDiagram-PVQCEYII-DVf7-iH0.js} +1 -1
- package/dist/client/assets/{gl-ES-OKUZTLYG-BNEoLCI4.js → gl-ES-OKUZTLYG-qCIGpEXP.js} +1 -1
- package/dist/client/assets/{haxe-CcPA1xnA.js → haxe-DjVOVvNP.js} +1 -1
- package/dist/client/assets/{he-IL-26MGYIU7-WnVF9HP3.js → he-IL-26MGYIU7-_Pd-m9Sj.js} +1 -1
- package/dist/client/assets/{hi-IN-Q4ZOGTP2-DcU7ec07.js → hi-IN-Q4ZOGTP2-B4kd5rva.js} +1 -1
- package/dist/client/assets/{hu-HU-P2OXPSN5-wmJyK1Wq.js → hu-HU-P2OXPSN5-DL2sEPhQ.js} +1 -1
- package/dist/client/assets/{id-ID-2EIKXYN6-BTvn0aFf.js → id-ID-2EIKXYN6-DqXHubyc.js} +1 -1
- package/dist/client/assets/image-MLCQRF34-BT938jMR.js +1 -0
- package/dist/client/assets/index-AdGl0Mjr.js +2 -0
- package/dist/client/assets/index-V7z92VYK.css +1 -0
- package/dist/client/assets/info-J43DQDTF-CdrjkAmK.js +1 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-oYw2qnNY.js → infoDiagram-5YYISTIA-DT8NjvZp.js} +1 -1
- package/dist/client/assets/input-CXk9Zxz9.js +1 -0
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-BPqURwBR.js → ishikawaDiagram-YF4QCWOH-axeWdm72.js} +1 -1
- package/dist/client/assets/{it-IT-4CFKVXI2-CC_iQxXu.js → it-IT-4CFKVXI2-CyToZF8R.js} +1 -1
- package/dist/client/assets/{ja-JP-MAND2Z4V-ConJI8GA.js → ja-JP-MAND2Z4V-CdMMUzyq.js} +1 -1
- package/dist/client/assets/{javascript-gTK9fxz6.js → javascript-B9TABJff.js} +1 -1
- package/dist/client/assets/javascript-BRzqD9BA.js +1 -0
- package/dist/client/assets/{journeyDiagram-JHISSGLW-CvxY2Fte.js → journeyDiagram-JHISSGLW-_K7qmGID.js} +1 -1
- package/dist/client/assets/{jsx-runtime-IB1e1gmy.js → jsx-runtime-DqMcooe2.js} +1 -1
- package/dist/client/assets/{kaa-HQRTCXTJ-Caqwh_Qr.js → kaa-HQRTCXTJ-D6kVHP9w.js} +1 -1
- package/dist/client/assets/{kab-KAB-JKIKKTGH-DQBmYNc9.js → kab-KAB-JKIKKTGH-XYCYTUmV.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-Ex7702dO.js → kanban-definition-UN3LZRKU-DaPREf-3.js} +1 -1
- package/dist/client/assets/keyboard-shortcuts-Ctp9_GHy.js +1 -0
- package/dist/client/assets/{kk-KZ-HXQ63ZFC-O5qp74q-.js → kk-KZ-HXQ63ZFC-Du2sGLmI.js} +1 -1
- package/dist/client/assets/{km-KH-PKL3LSGX-2wUYTyyo.js → km-KH-PKL3LSGX-B2OnEat4.js} +1 -1
- package/dist/client/assets/{ko-KR-KXLREZX3-CYtUnW5t.js → ko-KR-KXLREZX3-CcxALsEE.js} +1 -1
- package/dist/client/assets/{ku-TR-MJ4IER3X-DtEKOAU3.js → ku-TR-MJ4IER3X-HDyr9f4z.js} +1 -1
- package/dist/client/assets/{line-DRJILpPI.js → line-CbpIuf9e.js} +1 -1
- package/dist/client/assets/{linear-rFRiXd2u.js → linear-BGe2G4b5.js} +1 -1
- package/dist/client/assets/{lt-LT-H6WFQ6FJ-Cs17Ppdf.js → lt-LT-H6WFQ6FJ-BzZe8pg9.js} +1 -1
- package/dist/client/assets/{lv-LV-GOCK6SJW-DYuTyosz.js → lv-LV-GOCK6SJW-CMspwH0q.js} +1 -1
- package/dist/client/assets/main-C8f6FlSO.js +789 -0
- package/dist/client/assets/{mermaid-parser.core-BD_OCbyj.js → mermaid-parser.core-C4gZtCl9.js} +2 -2
- package/dist/client/assets/{mermaid-runtime-CEgpdpwB.js → mermaid-runtime-CX_vmg3J.js} +3 -3
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-D4pwLdMH.js → mindmap-definition-RKZ34NQL-DB1uitpo.js} +1 -1
- package/dist/client/assets/{mr-IN-IXVLDMEQ-CIJFnklt.js → mr-IN-IXVLDMEQ-C6mqoMmX.js} +1 -1
- package/dist/client/assets/{my-MM-YG6MYTTD-em_7TGWX.js → my-MM-YG6MYTTD-Q33bVx2B.js} +1 -1
- package/dist/client/assets/navigation-D173qvIt.css +1 -0
- package/dist/client/assets/{nb-NO-XGWJISD2-BLNgPVDj.js → nb-NO-XGWJISD2-B1jdnBFb.js} +1 -1
- package/dist/client/assets/{nl-NL-XVDVCPNC-CComxzvg.js → nl-NL-XVDVCPNC-DoQkA2lu.js} +1 -1
- package/dist/client/assets/{nn-NO-EMX5MJX5-Cekj8s_-.js → nn-NO-EMX5MJX5-Db3tHf5b.js} +1 -1
- package/dist/client/assets/{nsis-QPGhLAeY.js → nsis-AQ_alPln.js} +1 -1
- package/dist/client/assets/{oc-FR-ROEINTVO-DW-kHJ81.js → oc-FR-ROEINTVO-DLu-4Ze0.js} +1 -1
- package/dist/client/assets/{ordinal-De-qfORd.js → ordinal-hYBb2elL.js} +1 -1
- package/dist/client/assets/{pa-IN-ZYN6SUDY-CnhULOGp.js → pa-IN-ZYN6SUDY-XvJuMxJR.js} +1 -1
- package/dist/client/assets/packet-YPE3B663-r4oAflYS.js +1 -0
- package/dist/client/assets/percentages-5DKR754L-D_KAYeu8.js +1 -0
- package/dist/client/assets/{pica-DcQ1xKp1.js → pica-DjQMjoX_.js} +1 -1
- package/dist/client/assets/pie-LRSECV5Y-DkaVktH1.js +1 -0
- package/dist/client/assets/{pieDiagram-4H26LBE5-C6MCExtR.js → pieDiagram-4H26LBE5-CdDwk3iQ.js} +1 -1
- package/dist/client/assets/{pl-PL-6VTG7PHC-C9rBsz9v.js → pl-PL-6VTG7PHC-DjJq8QfA.js} +1 -1
- package/dist/client/assets/preview-diagram-utils-DnqteI9Q.js +1 -0
- package/dist/client/assets/preview-render-compiler-Dts88fM3.js +35 -0
- package/dist/client/assets/preview-render-compiler-VKNqrOZN.js +1 -0
- package/dist/client/assets/preview-render-profile-CU6rvKx3.js +23 -0
- package/dist/client/assets/preview-render-worker-CFKBP7xz.js +59 -0
- package/dist/client/assets/{pt-BR-5YFKRR5G-BVyxOCjg.js → pt-BR-5YFKRR5G-Dg2lIz1V.js} +1 -1
- package/dist/client/assets/{pt-PT-GEIXXZ67-5CbVaVay.js → pt-PT-GEIXXZ67-COIg15TS.js} +1 -1
- package/dist/client/assets/{pug-lkTEco3G.js → pug-Ck0YjsGM.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-CD77Rny0.js → quadrantDiagram-W4KKPZXB-C6n3eYzo.js} +1 -1
- package/dist/client/assets/{quick-switcher-controller-CVJBt6V9.js → quick-switcher-controller-CVRUPEKp.js} +1 -1
- package/dist/client/assets/radar-GUYGQ44K-Bjhhjq-k.js +1 -0
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-DdKM6ZWI.js → requirementDiagram-4Y6WPE33-B-sVI-jx.js} +1 -1
- package/dist/client/assets/{ro-RO-E2P6TFZI-DANwkfep.js → ro-RO-E2P6TFZI-CdCIa8N3.js} +1 -1
- package/dist/client/assets/{room-Cha55fQg.js → room-CpCcgtG8.js} +1 -1
- package/dist/client/assets/{ru-RU-YBIIY43T-BWZSxhA5.js → ru-RU-YBIIY43T-C5TT1jTX.js} +1 -1
- package/dist/client/assets/runtime-config-CDgeuPWN.js +1 -0
- package/dist/client/assets/runtime-paths-DvpihCEq.js +1 -0
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-BH3_LNkI.js → sankeyDiagram-5OEKKPKP-EY2cdbUV.js} +1 -1
- package/dist/client/assets/segmented-control-DhUkW6ro.js +1 -0
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-CCGL7FMW.js → sequenceDiagram-3UESZ5HK-D6h6knAb.js} +2 -2
- package/dist/client/assets/{si-LK-673C2CI2-Bqr808AJ.js → si-LK-673C2CI2-f_5ZzunQ.js} +1 -1
- package/dist/client/assets/{sk-SK-CKZHQ4AP-B2PvXXeU.js → sk-SK-CKZHQ4AP-4jimlXp1.js} +1 -1
- package/dist/client/assets/{sl-SI-557H2GWM-IPVDhzgb.js → sl-SI-557H2GWM-BnZ04ZfX.js} +1 -1
- package/dist/client/assets/{src-BshjqEL2.js → src-DSz_pbBa.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-ljJcYRX4.js → stateDiagram-AJRCARHV-Ca8ZuIR2.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-DGRDwQhE.js +1 -0
- package/dist/client/assets/subset-shared.chunk-DcaFK0zo.js +1 -0
- package/dist/client/assets/{subset-worker.chunk-BW_EF59g.js → subset-worker.chunk-CVu8sQYq.js} +1 -1
- package/dist/client/assets/{sv-SE-XOPKKDWS-CQipq9Nf.js → sv-SE-XOPKKDWS-B2uKmd06.js} +1 -1
- package/dist/client/assets/{ta-IN-XBH7DQI3-Cj2o89vS.js → ta-IN-XBH7DQI3-Bld4KtCz.js} +1 -1
- package/dist/client/assets/{th-TH-TOCWH3R4-IOX-l13w.js → th-TH-TOCWH3R4-DUlvnJTX.js} +1 -1
- package/dist/client/assets/{timeline-definition-PNZ67QCA-CUVPem2o.js → timeline-definition-PNZ67QCA-BAhvj49M.js} +1 -1
- package/dist/client/assets/{tr-TR-GXW6CYY5-DBVLEsZg.js → tr-TR-GXW6CYY5-BXTTqJlZ.js} +1 -1
- package/dist/client/assets/treeView-BLDUP644-DbX5QpdZ.js +1 -0
- package/dist/client/assets/treemap-LRROVOQU-DT4YRX1p.js +1 -0
- package/dist/client/assets/turtle-Cx3rYX2g.js +1 -0
- package/dist/client/assets/{uk-UA-IJKTNUDG-C5kaymku.js → uk-UA-IJKTNUDG-DbQpa2ug.js} +1 -1
- package/dist/client/assets/{uz-UZ-TBZZEA4V-lMna4tx1.js → uz-UZ-TBZZEA4V-Dt35hEMk.js} +1 -1
- package/dist/client/assets/vault-api-client-BPVNCJZC.js +1 -0
- package/dist/client/assets/vault-api-client-VAfZ8okg.js +1 -0
- package/dist/client/assets/{vault-utils-BbJUHPCf.js → vault-utils-kIbqyWPm.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-Bb1KSPKA.js → vennDiagram-CIIHVFJN-GGrxyoPK.js} +2 -2
- package/dist/client/assets/{vi-VN-MULSGNVB-BAcoCjsz.js → vi-VN-MULSGNVB-BgxNIE1N.js} +1 -1
- package/dist/client/assets/wardley-L42UT6IY-Ba5lVG9E.js +1 -0
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-EdTzLQiR.js → wardleyDiagram-YWT4CUSO-BgYuJM9o.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-BoQFrGlt.js → xychartDiagram-2RQKCTM6-DKA6F9sv.js} +1 -1
- package/dist/client/assets/{yjs-provider-reset-guard-CNmMf4Qd.js → yjs-provider-reset-guard-BicD2Ate.js} +1 -1
- package/dist/client/assets/{zh-CN-MVX3E32U-sW-DCFHP.js → zh-CN-MVX3E32U-W0nclq-N.js} +1 -1
- package/dist/client/assets/{zh-HK-JNU5RLIE-Duqu8EG_.js → zh-HK-JNU5RLIE-C2VRLD9Z.js} +1 -1
- package/dist/client/assets/{zh-TW-LENVCA6T-BHC0OLnd.js → zh-TW-LENVCA6T-Ci7udZjZ.js} +1 -1
- package/dist/client/drawio-editor.html +3 -3
- package/dist/client/excalidraw-editor.html +3 -3
- package/dist/client/export-document.html +4 -4
- package/dist/client/index.html +5 -5
- package/package.json +17 -17
- package/src/client/application/app-shell/comments-feature.js +108 -0
- package/src/client/application/app-shell/git-feature.js +6 -1
- package/src/client/application/app-shell/ui-feature-shell.js +7 -4
- package/src/client/application/app-shell/ui-feature-sidebar.js +11 -2
- package/src/client/application/app-shell-elements.js +2 -0
- package/src/client/application/diagram-chrome.js +708 -0
- package/src/client/application/mermaid-preview-hydrator.js +18 -516
- package/src/client/application/plantuml-preview-hydrator.js +22 -518
- package/src/client/application/preview-renderer.js +15 -4
- package/src/client/application/workspace-route-controller.js +11 -1
- package/src/client/bootstrap/app-shell-feature-surface.js +67 -0
- package/src/client/bootstrap/collabmd-app-shell.js +111 -356
- package/src/client/bootstrap/lazy-controller-feature.js +434 -0
- package/src/client/infrastructure/vault-api-client.js +5 -0
- package/src/client/presentation/app-shell-template.js +25 -12
- package/src/client/presentation/bases-preview-controller.js +33 -16
- package/src/client/presentation/comment-overview-controller.js +238 -0
- package/src/client/presentation/comment-ui/comment-ui-state.js +23 -0
- package/src/client/presentation/file-explorer-controller.js +9 -0
- package/src/client/presentation/file-explorer-view.js +11 -1
- package/src/client/styles/components/navigation.css +43 -8
- package/src/client/styles/components/scrollbars.css +5 -0
- package/src/client/styles/features/comment-overview.css +196 -0
- package/src/client/styles/features/comments.css +1 -0
- package/src/client/styles/layout/responsive.css +3 -2
- package/src/server/application/workspace-reconciliation.js +446 -0
- package/src/server/config/env.js +73 -0
- package/src/server/create-app-server.js +39 -32
- package/src/server/domain/bases/base-expression-runtime.js +183 -147
- package/src/server/domain/bases/base-index-snapshot-store.js +53 -2
- package/src/server/domain/bases/base-query-service.js +55 -38
- package/src/server/domain/collaboration/collaboration-document-store.js +6 -2
- package/src/server/domain/collaboration/collaboration-room.js +66 -2
- package/src/server/domain/comment-overview.js +108 -0
- package/src/server/domain/hosted-workspace-contract.js +18 -0
- package/src/server/domain/hosted-workspace.js +744 -0
- package/src/server/domain/workspace-state.js +848 -2
- package/src/server/infrastructure/github/github-app-client.js +205 -0
- package/src/server/infrastructure/github/github-setup-flow.js +86 -0
- package/src/server/infrastructure/http/create-git-api-command-handler.js +1 -1
- package/src/server/infrastructure/http/create-hosted-api-handler.js +200 -0
- package/src/server/infrastructure/http/create-request-handler.js +20 -0
- package/src/server/infrastructure/http/create-static-handler.js +4 -0
- package/src/server/infrastructure/http/create-vault-api-command-handler.js +44 -119
- package/src/server/infrastructure/http/create-vault-api-query-handler.js +18 -33
- package/src/server/infrastructure/http/request-body.js +12 -2
- package/src/server/infrastructure/persistence/hosted-metadata-store.js +500 -0
- package/src/server/infrastructure/persistence/sidecar-store.js +53 -2
- package/src/server/infrastructure/persistence/vault-content-adapter.js +8 -8
- package/src/server/infrastructure/persistence/vault-file-store.js +64 -135
- package/src/server/infrastructure/websocket/attach-collaboration-gateway.js +49 -5
- package/src/server/infrastructure/workspace/file-system-sync-service.js +24 -411
- package/src/server/infrastructure/workspace/workspace-mutation-coordinator.js +13 -621
- package/src/server/infrastructure/workspace/workspace-state-file-system-adapter.js +37 -0
- package/dist/client/assets/architecture-7EHR7CIX-M1SFnuBJ.js +0 -1
- package/dist/client/assets/channel-E9SBQ9z6.js +0 -1
- package/dist/client/assets/chunk-QZHKN3VN-9NMPSwDX.js +0 -1
- package/dist/client/assets/chunk-WMDFGAFD-EzVSth95.js +0 -35
- package/dist/client/assets/chunk-WU5MYG2G-Bl8VQmZH.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-D7YhYDLZ.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-COI4atGv.js +0 -1
- package/dist/client/assets/dist-B0U2pnHE.js +0 -1
- package/dist/client/assets/dist-B1BRR2vO.js +0 -1
- package/dist/client/assets/dist-B48_21rM.js +0 -1
- package/dist/client/assets/dist-BNDWUlMx.js +0 -9
- package/dist/client/assets/dist-BoCYrsTA.js +0 -1
- package/dist/client/assets/dist-C-W89K9S.js +0 -1
- package/dist/client/assets/dist-CBTadfRi2.js +0 -1
- package/dist/client/assets/dist-D4DGyOvV.js +0 -1
- package/dist/client/assets/dist-ihRjPW1T.js +0 -2
- package/dist/client/assets/drawio-editor-BHYoSlR7.js +0 -9
- package/dist/client/assets/drawioEditor-B-Ssnq_p.js +0 -2
- package/dist/client/assets/eventmodeling-FCH6USID-DKkN-EFL.js +0 -1
- package/dist/client/assets/excalidraw-editor-mKBCIvNR.css +0 -1
- package/dist/client/assets/excalidraw-scene-i7oBzgH8.js +0 -176
- package/dist/client/assets/excalidrawEditor-DRxzpbJ-.js +0 -2
- package/dist/client/assets/exportDocument-Dj7w1hDJ.js +0 -2
- package/dist/client/assets/gitGraph-WXDBUCRP-BIQYiPEj.js +0 -1
- package/dist/client/assets/image-KGGK4BDN-BtStV6c9.js +0 -1
- package/dist/client/assets/index-Cnyy977t.css +0 -1
- package/dist/client/assets/index-DxQmPZ_f.js +0 -2
- package/dist/client/assets/info-J43DQDTF-CO2Z2J7J.js +0 -1
- package/dist/client/assets/javascript-qUBHINSy.js +0 -1
- package/dist/client/assets/main-iuYcGt-A.js +0 -1414
- package/dist/client/assets/navigation-Du6CLhvs.css +0 -1
- package/dist/client/assets/packet-YPE3B663-VxGcYggl.js +0 -1
- package/dist/client/assets/percentages-5DKR754L-Ug3UfchV.js +0 -1
- package/dist/client/assets/pie-LRSECV5Y-7RrvmmEk.js +0 -1
- package/dist/client/assets/preview-diagram-utils-D94KrSQH.js +0 -1
- package/dist/client/assets/preview-render-compiler-CSggyCbw.js +0 -35
- package/dist/client/assets/preview-render-compiler-TPMesM_L.js +0 -1
- package/dist/client/assets/preview-render-profile-CQR0o67h.js +0 -23
- package/dist/client/assets/preview-render-worker-CifbXdlx.js +0 -59
- package/dist/client/assets/radar-GUYGQ44K-2SBnfFng.js +0 -1
- package/dist/client/assets/runtime-config-CM_2pVYD.js +0 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-DXm0ynOB.js +0 -1
- package/dist/client/assets/subset-shared.chunk-C9mEHUfV.js +0 -1
- package/dist/client/assets/treeView-BLDUP644-DItqHrxu.js +0 -1
- package/dist/client/assets/treemap-LRROVOQU-DD1ESKp7.js +0 -1
- package/dist/client/assets/turtle-BkP3ExOG.js +0 -1
- package/dist/client/assets/vault-api-client-Fa51l2lE.js +0 -1
- package/dist/client/assets/wardley-L42UT6IY-BoSI-SvR.js +0 -1
- /package/dist/client/assets/{apl-C1JYSI8J.js → apl-CnwPGSsG.js} +0 -0
- /package/dist/client/assets/{array-7rJMcyYQ.js → array-BifhSqXX.js} +0 -0
- /package/dist/client/assets/{asciiarmor-DHW75j1s.js → asciiarmor-qTkVPQu6.js} +0 -0
- /package/dist/client/assets/{asn1-CQiG40kG.js → asn1-Dr8qZg38.js} +0 -0
- /package/dist/client/assets/{asterisk-BWExh0n4.js → asterisk-Bja0s6e1.js} +0 -0
- /package/dist/client/assets/{base-h1uscjTi.js → base-CxPEiHuy.js} +0 -0
- /package/dist/client/assets/{brainfuck-CTNFyOLg.js → brainfuck-D5EjA2JK.js} +0 -0
- /package/dist/client/assets/{chunk-3PELD44J-DymL2rGq.js → chunk-3PELD44J-C625MXe_.js} +0 -0
- /package/dist/client/assets/{chunk-A66AFZZU-BFHL744F.js → chunk-A66AFZZU-BbU3ThId.js} +0 -0
- /package/dist/client/assets/{chunk-LOOWOR4L-C5BUwXgZ.js → chunk-LOOWOR4L-CGCAV5nC.js} +0 -0
- /package/dist/client/assets/{chunk-tBc3Ke6Z.js → chunk-aKtaBQYM.js} +0 -0
- /package/dist/client/assets/{clike-BFTLRaGS.js → clike-DHH8Ad3s.js} +0 -0
- /package/dist/client/assets/{clojure-D-DYVqu7.js → clojure-BflJGmDX.js} +0 -0
- /package/dist/client/assets/{cmake-DtGL-Unu.js → cmake-CyVbuzPu.js} +0 -0
- /package/dist/client/assets/{cobol-DP4QggbL.js → cobol-B_OZ4V-R.js} +0 -0
- /package/dist/client/assets/{coffeescript-B7GZajzV.js → coffeescript-B2pKbFk8.js} +0 -0
- /package/dist/client/assets/{commonlisp-COlJYiQT.js → commonlisp-CcllspGY.js} +0 -0
- /package/dist/client/assets/{crystal-I_dE9xG-.js → crystal-M5-qzICs.js} +0 -0
- /package/dist/client/assets/{css-CmhPNxBE.js → css-CYpP4FRV.js} +0 -0
- /package/dist/client/assets/{cypher-DEGl2llJ.js → cypher-p9eYesGn.js} +0 -0
- /package/dist/client/assets/{d-BspB0dox.js → d-BhMjBjQP.js} +0 -0
- /package/dist/client/assets/{defaultLocale-DKHHE2Ij.js → defaultLocale-C8Fc0cco.js} +0 -0
- /package/dist/client/assets/{diff-BWuPUsEo.js → diff-ChtP43wD.js} +0 -0
- /package/dist/client/assets/{drawio-room-DrZ-gy4N.js → drawio-room-B3OZRHTH.js} +0 -0
- /package/dist/client/assets/{dtd-C6brJFPg.js → dtd-DTF72YNO.js} +0 -0
- /package/dist/client/assets/{dylan-Bft86ZSB.js → dylan-C6jEEEk-.js} +0 -0
- /package/dist/client/assets/{ebnf-D6ifG44A.js → ebnf-D4c0_ac3.js} +0 -0
- /package/dist/client/assets/{ecl-D9rhJ9-u.js → ecl-BSZaIHnp.js} +0 -0
- /package/dist/client/assets/{eiffel-DwxtewZF.js → eiffel-BEjRio4Q.js} +0 -0
- /package/dist/client/assets/{elm-B1TncobV.js → elm-Cshzl8qu.js} +0 -0
- /package/dist/client/assets/{erlang-BDJZNtt8.js → erlang-DaB2Rkuy.js} +0 -0
- /package/dist/client/assets/{excalidraw-mermaid-stub-Co4Okjfg.js → excalidraw-mermaid-stub-BNckbX2n.js} +0 -0
- /package/dist/client/assets/{fcl-CUXJFJn1.js → fcl-ClOhbFR7.js} +0 -0
- /package/dist/client/assets/{file-kind-DLz-bCzA.js → file-kind-BKPOIRPE.js} +0 -0
- /package/dist/client/assets/{forth-nvhcMz63.js → forth-Cezjo90N.js} +0 -0
- /package/dist/client/assets/{fortran-BZID-z10.js → fortran-Bt6PBEDR.js} +0 -0
- /package/dist/client/assets/{gas-DjQsZDGE.js → gas-BHEdbvp9.js} +0 -0
- /package/dist/client/assets/{gherkin-S0kHlzux.js → gherkin-oBAE_ms0.js} +0 -0
- /package/dist/client/assets/{graphlib-Dduz6oB8.js → graphlib-B8gBHxth.js} +0 -0
- /package/dist/client/assets/{groovy-Di--Vb9Z.js → groovy-BC3IOsC8.js} +0 -0
- /package/dist/client/assets/{haskell-C6qH3-aI.js → haskell-BRsoo5mP.js} +0 -0
- /package/dist/client/assets/{http-DG1Y9fpK.js → http-CLVgA2GD.js} +0 -0
- /package/dist/client/assets/{idl-B64p3NTJ.js → idl-BUZw3wgd.js} +0 -0
- /package/dist/client/assets/{image-blob-reduce.esm-CRyv8pnU.js → image-blob-reduce.esm-NzmDxm1v.js} +0 -0
- /package/dist/client/assets/{init-EmgYNkpL.js → init-D6jRqBbL.js} +0 -0
- /package/dist/client/assets/{julia-B22G9Bym.js → julia-CQfgDRfP.js} +0 -0
- /package/dist/client/assets/{katex-Beiidjxi.js → katex-C7GtLiLd.js} +0 -0
- /package/dist/client/assets/{vault-api-client-D7Ck0CvR.css → keyboard-shortcuts-D7Ck0CvR.css} +0 -0
- /package/dist/client/assets/{livescript-CkcuHqeS.js → livescript-BXxG0Yva.js} +0 -0
- /package/dist/client/assets/{lua-Cg0FqIlO.js → lua-CL1SqxuB.js} +0 -0
- /package/dist/client/assets/{mathematica-CKVhKnoY.js → mathematica-u8YMmbU0.js} +0 -0
- /package/dist/client/assets/{mbox-DANyzFJ2.js → mbox-BEMVcqjs.js} +0 -0
- /package/dist/client/assets/{mirc-BVG2S5rO.js → mirc-C9zpzAZU.js} +0 -0
- /package/dist/client/assets/{mllike-C0p7lv48.js → mllike-B45xgp2S.js} +0 -0
- /package/dist/client/assets/{modelica-vJ-Qa9jV.js → modelica-CqHI_q-D.js} +0 -0
- /package/dist/client/assets/{mscgen-vUD-SWGJ.js → mscgen-qgSLujhx.js} +0 -0
- /package/dist/client/assets/{mumps-D0KfUTSd.js → mumps-CW_TBmxz.js} +0 -0
- /package/dist/client/assets/{nginx-DkVceJrH.js → nginx-BMaDbqW3.js} +0 -0
- /package/dist/client/assets/{ntriples-BBuCIfS0.js → ntriples-d28e9m0E.js} +0 -0
- /package/dist/client/assets/{octave-BTv2CqSQ.js → octave-D2Q8cUp1.js} +0 -0
- /package/dist/client/assets/{oz-D8SjVDNU.js → oz-BwTct_5T.js} +0 -0
- /package/dist/client/assets/{pascal-T-tfhVyx.js → pascal-Dp_KdFgX.js} +0 -0
- /package/dist/client/assets/{path-vqW-z8T-.js → path-BWPyau1x.js} +0 -0
- /package/dist/client/assets/{perl-BDrCkHRd.js → perl-CdEHsPfU.js} +0 -0
- /package/dist/client/assets/{pig-BEyI4fPq.js → pig-AF4Hwhju.js} +0 -0
- /package/dist/client/assets/{powershell-DtnFc6GG.js → powershell-CzG71I4L.js} +0 -0
- /package/dist/client/assets/{preload-helper-Bo9GmnuQ.js → preload-helper-kNaey6uv.js} +0 -0
- /package/dist/client/assets/{properties-DWUvbxV9.js → properties-C357ku5U.js} +0 -0
- /package/dist/client/assets/{protobuf-CQGoYyfE.js → protobuf-D1ij_kNL.js} +0 -0
- /package/dist/client/assets/{puppet-Dd-qWO3p.js → puppet-B4hC2X4m.js} +0 -0
- /package/dist/client/assets/{python-BUyhM0Ew.js → python-BqYw9LYJ.js} +0 -0
- /package/dist/client/assets/{q-Dls1OX0D.js → q-B9NhS7L_.js} +0 -0
- /package/dist/client/assets/{r-DeZ8Mdev.js → r-DADKenSm.js} +0 -0
- /package/dist/client/assets/{rough.esm-DE_lJ5Ge.js → rough.esm-CSKSodPl.js} +0 -0
- /package/dist/client/assets/{roundRect-BMsJLtvm.js → roundRect-D01gJrlt.js} +0 -0
- /package/dist/client/assets/{rpm-CjWxLM68.js → rpm-gpDK5sbt.js} +0 -0
- /package/dist/client/assets/{ruby-CB34f2Gf.js → ruby-DsYpTuWg.js} +0 -0
- /package/dist/client/assets/{runtime-config-loader-_D2KZKn-.js → runtime-config-loader-BUK56BZz.js} +0 -0
- /package/dist/client/assets/{sas-Bji4HDQq.js → sas-C2OyD2Y6.js} +0 -0
- /package/dist/client/assets/{scheme-C3elI80V.js → scheme-CyDdOh7e.js} +0 -0
- /package/dist/client/assets/{shell-DUveK2Hb.js → shell-Du5Qg9im.js} +0 -0
- /package/dist/client/assets/{sieve-2ogwMVx4.js → sieve-BAxa3IjF.js} +0 -0
- /package/dist/client/assets/{simple-mode-pOKc0mfx.js → simple-mode-DRpGK0lJ.js} +0 -0
- /package/dist/client/assets/{smalltalk-BuGhc6lW.js → smalltalk-BLp5-jwC.js} +0 -0
- /package/dist/client/assets/{solr-DTxshpm8.js → solr-BBopId9w.js} +0 -0
- /package/dist/client/assets/{sparql-vm8qNO8J.js → sparql-Dz-mlCAC.js} +0 -0
- /package/dist/client/assets/{spreadsheet-C6Vbtl9-.js → spreadsheet-CTIncYxj.js} +0 -0
- /package/dist/client/assets/{sql-GL7dVWcd.js → sql-DcCJ9jop.js} +0 -0
- /package/dist/client/assets/{stex-CEwW0Q_0.js → stex-sDrdk2BW.js} +0 -0
- /package/dist/client/assets/{stylus-D1SZIMDs.js → stylus-DLLZ8dgm.js} +0 -0
- /package/dist/client/assets/{swift-CKcKnWv9.js → swift-DKB6_1j6.js} +0 -0
- /package/dist/client/assets/{tcl-SPk7uiDB.js → tcl-BGfruO1u.js} +0 -0
- /package/dist/client/assets/{textile-C48beRus.js → textile-DWBqthVk.js} +0 -0
- /package/dist/client/assets/{tiddlywiki-CiImjFLN.js → tiddlywiki-VlUiK86J.js} +0 -0
- /package/dist/client/assets/{tiki-HkXZ4BIW.js → tiki-CxVlf5KZ.js} +0 -0
- /package/dist/client/assets/{toml-BmfpMy1_.js → toml-LvoKBwCs.js} +0 -0
- /package/dist/client/assets/{troff-BjbEOT5E.js → troff-C2dAgh7P.js} +0 -0
- /package/dist/client/assets/{ttcn-NA-V4KnY.js → ttcn-BePYh-hG.js} +0 -0
- /package/dist/client/assets/{ttcn-cfg-TPHncdGN.js → ttcn-cfg-CY0aot7Q.js} +0 -0
- /package/dist/client/assets/{vb-C19AQWqO.js → vb-BthdM_4N.js} +0 -0
- /package/dist/client/assets/{vbscript-CHJk3s95.js → vbscript-D9f6rSsU.js} +0 -0
- /package/dist/client/assets/{velocity-Ya0P4sQU.js → velocity-CqftRsjg.js} +0 -0
- /package/dist/client/assets/{verilog-DSARZZPc.js → verilog-D-x6ne0Z.js} +0 -0
- /package/dist/client/assets/{vhdl-CnYyYTpa.js → vhdl-CMrOq2q1.js} +0 -0
- /package/dist/client/assets/{webidl-DttrYZRT.js → webidl-D5jiJvOU.js} +0 -0
- /package/dist/client/assets/{xquery-CEDTd8qs.js → xquery-fj_R-kMw.js} +0 -0
- /package/dist/client/assets/{yacas-C7dxlPB0.js → yacas-CXXgtw0p.js} +0 -0
- /package/dist/client/assets/{z80-BqEfFSnA.js → z80-CL1naaMV.js} +0 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import{n as e}from"./vault-utils-kIbqyWPm.js";import{t}from"./button-2ZnWQkWV.js";function n(e){return String(e??``).split(`/`).pop()||``}function r(e){let t=String(e??``).split(`/`);return t.pop(),t.join(`/`)}function i(e){return`diff-section-${encodeURIComponent(String(e??``)).replace(/%/g,`_`)}`}function a(e){switch(e){case`added`:case`untracked`:return`ui-status-badge--success`;case`deleted`:return`ui-status-badge--danger`;case`renamed`:return`ui-status-badge--accent`;default:return`ui-status-badge--warning`}}function o(e=!1){return`<svg class="diff-section-chevron${e?` collapsed`:``}" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>`}function s(e,t){let n=0;for(;n<e.length&&n<t.length&&e[n]===t[n];)n+=1;return n}function c(e,t,n){let r=0,i=Math.min(e.length,t.length)-n;for(;r<i;){let n=e.length-1-r,i=t.length-1-r;if(e[n]!==t[i])break;r+=1}return r}function l(t,n){let r=s(t,n),i=c(t,n,r),a=Math.max(r,t.length-i),o=Math.max(r,n.length-i);return{leftHtml:`${e(t.slice(0,r))}${a>r?`<span class="diff-highlight-del">${e(t.slice(r,a))}</span>`:``}${e(t.slice(a))}`,rightHtml:`${e(n.slice(0,r))}${o>r?`<span class="diff-highlight-add">${e(n.slice(r,o))}</span>`:``}${e(n.slice(o))}`}}function u(e=[]){let t=[];for(let n=0;n<e.length;n+=1){let r=e[n];if(r.type===`context`||r.type===`note`){t.push({additions:[],context:[r],deletions:[]});continue}if(r.type!==`deletion`&&r.type!==`addition`)continue;let i=[],a=[];for(;n<e.length&&e[n].type===`deletion`;)i.push(e[n]),n+=1;for(;n<e.length&&e[n].type===`addition`;)a.push(e[n]),n+=1;--n,t.push({additions:a,context:[],deletions:i})}return t}function d(t,n,r){let i=Number.isInteger(t.oldLine)?t.oldLine:``,a=Number.isInteger(t.newLine)?t.newLine:``;return`
|
|
2
|
+
<div class="diff-line ${t.type===`note`?`note`:t.type}">
|
|
3
|
+
<div class="diff-line-numbers">
|
|
4
|
+
<span class="diff-line-num">${i}</span>
|
|
5
|
+
<span class="diff-line-num">${a}</span>
|
|
6
|
+
</div>
|
|
7
|
+
<div class="diff-line-prefix">${e(t.type===`context`||t.type===`note`?` `:n)}</div>
|
|
8
|
+
<div class="diff-line-content">${r}</div>
|
|
9
|
+
</div>
|
|
10
|
+
`}function f(t,n){let r=t?e(t.content):``,i=n?e(n.content):``;if(t&&n&&t.type===`deletion`&&n.type===`addition`){let e=l(t.content,n.content);r=e.leftHtml,i=e.rightHtml}return`
|
|
11
|
+
<div class="diff-split-row">
|
|
12
|
+
<div class="diff-split-line ${t?.type||`empty`}">
|
|
13
|
+
<span class="diff-split-num">${Number.isInteger(t?.oldLine)?t.oldLine:``}</span>
|
|
14
|
+
<span class="diff-split-content">${r}</span>
|
|
15
|
+
</div>
|
|
16
|
+
<div class="diff-split-line ${n?.type||`empty`}">
|
|
17
|
+
<span class="diff-split-num">${Number.isInteger(n?.newLine)?n.newLine:``}</span>
|
|
18
|
+
<span class="diff-split-content">${i}</span>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
`}var p=class{constructor({gitApiClient:e=null,onBackToHistory:t=null,onCommitStaged:n=null,onOpenFile:r=null,onStageFile:i=null,onUnstageFile:a=null,toastController:o=null}={}){this.gitApiClient=e,this.onBackToHistory=t,this.onCommitStaged=n,this.onOpenFile=r,this.onStageFile=i,this.onUnstageFile=a,this.toastController=o,this.page=document.getElementById(`diff-page`),this.content=document.getElementById(`diffContent`),this.scrollContainer=document.getElementById(`diffScroll`),this.fileIndicator=document.getElementById(`diffFileIndicator`),this.openEditorButton=document.getElementById(`diffOpenEditorBtn`),this.primaryActionButton=document.getElementById(`diffPrimaryActionBtn`),this.commitButton=document.getElementById(`diffCommitBtn`),this.backToHistoryButton=document.getElementById(`diffBackToHistoryBtn`),this.gitActionsGroup=document.getElementById(`diffGitActionsGroup`),this.editorActionsGroup=document.getElementById(`diffEditorActionsGroup`),this.actionsDivider=document.getElementById(`diffToolbarDivider`),this.stats=document.getElementById(`diffStats`),this.prevButton=document.getElementById(`diffPrevBtn`),this.nextButton=document.getElementById(`diffNextBtn`),this.layoutToggle=document.getElementById(`diffLayoutToggle`),this.modeButtons=Array.from(document.querySelectorAll(`[data-diff-mode]`)),this.layoutButtons=Array.from(document.querySelectorAll(`[data-diff-layout]`)),this.isActive=!1,this.mode=`unified`,this.layoutMode=`focused`,this.source=`workspace`,this.data=null,this.currentIndex=0,this.activeFilePath=null,this.fileCache=new Map,this.fileErrors=new Map,this.loadingFiles=new Set,this.collapsedFiles=new Set,this.fileLoadPromises=new Map,this.requestScope=`all`,this.commitHash=null,this.commitMeta=null,this.historyFilePath=null,this.pendingAction=null,this.repoStatus=null}initialize(){this.prevButton?.addEventListener(`click`,()=>{this.isActive&&this.navigateFile(-1)}),this.nextButton?.addEventListener(`click`,()=>{this.isActive&&this.navigateFile(1)}),this.backToHistoryButton?.addEventListener(`click`,()=>{this.isActive&&this.commitMeta?.hash&&this.onBackToHistory?.({hash:this.commitMeta.hash,historyFilePath:this.historyFilePath})}),this.openEditorButton?.addEventListener(`click`,()=>{if(!this.isActive||this.source!==`workspace`)return;let e=this.getCurrentFile();e?.path&&this.onOpenFile?.(e.path)}),this.primaryActionButton?.addEventListener(`click`,()=>{if(!this.isActive)return;let e=this.getPrimaryAction();e&&this.handleFileAction(e)}),this.commitButton?.addEventListener(`click`,()=>{this.isActive&&this.handleFileAction(`commit`)}),this.content?.addEventListener(`click`,e=>{if(!this.isActive)return;let t=e.target instanceof Element?e.target.closest(`[data-load-full-diff]`):null;if(t){let e=t.getAttribute(`data-diff-file-path`)||this.activeFilePath;e&&this.loadFileForPath(e,{forceFullPatch:!0});return}let n=e.target instanceof Element?e.target.closest(`[data-diff-section-toggle]`):null;if(n){let e=n.getAttribute(`data-diff-section-toggle`);e&&this.toggleFileSection(e);return}let r=e.target instanceof Element?e.target.closest(`[data-diff-index-path]`):null;if(r){let e=r.getAttribute(`data-diff-index-path`);e&&this.handleIndexSelection(e)}}),this.modeButtons.forEach(e=>{e.addEventListener(`click`,()=>{if(!this.isActive)return;let t=e.getAttribute(`data-diff-mode`);!t||t===this.mode||(this.mode=t,this.render())})}),this.layoutButtons.forEach(e=>{e.addEventListener(`click`,()=>{if(!this.isActive)return;let t=e.getAttribute(`data-diff-layout`);!t||t===this.layoutMode||this.setLayoutMode(t)})}),this.scrollContainer?.addEventListener(`scroll`,()=>{this.isActive&&this.handleScrollSelection()})}hide(){this.isActive=!1,this.page?.classList.add(`hidden`),this.content&&(this.content.innerHTML=``),this.data=null,this.source=`workspace`,this.layoutMode=`focused`,this.currentIndex=0,this.activeFilePath=null,this.fileCache.clear(),this.fileErrors.clear(),this.loadingFiles.clear(),this.collapsedFiles.clear(),this.fileLoadPromises.clear(),this.requestScope=`all`,this.commitHash=null,this.commitMeta=null,this.historyFilePath=null,this.pendingAction=null,this.repoStatus=null}async openWorkspaceDiff({filePath:e=null,scope:t=`all`}={}){this.isActive=!0,this.source=`workspace`,this.layoutMode=`focused`,this.commitHash=null,this.commitMeta=null,this.historyFilePath=null,this.activeFilePath=e,this.fileCache.clear(),this.fileErrors.clear(),this.loadingFiles.clear(),this.collapsedFiles.clear(),this.fileLoadPromises.clear(),this.requestScope=t,this.renderLoading(`Loading diff summary...`);try{let n=await this.gitApiClient.readDiff({metaOnly:!0,path:e,scope:t});this.data=n;let r=e?Math.max(0,n.files.findIndex(t=>t.path===e)):0;return this.currentIndex=r,this.activeFilePath=n.files?.[r]?.path??null,(n.files?.length??0)===0?(this.render(),n):(await this.loadCurrentFile(),n)}catch(e){return console.error(`[git-diff] Failed to load diff:`,e),this.toastController?.show(`Failed to load git diff`),this.data={files:[],metaOnly:!1,source:`workspace`,summary:{additions:0,deletions:0,filesChanged:0}},this.renderEmpty(`Failed to load git diff`),this.data}}async openCommitDiff({hash:e,path:t=null,historyFilePath:n=null}={}){this.isActive=!0,this.source=`commit`,this.layoutMode=`stacked`,this.commitHash=String(e??``).trim()||null,this.commitMeta=null,this.historyFilePath=String(n??``).trim()||null,this.activeFilePath=t||null,this.fileCache.clear(),this.fileErrors.clear(),this.loadingFiles.clear(),this.collapsedFiles.clear(),this.fileLoadPromises.clear(),this.requestScope=`all`,this.renderLoading(`Loading commit summary...`);try{let e=await this.gitApiClient.readCommit({hash:this.commitHash||``,metaOnly:!0});this.data=e,this.commitMeta=e.commit??null;let n=t?Math.max(0,e.files.findIndex(e=>e.path===t)):0;return this.currentIndex=n,this.activeFilePath=e.files?.[n]?.path??null,this.collapsedFiles=new Set((e.files??[]).map(e=>e.path).filter(e=>e&&e!==this.activeFilePath)),(e.files?.length??0)===0?(this.render(),e):(this.activeFilePath&&await this.loadFileForPath(this.activeFilePath,{render:!1}),this.render(),e)}catch(e){return console.error(`[git-diff] Failed to load commit:`,e),this.toastController?.show(`Failed to load git commit`),this.data={commit:null,files:[],metaOnly:!1,source:`commit`,summary:{additions:0,deletions:0,filesChanged:0}},this.commitMeta=null,this.renderEmpty(`Failed to load git commit`),this.data}}async open(e={}){return this.openWorkspaceDiff(e)}async setLayoutMode(e){let t=e===`stacked`?`stacked`:`focused`;if(this.source!==`commit`){this.layoutMode=`focused`,this.render();return}if(this.layoutMode=t,this.activeFilePath&&this.setActiveFilePath(this.activeFilePath),this.layoutMode===`focused`){await this.loadCurrentFile();return}this.activeFilePath&&(this.collapsedFiles.delete(this.activeFilePath),await this.loadFileForPath(this.activeFilePath,{render:!1})),this.render()}navigateFile(e){if(!this.data?.files?.length||this.source===`commit`&&this.layoutMode===`stacked`)return;let t=Math.max(0,Math.min(this.currentIndex+e,this.data.files.length-1));t!==this.currentIndex&&(this.currentIndex=t,this.activeFilePath=this.data.files[t]?.path??null,this.scrollContainer?.scrollTo({top:0,behavior:`auto`}),this.loadCurrentFile())}renderLoading(t=`Loading git diff...`){this.isActive&&(this.page?.classList.remove(`hidden`),this.content&&(this.content.innerHTML=`<div class="diff-empty-state">${e(t)}</div>`),this.data=null,this.syncToolbar())}renderEmpty(t){this.isActive&&(this.page?.classList.remove(`hidden`),this.content&&(this.content.innerHTML=`<div class="diff-empty-state">${e(t)}</div>`),this.syncToolbar())}renderUnifiedHunk(t){let n=[];for(let r of u(t.lines)){if(r.context.length>0){for(let t of r.context)n.push(d(t,` `,e(t.content)));continue}let t=Math.max(r.deletions.length,r.additions.length);for(let i=0;i<t;i+=1){let t=r.deletions[i]??null,a=r.additions[i]??null,o=t&&a?l(t.content,a.content):null;t&&n.push(d(t,`-`,o?.leftHtml??e(t.content))),a&&n.push(d(a,`+`,o?.rightHtml??e(a.content)))}}return`
|
|
22
|
+
<div class="diff-hunk-header">${e(t.header)}</div>
|
|
23
|
+
${n.join(``)}
|
|
24
|
+
`}renderFileHeader(t){return`
|
|
25
|
+
<div class="diff-file-header">
|
|
26
|
+
<span class="diff-file-path">${e(t.path)}</span>
|
|
27
|
+
<span class="ui-status-badge ${a(t.status)}">${e(t.status)}</span>
|
|
28
|
+
<span class="diff-file-header-stats"><span class="ui-stat-token ui-stat-token--add diff-stats-add">+${t.stats?.additions??0}</span><span class="ui-stat-token ui-stat-token--del diff-stats-del">-${t.stats?.deletions??0}</span></span>
|
|
29
|
+
</div>
|
|
30
|
+
`}renderUnifiedFileBody(t){return`
|
|
31
|
+
${t.isBinary?`<div class="diff-binary-message">${e(t.binaryMessage||`Binary file changed`)}</div>`:``}
|
|
32
|
+
${t.hunks.map(e=>this.renderUnifiedHunk(e)).join(``)}
|
|
33
|
+
`}renderSplitFileBody(t){return`
|
|
34
|
+
<div class="diff-split">
|
|
35
|
+
<div class="diff-split-pane">
|
|
36
|
+
<div class="diff-split-pane-header">Before</div>
|
|
37
|
+
${t.hunks.map(t=>{let n=[];for(let e of u(t.lines)){if(e.context.length>0){for(let t of e.context)n.push(f(t,t));continue}let t=Math.max(e.deletions.length,e.additions.length);for(let r=0;r<t;r+=1)n.push(f(e.deletions[r]??null,e.additions[r]??null))}return`
|
|
38
|
+
<div class="diff-split-hunk">${e(t.header)}</div>
|
|
39
|
+
${n.join(``)}
|
|
40
|
+
`}).join(``)}
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
`}renderDiffDetail(n,r,{includeHeader:i=!0}={}){if(!n)return`<div class="diff-empty-state">Select a file to load its diff.</div>`;if(n.tooLarge)return`
|
|
44
|
+
${i?this.renderFileHeader(n):``}
|
|
45
|
+
<div class="diff-limit-card">
|
|
46
|
+
<strong>Large diff withheld</strong>
|
|
47
|
+
<span>This file diff is large enough to impact rendering performance.</span>
|
|
48
|
+
<button class="${t({variant:`secondary`,extra:`diff-load-full-btn`})}" type="button" data-load-full-diff data-diff-file-path="${e(n.path)}">Load full diff</button>
|
|
49
|
+
</div>
|
|
50
|
+
`;let a=this.mode===`split`?this.renderSplitFileBody(n,r):this.renderUnifiedFileBody(n,r);return`${i?this.renderFileHeader(n):``}${a}`}renderFocusedFileBody(){let t=this.getCurrentFile();if(!t)return`<div class="diff-empty-state">No changes to display.</div>`;if(this.isFileLoading(t.path))return`
|
|
51
|
+
<section class="diff-file-block">
|
|
52
|
+
${this.renderFileHeader(t)}
|
|
53
|
+
<div class="diff-empty-state">Loading file diff...</div>
|
|
54
|
+
</section>
|
|
55
|
+
`;let n=this.fileErrors.get(t.path);return n?`
|
|
56
|
+
<section class="diff-file-block">
|
|
57
|
+
${this.renderFileHeader(t)}
|
|
58
|
+
<div class="diff-empty-state">${e(n)}</div>
|
|
59
|
+
</section>
|
|
60
|
+
`:`
|
|
61
|
+
<section class="diff-file-block" data-diff-file-index="${this.currentIndex}">
|
|
62
|
+
${this.renderDiffDetail(this.getFileDetail(t.path)??t,this.currentIndex)}
|
|
63
|
+
</section>
|
|
64
|
+
`}renderCommitHeader(){return this.source!==`commit`||!this.commitMeta?``:`
|
|
65
|
+
<section class="diff-commit-header">
|
|
66
|
+
<div class="diff-commit-subject">${e(this.commitMeta.subject||this.commitMeta.shortHash||`Commit`)}</div>
|
|
67
|
+
<div class="diff-commit-meta">
|
|
68
|
+
<span>${e(this.commitMeta.shortHash||``)}</span>
|
|
69
|
+
<span>${e(this.commitMeta.authorName||`Unknown`)}</span>
|
|
70
|
+
<span title="${e(this.commitMeta.authoredAt||``)}">${e(this.commitMeta.relativeDateLabel||``)}</span>
|
|
71
|
+
${this.commitMeta.isMergeCommit?`<span>Merge commit</span>`:``}
|
|
72
|
+
</div>
|
|
73
|
+
<div class="diff-commit-meta diff-commit-meta-secondary">
|
|
74
|
+
<span>${e(this.commitMeta.hash||``)}</span>
|
|
75
|
+
<span>${Number(this.data?.summary?.filesChanged||0)} file${Number(this.data?.summary?.filesChanged||0)===1?``:`s`}</span>
|
|
76
|
+
</div>
|
|
77
|
+
</section>
|
|
78
|
+
`}renderCommitIndex(){return`
|
|
79
|
+
<aside class="diff-commit-index" aria-label="Changed files in commit">
|
|
80
|
+
<div class="diff-commit-index-header">Changed Files</div>
|
|
81
|
+
<div class="diff-commit-index-list">
|
|
82
|
+
${(this.data?.files??[]).map((t,i)=>{let o=this.activeFilePath===t.path,s=r(t.path);return`
|
|
83
|
+
<button
|
|
84
|
+
class="ui-record-surface diff-index-item${o?` active`:``}"
|
|
85
|
+
type="button"
|
|
86
|
+
data-diff-index-path="${e(t.path)}"
|
|
87
|
+
aria-current="${o?`true`:`false`}"
|
|
88
|
+
>
|
|
89
|
+
<span class="ui-record-header diff-index-item-top">
|
|
90
|
+
<span class="ui-record-title diff-index-item-name">${e(n(t.path))}</span>
|
|
91
|
+
<span class="ui-status-badge ${a(t.status)}">${e(t.status)}</span>
|
|
92
|
+
</span>
|
|
93
|
+
${s?`<span class="ui-record-subtitle diff-index-item-path">${e(s)}</span>`:``}
|
|
94
|
+
<span class="ui-record-meta diff-index-item-meta">
|
|
95
|
+
<span>${i+1}</span>
|
|
96
|
+
<span class="ui-stat-token ui-stat-token--add diff-stats-add">+${t.stats?.additions??0}</span>
|
|
97
|
+
<span class="ui-stat-token ui-stat-token--del diff-stats-del">-${t.stats?.deletions??0}</span>
|
|
98
|
+
</span>
|
|
99
|
+
</button>
|
|
100
|
+
`}).join(``)}
|
|
101
|
+
</div>
|
|
102
|
+
</aside>
|
|
103
|
+
`}renderStackedSection(t,s){let c=this.isFileCollapsed(t.path),l=this.activeFilePath===t.path,u=this.isFileLoading(t.path),d=this.fileErrors.get(t.path),f=this.getFileDetail(t.path)??t,p=c?``:u?`<div class="diff-empty-state">Loading file diff...</div>`:d?`<div class="diff-empty-state">${e(d)}</div>`:this.renderDiffDetail(f,s,{includeHeader:!1});return`
|
|
104
|
+
<section
|
|
105
|
+
class="diff-commit-section${l?` active`:``}${c?` collapsed`:``}"
|
|
106
|
+
id="${i(t.path)}"
|
|
107
|
+
data-diff-section-path="${e(t.path)}"
|
|
108
|
+
>
|
|
109
|
+
<button
|
|
110
|
+
class="diff-commit-section-header"
|
|
111
|
+
type="button"
|
|
112
|
+
data-diff-section-toggle="${e(t.path)}"
|
|
113
|
+
>
|
|
114
|
+
<span class="diff-commit-section-main">
|
|
115
|
+
${o(c)}
|
|
116
|
+
<span class="diff-commit-section-copy">
|
|
117
|
+
<span class="diff-commit-section-name">${e(n(t.path))}</span>
|
|
118
|
+
${r(t.path)?`<span class="diff-commit-section-path">${e(r(t.path))}</span>`:``}
|
|
119
|
+
</span>
|
|
120
|
+
</span>
|
|
121
|
+
<span class="diff-commit-section-meta">
|
|
122
|
+
<span class="ui-status-badge ${a(t.status)}">${e(t.status)}</span>
|
|
123
|
+
<span class="ui-stat-token ui-stat-token--add diff-stats-add">+${t.stats?.additions??0}</span>
|
|
124
|
+
<span class="ui-stat-token ui-stat-token--del diff-stats-del">-${t.stats?.deletions??0}</span>
|
|
125
|
+
</span>
|
|
126
|
+
</button>
|
|
127
|
+
<div class="diff-commit-section-body${c?` hidden`:``}">
|
|
128
|
+
${p}
|
|
129
|
+
</div>
|
|
130
|
+
</section>
|
|
131
|
+
`}renderCommitBody(){return this.layoutMode===`focused`?`
|
|
132
|
+
<div class="diff-commit-shell diff-commit-shell-focused">
|
|
133
|
+
${this.renderCommitIndex()}
|
|
134
|
+
<div class="diff-commit-main">
|
|
135
|
+
${this.renderFocusedFileBody()}
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
`:`
|
|
139
|
+
<div class="diff-commit-shell diff-commit-shell-stacked">
|
|
140
|
+
${this.renderCommitIndex()}
|
|
141
|
+
<div class="diff-commit-main">
|
|
142
|
+
<div class="diff-commit-sections">
|
|
143
|
+
${(this.data?.files??[]).map((e,t)=>this.renderStackedSection(e,t)).join(``)}
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
`}getCurrentFile(){let e=this.data?.files??[];return e.length===0?null:e[this.currentIndex]??e[0]??null}getFileByPath(e){return(this.data?.files??[]).find(t=>t.path===e)??null}setActiveFilePath(e,{syncIndex:t=!0}={}){if(this.activeFilePath=e,!t)return;let n=Math.max(0,(this.data?.files??[]).findIndex(t=>t.path===e));n>=0&&(this.currentIndex=n)}getCacheKeyForPath(e){return e?this.source===`commit`?`commit:${this.commitHash}:${e}`:`workspace:${this.requestScope}:${e}`:null}getCurrentCacheKey(){return this.getCacheKeyForPath(this.getCurrentFile()?.path??null)}getCurrentFileDetail(){let e=this.getCurrentCacheKey();return e?this.fileCache.get(e):null}getFileDetail(e){let t=this.getCacheKeyForPath(e);return t?this.fileCache.get(t):null}isFileCollapsed(e){return this.collapsedFiles.has(e)}isFileLoading(e){return this.loadingFiles.has(e)}getCurrentActionState(){if(this.source===`commit`)return{canCommit:!1,canStage:!1,canUnstage:!1};let e=this.getCurrentFile(),t=this.getCurrentFileDetail()??e,n=Number(this.repoStatus?.summary?.staged||0);return t?.path?{canCommit:n>0,canStage:!!(t.hasWorkingTreeChanges||t.hasUntrackedChanges),canUnstage:!!t.hasStagedChanges}:{canCommit:n>0,canStage:!1,canUnstage:!1}}getPrimaryAction(){if(this.source===`commit`)return null;let e=this.getCurrentActionState();return e.canStage&&!e.canUnstage?`stage`:e.canUnstage&&!e.canStage||this.requestScope===`staged`&&e.canUnstage?`unstage`:e.canStage?`stage`:e.canUnstage?`unstage`:null}async handleFileAction(e){if(this.source===`commit`)return;let t=this.getCurrentFile();if(!(!t?.path||this.pendingAction)){this.pendingAction=e,this.syncToolbar();try{e===`stage`?await this.onStageFile?.(t.path,{scope:this.requestScope}):e===`unstage`?await this.onUnstageFile?.(t.path,{scope:this.requestScope}):e===`commit`&&await this.onCommitStaged?.()}finally{this.pendingAction=null,this.syncToolbar()}}}setRepoStatus(e){this.repoStatus=e,this.syncToolbar()}async handleIndexSelection(e){if(this.getFileByPath(e)){if(this.setActiveFilePath(e),this.source===`commit`&&this.layoutMode===`stacked`){this.collapsedFiles.delete(e),await this.loadFileForPath(e,{render:!1}),this.render(),this.scrollToFileSection(e);return}await this.loadFileForPath(e)}}async toggleFileSection(e){if(!(this.source!==`commit`||this.layoutMode!==`stacked`)){if(this.setActiveFilePath(e),this.collapsedFiles.has(e)){this.collapsedFiles.delete(e),await this.loadFileForPath(e,{render:!1}),this.render(),this.scrollToFileSection(e);return}this.collapsedFiles.add(e),this.render()}}scrollToFileSection(e){if(!this.content)return;let t=i(e),n=()=>{let e=document.getElementById?.(t)??null;if(e){if(this.scrollContainer?.scrollTo&&this.scrollContainer.getBoundingClientRect&&e.getBoundingClientRect){let t=this.scrollContainer.getBoundingClientRect(),n=e.getBoundingClientRect(),r=Number(this.scrollContainer.scrollTop)||0,i=Math.max(0,r+(n.top-t.top)-8);this.scrollContainer.scrollTo({top:i,behavior:`smooth`});return}e.scrollIntoView?.({behavior:`smooth`,block:`start`})}};if(typeof requestAnimationFrame==`function`){requestAnimationFrame(n);return}setTimeout(n,0)}handleScrollSelection(){if(this.source!==`commit`||this.layoutMode!==`stacked`||!this.scrollContainer||!this.content)return;let e=Array.from(this.content.querySelectorAll?.(`[data-diff-section-path]`)??[]);if(e.length===0)return;let t=this.scrollContainer.getBoundingClientRect?.();if(!t)return;let n=t.top+120,r=null;for(let t of e){let e=t.getBoundingClientRect?.();if(!e)continue;let i=t.getAttribute?.(`data-diff-section-path`);if(i)if(e.top<=n)r=i;else if(r)break;else{r=i;break}}r&&r!==this.activeFilePath&&(this.setActiveFilePath(r),this.render())}async loadCurrentFile({forceFullPatch:e=!1}={}){let t=this.getCurrentFile();return t?.path?this.loadFileForPath(t.path,{forceFullPatch:e}):(this.render(),null)}async loadFileForPath(e,{forceFullPatch:t=!1,render:n=!0}={}){let r=this.getFileByPath(e);if(!r?.path)return n&&this.render(),null;this.setActiveFilePath(e);let i=this.getCacheKeyForPath(e),a=i?this.fileCache.get(i):null;if(a&&(!a.tooLarge||!t))return n&&this.render(),a;let o=`${e}:${t?`full`:`partial`}`;if(this.fileLoadPromises.has(o))return this.fileLoadPromises.get(o);this.loadingFiles.add(e),this.fileErrors.delete(e),n&&this.render();let s=(async()=>{try{let n;if(this.source===`commit`){let i=await this.gitApiClient.readCommit({allowLargePatch:t,hash:this.commitHash||``,path:e});n={...r,...i.files?.[0]??{}}}else{let i=await this.gitApiClient.readDiff({allowLargePatch:t,path:e,scope:this.requestScope});n={...r,...i.files?.[0]??{}}}return i&&this.fileCache.set(i,n),this.fileErrors.delete(e),n}catch(t){console.error(`[git-diff] Failed to load file diff:`,t);let n=this.source===`commit`?`Failed to load commit file diff`:`Failed to load file diff`;return this.fileErrors.set(e,n),this.toastController?.show(n),null}finally{this.loadingFiles.delete(e),this.fileLoadPromises.delete(o),this.render()}})();return this.fileLoadPromises.set(o,s),s}syncToolbar(){let e=this.data?.files?.length??0,t=e===0?0:this.currentIndex+1,n=this.source===`commit`,r=n&&this.layoutMode===`stacked`;if(this.fileIndicator&&(r?this.fileIndicator.textContent=`${e} file${e===1?``:`s`}`:this.fileIndicator.textContent=e>0?`${t} / ${e} files`:`0 / 0 files`),this.stats){let e=this.data?.summary?.additions??0,t=this.data?.summary?.deletions??0;this.stats.innerHTML=`
|
|
148
|
+
<span class="ui-stat-token ui-stat-token--add diff-stats-add">+${e}</span>
|
|
149
|
+
<span class="ui-stat-token ui-stat-token--del diff-stats-del">-${t}</span>
|
|
150
|
+
`}this.modeButtons.forEach(e=>{e.classList.remove(`hidden`),e.classList.toggle(`active`,e.getAttribute(`data-diff-mode`)===this.mode)}),this.layoutButtons.forEach(e=>{e.classList.toggle(`active`,e.getAttribute(`data-diff-layout`)===this.layoutMode)});let i=!!this.getCurrentFile()?.path,a=this.getCurrentActionState(),o=this.getPrimaryAction();this.backToHistoryButton?.classList.toggle(`hidden`,!n),this.gitActionsGroup?.classList.toggle(`hidden`,n),this.editorActionsGroup?.classList.toggle(`hidden`,n),this.actionsDivider?.classList.toggle(`hidden`,n),this.layoutToggle?.classList.toggle(`hidden`,!n),this.stats?.classList.remove(`hidden`),this.openEditorButton&&(this.openEditorButton.textContent=`Open in Editor`),this.openEditorButton?.toggleAttribute(`disabled`,!i||n),this.primaryActionButton&&(this.primaryActionButton.textContent=this.pendingAction===o?`Working...`:o===`unstage`?`Unstage`:`Stage`,this.primaryActionButton.toggleAttribute(`disabled`,n||!i||!o||!!this.pendingAction)),this.commitButton&&(this.commitButton.textContent=this.pendingAction===`commit`?`Working...`:`Commit Staged`),this.commitButton?.toggleAttribute(`disabled`,n||!a.canCommit||!!this.pendingAction),this.prevButton?.classList.remove(`hidden`),this.nextButton?.classList.remove(`hidden`),this.prevButton?.classList.toggle(`hidden`,r),this.nextButton?.classList.toggle(`hidden`,r),this.prevButton?.toggleAttribute(`disabled`,r||this.currentIndex<=0),this.nextButton?.toggleAttribute(`disabled`,r||e===0||this.currentIndex>=e-1)}render(){if(this.isActive){if(this.page?.classList.remove(`hidden`),(this.data?.files??[]).length===0){this.renderEmpty(this.source===`commit`?`No commit changes to display.`:`No changes to display.`);return}this.content&&(this.source===`commit`?this.content.innerHTML=`${this.renderCommitHeader()}${this.renderCommitBody()}`:this.content.innerHTML=this.renderFocusedFileBody(),this.syncToolbar())}}getToolbarTitle({commitHash:e=null,filePath:t=null,path:r=null,scope:i=`all`,source:a=`workspace`}={}){return a===`commit`||this.source===`commit`?this.layoutMode===`stacked`?this.commitMeta?.shortHash?`Commit ${this.commitMeta.shortHash}`:e?`Commit ${String(e).slice(0,7)}`:`Commit Diff`:r?n(r):this.activeFilePath?n(this.activeFilePath):this.commitMeta?.shortHash?`Commit ${this.commitMeta.shortHash}`:e?`Commit ${String(e).slice(0,7)}`:`Commit Diff`:t?n(t):i===`staged`?`Staged Changes`:i===`working-tree`?`Working Tree Changes`:`All Changes`}};export{p as GitDiffViewController};
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import{n as e}from"./vault-utils-kIbqyWPm.js";import{t}from"./button-2ZnWQkWV.js";import{n,t as r}from"./segmented-control-DhUkW6ro.js";var i=30,a=1e4;function o(e){let t=String(e??``).split(`/`);return t.pop(),t.join(`/`)}function s(e){return String(e??``).split(`/`).pop()||``}function c(){return`<svg class="git-file-icon" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>`}function l(){return`<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="18" cy="18" r="3"/><circle cx="6" cy="6" r="3"/><path d="M13 6h3a2 2 0 0 1 2 2v7"/><path d="M6 9v12"/></svg>`}function u(e){return`<svg class="git-section-chevron${e?` collapsed`:``}" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>`}function d(e){switch(e){case`commit`:return`<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>`;case`pull`:return`<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 5v14"/><path d="m18 13-6 6-6-6"/></svg>`;case`push`:return`<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 19V5"/><path d="m6 11 6-6 6 6"/></svg>`;case`unstage`:return`<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 12H8"/><path d="m12 16-4-4 4-4"/></svg>`;case`reset`:return`<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 12a9 9 0 1 0 3-6.7"/><path d="M3 4v5h5"/></svg>`;default:return`<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 5v14"/><path d="M5 12h14"/></svg>`}}function f(e){switch(e){case`added`:return`ui-status-badge--success`;case`deleted`:return`ui-status-badge--danger`;case`renamed`:return`ui-status-badge--accent`;case`untracked`:return`ui-status-badge--muted`;default:return`ui-status-badge--warning`}}function p(e={},t={}){let n=Number(e.additions||0),r=Number(e.deletions||0);return Number(e.changedFiles||0)>0||n>0||r>0?`
|
|
2
|
+
<span class="git-change-stats" aria-label="Local diff summary">
|
|
3
|
+
<span class="git-change-add">+${n}</span>
|
|
4
|
+
<span class="git-change-del">-${r}</span>
|
|
5
|
+
</span>
|
|
6
|
+
`:t.upstream||Number(t.ahead||0)>0||Number(t.behind||0)>0?`
|
|
7
|
+
<span class="git-sync-info" aria-label="Remote sync status">
|
|
8
|
+
<span class="git-sync-metric git-sync-metric--ahead">↑${Number(t.ahead||0)}</span>
|
|
9
|
+
<span class="git-sync-metric git-sync-metric--behind">↓${Number(t.behind||0)}</span>
|
|
10
|
+
</span>
|
|
11
|
+
`:`<span class="git-sync-info git-sync-info-muted">Clean</span>`}function m(t={}){return e(String(t.subject||``).trim()||t.shortHash||`Commit`)}var h=class{constructor({enabled:e=!0,gitApiClient:t=null,onCommitStaged:n=()=>{},onOpenPullBackup:r=()=>{},onPullBranch:i=()=>{},onPushBranch:a=()=>{},onRepoChange:o=()=>{},onResetFile:s=()=>{},onSelectCommit:c=()=>{},onSelectDiff:l=()=>{},onStageFile:u=()=>{},onUnstageFile:d=()=>{},onViewAllDiff:f=()=>{},searchInput:p=null,toastController:m=null}={}){this.enabled=e,this.gitApiClient=t,this.onCommitStaged=n,this.onOpenPullBackup=r,this.onPullBranch=i,this.onPushBranch=a,this.onRepoChange=o,this.onResetFile=s,this.onSelectCommit=c,this.onSelectDiff=l,this.onStageFile=u,this.onUnstageFile=d,this.onViewAllDiff=f,this.searchInput=p,this.toastController=m,this.panel=document.getElementById(`gitPanel`),this.pullBackups=[],this.status=null,this.active=!1,this.refreshTimer=null,this.searchQuery=``,this.panelMode=`changes`,this.collapsedSections=new Set,this.selection={commitHash:null,path:null,scope:null,source:`workspace`},this.pendingActionKey=null,this.history={commits:[],error:``,hasMore:!1,loaded:!1,loading:!1,loadingMore:!1,offset:0}}_handlePanelModeClick(e){let t=e.target instanceof Element?e.target.closest(`[data-git-panel-mode]`):null;if(t){let e=t.getAttribute(`data-git-panel-mode`);return(e===`changes`||e===`history`)&&this.setMode(e),!0}return!1}_handleSectionToggleClick(e){let t=e.target instanceof Element?e.target.closest(`[data-git-section-toggle]`):null;return t?(this.toggleSection(t.getAttribute(`data-git-section-toggle`)),!0):!1}_handleCommitHistoryClick(e){let t=e.target instanceof Element?e.target.closest(`[data-git-commit-hash]`):null;if(t&&!e.target.closest(`[data-git-history-load-more]`)){let e=t.getAttribute(`data-git-commit-hash`);return e&&this.onSelectCommit(e,{path:this.selection.commitHash===e?this.selection.path:null}),!0}return!1}_handleFileSelectionClick(e){let t=e.target instanceof Element?e.target.closest(`[data-git-path]`):null;if(t&&!e.target.closest(`[data-git-file-action]`)){let e=t.getAttribute(`data-git-path`);return e&&this.onSelectDiff(e,{scope:t.getAttribute(`data-git-scope`)||`working-tree`}),!0}return!1}_handleFileActionClick(e){let t=e.target instanceof Element?e.target.closest(`[data-git-file-action]`):null;if(t){let n=t.getAttribute(`data-git-file-action`),r=t.getAttribute(`data-git-path`);return n&&r&&(e.preventDefault(),e.stopPropagation(),this.handleFileAction(n,r,t.getAttribute(`data-git-scope`)||`working-tree`)),!0}return!1}_handlePanelClick(e){if(this._handlePanelModeClick(e)||this._handleSectionToggleClick(e)||this._handleCommitHistoryClick(e))return;if(e.target instanceof Element&&e.target.closest(`[data-git-history-load-more]`)){this.loadMoreHistory();return}if(this._handleFileSelectionClick(e))return;let t=e.target instanceof Element?e.target.closest(`[data-git-pull-backup-path]`):null;if(t){let e=t.getAttribute(`data-git-pull-backup-path`);e&&this.onOpenPullBackup(e);return}if(this._handleFileActionClick(e))return;if(e.target instanceof Element&&e.target.closest(`[data-git-view-all]`)){this.onViewAllDiff();return}if(e.target instanceof Element&&e.target.closest(`[data-git-commit-staged]`)){this.handleCommitStaged();return}let n=e.target instanceof Element?e.target.closest(`[data-git-sync-action]`):null;if(n){let e=n.getAttribute(`data-git-sync-action`);(e===`pull`||e===`push`)&&this.handleSyncAction(e)}}initialize(){this.panel?.addEventListener(`click`,e=>{this._handlePanelClick(e)}),this.searchInput?.addEventListener(`input`,e=>{this.searchQuery=String(e.target?.value??``).trim().toLowerCase(),this.render()}),this.syncSearchUi()}setActive(e){let t=!!e;if(!(this.active===t&&(!t||this.refreshTimer||this.panelMode===`history`))){if(this.active=t,!this.active){this.stopStatusPolling();return}this.syncSearchUi(),this.refresh({force:!1,includeHistory:this.panelMode===`history`}),this.panelMode===`changes`?this.ensureStatusPolling():this.stopStatusPolling()}}async setMode(e,{forceHistoryRefresh:t=!1}={}){let n=e===`history`?`history`:`changes`,r=this.panelMode!==n;if(this.panelMode=n,this.syncSearchUi(),this.render(),this.active){if(this.panelMode===`changes`){this.ensureStatusPolling(),r&&await this.refresh({force:!1,includeHistory:!1});return}this.stopStatusPolling(),(t||r||!this.history.loaded)&&await this.refreshHistory({force:t||r})}}setSelection({commitHash:e=null,path:t=null,scope:n=null,source:r=`workspace`}={}){this.selection={commitHash:e,path:t,scope:n,source:r},(r===`commit`||e)&&(this.panelMode=`history`,this.syncSearchUi()),this.render()}toggleSection(e){e&&(this.collapsedSections.has(e)?this.collapsedSections.delete(e):this.collapsedSections.add(e),this.render())}ensureStatusPolling(){this.refreshTimer||!this.active||this.panelMode!==`changes`||(this.refreshTimer=setInterval(()=>{this.refresh({force:!1,includeHistory:!1})},a))}stopStatusPolling(){clearInterval(this.refreshTimer),this.refreshTimer=null}syncSearchUi(){this.searchInput&&(this.searchInput.setAttribute(`placeholder`,this.panelMode===`history`?`Filter loaded commits...`:`Search changes...`),this.searchInput.setAttribute(`aria-label`,this.panelMode===`history`?`Filter loaded commits`:`Search changed files`))}async refresh({force:e=!1,includeHistory:t=this.panelMode===`history`}={}){let n=await this.refreshStatus({force:e});return t&&n.isGitRepo&&await this.refreshHistory({force:e}),n}async refreshStatus({force:e=!1}={}){if(!this.enabled)return this.status={isGitRepo:!1,sections:[],summary:{changedFiles:0}},this.pullBackups=[],this.history={...this.history,commits:[],error:``,hasMore:!1,loaded:!1,loading:!1,loadingMore:!1,offset:0},this.onRepoChange(!1,this.status),this.render(),this.status;try{let t=await this.gitApiClient.readStatus({force:e});if(this.status=t,this.pullBackups=[],t.isGitRepo)try{let e=await this.gitApiClient.readPullBackups();this.pullBackups=Array.isArray(e.backups)?e.backups:[]}catch(e){console.error(`[git-panel] Failed to load pull backups:`,e)}else this.history={...this.history,commits:[],error:``,hasMore:!1,loaded:!1,loading:!1,loadingMore:!1,offset:0};return this.onRepoChange(!!t.isGitRepo,t),this.render(),t}catch(e){return console.error(`[git-panel] Failed to load git status:`,e),this.toastController?.show(`Failed to load git status`),this.status={isGitRepo:!1,sections:[],summary:{changedFiles:0}},this.pullBackups=[],this.history={...this.history,commits:[],error:``,hasMore:!1,loaded:!1,loading:!1,loadingMore:!1,offset:0},this.onRepoChange(!1,this.status),this.render(),this.status}}async refreshHistory({force:e=!1}={}){if(!this.status?.isGitRepo)return this.history={...this.history,commits:[],error:``,hasMore:!1,loaded:!1,loading:!1,loadingMore:!1,offset:0},this.render(),this.history;if(this.history.loading&&!e)return this.history;this.history={...this.history,error:``,loading:!0,loadingMore:!1},e&&(this.history={...this.history,commits:[],hasMore:!1,loaded:!1,offset:0}),this.render();try{let e=await this.gitApiClient.readHistory({limit:i,offset:0});return this.history={commits:Array.isArray(e.commits)?e.commits:[],error:``,hasMore:!!e.hasMore,loaded:!0,loading:!1,loadingMore:!1,offset:Array.isArray(e.commits)?e.commits.length:0},this.render(),this.history}catch(e){return console.error(`[git-panel] Failed to load git history:`,e),this.toastController?.show(`Failed to load git history`),this.history={...this.history,error:`Failed to load git history`,loading:!1,loadingMore:!1},this.render(),this.history}}async loadMoreHistory(){if(!(!this.status?.isGitRepo||this.history.loading||this.history.loadingMore||!this.history.hasMore)){this.history={...this.history,error:``,loadingMore:!0},this.render();try{let e=await this.gitApiClient.readHistory({limit:i,offset:this.history.offset}),t=Array.isArray(e.commits)?e.commits:[];this.history={commits:[...this.history.commits,...t],error:``,hasMore:!!e.hasMore,loaded:!0,loading:!1,loadingMore:!1,offset:this.history.offset+t.length},this.render()}catch(e){console.error(`[git-panel] Failed to load more git history:`,e),this.toastController?.show(`Failed to load git history`),this.history={...this.history,error:`Failed to load git history`,loadingMore:!1},this.render()}}}filterFiles(e=[]){return this.searchQuery?e.filter(e=>e.path.toLowerCase().includes(this.searchQuery)||String(e.oldPath||``).toLowerCase().includes(this.searchQuery)):e}filterCommits(e=[]){return this.searchQuery?e.filter(e=>String(e.subject||``).toLowerCase().includes(this.searchQuery)||String(e.shortHash||``).toLowerCase().includes(this.searchQuery)||String(e.authorName||``).toLowerCase().includes(this.searchQuery)):e}async handleFileAction(e,t,n){let r=`${e}:${n}:${t}`;if(this.pendingActionKey!==r){this.pendingActionKey=r,this.render();try{e===`stage`?await this.onStageFile(t,{scope:n}):e===`unstage`?await this.onUnstageFile(t,{scope:n}):e===`reset`&&await this.onResetFile(t,{scope:n})}finally{this.pendingActionKey=null,this.render()}}}async handleCommitStaged(){let e=`commit-staged`;if(this.pendingActionKey!==e){this.pendingActionKey=e,this.render();try{await this.onCommitStaged()}finally{this.pendingActionKey=null,this.render()}}}async handleSyncAction(e){let t=`sync:${e}`;if(this.pendingActionKey!==t){this.pendingActionKey=t,this.render();try{e===`pull`?await this.onPullBranch():e===`push`&&await this.onPushBranch()}finally{this.pendingActionKey=null,this.render()}}}renderSection(t){let n=this.filterFiles(t.files);if(n.length===0)return``;let r=this.collapsedSections.has(t.key);return`
|
|
12
|
+
<section class="git-section">
|
|
13
|
+
<button class="git-section-header" type="button" data-git-section-toggle="${e(t.key)}">
|
|
14
|
+
${u(r)}
|
|
15
|
+
${e(t.label)}
|
|
16
|
+
<span class="ui-pill-badge ui-pill-badge--count ui-pill-badge--muted git-section-count">${n.length}</span>
|
|
17
|
+
</button>
|
|
18
|
+
<div class="git-file-list${r?` hidden`:``}">
|
|
19
|
+
${n.map(e=>this.renderFile(e)).join(``)}
|
|
20
|
+
</div>
|
|
21
|
+
</section>
|
|
22
|
+
`}renderPullBackupsSection(){return!Array.isArray(this.pullBackups)||this.pullBackups.length===0?``:`
|
|
23
|
+
<section class="git-section">
|
|
24
|
+
<button class="git-section-header" type="button" data-git-section-toggle="pull-backups">
|
|
25
|
+
${u(this.collapsedSections.has(`pull-backups`))}
|
|
26
|
+
Pull Backups
|
|
27
|
+
<span class="ui-pill-badge ui-pill-badge--count ui-pill-badge--muted git-section-count">${this.pullBackups.length}</span>
|
|
28
|
+
</button>
|
|
29
|
+
<div class="git-file-list${this.collapsedSections.has(`pull-backups`)?` hidden`:``}">
|
|
30
|
+
${this.pullBackups.map(e=>this.renderPullBackup(e)).join(``)}
|
|
31
|
+
</div>
|
|
32
|
+
</section>
|
|
33
|
+
`}renderPullBackup(t){let n=String(t?.createdAt||``).replace(`T`,` `).replace(/\.\d+Z?$/u,`Z`),r=Number(t?.fileCount||0);return`
|
|
34
|
+
<div class="ui-item-row git-file-row">
|
|
35
|
+
<button
|
|
36
|
+
class="ui-item-main git-file-item"
|
|
37
|
+
type="button"
|
|
38
|
+
data-git-pull-backup-path="${e(t.summaryPath||``)}"
|
|
39
|
+
>
|
|
40
|
+
${c()}
|
|
41
|
+
<span class="ui-item-copy git-file-copy">
|
|
42
|
+
<span class="ui-item-title git-file-name">Pull backup ${e(t.id||``)}</span>
|
|
43
|
+
<span class="ui-item-subtitle git-file-path">${e(`${n} · ${t.branch||`HEAD`} · ${r} file${r===1?``:`s`}`)}</span>
|
|
44
|
+
</span>
|
|
45
|
+
<span class="ui-status-badge ui-status-badge--warning">BK</span>
|
|
46
|
+
</button>
|
|
47
|
+
</div>
|
|
48
|
+
`}renderFile(t){let n=this.selection.source===`workspace`&&this.selection.path===t.path&&this.selection.scope===t.scope,r=o(t.path),i=s(t.path),a=String(t.path||``),l=f(t.status),u=t.scope===`staged`?{label:`Unstage`,value:`unstage`}:{label:`Stage`,value:`stage`},p=`${u.value}:${t.scope}:${t.path}`,m=this.pendingActionKey===p,h=`reset:${t.scope}:${t.path}`,g=this.pendingActionKey===h;return`
|
|
49
|
+
<div class="ui-item-row git-file-row${n?` active`:``}">
|
|
50
|
+
<button
|
|
51
|
+
class="ui-item-main git-file-item${n?` active`:``}"
|
|
52
|
+
type="button"
|
|
53
|
+
data-git-path="${e(t.path)}"
|
|
54
|
+
data-git-scope="${e(t.scope)}"
|
|
55
|
+
title="${e(a)}"
|
|
56
|
+
>
|
|
57
|
+
${c()}
|
|
58
|
+
<span class="ui-item-copy git-file-copy">
|
|
59
|
+
<span class="ui-item-title git-file-name">${e(i)}</span>
|
|
60
|
+
${r?`<span class="ui-item-subtitle git-file-path">${e(r)}</span>`:``}
|
|
61
|
+
</span>
|
|
62
|
+
<span class="ui-status-badge ${l}">${e(t.code)}</span>
|
|
63
|
+
</button>
|
|
64
|
+
<div class="ui-item-actions git-file-actions">
|
|
65
|
+
<button
|
|
66
|
+
class="ui-icon-button ui-action-icon ui-action-icon--surface"
|
|
67
|
+
type="button"
|
|
68
|
+
data-git-file-action="reset"
|
|
69
|
+
data-git-path="${e(t.path)}"
|
|
70
|
+
data-git-scope="${e(t.scope)}"
|
|
71
|
+
aria-label="Reset ${e(i)}"
|
|
72
|
+
title="Reset to current branch"
|
|
73
|
+
${g?`disabled`:``}
|
|
74
|
+
>
|
|
75
|
+
${g?`...`:d(`reset`)}
|
|
76
|
+
</button>
|
|
77
|
+
<button
|
|
78
|
+
class="ui-icon-button ui-action-icon ui-action-icon--surface"
|
|
79
|
+
type="button"
|
|
80
|
+
data-git-file-action="${u.value}"
|
|
81
|
+
data-git-path="${e(t.path)}"
|
|
82
|
+
data-git-scope="${e(t.scope)}"
|
|
83
|
+
aria-label="${e(u.label)} ${e(i)}"
|
|
84
|
+
title="${e(u.label)}"
|
|
85
|
+
${m?`disabled`:``}
|
|
86
|
+
>
|
|
87
|
+
${m?`...`:d(u.value)}
|
|
88
|
+
</button>
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
`}renderPanelModes(){return`
|
|
92
|
+
<div class="${n({pill:!0,extra:`git-panel-mode-switch`})}" role="tablist" aria-label="Git panel modes">
|
|
93
|
+
<button
|
|
94
|
+
class="${r({active:this.panelMode===`changes`,extra:`git-panel-mode-btn`})}"
|
|
95
|
+
type="button"
|
|
96
|
+
data-git-panel-mode="changes"
|
|
97
|
+
aria-selected="${this.panelMode===`changes`}"
|
|
98
|
+
>
|
|
99
|
+
Changes
|
|
100
|
+
</button>
|
|
101
|
+
<button
|
|
102
|
+
class="${r({active:this.panelMode===`history`,extra:`git-panel-mode-btn`})}"
|
|
103
|
+
type="button"
|
|
104
|
+
data-git-panel-mode="history"
|
|
105
|
+
aria-selected="${this.panelMode===`history`}"
|
|
106
|
+
>
|
|
107
|
+
History
|
|
108
|
+
</button>
|
|
109
|
+
</div>
|
|
110
|
+
`}renderHistoryRow(t){let n=this.selection.source===`commit`&&this.selection.commitHash===t.hash,r=Number(t.filesChanged||0);return`
|
|
111
|
+
<button
|
|
112
|
+
class="ui-record-surface git-history-row${n?` active`:``}"
|
|
113
|
+
type="button"
|
|
114
|
+
data-git-commit-hash="${e(t.hash||``)}"
|
|
115
|
+
title="${e(t.authoredAt||``)}"
|
|
116
|
+
>
|
|
117
|
+
<span class="ui-record-header git-history-row-top">
|
|
118
|
+
<span class="ui-record-title git-history-subject">${m(t)}</span>
|
|
119
|
+
<span class="ui-pill-badge ui-pill-badge--code git-history-hash">${e(t.shortHash||``)}</span>
|
|
120
|
+
</span>
|
|
121
|
+
<span class="ui-record-meta git-history-row-meta">
|
|
122
|
+
<span>${e(t.authorName||`Unknown`)}</span>
|
|
123
|
+
<span>${e(t.relativeDateLabel||``)}</span>
|
|
124
|
+
<span>${r} file${r===1?``:`s`}</span>
|
|
125
|
+
${t.isMergeCommit?`<span>Merge</span>`:``}
|
|
126
|
+
</span>
|
|
127
|
+
<span class="ui-record-meta git-history-row-stats">
|
|
128
|
+
<span class="git-change-add">+${Number(t.additions||0)}</span>
|
|
129
|
+
<span class="git-change-del">-${Number(t.deletions||0)}</span>
|
|
130
|
+
</span>
|
|
131
|
+
</button>
|
|
132
|
+
`}renderHistoryPanel(){let n=this.filterCommits(this.history.commits);return this.history.loading&&!this.history.loaded?`<div class="git-panel-empty">Loading git history...</div>`:this.history.error&&!this.history.loaded?`<div class="git-panel-empty">${e(this.history.error)}</div>`:this.history.loaded&&n.length===0&&this.history.commits.length===0?`<div class="git-panel-empty">No commits yet on this branch.</div>`:this.history.loaded&&n.length===0?`<div class="git-panel-empty">No loaded commits match your filter.</div>`:`
|
|
133
|
+
<div class="git-history-list">
|
|
134
|
+
${n.map(e=>this.renderHistoryRow(e)).join(``)}
|
|
135
|
+
</div>
|
|
136
|
+
${this.history.hasMore?`
|
|
137
|
+
<div class="git-history-footer">
|
|
138
|
+
<button
|
|
139
|
+
class="${t({variant:`secondary`,size:`compact`,action:!0,surface:!0,extra:`git-history-load-more`})}"
|
|
140
|
+
type="button"
|
|
141
|
+
data-git-history-load-more
|
|
142
|
+
${this.history.loadingMore?`disabled`:``}
|
|
143
|
+
>
|
|
144
|
+
${this.history.loadingMore?`Loading...`:`Load More`}
|
|
145
|
+
</button>
|
|
146
|
+
</div>
|
|
147
|
+
`:``}
|
|
148
|
+
`}renderChangesPanel(){let e=this.renderPullBackupsSection(),n=(this.status.sections??[]).map(e=>this.renderSection(e)).filter(Boolean).join(``),r=!!this.status.summary?.changedFiles,i=Number(this.status.summary?.staged||0)>0,a=this.pendingActionKey===`commit-staged`;return`
|
|
149
|
+
${e}
|
|
150
|
+
${n||`<div class="git-panel-empty">No local changes</div>`}
|
|
151
|
+
${r?`
|
|
152
|
+
<div class="git-panel-footer">
|
|
153
|
+
<div class="git-panel-footer-actions">
|
|
154
|
+
<button class="${t({variant:`secondary`,size:`compact`,action:!0,surface:!0})}" type="button" data-git-view-all>
|
|
155
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M2 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>
|
|
156
|
+
View Full Diff
|
|
157
|
+
</button>
|
|
158
|
+
<button
|
|
159
|
+
class="${t({variant:`primary`,action:!0,wide:!0,extra:`git-footer-commit-btn`})}"
|
|
160
|
+
type="button"
|
|
161
|
+
data-git-commit-staged
|
|
162
|
+
${!i||a?`disabled`:``}
|
|
163
|
+
>
|
|
164
|
+
${a?`Working...`:`Commit Staged`}
|
|
165
|
+
</button>
|
|
166
|
+
</div>
|
|
167
|
+
</div>
|
|
168
|
+
`:``}
|
|
169
|
+
`}renderEmpty(t){this.panel&&(this.panel.innerHTML=`<div class="git-panel-empty">${e(t)}</div>`)}render(){if(!this.panel)return;if(!this.status){this.renderEmpty(`Loading git status...`);return}if(!this.status.isGitRepo){this.renderEmpty(`Git is unavailable for this vault.`);return}let n=this.status.branch??{},r=!!n.upstream,i=this.pendingActionKey===`sync:pull`,a=this.pendingActionKey===`sync:push`;this.panel.innerHTML=`
|
|
170
|
+
<div class="git-branch-bar">
|
|
171
|
+
<div class="git-branch-meta">
|
|
172
|
+
<span class="git-branch-name">
|
|
173
|
+
${l()}
|
|
174
|
+
${e(n.name||`HEAD`)}
|
|
175
|
+
</span>
|
|
176
|
+
${p(this.status.summary,n)}
|
|
177
|
+
</div>
|
|
178
|
+
<div class="git-branch-actions" role="group" aria-label="Remote sync actions">
|
|
179
|
+
<button
|
|
180
|
+
class="${t({variant:`secondary`,size:`compact`,pill:!0,surface:!0,extra:`ui-action-pill`})}"
|
|
181
|
+
type="button"
|
|
182
|
+
data-git-sync-action="pull"
|
|
183
|
+
title="${r?`Pull remote changes (fast-forward only)`:`No upstream branch configured`}"
|
|
184
|
+
aria-label="Pull branch"
|
|
185
|
+
${!r||i?`disabled`:``}
|
|
186
|
+
>
|
|
187
|
+
${i?`...`:`${d(`pull`)}<span>Pull</span>`}
|
|
188
|
+
</button>
|
|
189
|
+
<button
|
|
190
|
+
class="${t({variant:`secondary`,size:`compact`,pill:!0,surface:!0,extra:`ui-action-pill`})}"
|
|
191
|
+
type="button"
|
|
192
|
+
data-git-sync-action="push"
|
|
193
|
+
title="${r?`Push local commits`:`No upstream branch configured`}"
|
|
194
|
+
aria-label="Push branch"
|
|
195
|
+
${!r||a?`disabled`:``}
|
|
196
|
+
>
|
|
197
|
+
${a?`...`:`${d(`push`)}<span>Push</span>`}
|
|
198
|
+
</button>
|
|
199
|
+
</div>
|
|
200
|
+
${this.renderPanelModes()}
|
|
201
|
+
</div>
|
|
202
|
+
${this.panelMode===`history`?this.renderHistoryPanel():this.renderChangesPanel()}
|
|
203
|
+
`}};export{h as GitPanelController};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-NNHCCRGN-DlpIbxXb.js";import{n as e}from"./chunk-UIBZB4QT-r8p3pBHw.js";export{e as createGitGraphServices};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as e,h as t,p as n}from"./src-BshjqEL2.js";import{H as r,K as i,U as a,Y as o,a as s,b as c,f as l,s as u,v as d,w as f,x as p,y as m}from"./chunk-CSCIHK7Q-BIoF4mTy.js";import{g as h,i as g,m as _}from"./chunk-5ZQYHXKU-BJyABJSy.js";import{t as v}from"./chunk-4BX2VUAB-BVNkn9EH.js";import{t as y}from"./mermaid-parser.core-BD_OCbyj.js";import{t as b}from"./chunk-QZHKN3VN-9NMPSwDX.js";var x={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},ee=l.gitGraph,S=t(()=>g({...ee,...c().gitGraph}),`getConfig`),C=new b(()=>{let e=S(),t=e.mainBranchName,n=e.mainBranchOrder;return{mainBranchName:t,commits:new Map,head:null,branchConfig:new Map([[t,{name:t,order:n}]]),branches:new Map([[t,null]]),currBranch:t,direction:`LR`,seq:0,options:{}}});function w(){return _({length:7})}t(w,`getID`);function T(e,t){let n=Object.create(null);return e.reduce((e,r)=>{let i=t(r);return n[i]||(n[i]=!0,e.push(r)),e},[])}t(T,`uniqBy`);var te=t(function(e){C.records.direction=e},`setDirection`),ne=t(function(t){e.debug(`options str`,t),t=t?.trim(),t||=`{}`;try{C.records.options=JSON.parse(t)}catch(t){e.error(`error while parsing gitGraph options`,t.message)}},`setOptions`),re=t(function(){return C.records.options},`getOptions`),ie=t(function(t){let n=t.msg,r=t.id,i=t.type,a=t.tags;e.info(`commit`,n,r,i,a),e.debug(`Entering commit:`,n,r,i,a);let o=S();r=u.sanitizeText(r,o),n=u.sanitizeText(n,o),a=a?.map(e=>u.sanitizeText(e,o));let s={id:r||C.records.seq+`-`+w(),message:n,seq:C.records.seq++,type:i??x.NORMAL,tags:a??[],parents:C.records.head==null?[]:[C.records.head.id],branch:C.records.currBranch};C.records.head=s,e.info(`main branch`,o.mainBranchName),C.records.commits.has(s.id)&&e.warn(`Commit ID ${s.id} already exists`),C.records.commits.set(s.id,s),C.records.branches.set(C.records.currBranch,s.id),e.debug(`in pushCommit `+s.id)},`commit`),ae=t(function(t){let n=t.name,r=t.order;if(n=u.sanitizeText(n,S()),C.records.branches.has(n))throw Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${n}")`);C.records.branches.set(n,C.records.head==null?null:C.records.head.id),C.records.branchConfig.set(n,{name:n,order:r}),E(n),e.debug(`in createBranch`)},`branch`),oe=t(t=>{let n=t.branch,r=t.id,i=t.type,a=t.tags,o=S();n=u.sanitizeText(n,o),r&&=u.sanitizeText(r,o);let s=C.records.branches.get(C.records.currBranch),c=C.records.branches.get(n),l=s?C.records.commits.get(s):void 0,d=c?C.records.commits.get(c):void 0;if(l&&d&&l.branch===n)throw Error(`Cannot merge branch '${n}' into itself.`);if(C.records.currBranch===n){let e=Error(`Incorrect usage of "merge". Cannot merge a branch to itself`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch abc`]},e}if(l===void 0||!l){let e=Error(`Incorrect usage of "merge". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`commit`]},e}if(!C.records.branches.has(n)){let e=Error(`Incorrect usage of "merge". Branch to be merged (`+n+`) does not exist`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch ${n}`]},e}if(d===void 0||!d){let e=Error(`Incorrect usage of "merge". Branch to be merged (`+n+`) has no commits`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`"commit"`]},e}if(l===d){let e=Error(`Incorrect usage of "merge". Both branches have same head`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch abc`]},e}if(r&&C.records.commits.has(r)){let e=Error(`Incorrect usage of "merge". Commit with id:`+r+` already exists, use different custom id`);throw e.hash={text:`merge ${n} ${r} ${i} ${a?.join(` `)}`,token:`merge ${n} ${r} ${i} ${a?.join(` `)}`,expected:[`merge ${n} ${r}_UNIQUE ${i} ${a?.join(` `)}`]},e}let f=c||``,p={id:r||`${C.records.seq}-${w()}`,message:`merged branch ${n} into ${C.records.currBranch}`,seq:C.records.seq++,parents:C.records.head==null?[]:[C.records.head.id,f],branch:C.records.currBranch,type:x.MERGE,customType:i,customId:!!r,tags:a??[]};C.records.head=p,C.records.commits.set(p.id,p),C.records.branches.set(C.records.currBranch,p.id),e.debug(C.records.branches),e.debug(`in mergeBranch`)},`merge`),se=t(function(t){let n=t.id,r=t.targetId,i=t.tags,a=t.parent;e.debug(`Entering cherryPick:`,n,r,i);let o=S();if(n=u.sanitizeText(n,o),r=u.sanitizeText(r,o),i=i?.map(e=>u.sanitizeText(e,o)),a=u.sanitizeText(a,o),!n||!C.records.commits.has(n)){let e=Error(`Incorrect usage of "cherryPick". Source commit id should exist and provided`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let s=C.records.commits.get(n);if(s===void 0||!s)throw Error(`Incorrect usage of "cherryPick". Source commit id should exist and provided`);if(a&&!(Array.isArray(s.parents)&&s.parents.includes(a)))throw Error(`Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.`);let c=s.branch;if(s.type===x.MERGE&&!a)throw Error(`Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.`);if(!r||!C.records.commits.has(r)){if(c===C.records.currBranch){let e=Error(`Incorrect usage of "cherryPick". Source commit is already on current branch`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let t=C.records.branches.get(C.records.currBranch);if(t===void 0||!t){let e=Error(`Incorrect usage of "cherry-pick". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let o=C.records.commits.get(t);if(o===void 0||!o){let e=Error(`Incorrect usage of "cherry-pick". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let l={id:C.records.seq+`-`+w(),message:`cherry-picked ${s?.message} into ${C.records.currBranch}`,seq:C.records.seq++,parents:C.records.head==null?[]:[C.records.head.id,s.id],branch:C.records.currBranch,type:x.CHERRY_PICK,tags:i?i.filter(Boolean):[`cherry-pick:${s.id}${s.type===x.MERGE?`|parent:${a}`:``}`]};C.records.head=l,C.records.commits.set(l.id,l),C.records.branches.set(C.records.currBranch,l.id),e.debug(C.records.branches),e.debug(`in cherryPick`)}},`cherryPick`),E=t(function(e){if(e=u.sanitizeText(e,S()),C.records.branches.has(e)){C.records.currBranch=e;let t=C.records.branches.get(C.records.currBranch);t===void 0||!t?C.records.head=null:C.records.head=C.records.commits.get(t)??null}else{let t=Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${e}")`);throw t.hash={text:`checkout ${e}`,token:`checkout ${e}`,expected:[`branch ${e}`]},t}},`checkout`);function D(e,t,n){let r=e.indexOf(t);r===-1?e.push(n):e.splice(r,1,n)}t(D,`upsert`);function O(t){let n=t.reduce((e,t)=>e.seq>t.seq?e:t,t[0]),r=``;t.forEach(function(e){e===n?r+=` *`:r+=` |`});let i=[r,n.id,n.seq];for(let e in C.records.branches)C.records.branches.get(e)===n.id&&i.push(e);if(e.debug(i.join(` `)),n.parents&&n.parents.length==2&&n.parents[0]&&n.parents[1]){let e=C.records.commits.get(n.parents[0]);D(t,n,e),n.parents[1]&&t.push(C.records.commits.get(n.parents[1]))}else if(n.parents.length==0)return;else if(n.parents[0]){let e=C.records.commits.get(n.parents[0]);D(t,n,e)}t=T(t,e=>e.id),O(t)}t(O,`prettyPrintCommitHistory`);var ce=t(function(){e.debug(C.records.commits);let t=k()[0];O([t])},`prettyPrint`),le=t(function(){C.reset(),s()},`clear`),ue=t(function(){return[...C.records.branchConfig.values()].map((e,t)=>e.order!==null&&e.order!==void 0?e:{...e,order:parseFloat(`0.${t}`)}).sort((e,t)=>(e.order??0)-(t.order??0)).map(({name:e})=>({name:e}))},`getBranchesAsObjArray`),de=t(function(){return C.records.branches},`getBranches`),fe=t(function(){return C.records.commits},`getCommits`),k=t(function(){let t=[...C.records.commits.values()];return t.forEach(function(t){e.debug(t.id)}),t.sort((e,t)=>e.seq-t.seq),t},`getCommitsArray`),A={commitType:x,getConfig:S,setDirection:te,setOptions:ne,getOptions:re,commit:ie,branch:ae,merge:oe,cherryPick:se,checkout:E,prettyPrint:ce,clear:le,getBranchesAsObjArray:ue,getBranches:de,getCommits:fe,getCommitsArray:k,getCurrentBranch:t(function(){return C.records.currBranch},`getCurrentBranch`),getDirection:t(function(){return C.records.direction},`getDirection`),getHead:t(function(){return C.records.head},`getHead`),setAccTitle:a,getAccTitle:m,getAccDescription:d,setAccDescription:r,setDiagramTitle:i,getDiagramTitle:f},pe=t((e,t)=>{v(e,t),e.dir&&t.setDirection(e.dir);for(let n of e.statements)me(n,t)},`populate`),me=t((n,r)=>{let i={Commit:t(e=>r.commit(he(e)),`Commit`),Branch:t(e=>r.branch(ge(e)),`Branch`),Merge:t(e=>r.merge(_e(e)),`Merge`),Checkout:t(e=>r.checkout(ve(e)),`Checkout`),CherryPicking:t(e=>r.cherryPick(ye(e)),`CherryPicking`)}[n.$type];i?i(n):e.error(`Unknown statement type: ${n.$type}`)},`parseStatement`),he=t(e=>({id:e.id,msg:e.message??``,type:e.type===void 0?x.NORMAL:x[e.type],tags:e.tags??void 0}),`parseCommit`),ge=t(e=>({name:e.name,order:e.order??0}),`parseBranch`),_e=t(e=>({branch:e.branch,id:e.id??``,type:e.type===void 0?void 0:x[e.type],tags:e.tags??void 0}),`parseMerge`),ve=t(e=>e.branch,`parseCheckout`),ye=t(e=>({id:e.id,targetId:``,tags:e.tags?.length===0?void 0:e.tags,parent:e.parent}),`parseCherryPicking`),be={parse:t(async t=>{let n=await y(`gitGraph`,t);e.debug(n),pe(n,A)},`parse`)},j=10,M=40,N=4,P=2,F=8,I=new Set([`redux`,`redux-dark`,`redux-color`,`redux-dark-color`]),L=12,R=new Set([`redux-color`,`redux-dark-color`]),xe=new Set([`dark`,`redux-dark`,`redux-dark-color`,`neo-dark`]),z=t((e,t,n=!1)=>n&&e>0?(e-1)%(t-1)+1:e%t,`calcColorIndex`),B=new Map,V=new Map,H=30,U=new Map,W=[],G=0,K=`LR`,q=t(()=>{B.clear(),V.clear(),U.clear(),G=0,W=[],K=`LR`},`clear`),J=t(e=>{let t=document.createElementNS(`http://www.w3.org/2000/svg`,`text`);return(typeof e==`string`?e.split(/\\n|\n|<br\s*\/?>/gi):e).forEach(e=>{let n=document.createElementNS(`http://www.w3.org/2000/svg`,`tspan`);n.setAttributeNS(`http://www.w3.org/XML/1998/namespace`,`xml:space`,`preserve`),n.setAttribute(`dy`,`1em`),n.setAttribute(`x`,`0`),n.setAttribute(`class`,`row`),n.textContent=e.trim(),t.appendChild(n)}),t},`drawText`),Y=t(e=>{let n,r,i;return K===`BT`?(r=t((e,t)=>e<=t,`comparisonFunc`),i=1/0):(r=t((e,t)=>e>=t,`comparisonFunc`),i=0),e.forEach(e=>{let t=K===`TB`||K==`BT`?V.get(e)?.y:V.get(e)?.x;t!==void 0&&r(t,i)&&(n=e,i=t)}),n},`findClosestParent`),Se=t(e=>{let t=``,n=1/0;return e.forEach(e=>{let r=V.get(e).y;r<=n&&(t=e,n=r)}),t||void 0},`findClosestParentBT`),Ce=t((e,t,n)=>{let r=n,i=n,a=[];e.forEach(e=>{let n=t.get(e);if(!n)throw Error(`Commit not found for key ${e}`);n.parents.length?(r=Te(n),i=Math.max(r,i)):a.push(n),Ee(n,r)}),r=i,a.forEach(e=>{De(e,r,n)}),e.forEach(e=>{let n=t.get(e);if(n?.parents.length){let e=Se(n.parents);r=V.get(e).y-M,r<=i&&(i=r);let t=B.get(n.branch).pos,a=r-j;V.set(n.id,{x:t,y:a})}})},`setParallelBTPos`),we=t(e=>{let t=Y(e.parents.filter(e=>e!==null));if(!t)throw Error(`Closest parent not found for commit ${e.id}`);let n=V.get(t)?.y;if(n===void 0)throw Error(`Closest parent position not found for commit ${e.id}`);return n},`findClosestParentPos`),Te=t(e=>we(e)+M,`calculateCommitPosition`),Ee=t((e,t)=>{let n=B.get(e.branch);if(!n)throw Error(`Branch not found for commit ${e.id}`);let r=n.pos,i=t+j;return V.set(e.id,{x:r,y:i}),{x:r,y:i}},`setCommitPosition`),De=t((e,t,n)=>{let r=B.get(e.branch);if(!r)throw Error(`Branch not found for commit ${e.id}`);let i=t+n,a=r.pos;V.set(e.id,{x:a,y:i})},`setRootPosition`),Oe=t((e,t,n,r,i,a)=>{let{theme:o}=p(),s=I.has(o??``),c=R.has(o??``),l=xe.has(o??``);if(a===x.HIGHLIGHT)e.append(`rect`).attr(`x`,n.x-10+(s?3:0)).attr(`y`,n.y-10+(s?3:0)).attr(`width`,s?14:20).attr(`height`,s?14:20).attr(`class`,`commit ${t.id} commit-highlight${z(i,F,c)} ${r}-outer`),e.append(`rect`).attr(`x`,n.x-6+(s?2:0)).attr(`y`,n.y-6+(s?2:0)).attr(`width`,s?8:12).attr(`height`,s?8:12).attr(`class`,`commit ${t.id} commit${z(i,F,c)} ${r}-inner`);else if(a===x.CHERRY_PICK)e.append(`circle`).attr(`cx`,n.x).attr(`cy`,n.y).attr(`r`,s?7:10).attr(`class`,`commit ${t.id} ${r}`),e.append(`circle`).attr(`cx`,n.x-3).attr(`cy`,n.y+2).attr(`r`,s?2.5:2.75).attr(`fill`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`circle`).attr(`cx`,n.x+3).attr(`cy`,n.y+2).attr(`r`,s?2.5:2.75).attr(`fill`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`line`).attr(`x1`,n.x+3).attr(`y1`,n.y+1).attr(`x2`,n.x).attr(`y2`,n.y-5).attr(`stroke`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`line`).attr(`x1`,n.x-3).attr(`y1`,n.y+1).attr(`x2`,n.x).attr(`y2`,n.y-5).attr(`stroke`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`);else{let o=e.append(`circle`);if(o.attr(`cx`,n.x),o.attr(`cy`,n.y),o.attr(`r`,s?7:10),o.attr(`class`,`commit ${t.id} commit${z(i,F,c)}`),a===x.MERGE){let a=e.append(`circle`);a.attr(`cx`,n.x),a.attr(`cy`,n.y),a.attr(`r`,s?5:6),a.attr(`class`,`commit ${r} ${t.id} commit${z(i,F,c)}`)}if(a===x.REVERSE){let a=e.append(`path`),o=s?4:5;a.attr(`d`,`M ${n.x-o},${n.y-o}L${n.x+o},${n.y+o}M${n.x-o},${n.y+o}L${n.x+o},${n.y-o}`).attr(`class`,`commit ${r} ${t.id} commit${z(i,F,c)}`)}}},`drawCommitBullet`),ke=t((e,t,n,r,i)=>{if(t.type!==x.CHERRY_PICK&&(t.customId&&t.type===x.MERGE||t.type!==x.MERGE)&&i.showCommitLabel){let a=e.append(`g`),o=a.insert(`rect`).attr(`class`,`commit-label-bkg`),s=a.append(`text`).attr(`x`,r).attr(`y`,n.y+25).attr(`class`,`commit-label`).text(t.id),c=s.node()?.getBBox();if(c&&(o.attr(`x`,n.posWithOffset-c.width/2-P).attr(`y`,n.y+13.5).attr(`width`,c.width+2*P).attr(`height`,c.height+2*P),K===`TB`||K===`BT`?(o.attr(`x`,n.x-(c.width+4*N+5)).attr(`y`,n.y-12),s.attr(`x`,n.x-(c.width+4*N)).attr(`y`,n.y+c.height-12)):s.attr(`x`,n.posWithOffset-c.width/2),i.rotateCommitLabel))if(K===`TB`||K===`BT`)s.attr(`transform`,`rotate(-45, `+n.x+`, `+n.y+`)`),o.attr(`transform`,`rotate(-45, `+n.x+`, `+n.y+`)`);else{let e=-7.5-(c.width+10)/25*9.5,t=10+c.width/25*8.5;a.attr(`transform`,`translate(`+e+`, `+t+`) rotate(-45, `+r+`, `+n.y+`)`)}}},`drawCommitLabel`),Ae=t((e,t,n,r)=>{if(t.tags.length>0){let i=0,a=0,o=0,s=[];for(let r of t.tags.reverse()){let t=e.insert(`polygon`),c=e.append(`circle`),l=e.append(`text`).attr(`y`,n.y-16-i).attr(`class`,`tag-label`).text(r),u=l.node()?.getBBox();if(!u)throw Error(`Tag bbox not found`);a=Math.max(a,u.width),o=Math.max(o,u.height),l.attr(`x`,n.posWithOffset-u.width/2),s.push({tag:l,hole:c,rect:t,yOffset:i}),i+=20}for(let{tag:e,hole:t,rect:i,yOffset:c}of s){let s=o/2,l=n.y-19.2-c;if(i.attr(`class`,`tag-label-bkg`).attr(`points`,`
|
|
1
|
+
import{g as e,h as t,p as n}from"./src-DSz_pbBa.js";import{H as r,K as i,U as a,Y as o,a as s,b as c,f as l,s as u,v as d,w as f,x as p,y as m}from"./chunk-CSCIHK7Q-D0bHjxCO.js";import{g as h,i as g,m as _}from"./chunk-5ZQYHXKU-C4q4UVKa.js";import{t as v}from"./chunk-4BX2VUAB-DcdHBPEH.js";import{t as y}from"./mermaid-parser.core-C4gZtCl9.js";import{t as b}from"./chunk-QZHKN3VN-D5YLQvjj.js";var x={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},ee=l.gitGraph,S=t(()=>g({...ee,...c().gitGraph}),`getConfig`),C=new b(()=>{let e=S(),t=e.mainBranchName,n=e.mainBranchOrder;return{mainBranchName:t,commits:new Map,head:null,branchConfig:new Map([[t,{name:t,order:n}]]),branches:new Map([[t,null]]),currBranch:t,direction:`LR`,seq:0,options:{}}});function w(){return _({length:7})}t(w,`getID`);function T(e,t){let n=Object.create(null);return e.reduce((e,r)=>{let i=t(r);return n[i]||(n[i]=!0,e.push(r)),e},[])}t(T,`uniqBy`);var te=t(function(e){C.records.direction=e},`setDirection`),ne=t(function(t){e.debug(`options str`,t),t=t?.trim(),t||=`{}`;try{C.records.options=JSON.parse(t)}catch(t){e.error(`error while parsing gitGraph options`,t.message)}},`setOptions`),re=t(function(){return C.records.options},`getOptions`),ie=t(function(t){let n=t.msg,r=t.id,i=t.type,a=t.tags;e.info(`commit`,n,r,i,a),e.debug(`Entering commit:`,n,r,i,a);let o=S();r=u.sanitizeText(r,o),n=u.sanitizeText(n,o),a=a?.map(e=>u.sanitizeText(e,o));let s={id:r||C.records.seq+`-`+w(),message:n,seq:C.records.seq++,type:i??x.NORMAL,tags:a??[],parents:C.records.head==null?[]:[C.records.head.id],branch:C.records.currBranch};C.records.head=s,e.info(`main branch`,o.mainBranchName),C.records.commits.has(s.id)&&e.warn(`Commit ID ${s.id} already exists`),C.records.commits.set(s.id,s),C.records.branches.set(C.records.currBranch,s.id),e.debug(`in pushCommit `+s.id)},`commit`),ae=t(function(t){let n=t.name,r=t.order;if(n=u.sanitizeText(n,S()),C.records.branches.has(n))throw Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${n}")`);C.records.branches.set(n,C.records.head==null?null:C.records.head.id),C.records.branchConfig.set(n,{name:n,order:r}),E(n),e.debug(`in createBranch`)},`branch`),oe=t(t=>{let n=t.branch,r=t.id,i=t.type,a=t.tags,o=S();n=u.sanitizeText(n,o),r&&=u.sanitizeText(r,o);let s=C.records.branches.get(C.records.currBranch),c=C.records.branches.get(n),l=s?C.records.commits.get(s):void 0,d=c?C.records.commits.get(c):void 0;if(l&&d&&l.branch===n)throw Error(`Cannot merge branch '${n}' into itself.`);if(C.records.currBranch===n){let e=Error(`Incorrect usage of "merge". Cannot merge a branch to itself`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch abc`]},e}if(l===void 0||!l){let e=Error(`Incorrect usage of "merge". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`commit`]},e}if(!C.records.branches.has(n)){let e=Error(`Incorrect usage of "merge". Branch to be merged (`+n+`) does not exist`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch ${n}`]},e}if(d===void 0||!d){let e=Error(`Incorrect usage of "merge". Branch to be merged (`+n+`) has no commits`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`"commit"`]},e}if(l===d){let e=Error(`Incorrect usage of "merge". Both branches have same head`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch abc`]},e}if(r&&C.records.commits.has(r)){let e=Error(`Incorrect usage of "merge". Commit with id:`+r+` already exists, use different custom id`);throw e.hash={text:`merge ${n} ${r} ${i} ${a?.join(` `)}`,token:`merge ${n} ${r} ${i} ${a?.join(` `)}`,expected:[`merge ${n} ${r}_UNIQUE ${i} ${a?.join(` `)}`]},e}let f=c||``,p={id:r||`${C.records.seq}-${w()}`,message:`merged branch ${n} into ${C.records.currBranch}`,seq:C.records.seq++,parents:C.records.head==null?[]:[C.records.head.id,f],branch:C.records.currBranch,type:x.MERGE,customType:i,customId:!!r,tags:a??[]};C.records.head=p,C.records.commits.set(p.id,p),C.records.branches.set(C.records.currBranch,p.id),e.debug(C.records.branches),e.debug(`in mergeBranch`)},`merge`),se=t(function(t){let n=t.id,r=t.targetId,i=t.tags,a=t.parent;e.debug(`Entering cherryPick:`,n,r,i);let o=S();if(n=u.sanitizeText(n,o),r=u.sanitizeText(r,o),i=i?.map(e=>u.sanitizeText(e,o)),a=u.sanitizeText(a,o),!n||!C.records.commits.has(n)){let e=Error(`Incorrect usage of "cherryPick". Source commit id should exist and provided`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let s=C.records.commits.get(n);if(s===void 0||!s)throw Error(`Incorrect usage of "cherryPick". Source commit id should exist and provided`);if(a&&!(Array.isArray(s.parents)&&s.parents.includes(a)))throw Error(`Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.`);let c=s.branch;if(s.type===x.MERGE&&!a)throw Error(`Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.`);if(!r||!C.records.commits.has(r)){if(c===C.records.currBranch){let e=Error(`Incorrect usage of "cherryPick". Source commit is already on current branch`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let t=C.records.branches.get(C.records.currBranch);if(t===void 0||!t){let e=Error(`Incorrect usage of "cherry-pick". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let o=C.records.commits.get(t);if(o===void 0||!o){let e=Error(`Incorrect usage of "cherry-pick". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let l={id:C.records.seq+`-`+w(),message:`cherry-picked ${s?.message} into ${C.records.currBranch}`,seq:C.records.seq++,parents:C.records.head==null?[]:[C.records.head.id,s.id],branch:C.records.currBranch,type:x.CHERRY_PICK,tags:i?i.filter(Boolean):[`cherry-pick:${s.id}${s.type===x.MERGE?`|parent:${a}`:``}`]};C.records.head=l,C.records.commits.set(l.id,l),C.records.branches.set(C.records.currBranch,l.id),e.debug(C.records.branches),e.debug(`in cherryPick`)}},`cherryPick`),E=t(function(e){if(e=u.sanitizeText(e,S()),C.records.branches.has(e)){C.records.currBranch=e;let t=C.records.branches.get(C.records.currBranch);t===void 0||!t?C.records.head=null:C.records.head=C.records.commits.get(t)??null}else{let t=Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${e}")`);throw t.hash={text:`checkout ${e}`,token:`checkout ${e}`,expected:[`branch ${e}`]},t}},`checkout`);function D(e,t,n){let r=e.indexOf(t);r===-1?e.push(n):e.splice(r,1,n)}t(D,`upsert`);function O(t){let n=t.reduce((e,t)=>e.seq>t.seq?e:t,t[0]),r=``;t.forEach(function(e){e===n?r+=` *`:r+=` |`});let i=[r,n.id,n.seq];for(let e in C.records.branches)C.records.branches.get(e)===n.id&&i.push(e);if(e.debug(i.join(` `)),n.parents&&n.parents.length==2&&n.parents[0]&&n.parents[1]){let e=C.records.commits.get(n.parents[0]);D(t,n,e),n.parents[1]&&t.push(C.records.commits.get(n.parents[1]))}else if(n.parents.length==0)return;else if(n.parents[0]){let e=C.records.commits.get(n.parents[0]);D(t,n,e)}t=T(t,e=>e.id),O(t)}t(O,`prettyPrintCommitHistory`);var ce=t(function(){e.debug(C.records.commits);let t=k()[0];O([t])},`prettyPrint`),le=t(function(){C.reset(),s()},`clear`),ue=t(function(){return[...C.records.branchConfig.values()].map((e,t)=>e.order!==null&&e.order!==void 0?e:{...e,order:parseFloat(`0.${t}`)}).sort((e,t)=>(e.order??0)-(t.order??0)).map(({name:e})=>({name:e}))},`getBranchesAsObjArray`),de=t(function(){return C.records.branches},`getBranches`),fe=t(function(){return C.records.commits},`getCommits`),k=t(function(){let t=[...C.records.commits.values()];return t.forEach(function(t){e.debug(t.id)}),t.sort((e,t)=>e.seq-t.seq),t},`getCommitsArray`),A={commitType:x,getConfig:S,setDirection:te,setOptions:ne,getOptions:re,commit:ie,branch:ae,merge:oe,cherryPick:se,checkout:E,prettyPrint:ce,clear:le,getBranchesAsObjArray:ue,getBranches:de,getCommits:fe,getCommitsArray:k,getCurrentBranch:t(function(){return C.records.currBranch},`getCurrentBranch`),getDirection:t(function(){return C.records.direction},`getDirection`),getHead:t(function(){return C.records.head},`getHead`),setAccTitle:a,getAccTitle:m,getAccDescription:d,setAccDescription:r,setDiagramTitle:i,getDiagramTitle:f},pe=t((e,t)=>{v(e,t),e.dir&&t.setDirection(e.dir);for(let n of e.statements)me(n,t)},`populate`),me=t((n,r)=>{let i={Commit:t(e=>r.commit(he(e)),`Commit`),Branch:t(e=>r.branch(ge(e)),`Branch`),Merge:t(e=>r.merge(_e(e)),`Merge`),Checkout:t(e=>r.checkout(ve(e)),`Checkout`),CherryPicking:t(e=>r.cherryPick(ye(e)),`CherryPicking`)}[n.$type];i?i(n):e.error(`Unknown statement type: ${n.$type}`)},`parseStatement`),he=t(e=>({id:e.id,msg:e.message??``,type:e.type===void 0?x.NORMAL:x[e.type],tags:e.tags??void 0}),`parseCommit`),ge=t(e=>({name:e.name,order:e.order??0}),`parseBranch`),_e=t(e=>({branch:e.branch,id:e.id??``,type:e.type===void 0?void 0:x[e.type],tags:e.tags??void 0}),`parseMerge`),ve=t(e=>e.branch,`parseCheckout`),ye=t(e=>({id:e.id,targetId:``,tags:e.tags?.length===0?void 0:e.tags,parent:e.parent}),`parseCherryPicking`),be={parse:t(async t=>{let n=await y(`gitGraph`,t);e.debug(n),pe(n,A)},`parse`)},j=10,M=40,N=4,P=2,F=8,I=new Set([`redux`,`redux-dark`,`redux-color`,`redux-dark-color`]),L=12,R=new Set([`redux-color`,`redux-dark-color`]),xe=new Set([`dark`,`redux-dark`,`redux-dark-color`,`neo-dark`]),z=t((e,t,n=!1)=>n&&e>0?(e-1)%(t-1)+1:e%t,`calcColorIndex`),B=new Map,V=new Map,H=30,U=new Map,W=[],G=0,K=`LR`,q=t(()=>{B.clear(),V.clear(),U.clear(),G=0,W=[],K=`LR`},`clear`),J=t(e=>{let t=document.createElementNS(`http://www.w3.org/2000/svg`,`text`);return(typeof e==`string`?e.split(/\\n|\n|<br\s*\/?>/gi):e).forEach(e=>{let n=document.createElementNS(`http://www.w3.org/2000/svg`,`tspan`);n.setAttributeNS(`http://www.w3.org/XML/1998/namespace`,`xml:space`,`preserve`),n.setAttribute(`dy`,`1em`),n.setAttribute(`x`,`0`),n.setAttribute(`class`,`row`),n.textContent=e.trim(),t.appendChild(n)}),t},`drawText`),Y=t(e=>{let n,r,i;return K===`BT`?(r=t((e,t)=>e<=t,`comparisonFunc`),i=1/0):(r=t((e,t)=>e>=t,`comparisonFunc`),i=0),e.forEach(e=>{let t=K===`TB`||K==`BT`?V.get(e)?.y:V.get(e)?.x;t!==void 0&&r(t,i)&&(n=e,i=t)}),n},`findClosestParent`),Se=t(e=>{let t=``,n=1/0;return e.forEach(e=>{let r=V.get(e).y;r<=n&&(t=e,n=r)}),t||void 0},`findClosestParentBT`),Ce=t((e,t,n)=>{let r=n,i=n,a=[];e.forEach(e=>{let n=t.get(e);if(!n)throw Error(`Commit not found for key ${e}`);n.parents.length?(r=Te(n),i=Math.max(r,i)):a.push(n),Ee(n,r)}),r=i,a.forEach(e=>{De(e,r,n)}),e.forEach(e=>{let n=t.get(e);if(n?.parents.length){let e=Se(n.parents);r=V.get(e).y-M,r<=i&&(i=r);let t=B.get(n.branch).pos,a=r-j;V.set(n.id,{x:t,y:a})}})},`setParallelBTPos`),we=t(e=>{let t=Y(e.parents.filter(e=>e!==null));if(!t)throw Error(`Closest parent not found for commit ${e.id}`);let n=V.get(t)?.y;if(n===void 0)throw Error(`Closest parent position not found for commit ${e.id}`);return n},`findClosestParentPos`),Te=t(e=>we(e)+M,`calculateCommitPosition`),Ee=t((e,t)=>{let n=B.get(e.branch);if(!n)throw Error(`Branch not found for commit ${e.id}`);let r=n.pos,i=t+j;return V.set(e.id,{x:r,y:i}),{x:r,y:i}},`setCommitPosition`),De=t((e,t,n)=>{let r=B.get(e.branch);if(!r)throw Error(`Branch not found for commit ${e.id}`);let i=t+n,a=r.pos;V.set(e.id,{x:a,y:i})},`setRootPosition`),Oe=t((e,t,n,r,i,a)=>{let{theme:o}=p(),s=I.has(o??``),c=R.has(o??``),l=xe.has(o??``);if(a===x.HIGHLIGHT)e.append(`rect`).attr(`x`,n.x-10+(s?3:0)).attr(`y`,n.y-10+(s?3:0)).attr(`width`,s?14:20).attr(`height`,s?14:20).attr(`class`,`commit ${t.id} commit-highlight${z(i,F,c)} ${r}-outer`),e.append(`rect`).attr(`x`,n.x-6+(s?2:0)).attr(`y`,n.y-6+(s?2:0)).attr(`width`,s?8:12).attr(`height`,s?8:12).attr(`class`,`commit ${t.id} commit${z(i,F,c)} ${r}-inner`);else if(a===x.CHERRY_PICK)e.append(`circle`).attr(`cx`,n.x).attr(`cy`,n.y).attr(`r`,s?7:10).attr(`class`,`commit ${t.id} ${r}`),e.append(`circle`).attr(`cx`,n.x-3).attr(`cy`,n.y+2).attr(`r`,s?2.5:2.75).attr(`fill`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`circle`).attr(`cx`,n.x+3).attr(`cy`,n.y+2).attr(`r`,s?2.5:2.75).attr(`fill`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`line`).attr(`x1`,n.x+3).attr(`y1`,n.y+1).attr(`x2`,n.x).attr(`y2`,n.y-5).attr(`stroke`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`line`).attr(`x1`,n.x-3).attr(`y1`,n.y+1).attr(`x2`,n.x).attr(`y2`,n.y-5).attr(`stroke`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`);else{let o=e.append(`circle`);if(o.attr(`cx`,n.x),o.attr(`cy`,n.y),o.attr(`r`,s?7:10),o.attr(`class`,`commit ${t.id} commit${z(i,F,c)}`),a===x.MERGE){let a=e.append(`circle`);a.attr(`cx`,n.x),a.attr(`cy`,n.y),a.attr(`r`,s?5:6),a.attr(`class`,`commit ${r} ${t.id} commit${z(i,F,c)}`)}if(a===x.REVERSE){let a=e.append(`path`),o=s?4:5;a.attr(`d`,`M ${n.x-o},${n.y-o}L${n.x+o},${n.y+o}M${n.x-o},${n.y+o}L${n.x+o},${n.y-o}`).attr(`class`,`commit ${r} ${t.id} commit${z(i,F,c)}`)}}},`drawCommitBullet`),ke=t((e,t,n,r,i)=>{if(t.type!==x.CHERRY_PICK&&(t.customId&&t.type===x.MERGE||t.type!==x.MERGE)&&i.showCommitLabel){let a=e.append(`g`),o=a.insert(`rect`).attr(`class`,`commit-label-bkg`),s=a.append(`text`).attr(`x`,r).attr(`y`,n.y+25).attr(`class`,`commit-label`).text(t.id),c=s.node()?.getBBox();if(c&&(o.attr(`x`,n.posWithOffset-c.width/2-P).attr(`y`,n.y+13.5).attr(`width`,c.width+2*P).attr(`height`,c.height+2*P),K===`TB`||K===`BT`?(o.attr(`x`,n.x-(c.width+4*N+5)).attr(`y`,n.y-12),s.attr(`x`,n.x-(c.width+4*N)).attr(`y`,n.y+c.height-12)):s.attr(`x`,n.posWithOffset-c.width/2),i.rotateCommitLabel))if(K===`TB`||K===`BT`)s.attr(`transform`,`rotate(-45, `+n.x+`, `+n.y+`)`),o.attr(`transform`,`rotate(-45, `+n.x+`, `+n.y+`)`);else{let e=-7.5-(c.width+10)/25*9.5,t=10+c.width/25*8.5;a.attr(`transform`,`translate(`+e+`, `+t+`) rotate(-45, `+r+`, `+n.y+`)`)}}},`drawCommitLabel`),Ae=t((e,t,n,r)=>{if(t.tags.length>0){let i=0,a=0,o=0,s=[];for(let r of t.tags.reverse()){let t=e.insert(`polygon`),c=e.append(`circle`),l=e.append(`text`).attr(`y`,n.y-16-i).attr(`class`,`tag-label`).text(r),u=l.node()?.getBBox();if(!u)throw Error(`Tag bbox not found`);a=Math.max(a,u.width),o=Math.max(o,u.height),l.attr(`x`,n.posWithOffset-u.width/2),s.push({tag:l,hole:c,rect:t,yOffset:i}),i+=20}for(let{tag:e,hole:t,rect:i,yOffset:c}of s){let s=o/2,l=n.y-19.2-c;if(i.attr(`class`,`tag-label-bkg`).attr(`points`,`
|
|
2
2
|
${r-a/2-N/2},${l+P}
|
|
3
3
|
${r-a/2-N/2},${l-P}
|
|
4
4
|
${n.posWithOffset-a/2-N},${l-s-P}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./chunk-SRAX5OIU-
|
|
1
|
+
import"./chunk-SRAX5OIU-CiRgnkYo.js";var e={paste:`Pegar`,pasteAsPlaintext:`Pegar coma texto sen formato`,pasteCharts:`Pegar gráficos`,selectAll:`Seleccionar todo`,multiSelect:`Engadir elemento á selección`,moveCanvas:`Mover o lenzo`,cut:`Cortar`,copy:`Copiar`,copyAsPng:`Copiar no portapapeis como PNG`,copyAsSvg:`Copiar no portapapeis como SVG`,copyText:`Copia no portapapeis como texto`,copySource:`Copiar fonte ao portapapeis`,convertToCode:`Converter a código`,bringForward:`Traer cara adiante`,sendToBack:`Enviar cara atrás`,bringToFront:`Traer á fronte`,sendBackward:`Enviar ao fondo`,delete:`Borrar`,copyStyles:`Copiar estilo`,pasteStyles:`Pegar estilo`,stroke:`Trazo`,changeStroke:``,background:`Fondo`,changeBackground:``,fill:`Recheo`,strokeWidth:`Largo do trazo`,strokeStyle:`Estilo do trazo`,strokeStyle_solid:`Sólido`,strokeStyle_dashed:`Liña de trazos`,strokeStyle_dotted:`Liña de puntos`,sloppiness:`Estilo de trazo`,opacity:`Opacidade`,textAlign:`Aliñar texto`,edges:`Bordos`,sharp:`Agudo`,round:`Redondo`,arrowheads:`Puntas de frecha`,arrowhead_none:`Ningunha`,arrowhead_arrow:`Frecha`,arrowhead_bar:`Barra`,arrowhead_circle:`Círculo`,arrowhead_circle_outline:`Círculo (contorno)`,arrowhead_triangle:`Triángulo`,arrowhead_triangle_outline:`Triángulo (contorno)`,arrowhead_diamond:`Diamante`,arrowhead_diamond_outline:`Diamante (contorno)`,arrowhead_crowfoot_many:``,arrowhead_crowfoot_one:``,arrowhead_crowfoot_one_or_many:``,more_options:``,arrowtypes:``,arrowtype_sharp:``,arrowtype_round:``,arrowtype_elbowed:``,fontSize:`Tamaño da fonte`,fontFamily:`Tipo de fonte`,addWatermark:`Engadir "Feito con Excalidraw"`,handDrawn:`Debuxado a man`,normal:`Normal`,code:`Código`,small:`Pequeno`,medium:`Mediano`,large:`Grande`,veryLarge:`Moi grande`,solid:`Sólido`,hachure:`Folleto`,zigzag:`Zigzag`,crossHatch:`Raiado transversal`,thin:`Estreito`,bold:`Groso`,left:`Esquerda`,center:`Centrado`,right:`Dereita`,extraBold:`Moi groso`,architect:`Arquitecto`,artist:`Artista`,cartoonist:`Caricatura`,fileTitle:`Nome do arquivo`,colorPicker:`Selector de cor`,canvasColors:`Usado en lenzo`,canvasBackground:`Fondo do lenzo`,drawingCanvas:`Lenzo de debuxo`,clearCanvas:``,layers:`Capas`,actions:`Accións`,language:`Idioma`,liveCollaboration:`Colaboración en directo...`,duplicateSelection:`Duplicar`,untitled:`Sen título`,name:`Nome`,yourName:`O teu nome`,madeWithExcalidraw:`Feito con Excalidraw`,group:`Agrupar selección`,ungroup:`Desagrupar selección`,collaborators:`Colaboradores`,toggleGrid:``,addToLibrary:`Engadir á biblioteca`,removeFromLibrary:`Eliminar da biblioteca`,libraryLoadingMessage:`Cargando biblioteca…`,libraries:`Explorar bibliotecas`,loadingScene:`Cargando escena…`,loadScene:``,align:`Aliñamento`,alignTop:`Aliñamento superior`,alignBottom:`Aliñamento inferior`,alignLeft:`Aliñar a esquerda`,alignRight:`Aliñar a dereita`,centerVertically:`Centrar verticalmente`,centerHorizontally:`Centrar horizontalmente`,distributeHorizontally:`Distribuír horizontalmente`,distributeVertically:`Distribuír verticalmente`,flipHorizontal:`Virar horizontalmente`,flipVertical:`Virar verticalmente`,viewMode:`Modo de visualización`,share:`Compartir`,showStroke:`Mostrar selector de cores do trazo`,showBackground:`Mostrar selector de cores do fondo`,showFonts:``,toggleTheme:``,theme:``,personalLib:`Biblioteca Persoal`,excalidrawLib:`Biblioteca Excalidraw`,decreaseFontSize:`Diminuír tamaño da fonte`,increaseFontSize:`Aumentar o tamaño da fonte`,unbindText:`Desvincular texto`,bindText:`Ligar o texto ao contedor`,createContainerFromText:`Envolver o texto nun contedor`,link:{edit:`Editar ligazón`,editEmbed:``,create:``,label:`Ligazón`,labelEmbed:``,empty:`Non se estableceu un enlace`,hint:``,goToElement:``},lineEditor:{edit:`Editar liña`,editArrow:``},polygon:{breakPolygon:``,convertToPolygon:``},elementLock:{lock:`Bloquear`,unlock:`Desbloquear`,lockAll:`Bloquear todo`,unlockAll:`Desbloquear todo`},statusPublished:`Publicado`,sidebarLock:`Manter a barra lateral aberta`,selectAllElementsInFrame:``,removeAllElementsFromFrame:``,eyeDropper:``,textToDiagram:`Texto a diagrama`,prompt:``,followUs:`Síguenos`,discordChat:`Chat de Discord`,zoomToFitViewport:``,zoomToFitSelection:``,zoomToFit:``,installPWA:``,autoResize:``,imageCropping:``,unCroppedDimension:``,copyElementLink:``,linkToElement:``,wrapSelectionInFrame:``,tab:``,shapeSwitch:``},t={title:``,desc:``,notFound:``},n={noItems:`Aínda non hai elementos engadidos...`,hint_emptyLibrary:`Seleccione un elemento no lenzo para engadilo aquí, ou instale unha biblioteca dende o repositorio público, como se detalla a continuación.`,hint_emptyPrivateLibrary:`Seleccione un elemento do lenzo para engadilo aquí.`,search:{inputPlaceholder:``,heading:``,noResults:``,clearSearch:``}},r={title:``,noMatch:``,singleResult:``,multipleResults:``,placeholder:``,frames:``,texts:``},i={clearReset:`Limpar o lenzo`,exportJSON:`Exportar a arquivo`,exportImage:`Exportar imaxe...`,export:`Gardar en...`,copyToClipboard:`Copiar ao portapapeis`,copyLink:``,save:`Gardar no ficheiro actual`,saveAs:`Gardar como`,load:`Abrir`,getShareableLink:`Obter unha ligazón que se poida compartir`,close:`Pechar`,selectLanguage:`Seleccionar idioma`,scrollBackToContent:`Volver ao contido`,zoomIn:`Ampliar`,zoomOut:`Reducir`,resetZoom:`Reiniciar zoom`,menu:`Menú`,done:`Feito`,edit:`Editar`,undo:`Desfacer`,redo:`Refacer`,resetLibrary:`Reiniciar biblioteca`,createNewRoom:`Crear nova sala`,fullScreen:`Pantalla completa`,darkMode:`Modo escuro`,lightMode:`Modo claro`,systemMode:``,zenMode:`Modo zen`,objectsSnapMode:``,exitZenMode:`Saír do modo zen`,cancel:`Cancelar`,saveLibNames:``,clear:`Limpar`,remove:`Eliminar`,embed:``,publishLibrary:``,submit:`Enviar`,confirm:`Confirmar`,embeddableInteractionButton:`Faga clic para interactuar`},a={clearReset:`Isto limpará todo o lenzo. Estás seguro?`,couldNotCreateShareableLink:`Non se puido crear unha ligazón para compartir.`,couldNotCreateShareableLinkTooBig:`Non se puido crear a ligazón para compartir: a escena é demasiado grande`,couldNotLoadInvalidFile:`Non se puido cargar o ficheiro non válido`,importBackendFailed:`A importación dende o backend fallou.`,cannotExportEmptyCanvas:`Non se pode exportar un lenzo baleiro.`,couldNotCopyToClipboard:`Non se puido copiar ao portapapeis.`,decryptFailed:`Non se poideron descifrar os datos.`,uploadedSecurly:`A carga foi asegurada con cifrado de extremo a extremo, o que significa que o servidor de Excalidraw e terceiros non poden ler o contido.`,loadSceneOverridePrompt:`A carga dun debuxo externo substituirá o contido existente. Desexa continuar?`,collabStopOverridePrompt:`Deter a sesión, sobrescribirá o seu debuxo local previamente almacenado. Está seguro?
|
|
2
2
|
|
|
3
3
|
(Se quere manter o seu debuxo local, simplemente peche a lapela do navegador.)`,errorAddingToLibrary:`Non se puido engadir o elemento á biblioteca`,errorRemovingFromLibrary:`Non se puido eliminar o elemento da biblioteca`,confirmAddLibrary:`Isto engadirá {{numShapes}} forma(s) a túa biblioteca. Estás seguro?`,imageDoesNotContainScene:`Esta imaxe non parece conter ningún dato da escena. Activou a inserción de escenas durante a exportación?`,cannotRestoreFromImage:`Non se puido restaurar a escena dende este arquivo de imaxe`,invalidSceneUrl:`Non se puido importar a escena dende a URL proporcionada. Ou ben está malformada ou non contén un JSON con información válida para Excalidraw.`,resetLibrary:`Isto limpará a súa biblioteca. Está seguro?`,removeItemsFromsLibrary:`Eliminar {{count}} elemento(s) da biblioteca?`,invalidEncryptionKey:`A clave de cifrado debe ter 22 caracteres. A colaboración en directo está desactivada.`,collabOfflineWarning:`Non hai conexión a Internet dispoñible.
|
|
4
4
|
Os teus cambios non serán gardados!`,localStorageQuotaExceeded:``},o={unsupportedFileType:`Tipo de ficheiro non soportado.`,imageInsertError:`Non se puido inserir a imaxe. Probe de novo máis tarde...`,fileTooBig:`O ficheiro é demasiado grande. O tamaño máximo permitido é {{maxSize}}.`,svgImageInsertError:`Non se puido inserir como imaxe SVG. O marcado SVG semella inválido.`,failedToFetchImage:`Non se puido obter a imaxe.`,cannotResolveCollabServer:`Non se puido conectar ao servidor de colaboración. Por favor recargue a páxina e probe de novo.`,importLibraryError:`Non se puido cargar a biblioteca`,saveLibraryError:``,collabSaveFailed:`Non se puido gardar na base de datos. Se o problema persiste, deberías gardar o teu arquivo de maneira local para asegurarte de non perdelo teu traballo.`,collabSaveFailed_sizeExceeded:`Non se puido gardar na base de datos, o lenzo semella demasiado grande. Deberías gardar o teu arquivo de maneira local para asegurarte de non perdelo teu traballo.`,imageToolNotSupported:`As imaxes están desactivadas.`,brave_measure_text_error:{line1:``,line2:``,line3:``,line4:``},libraryElementTypeError:{embeddable:``,iframe:``,image:``},asyncPasteFailedOnRead:``,asyncPasteFailedOnParse:`Non se puido copiar.`,copyToSystemClipboardFailed:`Non se puido copiar ao portapapeis.`},s={selection:`Selección`,lasso:``,image:`Inserir imaxe`,rectangle:`Rectángulo`,diamond:`Diamante`,ellipse:`Elipse`,arrow:`Frecha`,line:`Liña`,freedraw:`Debuxar`,text:`Texto`,library:`Biblioteca`,lock:`Manter a ferramenta seleccionada activa despois de debuxar`,penMode:`Modo lapis - evitar o contacto`,link:``,eraser:`Goma de borrar`,frame:``,magicframe:``,embeddable:`Inserir na web`,laser:`Punteiro láser`,hand:`Man (ferramenta de desprazamento)`,extraTools:`Máis ferramentas`,mermaidToExcalidraw:``,convertElementType:``},c={rectangle:``,diamond:``,ellipse:``,arrow:``,line:``,freedraw:``,text:``,image:``,group:``,frame:``,magicframe:``,embeddable:``,selection:``,iframe:``},l={canvasActions:`Accións do lenzo`,selectedShapeActions:`Accións da forma seleccionada`,shapes:`Formas`},u={dismissSearch:``,canvasPanning:``,linearElement:`Faga clic para iniciar varios puntos, arrastre para unha sola liña`,arrowTool:``,arrowBindModifiers:``,freeDraw:`Fai clic e arrastra, solta cando acabes`,text:`Consello: tamén podes engadir texto facendo dobre-clic en calquera lugar coa ferramenta de selección`,embeddable:`Faga clic e arrastre para crear un sitio web embebido`,text_selected:``,text_editing:``,linearElementMulti:``,lockAngle:``,resize:``,resizeImage:``,rotate:``,lineEditor_info:``,lineEditor_line_info:``,lineEditor_pointSelected:``,lineEditor_nothingSelected:``,publishLibrary:`Publica a túa propia biblioteca`,bindTextToElement:``,createFlowchart:``,deepBoxSelect:``,eraserRevert:``,firefox_clipboard_write:`Esta función pódese activar establecendo a opción "dom.events.asyncClipboard.clipboardItem" a "true". Para cambiar as opcións do navegador en Firefox, visita a páxina "about:config".`,disableSnapping:``,enterCropEditor:``,leaveCropEditor:``},d={cannotShowPreview:`Non se pode mostrar a vista previa`,canvasTooBig:`Pode que o lenzo sexa demasiado grande.`,canvasTooBigTip:`Consello: Probe a acercar un pouco os elementos máis afastados.`},f={headingMain:`Atopouse un erro. Probe <button>recargando a páxina.</button>`,clearCanvasMessage:`Se recargar non funcionou, probe <button>limpando o lenzo.</button>`,clearCanvasCaveat:` Isto resultará nunha perda do seu traballo `,trackedToSentry:`O erro con identificador {{eventId}} foi rastrexado no noso sistema.`,openIssueMessage:`Fomos moi cautelosos de non incluír a información da súa escena no erro. Se a súa escena non é privada, por favor, considere o seguimento do noso <button>rastrexador de erros.</button> Por favor inclúa a seguinte información copiándoa e pegándoa na issue de Github.`,sceneContent:`Contido da escena:`},p={or:`Ou`},m={desc_intro:`Invita xente a colaborar no teu diagrama.`,desc_privacy:``,button_startSession:`Comezar sesión`,button_stopSession:`Rematar sesión`,desc_inProgressIntro:`A sesión de colaboración en directo está agora en progreso.`,desc_shareLink:`Comparte esta ligazón con calquera que queiras colaborar:`,desc_exitSession:`Deter a sesión desconectarao da sala, pero poderá seguir traballando coa escena de maneira local. Teña en conta que isto non afectará a outras persoas, que poderán seguir colaborando na súa versión.`,shareTitle:`Únase a unha sesión de colaboración en directo en Excalidraw`},h={title:`Erro`},g={disk_title:`Gardar no disco`,disk_details:`Exporte os datos da escena a un ficheiro que poderás importar máis tarde.`,disk_button:`Gardar nun ficheiro`,link_title:`Ligazón para compartir`,link_details:`Exportar como unha ligazón de só lectura.`,link_button:`Exportar a unha ligazón`,excalidrawplus_description:`Garde a escena no seu espazo de traballo en Excalidraw+.`,excalidrawplus_button:`Exportar`,excalidrawplus_exportError:`Non se puido exportar a Excalidraw+ neste momento...`},_={blog:`Le o noso blog`,click:`clic`,deepSelect:`Selección en profundidade`,deepBoxSelect:`Selección en profundidade dentro da caixa, evitando o arrastre`,createFlowchart:``,navigateFlowchart:``,curvedArrow:`Frecha curva`,curvedLine:`Liña curva`,documentation:`Documentación`,doubleClick:`dobre-clic`,drag:`arrastrar`,editor:`Editor`,editLineArrowPoints:``,editText:``,github:`Encontrou un problema? Envíeo`,howto:`Sigue as nosas normas`,or:`ou`,preventBinding:`Evitar a unión de frechas`,tools:`Ferramentas`,shortcuts:`Atallos de teclado`,textFinish:`Rematar de editar (editor de texto)`,textNewLine:`Engadir unha nova liña (editor de texto)`,title:`Axuda`,view:`Vista`,zoomToFit:`Zoom que se axuste a todos os elementos`,zoomToSelection:`Zoom á selección`,toggleElementLock:`Bloquear/desbloquear selección`,movePageUpDown:`Mover páxina cara enriba/abaixo`,movePageLeftRight:`Mover páxina cara a esquerda/dereita`,cropStart:``,cropFinish:``},v={title:`Limpar lenzo`},y={title:`Publicar biblioteca`,itemName:`Nome do elemento`,authorName:`Nome do autor`,githubUsername:`Nome de usuario en Github`,twitterUsername:`Nome de usuario en Twitter`,libraryName:`Nome da biblioteca`,libraryDesc:`Descrición da biblioteca`,website:`Páxina web`,placeholder:{authorName:`O seu nome ou nome de usuario`,libraryName:`Nome da súa biblioteca`,libraryDesc:`Descrición da súa biblioteca para axudar a xente a entender o seu uso`,githubHandle:`Nome de usuario de GitHub (opcional), así poderás editar a biblioteca unha vez enviada para a súa revisión`,twitterHandle:`Nome de usuario en Twitter(opcional), así sabemos a quen darlle crédito cando se lle de promoción a través de Twitter`,website:`Ligazón ao teu sitio web persoal ou a outro sitio (opcional)`},errors:{required:`Obrigatorio`,website:`Introduza unha URL válida`},noteDescription:`Envíe a súa biblioteca para que sexa incluída no <link>repositorio público de bibliotecas</link>para que outra xente a poida usar nos seus debuxos.`,noteGuidelines:`A biblioteca necesita ser aprobada manualmente primeiro. Por favor, lea as <link>normas</link> antes de ser enviado. Necesitarás unha conta de GitHub para comunicarte ou facer cambios se se solicitan, pero non é estritamente necesario.`,noteLicense:`Ao enviar, estás de acordo con que a biblioteca sexa publicada baixo a <link>Licenza MIT, </link>o cal significa que, en resumo, calquera pode usalo sen restricións.`,noteItems:`Cada elemento da biblioteca debe ter o seu nome propio para que se poida filtrar. Os seguintes elementos da biblioteca serán incluídos:`,atleastOneLibItem:`Por favor seleccione polo menos un elemento da biblioteca para comezar`,republishWarning:`Nota: algúns dos elementos seleccionados están marcados como xa publicados/enviados. Só deberías reenviar elementos cando se actualice unha biblioteca ou envío.`},b={title:`Biblioteca enviada`,content:`Grazas {{authorName}}. A súa biblioteca foi enviada para ser revisada. Pode seguir o estado<link>aquí</link>`},x={resetLibrary:`Restablecer biblioteca`,removeItemsFromLib:`Eliminar os elementos seleccionados da biblioteca`},S={header:`Exportar imaxe`,label:{withBackground:`Fondo`,onlySelected:`Só seleccionados`,darkMode:`Modo escuro`,embedScene:``,scale:``,padding:``},tooltip:{embedScene:`Os datos da escena serán gardados no ficheiro PNG/SVG exportado polo que a escena poderá ser restaurada dende el. Isto aumentará o tamaño do ficheiro exportado.`},title:{exportToPng:`Exportar a PNG`,exportToSvg:`Exportar a SVG`,copyPngToClipboard:`Copiar PNG ao portapapeis`},button:{exportToPng:`PNG`,exportToSvg:`SVG`,copyPngToClipboard:`Copiar ao portapapeis`}},C={tooltip:`Os teus debuxos están cifrados de punto a punto, polo que os servidores de Excalidraw nunca os verán.`,link:`Entrada do blog acerca do cifrado de punto a punto en Excalidraw`},w={angle:`Ángulo`,shapes:``,height:`Alto`,scene:`Escena`,selected:`Seleccionado`,storage:`Almacenamento`,fullTitle:``,title:``,generalStats:``,elementProperties:``,total:`Total`,version:`Versión`,versionCopy:`Faga clic para copiar`,versionNotAvailable:`Versión non dispoñible`,width:`Ancho`},T={addedToLibrary:`Engadido á biblioteca`,copyStyles:`Estilos copiados.`,copyToClipboard:`Copiado ao portapapeis.`,copyToClipboardAsPng:`Copiar {{exportSelection}} ao portapapeis como PNG
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function e(e){return{type:e,style:`keyword`}}var t=e(`keyword a`),n=e(`keyword b`),r=e(`keyword c`),i=e(`operator`),a={type:`atom`,style:`atom`},o={type:`attribute`,style:`attribute`},s=e(`typedef`),c={if:t,while:t,else:n,do:n,try:n,return:r,break:r,continue:r,new:r,throw:r,var:e(`var`),inline:o,static:o,using:e(`import`),public:o,private:o,cast:e(`cast`),import:e(`import`),macro:e(`macro`),function:e(`function`),catch:e(`catch`),untyped:e(`untyped`),callback:e(`cb`),for:e(`for`),switch:e(`switch`),case:e(`case`),default:e(`default`),in:i,never:e(`property_access`),trace:e(`trace`),class:s,abstract:s,enum:s,interface:s,typedef:s,extends:s,implements:s,dynamic:s,true:a,false:a,null:a},l=/[+\-*&%=<>!?|]/;function u(e,t,n){return t.tokenize=n,n(e,t)}function d(e,t){for(var n=!1,r;(r=e.next())!=null;){if(r==t&&!n)return!0;n=!n&&r==`\\`}}var s,f;function p(e,t,n){return s=e,f=n,t}function m(e,t){var n=e.next();if(n==`"`||n==`'`)return u(e,t,ee(n));if(/[\[\]{}\(\),;\:\.]/.test(n))return p(n);if(n==`0`&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),p(`number`,`number`);if(/\d/.test(n)||n==`-`&&e.eat(/\d/))return e.match(/^\d*(?:\.\d*(?!\.))?(?:[eE][+\-]?\d+)?/),p(`number`,`number`);if(t.reAllowed&&n==`~`&&e.eat(/\//))return d(e,`/`),e.eatWhile(/[gimsu]/),p(`regexp`,`string.special`);if(n==`/`)return e.eat(`*`)?u(e,t,h):e.eat(`/`)?(e.skipToEnd(),p(`comment`,`comment`)):(e.eatWhile(l),p(`operator`,null,e.current()));if(n==`#`)return e.skipToEnd(),p(`conditional`,`meta`);if(n==`@`)return e.eat(/:/),e.eatWhile(/[\w_]/),p(`metadata`,`meta`);if(l.test(n))return e.eatWhile(l),p(`operator`,null,e.current());var r;if(/[A-Z]/.test(n))return e.eatWhile(/[\w_<>]/),r=e.current(),p(`type`,`type`,r);e.eatWhile(/[\w_]/);var r=e.current(),i=c.propertyIsEnumerable(r)&&c[r];return i&&t.kwAllowed?p(i.type,i.style,r):p(`variable`,`variable`,r)}function ee(e){return function(t,n){return d(t,e)&&(n.tokenize=m),p(`string`,`string`)}}function h(e,t){for(var n=!1,r;r=e.next();){if(r==`/`&&n){t.tokenize=m;break}n=r==`*`}return p(`comment`,`comment`)}var g={atom:!0,number:!0,variable:!0,string:!0,regexp:!0};function _(e,t,n,r,i,a){this.indented=e,this.column=t,this.type=n,this.prev=i,this.info=a,r!=null&&(this.align=r)}function v(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0}function y(e,t,n,r,i){var a=e.cc;for(S.state=e,S.stream=i,S.marked=null,S.cc=a,e.lexical.hasOwnProperty(`align`)||(e.lexical.align=!0);;)if((a.length?a.pop():N)(n,r)){for(;a.length&&a[a.length-1].lex;)a.pop()();return S.marked?S.marked:n==`variable`&&v(e,r)?`variableName.local`:n==`variable`&&b(e,r)?`variableName.special`:t}}function b(e,t){if(/[a-z]/.test(t.charAt(0)))return!1;for(var n=e.importedtypes.length,r=0;r<n;r++)if(e.importedtypes[r]==t)return!0}function x(e){for(var t=S.state,n=t.importedtypes;n;n=n.next)if(n.name==e)return;t.importedtypes={name:e,next:t.importedtypes}}var S={state:null,column:null,marked:null,cc:null};function C(){for(var e=arguments.length-1;e>=0;e--)S.cc.push(arguments[e])}function w(){return C.apply(null,arguments),!0}function T(e,t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}function E(e){var t=S.state;if(t.context){if(S.marked=`def`,T(e,t.localVars))return;t.localVars={name:e,next:t.localVars}}else if(t.globalVars){if(T(e,t.globalVars))return;t.globalVars={name:e,next:t.globalVars}}}var D={name:`this`,next:null};function O(){S.state.context||(S.state.localVars=D),S.state.context={prev:S.state.context,vars:S.state.localVars}}function k(){S.state.localVars=S.state.context.vars,S.state.context=S.state.context.prev}k.lex=!0;function A(e,t){var n=function(){var n=S.state;n.lexical=new _(n.indented,S.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function j(){var e=S.state;e.lexical.prev&&(e.lexical.type==`)`&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}j.lex=!0;function M(e){function t(n){return n==e?w():e==`;`?C():w(t)}return t}function N(e){return e==`@`?w(R):e==`var`?w(A(`vardef`),q,M(`;`),j):e==`keyword a`?w(A(`form`),P,N,j):e==`keyword b`?w(A(`form`),N,j):e==`{`?w(A(`}`),O,K,j,k):e==`;`?w():e==`attribute`?w(L):e==`function`?w(Z):e==`for`?w(A(`form`),M(`(`),A(`)`),Y,M(`)`),j,N,j):e==`variable`?w(A(`stat`),H):e==`switch`?w(A(`form`),P,A(`}`,`switch`),M(`{`),K,j,j):e==`case`?w(P,M(`:`)):e
|
|
1
|
+
function e(e){return{type:e,style:`keyword`}}var t=e(`keyword a`),n=e(`keyword b`),r=e(`keyword c`),i=e(`operator`),a={type:`atom`,style:`atom`},o={type:`attribute`,style:`attribute`},s=e(`typedef`),c={if:t,while:t,else:n,do:n,try:n,return:r,break:r,continue:r,new:r,throw:r,var:e(`var`),inline:o,static:o,using:e(`import`),public:o,private:o,cast:e(`cast`),import:e(`import`),macro:e(`macro`),function:e(`function`),catch:e(`catch`),untyped:e(`untyped`),callback:e(`cb`),for:e(`for`),switch:e(`switch`),case:e(`case`),default:e(`default`),in:i,never:e(`property_access`),trace:e(`trace`),class:s,abstract:s,enum:s,interface:s,typedef:s,extends:s,implements:s,dynamic:s,true:a,false:a,null:a},l=/[+\-*&%=<>!?|]/;function u(e,t,n){return t.tokenize=n,n(e,t)}function d(e,t){for(var n=!1,r;(r=e.next())!=null;){if(r==t&&!n)return!0;n=!n&&r==`\\`}}var s,f;function p(e,t,n){return s=e,f=n,t}function m(e,t){var n=e.next();if(n==`"`||n==`'`)return u(e,t,ee(n));if(/[\[\]{}\(\),;\:\.]/.test(n))return p(n);if(n==`0`&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),p(`number`,`number`);if(/\d/.test(n)||n==`-`&&e.eat(/\d/))return e.match(/^\d*(?:\.\d*(?!\.))?(?:[eE][+\-]?\d+)?/),p(`number`,`number`);if(t.reAllowed&&n==`~`&&e.eat(/\//))return d(e,`/`),e.eatWhile(/[gimsu]/),p(`regexp`,`string.special`);if(n==`/`)return e.eat(`*`)?u(e,t,h):e.eat(`/`)?(e.skipToEnd(),p(`comment`,`comment`)):(e.eatWhile(l),p(`operator`,null,e.current()));if(n==`#`)return e.skipToEnd(),p(`conditional`,`meta`);if(n==`@`)return e.eat(/:/),e.eatWhile(/[\w_]/),p(`metadata`,`meta`);if(l.test(n))return e.eatWhile(l),p(`operator`,null,e.current());var r;if(/[A-Z]/.test(n))return e.eatWhile(/[\w_<>]/),r=e.current(),p(`type`,`type`,r);e.eatWhile(/[\w_]/);var r=e.current(),i=c.propertyIsEnumerable(r)&&c[r];return i&&t.kwAllowed?p(i.type,i.style,r):p(`variable`,`variable`,r)}function ee(e){return function(t,n){return d(t,e)&&(n.tokenize=m),p(`string`,`string`)}}function h(e,t){for(var n=!1,r;r=e.next();){if(r==`/`&&n){t.tokenize=m;break}n=r==`*`}return p(`comment`,`comment`)}var g={atom:!0,number:!0,variable:!0,string:!0,regexp:!0};function _(e,t,n,r,i,a){this.indented=e,this.column=t,this.type=n,this.prev=i,this.info=a,r!=null&&(this.align=r)}function v(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0}function y(e,t,n,r,i){var a=e.cc;for(S.state=e,S.stream=i,S.marked=null,S.cc=a,e.lexical.hasOwnProperty(`align`)||(e.lexical.align=!0);;)if((a.length?a.pop():N)(n,r)){for(;a.length&&a[a.length-1].lex;)a.pop()();return S.marked?S.marked:n==`variable`&&v(e,r)?`variableName.local`:n==`variable`&&b(e,r)?`variableName.special`:t}}function b(e,t){if(/[a-z]/.test(t.charAt(0)))return!1;for(var n=e.importedtypes.length,r=0;r<n;r++)if(e.importedtypes[r]==t)return!0}function x(e){for(var t=S.state,n=t.importedtypes;n;n=n.next)if(n.name==e)return;t.importedtypes={name:e,next:t.importedtypes}}var S={state:null,column:null,marked:null,cc:null};function C(){for(var e=arguments.length-1;e>=0;e--)S.cc.push(arguments[e])}function w(){return C.apply(null,arguments),!0}function T(e,t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}function E(e){var t=S.state;if(t.context){if(S.marked=`def`,T(e,t.localVars))return;t.localVars={name:e,next:t.localVars}}else if(t.globalVars){if(T(e,t.globalVars))return;t.globalVars={name:e,next:t.globalVars}}}var D={name:`this`,next:null};function O(){S.state.context||(S.state.localVars=D),S.state.context={prev:S.state.context,vars:S.state.localVars}}function k(){S.state.localVars=S.state.context.vars,S.state.context=S.state.context.prev}k.lex=!0;function A(e,t){var n=function(){var n=S.state;n.lexical=new _(n.indented,S.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function j(){var e=S.state;e.lexical.prev&&(e.lexical.type==`)`&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}j.lex=!0;function M(e){function t(n){return n==e?w():e==`;`?C():w(t)}return t}function N(e){return e==`@`?w(R):e==`var`?w(A(`vardef`),q,M(`;`),j):e==`keyword a`?w(A(`form`),P,N,j):e==`keyword b`?w(A(`form`),N,j):e==`{`?w(A(`}`),O,K,j,k):e==`;`?w():e==`attribute`?w(L):e==`function`?w(Z):e==`for`?w(A(`form`),M(`(`),A(`)`),Y,M(`)`),j,N,j):e==`variable`?w(A(`stat`),H):e==`switch`?w(A(`form`),P,A(`}`,`switch`),M(`{`),K,j,j):e==`case`?w(P,M(`:`)):e=="default"?w(M(`:`)):e==`catch`?w(A(`form`),O,M(`(`),$,M(`)`),N,j,k):e==`import`?w(B,M(`;`)):e==`typedef`?w(V):C(A(`stat`),P,M(`;`),j)}function P(e){return g.hasOwnProperty(e)||e==`type`?w(I):e==`function`?w(Z):e==`keyword c`?w(F):e==`(`?w(A(`)`),F,M(`)`),j,I):e==`operator`?w(P):e==`[`?w(A(`]`),G(F,`]`),j,I):e==`{`?w(A(`}`),G(W,`}`),j,I):w()}function F(e){return e.match(/[;\}\)\],]/)?C():C(P)}function I(e,t){if(e==`operator`&&/\+\+|--/.test(t))return w(I);if(e==`operator`||e==`:`)return w(P);if(e!=`;`){if(e==`(`)return w(A(`)`),G(P,`)`),j,I);if(e==`.`)return w(U,I);if(e==`[`)return w(A(`]`),P,M(`]`),j,I)}}function L(e){if(e==`attribute`)return w(L);if(e==`function`)return w(Z);if(e==`var`)return w(q)}function R(e){if(e==`:`||e==`variable`)return w(R);if(e==`(`)return w(A(`)`),G(z,`)`),j,N)}function z(e){if(e==`variable`)return w()}function B(e,t){if(e==`variable`&&/[A-Z]/.test(t.charAt(0)))return x(t),w();if(e==`variable`||e==`property`||e==`.`||t==`*`)return w(B)}function V(e,t){if(e==`variable`&&/[A-Z]/.test(t.charAt(0)))return x(t),w();if(e==`type`&&/[A-Z]/.test(t.charAt(0)))return w()}function H(e){return e==`:`?w(j,N):C(I,M(`;`),j)}function U(e){if(e==`variable`)return S.marked=`property`,w()}function W(e){if(e==`variable`&&(S.marked=`property`),g.hasOwnProperty(e))return w(M(`:`),P)}function G(e,t){function n(r){return r==`,`?w(e,n):r==t?w():w(M(t))}return function(r){return r==t?w():C(e,n)}}function K(e){return e==`}`?w():C(N,K)}function q(e,t){return e==`variable`?(E(t),w(Q,J)):w()}function J(e,t){if(t==`=`)return w(P,J);if(e==`,`)return w(q)}function Y(e,t){return e==`variable`?(E(t),w(X,P)):C()}function X(e,t){if(t==`in`)return w()}function Z(e,t){if(e==`variable`||e==`type`)return E(t),w(Z);if(t==`new`)return w(Z);if(e==`(`)return w(A(`)`),O,G($,`)`),j,Q,N,k)}function Q(e){if(e==`:`)return w(te)}function te(e){if(e==`type`||e==`variable`)return w();if(e==`{`)return w(A(`}`),G(ne,`}`),j)}function ne(e){if(e==`variable`)return w(Q)}function $(e,t){if(e==`variable`)return E(t),w(Q)}var re={name:`haxe`,startState:function(e){return{tokenize:m,reAllowed:!0,kwAllowed:!0,cc:[],lexical:new _(-e,0,`block`,!1),importedtypes:[`Int`,`Float`,`String`,`Void`,`Std`,`Bool`,`Dynamic`,`Array`],context:null,indented:0}},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty(`align`)||(t.lexical.align=!1),t.indented=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);return s==`comment`?n:(t.reAllowed=!!(s==`operator`||s==`keyword c`||s.match(/^[\[{}\(,;:]$/)),t.kwAllowed=s!=`.`,y(t,n,s,f,e))},indent:function(e,t,n){if(e.tokenize!=m)return 0;var r=t&&t.charAt(0),i=e.lexical;i.type==`stat`&&r==`}`&&(i=i.prev);var a=i.type,o=r==a;return a==`vardef`?i.indented+4:a==`form`&&r==`{`?i.indented:a==`stat`||a==`form`?i.indented+n.unit:i.info==`switch`&&!o?i.indented+(/^(?:case|default)\b/.test(t)?n.unit:2*n.unit):i.align?i.column+ +!o:i.indented+(o?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:`//`,block:{open:`/*`,close:`*/`}}}},ie={name:`hxml`,startState:function(){return{define:!1,inString:!1}},token:function(e,t){var n=e.peek(),r=e.sol();if(n==`#`)return e.skipToEnd(),`comment`;if(r&&n==`-`){var i=`variable-2`;return e.eat(/-/),e.peek()==`-`&&(e.eat(/-/),i=`keyword a`),e.peek()==`D`&&(e.eat(/[D]/),i=`keyword c`,t.define=!0),e.eatWhile(/[A-Z]/i),i}var n=e.peek();return t.inString==0&&n==`'`&&(t.inString=!0,e.next()),t.inString==1?(e.skipTo(`'`)||e.skipToEnd(),e.peek()==`'`&&(e.next(),t.inString=!1),`string`):(e.next(),null)},languageData:{commentTokens:{line:`#`}}};export{re as haxe,ie as hxml};
|