From 160e754e4ca62be1a49f8cced5b7b033c1f21efa Mon Sep 17 00:00:00 2001 From: Kent Delante Date: Thu, 4 Jun 2026 19:13:52 +0800 Subject: [PATCH] fix(files_external): prevent dropdown heights from shrinking Signed-off-by: Kent Delante --- .../AddExternalStorageDialog.vue | 9 ++++++++- .../AddExternalStorageDialog/ConfigurationEntry.vue | 12 ++++++++++-- dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs | 2 -- dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs.map | 1 - dist/AuthMechanismRsa-DG_XgyTI.chunk.mjs | 2 ++ ...e => AuthMechanismRsa-DG_XgyTI.chunk.mjs.license} | 0 dist/AuthMechanismRsa-DG_XgyTI.chunk.mjs.map | 1 + ... AuthMechanismRsa-DG_XgyTI.chunk.mjs.map.license} | 0 dist/common-AuthMechanismRsa-DGFpo-hc.chunk.css | 1 + dist/files_external-auth_rsa.mjs | 4 ++-- dist/files_external-auth_rsa.mjs.map | 2 +- ...ternal-files_external-settings-DF-XZBpX.chunk.css | 1 - ...ternal-files_external-settings-DegSdC-z.chunk.css | 1 + dist/files_external-settings.css | 5 +++-- dist/files_external-settings.mjs | 2 +- dist/files_external-settings.mjs.map | 2 +- 16 files changed, 31 insertions(+), 14 deletions(-) delete mode 100644 dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs delete mode 100644 dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs.map create mode 100644 dist/AuthMechanismRsa-DG_XgyTI.chunk.mjs rename dist/{AuthMechanismRsa-Bue2F6rp.chunk.mjs.license => AuthMechanismRsa-DG_XgyTI.chunk.mjs.license} (100%) create mode 100644 dist/AuthMechanismRsa-DG_XgyTI.chunk.mjs.map rename dist/{AuthMechanismRsa-Bue2F6rp.chunk.mjs.map.license => AuthMechanismRsa-DG_XgyTI.chunk.mjs.map.license} (100%) create mode 100644 dist/common-AuthMechanismRsa-DGFpo-hc.chunk.css delete mode 100644 dist/files_external-files_external-settings-DF-XZBpX.chunk.css create mode 100644 dist/files_external-files_external-settings-DegSdC-z.chunk.css diff --git a/apps/files_external/src/components/AddExternalStorageDialog/AddExternalStorageDialog.vue b/apps/files_external/src/components/AddExternalStorageDialog/AddExternalStorageDialog.vue index 7e5613bb9a3a7..df809e3b58ef4 100644 --- a/apps/files_external/src/components/AddExternalStorageDialog/AddExternalStorageDialog.vue +++ b/apps/files_external/src/components/AddExternalStorageDialog/AddExternalStorageDialog.vue @@ -93,13 +93,15 @@ watch(authMechanisms, () => { + v-model:users="internalStorage.applicableUsers" + :class="$style.externalStorageDialog__dropdown" /> @@ -108,6 +110,7 @@ watch(authMechanisms, () => { :options="authMechanisms" :disabled="!internalStorage.backend || authMechanisms.length <= 1 || !!(internalStorage.id && internalStorage.authMechanism)" :inputLabel="t('files_external', 'Authentication')" + :class="$style.externalStorageDialog__dropdown" label="name" required /> @@ -146,4 +149,8 @@ watch(authMechanisms, () => { .externalStorageDialog__configuration { margin-block: 0.5rem; } + +.externalStorageDialog__dropdown { + flex: 0 0 auto; +} diff --git a/apps/files_external/src/components/AddExternalStorageDialog/ConfigurationEntry.vue b/apps/files_external/src/components/AddExternalStorageDialog/ConfigurationEntry.vue index 2e4e4d48d1447..54cbd05819721 100644 --- a/apps/files_external/src/components/AddExternalStorageDialog/ConfigurationEntry.vue +++ b/apps/files_external/src/components/AddExternalStorageDialog/ConfigurationEntry.vue @@ -27,12 +27,20 @@ defineProps<{ :name="configKey" :required="!(configOption.flags & ConfigurationFlag.Optional)" :label="configOption.value" - :title="configOption.tooltip" /> + :title="configOption.tooltip" + :class="$style.configurationEntry" /> + :title="configOption.tooltip" + :class="$style.configurationEntry"> {{ configOption.value }} + + diff --git a/dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs b/dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs deleted file mode 100644 index 1c9e7a9fbea38..0000000000000 --- a/dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{b as y,n as g,u as l,o as r,c as p,C as h,w as v,j as _,t as V,s as b,z as M,f as d,F as x,B as w,L as K,M as U,k as f,l as j}from"./Web-BwmPK40i.chunk.mjs";import{c as q}from"./index-BLNGy7h5.chunk.mjs";import{a as L}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{t as s}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{b as N}from"./index-B-dGqfIG.chunk.mjs";import{N as S}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as z}from"./index-BOH7nBEM.chunk.mjs";import{N as A}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{N as B}from"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import{_ as C}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{a as c,C as k}from"./types-BINwlUX8.chunk.mjs";import{l as E}from"./logger-n22jyIXx.chunk.mjs";const P=y({__name:"ConfigurationEntry",props:b({configKey:{},configOption:{}},{modelValue:{type:[String,Boolean],default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=g(e,"modelValue");return(t,i)=>e.configOption.type!==l(c).Boolean?(r(),p(h(e.configOption.type===l(c).Password?l(B):l(C)),{key:0,modelValue:a.value,"onUpdate:modelValue":i[0]||(i[0]=o=>a.value=o),name:e.configKey,required:!(e.configOption.flags&l(k).Optional),label:e.configOption.value,title:e.configOption.tooltip},null,8,["modelValue","name","required","label","title"])):(r(),p(l(A),{key:1,modelValue:a.value,"onUpdate:modelValue":i[1]||(i[1]=o=>a.value=o),type:"switch",title:e.configOption.tooltip},{default:v(()=>[_(V(e.configOption.value),1)]),_:1},8,["modelValue","title"]))}}),R=y({__name:"AuthMechanismRsa",props:b({authMechanism:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=g(e,"modelValue"),t=j();M(t,()=>{t.value&&(a.value.private_key="",a.value.public_key="")});async function i(){try{const{data:o}=await q.post(N("/apps/files_external/ajax/public_key.php"),{keyLength:t.value});a.value.private_key=o.data.private_key,a.value.public_key=o.data.public_key}catch(o){E.error("Error generating RSA key pair",{error:o}),L(s("files_external","Error generating key pair"))}}return(o,m)=>(r(),d("div",null,[(r(!0),d(x,null,w(e.authMechanism.configuration,(n,u)=>K((r(),p(P,{key:n.value,modelValue:a.value[u],"onUpdate:modelValue":O=>a.value[u]=O,configKey:u,configOption:n},null,8,["modelValue","onUpdate:modelValue","configKey","configOption"])),[[U,!(n.flags&l(k).Hidden)]])),128)),f(l(z),{modelValue:t.value,"onUpdate:modelValue":m[0]||(m[0]=n=>t.value=n),clearable:!1,inputLabel:l(s)("files_external","Key size"),options:[1024,2048,4096],required:""},null,8,["modelValue","inputLabel"]),f(l(S),{disabled:!t.value,wide:"",onClick:i},{default:v(()=>[_(V(l(s)("files_external","Generate keys")),1)]),_:1},8,["disabled"])]))}}),$=Object.freeze(Object.defineProperty({__proto__:null,default:R},Symbol.toStringTag,{value:"Module"}));export{$ as A,P as _}; -//# sourceMappingURL=AuthMechanismRsa-Bue2F6rp.chunk.mjs.map diff --git a/dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs.map b/dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs.map deleted file mode 100644 index 860d8d44bb536..0000000000000 --- a/dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"AuthMechanismRsa-Bue2F6rp.chunk.mjs","sources":["../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/ConfigurationEntry.vue","../build/frontend/apps/files_external/src/views/AuthMechanismRsa.vue"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n"],"names":["value","_useModel","__props","_unref","ConfigurationType","_createBlock","_resolveDynamicComponent","NcPasswordField","NcTextField","$event","ConfigurationFlag","NcCheckboxRadioSwitch","_createTextVNode","_toDisplayString","modelValue","keySize","ref","watch","generateKeys","data","axios","generateUrl","error","logger","showError","t","_createElementBlock","_openBlock","_Fragment","configOption","configKey","ConfigurationEntry","_vShow","_createVNode","NcSelect","NcButton"],"mappings":"w+BAaA,MAAMA,EAAQC,EAA6BC,EAAC,YAA6B,eAWjEA,EAAA,aAAa,OAASC,EAAAC,CAAA,EAAkB,aAF/CC,EAOiCC,EAN3BJ,EAAA,aAAa,OAASC,EAAAC,CAAA,EAAkB,SAAWD,EAAAI,CAAA,EAAkBJ,EAAAK,CAAA,CAAW,EAAA,kBAE5ER,EAAA,2CAAAA,EAAK,MAAAS,GACb,KAAMP,EAAA,UACN,WAAYA,EAAA,aAAa,MAAQC,EAAAO,CAAA,EAAkB,UACnD,MAAOR,EAAA,aAAa,MACpB,MAAOA,EAAA,aAAa,OAAA,iEACtBG,EAMwBF,EAAAQ,CAAA,EAAA,kBAJdX,EAAA,2CAAAA,EAAK,MAAAS,GACd,KAAK,SACJ,MAAOP,EAAA,aAAa,OAAA,aACrB,IAAwB,CAArBU,EAAAC,EAAAX,EAAA,aAAa,KAAK,EAAA,CAAA,CAAA,mLChBvB,MAAMY,EAAab,EAA6CC,EAAA,YAAmB,EAM7Ea,EAAUC,EAAA,EAChBC,EAAMF,EAAS,IAAM,CAChBA,EAAQ,QACXD,EAAW,MAAM,YAAc,GAC/BA,EAAW,MAAM,WAAa,GAEhC,CAAC,EAKD,eAAeI,GAAe,CAC7B,GAAI,CAEH,KAAM,CAAE,KAAAC,GAAS,MAAMC,EAAM,KAAKC,EAAY,0CAA0C,EAAG,CAC1F,UAAWN,EAAQ,KAAA,CACnB,EAEDD,EAAW,MAAM,YAAcK,EAAK,KAAK,YACzCL,EAAW,MAAM,WAAaK,EAAK,KAAK,UACzC,OAASG,EAAO,CACfC,EAAO,MAAM,gCAAiC,CAAE,MAAAD,CAAA,CAAO,EACvDE,EAAUC,EAAE,iBAAkB,2BAA2B,CAAC,CAC3D,CACD,mBAICC,EAsBM,MAAA,KAAA,EArBLC,EAAA,EAAA,EAAAD,EAMgCE,SALG1B,EAAA,cAAc,cAAa,CAAtD2B,EAAcC,WADtBzB,EAMgC0B,EAAA,CAH9B,IAAKF,EAAa,MACV,WAAAf,EAAA,MAAWgB,CAAS,EAApB,sBAAArB,GAAAK,EAAA,MAAWgB,CAAS,EAAArB,EAC5B,UAAAqB,EACA,aAAAD,CAAA,4EAJS,CAAAG,EAAA,EAAAH,EAAa,MAAQ1B,EAAAO,CAAA,EAAkB,OAAM,CAAA,UAMxDuB,EAKY9B,EAAA+B,CAAA,EAAA,YAJFnB,EAAA,2CAAAA,EAAO,MAAAN,GACf,UAAW,GACX,WAAYN,EAAAsB,CAAA,EAAC,iBAAA,UAAA,EACb,QAAS,CAAA,KAAA,KAAA,IAAA,EACV,SAAA,EAAA,sCAEDQ,EAKW9B,EAAAgC,CAAA,EAAA,CAJT,UAAWpB,EAAA,MACZ,KAAA,GACC,QAAOG,CAAA,aACR,IAA0C,KAAvCf,EAAAsB,CAAA,EAAC,iBAAA,eAAA,CAAA,EAAA,CAAA,CAAA"} \ No newline at end of file diff --git a/dist/AuthMechanismRsa-DG_XgyTI.chunk.mjs b/dist/AuthMechanismRsa-DG_XgyTI.chunk.mjs new file mode 100644 index 0000000000000..cccf1f958d62b --- /dev/null +++ b/dist/AuthMechanismRsa-DG_XgyTI.chunk.mjs @@ -0,0 +1,2 @@ +import{b as g,n as _,u as o,o as r,c as p,C as M,y as d,w as v,j as V,t as b,s as k,z as x,f,F as E,B as q,L as K,M as U,k as c,l as j}from"./Web-BwmPK40i.chunk.mjs";import{c as w}from"./index-BLNGy7h5.chunk.mjs";import{a as C}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{t as u}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{b as L}from"./index-B-dGqfIG.chunk.mjs";import{N}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as S}from"./index-BOH7nBEM.chunk.mjs";import{N as z}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{N as A}from"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import{_ as B}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{a as y,C as O}from"./types-BINwlUX8.chunk.mjs";import{_ as $}from"./public-C1mLBHT3.chunk.mjs";import{l as P}from"./logger-n22jyIXx.chunk.mjs";const R=g({__name:"ConfigurationEntry",props:k({configKey:{},configOption:{}},{modelValue:{type:[String,Boolean],default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=_(e,"modelValue");return(l,i)=>e.configOption.type!==o(y).Boolean?(r(),p(M(e.configOption.type===o(y).Password?o(A):o(B)),{key:0,modelValue:a.value,"onUpdate:modelValue":i[0]||(i[0]=t=>a.value=t),name:e.configKey,required:!(e.configOption.flags&o(O).Optional),label:e.configOption.value,title:e.configOption.tooltip,class:d(l.$style.configurationEntry)},null,8,["modelValue","name","required","label","title","class"])):(r(),p(o(z),{key:1,modelValue:a.value,"onUpdate:modelValue":i[1]||(i[1]=t=>a.value=t),type:"switch",title:e.configOption.tooltip,class:d(l.$style.configurationEntry)},{default:v(()=>[V(b(e.configOption.value),1)]),_:1},8,["modelValue","title","class"]))}}),F="_configurationEntry_1cmcq_2",G={configurationEntry:F},H={$style:G},T=$(R,[["__cssModules",H]]),D=g({__name:"AuthMechanismRsa",props:k({authMechanism:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=_(e,"modelValue"),l=j();x(l,()=>{l.value&&(a.value.private_key="",a.value.public_key="")});async function i(){try{const{data:t}=await w.post(L("/apps/files_external/ajax/public_key.php"),{keyLength:l.value});a.value.private_key=t.data.private_key,a.value.public_key=t.data.public_key}catch(t){P.error("Error generating RSA key pair",{error:t}),C(u("files_external","Error generating key pair"))}}return(t,m)=>(r(),f("div",null,[(r(!0),f(E,null,q(e.authMechanism.configuration,(n,s)=>K((r(),p(T,{key:n.value,modelValue:a.value[s],"onUpdate:modelValue":h=>a.value[s]=h,configKey:s,configOption:n},null,8,["modelValue","onUpdate:modelValue","configKey","configOption"])),[[U,!(n.flags&o(O).Hidden)]])),128)),c(o(S),{modelValue:l.value,"onUpdate:modelValue":m[0]||(m[0]=n=>l.value=n),clearable:!1,inputLabel:o(u)("files_external","Key size"),options:[1024,2048,4096],required:""},null,8,["modelValue","inputLabel"]),c(o(N),{disabled:!l.value,wide:"",onClick:i},{default:v(()=>[V(b(o(u)("files_external","Generate keys")),1)]),_:1},8,["disabled"])]))}}),ne=Object.freeze(Object.defineProperty({__proto__:null,default:D},Symbol.toStringTag,{value:"Module"}));export{ne as A,T as C}; +//# sourceMappingURL=AuthMechanismRsa-DG_XgyTI.chunk.mjs.map diff --git a/dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs.license b/dist/AuthMechanismRsa-DG_XgyTI.chunk.mjs.license similarity index 100% rename from dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs.license rename to dist/AuthMechanismRsa-DG_XgyTI.chunk.mjs.license diff --git a/dist/AuthMechanismRsa-DG_XgyTI.chunk.mjs.map b/dist/AuthMechanismRsa-DG_XgyTI.chunk.mjs.map new file mode 100644 index 0000000000000..f11b1fb4d6d9f --- /dev/null +++ b/dist/AuthMechanismRsa-DG_XgyTI.chunk.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"AuthMechanismRsa-DG_XgyTI.chunk.mjs","sources":["../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/ConfigurationEntry.vue","../build/frontend/apps/files_external/src/views/AuthMechanismRsa.vue"],"sourcesContent":["\n\n\n\n\n\n\n","\n\n\n\n\n"],"names":["value","_useModel","__props","_unref","ConfigurationType","_createBlock","_resolveDynamicComponent","NcPasswordField","NcTextField","$event","ConfigurationFlag","_normalizeClass","$style","NcCheckboxRadioSwitch","_createTextVNode","_toDisplayString","modelValue","keySize","ref","watch","generateKeys","data","axios","generateUrl","error","logger","showError","t","_createElementBlock","_openBlock","_Fragment","configOption","configKey","ConfigurationEntry","_vShow","_createVNode","NcSelect","NcButton"],"mappings":"qhCAaA,MAAMA,EAAQC,EAA6BC,EAAC,YAA6B,eAWjEA,EAAA,aAAa,OAASC,EAAAC,CAAA,EAAkB,aAF/CC,EAQsCC,EAPhCJ,EAAA,aAAa,OAASC,EAAAC,CAAA,EAAkB,SAAWD,EAAAI,CAAA,EAAkBJ,EAAAK,CAAA,CAAW,EAAA,kBAE5ER,EAAA,2CAAAA,EAAK,MAAAS,GACb,KAAMP,EAAA,UACN,WAAYA,EAAA,aAAa,MAAQC,EAAAO,CAAA,EAAkB,UACnD,MAAOR,EAAA,aAAa,MACpB,MAAOA,EAAA,aAAa,QACpB,MAAKS,EAAEC,EAAAA,OAAO,kBAAkB,CAAA,yEAClCP,EAOwBF,EAAAU,CAAA,EAAA,kBALdb,EAAA,2CAAAA,EAAK,MAAAS,GACd,KAAK,SACJ,MAAOP,EAAA,aAAa,QACpB,MAAKS,EAAEC,EAAAA,OAAO,kBAAkB,CAAA,aACjC,IAAwB,CAArBE,EAAAC,EAAAb,EAAA,aAAa,KAAK,EAAA,CAAA,CAAA,6RClBvB,MAAMc,EAAaf,EAA6CC,EAAA,YAAmB,EAM7Ee,EAAUC,EAAA,EAChBC,EAAMF,EAAS,IAAM,CAChBA,EAAQ,QACXD,EAAW,MAAM,YAAc,GAC/BA,EAAW,MAAM,WAAa,GAEhC,CAAC,EAKD,eAAeI,GAAe,CAC7B,GAAI,CAEH,KAAM,CAAE,KAAAC,GAAS,MAAMC,EAAM,KAAKC,EAAY,0CAA0C,EAAG,CAC1F,UAAWN,EAAQ,KAAA,CACnB,EAEDD,EAAW,MAAM,YAAcK,EAAK,KAAK,YACzCL,EAAW,MAAM,WAAaK,EAAK,KAAK,UACzC,OAASG,EAAO,CACfC,EAAO,MAAM,gCAAiC,CAAE,MAAAD,CAAA,CAAO,EACvDE,EAAUC,EAAE,iBAAkB,2BAA2B,CAAC,CAC3D,CACD,mBAICC,EAsBM,MAAA,KAAA,EArBLC,EAAA,EAAA,EAAAD,EAMgCE,SALG5B,EAAA,cAAc,cAAa,CAAtD6B,EAAcC,WADtB3B,EAMgC4B,EAAA,CAH9B,IAAKF,EAAa,MACV,WAAAf,EAAA,MAAWgB,CAAS,EAApB,sBAAAvB,GAAAO,EAAA,MAAWgB,CAAS,EAAAvB,EAC5B,UAAAuB,EACA,aAAAD,CAAA,4EAJS,CAAAG,EAAA,EAAAH,EAAa,MAAQ5B,EAAAO,CAAA,EAAkB,OAAM,CAAA,UAMxDyB,EAKYhC,EAAAiC,CAAA,EAAA,YAJFnB,EAAA,2CAAAA,EAAO,MAAAR,GACf,UAAW,GACX,WAAYN,EAAAwB,CAAA,EAAC,iBAAA,UAAA,EACb,QAAS,CAAA,KAAA,KAAA,IAAA,EACV,SAAA,EAAA,sCAEDQ,EAKWhC,EAAAkC,CAAA,EAAA,CAJT,UAAWpB,EAAA,MACZ,KAAA,GACC,QAAOG,CAAA,aACR,IAA0C,KAAvCjB,EAAAwB,CAAA,EAAC,iBAAA,eAAA,CAAA,EAAA,CAAA,CAAA"} \ No newline at end of file diff --git a/dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs.map.license b/dist/AuthMechanismRsa-DG_XgyTI.chunk.mjs.map.license similarity index 100% rename from dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs.map.license rename to dist/AuthMechanismRsa-DG_XgyTI.chunk.mjs.map.license diff --git a/dist/common-AuthMechanismRsa-DGFpo-hc.chunk.css b/dist/common-AuthMechanismRsa-DGFpo-hc.chunk.css new file mode 100644 index 0000000000000..b98098e67e75f --- /dev/null +++ b/dist/common-AuthMechanismRsa-DGFpo-hc.chunk.css @@ -0,0 +1 @@ +._configurationEntry_1cmcq_2{flex:1 0 auto} diff --git a/dist/files_external-auth_rsa.mjs b/dist/files_external-auth_rsa.mjs index 263e5c2d5993a..77851306b4f80 100644 --- a/dist/files_external-auth_rsa.mjs +++ b/dist/files_external-auth_rsa.mjs @@ -1,3 +1,3 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/AuthMechanismRsa-Bue2F6rp.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DL1yHC1K-DnBG6QLJ.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BW4M2n71.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-index-DYA_tnKg.chunk.css'),window.OC.filePath('', '', 'dist/mdi-Lt-19ASw.chunk.mjs'),window.OC.filePath('', '', 'dist/common-mdi-BWNFKLbC.chunk.css'),window.OC.filePath('', '', 'dist/index-BOH7nBEM.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-980JFXIN.chunk.css'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'),window.OC.filePath('', '', 'dist/NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'),window.OC.filePath('', '', 'dist/common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'),window.OC.filePath('', '', 'dist/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs'),window.OC.filePath('', '', 'dist/types-BINwlUX8.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-n22jyIXx.chunk.mjs')])))=>i.map(i=>d[i]); -import{d as t,a as i,_ as a}from"./Web-BwmPK40i.chunk.mjs";import"./public-C1mLBHT3.chunk.mjs";const r=i(()=>a(()=>import("./AuthMechanismRsa-Bue2F6rp.chunk.mjs").then(e=>e.A),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]),import.meta.url)),s=t(r,{shadowRoot:!1});customElements.define("files_external-auth-mechanism-rsa",s),window.OCA.FilesExternal.AuthMechanism.registerHandler({id:"rsa",tagName:"files_external-auth-mechanism-rsa",enabled(e){return e.scheme==="publickey"&&e.identifier==="publickey::rsa"}}); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/AuthMechanismRsa-DG_XgyTI.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BwmPK40i.chunk.mjs'),window.OC.filePath('', '', 'dist/public-C1mLBHT3.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BLNGy7h5.chunk.mjs'),window.OC.filePath('', '', 'dist/index-B-dGqfIG.chunk.mjs'),window.OC.filePath('', '', 'dist/util-Alk1iwuj.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DL1yHC1K-DnBG6QLJ.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BW4M2n71.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-CFYnqluG.chunk.mjs'),window.OC.filePath('', '', 'dist/common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'),window.OC.filePath('', '', 'dist/common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'),window.OC.filePath('', '', 'dist/common-NcModal-DUWLRm_F-BsKc2RT9.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-Cv7t-yKN.chunk.mjs'),window.OC.filePath('', '', 'dist/common-TrashCanOutline-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/common-index-DYA_tnKg.chunk.css'),window.OC.filePath('', '', 'dist/mdi-Lt-19ASw.chunk.mjs'),window.OC.filePath('', '', 'dist/common-mdi-BWNFKLbC.chunk.css'),window.OC.filePath('', '', 'dist/index-BOH7nBEM.chunk.mjs'),window.OC.filePath('', '', 'dist/common-index-980JFXIN.chunk.css'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcCheckboxRadioSwitch-D8Dfv4iw-CPGkDj-p.chunk.css'),window.OC.filePath('', '', 'dist/NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs'),window.OC.filePath('', '', 'dist/common-NcInputField-B1bGxYHt-BYHxARP-.chunk.css'),window.OC.filePath('', '', 'dist/common-NcPasswordField-Be5_qcfm-Crp_EMfV.chunk.css'),window.OC.filePath('', '', 'dist/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs'),window.OC.filePath('', '', 'dist/types-BINwlUX8.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-n22jyIXx.chunk.mjs'),window.OC.filePath('', '', 'dist/common-AuthMechanismRsa-DGFpo-hc.chunk.css')])))=>i.map(i=>d[i]); +import{d as t,a as i,_ as a}from"./Web-BwmPK40i.chunk.mjs";import"./public-C1mLBHT3.chunk.mjs";const r=i(()=>a(()=>import("./AuthMechanismRsa-DG_XgyTI.chunk.mjs").then(e=>e.A),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]),import.meta.url)),s=t(r,{shadowRoot:!1});customElements.define("files_external-auth-mechanism-rsa",s),window.OCA.FilesExternal.AuthMechanism.registerHandler({id:"rsa",tagName:"files_external-auth-mechanism-rsa",enabled(e){return e.scheme==="publickey"&&e.identifier==="publickey::rsa"}}); //# sourceMappingURL=files_external-auth_rsa.mjs.map diff --git a/dist/files_external-auth_rsa.mjs.map b/dist/files_external-auth_rsa.mjs.map index 499895562c102..f29b5a3e6444a 100644 --- a/dist/files_external-auth_rsa.mjs.map +++ b/dist/files_external-auth_rsa.mjs.map @@ -1 +1 @@ -{"version":3,"mappings":";+FASA,MAAMA,EAAmBC,EAAqB,UAAM,OAAO,uCAA8B,OAAAC,KAAA,yHAAC,EACpFC,EAA4BC,EAAoBJ,EAAkB,CAAE,WAAY,GAAO,EAC7F,eAAe,OAAO,oCAAqCG,CAAyB,EAEpF,OAAO,IAAI,cAAc,cAAe,gBAAgB,CACvD,GAAI,MACJ,QAAS,oCACT,QAAQE,EAA+B,CACtC,OAAOA,EAAc,SAAW,aAAeA,EAAc,aAAe,gBAC7E,CACD,CAAC","names":["AuthMechanismRsa","defineAsyncComponent","n","AuthMechanismRsaComponent","defineCustomElement","authMechanism"],"ignoreList":[],"sources":["../build/frontend/apps/files_external/src/auth-rsa.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { IAuthMechanism } from './types.ts'\n\nimport { defineAsyncComponent, defineCustomElement } from 'vue'\n\nconst AuthMechanismRsa = defineAsyncComponent(() => import('./views/AuthMechanismRsa.vue'))\nconst AuthMechanismRsaComponent = defineCustomElement(AuthMechanismRsa, { shadowRoot: false })\ncustomElements.define('files_external-auth-mechanism-rsa', AuthMechanismRsaComponent)\n\nwindow.OCA.FilesExternal.AuthMechanism!.registerHandler({\n\tid: 'rsa',\n\ttagName: 'files_external-auth-mechanism-rsa',\n\tenabled(authMechanism: IAuthMechanism) {\n\t\treturn authMechanism.scheme === 'publickey' && authMechanism.identifier === 'publickey::rsa'\n\t},\n})\n"],"file":"files_external-auth_rsa.mjs"} \ No newline at end of file +{"version":3,"mappings":";+FASA,MAAMA,EAAmBC,EAAqB,UAAM,OAAO,uCAA8B,OAAAC,KAAA,4HAAC,EACpFC,EAA4BC,EAAoBJ,EAAkB,CAAE,WAAY,GAAO,EAC7F,eAAe,OAAO,oCAAqCG,CAAyB,EAEpF,OAAO,IAAI,cAAc,cAAe,gBAAgB,CACvD,GAAI,MACJ,QAAS,oCACT,QAAQE,EAA+B,CACtC,OAAOA,EAAc,SAAW,aAAeA,EAAc,aAAe,gBAC7E,CACD,CAAC","names":["AuthMechanismRsa","defineAsyncComponent","n","AuthMechanismRsaComponent","defineCustomElement","authMechanism"],"ignoreList":[],"sources":["../build/frontend/apps/files_external/src/auth-rsa.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { IAuthMechanism } from './types.ts'\n\nimport { defineAsyncComponent, defineCustomElement } from 'vue'\n\nconst AuthMechanismRsa = defineAsyncComponent(() => import('./views/AuthMechanismRsa.vue'))\nconst AuthMechanismRsaComponent = defineCustomElement(AuthMechanismRsa, { shadowRoot: false })\ncustomElements.define('files_external-auth-mechanism-rsa', AuthMechanismRsaComponent)\n\nwindow.OCA.FilesExternal.AuthMechanism!.registerHandler({\n\tid: 'rsa',\n\ttagName: 'files_external-auth-mechanism-rsa',\n\tenabled(authMechanism: IAuthMechanism) {\n\t\treturn authMechanism.scheme === 'publickey' && authMechanism.identifier === 'publickey::rsa'\n\t},\n})\n"],"file":"files_external-auth_rsa.mjs"} \ No newline at end of file diff --git a/dist/files_external-files_external-settings-DF-XZBpX.chunk.css b/dist/files_external-files_external-settings-DF-XZBpX.chunk.css deleted file mode 100644 index 424f02f06696e..0000000000000 --- a/dist/files_external-files_external-settings-DF-XZBpX.chunk.css +++ /dev/null @@ -1 +0,0 @@ -._authMechanismConfiguration_kpcpy_2,._backendConfiguration_1sf6y_2{display:flex;flex-direction:column;gap:var(--default-grid-baseline)}._mountOptions_1fqyb_2{background-color:hsl(from var(--color-primary-element-light) h s calc(l*1.045));border-radius:var(--border-radius-element);display:flex;flex-direction:column;gap:var(--default-grid-baseline);width:100%}._mountOptions__fieldset_1fqyb_12{display:flex;flex-direction:column;gap:var(--default-grid-baseline);padding-inline:calc(2 * var(--default-grid-baseline)) var(--default-grid-baseline)}._externalStorageDialog_9wew8_2{display:flex;flex-direction:column;gap:var(--default-grid-baseline);min-height:calc(14 * var(--default-clickable-area))!important}._externalStorageDialog__configuration_9wew8_9{margin-block:.5rem}._storageTableRow__cellActions_1k62p_2{display:flex;gap:var(--default-grid-baseline)}._storageTableRow__cellApplicable_1k62p_7{display:flex;flex-wrap:wrap;gap:var(--default-grid-baseline);align-items:center;max-height:calc(48px + 2 * var(--default-grid-baseline));overflow:scroll}._storageTableRow__status_warning_1k62p_17{color:var(--color-element-warning)}._storageTableRow__status_error_1k62p_21{color:var(--color-element-error)}._storageTable_1dqte_2{width:100%}._storageTable_1dqte_2 td,th{padding-block:calc(var(--default-grid-baseline) / 2);padding-inline:var(--default-grid-baseline)}._storageTable__header_1dqte_11{color:var(--color-text-maxcontrast);min-height:var(--default-clickable-area)}._storageTable__headerStatus_1dqte_16{width:calc(var(--default-clickable-area) + 2 * var(--default-grid-baseline))}._storageTable__headerFolder_1dqte_20{width:25%}._storageTable__headerBackend_1dqte_24,._storageTable__headerFAuthentication_1dqte_28{width:20%}._storageTable__headerActions_1dqte_32{width:calc(2 * var(--default-clickable-area) + 3 * var(--default-grid-baseline))}._userMountSettings__heading_59moz_2{font-weight:700;font-size:1.2rem;margin-block-start:var(--default-clickable-area)}._userMountSettings__backends_59moz_9{--padding: calc((var(--default-clickable-area) - 20px) / 2 + var(--default-grid-baseline));margin-block-start:var(--padding);margin-inline-start:var(--padding)}._userMountSettings__backends_59moz_9 legend{font-weight:700}._externalStoragesSection__dependantList_atsmn_2{list-style:disc!important;margin-inline-start:calc(var(--default-clickable-area) / 2)}._externalStoragesSection__newStorageButton_atsmn_7{margin-top:var(--default-clickable-area)}._globalCredentialsSectionForm_bgjv2_2{max-width:400px;display:flex;flex-direction:column;align-items:end;gap:15px}._globalCredentialsSectionForm__submit_bgjv2_10{min-width:max(40%,44px)} diff --git a/dist/files_external-files_external-settings-DegSdC-z.chunk.css b/dist/files_external-files_external-settings-DegSdC-z.chunk.css new file mode 100644 index 0000000000000..2913c6e64d89b --- /dev/null +++ b/dist/files_external-files_external-settings-DegSdC-z.chunk.css @@ -0,0 +1 @@ +._authMechanismConfiguration_kpcpy_2,._backendConfiguration_1sf6y_2{display:flex;flex-direction:column;gap:var(--default-grid-baseline)}._mountOptions_1fqyb_2{background-color:hsl(from var(--color-primary-element-light) h s calc(l*1.045));border-radius:var(--border-radius-element);display:flex;flex-direction:column;gap:var(--default-grid-baseline);width:100%}._mountOptions__fieldset_1fqyb_12{display:flex;flex-direction:column;gap:var(--default-grid-baseline);padding-inline:calc(2 * var(--default-grid-baseline)) var(--default-grid-baseline)}._externalStorageDialog_l5jv4_2{display:flex;flex-direction:column;gap:var(--default-grid-baseline);min-height:calc(14 * var(--default-clickable-area))!important}._externalStorageDialog__configuration_l5jv4_9{margin-block:.5rem}._externalStorageDialog__dropdown_l5jv4_13{flex:0 0 auto}._storageTableRow__cellActions_1k62p_2{display:flex;gap:var(--default-grid-baseline)}._storageTableRow__cellApplicable_1k62p_7{display:flex;flex-wrap:wrap;gap:var(--default-grid-baseline);align-items:center;max-height:calc(48px + 2 * var(--default-grid-baseline));overflow:scroll}._storageTableRow__status_warning_1k62p_17{color:var(--color-element-warning)}._storageTableRow__status_error_1k62p_21{color:var(--color-element-error)}._storageTable_1dqte_2{width:100%}._storageTable_1dqte_2 td,th{padding-block:calc(var(--default-grid-baseline) / 2);padding-inline:var(--default-grid-baseline)}._storageTable__header_1dqte_11{color:var(--color-text-maxcontrast);min-height:var(--default-clickable-area)}._storageTable__headerStatus_1dqte_16{width:calc(var(--default-clickable-area) + 2 * var(--default-grid-baseline))}._storageTable__headerFolder_1dqte_20{width:25%}._storageTable__headerBackend_1dqte_24,._storageTable__headerFAuthentication_1dqte_28{width:20%}._storageTable__headerActions_1dqte_32{width:calc(2 * var(--default-clickable-area) + 3 * var(--default-grid-baseline))}._userMountSettings__heading_59moz_2{font-weight:700;font-size:1.2rem;margin-block-start:var(--default-clickable-area)}._userMountSettings__backends_59moz_9{--padding: calc((var(--default-clickable-area) - 20px) / 2 + var(--default-grid-baseline));margin-block-start:var(--padding);margin-inline-start:var(--padding)}._userMountSettings__backends_59moz_9 legend{font-weight:700}._externalStoragesSection__dependantList_atsmn_2{list-style:disc!important;margin-inline-start:calc(var(--default-clickable-area) / 2)}._externalStoragesSection__newStorageButton_atsmn_7{margin-top:var(--default-clickable-area)}._globalCredentialsSectionForm_bgjv2_2{max-width:400px;display:flex;flex-direction:column;align-items:end;gap:15px}._globalCredentialsSectionForm__submit_bgjv2_10{min-width:max(40%,44px)} diff --git a/dist/files_external-settings.css b/dist/files_external-settings.css index 50d733699b5d7..b70bec7342274 100644 --- a/dist/files_external-settings.css +++ b/dist/files_external-settings.css @@ -1,5 +1,5 @@ /* extracted by css-entry-points-plugin */ -@import './files_external-files_external-settings-DF-XZBpX.chunk.css'; +@import './files_external-files_external-settings-DegSdC-z.chunk.css'; @import './common-createElementId-DhjFt1I9-C_oBIsvc.chunk.css'; @import './common-logger-D3RVzcfQ-BE3lcFW4.chunk.css'; @import './common-mdi-BWNFKLbC.chunk.css'; @@ -29,4 +29,5 @@ @import './common-index-CpSoVYoo.chunk.css'; @import './common-NcGuestContent-j8ai4O1K-D0718NyY.chunk.css'; @import './common-index-MZEZ7XGj.chunk.css'; -@import './common-NcUserBubble-CDQa0hGy-f2DD9EAL.chunk.css'; \ No newline at end of file +@import './common-NcUserBubble-CDQa0hGy-f2DD9EAL.chunk.css'; +@import './common-AuthMechanismRsa-DGFpo-hc.chunk.css'; \ No newline at end of file diff --git a/dist/files_external-settings.mjs b/dist/files_external-settings.mjs index 609cac3d3d807..94ee11a6a7684 100644 --- a/dist/files_external-settings.mjs +++ b/dist/files_external-settings.mjs @@ -1,2 +1,2 @@ -import{d as ke,c as Ve}from"./pinia-CLibr4cC.chunk.mjs";import{H as K,a9 as ee,R as Se,v as C,b as $,n as B,o as u,c as k,u as e,l as M,z,f as h,y as x,g as y,t as v,F as S,C as Ce,B as O,L as W,M as Y,h as T,s as Z,a1 as Q,U as ie,k as b,w,j as V,N as Me,e as Ae}from"./Web-BwmPK40i.chunk.mjs";import{s as Ue,g as $e,t as Te,u as Oe,l as Ne,v as qe,N as re,k as Pe}from"./mdi-Lt-19ASw.chunk.mjs";import{_ as N,l as A}from"./public-C1mLBHT3.chunk.mjs";import{t as n,a as Ee}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as P}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{N as F}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{N as ce}from"./ContentCopy-BF1gBM5z.chunk.mjs";import{N as Re,s as Fe}from"./index-BW4M2n71.chunk.mjs";import{N as ae}from"./index-BOH7nBEM.chunk.mjs";import{_ as _e}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{c as U}from"./index-BLNGy7h5.chunk.mjs";import{b as R}from"./index-B-dGqfIG.chunk.mjs";import{N as Be}from"./NcTextArea-Dxzj4zdb-FMRUOSZF.chunk.mjs";import{b as Le}from"./index-DlyLvrtV.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{N as me}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{N as E}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{N as je}from"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CMXcwXc6.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./index-C_wPY1fR.chunk.mjs";/* empty css */import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{N as De}from"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-xEyWukTf.chunk.mjs";import"./NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs";import{N as He}from"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{_ as pe}from"./AuthMechanismRsa-Bue2F6rp.chunk.mjs";import{C as H,a as ge,M as G,S as L,b as Ge,c as Ie}from"./types-BINwlUX8.chunk.mjs";import{a as fe,P as I}from"./index-BU6wm4Hd.chunk.mjs";import{a as te,d as le}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{l as ve}from"./logger-n22jyIXx.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";const Qe='',J=Se(new Map);function be(l){const a=C(()=>ee(l).map(t=>({id:`user:${t}`,user:t,displayName:J.get(t)||t})));return K(async()=>{const t=ee(l).filter(r=>!J.has(r));if(t.length>0){const{data:r}=await U.post(R("/displaynames"),{users:t});for(const[d,c]of Object.entries(r.users))J.set(d,c)}}),a}function ze(l){return C(()=>ee(l).map(ye))}function ye(l){return{id:l,isNoUser:!0,displayName:l,iconSvg:Qe}}const Ze=$({__name:"ApplicableEntities",props:{groups:{default:()=>[]},groupsModifiers:{},users:{default:()=>[]},usersModifiers:{}},emits:["update:groups","update:users"],setup(l){const a=B(l,"groups"),t=B(l,"users"),r=M([]),d=be(t),c=ze(a),o=C({get(){return[...c.value,...d.value]},set(p){t.value=p.filter(_=>_.user).map(_=>_.user),a.value=p.filter(_=>_.isNoUser).map(_=>_.id)}}),i=Le(s,500);async function s(p){const{data:_}=await U.get(R("apps/files_external/ajax/applicable"),{params:{pattern:p,limit:20}}),m=[...r.value.map(g=>[g.id,g]),...Object.entries(_.groups).map(([g,f])=>[g,{...ye(g),displayName:f}]),...Object.entries(_.users).map(([g,f])=>[`user:${g}`,{id:`user:${g}`,user:g,displayName:f}])];r.value=[...new Map(m).values()]}return(p,_)=>(u(),k(e(Be),{modelValue:o.value,"onUpdate:modelValue":_[0]||(_[0]=m=>o.value=m),keepOpen:"",multiple:"",options:r.value,inputLabel:e(n)("files_external","Restrict to"),onSearch:e(i)},null,8,["modelValue","options","inputLabel","onSearch"]))}}),Ke=$({__name:"AuthMechanismConfiguration",props:Z({authMechanism:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(l){const a=B(l,"modelValue"),t=l,r=C(()=>{if(!t.authMechanism.configuration)return;const s=Object.entries(t.authMechanism.configuration).filter(([,p])=>!(p.flags&H.UserProvided));return Object.fromEntries(s)}),d=C(()=>window.OCA.FilesExternal.AuthMechanism.getHandler(t.authMechanism)),c=C(()=>{if(!r.value)return!1;for(const s of Object.values(r.value))if(!(s.flags&H.Hidden||s.flags&H.UserProvided))return!0;return!1}),o=M(!1);K(async()=>{d.value&&(o.value=!0,await window.customElements.whenDefined(d.value.tagName),o.value=!1)}),z(r,()=>{for(const s in r.value)s in a.value||(a.value[s]=r.value[s]?.type===ge.Boolean?!1:"")});function i(s){const p=[s.detail].flat()[0];a.value={...a.value,...p}}return(s,p)=>c.value?(u(),h("fieldset",{key:0,class:x(s.$style.authMechanismConfiguration)},[y("legend",null,v(e(n)("files_external","Authentication")),1),d.value?(u(),h(S,{key:0},[o.value?(u(),k(e(me),{key:0})):(u(),k(Ce(d.value.tagName),{key:1,".modelValue":a.value,".authMechanism":l.authMechanism,"onUpdate:modelValue":i},null,40,[".modelValue",".authMechanism"]))],64)):(u(!0),h(S,{key:1},O(r.value,(_,m)=>W((u(),k(pe,{key:_.value,modelValue:a.value[m],"onUpdate:modelValue":g=>a.value[m]=g,"config-key":m,"config-option":_},null,8,["modelValue","onUpdate:modelValue","config-key","config-option"])),[[Y,!(_.flags&e(H).Hidden)]])),128))],2)):T("",!0)}}),We="_authMechanismConfiguration_kpcpy_2",Ye={authMechanismConfiguration:We},Je={$style:Ye},Xe=N(Ke,[["__cssModules",Je]]),ea=$({__name:"BackendConfiguration",props:Z({configuration:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(l){const a=B(l,"modelValue"),t=l;return z(()=>t.configuration,()=>{for(const r in t.configuration)r in a.value||(a.value[r]=t.configuration[r]?.defaultValue??(t.configuration[r]?.type===ge.Boolean?!1:""))},{immediate:!0}),(r,d)=>(u(),h("fieldset",{class:x(r.$style.backendConfiguration)},[y("legend",null,v(e(n)("files_external","Storage configuration")),1),(u(!0),h(S,null,O(l.configuration,(c,o)=>W((u(),k(pe,{key:c.value,modelValue:a.value[o],"onUpdate:modelValue":i=>a.value[o]=i,configKey:o,configOption:c},null,8,["modelValue","onUpdate:modelValue","configKey","configOption"])),[[Y,!(c.flags&e(H).Hidden)]])),128))],2))}}),aa="_backendConfiguration_1sf6y_2",ta={backendConfiguration:aa},la={$style:ta},sa=N(ea,[["__cssModules",la]]),{isAdmin:na}=A("files_external","settings"),se=ke("files_external--storages",()=>{const l=M([]),a=M([]);async function t(m){const g=R("apps/files_external/globalstorages"),{data:f}=await U.post(g,Q(m),{confirmPassword:I.Strict});l.value.push(j(f))}async function r(m){const g=R("apps/files_external/userstorages"),{data:f}=await U.post(g,Q(m),{confirmPassword:I.Strict});a.value.push(j(f))}async function d(m){await U.delete(p(m),{confirmPassword:I.Strict}),m.type==="personal"?a.value=a.value.filter(g=>g.id!==m.id):l.value=l.value.filter(g=>g.id!==m.id)}async function c(m){const{data:g}=await U.put(p(m),Q(m),{confirmPassword:I.Strict});_(j(g))}async function o(m){const{data:g}=await U.get(p(m));_(j(g))}return s(),{globalStorages:l,userStorages:a,createGlobalStorage:t,createUserStorage:r,deleteStorage:d,reloadStorage:o,updateStorage:c};async function i(m){const g=`apps/files_external/${m}`,{data:f}=await U.get(R(g));return Object.values(f).map(j)}async function s(){fe(U),na?l.value=await i("globalstorages"):(a.value=await i("userstorages"),l.value=await i("userglobalstorages"))}function p(m){const g=m.type==="personal"?"userstorages":"globalstorages";return R(`apps/files_external/${g}/${m.id}`)}function _(m){if(m.type==="personal"){const g=a.value.findIndex(f=>f.id===m.id);a.value.splice(g,1,m)}else{const g=l.value.findIndex(f=>f.id===m.id);l.value.splice(g,1,m)}}});function j(l){return{...l,mountOptions:he(l.mountOptions)}}function he(l){const a={...l};return a.encrypt=D(a.encrypt,!0),a.previews=D(a.previews,!0),a.enable_sharing=D(a.enable_sharing,!1),a.filesystem_check_changes=typeof a.filesystem_check_changes=="string"?Number.parseInt(a.filesystem_check_changes):a.filesystem_check_changes??G.OncePerRequest,a.encoding_compatibility=D(a.encoding_compatibility,!1),a.readonly=D(a.readonly,!1),a}function D(l,a=!1){return l===void 0?a:l===!0||l==="true"||l==="1"}const oa=["id","aria-labelledby"],ia=$({__name:"MountOptions",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(l){const a=B(l,"modelValue");K(()=>{Object.keys(a.value).length===0&&(a.value=he(a.value))});const{hasEncryption:t}=A("files_external","settings"),r=ie(),d=ie(),c=M(!1),o=[{label:n("files_external","Never"),value:G.Never},{label:n("files_external","Once every direct access"),value:G.OncePerRequest},{label:n("files_external","Always"),value:G.Always}],i=C({get(){return o.find(s=>s.value===a.value.filesystem_check_changes)},set(s){a.value.filesystem_check_changes=s?.value??G.OncePerRequest}});return(s,p)=>(u(),h("div",{class:x(s.$style.mountOptions)},[b(e(P),{id:e(r),"aria-controls":e(d),"aria-expanded":c.value,variant:"tertiary-no-background",onClick:p[0]||(p[0]=_=>c.value=!c.value)},{icon:w(()=>[b(e(F),{directional:"",path:c.value?e(Ue):e($e)},null,8,["path"])]),default:w(()=>[V(" "+v(e(n)("files_external","Mount options")),1)]),_:1},8,["id","aria-controls","aria-expanded"]),W(y("fieldset",{id:e(d),class:x(s.$style.mountOptions__fieldset),"aria-labelledby":e(r)},[b(e(ae),{modelValue:i.value,"onUpdate:modelValue":p[1]||(p[1]=_=>i.value=_),inputLabel:e(n)("files_external","Check filesystem changes"),options:o},null,8,["modelValue","inputLabel"]),b(e(E),{modelValue:l.modelValue.readonly,"onUpdate:modelValue":p[2]||(p[2]=_=>l.modelValue.readonly=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Read only")),1)]),_:1},8,["modelValue"]),b(e(E),{modelValue:l.modelValue.previews,"onUpdate:modelValue":p[3]||(p[3]=_=>l.modelValue.previews=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Enable previews")),1)]),_:1},8,["modelValue"]),b(e(E),{modelValue:l.modelValue.enable_sharing,"onUpdate:modelValue":p[4]||(p[4]=_=>l.modelValue.enable_sharing=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Enable sharing")),1)]),_:1},8,["modelValue"]),e(t)?(u(),k(e(E),{key:0,modelValue:l.modelValue.encrypt,"onUpdate:modelValue":p[5]||(p[5]=_=>l.modelValue.encrypt=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Enable encryption")),1)]),_:1},8,["modelValue"])):T("",!0),b(e(E),{modelValue:l.modelValue.encoding_compatibility,"onUpdate:modelValue":p[6]||(p[6]=_=>l.modelValue.encoding_compatibility=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Compatibility with Mac NFD encoding (slow)")),1)]),_:1},8,["modelValue"])],10,oa),[[Y,c.value]])],2))}}),ra="_mountOptions_1fqyb_2",ua="_mountOptions__fieldset_1fqyb_12",da={mountOptions:ra,mountOptions__fieldset:ua},ca={$style:da},_a=N(ia,[["__cssModules",ca]]),{isAdmin:ue}=A("files_external","settings"),ma=A("files_external","allowedBackends"),de=A("files_external","backends").filter(l=>ma.includes(l.identifier)),pa=A("files_external","authMechanisms"),ga=$({__name:"AddExternalStorageDialog",props:Z({storage:{default:()=>({backendOptions:{},mountOptions:{},type:ue?"system":"personal"})}},{open:{type:Boolean,default:!0},openModifiers:{}}),emits:Z(["close"],["update:open"]),setup(l){const a=B(l,"open"),t=M(structuredClone(Q(l.storage)));K(()=>{a.value&&(t.value=structuredClone(Q(l.storage)))});const r=C({get(){return de.find(o=>o.identifier===t.value.backend)},set(o){t.value.backend=o?.identifier}}),d=C(()=>pa.filter(({scheme:o})=>r.value?.authSchemes[o])),c=C({get(){return d.value.find(o=>o.identifier===t.value.authMechanism)},set(o){t.value.authMechanism=o?.identifier}});return z(d,()=>{d.value.length===1&&(t.value.authMechanism=d.value[0].identifier)}),(o,i)=>(u(),k(e(Re),{open:a.value,"onUpdate:open":[i[9]||(i[9]=s=>a.value=s),i[11]||(i[11]=s=>s||o.$emit("close"))],isForm:"",contentClasses:o.$style.externalStorageDialog,name:t.value.id?e(n)("files_external","Edit storage"):e(n)("files_external","Add storage"),onSubmit:i[10]||(i[10]=s=>o.$emit("close",t.value))},{actions:w(()=>[l.storage.id?(u(),k(e(P),{key:0,onClick:i[8]||(i[8]=s=>o.$emit("close"))},{default:w(()=>[V(v(e(n)("files_external","Cancel")),1)]),_:1})):T("",!0),b(e(P),{variant:"primary",type:"submit"},{default:w(()=>[V(v(l.storage.id?e(n)("files_external","Edit"):e(n)("files_external","Create")),1)]),_:1})]),default:w(()=>[b(e(_e),{modelValue:t.value.mountPoint,"onUpdate:modelValue":i[0]||(i[0]=s=>t.value.mountPoint=s),label:e(n)("files_external","Folder name"),required:""},null,8,["modelValue","label"]),b(_a,{modelValue:t.value.mountOptions,"onUpdate:modelValue":i[1]||(i[1]=s=>t.value.mountOptions=s)},null,8,["modelValue"]),e(ue)?(u(),k(Ze,{key:0,groups:t.value.applicableGroups,"onUpdate:groups":i[2]||(i[2]=s=>t.value.applicableGroups=s),users:t.value.applicableUsers,"onUpdate:users":i[3]||(i[3]=s=>t.value.applicableUsers=s)},null,8,["groups","users"])):T("",!0),b(e(ae),{modelValue:r.value,"onUpdate:modelValue":i[4]||(i[4]=s=>r.value=s),options:e(de),disabled:!!(t.value.id&&t.value.backend),inputLabel:e(n)("files_external","External storage"),label:"name",required:""},null,8,["modelValue","options","disabled","inputLabel"]),b(e(ae),{modelValue:c.value,"onUpdate:modelValue":i[5]||(i[5]=s=>c.value=s),options:d.value,disabled:!t.value.backend||d.value.length<=1||!!(t.value.id&&t.value.authMechanism),inputLabel:e(n)("files_external","Authentication"),label:"name",required:""},null,8,["modelValue","options","disabled","inputLabel"]),r.value&&t.value.backendOptions?(u(),k(sa,{key:1,modelValue:t.value.backendOptions,"onUpdate:modelValue":i[6]||(i[6]=s=>t.value.backendOptions=s),class:x(o.$style.externalStorageDialog__configuration),configuration:r.value.configuration},null,8,["modelValue","class","configuration"])):T("",!0),c.value&&t.value.backendOptions?(u(),k(Xe,{key:2,modelValue:t.value.backendOptions,"onUpdate:modelValue":i[7]||(i[7]=s=>t.value.backendOptions=s),class:x(o.$style.externalStorageDialog__configuration),authMechanism:c.value},null,8,["modelValue","class","authMechanism"])):T("",!0)]),_:1},8,["open","contentClasses","name"]))}}),fa="_externalStorageDialog_9wew8_2",va="_externalStorageDialog__configuration_9wew8_9",ba={externalStorageDialog:fa,externalStorageDialog__configuration:va},ya={$style:ba},xe=N(ga,[["__cssModules",ya]]),ha={class:"hidden-visually"},xa={key:0},wa=$({__name:"ExternalStorageTableRow",props:{storage:{},isAdmin:{type:Boolean}},setup(l){const a=l,t=se(),r=A("files_external","backends"),d=C(()=>r.find(f=>f.identifier===a.storage.backend).name),c=A("files_external","authMechanisms"),o=C(()=>c.find(f=>f.identifier===a.storage.authMechanism).name),i=M(!1),s=C(()=>{if(i.value)return{icon:"loading",label:n("files_external","Checking …")};const f=a.storage.status??L.Indeterminate,ne=a.storage.statusMessage||Ge[f],q=Ie[f],oe=f===L.NetworkError||f===L.Timeout,we=!oe&&f!==L.Success&&f!==L.Indeterminate;return{icon:q,label:ne,isWarning:oe,isError:we}}),p=be(()=>a.storage.applicableUsers||[]);async function _(){await t.deleteStorage(a.storage)}async function m(){const f=await Fe(xe,{storage:a.storage});f&&await t.updateStorage(f)}async function g(){i.value=!0;try{await t.reloadStorage(a.storage)}finally{i.value=!1}}return(f,ne)=>(u(),h("tr",{class:x(f.$style.storageTableRow)},[y("td",null,[y("span",ha,v(s.value.label),1),b(e(P),{"aria-label":e(n)("files_external","Recheck status"),title:s.value.label,variant:"tertiary-no-background",onClick:g},{icon:w(()=>[s.value.icon==="loading"?(u(),k(e(me),{key:0})):(u(),k(e(F),{key:1,class:x({[f.$style.storageTableRow__status_error]:s.value.isError,[f.$style.storageTableRow__status_warning]:s.value.isWarning}),path:s.value.icon},null,8,["class","path"]))]),_:1},8,["aria-label","title"])]),y("td",null,v(l.storage.mountPoint),1),y("td",null,v(d.value),1),y("td",null,v(o.value),1),l.isAdmin?(u(),h("td",xa,[y("div",{class:x(f.$style.storageTableRow__cellApplicable)},[(u(!0),h(S,null,O(l.storage.applicableGroups,q=>(u(),k(e(je),{key:q,iconPath:e(Te),noClose:"",text:q},null,8,["iconPath","text"]))),128)),(u(!0),h(S,null,O(e(p),q=>(u(),k(e(He),{key:q.user,displayName:q.displayName,size:24,user:q.user},null,8,["displayName","user"]))),128))],2)])):T("",!0),y("td",null,[l.isAdmin||l.storage.type==="personal"?(u(),h("div",{key:0,class:x(f.$style.storageTableRow__cellActions)},[b(e(P),{"aria-label":e(n)("files_external","Edit"),title:e(n)("files_external","Edit"),onClick:m},{icon:w(()=>[b(e(F),{path:e(Oe)},null,8,["path"])]),_:1},8,["aria-label","title"]),b(e(P),{"aria-label":e(n)("files_external","Delete"),title:e(n)("files_external","Delete"),variant:"error",onClick:_},{icon:w(()=>[b(e(F),{path:e(Ne)},null,8,["path"])]),_:1},8,["aria-label","title"])],2)):(u(),k(e(F),{key:1,inline:"",path:e(qe),name:e(n)("files_external","System provided storage"),title:e(n)("files_external","System provided storage")},null,8,["path","name","title"]))])],2))}}),ka="_storageTableRow__cellActions_1k62p_2",Va="_storageTableRow__cellApplicable_1k62p_7",Sa="_storageTableRow__status_warning_1k62p_17",Ca="_storageTableRow__status_error_1k62p_21",Ma={storageTableRow__cellActions:ka,storageTableRow__cellApplicable:Va,storageTableRow__status_warning:Sa,storageTableRow__status_error:Ca},Aa={$style:Ma},Ua=N(wa,[["__cssModules",Aa]]),$a=["aria-label"],Ta={class:"hidden-visually"},Oa={key:0},Na={class:"hidden-visually"},qa=$({__name:"ExternalStorageTable",setup(l){const a=se(),{isAdmin:t}=A("files_external","settings"),r=C(()=>t?a.globalStorages:[...a.userStorages,...a.globalStorages]);return(d,c)=>(u(),h("table",{class:x(d.$style.storageTable),"aria-label":e(n)("files_external","External storages")},[y("thead",{class:x(d.$style.storageTable__header)},[y("tr",null,[y("th",{class:x(d.$style.storageTable__headerStatus)},[y("span",Ta,v(e(n)("files_external","Status")),1)],2),y("th",{class:x(d.$style.storageTable__headerFolder)},v(e(n)("files_external","Folder name")),3),y("th",{class:x(d.$style.storageTable__headerBackend)},v(e(n)("files_external","External storage")),3),y("th",{class:x(d.$style.storageTable__headerAuthentication)},v(e(n)("files_external","Authentication")),3),e(t)?(u(),h("th",Oa,v(e(n)("files_external","Restricted to")),1)):T("",!0),y("th",{class:x(d.$style.storageTable__headerActions)},[y("span",Na,v(e(n)("files_external","Actions")),1)],2)])],2),y("tbody",null,[(u(!0),h(S,null,O(r.value,o=>(u(),k(Ua,{key:o.id,isAdmin:e(t),storage:o},null,8,["isAdmin","storage"]))),128))])],10,$a))}}),Pa="_storageTable_1dqte_2",Ea="_storageTable__header_1dqte_11",Ra="_storageTable__headerStatus_1dqte_16",Fa="_storageTable__headerFolder_1dqte_20",Ba="_storageTable__headerBackend_1dqte_24",La="_storageTable__headerFAuthentication_1dqte_28",ja="_storageTable__headerActions_1dqte_32",Da={storageTable:Pa,storageTable__header:Ea,storageTable__headerStatus:Ra,storageTable__headerFolder:Fa,storageTable__headerBackend:Ba,storageTable__headerFAuthentication:La,storageTable__headerActions:ja},Ha={$style:Da},Ga=N(qa,[["__cssModules",Ha]]),Ia=$({__name:"UserMountSettings",setup(l){const a=A("files_external","user-mounting"),t=A("files_external","backends").filter(c=>c.identifier!=="local"),r=M(a.allowUserMounting),d=M(a.allowedBackends);return z(r,()=>{const c=!r.value;window.OCP.AppConfig.setValue("files_external","allow_user_mounting",r.value?"yes":"no",{success:()=>le(n("files_external","Saved")),error:()=>{r.value=c,te(n("files_external","Error while saving"))}})}),z(d,(c,o)=>{window.OCP.AppConfig.setValue("files_external","user_mounting_backends",c.join(","),{success:()=>le(n("files_external","Saved allowed backends")),error:()=>{te(n("files_external","Failed to save allowed backends")),d.value=o}})}),(c,o)=>(u(),h("form",null,[y("h3",{class:x(c.$style.userMountSettings__heading)},v(e(n)("files_external","Advanced options for external storage mounts")),3),b(e(E),{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=i=>r.value=i),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Allow people to mount external storage")),1)]),_:1},8,["modelValue"]),W(y("fieldset",{class:x(c.$style.userMountSettings__backends)},[y("legend",null,v(e(n)("files_external","External storage backends people are allowed to mount")),1),(u(!0),h(S,null,O(e(t),i=>(u(),k(e(E),{key:i.identifier,modelValue:d.value,"onUpdate:modelValue":o[1]||(o[1]=s=>d.value=s),value:i.identifier,name:"allowUserMountingBackends[]"},{default:w(()=>[V(v(i.name),1)]),_:2},1032,["modelValue","value"]))),128))],2),[[Y,r.value]])]))}}),Qa="_userMountSettings__heading_59moz_2",za="_userMountSettings__backends_59moz_9",Za={userMountSettings__heading:Qa,userMountSettings__backends:za},Ka={$style:Za},Wa=N(Ia,[["__cssModules",Ka]]);const Ya=["aria-label"],Ja=$({__name:"ExternalStoragesSection",setup(l){const a=A("files_external","settings",{docUrl:"",dependencyIssues:{messages:null,modules:null},isAdmin:!1}),t=se(),r=a.dependencyIssues?.messages??[],d=a.dependencyIssues?.modules??{},c=M(!1),o=M();async function i(s){if(c.value=!1,!!s)try{a.isAdmin?await t.createGlobalStorage(s):await t.createUserStorage(s),o.value=void 0}catch(p){ve.error("Failed to add external storage",{error:p,storage:s}),o.value={...s},c.value=!0}}return(s,p)=>(u(),k(e(ce),{docUrl:e(a).docUrl,name:e(n)("files_external","External storage"),description:e(n)("files_external","External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices.")+(e(a).isAdmin?" "+e(n)("files_external","You may also allow people to mount their own external storage services."):"")},{default:w(()=>[(u(!0),h(S,null,O(e(r),(_,m)=>(u(),k(e(re),{key:m,type:"error"},{default:w(()=>[V(v(_),1)]),_:2},1024))),128)),(u(!0),h(S,null,O(e(d),(_,m)=>(u(),k(e(re),{key:m,type:"warning"},{default:w(()=>[y("p",null,[m==="curl"?(u(),h(S,{key:0},[V(v(e(n)("files_external","The cURL support in PHP is not enabled or installed.")),1)],64)):m==="ftp"?(u(),h(S,{key:1},[V(v(e(n)("files_external","The FTP support in PHP is not enabled or installed.")),1)],64)):(u(),h(S,{key:2},[V(v(e(n)("files_external","{module} is not installed.",{module:m})),1)],64)),V(" "+v(e(Ee)("files_external","Please ask your system administrator to install it as otherwise mounting the following backend is not possible:","Please ask your system administrator to install it as otherwise mounting the following backends is not possible:",_.length)),1)]),y("ul",{class:x(s.$style.externalStoragesSection__dependantList),"aria-label":e(n)("files_external","Dependant backends")},[(u(!0),h(S,null,O(_,g=>(u(),h("li",{key:g},v(g),1))),128))],10,Ya)]),_:2},1024))),128)),T("",!0),b(Ga),b(e(P),{class:x(s.$style.externalStoragesSection__newStorageButton),variant:"primary",onClick:p[0]||(p[0]=_=>c.value=!c.value)},{icon:w(()=>[b(e(F),{path:e(Pe)},null,8,["path"])]),default:w(()=>[V(" "+v(e(n)("files_external","Add external storage")),1)]),_:1},8,["class"]),b(xe,{open:c.value,"onUpdate:open":p[1]||(p[1]=_=>c.value=_),storage:o.value,onClose:i},null,8,["open","storage"]),e(a).isAdmin?(u(),k(Wa,{key:1})):T("",!0)]),_:1},8,["docUrl","name","description"]))}}),Xa="_externalStoragesSection__dependantList_atsmn_2",et="_externalStoragesSection__newStorageButton_atsmn_7",at={externalStoragesSection__dependantList:Xa,externalStoragesSection__newStorageButton:et},tt={$style:at},lt=N(Ja,[["__cssModules",tt]]),st=$({__name:"GlobalCredentialsSection",setup(l){const a=A("files_external","global-credentials"),t=M(!1),r=M(a.user),d=M(a.password);fe(U);async function c(){try{t.value=!0;const{data:o}=await U.post(R("apps/files_external/globalcredentials"),{uid:a.uid,user:r.value,password:d.value},{confirmPassword:I.Strict});if(o){le(n("files_external","Global credentials saved"));return}}catch(o){ve.error(o)}finally{t.value=!1}te(n("files_external","Could not save global credentials")),r.value=a.user,d.value=a.password}return(o,i)=>(u(),k(e(ce),{name:e(n)("files_external","Global credentials"),description:e(n)("files_external","Global credentials can be used to authenticate with multiple external storages that have the same credentials.")},{default:w(()=>[y("form",{id:"global_credentials",class:x(o.$style.globalCredentialsSectionForm),autocomplete:"false",onSubmit:Me(c,["prevent"])},[b(e(_e),{modelValue:r.value,"onUpdate:modelValue":i[0]||(i[0]=s=>r.value=s),name:"username",autocomplete:"false",label:e(n)("files_external","Login")},null,8,["modelValue","label"]),b(e(De),{modelValue:d.value,"onUpdate:modelValue":i[1]||(i[1]=s=>d.value=s),name:"password",autocomplete:"false",label:e(n)("files_external","Password")},null,8,["modelValue","label"]),b(e(P),{class:x(o.$style.globalCredentialsSectionForm__submit),disabled:t.value,variant:"primary",type:"submit"},{default:w(()=>[V(v(t.value?e(n)("files_external","Saving …"):e(n)("files_external","Save")),1)]),_:1},8,["class","disabled"])],34)]),_:1},8,["name","description"]))}}),nt="_globalCredentialsSectionForm_bgjv2_2",ot="_globalCredentialsSectionForm__submit_bgjv2_10",it={globalCredentialsSectionForm:nt,globalCredentialsSectionForm__submit:ot},rt={$style:it},ut=N(st,[["__cssModules",rt]]),dt=$({__name:"FilesExternalSettings",setup(l){return(a,t)=>(u(),h(S,null,[b(lt),b(ut)],64))}}),ct=Ve(),X=Ae(dt);X.config.idPrefix="files-external",X.use(ct),X.mount("#files-external"); +import{d as ke,c as Ve}from"./pinia-CLibr4cC.chunk.mjs";import{H as K,a9 as ee,R as Se,v as C,b as U,n as D,o as u,c as k,u as e,l as M,z,f as x,y as h,g as y,t as v,F as S,C as Ce,B as O,L as W,M as Y,h as T,s as Z,a1 as Q,U as ie,k as b,w,j as V,N as Me,e as Ae}from"./Web-BwmPK40i.chunk.mjs";import{s as $e,g as Ue,t as Te,u as Oe,l as Ne,v as qe,N as re,k as Pe}from"./mdi-Lt-19ASw.chunk.mjs";import{_ as N,l as A}from"./public-C1mLBHT3.chunk.mjs";import{t as n,a as Ee}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as P}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import{N as F}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{N as ce}from"./ContentCopy-BF1gBM5z.chunk.mjs";import{N as Re,s as Fe}from"./index-BW4M2n71.chunk.mjs";import{N as ae}from"./index-BOH7nBEM.chunk.mjs";import{_ as _e}from"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";import{c as $}from"./index-BLNGy7h5.chunk.mjs";import{b as R}from"./index-B-dGqfIG.chunk.mjs";import{N as De}from"./NcTextArea-Dxzj4zdb-FMRUOSZF.chunk.mjs";import{b as Be}from"./index-DlyLvrtV.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";/* empty css */import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import{N as me}from"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import{N as E}from"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import{N as je}from"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./index-CMXcwXc6.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./index-C_wPY1fR.chunk.mjs";/* empty css */import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import{N as Le}from"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./index-xEyWukTf.chunk.mjs";import"./NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs";import{N as He}from"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import{C as pe}from"./AuthMechanismRsa-DG_XgyTI.chunk.mjs";import{C as H,a as ge,M as G,S as B,b as Ge,c as Ie}from"./types-BINwlUX8.chunk.mjs";import{a as fe,P as I}from"./index-BU6wm4Hd.chunk.mjs";import{a as te,d as le}from"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import{l as ve}from"./logger-n22jyIXx.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";const Qe='',J=Se(new Map);function be(l){const a=C(()=>ee(l).map(t=>({id:`user:${t}`,user:t,displayName:J.get(t)||t})));return K(async()=>{const t=ee(l).filter(r=>!J.has(r));if(t.length>0){const{data:r}=await $.post(R("/displaynames"),{users:t});for(const[d,c]of Object.entries(r.users))J.set(d,c)}}),a}function ze(l){return C(()=>ee(l).map(ye))}function ye(l){return{id:l,isNoUser:!0,displayName:l,iconSvg:Qe}}const Ze=U({__name:"ApplicableEntities",props:{groups:{default:()=>[]},groupsModifiers:{},users:{default:()=>[]},usersModifiers:{}},emits:["update:groups","update:users"],setup(l){const a=D(l,"groups"),t=D(l,"users"),r=M([]),d=be(t),c=ze(a),o=C({get(){return[...c.value,...d.value]},set(p){t.value=p.filter(_=>_.user).map(_=>_.user),a.value=p.filter(_=>_.isNoUser).map(_=>_.id)}}),i=Be(s,500);async function s(p){const{data:_}=await $.get(R("apps/files_external/ajax/applicable"),{params:{pattern:p,limit:20}}),m=[...r.value.map(g=>[g.id,g]),...Object.entries(_.groups).map(([g,f])=>[g,{...ye(g),displayName:f}]),...Object.entries(_.users).map(([g,f])=>[`user:${g}`,{id:`user:${g}`,user:g,displayName:f}])];r.value=[...new Map(m).values()]}return(p,_)=>(u(),k(e(De),{modelValue:o.value,"onUpdate:modelValue":_[0]||(_[0]=m=>o.value=m),keepOpen:"",multiple:"",options:r.value,inputLabel:e(n)("files_external","Restrict to"),onSearch:e(i)},null,8,["modelValue","options","inputLabel","onSearch"]))}}),Ke=U({__name:"AuthMechanismConfiguration",props:Z({authMechanism:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(l){const a=D(l,"modelValue"),t=l,r=C(()=>{if(!t.authMechanism.configuration)return;const s=Object.entries(t.authMechanism.configuration).filter(([,p])=>!(p.flags&H.UserProvided));return Object.fromEntries(s)}),d=C(()=>window.OCA.FilesExternal.AuthMechanism.getHandler(t.authMechanism)),c=C(()=>{if(!r.value)return!1;for(const s of Object.values(r.value))if(!(s.flags&H.Hidden||s.flags&H.UserProvided))return!0;return!1}),o=M(!1);K(async()=>{d.value&&(o.value=!0,await window.customElements.whenDefined(d.value.tagName),o.value=!1)}),z(r,()=>{for(const s in r.value)s in a.value||(a.value[s]=r.value[s]?.type===ge.Boolean?!1:"")});function i(s){const p=[s.detail].flat()[0];a.value={...a.value,...p}}return(s,p)=>c.value?(u(),x("fieldset",{key:0,class:h(s.$style.authMechanismConfiguration)},[y("legend",null,v(e(n)("files_external","Authentication")),1),d.value?(u(),x(S,{key:0},[o.value?(u(),k(e(me),{key:0})):(u(),k(Ce(d.value.tagName),{key:1,".modelValue":a.value,".authMechanism":l.authMechanism,"onUpdate:modelValue":i},null,40,[".modelValue",".authMechanism"]))],64)):(u(!0),x(S,{key:1},O(r.value,(_,m)=>W((u(),k(pe,{key:_.value,modelValue:a.value[m],"onUpdate:modelValue":g=>a.value[m]=g,"config-key":m,"config-option":_},null,8,["modelValue","onUpdate:modelValue","config-key","config-option"])),[[Y,!(_.flags&e(H).Hidden)]])),128))],2)):T("",!0)}}),We="_authMechanismConfiguration_kpcpy_2",Ye={authMechanismConfiguration:We},Je={$style:Ye},Xe=N(Ke,[["__cssModules",Je]]),ea=U({__name:"BackendConfiguration",props:Z({configuration:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(l){const a=D(l,"modelValue"),t=l;return z(()=>t.configuration,()=>{for(const r in t.configuration)r in a.value||(a.value[r]=t.configuration[r]?.defaultValue??(t.configuration[r]?.type===ge.Boolean?!1:""))},{immediate:!0}),(r,d)=>(u(),x("fieldset",{class:h(r.$style.backendConfiguration)},[y("legend",null,v(e(n)("files_external","Storage configuration")),1),(u(!0),x(S,null,O(l.configuration,(c,o)=>W((u(),k(pe,{key:c.value,modelValue:a.value[o],"onUpdate:modelValue":i=>a.value[o]=i,configKey:o,configOption:c},null,8,["modelValue","onUpdate:modelValue","configKey","configOption"])),[[Y,!(c.flags&e(H).Hidden)]])),128))],2))}}),aa="_backendConfiguration_1sf6y_2",ta={backendConfiguration:aa},la={$style:ta},sa=N(ea,[["__cssModules",la]]),{isAdmin:na}=A("files_external","settings"),se=ke("files_external--storages",()=>{const l=M([]),a=M([]);async function t(m){const g=R("apps/files_external/globalstorages"),{data:f}=await $.post(g,Q(m),{confirmPassword:I.Strict});l.value.push(j(f))}async function r(m){const g=R("apps/files_external/userstorages"),{data:f}=await $.post(g,Q(m),{confirmPassword:I.Strict});a.value.push(j(f))}async function d(m){await $.delete(p(m),{confirmPassword:I.Strict}),m.type==="personal"?a.value=a.value.filter(g=>g.id!==m.id):l.value=l.value.filter(g=>g.id!==m.id)}async function c(m){const{data:g}=await $.put(p(m),Q(m),{confirmPassword:I.Strict});_(j(g))}async function o(m){const{data:g}=await $.get(p(m));_(j(g))}return s(),{globalStorages:l,userStorages:a,createGlobalStorage:t,createUserStorage:r,deleteStorage:d,reloadStorage:o,updateStorage:c};async function i(m){const g=`apps/files_external/${m}`,{data:f}=await $.get(R(g));return Object.values(f).map(j)}async function s(){fe($),na?l.value=await i("globalstorages"):(a.value=await i("userstorages"),l.value=await i("userglobalstorages"))}function p(m){const g=m.type==="personal"?"userstorages":"globalstorages";return R(`apps/files_external/${g}/${m.id}`)}function _(m){if(m.type==="personal"){const g=a.value.findIndex(f=>f.id===m.id);a.value.splice(g,1,m)}else{const g=l.value.findIndex(f=>f.id===m.id);l.value.splice(g,1,m)}}});function j(l){return{...l,mountOptions:he(l.mountOptions)}}function he(l){const a={...l};return a.encrypt=L(a.encrypt,!0),a.previews=L(a.previews,!0),a.enable_sharing=L(a.enable_sharing,!1),a.filesystem_check_changes=typeof a.filesystem_check_changes=="string"?Number.parseInt(a.filesystem_check_changes):a.filesystem_check_changes??G.OncePerRequest,a.encoding_compatibility=L(a.encoding_compatibility,!1),a.readonly=L(a.readonly,!1),a}function L(l,a=!1){return l===void 0?a:l===!0||l==="true"||l==="1"}const oa=["id","aria-labelledby"],ia=U({__name:"MountOptions",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(l){const a=D(l,"modelValue");K(()=>{Object.keys(a.value).length===0&&(a.value=he(a.value))});const{hasEncryption:t}=A("files_external","settings"),r=ie(),d=ie(),c=M(!1),o=[{label:n("files_external","Never"),value:G.Never},{label:n("files_external","Once every direct access"),value:G.OncePerRequest},{label:n("files_external","Always"),value:G.Always}],i=C({get(){return o.find(s=>s.value===a.value.filesystem_check_changes)},set(s){a.value.filesystem_check_changes=s?.value??G.OncePerRequest}});return(s,p)=>(u(),x("div",{class:h(s.$style.mountOptions)},[b(e(P),{id:e(r),"aria-controls":e(d),"aria-expanded":c.value,variant:"tertiary-no-background",onClick:p[0]||(p[0]=_=>c.value=!c.value)},{icon:w(()=>[b(e(F),{directional:"",path:c.value?e($e):e(Ue)},null,8,["path"])]),default:w(()=>[V(" "+v(e(n)("files_external","Mount options")),1)]),_:1},8,["id","aria-controls","aria-expanded"]),W(y("fieldset",{id:e(d),class:h(s.$style.mountOptions__fieldset),"aria-labelledby":e(r)},[b(e(ae),{modelValue:i.value,"onUpdate:modelValue":p[1]||(p[1]=_=>i.value=_),inputLabel:e(n)("files_external","Check filesystem changes"),options:o},null,8,["modelValue","inputLabel"]),b(e(E),{modelValue:l.modelValue.readonly,"onUpdate:modelValue":p[2]||(p[2]=_=>l.modelValue.readonly=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Read only")),1)]),_:1},8,["modelValue"]),b(e(E),{modelValue:l.modelValue.previews,"onUpdate:modelValue":p[3]||(p[3]=_=>l.modelValue.previews=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Enable previews")),1)]),_:1},8,["modelValue"]),b(e(E),{modelValue:l.modelValue.enable_sharing,"onUpdate:modelValue":p[4]||(p[4]=_=>l.modelValue.enable_sharing=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Enable sharing")),1)]),_:1},8,["modelValue"]),e(t)?(u(),k(e(E),{key:0,modelValue:l.modelValue.encrypt,"onUpdate:modelValue":p[5]||(p[5]=_=>l.modelValue.encrypt=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Enable encryption")),1)]),_:1},8,["modelValue"])):T("",!0),b(e(E),{modelValue:l.modelValue.encoding_compatibility,"onUpdate:modelValue":p[6]||(p[6]=_=>l.modelValue.encoding_compatibility=_),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Compatibility with Mac NFD encoding (slow)")),1)]),_:1},8,["modelValue"])],10,oa),[[Y,c.value]])],2))}}),ra="_mountOptions_1fqyb_2",ua="_mountOptions__fieldset_1fqyb_12",da={mountOptions:ra,mountOptions__fieldset:ua},ca={$style:da},_a=N(ia,[["__cssModules",ca]]),{isAdmin:ue}=A("files_external","settings"),ma=A("files_external","allowedBackends"),de=A("files_external","backends").filter(l=>ma.includes(l.identifier)),pa=A("files_external","authMechanisms"),ga=U({__name:"AddExternalStorageDialog",props:Z({storage:{default:()=>({backendOptions:{},mountOptions:{},type:ue?"system":"personal"})}},{open:{type:Boolean,default:!0},openModifiers:{}}),emits:Z(["close"],["update:open"]),setup(l){const a=D(l,"open"),t=M(structuredClone(Q(l.storage)));K(()=>{a.value&&(t.value=structuredClone(Q(l.storage)))});const r=C({get(){return de.find(o=>o.identifier===t.value.backend)},set(o){t.value.backend=o?.identifier}}),d=C(()=>pa.filter(({scheme:o})=>r.value?.authSchemes[o])),c=C({get(){return d.value.find(o=>o.identifier===t.value.authMechanism)},set(o){t.value.authMechanism=o?.identifier}});return z(d,()=>{d.value.length===1&&(t.value.authMechanism=d.value[0].identifier)}),(o,i)=>(u(),k(e(Re),{open:a.value,"onUpdate:open":[i[9]||(i[9]=s=>a.value=s),i[11]||(i[11]=s=>s||o.$emit("close"))],isForm:"",contentClasses:o.$style.externalStorageDialog,name:t.value.id?e(n)("files_external","Edit storage"):e(n)("files_external","Add storage"),onSubmit:i[10]||(i[10]=s=>o.$emit("close",t.value))},{actions:w(()=>[l.storage.id?(u(),k(e(P),{key:0,onClick:i[8]||(i[8]=s=>o.$emit("close"))},{default:w(()=>[V(v(e(n)("files_external","Cancel")),1)]),_:1})):T("",!0),b(e(P),{variant:"primary",type:"submit"},{default:w(()=>[V(v(l.storage.id?e(n)("files_external","Edit"):e(n)("files_external","Create")),1)]),_:1})]),default:w(()=>[b(e(_e),{modelValue:t.value.mountPoint,"onUpdate:modelValue":i[0]||(i[0]=s=>t.value.mountPoint=s),label:e(n)("files_external","Folder name"),required:""},null,8,["modelValue","label"]),b(_a,{modelValue:t.value.mountOptions,"onUpdate:modelValue":i[1]||(i[1]=s=>t.value.mountOptions=s)},null,8,["modelValue"]),e(ue)?(u(),k(Ze,{key:0,groups:t.value.applicableGroups,"onUpdate:groups":i[2]||(i[2]=s=>t.value.applicableGroups=s),users:t.value.applicableUsers,"onUpdate:users":i[3]||(i[3]=s=>t.value.applicableUsers=s),class:h(o.$style.externalStorageDialog__dropdown)},null,8,["groups","users","class"])):T("",!0),b(e(ae),{modelValue:r.value,"onUpdate:modelValue":i[4]||(i[4]=s=>r.value=s),options:e(de),disabled:!!(t.value.id&&t.value.backend),inputLabel:e(n)("files_external","External storage"),class:h(o.$style.externalStorageDialog__dropdown),label:"name",required:""},null,8,["modelValue","options","disabled","inputLabel","class"]),b(e(ae),{modelValue:c.value,"onUpdate:modelValue":i[5]||(i[5]=s=>c.value=s),options:d.value,disabled:!t.value.backend||d.value.length<=1||!!(t.value.id&&t.value.authMechanism),inputLabel:e(n)("files_external","Authentication"),class:h(o.$style.externalStorageDialog__dropdown),label:"name",required:""},null,8,["modelValue","options","disabled","inputLabel","class"]),r.value&&t.value.backendOptions?(u(),k(sa,{key:1,modelValue:t.value.backendOptions,"onUpdate:modelValue":i[6]||(i[6]=s=>t.value.backendOptions=s),class:h(o.$style.externalStorageDialog__configuration),configuration:r.value.configuration},null,8,["modelValue","class","configuration"])):T("",!0),c.value&&t.value.backendOptions?(u(),k(Xe,{key:2,modelValue:t.value.backendOptions,"onUpdate:modelValue":i[7]||(i[7]=s=>t.value.backendOptions=s),class:h(o.$style.externalStorageDialog__configuration),authMechanism:c.value},null,8,["modelValue","class","authMechanism"])):T("",!0)]),_:1},8,["open","contentClasses","name"]))}}),fa="_externalStorageDialog_l5jv4_2",va="_externalStorageDialog__configuration_l5jv4_9",ba="_externalStorageDialog__dropdown_l5jv4_13",ya={externalStorageDialog:fa,externalStorageDialog__configuration:va,externalStorageDialog__dropdown:ba},ha={$style:ya},xe=N(ga,[["__cssModules",ha]]),xa={class:"hidden-visually"},wa={key:0},ka=U({__name:"ExternalStorageTableRow",props:{storage:{},isAdmin:{type:Boolean}},setup(l){const a=l,t=se(),r=A("files_external","backends"),d=C(()=>r.find(f=>f.identifier===a.storage.backend).name),c=A("files_external","authMechanisms"),o=C(()=>c.find(f=>f.identifier===a.storage.authMechanism).name),i=M(!1),s=C(()=>{if(i.value)return{icon:"loading",label:n("files_external","Checking …")};const f=a.storage.status??B.Indeterminate,ne=a.storage.statusMessage||Ge[f],q=Ie[f],oe=f===B.NetworkError||f===B.Timeout,we=!oe&&f!==B.Success&&f!==B.Indeterminate;return{icon:q,label:ne,isWarning:oe,isError:we}}),p=be(()=>a.storage.applicableUsers||[]);async function _(){await t.deleteStorage(a.storage)}async function m(){const f=await Fe(xe,{storage:a.storage});f&&await t.updateStorage(f)}async function g(){i.value=!0;try{await t.reloadStorage(a.storage)}finally{i.value=!1}}return(f,ne)=>(u(),x("tr",{class:h(f.$style.storageTableRow)},[y("td",null,[y("span",xa,v(s.value.label),1),b(e(P),{"aria-label":e(n)("files_external","Recheck status"),title:s.value.label,variant:"tertiary-no-background",onClick:g},{icon:w(()=>[s.value.icon==="loading"?(u(),k(e(me),{key:0})):(u(),k(e(F),{key:1,class:h({[f.$style.storageTableRow__status_error]:s.value.isError,[f.$style.storageTableRow__status_warning]:s.value.isWarning}),path:s.value.icon},null,8,["class","path"]))]),_:1},8,["aria-label","title"])]),y("td",null,v(l.storage.mountPoint),1),y("td",null,v(d.value),1),y("td",null,v(o.value),1),l.isAdmin?(u(),x("td",wa,[y("div",{class:h(f.$style.storageTableRow__cellApplicable)},[(u(!0),x(S,null,O(l.storage.applicableGroups,q=>(u(),k(e(je),{key:q,iconPath:e(Te),noClose:"",text:q},null,8,["iconPath","text"]))),128)),(u(!0),x(S,null,O(e(p),q=>(u(),k(e(He),{key:q.user,displayName:q.displayName,size:24,user:q.user},null,8,["displayName","user"]))),128))],2)])):T("",!0),y("td",null,[l.isAdmin||l.storage.type==="personal"?(u(),x("div",{key:0,class:h(f.$style.storageTableRow__cellActions)},[b(e(P),{"aria-label":e(n)("files_external","Edit"),title:e(n)("files_external","Edit"),onClick:m},{icon:w(()=>[b(e(F),{path:e(Oe)},null,8,["path"])]),_:1},8,["aria-label","title"]),b(e(P),{"aria-label":e(n)("files_external","Delete"),title:e(n)("files_external","Delete"),variant:"error",onClick:_},{icon:w(()=>[b(e(F),{path:e(Ne)},null,8,["path"])]),_:1},8,["aria-label","title"])],2)):(u(),k(e(F),{key:1,inline:"",path:e(qe),name:e(n)("files_external","System provided storage"),title:e(n)("files_external","System provided storage")},null,8,["path","name","title"]))])],2))}}),Va="_storageTableRow__cellActions_1k62p_2",Sa="_storageTableRow__cellApplicable_1k62p_7",Ca="_storageTableRow__status_warning_1k62p_17",Ma="_storageTableRow__status_error_1k62p_21",Aa={storageTableRow__cellActions:Va,storageTableRow__cellApplicable:Sa,storageTableRow__status_warning:Ca,storageTableRow__status_error:Ma},$a={$style:Aa},Ua=N(ka,[["__cssModules",$a]]),Ta=["aria-label"],Oa={class:"hidden-visually"},Na={key:0},qa={class:"hidden-visually"},Pa=U({__name:"ExternalStorageTable",setup(l){const a=se(),{isAdmin:t}=A("files_external","settings"),r=C(()=>t?a.globalStorages:[...a.userStorages,...a.globalStorages]);return(d,c)=>(u(),x("table",{class:h(d.$style.storageTable),"aria-label":e(n)("files_external","External storages")},[y("thead",{class:h(d.$style.storageTable__header)},[y("tr",null,[y("th",{class:h(d.$style.storageTable__headerStatus)},[y("span",Oa,v(e(n)("files_external","Status")),1)],2),y("th",{class:h(d.$style.storageTable__headerFolder)},v(e(n)("files_external","Folder name")),3),y("th",{class:h(d.$style.storageTable__headerBackend)},v(e(n)("files_external","External storage")),3),y("th",{class:h(d.$style.storageTable__headerAuthentication)},v(e(n)("files_external","Authentication")),3),e(t)?(u(),x("th",Na,v(e(n)("files_external","Restricted to")),1)):T("",!0),y("th",{class:h(d.$style.storageTable__headerActions)},[y("span",qa,v(e(n)("files_external","Actions")),1)],2)])],2),y("tbody",null,[(u(!0),x(S,null,O(r.value,o=>(u(),k(Ua,{key:o.id,isAdmin:e(t),storage:o},null,8,["isAdmin","storage"]))),128))])],10,Ta))}}),Ea="_storageTable_1dqte_2",Ra="_storageTable__header_1dqte_11",Fa="_storageTable__headerStatus_1dqte_16",Da="_storageTable__headerFolder_1dqte_20",Ba="_storageTable__headerBackend_1dqte_24",ja="_storageTable__headerFAuthentication_1dqte_28",La="_storageTable__headerActions_1dqte_32",Ha={storageTable:Ea,storageTable__header:Ra,storageTable__headerStatus:Fa,storageTable__headerFolder:Da,storageTable__headerBackend:Ba,storageTable__headerFAuthentication:ja,storageTable__headerActions:La},Ga={$style:Ha},Ia=N(Pa,[["__cssModules",Ga]]),Qa=U({__name:"UserMountSettings",setup(l){const a=A("files_external","user-mounting"),t=A("files_external","backends").filter(c=>c.identifier!=="local"),r=M(a.allowUserMounting),d=M(a.allowedBackends);return z(r,()=>{const c=!r.value;window.OCP.AppConfig.setValue("files_external","allow_user_mounting",r.value?"yes":"no",{success:()=>le(n("files_external","Saved")),error:()=>{r.value=c,te(n("files_external","Error while saving"))}})}),z(d,(c,o)=>{window.OCP.AppConfig.setValue("files_external","user_mounting_backends",c.join(","),{success:()=>le(n("files_external","Saved allowed backends")),error:()=>{te(n("files_external","Failed to save allowed backends")),d.value=o}})}),(c,o)=>(u(),x("form",null,[y("h3",{class:h(c.$style.userMountSettings__heading)},v(e(n)("files_external","Advanced options for external storage mounts")),3),b(e(E),{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=i=>r.value=i),type:"switch"},{default:w(()=>[V(v(e(n)("files_external","Allow people to mount external storage")),1)]),_:1},8,["modelValue"]),W(y("fieldset",{class:h(c.$style.userMountSettings__backends)},[y("legend",null,v(e(n)("files_external","External storage backends people are allowed to mount")),1),(u(!0),x(S,null,O(e(t),i=>(u(),k(e(E),{key:i.identifier,modelValue:d.value,"onUpdate:modelValue":o[1]||(o[1]=s=>d.value=s),value:i.identifier,name:"allowUserMountingBackends[]"},{default:w(()=>[V(v(i.name),1)]),_:2},1032,["modelValue","value"]))),128))],2),[[Y,r.value]])]))}}),za="_userMountSettings__heading_59moz_2",Za="_userMountSettings__backends_59moz_9",Ka={userMountSettings__heading:za,userMountSettings__backends:Za},Wa={$style:Ka},Ya=N(Qa,[["__cssModules",Wa]]);const Ja=["aria-label"],Xa=U({__name:"ExternalStoragesSection",setup(l){const a=A("files_external","settings",{docUrl:"",dependencyIssues:{messages:null,modules:null},isAdmin:!1}),t=se(),r=a.dependencyIssues?.messages??[],d=a.dependencyIssues?.modules??{},c=M(!1),o=M();async function i(s){if(c.value=!1,!!s)try{a.isAdmin?await t.createGlobalStorage(s):await t.createUserStorage(s),o.value=void 0}catch(p){ve.error("Failed to add external storage",{error:p,storage:s}),o.value={...s},c.value=!0}}return(s,p)=>(u(),k(e(ce),{docUrl:e(a).docUrl,name:e(n)("files_external","External storage"),description:e(n)("files_external","External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices.")+(e(a).isAdmin?" "+e(n)("files_external","You may also allow people to mount their own external storage services."):"")},{default:w(()=>[(u(!0),x(S,null,O(e(r),(_,m)=>(u(),k(e(re),{key:m,type:"error"},{default:w(()=>[V(v(_),1)]),_:2},1024))),128)),(u(!0),x(S,null,O(e(d),(_,m)=>(u(),k(e(re),{key:m,type:"warning"},{default:w(()=>[y("p",null,[m==="curl"?(u(),x(S,{key:0},[V(v(e(n)("files_external","The cURL support in PHP is not enabled or installed.")),1)],64)):m==="ftp"?(u(),x(S,{key:1},[V(v(e(n)("files_external","The FTP support in PHP is not enabled or installed.")),1)],64)):(u(),x(S,{key:2},[V(v(e(n)("files_external","{module} is not installed.",{module:m})),1)],64)),V(" "+v(e(Ee)("files_external","Please ask your system administrator to install it as otherwise mounting the following backend is not possible:","Please ask your system administrator to install it as otherwise mounting the following backends is not possible:",_.length)),1)]),y("ul",{class:h(s.$style.externalStoragesSection__dependantList),"aria-label":e(n)("files_external","Dependant backends")},[(u(!0),x(S,null,O(_,g=>(u(),x("li",{key:g},v(g),1))),128))],10,Ja)]),_:2},1024))),128)),T("",!0),b(Ia),b(e(P),{class:h(s.$style.externalStoragesSection__newStorageButton),variant:"primary",onClick:p[0]||(p[0]=_=>c.value=!c.value)},{icon:w(()=>[b(e(F),{path:e(Pe)},null,8,["path"])]),default:w(()=>[V(" "+v(e(n)("files_external","Add external storage")),1)]),_:1},8,["class"]),b(xe,{open:c.value,"onUpdate:open":p[1]||(p[1]=_=>c.value=_),storage:o.value,onClose:i},null,8,["open","storage"]),e(a).isAdmin?(u(),k(Ya,{key:1})):T("",!0)]),_:1},8,["docUrl","name","description"]))}}),et="_externalStoragesSection__dependantList_atsmn_2",at="_externalStoragesSection__newStorageButton_atsmn_7",tt={externalStoragesSection__dependantList:et,externalStoragesSection__newStorageButton:at},lt={$style:tt},st=N(Xa,[["__cssModules",lt]]),nt=U({__name:"GlobalCredentialsSection",setup(l){const a=A("files_external","global-credentials"),t=M(!1),r=M(a.user),d=M(a.password);fe($);async function c(){try{t.value=!0;const{data:o}=await $.post(R("apps/files_external/globalcredentials"),{uid:a.uid,user:r.value,password:d.value},{confirmPassword:I.Strict});if(o){le(n("files_external","Global credentials saved"));return}}catch(o){ve.error(o)}finally{t.value=!1}te(n("files_external","Could not save global credentials")),r.value=a.user,d.value=a.password}return(o,i)=>(u(),k(e(ce),{name:e(n)("files_external","Global credentials"),description:e(n)("files_external","Global credentials can be used to authenticate with multiple external storages that have the same credentials.")},{default:w(()=>[y("form",{id:"global_credentials",class:h(o.$style.globalCredentialsSectionForm),autocomplete:"false",onSubmit:Me(c,["prevent"])},[b(e(_e),{modelValue:r.value,"onUpdate:modelValue":i[0]||(i[0]=s=>r.value=s),name:"username",autocomplete:"false",label:e(n)("files_external","Login")},null,8,["modelValue","label"]),b(e(Le),{modelValue:d.value,"onUpdate:modelValue":i[1]||(i[1]=s=>d.value=s),name:"password",autocomplete:"false",label:e(n)("files_external","Password")},null,8,["modelValue","label"]),b(e(P),{class:h(o.$style.globalCredentialsSectionForm__submit),disabled:t.value,variant:"primary",type:"submit"},{default:w(()=>[V(v(t.value?e(n)("files_external","Saving …"):e(n)("files_external","Save")),1)]),_:1},8,["class","disabled"])],34)]),_:1},8,["name","description"]))}}),ot="_globalCredentialsSectionForm_bgjv2_2",it="_globalCredentialsSectionForm__submit_bgjv2_10",rt={globalCredentialsSectionForm:ot,globalCredentialsSectionForm__submit:it},ut={$style:rt},dt=N(nt,[["__cssModules",ut]]),ct=U({__name:"FilesExternalSettings",setup(l){return(a,t)=>(u(),x(S,null,[b(st),b(dt)],64))}}),_t=Ve(),X=Ae(ct);X.config.idPrefix="files-external",X.use(_t),X.mount("#files-external"); //# sourceMappingURL=files_external-settings.mjs.map diff --git a/dist/files_external-settings.mjs.map b/dist/files_external-settings.mjs.map index 672da76ac902c..5d09b2a409b26 100644 --- a/dist/files_external-settings.mjs.map +++ b/dist/files_external-settings.mjs.map @@ -1 +1 @@ -{"version":3,"file":"files_external-settings.mjs","sources":["../node_modules/@mdi/svg/svg/account-group-outline.svg?raw","../build/frontend/apps/files_external/src/composables/useEntities.ts","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/ApplicableEntities.vue","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/AuthMechanismConfiguration.vue","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/BackendConfiguration.vue","../build/frontend/apps/files_external/src/store/storages.ts","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/MountOptions.vue","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/AddExternalStorageDialog.vue","../build/frontend/apps/files_external/src/components/ExternalStorageTableRow.vue","../build/frontend/apps/files_external/src/components/ExternalStorageTable.vue","../build/frontend/apps/files_external/src/components/UserMountSettings.vue","../build/frontend/apps/files_external/src/views/ExternalStoragesSection.vue","../build/frontend/apps/files_external/src/views/GlobalCredentialsSection.vue","../build/frontend/apps/files_external/src/views/FilesExternalSettings.vue","../build/frontend/apps/files_external/src/settings-main.ts"],"sourcesContent":["export default \"\"","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { MaybeRefOrGetter } from 'vue'\n\nimport svgAccountGroupOutline from '@mdi/svg/svg/account-group-outline.svg?raw'\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { computed, reactive, toValue, watchEffect } from 'vue'\n\nconst displayNames = reactive(new Map())\n\n/**\n * Fetch and provide user display names for given UIDs\n *\n * @param uids - The user ids to fetch display names for\n */\nexport function useUsers(uids: MaybeRefOrGetter) {\n\tconst users = computed(() => toValue(uids).map((uid) => ({\n\t\tid: `user:${uid}`,\n\t\tuser: uid,\n\t\tdisplayName: displayNames.get(uid) || uid,\n\t})))\n\n\twatchEffect(async () => {\n\t\tconst missingUsers = toValue(uids).filter((uid) => !displayNames.has(uid))\n\t\tif (missingUsers.length > 0) {\n\t\t\tconst { data } = await axios.post(generateUrl('/displaynames'), {\n\t\t\t\tusers: missingUsers,\n\t\t\t})\n\t\t\tfor (const [uid, displayName] of Object.entries(data.users)) {\n\t\t\t\tdisplayNames.set(uid, displayName as string)\n\t\t\t}\n\t\t}\n\t})\n\n\treturn users\n}\n\n/**\n * Map group ids to IUserData objects\n *\n * @param gids - The group ids to create entities for\n */\nexport function useGroups(gids: MaybeRefOrGetter) {\n\treturn computed(() => toValue(gids).map(mapGroupToUserData))\n}\n\n/**\n * Map a group id to an IUserData object\n *\n * @param gid - The group id to map\n */\nexport function mapGroupToUserData(gid: string) {\n\treturn {\n\t\tid: gid,\n\t\tisNoUser: true,\n\t\tdisplayName: gid,\n\t\ticonSvg: svgAccountGroupOutline,\n\t}\n}\n","\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { IStorage } from '../types.ts'\n\nimport axios from '@nextcloud/axios'\nimport { loadState } from '@nextcloud/initial-state'\nimport { addPasswordConfirmationInterceptors, PwdConfirmationMode } from '@nextcloud/password-confirmation'\nimport { generateUrl } from '@nextcloud/router'\nimport { defineStore } from 'pinia'\nimport { ref, toRaw } from 'vue'\nimport { MountOptionsCheckFilesystem } from '../types.ts'\n\nconst { isAdmin } = loadState<{ isAdmin: boolean }>('files_external', 'settings')\n\nexport const useStorages = defineStore('files_external--storages', () => {\n\tconst globalStorages = ref([])\n\tconst userStorages = ref([])\n\n\t/**\n\t * Create a new global storage\n\t *\n\t * @param storage - The storage to create\n\t */\n\tasync function createGlobalStorage(storage: Partial) {\n\t\tconst url = generateUrl('apps/files_external/globalstorages')\n\t\tconst { data } = await axios.post(\n\t\t\turl,\n\t\t\ttoRaw(storage),\n\t\t\t{ confirmPassword: PwdConfirmationMode.Strict },\n\t\t)\n\t\tglobalStorages.value.push(parseStorage(data))\n\t}\n\n\t/**\n\t * Create a new global storage\n\t *\n\t * @param storage - The storage to create\n\t */\n\tasync function createUserStorage(storage: Partial) {\n\t\tconst url = generateUrl('apps/files_external/userstorages')\n\t\tconst { data } = await axios.post(\n\t\t\turl,\n\t\t\ttoRaw(storage),\n\t\t\t{ confirmPassword: PwdConfirmationMode.Strict },\n\t\t)\n\t\tuserStorages.value.push(parseStorage(data))\n\t}\n\n\t/**\n\t * Delete a storage\n\t *\n\t * @param storage - The storage to delete\n\t */\n\tasync function deleteStorage(storage: IStorage) {\n\t\tawait axios.delete(getUrl(storage), {\n\t\t\tconfirmPassword: PwdConfirmationMode.Strict,\n\t\t})\n\n\t\tif (storage.type === 'personal') {\n\t\t\tuserStorages.value = userStorages.value.filter((s) => s.id !== storage.id)\n\t\t} else {\n\t\t\tglobalStorages.value = globalStorages.value.filter((s) => s.id !== storage.id)\n\t\t}\n\t}\n\n\t/**\n\t * Update an existing storage\n\t *\n\t * @param storage - The storage to update\n\t */\n\tasync function updateStorage(storage: IStorage) {\n\t\tconst { data } = await axios.put(\n\t\t\tgetUrl(storage),\n\t\t\ttoRaw(storage),\n\t\t\t{ confirmPassword: PwdConfirmationMode.Strict },\n\t\t)\n\n\t\toverrideStorage(parseStorage(data))\n\t}\n\n\t/**\n\t * Reload a storage from the server\n\t *\n\t * @param storage - The storage to reload\n\t */\n\tasync function reloadStorage(storage: IStorage) {\n\t\tconst { data } = await axios.get(getUrl(storage))\n\t\toverrideStorage(parseStorage(data))\n\t}\n\n\t// initialize the store\n\tinitialize()\n\n\treturn {\n\t\tglobalStorages,\n\t\tuserStorages,\n\n\t\tcreateGlobalStorage,\n\t\tcreateUserStorage,\n\t\tdeleteStorage,\n\t\treloadStorage,\n\t\tupdateStorage,\n\t}\n\n\t/**\n\t * @param type - The type of storages to load\n\t */\n\tasync function loadStorages(type: string) {\n\t\tconst url = `apps/files_external/${type}`\n\t\tconst { data } = await axios.get>(generateUrl(url))\n\t\treturn Object.values(data)\n\t\t\t.map(parseStorage)\n\t}\n\n\t/**\n\t * Load the storages based on the user role\n\t */\n\tasync function initialize() {\n\t\taddPasswordConfirmationInterceptors(axios)\n\n\t\tif (isAdmin) {\n\t\t\tglobalStorages.value = await loadStorages('globalstorages')\n\t\t} else {\n\t\t\tuserStorages.value = await loadStorages('userstorages')\n\t\t\tglobalStorages.value = await loadStorages('userglobalstorages')\n\t\t}\n\t}\n\n\t/**\n\t * @param storage - The storage to get the URL for\n\t */\n\tfunction getUrl(storage: IStorage) {\n\t\tconst type = storage.type === 'personal' ? 'userstorages' : 'globalstorages'\n\t\treturn generateUrl(`apps/files_external/${type}/${storage.id}`)\n\t}\n\n\t/**\n\t * Override a storage in the store\n\t *\n\t * @param storage - The storage save\n\t */\n\tfunction overrideStorage(storage: IStorage) {\n\t\tif (storage.type === 'personal') {\n\t\t\tconst index = userStorages.value.findIndex((s) => s.id === storage.id)\n\t\t\tuserStorages.value.splice(index, 1, storage)\n\t\t} else {\n\t\t\tconst index = globalStorages.value.findIndex((s) => s.id === storage.id)\n\t\t\tglobalStorages.value.splice(index, 1, storage)\n\t\t}\n\t}\n})\n\n/**\n * @param storage - The storage from API\n */\nfunction parseStorage(storage: IStorage) {\n\treturn {\n\t\t...storage,\n\t\tmountOptions: parseMountOptions(storage.mountOptions),\n\t}\n}\n\n/**\n * Parse the mount options and convert string boolean values to\n * actual booleans and numeric strings to numbers\n *\n * @param options - The mount options to parse\n */\nexport function parseMountOptions(options: IStorage['mountOptions']) {\n\tconst mountOptions = { ...options }\n\tmountOptions.encrypt = convertBooleanOptions(mountOptions.encrypt, true)\n\tmountOptions.previews = convertBooleanOptions(mountOptions.previews, true)\n\tmountOptions.enable_sharing = convertBooleanOptions(mountOptions.enable_sharing, false)\n\tmountOptions.filesystem_check_changes = typeof mountOptions.filesystem_check_changes === 'string'\n\t\t? Number.parseInt(mountOptions.filesystem_check_changes)\n\t\t: (mountOptions.filesystem_check_changes ?? MountOptionsCheckFilesystem.OncePerRequest)\n\tmountOptions.encoding_compatibility = convertBooleanOptions(mountOptions.encoding_compatibility, false)\n\tmountOptions.readonly = convertBooleanOptions(mountOptions.readonly, false)\n\treturn mountOptions\n}\n\n/**\n * Convert backend encoding of boolean options\n *\n * @param option - The option value from API\n * @param fallback - The fallback (default) value\n */\nfunction convertBooleanOptions(option: unknown, fallback = false) {\n\tif (option === undefined) {\n\t\treturn fallback\n\t}\n\treturn option === true || option === 'true' || option === '1'\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createPinia } from 'pinia'\nimport { createApp } from 'vue'\nimport FilesExternalApp from './views/FilesExternalSettings.vue'\n\nconst pinia = createPinia()\nconst app = createApp(FilesExternalApp)\napp.config.idPrefix = 'files-external'\napp.use(pinia)\napp.mount('#files-external')\n"],"names":["svgAccountGroupOutline","displayNames","reactive","useUsers","uids","users","computed","toValue","uid","watchEffect","missingUsers","data","axios","generateUrl","displayName","useGroups","gids","mapGroupToUserData","gid","groups","_useModel","__props","entities","ref","selectedUsers","selectedGroups","model","value","u","g","debouncedSearch","useDebounceFn","onSearch","pattern","newEntries","e","id","_createBlock","_unref","NcSelectUsers","$event","t","modelValue","props","configuration","entries","option","ConfigurationFlag","customComponent","hasConfiguration","isLoadingCustomComponent","watch","key","ConfigurationType","onUpdateModelValue","event","config","_createElementBlock","_normalizeClass","$style","_createElementVNode","_Fragment","NcLoadingIcon","_resolveDynamicComponent","_openBlock","_renderList","configOption","configKey","ConfigurationEntry","_vShow","isAdmin","loadState","useStorages","defineStore","globalStorages","userStorages","createGlobalStorage","storage","url","toRaw","PwdConfirmationMode","parseStorage","createUserStorage","deleteStorage","getUrl","s","updateStorage","overrideStorage","reloadStorage","initialize","loadStorages","type","addPasswordConfirmationInterceptors","index","parseMountOptions","options","mountOptions","convertBooleanOptions","MountOptionsCheckFilesystem","fallback","hasEncryption","idButton","useId","idFieldset","isExpanded","checkFilesystemOptions","checkFilesystem","_createVNode","NcButton","_cache","NcIconSvgWrapper","mdiChevronDown","mdiChevronRight","_createTextVNode","NcSelect","NcCheckboxRadioSwitch","allowedBackendIds","backends","b","allAuthMechanisms","open","internalStorage","backend","authMechanisms","scheme","authMechanism","a","NcDialog","$emit","_toDisplayString","NcTextField","MountOptions","ApplicableEntities","BackendConfiguration","AuthMechanismConfiguration","store","backendName","authMechanismName","checkingStatus","status","StorageStatus","label","StorageStatusMessage","icon","StorageStatusIcons","isWarning","isError","onDelete","onEdit","spawnDialog","AddExternalStorageDialog","reloadStatus","_hoisted_1","_hoisted_2","group","NcChip","mdiAccountGroupOutline","user","NcUserBubble","mdiPencilOutline","mdiTrashCanOutline","mdiInformationOutline","storages","_hoisted_4","ExternalStorageTableRow","userMounting","availableBackends","allowUserMounting","allowedBackends","backupValue","showSuccess","showError","newValue","oldValue","settings","dependencyIssues","missingModules","showDialog","newStorage","addStorage","error","logger","NcSettingsSection","message","NcNoteCard","dependants","module","n","ExternalStorageTable","mdiPlus","UserMountSettings","globalCredentials","loading","username","password","onSubmit","NcPasswordField","ExternalStoragesSection","GlobalCredentialsSection","pinia","createPinia","app","createApp","FilesExternalApp"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"files_external-settings.mjs","sources":["../node_modules/@mdi/svg/svg/account-group-outline.svg?raw","../build/frontend/apps/files_external/src/composables/useEntities.ts","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/ApplicableEntities.vue","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/AuthMechanismConfiguration.vue","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/BackendConfiguration.vue","../build/frontend/apps/files_external/src/store/storages.ts","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/MountOptions.vue","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/AddExternalStorageDialog.vue","../build/frontend/apps/files_external/src/components/ExternalStorageTableRow.vue","../build/frontend/apps/files_external/src/components/ExternalStorageTable.vue","../build/frontend/apps/files_external/src/components/UserMountSettings.vue","../build/frontend/apps/files_external/src/views/ExternalStoragesSection.vue","../build/frontend/apps/files_external/src/views/GlobalCredentialsSection.vue","../build/frontend/apps/files_external/src/views/FilesExternalSettings.vue","../build/frontend/apps/files_external/src/settings-main.ts"],"sourcesContent":["export default \"\"","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { MaybeRefOrGetter } from 'vue'\n\nimport svgAccountGroupOutline from '@mdi/svg/svg/account-group-outline.svg?raw'\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { computed, reactive, toValue, watchEffect } from 'vue'\n\nconst displayNames = reactive(new Map())\n\n/**\n * Fetch and provide user display names for given UIDs\n *\n * @param uids - The user ids to fetch display names for\n */\nexport function useUsers(uids: MaybeRefOrGetter) {\n\tconst users = computed(() => toValue(uids).map((uid) => ({\n\t\tid: `user:${uid}`,\n\t\tuser: uid,\n\t\tdisplayName: displayNames.get(uid) || uid,\n\t})))\n\n\twatchEffect(async () => {\n\t\tconst missingUsers = toValue(uids).filter((uid) => !displayNames.has(uid))\n\t\tif (missingUsers.length > 0) {\n\t\t\tconst { data } = await axios.post(generateUrl('/displaynames'), {\n\t\t\t\tusers: missingUsers,\n\t\t\t})\n\t\t\tfor (const [uid, displayName] of Object.entries(data.users)) {\n\t\t\t\tdisplayNames.set(uid, displayName as string)\n\t\t\t}\n\t\t}\n\t})\n\n\treturn users\n}\n\n/**\n * Map group ids to IUserData objects\n *\n * @param gids - The group ids to create entities for\n */\nexport function useGroups(gids: MaybeRefOrGetter) {\n\treturn computed(() => toValue(gids).map(mapGroupToUserData))\n}\n\n/**\n * Map a group id to an IUserData object\n *\n * @param gid - The group id to map\n */\nexport function mapGroupToUserData(gid: string) {\n\treturn {\n\t\tid: gid,\n\t\tisNoUser: true,\n\t\tdisplayName: gid,\n\t\ticonSvg: svgAccountGroupOutline,\n\t}\n}\n","\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { IStorage } from '../types.ts'\n\nimport axios from '@nextcloud/axios'\nimport { loadState } from '@nextcloud/initial-state'\nimport { addPasswordConfirmationInterceptors, PwdConfirmationMode } from '@nextcloud/password-confirmation'\nimport { generateUrl } from '@nextcloud/router'\nimport { defineStore } from 'pinia'\nimport { ref, toRaw } from 'vue'\nimport { MountOptionsCheckFilesystem } from '../types.ts'\n\nconst { isAdmin } = loadState<{ isAdmin: boolean }>('files_external', 'settings')\n\nexport const useStorages = defineStore('files_external--storages', () => {\n\tconst globalStorages = ref([])\n\tconst userStorages = ref([])\n\n\t/**\n\t * Create a new global storage\n\t *\n\t * @param storage - The storage to create\n\t */\n\tasync function createGlobalStorage(storage: Partial) {\n\t\tconst url = generateUrl('apps/files_external/globalstorages')\n\t\tconst { data } = await axios.post(\n\t\t\turl,\n\t\t\ttoRaw(storage),\n\t\t\t{ confirmPassword: PwdConfirmationMode.Strict },\n\t\t)\n\t\tglobalStorages.value.push(parseStorage(data))\n\t}\n\n\t/**\n\t * Create a new global storage\n\t *\n\t * @param storage - The storage to create\n\t */\n\tasync function createUserStorage(storage: Partial) {\n\t\tconst url = generateUrl('apps/files_external/userstorages')\n\t\tconst { data } = await axios.post(\n\t\t\turl,\n\t\t\ttoRaw(storage),\n\t\t\t{ confirmPassword: PwdConfirmationMode.Strict },\n\t\t)\n\t\tuserStorages.value.push(parseStorage(data))\n\t}\n\n\t/**\n\t * Delete a storage\n\t *\n\t * @param storage - The storage to delete\n\t */\n\tasync function deleteStorage(storage: IStorage) {\n\t\tawait axios.delete(getUrl(storage), {\n\t\t\tconfirmPassword: PwdConfirmationMode.Strict,\n\t\t})\n\n\t\tif (storage.type === 'personal') {\n\t\t\tuserStorages.value = userStorages.value.filter((s) => s.id !== storage.id)\n\t\t} else {\n\t\t\tglobalStorages.value = globalStorages.value.filter((s) => s.id !== storage.id)\n\t\t}\n\t}\n\n\t/**\n\t * Update an existing storage\n\t *\n\t * @param storage - The storage to update\n\t */\n\tasync function updateStorage(storage: IStorage) {\n\t\tconst { data } = await axios.put(\n\t\t\tgetUrl(storage),\n\t\t\ttoRaw(storage),\n\t\t\t{ confirmPassword: PwdConfirmationMode.Strict },\n\t\t)\n\n\t\toverrideStorage(parseStorage(data))\n\t}\n\n\t/**\n\t * Reload a storage from the server\n\t *\n\t * @param storage - The storage to reload\n\t */\n\tasync function reloadStorage(storage: IStorage) {\n\t\tconst { data } = await axios.get(getUrl(storage))\n\t\toverrideStorage(parseStorage(data))\n\t}\n\n\t// initialize the store\n\tinitialize()\n\n\treturn {\n\t\tglobalStorages,\n\t\tuserStorages,\n\n\t\tcreateGlobalStorage,\n\t\tcreateUserStorage,\n\t\tdeleteStorage,\n\t\treloadStorage,\n\t\tupdateStorage,\n\t}\n\n\t/**\n\t * @param type - The type of storages to load\n\t */\n\tasync function loadStorages(type: string) {\n\t\tconst url = `apps/files_external/${type}`\n\t\tconst { data } = await axios.get>(generateUrl(url))\n\t\treturn Object.values(data)\n\t\t\t.map(parseStorage)\n\t}\n\n\t/**\n\t * Load the storages based on the user role\n\t */\n\tasync function initialize() {\n\t\taddPasswordConfirmationInterceptors(axios)\n\n\t\tif (isAdmin) {\n\t\t\tglobalStorages.value = await loadStorages('globalstorages')\n\t\t} else {\n\t\t\tuserStorages.value = await loadStorages('userstorages')\n\t\t\tglobalStorages.value = await loadStorages('userglobalstorages')\n\t\t}\n\t}\n\n\t/**\n\t * @param storage - The storage to get the URL for\n\t */\n\tfunction getUrl(storage: IStorage) {\n\t\tconst type = storage.type === 'personal' ? 'userstorages' : 'globalstorages'\n\t\treturn generateUrl(`apps/files_external/${type}/${storage.id}`)\n\t}\n\n\t/**\n\t * Override a storage in the store\n\t *\n\t * @param storage - The storage save\n\t */\n\tfunction overrideStorage(storage: IStorage) {\n\t\tif (storage.type === 'personal') {\n\t\t\tconst index = userStorages.value.findIndex((s) => s.id === storage.id)\n\t\t\tuserStorages.value.splice(index, 1, storage)\n\t\t} else {\n\t\t\tconst index = globalStorages.value.findIndex((s) => s.id === storage.id)\n\t\t\tglobalStorages.value.splice(index, 1, storage)\n\t\t}\n\t}\n})\n\n/**\n * @param storage - The storage from API\n */\nfunction parseStorage(storage: IStorage) {\n\treturn {\n\t\t...storage,\n\t\tmountOptions: parseMountOptions(storage.mountOptions),\n\t}\n}\n\n/**\n * Parse the mount options and convert string boolean values to\n * actual booleans and numeric strings to numbers\n *\n * @param options - The mount options to parse\n */\nexport function parseMountOptions(options: IStorage['mountOptions']) {\n\tconst mountOptions = { ...options }\n\tmountOptions.encrypt = convertBooleanOptions(mountOptions.encrypt, true)\n\tmountOptions.previews = convertBooleanOptions(mountOptions.previews, true)\n\tmountOptions.enable_sharing = convertBooleanOptions(mountOptions.enable_sharing, false)\n\tmountOptions.filesystem_check_changes = typeof mountOptions.filesystem_check_changes === 'string'\n\t\t? Number.parseInt(mountOptions.filesystem_check_changes)\n\t\t: (mountOptions.filesystem_check_changes ?? MountOptionsCheckFilesystem.OncePerRequest)\n\tmountOptions.encoding_compatibility = convertBooleanOptions(mountOptions.encoding_compatibility, false)\n\tmountOptions.readonly = convertBooleanOptions(mountOptions.readonly, false)\n\treturn mountOptions\n}\n\n/**\n * Convert backend encoding of boolean options\n *\n * @param option - The option value from API\n * @param fallback - The fallback (default) value\n */\nfunction convertBooleanOptions(option: unknown, fallback = false) {\n\tif (option === undefined) {\n\t\treturn fallback\n\t}\n\treturn option === true || option === 'true' || option === '1'\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createPinia } from 'pinia'\nimport { createApp } from 'vue'\nimport FilesExternalApp from './views/FilesExternalSettings.vue'\n\nconst pinia = createPinia()\nconst app = createApp(FilesExternalApp)\napp.config.idPrefix = 'files-external'\napp.use(pinia)\napp.mount('#files-external')\n"],"names":["svgAccountGroupOutline","displayNames","reactive","useUsers","uids","users","computed","toValue","uid","watchEffect","missingUsers","data","axios","generateUrl","displayName","useGroups","gids","mapGroupToUserData","gid","groups","_useModel","__props","entities","ref","selectedUsers","selectedGroups","model","value","u","g","debouncedSearch","useDebounceFn","onSearch","pattern","newEntries","e","id","_createBlock","_unref","NcSelectUsers","$event","t","modelValue","props","configuration","entries","option","ConfigurationFlag","customComponent","hasConfiguration","isLoadingCustomComponent","watch","key","ConfigurationType","onUpdateModelValue","event","config","_createElementBlock","_normalizeClass","$style","_createElementVNode","_Fragment","NcLoadingIcon","_resolveDynamicComponent","_openBlock","_renderList","configOption","configKey","ConfigurationEntry","_vShow","isAdmin","loadState","useStorages","defineStore","globalStorages","userStorages","createGlobalStorage","storage","url","toRaw","PwdConfirmationMode","parseStorage","createUserStorage","deleteStorage","getUrl","s","updateStorage","overrideStorage","reloadStorage","initialize","loadStorages","type","addPasswordConfirmationInterceptors","index","parseMountOptions","options","mountOptions","convertBooleanOptions","MountOptionsCheckFilesystem","fallback","hasEncryption","idButton","useId","idFieldset","isExpanded","checkFilesystemOptions","checkFilesystem","_createVNode","NcButton","_cache","NcIconSvgWrapper","mdiChevronDown","mdiChevronRight","_createTextVNode","NcSelect","NcCheckboxRadioSwitch","allowedBackendIds","backends","b","allAuthMechanisms","open","internalStorage","backend","authMechanisms","scheme","authMechanism","a","NcDialog","$emit","_toDisplayString","NcTextField","MountOptions","ApplicableEntities","BackendConfiguration","AuthMechanismConfiguration","store","backendName","authMechanismName","checkingStatus","status","StorageStatus","label","StorageStatusMessage","icon","StorageStatusIcons","isWarning","isError","onDelete","onEdit","spawnDialog","AddExternalStorageDialog","reloadStatus","_hoisted_1","_hoisted_2","group","NcChip","mdiAccountGroupOutline","user","NcUserBubble","mdiPencilOutline","mdiTrashCanOutline","mdiInformationOutline","storages","_hoisted_4","ExternalStorageTableRow","userMounting","availableBackends","allowUserMounting","allowedBackends","backupValue","showSuccess","showError","newValue","oldValue","settings","dependencyIssues","missingModules","showDialog","newStorage","addStorage","error","logger","NcSettingsSection","message","NcNoteCard","dependants","module","n","ExternalStorageTable","mdiPlus","UserMountSettings","globalCredentials","loading","username","password","onSubmit","NcPasswordField","ExternalStoragesSection","GlobalCredentialsSection","pinia","createPinia","app","createApp","FilesExternalApp"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file