@xwiki/cristal-electron-renderer 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/dist/AttachmentPreview-vtQuLZ6k.js +2 -0
- package/dist/{AttachmentPreview-BfPaTXNQ.js.map → AttachmentPreview-vtQuLZ6k.js.map} +1 -1
- package/dist/DeletePage-D25T9Jr6.js +2 -0
- package/dist/DeletePage-D25T9Jr6.js.map +1 -0
- package/dist/GitHubLoginMenu-ZQ535kXa.js +2 -0
- package/dist/GitHubLoginMenu-ZQ535kXa.js.map +1 -0
- package/dist/LoggedInMenu-BpTwAslk.js +2 -0
- package/dist/{LoggedInMenu-De270UsI.js.map → LoggedInMenu-BpTwAslk.js.map} +1 -1
- package/dist/LoginMenu-CfOVFX_X.js +2 -0
- package/dist/{LoginMenu-gJnIbO1t.js.map → LoginMenu-CfOVFX_X.js.map} +1 -1
- package/dist/MovePage-BXPVNY7Y.css +1 -0
- package/dist/MovePage-CPsbagxH.js +2 -0
- package/dist/MovePage-CPsbagxH.js.map +1 -0
- package/dist/RenamePage-Dg5hD7EE.js +2 -0
- package/dist/RenamePage-Dg5hD7EE.js.map +1 -0
- package/dist/c-config-menu-BSwxmXYu.js +2 -0
- package/dist/c-config-menu-BSwxmXYu.js.map +1 -0
- package/dist/c-edit-tiptap-B1ikvFGv.js +140 -0
- package/dist/c-edit-tiptap-B1ikvFGv.js.map +1 -0
- package/dist/c-edit-tiptap-Bmz3e05U.css +1 -0
- package/dist/{chunk.ESN5H7RI-CSFscQR1.js → chunk.36GF67GF-CvI5PJMM.js} +4 -4
- package/dist/{chunk.ESN5H7RI-CSFscQR1.js.map → chunk.36GF67GF-CvI5PJMM.js.map} +1 -1
- package/dist/{chunk.OV3FWA7A-BjZtoeOU.js → chunk.3LKW2IFA-5fn0fpam.js} +4 -4
- package/dist/chunk.3LKW2IFA-5fn0fpam.js.map +1 -0
- package/dist/{chunk.3RPBFEDE-DMs14zrP.js → chunk.3RPBFEDE-Cq1HR_FW.js} +2 -2
- package/dist/{chunk.3RPBFEDE-DMs14zrP.js.map → chunk.3RPBFEDE-Cq1HR_FW.js.map} +1 -1
- package/dist/{chunk.5YPURQKE-DlysehF0.js → chunk.4GJTAPTW-bJz93YV-.js} +20 -20
- package/dist/chunk.4GJTAPTW-bJz93YV-.js.map +1 -0
- package/dist/{chunk.EEWEM62H-B2sOs5aT.js → chunk.5YJXMEFT-BQoapBm8.js} +2 -2
- package/dist/{chunk.EEWEM62H-B2sOs5aT.js.map → chunk.5YJXMEFT-BQoapBm8.js.map} +1 -1
- package/dist/chunk.6CTB5ZDJ-Bnlr1xQb.js +2 -0
- package/dist/{chunk.6CTB5ZDJ-9Su7bEUQ.js.map → chunk.6CTB5ZDJ-Bnlr1xQb.js.map} +1 -1
- package/dist/{chunk.DLKOLJ5T-5mt_fAJR.js → chunk.AHFQSUH3-Bljx1OCt.js} +2 -2
- package/dist/{chunk.DLKOLJ5T-5mt_fAJR.js.map → chunk.AHFQSUH3-Bljx1OCt.js.map} +1 -1
- package/dist/chunk.AJ3ENQ5C-HabDYUMV.js +2 -0
- package/dist/{chunk.AJ3ENQ5C-ChMzF7VD.js.map → chunk.AJ3ENQ5C-HabDYUMV.js.map} +1 -1
- package/dist/chunk.B4BZKR24-B0iVuGLD.js.map +1 -1
- package/dist/{chunk.ZU7BPP6T-DorV2hBX.js → chunk.BWPPYEQO-DnmuNAT8.js} +2 -2
- package/dist/{chunk.ZU7BPP6T-DorV2hBX.js.map → chunk.BWPPYEQO-DnmuNAT8.js.map} +1 -1
- package/dist/chunk.GMYPQTFK-DYWExSVl.js +2 -0
- package/dist/{chunk.GMYPQTFK-CNw99J62.js.map → chunk.GMYPQTFK-DYWExSVl.js.map} +1 -1
- package/dist/{chunk.MMEGYRNV-DEqCotBz.js → chunk.HLJ2JR6P-DTNjnrFI.js} +14 -14
- package/dist/{chunk.MMEGYRNV-DEqCotBz.js.map → chunk.HLJ2JR6P-DTNjnrFI.js.map} +1 -1
- package/dist/chunk.J2YOIYDS-C7C2Vjvu.js +2 -0
- package/dist/chunk.J2YOIYDS-C7C2Vjvu.js.map +1 -0
- package/dist/{chunk.2IP2T4OH-BR9mwVvw.js → chunk.JGMXX6EB-9YPV53Va.js} +4 -4
- package/dist/{chunk.2IP2T4OH-BR9mwVvw.js.map → chunk.JGMXX6EB-9YPV53Va.js.map} +1 -1
- package/dist/{chunk.S6RDAMK3-D9X1qKQM.js → chunk.JYMZWSP5-D_da8p9Y.js} +2 -2
- package/dist/{chunk.S6RDAMK3-D9X1qKQM.js.map → chunk.JYMZWSP5-D_da8p9Y.js.map} +1 -1
- package/dist/{chunk.SDBB5L2R-NYAMwAkQ.js → chunk.K7OY4NWI-BhgCPsKg.js} +5 -5
- package/dist/{chunk.SDBB5L2R-NYAMwAkQ.js.map → chunk.K7OY4NWI-BhgCPsKg.js.map} +1 -1
- package/dist/{chunk.AXM6YCRZ-cZAtefcR.js → chunk.M343NXS3-Cb-pYV8M.js} +2 -2
- package/dist/{chunk.AXM6YCRZ-cZAtefcR.js.map → chunk.M343NXS3-Cb-pYV8M.js.map} +1 -1
- package/dist/{chunk.YB3JVLEN-DKE2HrAb.js → chunk.MK453YAN-CjtkEXmt.js} +2 -2
- package/dist/{chunk.YB3JVLEN-DKE2HrAb.js.map → chunk.MK453YAN-CjtkEXmt.js.map} +1 -1
- package/dist/{chunk.ZCTQYYI7-BOceMcE_.js → chunk.NPC6ZJIS-B1YRSH1V.js} +2 -2
- package/dist/{chunk.ZCTQYYI7-BOceMcE_.js.map → chunk.NPC6ZJIS-B1YRSH1V.js.map} +1 -1
- package/dist/chunk.NYIIDP5N-AHr3eTN0.js.map +1 -1
- package/dist/chunk.PFOQ5QRR-BjuxZHql.js +38 -0
- package/dist/{chunk.EMG3ZSPT-Bg6Zl4Dj.js.map → chunk.PFOQ5QRR-BjuxZHql.js.map} +1 -1
- package/dist/{chunk.WKBPPP3T-CRNOG64L.js → chunk.QBZCPJN3-gIlLDD0y.js} +4 -4
- package/dist/chunk.QBZCPJN3-gIlLDD0y.js.map +1 -0
- package/dist/chunk.RWUUFNUL-BJhNq5wM.js.map +1 -1
- package/dist/{chunk.RJUO2BMU-CgDODUQn.js → chunk.TCCWRNOF-DGgKhJIV.js} +1106 -1106
- package/dist/chunk.TCCWRNOF-DGgKhJIV.js.map +1 -0
- package/dist/{chunk.KJWYNLDZ-B5eqrH2t.js → chunk.UG6RICOR-CUaimTD3.js} +16 -16
- package/dist/{chunk.KJWYNLDZ-B5eqrH2t.js.map → chunk.UG6RICOR-CUaimTD3.js.map} +1 -1
- package/dist/chunk.ZD2IWFWF-DJNPVtfg.js +2 -0
- package/dist/chunk.ZD2IWFWF-DJNPVtfg.js.map +1 -0
- package/dist/{chunk.OQXPL73S-ZjnwwV8Q.js → chunk.ZH2AND3P-Wo1OhMbc.js} +9 -9
- package/dist/{chunk.OQXPL73S-ZjnwwV8Q.js.map → chunk.ZH2AND3P-Wo1OhMbc.js.map} +1 -1
- package/dist/class-map-C-4D-HnZ.js +10 -0
- package/dist/{class-map-CuBMlKx8.js.map → class-map-C-4D-HnZ.js.map} +1 -1
- package/dist/designSystemLoader-Ddr8BMQm.js +2 -0
- package/dist/designSystemLoader-Ddr8BMQm.js.map +1 -0
- package/dist/github-BXpO1TEC.js +3 -0
- package/dist/github-BXpO1TEC.js.map +1 -0
- package/dist/{if-defined-D0ICPnDI.js → if-defined-CKljLRM3.js} +2 -2
- package/dist/{if-defined-D0ICPnDI.js.map → if-defined-CKljLRM3.js.map} +1 -1
- package/dist/index-CR38Q38C.js +162 -0
- package/dist/index-CR38Q38C.js.map +1 -0
- package/dist/index-D9qbIeW4.css +5 -0
- package/dist/index.html +2 -2
- package/dist/{live-xoIZYypI.js → live-C4bQG6UU.js} +3 -3
- package/dist/{live-xoIZYypI.js.map → live-C4bQG6UU.js.map} +1 -1
- package/dist/nextcloud-C9W2Qel4.js +30 -0
- package/dist/nextcloud-C9W2Qel4.js.map +1 -0
- package/dist/offline-0eA-uR80.js +8 -0
- package/dist/offline-0eA-uR80.js.map +1 -0
- package/dist/query-D1pSaKds.js +10 -0
- package/dist/{query-DAIS6qJ0.js.map → query-D1pSaKds.js.map} +1 -1
- package/dist/shoelace-DhGV76BE.js +3 -0
- package/dist/shoelace-DhGV76BE.js.map +1 -0
- package/dist/static-CncqcQ7P.js +7 -0
- package/dist/{static-BvzzkOmh.js.map → static-CncqcQ7P.js.map} +1 -1
- package/dist/staticBuild-Dbrq35tK.js +2 -0
- package/dist/staticBuild-Dbrq35tK.js.map +1 -0
- package/dist/translations-Ds9OkLNv.js +2 -0
- package/dist/{translations-D7G69x8c.js.map → translations-Ds9OkLNv.js.map} +1 -1
- package/dist/translations-QKf4UgG2.js +2 -0
- package/dist/{translations-DuHgS1cM.js.map → translations-QKf4UgG2.js.map} +1 -1
- package/dist/vuetify-ClA6x5Us.js +7 -0
- package/dist/vuetify-ClA6x5Us.js.map +1 -0
- package/dist/vuetify-TYzORzNs.css +1 -0
- package/dist/worker-R9zd7uJ7.js +64 -0
- package/dist/worker-R9zd7uJ7.js.map +1 -0
- package/dist/x-alert-DeIgcf_L.js +2 -0
- package/dist/{x-alert-BFVdMzU2.js.map → x-alert-DeIgcf_L.js.map} +1 -1
- package/dist/x-alert-DfLayJOF.js +2 -0
- package/dist/x-alert-DfLayJOF.js.map +1 -0
- package/dist/x-avatar-0fE-Jtps.js +2 -0
- package/dist/x-avatar-0fE-Jtps.js.map +1 -0
- package/dist/x-avatar-DLXcZvyo.js +2 -0
- package/dist/x-avatar-DLXcZvyo.js.map +1 -0
- package/dist/x-breadcrumb-Bk-oeZBJ.js +2 -0
- package/dist/x-breadcrumb-Bk-oeZBJ.js.map +1 -0
- package/dist/x-breadcrumb-D4MLYrYG.js +2 -0
- package/dist/{x-breadcrumb-C8V8gpEv.js.map → x-breadcrumb-D4MLYrYG.js.map} +1 -1
- package/dist/x-btn-BJpLiIEk.js +2 -0
- package/dist/x-btn-BJpLiIEk.js.map +1 -0
- package/dist/x-btn-BzbhvqjW.js +2 -0
- package/dist/{x-btn-ZXOOa12R.js.map → x-btn-BzbhvqjW.js.map} +1 -1
- package/dist/x-card-D0H-2Unl.js +2 -0
- package/dist/x-card-D0H-2Unl.js.map +1 -0
- package/dist/x-card-DgO8Ra4W.js +2 -0
- package/dist/{x-card-RxuhFtev.js.map → x-card-DgO8Ra4W.js.map} +1 -1
- package/dist/x-checkbox-Do4FaPAI.js +2 -0
- package/dist/{x-checkbox-OFu33jqO.js.map → x-checkbox-Do4FaPAI.js.map} +1 -1
- package/dist/x-checkbox-qT_S296A.js +2 -0
- package/dist/{x-checkbox-H3jUVzap.js.map → x-checkbox-qT_S296A.js.map} +1 -1
- package/dist/x-col-Bk6QRmS6.js +2 -0
- package/dist/{x-col-dZKvCLiJ.js.map → x-col-Bk6QRmS6.js.map} +1 -1
- package/dist/x-container-H0tXmY-s.js +2 -0
- package/dist/{x-container-bDko5kX-.js.map → x-container-H0tXmY-s.js.map} +1 -1
- package/dist/x-dialog-DIYYOQ91.js +2 -0
- package/dist/x-dialog-DIYYOQ91.js.map +1 -0
- package/dist/x-dialog-Dvo-ZmIP.js +2 -0
- package/dist/{x-dialog-C0lDWIPJ.js.map → x-dialog-Dvo-ZmIP.js.map} +1 -1
- package/dist/x-divider-BOTERYSC.js +2 -0
- package/dist/x-divider-BOTERYSC.js.map +1 -0
- package/dist/x-divider-Bj5EahBY.js +2 -0
- package/dist/x-divider-Bj5EahBY.js.map +1 -0
- package/dist/x-file-input-BZcr_7Qv.js +2 -0
- package/dist/{x-file-input-B8Wn2Q9R.js.map → x-file-input-BZcr_7Qv.js.map} +1 -1
- package/dist/x-file-input-DaT5UwLb.js +2 -0
- package/dist/{x-file-input-DU-2xelt.js.map → x-file-input-DaT5UwLb.js.map} +1 -1
- package/dist/x-form-CdIYILLZ.js +2 -0
- package/dist/x-form-CdIYILLZ.js.map +1 -0
- package/dist/x-form-CssZdDN3.js +2 -0
- package/dist/x-form-CssZdDN3.js.map +1 -0
- package/dist/x-form-cGvd3JYY.css +1 -0
- package/dist/x-form-d3gBAAbP.css +1 -0
- package/dist/x-img-17gynpBE.js +2 -0
- package/dist/{x-img-Cp8W2ZD8.js.map → x-img-17gynpBE.js.map} +1 -1
- package/dist/x-img-C9Evwf4N.js +2 -0
- package/dist/{x-img-BjRHHgUy.js.map → x-img-C9Evwf4N.js.map} +1 -1
- package/dist/x-load-A8mYr9Sh.js +2 -0
- package/dist/x-load-A8mYr9Sh.js.map +1 -0
- package/dist/{x-load-DL13QR0n.css → x-load-CeKWt6aG.css} +1 -1
- package/dist/x-load-DClOf0Qv.js +2 -0
- package/dist/x-load-DClOf0Qv.js.map +1 -0
- package/dist/x-menu-CSqv8Crh.js +2 -0
- package/dist/x-menu-CSqv8Crh.js.map +1 -0
- package/dist/x-menu-CWg1Er6-.js +2 -0
- package/dist/{x-menu-B_GXC56P.js.map → x-menu-CWg1Er6-.js.map} +1 -1
- package/dist/x-menu-item-Bi2TVx1W.js +2 -0
- package/dist/x-menu-item-Bi2TVx1W.js.map +1 -0
- package/dist/x-menu-item-CUUOsOii.js +2 -0
- package/dist/x-menu-item-CUUOsOii.js.map +1 -0
- package/dist/x-menu-label-CEn7_OuF.js +2 -0
- package/dist/x-menu-label-CEn7_OuF.js.map +1 -0
- package/dist/x-menu-label-CdT-WjAp.js +2 -0
- package/dist/{x-menu-label-BVqG-Hs1.js.map → x-menu-label-CdT-WjAp.js.map} +1 -1
- package/dist/x-navigation-tree-BfvAdDeS.css +1 -0
- package/dist/x-navigation-tree-D_52YXBK.js +2 -0
- package/dist/x-navigation-tree-D_52YXBK.js.map +1 -0
- package/dist/x-navigation-tree-UndEZv87.js +2 -0
- package/dist/{x-navigation-tree-C1aY4FHE.js.map → x-navigation-tree-UndEZv87.js.map} +1 -1
- package/dist/x-navigation-tree-select-Cl4cqCCA.js +2 -0
- package/dist/x-navigation-tree-select-Cl4cqCCA.js.map +1 -0
- package/dist/x-navigation-tree-select-DM9cwpQl.css +1 -0
- package/dist/x-navigation-tree-select-DskMbL7i.js +2 -0
- package/dist/x-navigation-tree-select-DskMbL7i.js.map +1 -0
- package/dist/x-navigation-tree-select-P3i8F13w.css +1 -0
- package/dist/x-row-Bk6QRmS6.js +2 -0
- package/dist/{x-row-dZKvCLiJ.js.map → x-row-Bk6QRmS6.js.map} +1 -1
- package/dist/x-search-DHlOpeup.js +2 -0
- package/dist/{x-search-DOuUc-Y6.js.map → x-search-DHlOpeup.js.map} +1 -1
- package/dist/x-search-vYapupWf.js +2 -0
- package/dist/x-search-vYapupWf.js.map +1 -0
- package/dist/x-tab-BlPx8jGd.js +2 -0
- package/dist/x-tab-BlPx8jGd.js.map +1 -0
- package/dist/x-tab-D-dUaXgF.js +2 -0
- package/dist/x-tab-D-dUaXgF.js.map +1 -0
- package/dist/x-tab-group-CISIMzqW.js +2 -0
- package/dist/{x-tab-group-Cv5IQy28.js.map → x-tab-group-CISIMzqW.js.map} +1 -1
- package/dist/x-tab-group-CPjNl-8i.js +2 -0
- package/dist/{x-tab-group-yYCyTAyY.js.map → x-tab-group-CPjNl-8i.js.map} +1 -1
- package/dist/x-tab-panel-61LrC6sy.js +2 -0
- package/dist/x-tab-panel-61LrC6sy.js.map +1 -0
- package/dist/x-tab-panel-CP4YzpbM.js +2 -0
- package/dist/x-tab-panel-CP4YzpbM.js.map +1 -0
- package/dist/x-text-field-BGKMgHsf.js +2 -0
- package/dist/{x-text-field-B8YnSjUS.js.map → x-text-field-BGKMgHsf.js.map} +1 -1
- package/dist/x-text-field-C79oSnqR.js +2 -0
- package/dist/x-text-field-C79oSnqR.js.map +1 -0
- package/dist/xwiki-CFLPrZGU.js +3 -0
- package/dist/xwiki-CFLPrZGU.js.map +1 -0
- package/package.json +16 -15
- package/src/index.ts +5 -3
- package/dist/AttachmentPreview-BfPaTXNQ.js +0 -2
- package/dist/DeletePage-X5WEHaKC.js +0 -2
- package/dist/DeletePage-X5WEHaKC.js.map +0 -1
- package/dist/LoggedInMenu-De270UsI.js +0 -2
- package/dist/LoginMenu-gJnIbO1t.js +0 -2
- package/dist/MovePage-DGy2OMCR.css +0 -1
- package/dist/MovePage-DvmYZ3S4.js +0 -2
- package/dist/MovePage-DvmYZ3S4.js.map +0 -1
- package/dist/RenamePage-CJL_54bc.js +0 -2
- package/dist/RenamePage-CJL_54bc.js.map +0 -1
- package/dist/c-config-menu-2LzBtOT0.js +0 -2
- package/dist/c-config-menu-2LzBtOT0.js.map +0 -1
- package/dist/chunk.5YPURQKE-DlysehF0.js.map +0 -1
- package/dist/chunk.6CTB5ZDJ-9Su7bEUQ.js +0 -2
- package/dist/chunk.AJ3ENQ5C-ChMzF7VD.js +0 -2
- package/dist/chunk.EMG3ZSPT-Bg6Zl4Dj.js +0 -38
- package/dist/chunk.GKEBKPRZ-DjR0I6EJ.js +0 -2
- package/dist/chunk.GKEBKPRZ-DjR0I6EJ.js.map +0 -1
- package/dist/chunk.GMYPQTFK-CNw99J62.js +0 -2
- package/dist/chunk.OV3FWA7A-BjZtoeOU.js.map +0 -1
- package/dist/chunk.RJUO2BMU-CgDODUQn.js.map +0 -1
- package/dist/chunk.TFITRWI4-BGRXdopi.js +0 -2
- package/dist/chunk.TFITRWI4-BGRXdopi.js.map +0 -1
- package/dist/chunk.WKBPPP3T-CRNOG64L.js.map +0 -1
- package/dist/class-map-CuBMlKx8.js +0 -10
- package/dist/index-BTM2B_5t.js +0 -362
- package/dist/index-BTM2B_5t.js.map +0 -1
- package/dist/index-CgA05LGY.css +0 -5
- package/dist/materialdesignicons-webfont-B7mPwVP_.ttf +0 -0
- package/dist/materialdesignicons-webfont-CSr8KVlo.eot +0 -0
- package/dist/materialdesignicons-webfont-Dp5v-WZN.woff2 +0 -0
- package/dist/materialdesignicons-webfont-PXm3-2wK.woff +0 -0
- package/dist/query-DAIS6qJ0.js +0 -10
- package/dist/static-BvzzkOmh.js +0 -7
- package/dist/staticBuild-BlKzVhIA.js +0 -2
- package/dist/staticBuild-BlKzVhIA.js.map +0 -1
- package/dist/translations-D7G69x8c.js +0 -2
- package/dist/translations-DuHgS1cM.js +0 -2
- package/dist/worker-CkPZMi6_.js +0 -61
- package/dist/worker-CkPZMi6_.js.map +0 -1
- package/dist/x-alert-BFVdMzU2.js +0 -2
- package/dist/x-alert-BuQv203V.js +0 -2
- package/dist/x-alert-BuQv203V.js.map +0 -1
- package/dist/x-avatar-4Tw6gTH9.js +0 -2
- package/dist/x-avatar-4Tw6gTH9.js.map +0 -1
- package/dist/x-avatar-Bf91Olnj.js +0 -2
- package/dist/x-avatar-Bf91Olnj.js.map +0 -1
- package/dist/x-breadcrumb-C8V8gpEv.js +0 -2
- package/dist/x-breadcrumb-nc9I9_7h.js +0 -2
- package/dist/x-breadcrumb-nc9I9_7h.js.map +0 -1
- package/dist/x-btn-B_RP20IG.js +0 -2
- package/dist/x-btn-B_RP20IG.js.map +0 -1
- package/dist/x-btn-ZXOOa12R.js +0 -2
- package/dist/x-card-RxuhFtev.js +0 -2
- package/dist/x-card-wZTFOfvg.js +0 -2
- package/dist/x-card-wZTFOfvg.js.map +0 -1
- package/dist/x-checkbox-H3jUVzap.js +0 -2
- package/dist/x-checkbox-OFu33jqO.js +0 -2
- package/dist/x-col-dZKvCLiJ.js +0 -2
- package/dist/x-container-bDko5kX-.js +0 -2
- package/dist/x-dialog-Br6_T029.js +0 -2
- package/dist/x-dialog-Br6_T029.js.map +0 -1
- package/dist/x-dialog-C0lDWIPJ.js +0 -2
- package/dist/x-divider-BM4sn0GV.js +0 -2
- package/dist/x-divider-BM4sn0GV.js.map +0 -1
- package/dist/x-divider-CCoLWIHZ.js +0 -2
- package/dist/x-divider-CCoLWIHZ.js.map +0 -1
- package/dist/x-file-input-B8Wn2Q9R.js +0 -2
- package/dist/x-file-input-DU-2xelt.js +0 -2
- package/dist/x-form-BtcFP4NB.js +0 -2
- package/dist/x-form-BtcFP4NB.js.map +0 -1
- package/dist/x-form-Dt27GHNW.js +0 -2
- package/dist/x-form-Dt27GHNW.js.map +0 -1
- package/dist/x-img-BjRHHgUy.js +0 -2
- package/dist/x-img-Cp8W2ZD8.js +0 -2
- package/dist/x-load-C-G1nwLU.js +0 -2
- package/dist/x-load-C-G1nwLU.js.map +0 -1
- package/dist/x-load-NNSo7jOU.js +0 -2
- package/dist/x-load-NNSo7jOU.js.map +0 -1
- package/dist/x-menu-B_GXC56P.js +0 -2
- package/dist/x-menu-item-CnWoRD4d.js +0 -2
- package/dist/x-menu-item-CnWoRD4d.js.map +0 -1
- package/dist/x-menu-item-D4VUNNWf.js +0 -2
- package/dist/x-menu-item-D4VUNNWf.js.map +0 -1
- package/dist/x-menu-label-BVqG-Hs1.js +0 -2
- package/dist/x-menu-label-tL7oaVp4.js +0 -2
- package/dist/x-menu-label-tL7oaVp4.js.map +0 -1
- package/dist/x-menu-rwb63_rV.js +0 -2
- package/dist/x-menu-rwb63_rV.js.map +0 -1
- package/dist/x-navigation-tree-C1aY4FHE.js +0 -2
- package/dist/x-navigation-tree-CQJStGkb.js +0 -2
- package/dist/x-navigation-tree-CQJStGkb.js.map +0 -1
- package/dist/x-navigation-tree-RNgtO1Ui.css +0 -1
- package/dist/x-row-dZKvCLiJ.js +0 -2
- package/dist/x-search-DOuUc-Y6.js +0 -2
- package/dist/x-search-f_ENoixf.js +0 -2
- package/dist/x-search-f_ENoixf.js.map +0 -1
- package/dist/x-tab-BW0MJICs.js +0 -2
- package/dist/x-tab-BW0MJICs.js.map +0 -1
- package/dist/x-tab-DCR9Sc52.js +0 -2
- package/dist/x-tab-DCR9Sc52.js.map +0 -1
- package/dist/x-tab-group-Cv5IQy28.js +0 -2
- package/dist/x-tab-group-yYCyTAyY.js +0 -2
- package/dist/x-tab-panel-BGFIeg_1.js +0 -2
- package/dist/x-tab-panel-BGFIeg_1.js.map +0 -1
- package/dist/x-tab-panel-DGd1tZgP.js +0 -2
- package/dist/x-tab-panel-DGd1tZgP.js.map +0 -1
- package/dist/x-text-field-B8YnSjUS.js +0 -2
- package/dist/x-text-field-MLw93Gju.js +0 -2
- package/dist/x-text-field-MLw93Gju.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @xwiki/cristal-electron-renderer
|
|
2
2
|
|
|
3
|
+
## 0.15.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Cristal 0.15 Release
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
- @xwiki/cristal-hierarchy-filesystem@0.15.0
|
|
13
|
+
- @xwiki/cristal-model-reference-filesystem@0.15.0
|
|
14
|
+
- @xwiki/cristal-model-remote-url-filesystem-default@0.15.0
|
|
15
|
+
- @xwiki/cristal-navigation-tree-filesystem@0.15.0
|
|
16
|
+
- @xwiki/cristal-rename-filesystem@0.15.0
|
|
17
|
+
- @xwiki/cristal-electron-authentication-github-renderer@0.15.0
|
|
18
|
+
- @xwiki/cristal-electron-authentication-xwiki-renderer@0.15.0
|
|
19
|
+
- @xwiki/cristal-browser-electron@0.15.0
|
|
20
|
+
- @xwiki/cristal-configuration-electron-renderer@0.15.0
|
|
21
|
+
- @xwiki/cristal-link-suggest-filesystem@0.15.0
|
|
22
|
+
- @xwiki/cristal-electron-storage@0.15.0
|
|
23
|
+
- @xwiki/cristal-lib@0.15.0
|
|
24
|
+
|
|
3
25
|
## 0.14.0
|
|
4
26
|
|
|
5
27
|
### Minor Changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{h as v,ar as g,V as s,u as t,al as i,as as l,X as b,at as e,m as _,an as p,am as $,au as N,av as z,M as B,aw as A,f as D,d as F,w as I,ax as M,ay as j,az as E,aA as Q,Q as P,aB as R}from"./index-CR38Q38C.js";const S={"filePreview.noPreview.text":"No preview available","filePreview.video.text":"Download the {link} video."},x={en:S},T=v({__name:"NoPreview",setup(h){const{t:a}=g({messages:x});return(d,n)=>s(t(a)("No preview available"))}}),U=["src","alt"],X=v({__name:"ImageFilePreview",props:{attachment:{}},setup(h){return(a,d)=>(i(),l("img",{src:a.attachment.href,alt:a.attachment.name},null,8,U))}}),q={controls:""},G=["src","type"],H=["href"],J=v({__name:"VideoFilePreview",props:{attachment:{}},setup(h){return g({messages:x}),(a,d)=>{const n=b("i18n-t");return i(),l("video",q,[e("source",{src:a.attachment.href,type:a.attachment.mimetype},null,8,G),_(n,{keypath:"filePreview.video.text"},{link:p(()=>[e("a",{href:a.attachment.href},s(a.attachment.name),9,H)]),_:1})])}}}),K=v({__name:"FilePreview",props:{attachment:{}},setup(h){const a={image:{component:X,regex:/image\/.*/},video:{component:J,regex:/video\/.*/}};function d(n){for(const r in a){const{component:u,regex:f}=a[r];if(n.match(f))return u}return T}return(n,r)=>(i(),$(B(d(n.attachment.mimetype)),N(z({attachment:n.attachment})),null,16))}}),L={key:0},O={key:1,class:"dialog_content"},W={class:"attachment_view"},Y={class:"attachment_view_inner"},Z={class:"metadata"},ee={class:"label_description"},te={class:"label"},ae={class:"description"},se={key:0,class:"label_description"},ne={class:"label"},oe={class:"description"},ie={class:"label_description"},ce={class:"label"},le={class:"description"},re={class:"label_description"},_e={class:"label_description"},de={class:"label"},me={class:"description"},pe={class:"label_description"},ve={class:"label"},he={class:"description"},ue={class:"actions"},fe={class:"main_action"},we={class:"close_container"},be={key:2},ge={key:0},ye={key:1},ke=v({__name:"AttachmentPreview",setup(h){const{t:a}=g({messages:A}),n=D("cristal").getContainer().get("AttachmentPreview"),r=F(!1);I(()=>n.loading().value||n.attachment().value,m=>{m&&(r.value=!0)});function u(){r.value=!1}function f(){const m=c.value;m&&(window.location.href=m.href)}const c=n.attachment(),V=n.loading(),y=n.error();return(m,o)=>{const k=b("x-btn"),C=b("x-dialog");return i(),$(C,{modelValue:r.value,"onUpdate:modelValue":o[2]||(o[2]=w=>r.value=w),title:t(a)("attachment.preview.modal.title")},{activator:p(()=>o[3]||(o[3]=[e("span",{class:"x-dialog-attachment-preview-no-activator"},null,-1)])),default:p(()=>[t(V)?(i(),l("div",L,s(t(a)("attachment.preview.loading")),1)):t(c)?(i(),l("div",O,[e("div",W,[e("div",Y,[_(t(K),{attachment:t(c)},null,8,["attachment"])])]),e("div",Z,[e("div",ee,[e("div",null,[e("span",te,s(t(a)("attachment.preview.name.label")),1),e("span",ae,s(t(c).name),1)])]),t(c).author?(i(),l("div",se,[e("div",null,[e("span",ne,s(t(a)("attachment.preview.postedBy.label")),1),e("span",oe,[_(t(M),{user:t(c).author},null,8,["user"])])])])):j("",!0),e("div",ie,[e("div",null,[e("span",ce,s(t(a)("attachment.preview.date.label")),1),e("span",le,[_(t(E),{date:t(c).date},null,8,["date"])])])]),e("div",re,[e("div",_e,[e("div",null,[e("span",de,s(t(a)("attachment.preview.size.label")),1),e("span",me,[_(t(Q),{size:t(c).size},null,8,["size"])])])])]),e("div",pe,[e("div",null,[e("span",ve,s(t(a)("attachment.preview.type.label")),1),e("span",he,s(t(c).mimetype),1)]),o[4]||(o[4]=e("div",{class:"label_description"},null,-1))])]),e("div",ue,[e("div",fe,[_(k,{onClick:o[0]||(o[0]=w=>f())},{default:p(()=>[P(s(t(a)("attachment.preview.download.button")),1)]),_:1})]),e("div",we,[_(k,{class:"close",variant:"primary",onClick:o[1]||(o[1]=w=>u())},{default:p(()=>[P(s(t(a)("attachment.preview.close.button")),1)]),_:1})])])])):(i(),l("div",be,[t(y)?(i(),l("div",ge,s(t(y)),1)):(i(),l("div",ye,s(t(a)("attachment.preview.error.unknown")),1))]))]),_:1},8,["modelValue","title"])}}}),$e=R(ke,[["__scopeId","data-v-dea1fe6d"]]);export{$e as default};
|
|
2
|
+
//# sourceMappingURL=AttachmentPreview-vtQuLZ6k.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentPreview-BfPaTXNQ.js","sources":["../../../core/file-preview/file-preview-ui/src/translations.ts","../../../core/file-preview/file-preview-ui/src/vue/NoPreview.vue","../../../core/file-preview/file-preview-ui/src/vue/preview/VideoFilePreview.vue","../../../core/file-preview/file-preview-ui/src/vue/FilePreview.vue","../../../core/attachments/attachments-ui/src/vue/AttachmentPreview.vue"],"sourcesContent":["/*\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport en from \"../langs/translation-en.json\";\n\nconst translations: Record<string, Record<string, string>> = {\n en,\n};\nexport default translations;\n","<!--\nSee the LICENSE file distributed with this work for additional\ninformation regarding copyright ownership.\n\nThis is free software; you can redistribute it and/or modify it\nunder the terms of the GNU Lesser General Public License as\npublished by the Free Software Foundation; either version 2.1 of\nthe License, or (at your option) any later version.\n\nThis software is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this software; if not, write to the Free\nSoftware Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script setup lang=\"ts\">\nimport messages from \"../translations\";\nimport { useI18n } from \"vue-i18n\";\n\nconst { t } = useI18n({\n messages,\n});\n</script>\n\n<template>\n {{ t(\"No preview available\") }}\n</template>\n\n<style scoped></style>\n","<!--\nSee the LICENSE file distributed with this work for additional\ninformation regarding copyright ownership.\n\nThis is free software; you can redistribute it and/or modify it\nunder the terms of the GNU Lesser General Public License as\npublished by the Free Software Foundation; either version 2.1 of\nthe License, or (at your option) any later version.\n\nThis software is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this software; if not, write to the Free\nSoftware Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script setup lang=\"ts\">\nimport messages from \"../../translations\";\nimport { Attachment } from \"@xwiki/cristal-attachments-api\";\nimport { useI18n } from \"vue-i18n\";\n\ndefineProps<{ attachment: Attachment }>();\n\nuseI18n({\n messages,\n});\n</script>\n\n<template>\n <video controls>\n <source :src=\"attachment.href\" :type=\"attachment.mimetype\" />\n <i18n-t keypath=\"filePreview.video.text\">\n <template #link>\n <a :href=\"attachment.href\">{{ attachment.name }}</a>\n </template>\n </i18n-t>\n </video>\n</template>\n\n<style scoped></style>\n","<!--\nSee the LICENSE file distributed with this work for additional\ninformation regarding copyright ownership.\n\nThis is free software; you can redistribute it and/or modify it\nunder the terms of the GNU Lesser General Public License as\npublished by the Free Software Foundation; either version 2.1 of\nthe License, or (at your option) any later version.\n\nThis software is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this software; if not, write to the Free\nSoftware Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script setup lang=\"ts\">\nimport NoPreview from \"./NoPreview.vue\";\nimport ImageFilePreview from \"./preview/ImageFilePreview.vue\";\nimport VideoFilePreview from \"./preview/VideoFilePreview.vue\";\nimport { Attachment } from \"@xwiki/cristal-attachments-api\";\nimport type { Component } from \"vue\";\n\ndefineProps<{ attachment: Attachment }>();\ntype AttachmentsMap = {\n [key: string]: { component: Component; regex: RegExp };\n};\n// TODO: to be moved to a component base approach.\nconst attachmentsMap: AttachmentsMap = {\n image: { component: ImageFilePreview, regex: /image\\/.*/ },\n // TODO: pdf preview is currently disabled as it does not work on Chrome and Electron.\n // application: { component: ApplicationFilePreview, regex: /application\\/pdf/ },\n video: { component: VideoFilePreview, regex: /video\\/.*/ },\n};\n\nfunction resolve(mimetype: string): Component {\n for (const key in attachmentsMap) {\n const { component, regex } = attachmentsMap[key];\n if (mimetype.match(regex)) {\n return component;\n }\n }\n return NoPreview;\n}\n</script>\n\n<template>\n <component\n :is=\"resolve(attachment.mimetype)\"\n v-bind=\"{ attachment }\"\n ></component>\n</template>\n\n<style scoped></style>\n","<!--\nSee the LICENSE file distributed with this work for additional\ninformation regarding copyright ownership.\n\nThis is free software; you can redistribute it and/or modify it\nunder the terms of the GNU Lesser General Public License as\npublished by the Free Software Foundation; either version 2.1 of\nthe License, or (at your option) any later version.\n\nThis software is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this software; if not, write to the Free\nSoftware Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script setup lang=\"ts\">\nimport messages from \"../translations\";\nimport { Attachment, AttachmentPreview } from \"@xwiki/cristal-attachments-api\";\nimport { Date } from \"@xwiki/cristal-date-ui\";\nimport { FilePreview, FileSize } from \"@xwiki/cristal-file-preview-ui\";\nimport { User } from \"@xwiki/cristal-user-ui\";\nimport { Ref, inject, ref, watch } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport type { CristalApp } from \"@xwiki/cristal-api\";\n\nconst { t } = useI18n({\n messages,\n});\n\nconst cristal: CristalApp = inject<CristalApp>(\"cristal\")!;\n\nconst attachmentPreview = cristal\n .getContainer()\n .get<AttachmentPreview>(\"AttachmentPreview\")!;\n\nconst openedDialog: Ref<boolean> = ref(false);\n\nwatch(\n () => {\n // Wait for the preview to be loading or with a value before opening the\n // modal.\n return (\n attachmentPreview.loading().value || attachmentPreview.attachment().value\n );\n },\n (open) => {\n if (open) {\n openedDialog.value = true;\n }\n },\n);\n\nfunction close() {\n openedDialog.value = false;\n}\n\nfunction download() {\n // TODO: make sure this is also working with electron somehow\n const value = attachment.value;\n if (value) {\n window.location.href = value.href;\n }\n}\n\nconst attachment: Ref<Attachment | undefined> = attachmentPreview.attachment();\n\nconst loading = attachmentPreview.loading();\nconst error = attachmentPreview.error();\n</script>\n\n<template>\n <x-dialog v-model=\"openedDialog\" :title=\"t('attachment.preview.modal.title')\">\n <template #activator>\n <!-- No activator, the modal is opened when the user clicks on an attachment link. -->\n <span class=\"x-dialog-attachment-preview-no-activator\"></span>\n </template>\n <template #default>\n <div v-if=\"loading\">{{ t(\"attachment.preview.loading\") }}</div>\n <div v-else-if=\"attachment\" class=\"dialog_content\">\n <!-- TODO: abstract to allow preview based on the type -->\n <div class=\"attachment_view\">\n <div class=\"attachment_view_inner\">\n <file-preview :attachment=\"attachment\" />\n </div>\n </div>\n <div class=\"metadata\">\n <!-- TODO make a component with key:value -->\n <div class=\"label_description\">\n <div>\n <span class=\"label\">\n {{ t(\"attachment.preview.name.label\") }}\n </span>\n <span class=\"description\">{{ attachment.name }}</span>\n </div>\n </div>\n <div v-if=\"attachment.author\" class=\"label_description\">\n <div>\n <span class=\"label\">\n {{ t(\"attachment.preview.postedBy.label\") }}\n </span>\n <span class=\"description\">\n <user :user=\"attachment.author\" />\n </span>\n </div>\n </div>\n <div class=\"label_description\">\n <div>\n <span class=\"label\">\n {{ t(\"attachment.preview.date.label\") }}\n </span>\n <span class=\"description\">\n <date :date=\"attachment.date\" />\n </span>\n </div>\n </div>\n <div class=\"label_description\">\n <div class=\"label_description\">\n <div>\n <span class=\"label\">\n {{ t(\"attachment.preview.size.label\") }}\n </span>\n <span class=\"description\">\n <file-size :size=\"attachment.size\" />\n </span>\n </div>\n </div>\n </div>\n <div class=\"label_description\">\n <div>\n <span class=\"label\">\n {{ t(\"attachment.preview.type.label\") }}\n </span>\n <span class=\"description\">{{ attachment.mimetype }}</span>\n </div>\n <div class=\"label_description\"></div>\n </div>\n </div>\n <div class=\"actions\">\n <!-- TODO: top-right close button. -->\n <div class=\"main_action\">\n <x-btn @click=\"download()\">\n {{ t(\"attachment.preview.download.button\") }}\n </x-btn>\n </div>\n <div class=\"close_container\">\n <x-btn class=\"close\" variant=\"primary\" @click=\"close()\">\n {{ t(\"attachment.preview.close.button\") }}\n </x-btn>\n </div>\n </div>\n </div>\n <div v-else>\n <div v-if=\"error\">{{ error }}</div>\n <div v-else>\n {{ t(\"attachment.preview.error.unknown\") }}\n </div>\n </div>\n </template>\n </x-dialog>\n</template>\n\n<style scoped>\n/* Prevent the dialog section of the modal to be displayed, to prevent click on it, which would show the popup without\nan attachments on empty pages. */\n:global(*:has(> .x-dialog-attachment-preview-no-activator)) {\n display: none;\n}\n.dialog_content {\n display: grid;\n height: 80vh;\n grid-auto-flow: column;\n grid-template-columns: 6fr 1fr;\n grid-template-rows: 1fr auto;\n gap: 16px 16px;\n grid-template-areas:\n \"attachment_view metadata\"\n \"actions actions\";\n}\n\n.metadata {\n grid-area: metadata;\n display: flex;\n flex-flow: column;\n gap: 8px;\n}\n\n.actions {\n grid-area: actions;\n display: grid;\n grid-template-columns: 1fr auto;\n gap: var(--cr-spacing-medium);\n\n .main_action {\n display: flex;\n gap: var(--cr-spacing-medium);\n }\n\n .close_container {\n justify-self: end;\n }\n}\n\n.attachment_view {\n background-color: var(--cr-color-neutral-100);\n border-radius: var(--cr-border-radius-large);\n grid-area: attachment_view;\n overflow: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.attachment_view img {\n max-height: 70vh;\n display: block;\n}\n\n.label_description {\n display: flex;\n flex-flow: column;\n gap: 4px;\n\n .label {\n display: block;\n font-size: var(--cr-font-size-x-small);\n }\n\n .description {\n font-weight: var(--cr-font-weight-bold);\n font-size: var(--cr-font-size-small);\n }\n}\n\n@container xwCristal (max-width: 600px) {\n .dialog_content {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: 1fr;\n grid-template-areas:\n \"attachment_view\"\n \"metadata\"\n \"actions\";\n\n .attachment_view img {\n width: 100%;\n }\n }\n}\n\n/*TODO: Try to remove these Vuetify only styles*/\n\n:global(.v-overlay) {\n container: vuetifyCristal;\n container-type: size;\n}\n\n@container vuetifyCristal (max-width: 600px) {\n .dialog_content {\n grid-template-columns: 1fr;\n grid-template-rows: 1fr;\n grid-template-areas:\n \"attachment_view\"\n \"metadata\"\n \"actions\";\n\n .attachment_view img {\n width: 100%;\n }\n }\n}\n</style>\n"],"names":["translations","en","t","useI18n","messages","attachmentsMap","ImageFilePreview","VideoFilePreview","resolve","mimetype","key","component","regex","NoPreview","attachmentPreview","inject","openedDialog","ref","watch","open","close","download","value","attachment","loading","error"],"mappings":"6TAsBMA,EAAuD,CAC3D,GAAAC,CACF,mCCDM,KAAA,CAAE,EAAAC,CAAE,EAAIC,EAAQ,CACpBC,SAAAA,CAAA,CACD,gUCCO,OAAAD,EAAA,CACNC,SAAAA,CAAA,CACD,kTCGD,MAAMC,EAAiC,CACrC,MAAO,CAAE,UAAWC,EAAkB,MAAO,WAAY,EAGzD,MAAO,CAAE,UAAWC,EAAkB,MAAO,WAAY,CAC3D,EAEA,SAASC,EAAQC,EAA6B,CAC5C,UAAWC,KAAOL,EAAgB,CAChC,KAAM,CAAE,UAAAM,EAAW,MAAAC,GAAUP,EAAeK,CAAG,EAC3C,GAAAD,EAAS,MAAMG,CAAK,EACf,OAAAD,CACT,CAEK,OAAAE,CAAA,8wBChBH,KAAA,CAAE,EAAAX,CAAE,EAAIC,EAAQ,CACpBC,SAAAA,CAAA,CACD,EAIKU,EAFsBC,EAAmB,SAAS,EAGrD,aAAa,EACb,IAAuB,mBAAmB,EAEvCC,EAA6BC,EAAI,EAAK,EAE5CC,EACE,IAIIJ,EAAkB,QAAQ,EAAE,OAASA,EAAkB,aAAa,MAGvEK,GAAS,CACJA,IACFH,EAAa,MAAQ,GACvB,CAEJ,EAEA,SAASI,GAAQ,CACfJ,EAAa,MAAQ,EAAA,CAGvB,SAASK,GAAW,CAElB,MAAMC,EAAQC,EAAW,MACrBD,IACK,OAAA,SAAS,KAAOA,EAAM,KAC/B,CAGI,MAAAC,EAA0CT,EAAkB,WAAW,EAEvEU,EAAUV,EAAkB,QAAQ,EACpCW,EAAQX,EAAkB,MAAM"}
|
|
1
|
+
{"version":3,"file":"AttachmentPreview-vtQuLZ6k.js","sources":["../../../core/file-preview/file-preview-ui/src/translations.ts","../../../core/file-preview/file-preview-ui/src/vue/NoPreview.vue","../../../core/file-preview/file-preview-ui/src/vue/preview/VideoFilePreview.vue","../../../core/file-preview/file-preview-ui/src/vue/FilePreview.vue","../../../core/attachments/attachments-ui/src/vue/AttachmentPreview.vue"],"sourcesContent":["/*\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport en from \"../langs/translation-en.json\";\n\nconst translations: Record<string, Record<string, string>> = {\n en,\n};\nexport default translations;\n","<!--\nSee the LICENSE file distributed with this work for additional\ninformation regarding copyright ownership.\n\nThis is free software; you can redistribute it and/or modify it\nunder the terms of the GNU Lesser General Public License as\npublished by the Free Software Foundation; either version 2.1 of\nthe License, or (at your option) any later version.\n\nThis software is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this software; if not, write to the Free\nSoftware Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script setup lang=\"ts\">\nimport messages from \"../translations\";\nimport { useI18n } from \"vue-i18n\";\n\nconst { t } = useI18n({\n messages,\n});\n</script>\n\n<template>\n {{ t(\"No preview available\") }}\n</template>\n\n<style scoped></style>\n","<!--\nSee the LICENSE file distributed with this work for additional\ninformation regarding copyright ownership.\n\nThis is free software; you can redistribute it and/or modify it\nunder the terms of the GNU Lesser General Public License as\npublished by the Free Software Foundation; either version 2.1 of\nthe License, or (at your option) any later version.\n\nThis software is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this software; if not, write to the Free\nSoftware Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script setup lang=\"ts\">\nimport messages from \"../../translations\";\nimport { Attachment } from \"@xwiki/cristal-attachments-api\";\nimport { useI18n } from \"vue-i18n\";\n\ndefineProps<{ attachment: Attachment }>();\n\nuseI18n({\n messages,\n});\n</script>\n\n<template>\n <video controls>\n <source :src=\"attachment.href\" :type=\"attachment.mimetype\" />\n <i18n-t keypath=\"filePreview.video.text\">\n <template #link>\n <a :href=\"attachment.href\">{{ attachment.name }}</a>\n </template>\n </i18n-t>\n </video>\n</template>\n\n<style scoped></style>\n","<!--\nSee the LICENSE file distributed with this work for additional\ninformation regarding copyright ownership.\n\nThis is free software; you can redistribute it and/or modify it\nunder the terms of the GNU Lesser General Public License as\npublished by the Free Software Foundation; either version 2.1 of\nthe License, or (at your option) any later version.\n\nThis software is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this software; if not, write to the Free\nSoftware Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script setup lang=\"ts\">\nimport NoPreview from \"./NoPreview.vue\";\nimport ImageFilePreview from \"./preview/ImageFilePreview.vue\";\nimport VideoFilePreview from \"./preview/VideoFilePreview.vue\";\nimport { Attachment } from \"@xwiki/cristal-attachments-api\";\nimport type { Component } from \"vue\";\n\ndefineProps<{ attachment: Attachment }>();\ntype AttachmentsMap = {\n [key: string]: { component: Component; regex: RegExp };\n};\n// TODO: to be moved to a component base approach.\nconst attachmentsMap: AttachmentsMap = {\n image: { component: ImageFilePreview, regex: /image\\/.*/ },\n // TODO: pdf preview is currently disabled as it does not work on Chrome and Electron.\n // application: { component: ApplicationFilePreview, regex: /application\\/pdf/ },\n video: { component: VideoFilePreview, regex: /video\\/.*/ },\n};\n\nfunction resolve(mimetype: string): Component {\n for (const key in attachmentsMap) {\n const { component, regex } = attachmentsMap[key];\n if (mimetype.match(regex)) {\n return component;\n }\n }\n return NoPreview;\n}\n</script>\n\n<template>\n <component\n :is=\"resolve(attachment.mimetype)\"\n v-bind=\"{ attachment }\"\n ></component>\n</template>\n\n<style scoped></style>\n","<!--\nSee the LICENSE file distributed with this work for additional\ninformation regarding copyright ownership.\n\nThis is free software; you can redistribute it and/or modify it\nunder the terms of the GNU Lesser General Public License as\npublished by the Free Software Foundation; either version 2.1 of\nthe License, or (at your option) any later version.\n\nThis software is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this software; if not, write to the Free\nSoftware Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script setup lang=\"ts\">\nimport messages from \"../translations\";\nimport { Attachment, AttachmentPreview } from \"@xwiki/cristal-attachments-api\";\nimport { Date } from \"@xwiki/cristal-date-ui\";\nimport { FilePreview, FileSize } from \"@xwiki/cristal-file-preview-ui\";\nimport { User } from \"@xwiki/cristal-user-ui\";\nimport { Ref, inject, ref, watch } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport type { CristalApp } from \"@xwiki/cristal-api\";\n\nconst { t } = useI18n({\n messages,\n});\n\nconst cristal: CristalApp = inject<CristalApp>(\"cristal\")!;\n\nconst attachmentPreview = cristal\n .getContainer()\n .get<AttachmentPreview>(\"AttachmentPreview\")!;\n\nconst openedDialog: Ref<boolean> = ref(false);\n\nwatch(\n () => {\n // Wait for the preview to be loading or with a value before opening the\n // modal.\n return (\n attachmentPreview.loading().value || attachmentPreview.attachment().value\n );\n },\n (open) => {\n if (open) {\n openedDialog.value = true;\n }\n },\n);\n\nfunction close() {\n openedDialog.value = false;\n}\n\nfunction download() {\n // TODO: make sure this is also working with electron somehow\n const value = attachment.value;\n if (value) {\n window.location.href = value.href;\n }\n}\n\nconst attachment: Ref<Attachment | undefined> = attachmentPreview.attachment();\n\nconst loading = attachmentPreview.loading();\nconst error = attachmentPreview.error();\n</script>\n\n<template>\n <x-dialog v-model=\"openedDialog\" :title=\"t('attachment.preview.modal.title')\">\n <template #activator>\n <!-- No activator, the modal is opened when the user clicks on an attachment link. -->\n <span class=\"x-dialog-attachment-preview-no-activator\"></span>\n </template>\n <template #default>\n <div v-if=\"loading\">{{ t(\"attachment.preview.loading\") }}</div>\n <div v-else-if=\"attachment\" class=\"dialog_content\">\n <!-- TODO: abstract to allow preview based on the type -->\n <div class=\"attachment_view\">\n <div class=\"attachment_view_inner\">\n <file-preview :attachment=\"attachment\" />\n </div>\n </div>\n <div class=\"metadata\">\n <!-- TODO make a component with key:value -->\n <div class=\"label_description\">\n <div>\n <span class=\"label\">\n {{ t(\"attachment.preview.name.label\") }}\n </span>\n <span class=\"description\">{{ attachment.name }}</span>\n </div>\n </div>\n <div v-if=\"attachment.author\" class=\"label_description\">\n <div>\n <span class=\"label\">\n {{ t(\"attachment.preview.postedBy.label\") }}\n </span>\n <span class=\"description\">\n <user :user=\"attachment.author\" />\n </span>\n </div>\n </div>\n <div class=\"label_description\">\n <div>\n <span class=\"label\">\n {{ t(\"attachment.preview.date.label\") }}\n </span>\n <span class=\"description\">\n <date :date=\"attachment.date\" />\n </span>\n </div>\n </div>\n <div class=\"label_description\">\n <div class=\"label_description\">\n <div>\n <span class=\"label\">\n {{ t(\"attachment.preview.size.label\") }}\n </span>\n <span class=\"description\">\n <file-size :size=\"attachment.size\" />\n </span>\n </div>\n </div>\n </div>\n <div class=\"label_description\">\n <div>\n <span class=\"label\">\n {{ t(\"attachment.preview.type.label\") }}\n </span>\n <span class=\"description\">{{ attachment.mimetype }}</span>\n </div>\n <div class=\"label_description\"></div>\n </div>\n </div>\n <div class=\"actions\">\n <!-- TODO: top-right close button. -->\n <div class=\"main_action\">\n <x-btn @click=\"download()\">\n {{ t(\"attachment.preview.download.button\") }}\n </x-btn>\n </div>\n <div class=\"close_container\">\n <x-btn class=\"close\" variant=\"primary\" @click=\"close()\">\n {{ t(\"attachment.preview.close.button\") }}\n </x-btn>\n </div>\n </div>\n </div>\n <div v-else>\n <div v-if=\"error\">{{ error }}</div>\n <div v-else>\n {{ t(\"attachment.preview.error.unknown\") }}\n </div>\n </div>\n </template>\n </x-dialog>\n</template>\n\n<style scoped>\n/* Prevent the dialog section of the modal to be displayed, to prevent click on it, which would show the popup without\nan attachments on empty pages. */\n:global(*:has(> .x-dialog-attachment-preview-no-activator)) {\n display: none;\n}\n.dialog_content {\n display: grid;\n height: 80vh;\n grid-auto-flow: column;\n grid-template-columns: 6fr 1fr;\n grid-template-rows: 1fr auto;\n gap: 16px 16px;\n grid-template-areas:\n \"attachment_view metadata\"\n \"actions actions\";\n}\n\n.metadata {\n grid-area: metadata;\n display: flex;\n flex-flow: column;\n gap: 8px;\n}\n\n.actions {\n grid-area: actions;\n display: grid;\n grid-template-columns: 1fr auto;\n gap: var(--cr-spacing-medium);\n\n .main_action {\n display: flex;\n gap: var(--cr-spacing-medium);\n }\n\n .close_container {\n justify-self: end;\n }\n}\n\n.attachment_view {\n background-color: var(--cr-color-neutral-100);\n border-radius: var(--cr-border-radius-large);\n grid-area: attachment_view;\n overflow: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.attachment_view img {\n max-height: 70vh;\n display: block;\n}\n\n.label_description {\n display: flex;\n flex-flow: column;\n gap: 4px;\n\n .label {\n display: block;\n font-size: var(--cr-font-size-x-small);\n }\n\n .description {\n font-weight: var(--cr-font-weight-bold);\n font-size: var(--cr-font-size-small);\n }\n}\n\n@container xwCristal (max-width: 600px) {\n .dialog_content {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: 1fr;\n grid-template-areas:\n \"attachment_view\"\n \"metadata\"\n \"actions\";\n\n .attachment_view img {\n width: 100%;\n }\n }\n}\n\n/*TODO: Try to remove these Vuetify only styles*/\n\n:global(.v-overlay) {\n container: vuetifyCristal;\n container-type: size;\n}\n\n@container vuetifyCristal (max-width: 600px) {\n .dialog_content {\n grid-template-columns: 1fr;\n grid-template-rows: 1fr;\n grid-template-areas:\n \"attachment_view\"\n \"metadata\"\n \"actions\";\n\n .attachment_view img {\n width: 100%;\n }\n }\n}\n</style>\n"],"names":["translations","en","t","useI18n","messages","attachmentsMap","ImageFilePreview","VideoFilePreview","resolve","mimetype","key","component","regex","NoPreview","attachmentPreview","inject","openedDialog","ref","watch","open","close","download","value","attachment","loading","error"],"mappings":"2UAsBMA,EAAuD,CAC3D,GAAAC,CACF,mCCDM,KAAA,CAAE,EAAAC,CAAE,EAAIC,EAAQ,CACpBC,SAAAA,CAAA,CACD,gUCCO,OAAAD,EAAA,CACNC,SAAAA,CAAA,CACD,kTCGD,MAAMC,EAAiC,CACrC,MAAO,CAAE,UAAWC,EAAkB,MAAO,WAAY,EAGzD,MAAO,CAAE,UAAWC,EAAkB,MAAO,WAAY,CAC3D,EAEA,SAASC,EAAQC,EAA6B,CAC5C,UAAWC,KAAOL,EAAgB,CAChC,KAAM,CAAE,UAAAM,EAAW,MAAAC,GAAUP,EAAeK,CAAG,EAC3C,GAAAD,EAAS,MAAMG,CAAK,EACf,OAAAD,CACT,CAEK,OAAAE,CAAA,8wBChBH,KAAA,CAAE,EAAAX,CAAE,EAAIC,EAAQ,CACpBC,SAAAA,CAAA,CACD,EAIKU,EAFsBC,EAAmB,SAAS,EAGrD,aAAa,EACb,IAAuB,mBAAmB,EAEvCC,EAA6BC,EAAI,EAAK,EAE5CC,EACE,IAIIJ,EAAkB,QAAQ,EAAE,OAASA,EAAkB,aAAa,MAGvEK,GAAS,CACJA,IACFH,EAAa,MAAQ,GACvB,CAEJ,EAEA,SAASI,GAAQ,CACfJ,EAAa,MAAQ,EAAA,CAGvB,SAASK,GAAW,CAElB,MAAMC,EAAQC,EAAW,MACrBD,IACK,OAAA,SAAS,KAAOA,EAAM,KAC/B,CAGI,MAAAC,EAA0CT,EAAkB,WAAW,EAEvEU,EAAUV,EAAkB,QAAQ,EACpCW,EAAQX,EAAkB,MAAM"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{h as _,ar as N,bm as S,f as w,d as x,X as m,al as y,am as V,an as i,m as g,u as t,aJ as k,ao as D,Q as u,V as l,at as R,U as f}from"./index-CR38Q38C.js";const z=_({__name:"DeletePage",props:{currentPage:{},currentPageName:{},currentPageReference:{}},setup(P){const{t:e}=N({messages:S}),n=P,a=w("cristal"),p=a.getContainer().get("AlertsService"),v=a.getContainer().get("DocumentService"),c=x(!1);async function C(){const o=await a.getContainer().get("PageHierarchyResolverProvider").get().getPageHierarchy(n.currentPageReference),s=await a.getContainer().get("StorageProvider").get().delete(n.currentPageName);c.value=!1,s.success?(v.notifyDocumentChange("delete",n.currentPageReference),o.length>1?a.setCurrentPage(o[o.length-2].pageId,"view"):a.setCurrentPage(a.getWikiConfig().homePage,"view"),p.success(e("page.action.action.delete.page.success",{page:n.currentPageName}))):p.error(e("page.action.action.delete.page.error",{page:n.currentPageName,reason:s.error}))}return(o,r)=>{const s=m("x-btn"),h=m("x-dialog");return y(),V(h,{modelValue:c.value,"onUpdate:modelValue":r[1]||(r[1]=d=>c.value=d),width:"auto",title:t(e)("page.action.action.delete.page.dialog.title")},{activator:i(()=>[g(t(D),{name:"trash",size:t(k).Small},null,8,["size"]),u(" "+l(t(e)("page.action.action.delete.page.title")),1)]),default:i(()=>[R("p",null,l(t(e)("page.action.action.delete.page.confirm",{page:o.currentPageName})),1)]),footer:i(()=>[g(s,{onClick:r[0]||(r[0]=f(d=>c.value=!1,["stop"]))},{default:i(()=>[u(l(t(e)("page.action.action.delete.page.cancel")),1)]),_:1}),g(s,{variant:"primary",onClick:f(C,["stop"])},{default:i(()=>[u(l(t(e)("page.action.action.delete.page.title")),1)]),_:1})]),_:1},8,["modelValue","title"])}}});export{z as default};
|
|
2
|
+
//# sourceMappingURL=DeletePage-D25T9Jr6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeletePage-D25T9Jr6.js","sources":["../../../core/page-actions/page-actions-ui/src/vue/DeletePage.vue"],"sourcesContent":["<!--\nSee the LICENSE file distributed with this work for additional\ninformation regarding copyright ownership.\n\nThis is free software; you can redistribute it and/or modify it\nunder the terms of the GNU Lesser General Public License as\npublished by the Free Software Foundation; either version 2.1 of\nthe License, or (at your option) any later version.\n\nThis software is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this software; if not, write to the Free\nSoftware Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script setup lang=\"ts\">\nimport messages from \"../translations\";\nimport { CIcon, Size } from \"@xwiki/cristal-icons\";\nimport { inject, ref } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport type { AlertsService } from \"@xwiki/cristal-alerts-api\";\nimport type { CristalApp, PageData } from \"@xwiki/cristal-api\";\nimport type { StorageProvider } from \"@xwiki/cristal-backend-api\";\nimport type { DocumentService } from \"@xwiki/cristal-document-api\";\nimport type {\n PageHierarchyItem,\n PageHierarchyResolverProvider,\n} from \"@xwiki/cristal-hierarchy-api\";\nimport type { DocumentReference } from \"@xwiki/cristal-model-api\";\nimport type { Ref } from \"vue\";\n\nconst { t } = useI18n({\n messages,\n});\nconst props = defineProps<{\n currentPage: PageData | undefined;\n currentPageName: string;\n currentPageReference: DocumentReference;\n}>();\n\nconst cristal: CristalApp = inject<CristalApp>(\"cristal\")!;\nconst alertsService: AlertsService = cristal\n .getContainer()\n .get<AlertsService>(\"AlertsService\")!;\nconst documentService = cristal\n .getContainer()\n .get<DocumentService>(\"DocumentService\");\nconst deleteDialogOpen: Ref<boolean> = ref(false);\n\n// TODO: reduce the number of statements in the following method and reactivate the disabled eslint rule.\n// eslint-disable-next-line max-statements\nasync function deletePage() {\n const hierarchy: Array<PageHierarchyItem> = await cristal\n .getContainer()\n .get<PageHierarchyResolverProvider>(\"PageHierarchyResolverProvider\")\n .get()\n .getPageHierarchy(props.currentPageReference);\n\n const storage = cristal\n .getContainer()\n .get<StorageProvider>(\"StorageProvider\")\n .get();\n const result = await storage.delete(props.currentPageName);\n deleteDialogOpen.value = false;\n\n if (result.success) {\n documentService.notifyDocumentChange(\"delete\", props.currentPageReference);\n if (hierarchy.length > 1) {\n cristal.setCurrentPage(hierarchy[hierarchy.length - 2].pageId, \"view\");\n } else {\n cristal.setCurrentPage(cristal.getWikiConfig().homePage, \"view\");\n }\n alertsService.success(\n t(\"page.action.action.delete.page.success\", {\n page: props.currentPageName,\n }),\n );\n } else {\n alertsService.error(\n t(\"page.action.action.delete.page.error\", {\n page: props.currentPageName,\n reason: result.error!,\n }),\n );\n }\n}\n</script>\n\n<template>\n <x-dialog\n v-model=\"deleteDialogOpen\"\n width=\"auto\"\n :title=\"t('page.action.action.delete.page.dialog.title')\"\n >\n <template #activator>\n <c-icon name=\"trash\" :size=\"Size.Small\"></c-icon>\n {{ t(\"page.action.action.delete.page.title\") }}\n </template>\n <template #default>\n <p>\n {{\n t(\"page.action.action.delete.page.confirm\", { page: currentPageName })\n }}\n </p>\n </template>\n <template #footer>\n <x-btn @click.stop=\"deleteDialogOpen = false\">\n {{ t(\"page.action.action.delete.page.cancel\") }}\n </x-btn>\n <x-btn variant=\"primary\" @click.stop=\"deletePage\">\n {{ t(\"page.action.action.delete.page.title\") }}\n </x-btn>\n </template>\n </x-dialog>\n</template>\n\n<style scoped></style>\n"],"names":["t","useI18n","messages","props","__props","cristal","inject","alertsService","documentService","deleteDialogOpen","ref","deletePage","hierarchy","result"],"mappings":"0QAmCM,KAAA,CAAE,EAAAA,CAAE,EAAIC,EAAQ,CACpBC,SAAAA,CAAA,CACD,EACKC,EAAQC,EAMRC,EAAsBC,EAAmB,SAAS,EAClDC,EAA+BF,EAClC,aAAa,EACb,IAAmB,eAAe,EAC/BG,EAAkBH,EACrB,aAAa,EACb,IAAqB,iBAAiB,EACnCI,EAAiCC,EAAI,EAAK,EAIhD,eAAeC,GAAa,CAC1B,MAAMC,EAAsC,MAAMP,EAC/C,aACA,EAAA,IAAmC,+BAA+B,EAClE,IAAI,EACJ,iBAAiBF,EAAM,oBAAoB,EAMxCU,EAAS,MAJCR,EACb,aAAA,EACA,IAAqB,iBAAiB,EACtC,IAAI,EACsB,OAAOF,EAAM,eAAe,EACzDM,EAAiB,MAAQ,GAErBI,EAAO,SACOL,EAAA,qBAAqB,SAAUL,EAAM,oBAAoB,EACrES,EAAU,OAAS,EACrBP,EAAQ,eAAeO,EAAUA,EAAU,OAAS,CAAC,EAAE,OAAQ,MAAM,EAErEP,EAAQ,eAAeA,EAAQ,cAAc,EAAE,SAAU,MAAM,EAEnDE,EAAA,QACZP,EAAE,yCAA0C,CAC1C,KAAMG,EAAM,eACb,CAAA,CACH,GAEcI,EAAA,MACZP,EAAE,uCAAwC,CACxC,KAAMG,EAAM,gBACZ,OAAQU,EAAO,KAChB,CAAA,CACH,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{h as _,ar as v,f as S,bp as k,d as m,w,X as s,al as V,am as I,an as g,Q as b,V as c,u as e,m as f,at as r,D as y}from"./index-CR38Q38C.js";const L={"authentication.github.modal.title":"GitHub Login","authentication.github.modal.step1":"Step 1: Copy the following code","authentication.github.modal.step2":"Step 2: Click {link}, paste the code and authorize the application.","authentication.github.modal.step2.link":"here","authentication.github.modal.timeLeft":"Time left: {expiration}.","authentication.github.modal.userCode.label":"User Code"},U={"authentication.github.modal.title":"Connexion à GitHub","authentication.github.modal.step1":"Étape 1 : Copier le code suivant","authentication.github.modal.step2":"Étape 2 : Cliquer {link}, coller le code et autoriser l'application.","authentication.github.modal.step2.link":"ici","authentication.github.modal.timeLeft":"Temps restant : {expiration}.","authentication.github.modal.userCode.label":"Code utilisateur"},G={en:L,fr:U},H="https://github.com/login/device",B="authentication.user_code",D="authentication.expires_in",T=_({__name:"GitHubLoginMenu",setup(M){const{t:a}=v({messages:G}),d=S("cristal"),x=d.getContainer().get("AuthenticationManagerProvider").get(),n=d.getContainer().get(k).modalOpened,o=m(""),h=m("00:00");return w(n,async(p,t)=>{if(p&&!t){o.value=window.localStorage.getItem(B);let i=parseInt(window.localStorage.getItem(D));const l=setInterval(()=>{i--,h.value=new Date(i*1e3).toISOString().slice(11,19),i==0&&clearInterval(l)},1e3);await x?.callback()}}),(p,t)=>{const i=s("x-text-field"),l=s("i18n-t"),C=s("x-dialog");return V(),I(C,{modelValue:e(n),"onUpdate:modelValue":t[1]||(t[1]=u=>y(n)?n.value=u:null),width:"auto",title:e(a)("authentication.github.modal.title")},{default:g(()=>[b(c(e(a)("authentication.github.modal.step1"))+" ",1),f(i,{modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=u=>o.value=u),label:e(a)("authentication.github.modal.userCode.label"),readonly:""},null,8,["modelValue","label"]),f(l,{keypath:"authentication.github.modal.step2",tag:"span"},{link:g(()=>[r("a",{href:H,target:"_blank"},c(e(a)("authentication.github.modal.step2.link")),1)]),_:1}),t[2]||(t[2]=r("br",null,null,-1)),t[3]||(t[3]=r("br",null,null,-1)),b(" "+c(e(a)("authentication.github.modal.timeLeft",{expiration:h.value})),1)]),_:1},8,["modelValue","title"])}}});export{T as default};
|
|
2
|
+
//# sourceMappingURL=GitHubLoginMenu-ZQ535kXa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitHubLoginMenu-ZQ535kXa.js","sources":["../../../core/authentication/authentication-github-ui/src/translations.ts","../../../core/authentication/authentication-github-ui/src/vue/GitHubLoginMenu.vue"],"sourcesContent":["/*\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport en from \"../langs/translation-en.json\";\nimport fr from \"../langs/translation-fr.json\";\n\nconst translations = {\n en,\n fr,\n};\nexport default translations;\n","<!--\nSee the LICENSE file distributed with this work for additional\ninformation regarding copyright ownership.\n\nThis is free software; you can redistribute it and/or modify it\nunder the terms of the GNU Lesser General Public License as\npublished by the Free Software Foundation; either version 2.1 of\nthe License, or (at your option) any later version.\n\nThis software is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this software; if not, write to the Free\nSoftware Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<script lang=\"ts\" setup>\nimport messages from \"../translations\";\nimport { CristalApp } from \"@xwiki/cristal-api\";\nimport { GitHubAuthenticationState } from \"@xwiki/cristal-authentication-github-state\";\nimport { inject, ref, watch } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport type { AuthenticationManagerProvider } from \"@xwiki/cristal-authentication-api\";\nimport type { Ref } from \"vue\";\n\nconst { t } = useI18n({\n messages,\n});\n\nconst cristal = inject<CristalApp>(\"cristal\")!;\n\nconst authenticationManager = cristal\n .getContainer()\n .get<AuthenticationManagerProvider>(\"AuthenticationManagerProvider\")\n .get();\nconst authenticationState = cristal\n .getContainer()\n .get<GitHubAuthenticationState>(GitHubAuthenticationState);\nconst modalOpened: Ref<boolean> = authenticationState.modalOpened;\n\nconst verificationUrl = \"https://github.com/login/device\";\nconst localStorageUserCode = \"authentication.user_code\";\nconst localStorageExpiresIn = \"authentication.expires_in\";\n\nconst userCode: Ref<string> = ref(\"\");\nconst expiration: Ref<string> = ref(\"00:00\");\n\nwatch(modalOpened, async (newValue: boolean, oldValue: boolean) => {\n if (newValue && !oldValue) {\n userCode.value = window.localStorage.getItem(localStorageUserCode)!;\n let expirationSeconds: number = parseInt(\n window.localStorage.getItem(localStorageExpiresIn)!,\n );\n // This interval updates the displayed timer every second, until\n // expiration of the user code.\n const intervalId = setInterval(() => {\n expirationSeconds--;\n expiration.value = new Date(expirationSeconds * 1000)\n .toISOString()\n .slice(11, 19);\n if (expirationSeconds == 0) {\n clearInterval(intervalId);\n }\n }, 1000);\n\n await authenticationManager?.callback();\n }\n});\n</script>\n\n<template>\n <x-dialog\n v-model=\"modalOpened\"\n width=\"auto\"\n :title=\"t('authentication.github.modal.title')\"\n >\n <template #default>\n {{ t(\"authentication.github.modal.step1\") }}\n <x-text-field\n v-model=\"userCode\"\n :label=\"t('authentication.github.modal.userCode.label')\"\n readonly\n ></x-text-field>\n <i18n-t keypath=\"authentication.github.modal.step2\" tag=\"span\">\n <template #link>\n <a :href=\"verificationUrl\" target=\"_blank\">{{\n t(\"authentication.github.modal.step2.link\")\n }}</a>\n </template> </i18n-t\n ><br /><br />\n {{\n t(\"authentication.github.modal.timeLeft\", { expiration: expiration })\n }}\n </template>\n </x-dialog>\n</template>\n"],"names":["translations","en","fr","verificationUrl","localStorageUserCode","localStorageExpiresIn","t","useI18n","messages","cristal","inject","authenticationManager","modalOpened","GitHubAuthenticationState","userCode","ref","expiration","watch","newValue","oldValue","expirationSeconds","intervalId"],"mappings":"+8BAuBMA,EAAe,CACnB,GAAAC,EACA,GAAAC,CACF,ECkBMC,EAAkB,kCAClBC,EAAuB,2BACvBC,EAAwB,mEAjBxB,KAAA,CAAE,EAAAC,CAAE,EAAIC,EAAQ,CACpBC,SAAAA,CAAA,CACD,EAEKC,EAAUC,EAAmB,SAAS,EAEtCC,EAAwBF,EAC3B,aAAA,EACA,IAAmC,+BAA+B,EAClE,IAAI,EAIDG,EAHsBH,EACzB,aAAa,EACb,IAA+BI,CAAyB,EACL,YAMhDC,EAAwBC,EAAI,EAAE,EAC9BC,EAA0BD,EAAI,OAAO,EAErC,OAAAE,EAAAL,EAAa,MAAOM,EAAmBC,IAAsB,CAC7D,GAAAD,GAAY,CAACC,EAAU,CACzBL,EAAS,MAAQ,OAAO,aAAa,QAAQV,CAAoB,EACjE,IAAIgB,EAA4B,SAC9B,OAAO,aAAa,QAAQf,CAAqB,CACnD,EAGM,MAAAgB,EAAa,YAAY,IAAM,CACnCD,IACWJ,EAAA,MAAQ,IAAI,KAAKI,EAAoB,GAAI,EACjD,cACA,MAAM,GAAI,EAAE,EACXA,GAAqB,GACvB,cAAcC,CAAU,GAEzB,GAAI,EAEP,MAAMV,GAAuB,SAAS,CAAA,CACxC,CACD"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{h as v,ar as C,f as U,aC as V,aD as B,X as u,al as a,as as h,u as e,am as _,an as n,at as g,ay as F,Q as y,V as d,aE as N,m as c,U as A,F as P,ao as E,n as S,aF as T}from"./index-CR38Q38C.js";import{t as k}from"./translations-Ds9OkLNv.js";async function $(m){try{const{profile:t,name:r,avatar:o}=await m.getUserDetails();return{profile:t,name:r,avatar:o,error:!1}}catch(t){return console.error("Failed to access the user profile",t),{error:!0}}}const j=["href"],L={key:1},Q=v({__name:"UserDetails",async setup(m){let t,r;const{t:o}=C({messages:k}),s=U("cristal"),l=s.getContainer().get("AuthenticationManagerProvider").get(),p=s.getContainer().get(V),{profile:b,name:f,error:w,avatar:x}=([t,r]=B(()=>$(l)),t=await t,r(),t);function D(){l.logout().then(()=>p.reload())}return(X,i)=>{const I=u("x-avatar"),M=u("x-btn");return a(),h(P,null,[e(w)?(a(),h("span",L,d(e(o)("userDetails.error")),1)):(a(),_(e(N),{key:0,keypath:"userDescription",tag:"span"},{default:n(()=>[g("a",{href:e(b)},[e(x)?(a(),_(I,{key:0,image:e(x),name:e(f)},null,8,["image","name"])):F("",!0),y(" "+d(e(f)),1)],8,j)]),_:1})),i[0]||(i[0]=g("br",null,null,-1)),i[1]||(i[1]=g("br",null,null,-1)),c(M,{variant:"danger",onClick:A(D,["prevent"])},{default:n(()=>[y(d(e(o)("logout")),1)]),_:1})],64)}}}),G=v({__name:"LoggedInMenu",setup(m){const{t}=C({messages:k});return(r,o)=>{const s=u("x-btn"),l=u("x-dialog");return a(),_(l,{width:"auto",title:e(t)("loggedInUserModal.title")},{activator:n(({props:p})=>[c(s,{variant:"primary"},{default:n(()=>[c(e(E),S({name:"person"},p),null,16)]),_:2},1024)]),default:n(()=>[(a(),_(T,null,{default:n(()=>[c(Q)]),_:1}))]),_:1},8,["title"])}}});export{G as default};
|
|
2
|
+
//# sourceMappingURL=LoggedInMenu-BpTwAslk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoggedInMenu-
|
|
1
|
+
{"version":3,"file":"LoggedInMenu-BpTwAslk.js","sources":["../../../core/authentication/authentication-ui/src/vue/utils/getUserProfile.ts","../../../core/authentication/authentication-ui/src/vue/UserDetails.vue","../../../core/authentication/authentication-ui/src/vue/LoggedInMenu.vue"],"sourcesContent":["/*\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport type { AuthenticationManager } from \"@xwiki/cristal-authentication-api\";\n\n/**\n * Access to user profile.\n *\n * @returns the name and profile url, and an error status\n * @since 0.11\n */\nexport async function getUserProfile(\n authenticationManager: AuthenticationManager,\n): Promise<{\n name?: string;\n profile?: string;\n avatar?: string;\n error: boolean;\n}> {\n try {\n const { profile, name, avatar } =\n await authenticationManager.getUserDetails();\n return { profile, name, avatar, error: false };\n } catch (e) {\n console.error(\"Failed to access the user profile\", e);\n return { error: true };\n }\n}\n","<!--\nSee the LICENSE file distributed with this work for additional\ninformation regarding copyright ownership.\n\nThis is free software; you can redistribute it and/or modify it\nunder the terms of the GNU Lesser General Public License as\npublished by the Free Software Foundation; either version 2.1 of\nthe License, or (at your option) any later version.\n\nThis software is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this software; if not, write to the Free\nSoftware Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script setup lang=\"ts\">\nimport { getUserProfile } from \"./utils/getUserProfile\";\nimport messages from \"../translations\";\nimport { CristalApp } from \"@xwiki/cristal-api\";\nimport { BrowserApi, name as browserApiName } from \"@xwiki/cristal-browser-api\";\nimport { inject } from \"vue\";\nimport { I18nT, useI18n } from \"vue-i18n\";\nimport type { AuthenticationManagerProvider } from \"@xwiki/cristal-authentication-api\";\n\nconst { t } = useI18n({\n messages,\n});\n\nconst cristal = inject<CristalApp>(\"cristal\")!;\n\nconst authenticationManager = cristal\n .getContainer()\n .get<AuthenticationManagerProvider>(\"AuthenticationManagerProvider\")\n .get()!;\n\nconst browserApi = cristal.getContainer().get<BrowserApi>(browserApiName);\n\nconst { profile, name, error, avatar } = await getUserProfile(\n authenticationManager,\n);\n\nfunction logout() {\n authenticationManager.logout().then(() => browserApi.reload());\n}\n</script>\n\n<template>\n <template v-if=\"!error\">\n <i18n-t keypath=\"userDescription\" tag=\"span\">\n <a :href=\"profile\">\n <x-avatar v-if=\"avatar\" :image=\"avatar\" :name=\"name\"></x-avatar>\n {{ name }}\n </a>\n </i18n-t>\n </template>\n <span v-else>{{ t(\"userDetails.error\") }}</span>\n <br />\n <br />\n <x-btn variant=\"danger\" @click.prevent=\"logout\">{{ t(\"logout\") }}</x-btn>\n</template>\n","<!--\nSee the LICENSE file distributed with this work for additional\ninformation regarding copyright ownership.\n\nThis is free software; you can redistribute it and/or modify it\nunder the terms of the GNU Lesser General Public License as\npublished by the Free Software Foundation; either version 2.1 of\nthe License, or (at your option) any later version.\n\nThis software is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this software; if not, write to the Free\nSoftware Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<script setup lang=\"ts\">\nimport UserDetails from \"./UserDetails.vue\";\nimport messages from \"../translations\";\nimport { CIcon } from \"@xwiki/cristal-icons\";\nimport { useI18n } from \"vue-i18n\";\n\nconst { t } = useI18n({\n messages,\n});\n</script>\n\n<template>\n <x-dialog width=\"auto\" :title=\"t('loggedInUserModal.title')\">\n <template #activator=\"{ props }\">\n <x-btn variant=\"primary\">\n <c-icon name=\"person\" v-bind=\"props\"></c-icon>\n </x-btn>\n </template>\n <template #default>\n <suspense>\n <user-details></user-details>\n </suspense>\n </template>\n </x-dialog>\n</template>\n"],"names":["getUserProfile","authenticationManager","profile","name","avatar","e","t","useI18n","messages","cristal","inject","browserApi","browserApiName","error","__temp","__restore","_withAsyncContext","logout"],"mappings":"sPA4BA,eAAsBA,EACpBC,EAMC,CACG,GAAA,CACF,KAAM,CAAE,QAAAC,EAAS,KAAAC,EAAM,OAAAC,GACrB,MAAMH,EAAsB,eAAe,EAC7C,MAAO,CAAE,QAAAC,EAAS,KAAAC,EAAM,OAAAC,EAAQ,MAAO,EAAM,QACtCC,EAAG,CACF,eAAA,MAAM,oCAAqCA,CAAC,EAC7C,CAAE,MAAO,EAAK,CAAA,CAEzB,6EChBM,KAAA,CAAE,EAAAC,CAAE,EAAIC,EAAQ,CACpBC,SAAAA,CAAA,CACD,EAEKC,EAAUC,EAAmB,SAAS,EAEtCT,EAAwBQ,EAC3B,aAAA,EACA,IAAmC,+BAA+B,EAClE,IAAI,EAEDE,EAAaF,EAAQ,aAAa,EAAE,IAAgBG,CAAc,EAElE,CAAE,QAAAV,EAAS,KAAAC,EAAM,MAAAU,EAAO,OAAAT,CAAA,GAAW,CAAAU,EAAAC,CAAA,EAAAC,EAAA,IAAMhB,EAC7CC,CACF,CAAA,mBAEA,SAASgB,GAAS,CAChBhB,EAAsB,SAAS,KAAK,IAAMU,EAAW,QAAQ,CAAA,uhBCpBzD,KAAA,CAAE,CAAE,EAAIJ,EAAQ,CACpBC,SAAAA,CAAA,CACD"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as o}from"./translations-Ds9OkLNv.js";import{h as r,ar as i,f as c,X as l,u as a,al as m,am as u,an as p,Q as _,V as g,ay as f}from"./index-CR38Q38C.js";const b=r({__name:"LoginMenu",setup(d){const{t:e}=i({messages:o}),t=c("cristal").getContainer().get("AuthenticationManagerProvider").get();function n(){t?.start()}return(C,h)=>{const s=l("x-btn");return a(t)?(m(),u(s,{key:0,size:"small",type:"submit",variant:"primary",onClick:n},{default:p(()=>[_(g(a(e)("login")),1)]),_:1})):f("",!0)}}});export{b as default};
|
|
2
|
+
//# sourceMappingURL=LoginMenu-CfOVFX_X.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginMenu-
|
|
1
|
+
{"version":3,"file":"LoginMenu-CfOVFX_X.js","sources":["../../../core/authentication/authentication-ui/src/vue/LoginMenu.vue"],"sourcesContent":["<!--\nSee the LICENSE file distributed with this work for additional\ninformation regarding copyright ownership.\n\nThis is free software; you can redistribute it and/or modify it\nunder the terms of the GNU Lesser General Public License as\npublished by the Free Software Foundation; either version 2.1 of\nthe License, or (at your option) any later version.\n\nThis software is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this software; if not, write to the Free\nSoftware Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<script lang=\"ts\" setup>\nimport messages from \"../translations\";\nimport { CristalApp } from \"@xwiki/cristal-api\";\nimport { inject } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport type { AuthenticationManagerProvider } from \"@xwiki/cristal-authentication-api\";\n\nconst { t } = useI18n({\n messages,\n});\n\nconst cristal = inject<CristalApp>(\"cristal\")!;\n\nconst authenticationManager = cristal\n .getContainer()\n .get<AuthenticationManagerProvider>(\"AuthenticationManagerProvider\")\n .get();\n\nfunction login() {\n authenticationManager?.start();\n}\n</script>\n\n<template>\n <x-btn\n v-if=\"authenticationManager\"\n size=\"small\"\n type=\"submit\"\n variant=\"primary\"\n @click=\"login\"\n >\n {{ t(\"login\") }}\n </x-btn>\n</template>\n"],"names":["t","useI18n","messages","authenticationManager","inject","login"],"mappings":"yMA2BM,KAAA,CAAE,EAAAA,CAAE,EAAIC,EAAQ,CACpBC,SAAAA,CAAA,CACD,EAIKC,EAFUC,EAAmB,SAAS,EAGzC,aAAA,EACA,IAAmC,+BAA+B,EAClE,IAAI,EAEP,SAASC,GAAQ,CACfF,GAAuB,MAAM,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.dialog-content[data-v-99eafdc9]{min-width:600px}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{h as T,ar as H,bm as j,f as A,d,X as r,al as b,am as R,an as o,m as c,u as e,aJ as F,ao as J,Q as P,V as f,at as S,ay as O,U as Q,aB as $}from"./index-CR38Q38C.js";const q=["href"],E={class:"dialog-content"},G=T({__name:"MovePage",props:{currentPage:{},currentPageName:{},currentPageReference:{}},setup(V){const{t:a}=H({messages:j}),g=V,t=A("cristal"),h=t.getContainer().get("AlertsService"),C=t.getContainer().get("DocumentService"),w=t.getContainer().get("PageRenameManagerProvider").get(),y=t.getContainer().get("ModelReferenceHandlerProvider").get(),N=t.getContainer().get("ModelReferenceSerializerProvider").get(),u=d(!1),p=d(!0),v=d(void 0),_=d(void 0);let m,l;async function k(){if(m=y.createDocumentReference(g.currentPageReference.name,_.value),l=N.serialize(m),v.value=await t.getPage(l),!v.value){const i=await w.updateReference(g.currentPage,l,p.value);u.value=!1,await z(i)}}async function z(i){i.success?(p.value&&C.notifyDocumentChange("delete",g.currentPageReference),t.setCurrentPage(l,"view"),h.success(a("page.action.action.move.page.success",{page:g.currentPageName,newPage:l})),C.notifyDocumentChange("update",m)):h.error(a("page.action.action.move.page.error",{page:g.currentPageName,reason:i.error}))}return(i,n)=>{const D=r("i18n-t"),M=r("x-alert"),X=r("XNavigationTreeSelect"),B=r("XCheckbox"),U=r("x-form"),x=r("x-btn"),I=r("x-dialog");return b(),R(I,{modelValue:u.value,"onUpdate:modelValue":n[3]||(n[3]=s=>u.value=s),width:"auto",title:e(a)("page.action.action.move.page.dialog.title")},{activator:o(()=>[c(e(J),{name:"box-arrow-in-right",size:e(F).Small},null,8,["size"]),P(" "+f(e(a)("page.action.action.move.page.title")),1)]),default:o(()=>[v.value!==void 0?(b(),R(M,{key:0,type:"error"},{default:o(()=>[c(D,{keypath:"page.action.action.move.page.alert.content",tag:"span"},{pageName:o(()=>[S("a",{href:e(t).getRouter().resolve({name:"view",params:{page:e(l)}}).href},f(e(m)),9,q)]),_:1})]),_:1})):O("",!0),S("div",E,[c(U,{id:"page-move-form",onFormSubmit:k},{default:o(()=>[c(X,{modelValue:_.value,"onUpdate:modelValue":n[0]||(n[0]=s=>_.value=s),label:e(a)("page.action.action.move.page.location.label"),help:e(a)("page.action.action.move.page.location.help"),"current-page-reference":i.currentPageReference},null,8,["modelValue","label","help","current-page-reference"]),c(B,{modelValue:p.value,"onUpdate:modelValue":n[1]||(n[1]=s=>p.value=s),label:e(a)("page.action.action.move.page.preserve.children.label"),help:e(a)("page.action.action.move.page.preserve.children.help")},null,8,["modelValue","label","help"])]),_:1})])]),footer:o(()=>[c(x,{onClick:n[2]||(n[2]=Q(s=>u.value=!1,["stop"]))},{default:o(()=>[P(f(e(a)("page.action.action.move.page.cancel")),1)]),_:1}),c(x,{variant:"primary",type:"submit",form:"page-move-form"},{default:o(()=>[P(f(e(a)("page.action.action.move.page.title")),1)]),_:1})]),_:1},8,["modelValue","title"])}}}),L=$(G,[["__scopeId","data-v-99eafdc9"]]);export{L as default};
|
|
2
|
+
//# sourceMappingURL=MovePage-CPsbagxH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MovePage-CPsbagxH.js","sources":["../../../core/page-actions/page-actions-ui/src/vue/MovePage.vue"],"sourcesContent":["<!--\nSee the LICENSE file distributed with this work for additional\ninformation regarding copyright ownership.\n\nThis is free software; you can redistribute it and/or modify it\nunder the terms of the GNU Lesser General Public License as\npublished by the Free Software Foundation; either version 2.1 of\nthe License, or (at your option) any later version.\n\nThis software is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this software; if not, write to the Free\nSoftware Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script setup lang=\"ts\">\nimport messages from \"../translations\";\nimport { CIcon, Size } from \"@xwiki/cristal-icons\";\nimport { inject, ref } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport type { AlertsService } from \"@xwiki/cristal-alerts-api\";\nimport type { CristalApp, PageData } from \"@xwiki/cristal-api\";\nimport type { DocumentService } from \"@xwiki/cristal-document-api\";\nimport type {\n DocumentReference,\n SpaceReference,\n} from \"@xwiki/cristal-model-api\";\nimport type {\n ModelReferenceHandler,\n ModelReferenceHandlerProvider,\n ModelReferenceSerializer,\n ModelReferenceSerializerProvider,\n} from \"@xwiki/cristal-model-reference-api\";\nimport type {\n PageRenameManager,\n PageRenameManagerProvider,\n} from \"@xwiki/cristal-rename-api\";\nimport type { Ref } from \"vue\";\n\nconst { t } = useI18n({\n messages,\n});\nconst props = defineProps<{\n currentPage: PageData | undefined;\n currentPageName: string;\n currentPageReference: DocumentReference;\n}>();\n\nconst cristal: CristalApp = inject<CristalApp>(\"cristal\")!;\nconst alertsService: AlertsService = cristal\n .getContainer()\n .get<AlertsService>(\"AlertsService\")!;\nconst documentService = cristal\n .getContainer()\n .get<DocumentService>(\"DocumentService\");\nconst pageRenameManager: PageRenameManager = cristal\n .getContainer()\n .get<PageRenameManagerProvider>(\"PageRenameManagerProvider\")\n .get();\nconst referenceHandler: ModelReferenceHandler = cristal\n .getContainer()\n .get<ModelReferenceHandlerProvider>(\"ModelReferenceHandlerProvider\")\n .get()!;\nconst referenceSerializer: ModelReferenceSerializer = cristal\n .getContainer()\n .get<ModelReferenceSerializerProvider>(\"ModelReferenceSerializerProvider\")\n .get()!;\n\nconst dialogOpen: Ref<boolean> = ref(false);\nconst preserveChildren: Ref<boolean> = ref(true);\nconst existingPage: Ref<PageData | undefined> = ref(undefined);\nconst locationReference: Ref<SpaceReference | undefined> = ref(undefined);\nlet newDocumentReference: DocumentReference;\nlet newDocumentReferenceSerialized: string;\n\nasync function movePage() {\n newDocumentReference = referenceHandler.createDocumentReference(\n props.currentPageReference.name,\n locationReference.value!,\n );\n newDocumentReferenceSerialized =\n referenceSerializer.serialize(newDocumentReference)!;\n\n existingPage.value = await cristal.getPage(newDocumentReferenceSerialized);\n if (!existingPage.value) {\n const result = await pageRenameManager.updateReference(\n props.currentPage!,\n newDocumentReferenceSerialized,\n preserveChildren.value,\n );\n dialogOpen.value = false;\n await handleSuccess(result);\n }\n}\n\nasync function handleSuccess(result: { success: boolean; error?: string }) {\n if (result.success) {\n if (preserveChildren.value) {\n documentService.notifyDocumentChange(\n \"delete\",\n props.currentPageReference,\n );\n }\n cristal.setCurrentPage(newDocumentReferenceSerialized, \"view\");\n alertsService.success(\n t(\"page.action.action.move.page.success\", {\n page: props.currentPageName,\n newPage: newDocumentReferenceSerialized,\n }),\n );\n documentService.notifyDocumentChange(\"update\", newDocumentReference);\n } else {\n alertsService.error(\n t(\"page.action.action.move.page.error\", {\n page: props.currentPageName,\n reason: result.error!,\n }),\n );\n }\n}\n</script>\n\n<template>\n <x-dialog\n v-model=\"dialogOpen\"\n width=\"auto\"\n :title=\"t('page.action.action.move.page.dialog.title')\"\n >\n <template #activator>\n <c-icon name=\"box-arrow-in-right\" :size=\"Size.Small\"></c-icon>\n {{ t(\"page.action.action.move.page.title\") }}\n </template>\n <template #default>\n <x-alert v-if=\"existingPage !== undefined\" type=\"error\">\n <i18n-t keypath=\"page.action.action.move.page.alert.content\" tag=\"span\">\n <template #pageName>\n <a\n :href=\"\n cristal.getRouter().resolve({\n name: 'view',\n params: { page: newDocumentReferenceSerialized },\n }).href\n \"\n >{{ newDocumentReference }}</a\n >\n </template>\n </i18n-t>\n </x-alert>\n <div class=\"dialog-content\">\n <x-form id=\"page-move-form\" @form-submit=\"movePage\">\n <XNavigationTreeSelect\n v-model=\"locationReference\"\n :label=\"t('page.action.action.move.page.location.label')\"\n :help=\"t('page.action.action.move.page.location.help')\"\n :current-page-reference=\"currentPageReference\"\n ></XNavigationTreeSelect>\n <XCheckbox\n v-model=\"preserveChildren\"\n :label=\"t('page.action.action.move.page.preserve.children.label')\"\n :help=\"t('page.action.action.move.page.preserve.children.help')\"\n ></XCheckbox>\n </x-form>\n </div>\n </template>\n <template #footer>\n <x-btn @click.stop=\"dialogOpen = false\">\n {{ t(\"page.action.action.move.page.cancel\") }}\n </x-btn>\n <x-btn variant=\"primary\" type=\"submit\" form=\"page-move-form\">\n {{ t(\"page.action.action.move.page.title\") }}\n </x-btn>\n </template>\n </x-dialog>\n</template>\n\n<style scoped>\n.dialog-content {\n min-width: 600px;\n}\n</style>\n"],"names":["t","useI18n","messages","props","__props","cristal","inject","alertsService","documentService","pageRenameManager","referenceHandler","referenceSerializer","dialogOpen","ref","preserveChildren","existingPage","locationReference","newDocumentReference","newDocumentReferenceSerialized","movePage","result","handleSuccess"],"mappings":"yTA2CM,KAAA,CAAE,EAAAA,CAAE,EAAIC,EAAQ,CACpBC,SAAAA,CAAA,CACD,EACKC,EAAQC,EAMRC,EAAsBC,EAAmB,SAAS,EAClDC,EAA+BF,EAClC,aAAa,EACb,IAAmB,eAAe,EAC/BG,EAAkBH,EACrB,aAAa,EACb,IAAqB,iBAAiB,EACnCI,EAAuCJ,EAC1C,aAAA,EACA,IAA+B,2BAA2B,EAC1D,IAAI,EACDK,EAA0CL,EAC7C,aAAA,EACA,IAAmC,+BAA+B,EAClE,IAAI,EACDM,EAAgDN,EACnD,aAAA,EACA,IAAsC,kCAAkC,EACxE,IAAI,EAEDO,EAA2BC,EAAI,EAAK,EACpCC,EAAiCD,EAAI,EAAI,EACzCE,EAA0CF,EAAI,MAAS,EACvDG,EAAqDH,EAAI,MAAS,EACpE,IAAAI,EACAC,EAEJ,eAAeC,GAAW,CASpB,GARJF,EAAuBP,EAAiB,wBACtCP,EAAM,qBAAqB,KAC3Ba,EAAkB,KACpB,EAEEE,EAAAP,EAAoB,UAAUM,CAAoB,EAEpDF,EAAa,MAAQ,MAAMV,EAAQ,QAAQa,CAA8B,EACrE,CAACH,EAAa,MAAO,CACjB,MAAAK,EAAS,MAAMX,EAAkB,gBACrCN,EAAM,YACNe,EACAJ,EAAiB,KACnB,EACAF,EAAW,MAAQ,GACnB,MAAMS,EAAcD,CAAM,CAAA,CAC5B,CAGF,eAAeC,EAAcD,EAA8C,CACrEA,EAAO,SACLN,EAAiB,OACHN,EAAA,qBACd,SACAL,EAAM,oBACR,EAEME,EAAA,eAAea,EAAgC,MAAM,EAC/CX,EAAA,QACZP,EAAE,uCAAwC,CACxC,KAAMG,EAAM,gBACZ,QAASe,CACV,CAAA,CACH,EACgBV,EAAA,qBAAqB,SAAUS,CAAoB,GAErDV,EAAA,MACZP,EAAE,qCAAsC,CACtC,KAAMG,EAAM,gBACZ,OAAQiB,EAAO,KAChB,CAAA,CACH,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{h as H,ar as I,bm as j,f as A,d as v,z as F,X as c,al as S,am as w,an as n,m as i,u as e,aJ as J,ao as O,Q as P,V as d,at as Q,ay as T,U as X}from"./index-CR38Q38C.js";const $=["href"],G=H({__name:"RenamePage",props:{currentPage:{},currentPageName:{},currentPageReference:{}},setup(y){const{t}=I({messages:j}),s=y,a=A("cristal"),x=a.getContainer().get("AlertsService"),C=a.getContainer().get("DocumentService"),V=a.getContainer().get("PageRenameManagerProvider").get(),h=a.getContainer().get("ModelReferenceHandlerProvider").get(),N=a.getContainer().get("ModelReferenceParserProvider").get(),b=a.getContainer().get("ModelReferenceSerializerProvider").get(),m=v(!1),g=v(""),f=v(void 0);let _,u,r;F(()=>{_=N.parse(s.currentPageName),g.value=_.name});async function z(){if(u=h.createDocumentReference(g.value,_.space),r=b.serialize(u),f.value=await a.getPage(r),!f.value){const l=await V.updateReference(s.currentPage,r,!0);m.value=!1,await D(l)}}async function D(l){l.success?(C.notifyDocumentChange("delete",s.currentPageReference),a.setCurrentPage(r,"view"),x.success(t("page.action.action.rename.page.success",{page:s.currentPageName,newPage:r})),C.notifyDocumentChange("update",u)):x.error(t("page.action.action.rename.page.error",{page:s.currentPageName,reason:l.error}))}return(l,o)=>{const M=c("i18n-t"),k=c("x-alert"),B=c("x-text-field"),U=c("x-form"),R=c("x-btn"),q=c("x-dialog");return S(),w(q,{modelValue:m.value,"onUpdate:modelValue":o[2]||(o[2]=p=>m.value=p),width:"auto",title:e(t)("page.action.action.rename.page.dialog.title")},{activator:n(()=>[i(e(O),{name:"pencil-square",size:e(J).Small},null,8,["size"]),P(" "+d(e(t)("page.action.action.rename.page.title")),1)]),default:n(()=>[f.value!==void 0?(S(),w(k,{key:0,type:"error"},{default:n(()=>[i(M,{keypath:"page.action.action.rename.page.alert.content",tag:"span"},{pageName:n(()=>[Q("a",{href:e(a).getRouter().resolve({name:"view",params:{page:e(r)}}).href},d(e(u)),9,$)]),_:1})]),_:1})):T("",!0),i(U,{id:"page-rename-form",onFormSubmit:z},{default:n(()=>[i(B,{modelValue:g.value,"onUpdate:modelValue":o[0]||(o[0]=p=>g.value=p),label:e(t)("page.action.action.rename.page.name.label"),help:e(t)("page.action.action.rename.page.name.help"),name:"name",autofocus:"",required:""},null,8,["modelValue","label","help"])]),_:1})]),footer:n(()=>[i(R,{onClick:o[1]||(o[1]=X(p=>m.value=!1,["stop"]))},{default:n(()=>[P(d(e(t)("page.action.action.rename.page.cancel")),1)]),_:1}),i(R,{variant:"primary",type:"submit",form:"page-rename-form"},{default:n(()=>[P(d(e(t)("page.action.action.rename.page.title")),1)]),_:1})]),_:1},8,["modelValue","title"])}}});export{G as default};
|
|
2
|
+
//# sourceMappingURL=RenamePage-Dg5hD7EE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenamePage-Dg5hD7EE.js","sources":["../../../core/page-actions/page-actions-ui/src/vue/RenamePage.vue"],"sourcesContent":["<!--\nSee the LICENSE file distributed with this work for additional\ninformation regarding copyright ownership.\n\nThis is free software; you can redistribute it and/or modify it\nunder the terms of the GNU Lesser General Public License as\npublished by the Free Software Foundation; either version 2.1 of\nthe License, or (at your option) any later version.\n\nThis software is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this software; if not, write to the Free\nSoftware Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script setup lang=\"ts\">\nimport messages from \"../translations\";\nimport { CIcon, Size } from \"@xwiki/cristal-icons\";\nimport { inject, onMounted, ref } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport type { AlertsService } from \"@xwiki/cristal-alerts-api\";\nimport type { CristalApp, PageData } from \"@xwiki/cristal-api\";\nimport type { DocumentService } from \"@xwiki/cristal-document-api\";\nimport type { DocumentReference } from \"@xwiki/cristal-model-api\";\nimport type {\n ModelReferenceHandler,\n ModelReferenceHandlerProvider,\n ModelReferenceParser,\n ModelReferenceParserProvider,\n ModelReferenceSerializer,\n ModelReferenceSerializerProvider,\n} from \"@xwiki/cristal-model-reference-api\";\nimport type {\n PageRenameManager,\n PageRenameManagerProvider,\n} from \"@xwiki/cristal-rename-api\";\nimport type { Ref } from \"vue\";\n\nconst { t } = useI18n({\n messages,\n});\nconst props = defineProps<{\n currentPage: PageData | undefined;\n currentPageName: string;\n currentPageReference: DocumentReference;\n}>();\n\nconst cristal: CristalApp = inject<CristalApp>(\"cristal\")!;\nconst alertsService: AlertsService = cristal\n .getContainer()\n .get<AlertsService>(\"AlertsService\")!;\nconst documentService = cristal\n .getContainer()\n .get<DocumentService>(\"DocumentService\");\nconst pageRenameManager: PageRenameManager = cristal\n .getContainer()\n .get<PageRenameManagerProvider>(\"PageRenameManagerProvider\")\n .get();\nconst referenceHandler: ModelReferenceHandler = cristal\n .getContainer()\n .get<ModelReferenceHandlerProvider>(\"ModelReferenceHandlerProvider\")\n .get()!;\nconst referenceParser: ModelReferenceParser = cristal\n .getContainer()\n .get<ModelReferenceParserProvider>(\"ModelReferenceParserProvider\")\n .get()!;\nconst referenceSerializer: ModelReferenceSerializer = cristal\n .getContainer()\n .get<ModelReferenceSerializerProvider>(\"ModelReferenceSerializerProvider\")\n .get()!;\n\nconst dialogOpen: Ref<boolean> = ref(false);\nconst name: Ref<string> = ref(\"\");\nconst existingPage: Ref<PageData | undefined> = ref(undefined);\nlet currentDocumentReference: DocumentReference;\nlet newDocumentReference: DocumentReference;\nlet newDocumentReferenceSerialized: string;\n\nonMounted(() => {\n currentDocumentReference = referenceParser.parse(\n props.currentPageName,\n ) as DocumentReference;\n name.value = currentDocumentReference.name;\n});\n\nasync function renamePage() {\n newDocumentReference = referenceHandler.createDocumentReference(\n name.value,\n currentDocumentReference.space!,\n );\n newDocumentReferenceSerialized =\n referenceSerializer.serialize(newDocumentReference)!;\n\n existingPage.value = await cristal.getPage(newDocumentReferenceSerialized);\n if (!existingPage.value) {\n const result = await pageRenameManager.updateReference(\n props.currentPage!,\n newDocumentReferenceSerialized,\n true,\n );\n dialogOpen.value = false;\n await handleSuccess(result);\n }\n}\n\nasync function handleSuccess(result: { success: boolean; error?: string }) {\n if (result.success) {\n documentService.notifyDocumentChange(\"delete\", props.currentPageReference);\n cristal.setCurrentPage(newDocumentReferenceSerialized, \"view\");\n alertsService.success(\n t(\"page.action.action.rename.page.success\", {\n page: props.currentPageName,\n newPage: newDocumentReferenceSerialized,\n }),\n );\n documentService.notifyDocumentChange(\"update\", newDocumentReference);\n } else {\n alertsService.error(\n t(\"page.action.action.rename.page.error\", {\n page: props.currentPageName,\n reason: result.error!,\n }),\n );\n }\n}\n</script>\n\n<template>\n <x-dialog\n v-model=\"dialogOpen\"\n width=\"auto\"\n :title=\"t('page.action.action.rename.page.dialog.title')\"\n >\n <template #activator>\n <c-icon name=\"pencil-square\" :size=\"Size.Small\"></c-icon>\n {{ t(\"page.action.action.rename.page.title\") }}\n </template>\n <template #default>\n <x-alert v-if=\"existingPage !== undefined\" type=\"error\">\n <i18n-t\n keypath=\"page.action.action.rename.page.alert.content\"\n tag=\"span\"\n >\n <template #pageName>\n <a\n :href=\"\n cristal.getRouter().resolve({\n name: 'view',\n params: { page: newDocumentReferenceSerialized },\n }).href\n \"\n >{{ newDocumentReference }}</a\n >\n </template>\n </i18n-t>\n </x-alert>\n <x-form id=\"page-rename-form\" @form-submit=\"renamePage\">\n <x-text-field\n v-model=\"name\"\n :label=\"t('page.action.action.rename.page.name.label')\"\n :help=\"t('page.action.action.rename.page.name.help')\"\n name=\"name\"\n autofocus\n required\n ></x-text-field>\n </x-form>\n </template>\n <template #footer>\n <x-btn @click.stop=\"dialogOpen = false\">\n {{ t(\"page.action.action.rename.page.cancel\") }}\n </x-btn>\n <x-btn variant=\"primary\" type=\"submit\" form=\"page-rename-form\">\n {{ t(\"page.action.action.rename.page.title\") }}\n </x-btn>\n </template>\n </x-dialog>\n</template>\n\n<style scoped></style>\n"],"names":["useI18n","messages","props","__props","cristal","inject","alertsService","documentService","pageRenameManager","referenceHandler","referenceParser","referenceSerializer","dialogOpen","ref","name","existingPage","currentDocumentReference","newDocumentReference","newDocumentReferenceSerialized","onMounted","renamePage","result","handleSuccess"],"mappings":"oSA0CM,KAAA,CAAE,CAAE,EAAIA,EAAQ,CACpBC,SAAAA,CAAA,CACD,EACKC,EAAQC,EAMRC,EAAsBC,EAAmB,SAAS,EAClDC,EAA+BF,EAClC,aAAa,EACb,IAAmB,eAAe,EAC/BG,EAAkBH,EACrB,aAAa,EACb,IAAqB,iBAAiB,EACnCI,EAAuCJ,EAC1C,aAAA,EACA,IAA+B,2BAA2B,EAC1D,IAAI,EACDK,EAA0CL,EAC7C,aAAA,EACA,IAAmC,+BAA+B,EAClE,IAAI,EACDM,EAAwCN,EAC3C,aAAA,EACA,IAAkC,8BAA8B,EAChE,IAAI,EACDO,EAAgDP,EACnD,aAAA,EACA,IAAsC,kCAAkC,EACxE,IAAI,EAEDQ,EAA2BC,EAAI,EAAK,EACpCC,EAAoBD,EAAI,EAAE,EAC1BE,EAA0CF,EAAI,MAAS,EACzD,IAAAG,EACAC,EACAC,EAEJC,EAAU,IAAM,CACdH,EAA2BN,EAAgB,MACzCR,EAAM,eACR,EACAY,EAAK,MAAQE,EAAyB,IAAA,CACvC,EAED,eAAeI,GAAa,CAStB,GARJH,EAAuBR,EAAiB,wBACtCK,EAAK,MACLE,EAAyB,KAC3B,EAEEE,EAAAP,EAAoB,UAAUM,CAAoB,EAEpDF,EAAa,MAAQ,MAAMX,EAAQ,QAAQc,CAA8B,EACrE,CAACH,EAAa,MAAO,CACjB,MAAAM,EAAS,MAAMb,EAAkB,gBACrCN,EAAM,YACNgB,EACA,EACF,EACAN,EAAW,MAAQ,GACnB,MAAMU,EAAcD,CAAM,CAAA,CAC5B,CAGF,eAAeC,EAAcD,EAA8C,CACrEA,EAAO,SACOd,EAAA,qBAAqB,SAAUL,EAAM,oBAAoB,EACjEE,EAAA,eAAec,EAAgC,MAAM,EAC/CZ,EAAA,QACZ,EAAE,yCAA0C,CAC1C,KAAMJ,EAAM,gBACZ,QAASgB,CACV,CAAA,CACH,EACgBX,EAAA,qBAAqB,SAAUU,CAAoB,GAErDX,EAAA,MACZ,EAAE,uCAAwC,CACxC,KAAMJ,EAAM,gBACZ,OAAQmB,EAAO,KAChB,CAAA,CACH,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{h as s,X as c,al as r,am as i,an as a,m as o,n as l,u as e,ao as m,ap as _,aq as p}from"./index-CR38Q38C.js";const x=s({__name:"c-config-menu",setup(u){return(f,g)=>{const n=c("x-dialog");return r(),i(n,{width:"auto",logo:e(p),title:"Configuration"},{activator:a(({props:t})=>[o(e(m),l({name:"gear"},t),null,16)]),default:a(()=>[o(_,{name:"config"})]),_:1},8,["logo"])}}});export{x as default};
|
|
2
|
+
//# sourceMappingURL=c-config-menu-BSwxmXYu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"c-config-menu-BSwxmXYu.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|