+import{t as e}from"./translation-DoG5ZELJ-DGHp0fUA.chunk.mjs";import{N as O,u as q}from"./logger-D3RVzcfQ-Bkys46hi.chunk.mjs";import{N as C}from"./NcEmptyContent--TRhmNAW-ynM-mZKT.chunk.mjs";import{N as L}from"./TrashCanOutline-ImpP8zID.chunk.mjs";import{u as V,a as z,b as D}from"./AppstoreSearch-Dr3mpHrL.chunk.mjs";import{e as E}from"./index-C1xmmKTZ-CeESs0Yi.chunk.mjs";import{_ as A,l as G}from"./public-C1mLBHT3.chunk.mjs";import{N as R}from"./mdi-BsuzcJkY.chunk.mjs";import{b as j,n as T,U as H,o,f as S,y as f,g as d,u as t,j as B,t as n,h as P,k as b,N as M,F as $,B as U,w as I,s as J,v as k,l as F,z as K,c as v,C as Q}from"./Web-CVG0oWkS.chunk.mjs";import{N as W}from"./NcCheckboxRadioSwitch-B0KUiKrb-BMjYufv5.chunk.mjs";import{u as N,c as X,n as Y,a as Z,b as ee,d as te}from"./appstore-main.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./createElementId-DhjFt1I9-BR-WXAA3.chunk.mjs";import"./NcInputField-C3iof9pY-BIeFuK2c.chunk.mjs";import"./PencilOutline-CVTKhaas.chunk.mjs";import"./NcModal-DyOZxq9E-DJ8lRVba.chunk.mjs";import"./NcTextArea-BwFQx9Bj-DytVB1wt.chunk.mjs";import"./NcContent-Dd15hgck-BO82eoqa.chunk.mjs";import"./index-HEii3ZrW.chunk.mjs";import"./TrayArrowDown-pWpgffUY.chunk.mjs";import"./index-BwhGLTdD.chunk.mjs";import"./NcAvatar-QYahYt2p-B6sbjze-.chunk.mjs";import"./index-BrNm47xe.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-CLsEMAPw.chunk.mjs";import"./colors-2YFh1g7z-Esf5_Pnk.chunk.mjs";import"./NcUserStatusIcon-CNh1vXUF-BrBSNJ0h.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-B4upiZjL-GKzS94MD.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-CW5QNUA_.chunk.mjs";import"./NcPasswordField-ykWHv_hw-Cw2SHBDh.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-DgvCZDmR-CrGIqP5N.chunk.mjs";/* empty css */import"./Plus-DrYPk6mX.chunk.mjs";import"./index-BL1zU5ZX.chunk.mjs";import"./index-B8j2UOwE.chunk.mjs";import"./NcEmojiPicker-DG3qO_fi-C6ID1-jK.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./index-bfyY3p45.chunk.mjs";/* empty css */import"./index-B7Ckn99n.chunk.mjs";import"./NcSelectTags-D3tAMWYx-B8zEI_63.chunk.mjs";import"./ContentCopy-BebwfDO9.chunk.mjs";import"./NcUserBubble-BnaGHDoD-CXGIMXGu.chunk.mjs";import"./index-BpJn58mk.chunk.mjs";import"./pinia-Dn16KcVd.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-C5RtAcX5.chunk.mjs";const ie=["id"],ae={key:0},se=["aria-label"],oe=j({__name:"OfficeSuiteSwitcherItem",props:J({suite:{},loading:{type:Boolean}},{selected:{},selectedModifiers:{}}),emits:["update:selected"],setup(p){const r=T(p,"selected"),m=H(),_=N(),s=k(()=>_.getAppById(p.suite.appId)),y=k(()=>!!s.value?.installed),w=k(()=>!s.value||!y.value&&!X(s.value));return(a,l)=>(o(),S("div",{class:f([a.$style.officeSuiteSwitcherItem,{[a.$style.officeSuiteSwitcherItem_selected]:r.value===p.suite.id}]),onClick:l[3]||(l[3]=i=>r.value=p.suite.id)},[d("div",{class:f(a.$style.officeSuiteSwitcherItem__header)},[d("h3",{id:t(m),class:f(a.$style.officeSuiteSwitcherItem__title)},[B(n(p.suite.name)+" ",1),y.value?(o(),S("span",ae,"("+n(t(e)("appstore","installed"))+")",1)):P("",!0)],10,ie),b(t(W),{modelValue:r.value,"onUpdate:modelValue":l[0]||(l[0]=i=>r.value=i),"aria-labelledby":t(m),disabled:w.value,loading:p.loading,type:"radio",name:"office-suite",value:p.suite.id,onClick:l[1]||(l[1]=M(()=>{},["stop"]))},null,8,["modelValue","aria-labelledby","disabled","loading","value"])],2),d("ul",{"aria-label":t(e)("appstore","Features"),class:f(a.$style.officeSuiteSwitcherItem__features)},[(o(!0),S($,null,U(p.suite.features,(i,c)=>(o(),S("li",{key:c},n(i),1))),128))],10,se),b(t(O),{href:p.suite.learnMoreUrl,onClick:l[2]||(l[2]=M(()=>{},["stop"]))},{default:I(()=>[B(n(t(e)("appstore","Learn more"))+"↗ ",1)]),_:1},8,["href"])],2))}}),re="_officeSuiteSwitcherItem_1x2g7_2",le="_officeSuiteSwitcherItem_selected_1x2g7_23",ce="_officeSuiteSwitcherItem__header_1x2g7_29",pe="_officeSuiteSwitcherItem__title_1x2g7_36",ue="_officeSuiteSwitcherItem__features_1x2g7_42",fe="_officeSuiteSwitcherItem__link_1x2g7_55",ne={officeSuiteSwitcherItem:re,officeSuiteSwitcherItem_selected:le,officeSuiteSwitcherItem__header:ce,officeSuiteSwitcherItem__title:pe,officeSuiteSwitcherItem__features:ue,officeSuiteSwitcherItem__link:fe},me={$style:ne},de=A(oe,[["__cssModules",me]]),g=Object.freeze([{id:"nextcloud-office",appId:"eurooffice",name:"Nextcloud Office",features:[e("settings","Powered by Euro-Office"),e("settings","Good Nextcloud integration"),e("settings","Open source"),e("settings","Best performance"),e("settings","Limited ODF compatibility"),e("settings","Best Microsoft compatibility")],learnMoreUrl:"https://github.com/Euro-Office",isPrimary:!0},{id:"collabora-office",appId:"richdocuments",name:"Collabora Office",features:[e("settings","Best Nextcloud integration"),e("settings","Open source"),e("settings","Good performance"),e("settings","Best security: documents never leave your server"),e("settings","Best ODF compatibility"),e("settings","Best support for legacy files")],learnMoreUrl:"https://nextcloud.com/collaboraonline/",isPrimary:!1}]),_e=j({__name:"OfficeSuiteSwitcher",setup(p){const r=N(),m=G("appstore","isAllInOne",!1),_=F(!1),s=F(y());K(s,l);function y(){for(const i of g){const c=r.apps.find(u=>u.id===i.appId&&u.installed);if(c&&c.active)return i.id}return g.find(i=>i.isPrimary)?.id??null}function w(){s.value=null}async function a(i){const c=r.getAppById(i.appId);c&&Z(c)&&await r.disableApp(i.appId)}async function l(i,c){if(!(_.value||i===c))try{_.value=!0;const u=g.find(h=>h.id===i);if(!u){for(const h of g)await a(h);return}const x=r.getAppById(u.appId);if(Y(x))if(await E({name:e("appstore","Force enable {suite}?",{suite:u.name}),text:e("appstore","Enabling {suite} requires force enabling the app. This may cause issues with your Nextcloud instance. Are you sure you want to proceed?",{suite:u.name}),labelConfirm:e("appstore","Force enable"),labelReject:e("appstore","Cancel"),severity:"warning"}))await r.enableApp(u.appId,!0);else{s.value=c;return}for(const h of g)h.id===i?await r.enableApp(h.appId):await a(h)}finally{_.value=!1}}return(i,c)=>t(m)?(o(),v(t(R),{key:0,type:"info"},{default:I(()=>[d("p",null,n(t(e)("appstore","Office suite switching is managed through the Nextcloud All-in-One interface.")),1),d("p",null,n(t(e)("appstore","Please use the AIO interface to switch between office suites.")),1)]),_:1})):(o(),S("section",{key:1,class:f(i.$style.officeSuiteSwitcher)},[d("h3",{class:f(i.$style.officeSuiteSwitcher__title)},n(t(e)("appstore","Select your preferred office suite.")),3),d("p",null,n(t(e)("appstore","Please note that installing requires manual server setup.")),1),d("fieldset",{class:f(i.$style.officeSuiteSwitcher__cards)},[(o(!0),S($,null,U(t(g),u=>(o(),v(de,{key:u.id,selected:s.value,"onUpdate:selected":c[0]||(c[0]=x=>s.value=x),class:f(i.$style.officeSuiteSwitcher__cardsItem),suite:u,loading:_.value},null,8,["selected","class","suite","loading"]))),128))],2),d("div",{class:f(i.$style.officeSuiteSwitcher__actions)},[b(t(O),{disabled:!s.value,onClick:w},{default:I(()=>[B(n(t(e)("appstore","Disable office suites")),1)]),_:1},8,["disabled"])],2)],2))}}),Se="_officeSuiteSwitcher_1ajfj_2",he="_officeSuiteSwitcher__cards_1ajfj_19",ye="_officeSuiteSwitcher__cardsItem_1ajfj_25",we="_officeSuiteSwitcher__actions_1ajfj_29",ge="_officeSuiteSwitcher__disableButton_1ajfj_33",ve={officeSuiteSwitcher:Se,officeSuiteSwitcher__cards:he,officeSuiteSwitcher__cardsItem:ye,officeSuiteSwitcher__actions:we,officeSuiteSwitcher__disableButton:ge},be={$style:ve},Ie=A(_e,[["__cssModules",be]]),ke=j({__name:"AppstoreBrowse",setup(p){const r=q(),m=N(),_=ee(),s=k(()=>r.params.category),y=k(()=>s.value==="featured"?m.apps.filter(a=>a.level===200):s.value==="supported"?m.apps.filter(a=>a.level===300):m.getAppsByCategory(s.value)),w=V(y);return(a,l)=>(o(),S($,null,[b(z),t(m).isLoadingApps?(o(),v(t(C),{key:0,name:t(e)("appstore","Loading app list")},{icon:I(()=>[b(t(L),{size:64})]),_:1},8,["name"])):(o(),S($,{key:1},[s.value==="office"?(o(),v(Ie,{key:0})):P("",!0),t(w).length?(o(),v(Q(t(_).isGridView?D:te),{key:1,class:f(a.$style.appstoreBrowse),apps:t(w)},null,8,["class","apps"])):(o(),v(t(C),{key:2,name:t(e)("appstore","No matching apps found")},{action:I(()=>[b(t(O),{variant:"primary",onClick:l[0]||(l[0]=i=>a.$router.push({query:a.$route.query,name:"apps-search"}))},{default:I(()=>[B(n(t(e)("appstore","Search everywhere")),1)]),_:1})]),_:1},8,["name"]))],64))],64))}}),Be="_appstoreBrowse_1w3np_2",$e={appstoreBrowse:Be},xe={$style:$e},vt=A(ke,[["__cssModules",xe]]);export{vt as default};
0 commit comments