diff --git a/apps/files_external/src/components/UserMountSettings.vue b/apps/files_external/src/components/UserMountSettings.vue index 2e5d84b4b1854..978fda882a905 100644 --- a/apps/files_external/src/components/UserMountSettings.vue +++ b/apps/files_external/src/components/UserMountSettings.vue @@ -17,6 +17,7 @@ const userMounting = loadState<{ }>('files_external', 'user-mounting') const availableBackends = loadState('files_external', 'backends') + .filter((backend: IBackend) => backend.identifier !== 'local') const allowUserMounting = ref(userMounting.allowUserMounting) const allowedBackends = ref(userMounting.allowedBackends) diff --git a/dist/files_external-settings.mjs b/dist/files_external-settings.mjs index 095d077ef3c84..7997bc5bdae1a 100644 --- a/dist/files_external-settings.mjs +++ b/dist/files_external-settings.mjs @@ -1,2 +1,2 @@ -import{d as he,c as xe}from"./pinia-eY1FsIxi.chunk.mjs";import{a5 as Z,a2 as J,K as we,p as C,b as $,s as B,c as V,o as u,u as e,r as M,q as Q,v as I,j as h,l as T,n as x,k as y,t as v,F as S,J as Ve,C as q,E as z,G as K,a1 as ne,e as b,w,g as k,U as G,H as ke,h as Se}from"./runtime-dom.esm-bundler-nUg13ekW.chunk.mjs";import{N as ue,l as Ce,n as Me,o as Ae,p as Ue,f as $e,q as Te,e as qe}from"./mdi-DK5BPbEO.chunk.mjs";import{a as O,l as A}from"./index-Ma7sfat2.chunk.mjs";import{t as n,b as Oe}from"./translation-DoG5ZELJ-2ffMJaM4.chunk.mjs";import{N}from"./logger-D3RVzcfQ-B4GxPQ5t.chunk.mjs";import"./Plus-BaNqZv8i.chunk.mjs";import{g as R,N as F}from"./createElementId-DhjFt1I9-CRJVCjcq.chunk.mjs";import{N as oe}from"./NcNoteCard-Cok_4Fld-BLQT242e.chunk.mjs";import{N as de}from"./ContentCopy-Cff3hXjy.chunk.mjs";import{c as Ee,N as Ne,s as Pe}from"./index-DeDXQtUD.chunk.mjs";import{N as X}from"./NcSelect-DLheQ2yp-CBfrlGlO.chunk.mjs";import{_ as ce}from"./TrashCanOutline-YYyMK6ia.chunk.mjs";import{c as U}from"./index-ClUK5nWL.chunk.mjs";import{N as Re}from"./index-BfDa8hG_.chunk.mjs";import"./PencilOutline-Da_gxdzI.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-fSFDzBYX.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-DyY3Wrls.chunk.mjs";import"./NcAvatar-C9d7Wrc8-DSaQpb7G.chunk.mjs";import"./NcRichText-DJlaHs_Q-BIFzgFw2.chunk.mjs";import"./index-6_gsQFyp.chunk.mjs";import{N as P}from"./NcCheckboxRadioSwitch-BMsPx74L-DIBi32kw.chunk.mjs";import{N as Fe}from"./NcChip-B71t2Ny2-DqpmLeAg.chunk.mjs";import"./NcColorPicker-DDHxR-iN-BfqdUpwQ.chunk.mjs";import"./TrayArrowDown-C2uV7B4C.chunk.mjs";import"./NcEmojiPicker-Djc9a0gw-BzZP_l-N.chunk.mjs";/* empty css */import"./NcInputField-o5OFv3z6-DGXgkff4.chunk.mjs";import{N as Be}from"./NcPasswordField-uaMO2pdt-Bb_nZP1o.chunk.mjs";import"./index-m906szCF.chunk.mjs";import{N as je}from"./NcUserBubble-vOAXLHB5-hYokuz_z.chunk.mjs";import"./NcUserStatusIcon-XiwrgeCm-BGKwPmPa.chunk.mjs";import"./colors-BHGKZFDI-_xZPp21x.chunk.mjs";import{_ as _e}from"./AuthMechanismRsa-F-Jqclop.chunk.mjs";import{C as me,a as H,M as j,S as D,b as De,c as He}from"./types-CVC8uzLj.chunk.mjs";import{a as pe,P as L}from"./index-b3AfNmc1.chunk.mjs";import{d as ee,a as ae}from"./index-C1xmmKTZ-B_lLl9Ld.chunk.mjs";import{l as fe}from"./logger-CrDakPzW.chunk.mjs";import"./index-sH3U_332.chunk.mjs";const Le='',W=we(new Map);function ge(s){const a=C(()=>J(s).map(l=>({id:`user:${l}`,user:l,displayName:W.get(l)||l})));return Z(async()=>{const l=J(s).filter(r=>!W.has(r));if(l.length>0){const{data:r}=await U.post(R("/displaynames"),{users:l});for(const[c,_]of Object.entries(r.users))W.set(c,_)}}),a}function Ge(s){return C(()=>J(s).map(ve))}function ve(s){return{id:s,isNoUser:!0,displayName:s,iconSvg:Le}}const Ie=$({__name:"ApplicableEntities",props:{groups:{default:()=>[]},groupsModifiers:{},users:{default:()=>[]},usersModifiers:{}},emits:["update:groups","update:users"],setup(s){const a=B(s,"groups"),l=B(s,"users"),r=M([]),c=ge(l),_=Ge(a),o=C({get(){return[..._.value,...c.value]},set(p){l.value=p.filter(d=>d.user).map(d=>d.user),a.value=p.filter(d=>d.isNoUser).map(d=>d.id)}}),i=Ee(t,500);async function t(p){const{data:d}=await U.get(R("apps/files_external/ajax/applicable"),{params:{pattern:p,limit:20}}),m=[...r.value.map(f=>[f.id,f]),...Object.entries(d.groups).map(([f,g])=>[f,{...ve(f),displayName:g}]),...Object.entries(d.users).map(([f,g])=>[`user:${f}`,{id:`user:${f}`,user:f,displayName:g}])];r.value=[...new Map(m).values()]}return(p,d)=>(u(),V(e(Re),{modelValue:o.value,"onUpdate:modelValue":d[0]||(d[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"]))}}),Qe=$({__name:"AuthMechanismConfiguration",props:Q({authMechanism:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const a=B(s,"modelValue"),l=s,r=C(()=>{if(!l.authMechanism.configuration)return;const t=Object.entries(l.authMechanism.configuration).filter(([,p])=>!(p.flags&H.UserProvided));return Object.fromEntries(t)}),c=C(()=>window.OCA.FilesExternal.AuthMechanism.getHandler(l.authMechanism)),_=C(()=>{if(!r.value)return!1;for(const t of Object.values(r.value))if(!(t.flags&H.Hidden||t.flags&H.UserProvided))return!0;return!1}),o=M(!1);Z(async()=>{c.value&&(o.value=!0,await window.customElements.whenDefined(c.value.tagName),o.value=!1)}),I(r,()=>{for(const t in r.value)t in a.value||(a.value[t]=r.value[t]?.type===me.Boolean?!1:"")});function i(t){const p=[t.detail].flat()[0];a.value={...a.value,...p}}return(t,p)=>_.value?(u(),h("fieldset",{key:0,class:x(t.$style.authMechanismConfiguration)},[y("legend",null,v(e(n)("files_external","Authentication")),1),c.value?(u(),h(S,{key:0},[o.value?(u(),V(e(ue),{key:0})):(u(),V(Ve(c.value.tagName),{key:1,".modelValue":a.value,".authMechanism":s.authMechanism,"onUpdate:modelValue":i},null,40,[".modelValue",".authMechanism"]))],64)):(u(!0),h(S,{key:1},q(r.value,(d,m)=>z((u(),V(_e,{key:d.value,modelValue:a.value[m],"onUpdate:modelValue":f=>a.value[m]=f,"config-key":m,"config-option":d},null,8,["modelValue","onUpdate:modelValue","config-key","config-option"])),[[K,!(d.flags&e(H).Hidden)]])),128))],2)):T("",!0)}}),Ze="_authMechanismConfiguration_kpcpy_2",ze={authMechanismConfiguration:Ze},Ke={$style:ze},We=O(Qe,[["__cssModules",Ke]]),Ye=$({__name:"BackendConfiguration",props:Q({configuration:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const a=B(s,"modelValue"),l=s;return I(()=>l.configuration,()=>{for(const r in l.configuration)r in a.value||(a.value[r]=l.configuration[r]?.type===me.Boolean?!1:"")}),(r,c)=>(u(),h("fieldset",{class:x(r.$style.backendConfiguration)},[y("legend",null,v(e(n)("files_external","Storage configuration")),1),(u(!0),h(S,null,q(s.configuration,(_,o)=>z((u(),V(_e,{key:_.value,modelValue:a.value[o],"onUpdate:modelValue":i=>a.value[o]=i,configKey:o,configOption:_},null,8,["modelValue","onUpdate:modelValue","configKey","configOption"])),[[K,!(_.flags&e(H).Hidden)]])),128))],2))}}),Je="_backendConfiguration_1sf6y_2",Xe={backendConfiguration:Je},ea={$style:Xe},aa=O(Ye,[["__cssModules",ea]]),la=["id","aria-labelledby"],ta=$({__name:"MountOptions",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(s){const a=B(s,"modelValue");Z(()=>{Object.keys(a.value).length===0&&(a.value.encrypt=!0,a.value.previews=!0,a.value.enable_sharing=!1,a.value.filesystem_check_changes=j.OncePerRequest,a.value.encoding_compatibility=!1,a.value.readonly=!1)});const{hasEncryption:l}=A("files_external","settings"),r=ne(),c=ne(),_=M(!1),o=[{label:n("files_external","Never"),value:j.Never},{label:n("files_external","Once every direct access"),value:j.OncePerRequest},{label:n("files_external","Always"),value:j.Always}],i=C({get(){return o.find(t=>t.value===a.value.filesystem_check_changes)},set(t){a.value.filesystem_check_changes=t?.value??j.OncePerRequest}});return(t,p)=>(u(),h("div",{class:x(t.$style.mountOptions)},[b(e(N),{id:e(r),"aria-controls":e(c),"aria-expanded":_.value,variant:"tertiary-no-background",onClick:p[0]||(p[0]=d=>_.value=!_.value)},{icon:w(()=>[b(e(F),{directional:"",path:_.value?e(Ce):e(Me)},null,8,["path"])]),default:w(()=>[k(" "+v(e(n)("files_external","Mount options")),1)]),_:1},8,["id","aria-controls","aria-expanded"]),z(y("fieldset",{id:e(c),class:x(t.$style.mountOptions__fieldset),"aria-labelledby":e(r)},[b(e(X),{modelValue:i.value,"onUpdate:modelValue":p[1]||(p[1]=d=>i.value=d),inputLabel:e(n)("files_external","Check filesystem changes"),options:o},null,8,["modelValue","inputLabel"]),b(e(P),{modelValue:s.modelValue.readonly,"onUpdate:modelValue":p[2]||(p[2]=d=>s.modelValue.readonly=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Read only")),1)]),_:1},8,["modelValue"]),b(e(P),{modelValue:s.modelValue.previews,"onUpdate:modelValue":p[3]||(p[3]=d=>s.modelValue.previews=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Enable previews")),1)]),_:1},8,["modelValue"]),b(e(P),{modelValue:s.modelValue.enable_sharing,"onUpdate:modelValue":p[4]||(p[4]=d=>s.modelValue.enable_sharing=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Enable sharing")),1)]),_:1},8,["modelValue"]),e(l)?(u(),V(e(P),{key:0,modelValue:s.modelValue.encrypt,"onUpdate:modelValue":p[5]||(p[5]=d=>s.modelValue.encrypt=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Enable encryption")),1)]),_:1},8,["modelValue"])):T("",!0),b(e(P),{modelValue:s.modelValue.encoding_compatibility,"onUpdate:modelValue":p[6]||(p[6]=d=>s.modelValue.encoding_compatibility=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Compatibility with Mac NFD encoding (slow)")),1)]),_:1},8,["modelValue"])],10,la),[[K,_.value]])],2))}}),sa="_mountOptions_1fqyb_2",na="_mountOptions__fieldset_1fqyb_12",oa={mountOptions:sa,mountOptions__fieldset:na},ia={$style:oa},ra=O(ta,[["__cssModules",ia]]),{isAdmin:ie}=A("files_external","settings"),ua=A("files_external","allowedBackends"),re=A("files_external","backends").filter(s=>ua.includes(s.identifier)),da=A("files_external","authMechanisms"),ca=$({__name:"AddExternalStorageDialog",props:Q({storage:{default:()=>({backendOptions:{},mountOptions:{},type:ie?"system":"personal"})}},{open:{type:Boolean,default:!0},openModifiers:{}}),emits:Q(["close"],["update:open"]),setup(s){const a=B(s,"open"),l=M(structuredClone(G(s.storage)));Z(()=>{a.value&&(l.value=structuredClone(G(s.storage)))});const r=C({get(){return re.find(o=>o.identifier===l.value.backend)},set(o){l.value.backend=o?.identifier}}),c=C(()=>da.filter(({scheme:o})=>r.value?.authSchemes[o])),_=C({get(){return c.value.find(o=>o.identifier===l.value.authMechanism)},set(o){l.value.authMechanism=o?.identifier}});return I(c,()=>{c.value.length===1&&(l.value.authMechanism=c.value[0].identifier)}),(o,i)=>(u(),V(e(Ne),{open:a.value,"onUpdate:open":[i[9]||(i[9]=t=>a.value=t),i[11]||(i[11]=t=>t||o.$emit("close"))],isForm:"",contentClasses:o.$style.externalStorageDialog,name:l.value.id?e(n)("files_external","Edit storage"):e(n)("files_external","Add storage"),onSubmit:i[10]||(i[10]=t=>o.$emit("close",l.value))},{actions:w(()=>[s.storage.id?(u(),V(e(N),{key:0,onClick:i[8]||(i[8]=t=>o.$emit("close"))},{default:w(()=>[k(v(e(n)("files_external","Cancel")),1)]),_:1})):T("",!0),b(e(N),{variant:"primary",type:"submit"},{default:w(()=>[k(v(s.storage.id?e(n)("files_external","Edit"):e(n)("files_external","Create")),1)]),_:1})]),default:w(()=>[b(e(ce),{modelValue:l.value.mountPoint,"onUpdate:modelValue":i[0]||(i[0]=t=>l.value.mountPoint=t),label:e(n)("files_external","Folder name"),required:""},null,8,["modelValue","label"]),b(ra,{modelValue:l.value.mountOptions,"onUpdate:modelValue":i[1]||(i[1]=t=>l.value.mountOptions=t)},null,8,["modelValue"]),e(ie)?(u(),V(Ie,{key:0,groups:l.value.applicableGroups,"onUpdate:groups":i[2]||(i[2]=t=>l.value.applicableGroups=t),users:l.value.applicableUsers,"onUpdate:users":i[3]||(i[3]=t=>l.value.applicableUsers=t)},null,8,["groups","users"])):T("",!0),b(e(X),{modelValue:r.value,"onUpdate:modelValue":i[4]||(i[4]=t=>r.value=t),options:e(re),disabled:!!(l.value.id&&l.value.backend),inputLabel:e(n)("files_external","External storage"),label:"name",required:""},null,8,["modelValue","options","disabled","inputLabel"]),b(e(X),{modelValue:_.value,"onUpdate:modelValue":i[5]||(i[5]=t=>_.value=t),options:c.value,disabled:!l.value.backend||c.value.length<=1||!!(l.value.id&&l.value.authMechanism),inputLabel:e(n)("files_external","Authentication"),label:"name",required:""},null,8,["modelValue","options","disabled","inputLabel"]),r.value?(u(),V(aa,{key:1,modelValue:l.value.backendOptions,"onUpdate:modelValue":i[6]||(i[6]=t=>l.value.backendOptions=t),class:x(o.$style.externalStorageDialog__configuration),configuration:r.value.configuration},null,8,["modelValue","class","configuration"])):T("",!0),_.value?(u(),V(We,{key:2,modelValue:l.value.backendOptions,"onUpdate:modelValue":i[7]||(i[7]=t=>l.value.backendOptions=t),class:x(o.$style.externalStorageDialog__configuration),authMechanism:_.value},null,8,["modelValue","class","authMechanism"])):T("",!0)]),_:1},8,["open","contentClasses","name"]))}}),_a="_externalStorageDialog_9wew8_2",ma="_externalStorageDialog__configuration_9wew8_9",pa={externalStorageDialog:_a,externalStorageDialog__configuration:ma},fa={$style:pa},be=O(ca,[["__cssModules",fa]]),{isAdmin:ga}=A("files_external","settings"),le=he("files_external--storages",()=>{const s=M([]),a=M([]);async function l(m){const f=R("apps/files_external/globalstorages"),{data:g}=await U.post(f,G(m),{confirmPassword:L.Strict});s.value.push(g)}async function r(m){const f=R("apps/files_external/userstorages"),{data:g}=await U.post(f,G(m),{confirmPassword:L.Strict});a.value.push(g)}async function c(m){await U.delete(p(m),{confirmPassword:L.Strict}),m.type==="personal"?a.value=a.value.filter(f=>f.id!==m.id):s.value=s.value.filter(f=>f.id!==m.id)}async function _(m){const{data:f}=await U.put(p(m),G(m),{confirmPassword:L.Strict});d(f)}async function o(m){const{data:f}=await U.get(p(m));d(f)}return t(),{globalStorages:s,userStorages:a,createGlobalStorage:l,createUserStorage:r,deleteStorage:c,reloadStorage:o,updateStorage:_};async function i(m){const f=`apps/files_external/${m}`,{data:g}=await U.get(R(f));return Object.values(g)}async function t(){pe(U),ga?s.value=await i("globalstorages"):(a.value=await i("userstorages"),s.value=await i("userglobalstorages"))}function p(m){const f=m.type==="personal"?"userstorages":"globalstorages";return R(`apps/files_external/${f}/${m.id}`)}function d(m){if(m.type==="personal"){const f=a.value.findIndex(g=>g.id===m.id);a.value.splice(f,1,m)}else{const f=s.value.findIndex(g=>g.id===m.id);s.value.splice(f,1,m)}}}),va={class:"hidden-visually"},ba={key:0},ya=$({__name:"ExternalStorageTableRow",props:{storage:{},isAdmin:{type:Boolean}},setup(s){const a=s,l=le(),r=A("files_external","backends"),c=C(()=>r.find(g=>g.identifier===a.storage.backend).name),_=A("files_external","authMechanisms"),o=C(()=>_.find(g=>g.identifier===a.storage.authMechanism).name),i=M(!1),t=C(()=>{if(i.value)return{icon:"loading",label:n("files_external","Checking …")};const g=a.storage.status??D.Indeterminate,te=a.storage.statusMessage||De[g],E=He[g],se=g===D.NetworkError||g===D.Timeout,ye=!se&&g!==D.Success&&g!==D.Indeterminate;return{icon:E,label:te,isWarning:se,isError:ye}}),p=ge(()=>a.storage.applicableUsers||[]);async function d(){await l.deleteStorage(a.storage)}async function m(){const g=await Pe(be,{storage:a.storage});g&&await l.updateStorage(g)}async function f(){i.value=!0;try{await l.reloadStorage(a.storage)}finally{i.value=!1}}return(g,te)=>(u(),h("tr",{class:x(g.$style.storageTableRow)},[y("td",null,[y("span",va,v(t.value.label),1),b(e(N),{"aria-label":e(n)("files_external","Recheck status"),title:t.value.label,variant:"tertiary-no-background",onClick:f},{icon:w(()=>[t.value.icon==="loading"?(u(),V(e(ue),{key:0})):(u(),V(e(F),{key:1,class:x({[g.$style.storageTableRow__status_error]:t.value.isError,[g.$style.storageTableRow__status_warning]:t.value.isWarning}),path:t.value.icon},null,8,["class","path"]))]),_:1},8,["aria-label","title"])]),y("td",null,v(s.storage.mountPoint),1),y("td",null,v(c.value),1),y("td",null,v(o.value),1),s.isAdmin?(u(),h("td",ba,[y("div",{class:x(g.$style.storageTableRow__cellApplicable)},[(u(!0),h(S,null,q(s.storage.applicableGroups,E=>(u(),V(e(Fe),{key:E,iconPath:e(Ae),noClose:"",text:E},null,8,["iconPath","text"]))),128)),(u(!0),h(S,null,q(e(p),E=>(u(),V(e(je),{key:E.user,displayName:E.displayName,size:24,user:E.user},null,8,["displayName","user"]))),128))],2)])):T("",!0),y("td",null,[s.isAdmin||s.storage.type==="personal"?(u(),h("div",{key:0,class:x(g.$style.storageTableRow__cellActions)},[b(e(N),{"aria-label":e(n)("files_external","Edit"),title:e(n)("files_external","Edit"),onClick:m},{icon:w(()=>[b(e(F),{path:e(Ue)},null,8,["path"])]),_:1},8,["aria-label","title"]),b(e(N),{"aria-label":e(n)("files_external","Delete"),title:e(n)("files_external","Delete"),variant:"error",onClick:d},{icon:w(()=>[b(e(F),{path:e($e)},null,8,["path"])]),_:1},8,["aria-label","title"])],2)):(u(),V(e(F),{key:1,inline:"",path:e(Te),name:e(n)("files_external","System provided storage"),title:e(n)("files_external","System provided storage")},null,8,["path","name","title"]))])],2))}}),ha="_storageTableRow__cellActions_1k62p_2",xa="_storageTableRow__cellApplicable_1k62p_7",wa="_storageTableRow__status_warning_1k62p_17",Va="_storageTableRow__status_error_1k62p_21",ka={storageTableRow__cellActions:ha,storageTableRow__cellApplicable:xa,storageTableRow__status_warning:wa,storageTableRow__status_error:Va},Sa={$style:ka},Ca=O(ya,[["__cssModules",Sa]]),Ma=["aria-label"],Aa={class:"hidden-visually"},Ua={key:0},$a={class:"hidden-visually"},Ta=$({__name:"ExternalStorageTable",setup(s){const a=le(),{isAdmin:l}=A("files_external","settings"),r=C(()=>l?a.globalStorages:[...a.userStorages,...a.globalStorages]);return(c,_)=>(u(),h("table",{class:x(c.$style.storageTable),"aria-label":e(n)("files_external","External storages")},[y("thead",{class:x(c.$style.storageTable__header)},[y("tr",null,[y("th",{class:x(c.$style.storageTable__headerStatus)},[y("span",Aa,v(e(n)("files_external","Status")),1)],2),y("th",{class:x(c.$style.storageTable__headerFolder)},v(e(n)("files_external","Folder name")),3),y("th",{class:x(c.$style.storageTable__headerBackend)},v(e(n)("files_external","External storage")),3),y("th",{class:x(c.$style.storageTable__headerAuthentication)},v(e(n)("files_external","Authentication")),3),e(l)?(u(),h("th",Ua,v(e(n)("files_external","Restricted to")),1)):T("",!0),y("th",{class:x(c.$style.storageTable__headerActions)},[y("span",$a,v(e(n)("files_external","Actions")),1)],2)])],2),y("tbody",null,[(u(!0),h(S,null,q(r.value,o=>(u(),V(Ca,{key:o.id,isAdmin:e(l),storage:o},null,8,["isAdmin","storage"]))),128))])],10,Ma))}}),qa="_storageTable_1dqte_2",Oa="_storageTable__header_1dqte_11",Ea="_storageTable__headerStatus_1dqte_16",Na="_storageTable__headerFolder_1dqte_20",Pa="_storageTable__headerBackend_1dqte_24",Ra="_storageTable__headerFAuthentication_1dqte_28",Fa="_storageTable__headerActions_1dqte_32",Ba={storageTable:qa,storageTable__header:Oa,storageTable__headerStatus:Ea,storageTable__headerFolder:Na,storageTable__headerBackend:Pa,storageTable__headerFAuthentication:Ra,storageTable__headerActions:Fa},ja={$style:Ba},Da=O(Ta,[["__cssModules",ja]]),Ha=$({__name:"UserMountSettings",setup(s){const a=A("files_external","user-mounting"),l=A("files_external","backends"),r=M(a.allowUserMounting),c=M(a.allowedBackends);return I(r,()=>{const _=!r.value;window.OCP.AppConfig.setValue("files_external","allow_user_mounting",r.value?"yes":"no",{success:()=>ee(n("files_external","Saved")),error:()=>{r.value=_,ae(n("files_external","Error while saving"))}})}),I(c,(_,o)=>{window.OCP.AppConfig.setValue("files_external","user_mounting_backends",_.join(","),{success:()=>ee(n("files_external","Saved allowed backends")),error:()=>{ae(n("files_external","Failed to save allowed backends")),c.value=o}})}),(_,o)=>(u(),h("form",null,[y("h3",{class:x(_.$style.userMountSettings__heading)},v(e(n)("files_external","Advanced options for external storage mounts")),3),b(e(P),{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=i=>r.value=i),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Allow people to mount external storage")),1)]),_:1},8,["modelValue"]),z(y("fieldset",{class:x(_.$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,q(e(l),i=>(u(),V(e(P),{key:i.identifier,modelValue:c.value,"onUpdate:modelValue":o[1]||(o[1]=t=>c.value=t),value:i.identifier,name:"allowUserMountingBackends[]"},{default:w(()=>[k(v(i.name),1)]),_:2},1032,["modelValue","value"]))),128))],2),[[K,r.value]])]))}}),La="_userMountSettings__heading_59moz_2",Ga="_userMountSettings__backends_59moz_9",Ia={userMountSettings__heading:La,userMountSettings__backends:Ga},Qa={$style:Ia},Za=O(Ha,[["__cssModules",Qa]]);const za=["aria-label"],Ka=$({__name:"ExternalStoragesSection",setup(s){const a=A("files_external","settings",{docUrl:"",dependencyIssues:{messages:null,modules:null},isAdmin:!1}),l=le(),r=a.dependencyIssues?.messages??[],c=a.dependencyIssues?.modules??{},_=M(!1),o=M();async function i(t){if(_.value=!1,!!t)try{a.isAdmin?await l.createGlobalStorage(t):await l.createUserStorage(t),o.value=void 0}catch(p){fe.error("Failed to add external storage",{error:p}),_.value=!0}}return(t,p)=>(u(),V(e(de),{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,q(e(r),(d,m)=>(u(),V(e(oe),{key:m,type:"error"},{default:w(()=>[k(v(d),1)]),_:2},1024))),128)),(u(!0),h(S,null,q(e(c),(d,m)=>(u(),V(e(oe),{key:m,type:"warning"},{default:w(()=>[y("p",null,[m==="curl"?(u(),h(S,{key:0},[k(v(e(n)("files_external","The cURL support in PHP is not enabled or installed.")),1)],64)):m==="ftp"?(u(),h(S,{key:1},[k(v(e(n)("files_external","The FTP support in PHP is not enabled or installed.")),1)],64)):(u(),h(S,{key:2},[k(v(e(n)("files_external","{module} is not installed.",{module:m})),1)],64)),k(" "+v(e(Oe)("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:",d.length)),1)]),y("ul",{class:x(t.$style.externalStoragesSection__dependantList),"aria-label":e(n)("files_external","Dependant backends")},[(u(!0),h(S,null,q(d,f=>(u(),h("li",{key:f},v(f),1))),128))],10,za)]),_:2},1024))),128)),T("",!0),b(Da),b(e(N),{class:x(t.$style.externalStoragesSection__newStorageButton),variant:"primary",onClick:p[0]||(p[0]=d=>_.value=!_.value)},{icon:w(()=>[b(e(F),{path:e(qe)},null,8,["path"])]),default:w(()=>[k(" "+v(e(n)("files_external","Add external storage")),1)]),_:1},8,["class"]),b(be,{modelValue:o.value,"onUpdate:modelValue":p[1]||(p[1]=d=>o.value=d),open:_.value,"onUpdate:open":p[2]||(p[2]=d=>_.value=d),onClose:i},null,8,["modelValue","open"]),e(a).isAdmin?(u(),V(Za,{key:1})):T("",!0)]),_:1},8,["docUrl","name","description"]))}}),Wa="_externalStoragesSection__dependantList_atsmn_2",Ya="_externalStoragesSection__newStorageButton_atsmn_7",Ja={externalStoragesSection__dependantList:Wa,externalStoragesSection__newStorageButton:Ya},Xa={$style:Ja},el=O(Ka,[["__cssModules",Xa]]),al=$({__name:"GlobalCredentialsSection",setup(s){const a=A("files_external","global-credentials"),l=M(!1),r=M(a.user),c=M(a.password);pe(U);async function _(){try{l.value=!0;const{data:o}=await U.post(R("apps/files_external/globalcredentials"),{uid:a.uid,user:r.value,password:c.value},{confirmPassword:L.Strict});if(o){ee(n("files_external","Global credentials saved"));return}}catch(o){fe.error(o)}finally{l.value=!1}ae(n("files_external","Could not save global credentials")),r.value=a.user,c.value=a.password}return(o,i)=>(u(),V(e(de),{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:ke(_,["prevent"])},[b(e(ce),{modelValue:r.value,"onUpdate:modelValue":i[0]||(i[0]=t=>r.value=t),name:"username",autocomplete:"false",label:e(n)("files_external","Login")},null,8,["modelValue","label"]),b(e(Be),{modelValue:c.value,"onUpdate:modelValue":i[1]||(i[1]=t=>c.value=t),name:"password",autocomplete:"false",label:e(n)("files_external","Password")},null,8,["modelValue","label"]),b(e(N),{class:x(o.$style.globalCredentialsSectionForm__submit),disabled:l.value,variant:"primary",type:"submit"},{default:w(()=>[k(v(l.value?e(n)("files_external","Saving …"):e(n)("files_external","Save")),1)]),_:1},8,["class","disabled"])],34)]),_:1},8,["name","description"]))}}),ll="_globalCredentialsSectionForm_bgjv2_2",tl="_globalCredentialsSectionForm__submit_bgjv2_10",sl={globalCredentialsSectionForm:ll,globalCredentialsSectionForm__submit:tl},nl={$style:sl},ol=O(al,[["__cssModules",nl]]),il=$({__name:"FilesExternalSettings",setup(s){return(a,l)=>(u(),h(S,null,[b(el),b(ol)],64))}}),rl=xe(),Y=Se(il);Y.config.idPrefix="files-external",Y.use(rl),Y.mount("#files-external"); +import{d as he,c as xe}from"./pinia-eY1FsIxi.chunk.mjs";import{a5 as Z,a2 as J,K as we,p as C,b as $,s as B,c as V,o as u,u as e,r as M,q as Q,v as I,j as h,l as T,n as x,k as y,t as v,F as S,J as Ve,C as q,E as z,G as K,a1 as ne,e as b,w,g as k,U as G,H as ke,h as Se}from"./runtime-dom.esm-bundler-nUg13ekW.chunk.mjs";import{N as ue,l as Ce,n as Me,o as Ae,p as Ue,f as $e,q as Te,e as qe}from"./mdi-DK5BPbEO.chunk.mjs";import{a as O,l as A}from"./index-Ma7sfat2.chunk.mjs";import{t as n,b as Oe}from"./translation-DoG5ZELJ-2ffMJaM4.chunk.mjs";import{N}from"./logger-D3RVzcfQ-B4GxPQ5t.chunk.mjs";import"./Plus-BaNqZv8i.chunk.mjs";import{g as R,N as F}from"./createElementId-DhjFt1I9-CRJVCjcq.chunk.mjs";import{N as oe}from"./NcNoteCard-Cok_4Fld-BLQT242e.chunk.mjs";import{N as de}from"./ContentCopy-Cff3hXjy.chunk.mjs";import{c as Ee,N as Ne,s as Pe}from"./index-DeDXQtUD.chunk.mjs";import{N as X}from"./NcSelect-DLheQ2yp-CBfrlGlO.chunk.mjs";import{_ as ce}from"./TrashCanOutline-YYyMK6ia.chunk.mjs";import{c as U}from"./index-ClUK5nWL.chunk.mjs";import{N as Re}from"./index-BfDa8hG_.chunk.mjs";import"./PencilOutline-Da_gxdzI.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-fSFDzBYX.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-DyY3Wrls.chunk.mjs";import"./NcAvatar-C9d7Wrc8-DSaQpb7G.chunk.mjs";import"./NcRichText-DJlaHs_Q-BIFzgFw2.chunk.mjs";import"./index-6_gsQFyp.chunk.mjs";import{N as P}from"./NcCheckboxRadioSwitch-BMsPx74L-DIBi32kw.chunk.mjs";import{N as Fe}from"./NcChip-B71t2Ny2-DqpmLeAg.chunk.mjs";import"./NcColorPicker-DDHxR-iN-BfqdUpwQ.chunk.mjs";import"./TrayArrowDown-C2uV7B4C.chunk.mjs";import"./NcEmojiPicker-Djc9a0gw-BzZP_l-N.chunk.mjs";/* empty css */import"./NcInputField-o5OFv3z6-DGXgkff4.chunk.mjs";import{N as Be}from"./NcPasswordField-uaMO2pdt-Bb_nZP1o.chunk.mjs";import"./index-m906szCF.chunk.mjs";import{N as je}from"./NcUserBubble-vOAXLHB5-hYokuz_z.chunk.mjs";import"./NcUserStatusIcon-XiwrgeCm-BGKwPmPa.chunk.mjs";import"./colors-BHGKZFDI-_xZPp21x.chunk.mjs";import{_ as _e}from"./AuthMechanismRsa-F-Jqclop.chunk.mjs";import{C as me,a as H,M as j,S as D,b as De,c as He}from"./types-CVC8uzLj.chunk.mjs";import{a as pe,P as L}from"./index-b3AfNmc1.chunk.mjs";import{d as ee,a as ae}from"./index-C1xmmKTZ-B_lLl9Ld.chunk.mjs";import{l as fe}from"./logger-CrDakPzW.chunk.mjs";import"./index-sH3U_332.chunk.mjs";const Le='',W=we(new Map);function ge(s){const a=C(()=>J(s).map(l=>({id:`user:${l}`,user:l,displayName:W.get(l)||l})));return Z(async()=>{const l=J(s).filter(r=>!W.has(r));if(l.length>0){const{data:r}=await U.post(R("/displaynames"),{users:l});for(const[c,_]of Object.entries(r.users))W.set(c,_)}}),a}function Ge(s){return C(()=>J(s).map(ve))}function ve(s){return{id:s,isNoUser:!0,displayName:s,iconSvg:Le}}const Ie=$({__name:"ApplicableEntities",props:{groups:{default:()=>[]},groupsModifiers:{},users:{default:()=>[]},usersModifiers:{}},emits:["update:groups","update:users"],setup(s){const a=B(s,"groups"),l=B(s,"users"),r=M([]),c=ge(l),_=Ge(a),o=C({get(){return[..._.value,...c.value]},set(p){l.value=p.filter(d=>d.user).map(d=>d.user),a.value=p.filter(d=>d.isNoUser).map(d=>d.id)}}),i=Ee(t,500);async function t(p){const{data:d}=await U.get(R("apps/files_external/ajax/applicable"),{params:{pattern:p,limit:20}}),m=[...r.value.map(f=>[f.id,f]),...Object.entries(d.groups).map(([f,g])=>[f,{...ve(f),displayName:g}]),...Object.entries(d.users).map(([f,g])=>[`user:${f}`,{id:`user:${f}`,user:f,displayName:g}])];r.value=[...new Map(m).values()]}return(p,d)=>(u(),V(e(Re),{modelValue:o.value,"onUpdate:modelValue":d[0]||(d[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"]))}}),Qe=$({__name:"AuthMechanismConfiguration",props:Q({authMechanism:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const a=B(s,"modelValue"),l=s,r=C(()=>{if(!l.authMechanism.configuration)return;const t=Object.entries(l.authMechanism.configuration).filter(([,p])=>!(p.flags&H.UserProvided));return Object.fromEntries(t)}),c=C(()=>window.OCA.FilesExternal.AuthMechanism.getHandler(l.authMechanism)),_=C(()=>{if(!r.value)return!1;for(const t of Object.values(r.value))if(!(t.flags&H.Hidden||t.flags&H.UserProvided))return!0;return!1}),o=M(!1);Z(async()=>{c.value&&(o.value=!0,await window.customElements.whenDefined(c.value.tagName),o.value=!1)}),I(r,()=>{for(const t in r.value)t in a.value||(a.value[t]=r.value[t]?.type===me.Boolean?!1:"")});function i(t){const p=[t.detail].flat()[0];a.value={...a.value,...p}}return(t,p)=>_.value?(u(),h("fieldset",{key:0,class:x(t.$style.authMechanismConfiguration)},[y("legend",null,v(e(n)("files_external","Authentication")),1),c.value?(u(),h(S,{key:0},[o.value?(u(),V(e(ue),{key:0})):(u(),V(Ve(c.value.tagName),{key:1,".modelValue":a.value,".authMechanism":s.authMechanism,"onUpdate:modelValue":i},null,40,[".modelValue",".authMechanism"]))],64)):(u(!0),h(S,{key:1},q(r.value,(d,m)=>z((u(),V(_e,{key:d.value,modelValue:a.value[m],"onUpdate:modelValue":f=>a.value[m]=f,"config-key":m,"config-option":d},null,8,["modelValue","onUpdate:modelValue","config-key","config-option"])),[[K,!(d.flags&e(H).Hidden)]])),128))],2)):T("",!0)}}),Ze="_authMechanismConfiguration_kpcpy_2",ze={authMechanismConfiguration:Ze},Ke={$style:ze},We=O(Qe,[["__cssModules",Ke]]),Ye=$({__name:"BackendConfiguration",props:Q({configuration:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const a=B(s,"modelValue"),l=s;return I(()=>l.configuration,()=>{for(const r in l.configuration)r in a.value||(a.value[r]=l.configuration[r]?.type===me.Boolean?!1:"")}),(r,c)=>(u(),h("fieldset",{class:x(r.$style.backendConfiguration)},[y("legend",null,v(e(n)("files_external","Storage configuration")),1),(u(!0),h(S,null,q(s.configuration,(_,o)=>z((u(),V(_e,{key:_.value,modelValue:a.value[o],"onUpdate:modelValue":i=>a.value[o]=i,configKey:o,configOption:_},null,8,["modelValue","onUpdate:modelValue","configKey","configOption"])),[[K,!(_.flags&e(H).Hidden)]])),128))],2))}}),Je="_backendConfiguration_1sf6y_2",Xe={backendConfiguration:Je},ea={$style:Xe},aa=O(Ye,[["__cssModules",ea]]),la=["id","aria-labelledby"],ta=$({__name:"MountOptions",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(s){const a=B(s,"modelValue");Z(()=>{Object.keys(a.value).length===0&&(a.value.encrypt=!0,a.value.previews=!0,a.value.enable_sharing=!1,a.value.filesystem_check_changes=j.OncePerRequest,a.value.encoding_compatibility=!1,a.value.readonly=!1)});const{hasEncryption:l}=A("files_external","settings"),r=ne(),c=ne(),_=M(!1),o=[{label:n("files_external","Never"),value:j.Never},{label:n("files_external","Once every direct access"),value:j.OncePerRequest},{label:n("files_external","Always"),value:j.Always}],i=C({get(){return o.find(t=>t.value===a.value.filesystem_check_changes)},set(t){a.value.filesystem_check_changes=t?.value??j.OncePerRequest}});return(t,p)=>(u(),h("div",{class:x(t.$style.mountOptions)},[b(e(N),{id:e(r),"aria-controls":e(c),"aria-expanded":_.value,variant:"tertiary-no-background",onClick:p[0]||(p[0]=d=>_.value=!_.value)},{icon:w(()=>[b(e(F),{directional:"",path:_.value?e(Ce):e(Me)},null,8,["path"])]),default:w(()=>[k(" "+v(e(n)("files_external","Mount options")),1)]),_:1},8,["id","aria-controls","aria-expanded"]),z(y("fieldset",{id:e(c),class:x(t.$style.mountOptions__fieldset),"aria-labelledby":e(r)},[b(e(X),{modelValue:i.value,"onUpdate:modelValue":p[1]||(p[1]=d=>i.value=d),inputLabel:e(n)("files_external","Check filesystem changes"),options:o},null,8,["modelValue","inputLabel"]),b(e(P),{modelValue:s.modelValue.readonly,"onUpdate:modelValue":p[2]||(p[2]=d=>s.modelValue.readonly=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Read only")),1)]),_:1},8,["modelValue"]),b(e(P),{modelValue:s.modelValue.previews,"onUpdate:modelValue":p[3]||(p[3]=d=>s.modelValue.previews=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Enable previews")),1)]),_:1},8,["modelValue"]),b(e(P),{modelValue:s.modelValue.enable_sharing,"onUpdate:modelValue":p[4]||(p[4]=d=>s.modelValue.enable_sharing=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Enable sharing")),1)]),_:1},8,["modelValue"]),e(l)?(u(),V(e(P),{key:0,modelValue:s.modelValue.encrypt,"onUpdate:modelValue":p[5]||(p[5]=d=>s.modelValue.encrypt=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Enable encryption")),1)]),_:1},8,["modelValue"])):T("",!0),b(e(P),{modelValue:s.modelValue.encoding_compatibility,"onUpdate:modelValue":p[6]||(p[6]=d=>s.modelValue.encoding_compatibility=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Compatibility with Mac NFD encoding (slow)")),1)]),_:1},8,["modelValue"])],10,la),[[K,_.value]])],2))}}),sa="_mountOptions_1fqyb_2",na="_mountOptions__fieldset_1fqyb_12",oa={mountOptions:sa,mountOptions__fieldset:na},ia={$style:oa},ra=O(ta,[["__cssModules",ia]]),{isAdmin:ie}=A("files_external","settings"),ua=A("files_external","allowedBackends"),re=A("files_external","backends").filter(s=>ua.includes(s.identifier)),da=A("files_external","authMechanisms"),ca=$({__name:"AddExternalStorageDialog",props:Q({storage:{default:()=>({backendOptions:{},mountOptions:{},type:ie?"system":"personal"})}},{open:{type:Boolean,default:!0},openModifiers:{}}),emits:Q(["close"],["update:open"]),setup(s){const a=B(s,"open"),l=M(structuredClone(G(s.storage)));Z(()=>{a.value&&(l.value=structuredClone(G(s.storage)))});const r=C({get(){return re.find(o=>o.identifier===l.value.backend)},set(o){l.value.backend=o?.identifier}}),c=C(()=>da.filter(({scheme:o})=>r.value?.authSchemes[o])),_=C({get(){return c.value.find(o=>o.identifier===l.value.authMechanism)},set(o){l.value.authMechanism=o?.identifier}});return I(c,()=>{c.value.length===1&&(l.value.authMechanism=c.value[0].identifier)}),(o,i)=>(u(),V(e(Ne),{open:a.value,"onUpdate:open":[i[9]||(i[9]=t=>a.value=t),i[11]||(i[11]=t=>t||o.$emit("close"))],isForm:"",contentClasses:o.$style.externalStorageDialog,name:l.value.id?e(n)("files_external","Edit storage"):e(n)("files_external","Add storage"),onSubmit:i[10]||(i[10]=t=>o.$emit("close",l.value))},{actions:w(()=>[s.storage.id?(u(),V(e(N),{key:0,onClick:i[8]||(i[8]=t=>o.$emit("close"))},{default:w(()=>[k(v(e(n)("files_external","Cancel")),1)]),_:1})):T("",!0),b(e(N),{variant:"primary",type:"submit"},{default:w(()=>[k(v(s.storage.id?e(n)("files_external","Edit"):e(n)("files_external","Create")),1)]),_:1})]),default:w(()=>[b(e(ce),{modelValue:l.value.mountPoint,"onUpdate:modelValue":i[0]||(i[0]=t=>l.value.mountPoint=t),label:e(n)("files_external","Folder name"),required:""},null,8,["modelValue","label"]),b(ra,{modelValue:l.value.mountOptions,"onUpdate:modelValue":i[1]||(i[1]=t=>l.value.mountOptions=t)},null,8,["modelValue"]),e(ie)?(u(),V(Ie,{key:0,groups:l.value.applicableGroups,"onUpdate:groups":i[2]||(i[2]=t=>l.value.applicableGroups=t),users:l.value.applicableUsers,"onUpdate:users":i[3]||(i[3]=t=>l.value.applicableUsers=t)},null,8,["groups","users"])):T("",!0),b(e(X),{modelValue:r.value,"onUpdate:modelValue":i[4]||(i[4]=t=>r.value=t),options:e(re),disabled:!!(l.value.id&&l.value.backend),inputLabel:e(n)("files_external","External storage"),label:"name",required:""},null,8,["modelValue","options","disabled","inputLabel"]),b(e(X),{modelValue:_.value,"onUpdate:modelValue":i[5]||(i[5]=t=>_.value=t),options:c.value,disabled:!l.value.backend||c.value.length<=1||!!(l.value.id&&l.value.authMechanism),inputLabel:e(n)("files_external","Authentication"),label:"name",required:""},null,8,["modelValue","options","disabled","inputLabel"]),r.value?(u(),V(aa,{key:1,modelValue:l.value.backendOptions,"onUpdate:modelValue":i[6]||(i[6]=t=>l.value.backendOptions=t),class:x(o.$style.externalStorageDialog__configuration),configuration:r.value.configuration},null,8,["modelValue","class","configuration"])):T("",!0),_.value?(u(),V(We,{key:2,modelValue:l.value.backendOptions,"onUpdate:modelValue":i[7]||(i[7]=t=>l.value.backendOptions=t),class:x(o.$style.externalStorageDialog__configuration),authMechanism:_.value},null,8,["modelValue","class","authMechanism"])):T("",!0)]),_:1},8,["open","contentClasses","name"]))}}),_a="_externalStorageDialog_9wew8_2",ma="_externalStorageDialog__configuration_9wew8_9",pa={externalStorageDialog:_a,externalStorageDialog__configuration:ma},fa={$style:pa},be=O(ca,[["__cssModules",fa]]),{isAdmin:ga}=A("files_external","settings"),le=he("files_external--storages",()=>{const s=M([]),a=M([]);async function l(m){const f=R("apps/files_external/globalstorages"),{data:g}=await U.post(f,G(m),{confirmPassword:L.Strict});s.value.push(g)}async function r(m){const f=R("apps/files_external/userstorages"),{data:g}=await U.post(f,G(m),{confirmPassword:L.Strict});a.value.push(g)}async function c(m){await U.delete(p(m),{confirmPassword:L.Strict}),m.type==="personal"?a.value=a.value.filter(f=>f.id!==m.id):s.value=s.value.filter(f=>f.id!==m.id)}async function _(m){const{data:f}=await U.put(p(m),G(m),{confirmPassword:L.Strict});d(f)}async function o(m){const{data:f}=await U.get(p(m));d(f)}return t(),{globalStorages:s,userStorages:a,createGlobalStorage:l,createUserStorage:r,deleteStorage:c,reloadStorage:o,updateStorage:_};async function i(m){const f=`apps/files_external/${m}`,{data:g}=await U.get(R(f));return Object.values(g)}async function t(){pe(U),ga?s.value=await i("globalstorages"):(a.value=await i("userstorages"),s.value=await i("userglobalstorages"))}function p(m){const f=m.type==="personal"?"userstorages":"globalstorages";return R(`apps/files_external/${f}/${m.id}`)}function d(m){if(m.type==="personal"){const f=a.value.findIndex(g=>g.id===m.id);a.value.splice(f,1,m)}else{const f=s.value.findIndex(g=>g.id===m.id);s.value.splice(f,1,m)}}}),va={class:"hidden-visually"},ba={key:0},ya=$({__name:"ExternalStorageTableRow",props:{storage:{},isAdmin:{type:Boolean}},setup(s){const a=s,l=le(),r=A("files_external","backends"),c=C(()=>r.find(g=>g.identifier===a.storage.backend).name),_=A("files_external","authMechanisms"),o=C(()=>_.find(g=>g.identifier===a.storage.authMechanism).name),i=M(!1),t=C(()=>{if(i.value)return{icon:"loading",label:n("files_external","Checking …")};const g=a.storage.status??D.Indeterminate,te=a.storage.statusMessage||De[g],E=He[g],se=g===D.NetworkError||g===D.Timeout,ye=!se&&g!==D.Success&&g!==D.Indeterminate;return{icon:E,label:te,isWarning:se,isError:ye}}),p=ge(()=>a.storage.applicableUsers||[]);async function d(){await l.deleteStorage(a.storage)}async function m(){const g=await Pe(be,{storage:a.storage});g&&await l.updateStorage(g)}async function f(){i.value=!0;try{await l.reloadStorage(a.storage)}finally{i.value=!1}}return(g,te)=>(u(),h("tr",{class:x(g.$style.storageTableRow)},[y("td",null,[y("span",va,v(t.value.label),1),b(e(N),{"aria-label":e(n)("files_external","Recheck status"),title:t.value.label,variant:"tertiary-no-background",onClick:f},{icon:w(()=>[t.value.icon==="loading"?(u(),V(e(ue),{key:0})):(u(),V(e(F),{key:1,class:x({[g.$style.storageTableRow__status_error]:t.value.isError,[g.$style.storageTableRow__status_warning]:t.value.isWarning}),path:t.value.icon},null,8,["class","path"]))]),_:1},8,["aria-label","title"])]),y("td",null,v(s.storage.mountPoint),1),y("td",null,v(c.value),1),y("td",null,v(o.value),1),s.isAdmin?(u(),h("td",ba,[y("div",{class:x(g.$style.storageTableRow__cellApplicable)},[(u(!0),h(S,null,q(s.storage.applicableGroups,E=>(u(),V(e(Fe),{key:E,iconPath:e(Ae),noClose:"",text:E},null,8,["iconPath","text"]))),128)),(u(!0),h(S,null,q(e(p),E=>(u(),V(e(je),{key:E.user,displayName:E.displayName,size:24,user:E.user},null,8,["displayName","user"]))),128))],2)])):T("",!0),y("td",null,[s.isAdmin||s.storage.type==="personal"?(u(),h("div",{key:0,class:x(g.$style.storageTableRow__cellActions)},[b(e(N),{"aria-label":e(n)("files_external","Edit"),title:e(n)("files_external","Edit"),onClick:m},{icon:w(()=>[b(e(F),{path:e(Ue)},null,8,["path"])]),_:1},8,["aria-label","title"]),b(e(N),{"aria-label":e(n)("files_external","Delete"),title:e(n)("files_external","Delete"),variant:"error",onClick:d},{icon:w(()=>[b(e(F),{path:e($e)},null,8,["path"])]),_:1},8,["aria-label","title"])],2)):(u(),V(e(F),{key:1,inline:"",path:e(Te),name:e(n)("files_external","System provided storage"),title:e(n)("files_external","System provided storage")},null,8,["path","name","title"]))])],2))}}),ha="_storageTableRow__cellActions_1k62p_2",xa="_storageTableRow__cellApplicable_1k62p_7",wa="_storageTableRow__status_warning_1k62p_17",Va="_storageTableRow__status_error_1k62p_21",ka={storageTableRow__cellActions:ha,storageTableRow__cellApplicable:xa,storageTableRow__status_warning:wa,storageTableRow__status_error:Va},Sa={$style:ka},Ca=O(ya,[["__cssModules",Sa]]),Ma=["aria-label"],Aa={class:"hidden-visually"},Ua={key:0},$a={class:"hidden-visually"},Ta=$({__name:"ExternalStorageTable",setup(s){const a=le(),{isAdmin:l}=A("files_external","settings"),r=C(()=>l?a.globalStorages:[...a.userStorages,...a.globalStorages]);return(c,_)=>(u(),h("table",{class:x(c.$style.storageTable),"aria-label":e(n)("files_external","External storages")},[y("thead",{class:x(c.$style.storageTable__header)},[y("tr",null,[y("th",{class:x(c.$style.storageTable__headerStatus)},[y("span",Aa,v(e(n)("files_external","Status")),1)],2),y("th",{class:x(c.$style.storageTable__headerFolder)},v(e(n)("files_external","Folder name")),3),y("th",{class:x(c.$style.storageTable__headerBackend)},v(e(n)("files_external","External storage")),3),y("th",{class:x(c.$style.storageTable__headerAuthentication)},v(e(n)("files_external","Authentication")),3),e(l)?(u(),h("th",Ua,v(e(n)("files_external","Restricted to")),1)):T("",!0),y("th",{class:x(c.$style.storageTable__headerActions)},[y("span",$a,v(e(n)("files_external","Actions")),1)],2)])],2),y("tbody",null,[(u(!0),h(S,null,q(r.value,o=>(u(),V(Ca,{key:o.id,isAdmin:e(l),storage:o},null,8,["isAdmin","storage"]))),128))])],10,Ma))}}),qa="_storageTable_1dqte_2",Oa="_storageTable__header_1dqte_11",Ea="_storageTable__headerStatus_1dqte_16",Na="_storageTable__headerFolder_1dqte_20",Pa="_storageTable__headerBackend_1dqte_24",Ra="_storageTable__headerFAuthentication_1dqte_28",Fa="_storageTable__headerActions_1dqte_32",Ba={storageTable:qa,storageTable__header:Oa,storageTable__headerStatus:Ea,storageTable__headerFolder:Na,storageTable__headerBackend:Pa,storageTable__headerFAuthentication:Ra,storageTable__headerActions:Fa},ja={$style:Ba},Da=O(Ta,[["__cssModules",ja]]),Ha=$({__name:"UserMountSettings",setup(s){const a=A("files_external","user-mounting"),l=A("files_external","backends").filter(_=>_.identifier!=="local"),r=M(a.allowUserMounting),c=M(a.allowedBackends);return I(r,()=>{const _=!r.value;window.OCP.AppConfig.setValue("files_external","allow_user_mounting",r.value?"yes":"no",{success:()=>ee(n("files_external","Saved")),error:()=>{r.value=_,ae(n("files_external","Error while saving"))}})}),I(c,(_,o)=>{window.OCP.AppConfig.setValue("files_external","user_mounting_backends",_.join(","),{success:()=>ee(n("files_external","Saved allowed backends")),error:()=>{ae(n("files_external","Failed to save allowed backends")),c.value=o}})}),(_,o)=>(u(),h("form",null,[y("h3",{class:x(_.$style.userMountSettings__heading)},v(e(n)("files_external","Advanced options for external storage mounts")),3),b(e(P),{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=i=>r.value=i),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Allow people to mount external storage")),1)]),_:1},8,["modelValue"]),z(y("fieldset",{class:x(_.$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,q(e(l),i=>(u(),V(e(P),{key:i.identifier,modelValue:c.value,"onUpdate:modelValue":o[1]||(o[1]=t=>c.value=t),value:i.identifier,name:"allowUserMountingBackends[]"},{default:w(()=>[k(v(i.name),1)]),_:2},1032,["modelValue","value"]))),128))],2),[[K,r.value]])]))}}),La="_userMountSettings__heading_59moz_2",Ga="_userMountSettings__backends_59moz_9",Ia={userMountSettings__heading:La,userMountSettings__backends:Ga},Qa={$style:Ia},Za=O(Ha,[["__cssModules",Qa]]);const za=["aria-label"],Ka=$({__name:"ExternalStoragesSection",setup(s){const a=A("files_external","settings",{docUrl:"",dependencyIssues:{messages:null,modules:null},isAdmin:!1}),l=le(),r=a.dependencyIssues?.messages??[],c=a.dependencyIssues?.modules??{},_=M(!1),o=M();async function i(t){if(_.value=!1,!!t)try{a.isAdmin?await l.createGlobalStorage(t):await l.createUserStorage(t),o.value=void 0}catch(p){fe.error("Failed to add external storage",{error:p}),_.value=!0}}return(t,p)=>(u(),V(e(de),{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,q(e(r),(d,m)=>(u(),V(e(oe),{key:m,type:"error"},{default:w(()=>[k(v(d),1)]),_:2},1024))),128)),(u(!0),h(S,null,q(e(c),(d,m)=>(u(),V(e(oe),{key:m,type:"warning"},{default:w(()=>[y("p",null,[m==="curl"?(u(),h(S,{key:0},[k(v(e(n)("files_external","The cURL support in PHP is not enabled or installed.")),1)],64)):m==="ftp"?(u(),h(S,{key:1},[k(v(e(n)("files_external","The FTP support in PHP is not enabled or installed.")),1)],64)):(u(),h(S,{key:2},[k(v(e(n)("files_external","{module} is not installed.",{module:m})),1)],64)),k(" "+v(e(Oe)("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:",d.length)),1)]),y("ul",{class:x(t.$style.externalStoragesSection__dependantList),"aria-label":e(n)("files_external","Dependant backends")},[(u(!0),h(S,null,q(d,f=>(u(),h("li",{key:f},v(f),1))),128))],10,za)]),_:2},1024))),128)),T("",!0),b(Da),b(e(N),{class:x(t.$style.externalStoragesSection__newStorageButton),variant:"primary",onClick:p[0]||(p[0]=d=>_.value=!_.value)},{icon:w(()=>[b(e(F),{path:e(qe)},null,8,["path"])]),default:w(()=>[k(" "+v(e(n)("files_external","Add external storage")),1)]),_:1},8,["class"]),b(be,{modelValue:o.value,"onUpdate:modelValue":p[1]||(p[1]=d=>o.value=d),open:_.value,"onUpdate:open":p[2]||(p[2]=d=>_.value=d),onClose:i},null,8,["modelValue","open"]),e(a).isAdmin?(u(),V(Za,{key:1})):T("",!0)]),_:1},8,["docUrl","name","description"]))}}),Wa="_externalStoragesSection__dependantList_atsmn_2",Ya="_externalStoragesSection__newStorageButton_atsmn_7",Ja={externalStoragesSection__dependantList:Wa,externalStoragesSection__newStorageButton:Ya},Xa={$style:Ja},el=O(Ka,[["__cssModules",Xa]]),al=$({__name:"GlobalCredentialsSection",setup(s){const a=A("files_external","global-credentials"),l=M(!1),r=M(a.user),c=M(a.password);pe(U);async function _(){try{l.value=!0;const{data:o}=await U.post(R("apps/files_external/globalcredentials"),{uid:a.uid,user:r.value,password:c.value},{confirmPassword:L.Strict});if(o){ee(n("files_external","Global credentials saved"));return}}catch(o){fe.error(o)}finally{l.value=!1}ae(n("files_external","Could not save global credentials")),r.value=a.user,c.value=a.password}return(o,i)=>(u(),V(e(de),{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:ke(_,["prevent"])},[b(e(ce),{modelValue:r.value,"onUpdate:modelValue":i[0]||(i[0]=t=>r.value=t),name:"username",autocomplete:"false",label:e(n)("files_external","Login")},null,8,["modelValue","label"]),b(e(Be),{modelValue:c.value,"onUpdate:modelValue":i[1]||(i[1]=t=>c.value=t),name:"password",autocomplete:"false",label:e(n)("files_external","Password")},null,8,["modelValue","label"]),b(e(N),{class:x(o.$style.globalCredentialsSectionForm__submit),disabled:l.value,variant:"primary",type:"submit"},{default:w(()=>[k(v(l.value?e(n)("files_external","Saving …"):e(n)("files_external","Save")),1)]),_:1},8,["class","disabled"])],34)]),_:1},8,["name","description"]))}}),ll="_globalCredentialsSectionForm_bgjv2_2",tl="_globalCredentialsSectionForm__submit_bgjv2_10",sl={globalCredentialsSectionForm:ll,globalCredentialsSectionForm__submit:tl},nl={$style:sl},ol=O(al,[["__cssModules",nl]]),il=$({__name:"FilesExternalSettings",setup(s){return(a,l)=>(u(),h(S,null,[b(el),b(ol)],64))}}),rl=xe(),Y=Se(il);Y.config.idPrefix="files-external",Y.use(rl),Y.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 9dd8c09d96e3d..bea5fb9548a9f 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/components/AddExternalStorageDialog/MountOptions.vue","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/AddExternalStorageDialog.vue","../build/frontend/apps/files_external/src/store/storages.ts","../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\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.d.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'\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(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(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(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(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}\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\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","mountOptions","MountOptionsCheckFilesystem","hasEncryption","loadState","idButton","useId","idFieldset","isExpanded","checkFilesystemOptions","checkFilesystem","_createVNode","NcButton","_cache","NcIconSvgWrapper","mdiChevronDown","mdiChevronRight","_createTextVNode","NcSelect","NcCheckboxRadioSwitch","isAdmin","allowedBackendIds","backends","b","allAuthMechanisms","open","internalStorage","toRaw","backend","authMechanisms","scheme","authMechanism","a","NcDialog","$emit","_toDisplayString","NcTextField","MountOptions","ApplicableEntities","BackendConfiguration","AuthMechanismConfiguration","useStorages","defineStore","globalStorages","userStorages","createGlobalStorage","storage","url","PwdConfirmationMode","createUserStorage","deleteStorage","getUrl","s","updateStorage","overrideStorage","reloadStorage","initialize","loadStorages","type","addPasswordConfirmationInterceptors","index","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/components/AddExternalStorageDialog/MountOptions.vue","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/AddExternalStorageDialog.vue","../build/frontend/apps/files_external/src/store/storages.ts","../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\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.d.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'\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(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(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(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(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}\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\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","mountOptions","MountOptionsCheckFilesystem","hasEncryption","loadState","idButton","useId","idFieldset","isExpanded","checkFilesystemOptions","checkFilesystem","_createVNode","NcButton","_cache","NcIconSvgWrapper","mdiChevronDown","mdiChevronRight","_createTextVNode","NcSelect","NcCheckboxRadioSwitch","isAdmin","allowedBackendIds","backends","b","allAuthMechanisms","open","internalStorage","toRaw","backend","authMechanisms","scheme","authMechanism","a","NcDialog","$emit","_toDisplayString","NcTextField","MountOptions","ApplicableEntities","BackendConfiguration","AuthMechanismConfiguration","useStorages","defineStore","globalStorages","userStorages","createGlobalStorage","storage","url","PwdConfirmationMode","createUserStorage","deleteStorage","getUrl","s","updateStorage","overrideStorage","reloadStorage","initialize","loadStorages","type","addPasswordConfirmationInterceptors","index","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":"m2EAAA,MAAAA,GAAe,2jCCYTC,EAAeC,GAAS,IAAI,GAAqB,EAOhD,SAASC,GAASC,EAAkC,CAC1D,MAAMC,EAAQC,EAAS,IAAMC,EAAQH,CAAI,EAAE,IAAKI,IAAS,CACxD,GAAI,QAAQA,CAAG,GACf,KAAMA,EACN,YAAaP,EAAa,IAAIO,CAAG,GAAKA,CAAA,EACrC,CAAC,EAEH,OAAAC,EAAY,SAAY,CACvB,MAAMC,EAAeH,EAAQH,CAAI,EAAE,OAAQI,GAAQ,CAACP,EAAa,IAAIO,CAAG,CAAC,EACzE,GAAIE,EAAa,OAAS,EAAG,CAC5B,KAAM,CAAE,KAAAC,GAAS,MAAMC,EAAM,KAAKC,EAAY,eAAe,EAAG,CAC/D,MAAOH,CAAA,CACP,EACD,SAAW,CAACF,EAAKM,CAAW,IAAK,OAAO,QAAQH,EAAK,KAAK,EACzDV,EAAa,IAAIO,EAAKM,CAAqB,CAE7C,CACD,CAAC,EAEMT,CACR,CAOO,SAASU,GAAUC,EAAkC,CAC3D,OAAOV,EAAS,IAAMC,EAAQS,CAAI,EAAE,IAAIC,EAAkB,CAAC,CAC5D,CAOO,SAASA,GAAmBC,EAAa,CAC/C,MAAO,CACN,GAAIA,EACJ,SAAU,GACV,YAAaA,EACb,QAASlB,EAAA,CAEX,qLC9CA,MAAMmB,EAASC,EAAqBC,EAAC,QAA+B,EAC9DhB,EAAQe,EAAqBC,EAAC,OAA8B,EAE5DC,EAAWC,EAAiB,EAAE,EAC9BC,EAAgBrB,GAASE,CAAK,EAC9BoB,EAAiBV,GAAUI,CAAM,EAEjCO,EAAQpB,EAAS,CACtB,KAAM,CACL,MAAO,CAAC,GAAGmB,EAAe,MAAO,GAAGD,EAAc,KAAK,CACxD,EACA,IAAIG,EAAoB,CACvBtB,EAAM,MAAQsB,EAAM,OAAQC,GAAMA,EAAE,IAAI,EAAE,IAAKA,GAAMA,EAAE,IAAK,EAC5DT,EAAO,MAAQQ,EAAM,OAAQE,GAAMA,EAAE,QAAQ,EAAE,IAAKA,GAAMA,EAAE,EAAE,CAC/D,CAAA,CACA,EAEKC,EAAkBC,GAAcC,EAAU,GAAG,EAOnD,eAAeA,EAASC,EAAiB,CACxC,KAAM,CAAE,KAAAtB,CAAA,EAAS,MAAMC,EAAM,IAC5BC,EAAY,qCAAqC,EACjD,CAAE,OAAQ,CAAE,QAAAoB,EAAS,MAAO,GAAG,CAAE,EAG5BC,EAAa,CAClB,GAAGZ,EAAS,MAAM,IAAKa,GAAM,CAACA,EAAE,GAAIA,CAAC,CAAC,EACtC,GAAG,OAAO,QAAQxB,EAAK,MAAM,EAC3B,IAAI,CAAC,CAACyB,EAAItB,CAAW,IAAM,CAACsB,EAAI,CAAE,GAAGnB,GAAmBmB,CAAE,EAAG,YAAAtB,CAAA,CAAa,CAAC,EAC7E,GAAG,OAAO,QAAQH,EAAK,KAAK,EAC1B,IAAI,CAAC,CAACyB,EAAItB,CAAW,IAAM,CAAC,QAAQsB,CAAE,GAAI,CAAE,GAAI,QAAQA,CAAE,GAAI,KAAMA,EAAI,YAAAtB,EAAa,CAAC,CAAA,EAGzFQ,EAAS,MAAQ,CAAC,GAAG,IAAI,IAAIY,CAAU,EAAE,QAAQ,CAClD,mBAICG,EAM6BC,EAAAC,EAAA,EAAA,YALnBb,EAAA,2CAAAA,EAAK,MAAAc,GACd,SAAA,GACA,SAAA,GACC,QAASlB,EAAA,MACT,WAAYgB,EAAAG,CAAA,EAAC,iBAAA,aAAA,EACb,SAAQH,EAAAR,CAAA,CAAA,uNCnDX,MAAMY,EAAatB,EAA6CC,EAAA,YAAmB,EAE7EsB,EAAQtB,EAIRuB,EAAgBtC,EAAS,IAAM,CACpC,GAAI,CAACqC,EAAM,cAAc,cACxB,OAGD,MAAME,EAAU,OAAO,QAAQF,EAAM,cAAc,aAAa,EAC9D,OAAO,CAAC,CAAA,CAAGG,CAAM,IAAM,EAAEA,EAAO,MAAQC,EAAkB,aAAa,EACzE,OAAO,OAAO,YAAYF,CAAO,CAClC,CAAC,EAEKG,EAAkB1C,EAAS,IAAM,OAAO,IAAI,cAAc,cAAe,WAAWqC,EAAM,aAAa,CAAC,EACxGM,EAAmB3C,EAAS,IAAM,CACvC,GAAI,CAACsC,EAAc,MAClB,MAAO,GAER,UAAWE,KAAU,OAAO,OAAOF,EAAc,KAAK,EACrD,GAAK,EAAAE,EAAO,MAAQC,EAAkB,QAAYD,EAAO,MAAQC,EAAkB,cAInF,MAAO,GAER,MAAO,EACR,CAAC,EAEKG,EAA2B3B,EAAI,EAAK,EAC1Cd,EAAY,SAAY,CACnBuC,EAAgB,QACnBE,EAAyB,MAAQ,GACjC,MAAM,OAAO,eAAe,YAAYF,EAAgB,MAAM,OAAO,EACrEE,EAAyB,MAAQ,GAEnC,CAAC,EAEDC,EAAMP,EAAe,IAAM,CAC1B,UAAWQ,KAAOR,EAAc,MACzBQ,KAAOV,EAAW,QACvBA,EAAW,MAAMU,CAAG,EAAIR,EAAc,MAAMQ,CAAG,GAAG,OAASC,GAAkB,QAC1E,GACA,GAGN,CAAC,EAOD,SAASC,EAAmBC,EAAoB,CAC/C,MAAMC,EAAS,CAACD,EAAM,MAAM,EAAE,KAAA,EAAO,CAAC,EACtCb,EAAW,MAAQ,CAAE,GAAGA,EAAW,MAAO,GAAGc,CAAA,CAC9C,cAIiBP,EAAA,WAAhBQ,EAyBW,WAAA,OAzBwB,MAAKC,EAAEC,EAAAA,OAAO,0BAA0B,CAAA,GAC1EC,EAES,gBADLtB,EAAAG,CAAA,EAAC,iBAAA,gBAAA,CAAA,EAAA,CAAA,EAGWO,EAAA,WAAhBS,EASWI,EAAA,CAAA,IAAA,GAAA,CARWX,EAAA,WAArBb,EAAiDC,EAAAwB,EAAA,EAAA,CAAA,IAAA,EAAA,QAEjDzB,EAK2C0B,GAJrCf,EAAA,MAAgB,OAAO,EAAA,OAE3B,cAAiBN,EAAA,MACjB,iBAAoBrB,EAAA,cACpB,sBAAmBiC,CAAA,oDAIrBU,EAAA,EAAA,EAAAP,EAMkBI,EAAA,CAAA,IAAA,GAAAI,EALmBrB,EAAA,MAAa,CAAzCsB,EAAcC,WADvB9B,EAMkB+B,GAAA,CAHhB,IAAKF,EAAa,MACV,WAAAxB,EAAA,MAAWyB,CAAS,EAApB,sBAAA3B,GAAAE,EAAA,MAAWyB,CAAS,EAAA3B,EAC5B,aAAA2B,EACA,gBAAAD,CAAA,8EAJS,CAAAG,EAAA,EAAAH,EAAa,MAAQ5B,EAAAS,CAAA,EAAkB,OAAM,CAAA,uSClF3D,MAAML,EAAatB,EAA6CC,EAAA,YAAmB,EAE7EsB,EAAQtB,EAId,OAAA8B,EAAM,IAAMR,EAAM,cAAe,IAAM,CACtC,UAAWS,KAAOT,EAAM,cACjBS,KAAOV,EAAW,QACvBA,EAAW,MAAMU,CAAG,EAAIT,EAAM,cAAcS,CAAG,GAAG,OAASC,GAAkB,QAC1E,GACA,GAGN,CAAC,cAIAI,EAYW,WAAA,CAZA,MAAKC,EAAEC,EAAAA,OAAO,oBAAoB,CAAA,GAC5CC,EAES,gBADLtB,EAAAG,CAAA,EAAC,iBAAA,uBAAA,CAAA,EAAA,CAAA,GAGLuB,EAAA,EAAA,EAAAP,EAMgCI,EAAA,KAAAI,EALG5C,EAAA,cAAa,CAAxC6C,EAAcC,WADtB9B,EAMgC+B,GAAA,CAH9B,IAAKF,EAAa,MACV,WAAAxB,EAAA,MAAWyB,CAAS,EAApB,sBAAA3B,GAAAE,EAAA,MAAWyB,CAAS,EAAA3B,EAC5B,UAAA2B,EACA,aAAAD,CAAA,4EAJS,CAAAG,EAAA,EAAAH,EAAa,MAAQ5B,EAAAS,CAAA,EAAkB,OAAM,CAAA,gRCpB1D,MAAMuB,EAAelD,EAAmCC,EAAA,YAAmB,EAC3EZ,EAAY,IAAM,CACb,OAAO,KAAK6D,EAAa,KAAK,EAAE,SAAW,IAC9CA,EAAa,MAAM,QAAU,GAC7BA,EAAa,MAAM,SAAW,GAC9BA,EAAa,MAAM,eAAiB,GACpCA,EAAa,MAAM,yBAA2BC,EAA4B,eAC1ED,EAAa,MAAM,uBAAyB,GAC5CA,EAAa,MAAM,SAAW,GAEhC,CAAC,EAED,KAAM,CAAE,cAAAE,CAAA,EAAkBC,EAAsC,iBAAkB,UAAU,EAEtFC,EAAWC,GAAA,EACXC,EAAaD,GAAA,EAEbE,EAAatD,EAAI,EAAK,EAEtBuD,EAAyB,CAC9B,CACC,MAAOrC,EAAE,iBAAkB,OAAO,EAClC,MAAO8B,EAA4B,KAAA,EAEpC,CACC,MAAO9B,EAAE,iBAAkB,0BAA0B,EACrD,MAAO8B,EAA4B,cAAA,EAEpC,CACC,MAAO9B,EAAE,iBAAkB,QAAQ,EACnC,MAAO8B,EAA4B,MAAA,CACpC,EAEKQ,EAAkBzE,EAAS,CAChC,KAAM,CACL,OAAOwE,EAAuB,KAAMhC,GAAWA,EAAO,QAAUwB,EAAa,MAAM,wBAAwB,CAC5G,EACA,IAAI3C,EAAO,CACV2C,EAAa,MAAM,yBAA2B3C,GAAO,OAAS4C,EAA4B,cAC3F,CAAA,CACA,oBAKAd,EAuCM,MAAA,CAvCA,MAAKC,EAAEC,EAAAA,OAAO,YAAY,CAAA,GAC/BqB,EAUW1C,EAAA2C,CAAA,EAAA,CATT,GAAI3C,EAAAoC,CAAA,EACJ,gBAAepC,EAAAsC,CAAA,EACf,gBAAeC,EAAA,MAChB,QAAQ,yBACP,QAAKK,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAEqC,EAAA,MAAU,CAAIA,EAAA,MAAA,GACX,OACV,IAAsF,CAAtFG,EAAsF1C,EAAA6C,CAAA,EAAA,CAApE,YAAA,GAAa,KAAMN,EAAA,MAAavC,EAAA8C,EAAA,EAAiB9C,EAAA+C,EAAA,CAAA,+BACzD,IACX,CADWC,EAAA,MACRhD,EAAAG,CAAA,EAAC,iBAAA,eAAA,CAAA,EAAA,CAAA,CAAA,oDAGLmB,EAyBW,WAAA,CAvBT,GAAItB,EAAAsC,CAAA,EACJ,MAAKlB,EAAEC,EAAAA,OAAO,sBAAsB,EACpC,kBAAiBrB,EAAAoC,CAAA,CAAA,GAClBM,EAGqC1C,EAAAiD,CAAA,EAAA,YAF3BR,EAAA,2CAAAA,EAAe,MAAAvC,GACvB,WAAYF,EAAAG,CAAA,EAAC,iBAAA,0BAAA,EACb,QAASqC,CAAA,sCAEXE,EAEwB1C,EAAAkD,CAAA,EAAA,CAFQ,WAAAnE,EAAA,WAAW,SAAX,sBAAA6D,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAnB,EAAA,WAAW,SAAQmB,GAAE,KAAK,QAAA,aACzD,IAAsC,KAAnCF,EAAAG,CAAA,EAAC,iBAAA,WAAA,CAAA,EAAA,CAAA,CAAA,0BAELuC,EAEwB1C,EAAAkD,CAAA,EAAA,CAFQ,WAAAnE,EAAA,WAAW,SAAX,sBAAA6D,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAnB,EAAA,WAAW,SAAQmB,GAAE,KAAK,QAAA,aACzD,IAA4C,KAAzCF,EAAAG,CAAA,EAAC,iBAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,0BAELuC,EAEwB1C,EAAAkD,CAAA,EAAA,CAFQ,WAAAnE,EAAA,WAAW,eAAX,sBAAA6D,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAnB,EAAA,WAAW,eAAcmB,GAAE,KAAK,QAAA,aAC/D,IAA2C,KAAxCF,EAAAG,CAAA,EAAC,iBAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,0BAEwBH,EAAAkC,CAAA,OAA7BnC,EAEwBC,EAAAkD,CAAA,EAAA,OAF6B,WAAAnE,EAAA,WAAW,QAAX,sBAAA6D,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAnB,EAAA,WAAW,QAAOmB,GAAE,KAAK,QAAA,aAC7E,IAA8C,KAA3CF,EAAAG,CAAA,EAAC,iBAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,oCAELuC,EAEwB1C,EAAAkD,CAAA,EAAA,CAFQ,WAAAnE,EAAA,WAAW,uBAAX,sBAAA6D,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAnB,EAAA,WAAW,uBAAsBmB,GAAE,KAAK,QAAA,aACvE,IAAuE,KAApEF,EAAAG,CAAA,EAAC,iBAAA,4CAAA,CAAA,EAAA,CAAA,CAAA,sCAtBGoC,EAAA,KAAU,CAAA,yKCrEf,CAAA,QAAEY,EAAA,EAAYhB,EAAgC,iBAAkB,UAAU,EAC1EiB,GAAoBjB,EAAoB,iBAAkB,iBAAiB,EAC3EkB,GAAWlB,EAAsB,iBAAkB,UAAU,EACjE,OAAQmB,GAAMF,GAAkB,SAASE,EAAE,UAAU,CAAC,EAElDC,GAAoBpB,EAA4B,iBAAkB,gBAAgB,2OAiBxF,MAAMqB,EAAO1E,EAAoBC,EAAC,MAAyB,EAYrD0E,EAAkBxE,EAAI,gBAAgByE,EAAM3E,EAAA,OAAO,CAAC,CAAC,EAC3DZ,EAAY,IAAM,CACbqF,EAAK,QACRC,EAAgB,MAAQ,gBAAgBC,EAAM3E,EAAA,OAAO,CAAC,EAExD,CAAC,EAED,MAAM4E,EAAU3F,EAAS,CACxB,KAAM,CACL,OAAOqF,GAAS,KAAMC,GAAMA,EAAE,aAAeG,EAAgB,MAAM,OAAO,CAC3E,EACA,IAAIpE,EAAkB,CACrBoE,EAAgB,MAAM,QAAUpE,GAAO,UACxC,CAAA,CACA,EAEKuE,EAAiB5F,EAAS,IAAMuF,GACpC,OAAO,CAAC,CAAE,OAAAM,CAAA,IAAaF,EAAQ,OAAO,YAAYE,CAAM,CAAC,CAAC,EACtDC,EAAgB9F,EAAS,CAC9B,KAAM,CACL,OAAO4F,EAAe,MAAM,KAAMG,GAAMA,EAAE,aAAeN,EAAgB,MAAM,aAAa,CAC7F,EACA,IAAIpE,EAAwB,CAC3BoE,EAAgB,MAAM,cAAgBpE,GAAO,UAC9C,CAAA,CACA,EAGD,OAAAwB,EAAM+C,EAAgB,IAAM,CACvBA,EAAe,MAAM,SAAW,IACnCH,EAAgB,MAAM,cAAgBG,EAAe,MAAM,CAAC,EAAG,WAEjE,CAAC,cAIA7D,EAwDWC,EAAAgE,EAAA,EAAA,CAvDF,KAAMR,EAAA,sCAAAA,EAAI,MAAAtD,GAKJ0C,EAAA,EAAA,IAAAA,EAAA,EAAA,EAAA1C,GAAAA,GAAU+D,EAAAA,MAAK,OAAA,EAAA,EAJ7B,OAAA,GACC,eAAgB5C,EAAAA,OAAO,sBACvB,KAAMoC,EAAA,MAAgB,GAAKzD,EAAAG,CAAA,mCAAsCH,EAAAG,CAAA,EAAC,iBAAA,aAAA,EAClE,SAAMyC,EAAA,EAAA,IAAAA,EAAA,EAAA,EAAA1C,GAAE+D,EAAAA,MAAK,QAAUR,EAAA,KAAe,EAAA,GA0C5B,UACV,IAEW,CAFK1E,EAAA,QAAQ,QAAxBgB,EAEWC,EAAA2C,CAAA,EAAA,OAFkB,uBAAOsB,EAAAA,MAAK,OAAA,EAAA,aACxC,IAAmC,KAAhCjE,EAAAG,CAAA,EAAC,iBAAA,QAAA,CAAA,EAAA,CAAA,CAAA,mBAGLuC,EAEW1C,EAAA2C,CAAA,EAAA,CAFD,QAAQ,UAAU,KAAK,QAAA,aAChC,IAA8E,CAA3EK,EAAAkB,EAAAnF,EAAA,QAAQ,GAAKiB,EAAAG,CAAA,2BAA8BH,EAAAG,CAAA,EAAC,iBAAA,QAAA,CAAA,EAAA,CAAA,CAAA,qBA9CjD,IAGY,CAHZuC,EAGY1C,EAAAmE,EAAA,EAAA,CAFF,WAAAV,EAAA,MAAgB,WAAhB,sBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAuD,EAAA,MAAgB,WAAUvD,GAClC,MAAOF,EAAAG,CAAA,EAAC,iBAAA,aAAA,EACT,SAAA,EAAA,iCAEDuC,EAAuD0B,GAAA,CAAhC,WAAAX,EAAA,MAAgB,aAAhB,sBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAuD,EAAA,MAAgB,aAAYvD,EAAA,yBAG5CF,EAAAmD,EAAA,OADPpD,EAGmDsE,GAAA,OAD1C,OAAQZ,EAAA,MAAgB,iBAAhB,kBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAuD,EAAA,MAAgB,iBAAgBvD,GACxC,MAAOuD,EAAA,MAAgB,gBAAhB,iBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAuD,EAAA,MAAgB,gBAAevD,EAAA,uCAE/CwC,EAMY1C,EAAAiD,CAAA,EAAA,YALFU,EAAA,2CAAAA,EAAO,MAAAzD,GACf,QAASF,EAAAqD,EAAA,EACT,YAAaI,EAAA,MAAgB,IAAMA,EAAA,MAAgB,SACnD,WAAYzD,EAAAG,CAAA,EAAC,iBAAA,kBAAA,EACd,MAAM,OACN,SAAA,EAAA,2DAEDuC,EAMY1C,EAAAiD,CAAA,EAAA,YALFa,EAAA,2CAAAA,EAAa,MAAA5D,GACrB,QAAS0D,EAAA,MACT,SAAQ,CAAGH,EAAA,MAAgB,SAAWG,EAAA,MAAe,QAAM,GAAA,CAAA,EAAYH,QAAgB,IAAMA,EAAA,MAAgB,eAC7G,WAAYzD,EAAAG,CAAA,EAAC,iBAAA,gBAAA,EACd,MAAM,OACN,SAAA,EAAA,2DAGMwD,EAAA,WADP5D,EAI0CuE,GAAA,OAFhC,WAAAb,EAAA,MAAgB,eAAhB,sBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAuD,EAAA,MAAgB,eAAcvD,GACtC,MAAKkB,EAAEC,EAAAA,OAAO,oCAAoC,EAClD,cAAesC,EAAA,MAAQ,aAAA,2DAGlBG,EAAA,WADP/D,EAIkCwE,GAAA,OAFxB,WAAAd,EAAA,MAAgB,eAAhB,sBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAuD,EAAA,MAAgB,eAAcvD,GACtC,MAAKkB,EAAEC,EAAAA,OAAO,oCAAoC,EAClD,cAAeyC,EAAA,KAAA,qTC7Gb,CAAE,QAAAX,EAAA,EAAYhB,EAAgC,iBAAkB,UAAU,EAEnEqC,GAAcC,GAAY,2BAA4B,IAAM,CACxE,MAAMC,EAAiBzF,EAAgB,EAAE,EACnC0F,EAAe1F,EAAgB,EAAE,EAOvC,eAAe2F,EAAoBC,EAA4B,CAC9D,MAAMC,EAAMvG,EAAY,oCAAoC,EACtD,CAAE,KAAAF,CAAA,EAAS,MAAMC,EAAM,KAC5BwG,EACApB,EAAMmB,CAAO,EACb,CAAE,gBAAiBE,EAAoB,MAAA,CAAO,EAE/CL,EAAe,MAAM,KAAKrG,CAAI,CAC/B,CAOA,eAAe2G,EAAkBH,EAA4B,CAC5D,MAAMC,EAAMvG,EAAY,kCAAkC,EACpD,CAAE,KAAAF,CAAA,EAAS,MAAMC,EAAM,KAC5BwG,EACApB,EAAMmB,CAAO,EACb,CAAE,gBAAiBE,EAAoB,MAAA,CAAO,EAE/CJ,EAAa,MAAM,KAAKtG,CAAI,CAC7B,CAOA,eAAe4G,EAAcJ,EAAmB,CAC/C,MAAMvG,EAAM,OAAO4G,EAAOL,CAAO,EAAG,CACnC,gBAAiBE,EAAoB,MAAA,CACrC,EAEGF,EAAQ,OAAS,WACpBF,EAAa,MAAQA,EAAa,MAAM,OAAQQ,GAAMA,EAAE,KAAON,EAAQ,EAAE,EAEzEH,EAAe,MAAQA,EAAe,MAAM,OAAQS,GAAMA,EAAE,KAAON,EAAQ,EAAE,CAE/E,CAOA,eAAeO,EAAcP,EAAmB,CAC/C,KAAM,CAAE,KAAAxG,CAAA,EAAS,MAAMC,EAAM,IAC5B4G,EAAOL,CAAO,EACdnB,EAAMmB,CAAO,EACb,CAAE,gBAAiBE,EAAoB,MAAA,CAAO,EAG/CM,EAAgBhH,CAAI,CACrB,CAOA,eAAeiH,EAAcT,EAAmB,CAC/C,KAAM,CAAE,KAAAxG,GAAS,MAAMC,EAAM,IAAI4G,EAAOL,CAAO,CAAC,EAChDQ,EAAgBhH,CAAI,CACrB,CAGA,OAAAkH,EAAA,EAEO,CACN,eAAAb,EACA,aAAAC,EAEA,oBAAAC,EACA,kBAAAI,EACA,cAAAC,EACA,cAAAK,EACA,cAAAF,CAAA,EAMD,eAAeI,EAAaC,EAAc,CACzC,MAAMX,EAAM,uBAAuBW,CAAI,GACjC,CAAE,KAAApH,GAAS,MAAMC,EAAM,IAA8BC,EAAYuG,CAAG,CAAC,EAC3E,OAAO,OAAO,OAAOzG,CAAI,CAC1B,CAKA,eAAekH,GAAa,CAC3BG,GAAoCpH,CAAK,EAErC6E,GACHuB,EAAe,MAAQ,MAAMc,EAAa,gBAAgB,GAE1Db,EAAa,MAAQ,MAAMa,EAAa,cAAc,EACtDd,EAAe,MAAQ,MAAMc,EAAa,oBAAoB,EAEhE,CAKA,SAASN,EAAOL,EAAmB,CAClC,MAAMY,EAAOZ,EAAQ,OAAS,WAAa,eAAiB,iBAC5D,OAAOtG,EAAY,uBAAuBkH,CAAI,IAAIZ,EAAQ,EAAE,EAAE,CAC/D,CAOA,SAASQ,EAAgBR,EAAmB,CAC3C,GAAIA,EAAQ,OAAS,WAAY,CAChC,MAAMc,EAAQhB,EAAa,MAAM,UAAWQ,GAAMA,EAAE,KAAON,EAAQ,EAAE,EACrEF,EAAa,MAAM,OAAOgB,EAAO,EAAGd,CAAO,CAC5C,KAAO,CACN,MAAMc,EAAQjB,EAAe,MAAM,UAAWS,GAAMA,EAAE,KAAON,EAAQ,EAAE,EACvEH,EAAe,MAAM,OAAOiB,EAAO,EAAGd,CAAO,CAC9C,CACD,CACD,CAAC,oICnID,MAAMxE,EAAQtB,EAKR6G,EAAQpB,GAAA,EAERnB,EAAWlB,EAAsB,iBAAkB,UAAU,EAC7D0D,EAAc7H,EAAS,IAAMqF,EAAS,KAAMC,GAAMA,EAAE,aAAejD,EAAM,QAAQ,OAAO,EAAG,IAAI,EAE/FuD,EAAiBzB,EAAsB,iBAAkB,gBAAgB,EACzE2D,EAAoB9H,EAAS,IAAM4F,EAAe,KAAMG,GAAMA,EAAE,aAAe1D,EAAM,QAAQ,aAAa,EAAG,IAAI,EAEjH0F,EAAiB9G,EAAI,EAAK,EAC1B+G,EAAShI,EAAS,IAAM,CAC7B,GAAI+H,EAAe,MAClB,MAAO,CACN,KAAM,UACN,MAAO5F,EAAE,iBAAkB,YAAY,CAAA,EAIzC,MAAM6F,EAAS3F,EAAM,QAAQ,QAAU4F,EAAc,cAC/CC,GAAQ7F,EAAM,QAAQ,eAAiB8F,GAAqBH,CAAM,EAClEI,EAAOC,GAAmBL,CAAM,EAEhCM,GAAYN,IAAWC,EAAc,cAAgBD,IAAWC,EAAc,QAC9EM,GAAU,CAACD,IAAaN,IAAWC,EAAc,SAAWD,IAAWC,EAAc,cAE3F,MAAO,CAAE,KAAAG,EAAM,MAAAF,GAAO,UAAAI,GAAW,QAAAC,EAAA,CAClC,CAAC,EAEKxI,EAAQF,GAAS,IAAMwC,EAAM,QAAQ,iBAAmB,EAAE,EAKhE,eAAemG,GAAW,CACzB,MAAMZ,EAAM,cAAcvF,EAAM,OAAO,CACxC,CAKA,eAAeoG,GAAS,CACvB,MAAM5B,EAAU,MAAM6B,GAAYC,GAA0B,CAC3D,QAAStG,EAAM,OAAA,CACf,EAEIwE,GAGL,MAAMe,EAAM,cAAcf,CAAmB,CAC9C,CAKA,eAAe+B,GAAe,CAC7Bb,EAAe,MAAQ,GACvB,GAAI,CACH,MAAMH,EAAM,cAAcvF,EAAM,OAAO,CACxC,QAAA,CACC0F,EAAe,MAAQ,EACxB,CACD,oBAIC5E,EAkEK,KAAA,CAlEA,MAAKC,EAAEC,EAAAA,OAAO,eAAe,CAAA,GACjCC,EAkBK,KAAA,KAAA,CAjBJA,EAAuD,OAAvDuF,GAAuD3C,EAAtB8B,EAAA,MAAO,KAAK,EAAA,CAAA,EAC7CtD,EAeW1C,EAAA2C,CAAA,EAAA,CAdT,aAAY3C,EAAAG,CAAA,EAAC,iBAAA,gBAAA,EACb,MAAO6F,EAAA,MAAO,MACf,QAAQ,yBACP,QAAOY,CAAA,GACG,OACV,IAAkD,CAA7BZ,EAAA,MAAO,OAAI,eAAhCjG,EAAkDC,EAAAwB,EAAA,EAAA,CAAA,IAAA,CAAA,CAAA,QAClDzB,EAMuBC,EAAA6C,CAAA,EAAA,OAJrB,MAAKzB,EAAA,CAAYC,CAAAA,EAAAA,OAAO,6BAA6B,EAAG2E,EAAA,MAAO,QAAiB3E,CAAAA,EAAAA,OAAO,+BAA+B,EAAG2E,EAAA,MAAO,SAAA,GAIhI,KAAMA,EAAA,MAAO,IAAA,+DAIlB1E,EAAiC,KAAA,KAAA4C,EAA1BnF,EAAA,QAAQ,UAAU,EAAA,CAAA,EACzBuC,EAA0B,YAAnBuE,EAAA,KAAW,EAAA,CAAA,EAClBvE,EAAgC,YAAzBwE,EAAA,KAAiB,EAAA,CAAA,EACd/G,EAAA,aAAVoC,EAeK,KAAA2F,GAAA,CAdJxF,EAaM,MAAA,CAbA,MAAKF,EAAEC,EAAAA,OAAO,+BAA+B,CAAA,IAClDK,EAAA,EAAA,EAAAP,EAKiBI,EAAA,KAAAI,EAJA5C,EAAA,QAAQ,iBAAjBgI,QADRhH,EAKiBC,EAAAgH,EAAA,EAAA,CAHf,IAAKD,EACL,SAAU/G,EAAAiH,EAAA,EACX,QAAA,GACC,KAAMF,CAAA,6CACR5F,EAKqBI,EAAA,KAAAI,EAJL3B,EAAAjC,CAAA,EAARmJ,QADRnH,EAKqBC,EAAAmH,EAAA,EAAA,CAHnB,IAAKD,EAAK,KACV,YAAaA,EAAK,YAClB,KAAM,GACN,KAAMA,EAAK,IAAA,yDAGf5F,EA0BK,KAAA,KAAA,CAzBOvC,EAAA,SAAWA,EAAA,QAAQ,OAAI,gBAAlCoC,EAkBM,MAAA,OAlB8C,MAAKC,EAAEC,EAAAA,OAAO,4BAA4B,CAAA,GAC7FqB,EAOW1C,EAAA2C,CAAA,EAAA,CANT,aAAY3C,EAAAG,CAAA,EAAC,iBAAA,MAAA,EACb,MAAOH,EAAAG,CAAA,EAAC,iBAAA,MAAA,EACR,QAAOsG,CAAA,GACG,OACV,IAA6C,CAA7C/D,EAA6C1C,EAAA6C,CAAA,EAAA,CAA1B,KAAM7C,EAAAoH,EAAA,GAAgB,KAAA,EAAA,CAAA,MAAA,CAAA,CAAA,kCAG3C1E,EAQW1C,EAAA2C,CAAA,EAAA,CAPT,aAAY3C,EAAAG,CAAA,EAAC,iBAAA,QAAA,EACb,MAAOH,EAAAG,CAAA,EAAC,iBAAA,QAAA,EACT,QAAQ,QACP,QAAOqG,CAAA,GACG,OACV,IAA+C,CAA/C9D,EAA+C1C,EAAA6C,CAAA,EAAA,CAA5B,KAAM7C,EAAAqH,EAAA,GAAkB,KAAA,EAAA,CAAA,MAAA,CAAA,CAAA,4CAI9CtH,EAK2DC,EAAA6C,CAAA,EAAA,OAH1D,OAAA,GACC,KAAM7C,EAAAsH,EAAA,EACN,KAAMtH,EAAAG,CAAA,EAAC,iBAAA,yBAAA,EACP,MAAOH,EAAAG,CAAA,EAAC,iBAAA,yBAAA,CAAA,giBC7Ib,MAAMyF,EAAQpB,GAAA,EACR,CAAE,QAAArB,CAAA,EAAYhB,EAAgC,iBAAkB,UAAU,EAC1EoF,EAAWvJ,EAAS,IACrBmF,EACIyC,EAAM,eAEN,CACN,GAAGA,EAAM,aACT,GAAGA,EAAM,cAAA,CAGX,oBAIAzE,EAkCQ,QAAA,CAlCA,MAAKC,EAAEC,EAAAA,OAAO,YAAY,EAAG,aAAYrB,EAAAG,CAAA,EAAC,iBAAA,mBAAA,CAAA,GACjDmB,EAyBQ,QAAA,CAzBA,MAAKF,EAAEC,EAAAA,OAAO,oBAAoB,CAAA,GACzCC,EAuBK,KAAA,KAAA,CAtBJA,EAIK,KAAA,CAJA,MAAKF,EAAEC,EAAAA,OAAO,0BAA0B,CAAA,GAC5CC,EAEO,OAFPwF,GAEO5C,EADHlE,EAAAG,CAAA,EAAC,iBAAA,QAAA,CAAA,EAAA,CAAA,CAAA,KAGNmB,EAEK,KAAA,CAFA,MAAKF,EAAEC,EAAAA,OAAO,0BAA0B,CAAA,IACzCrB,EAAAG,CAAA,EAAC,iBAAA,aAAA,CAAA,EAAA,CAAA,EAELmB,EAEK,KAAA,CAFA,MAAKF,EAAEC,EAAAA,OAAO,2BAA2B,CAAA,IAC1CrB,EAAAG,CAAA,EAAC,iBAAA,kBAAA,CAAA,EAAA,CAAA,EAELmB,EAEK,KAAA,CAFA,MAAKF,EAAEC,EAAAA,OAAO,kCAAkC,CAAA,IACjDrB,EAAAG,CAAA,EAAC,iBAAA,gBAAA,CAAA,EAAA,CAAA,EAEKH,EAAAmD,CAAA,GAAVzB,EAAA,EAAAP,EAEK,UADDnB,EAAAG,CAAA,EAAC,iBAAA,eAAA,CAAA,EAAA,CAAA,YAELmB,EAIK,KAAA,CAJA,MAAKF,EAAEC,EAAAA,OAAO,2BAA2B,CAAA,GAC7CC,EAEO,OAFPkG,GAEOtD,EADHlE,EAAAG,CAAA,EAAC,iBAAA,SAAA,CAAA,EAAA,CAAA,CAAA,WAKRmB,EAMQ,QAAA,KAAA,QALPH,EAIsBI,EAAA,KAAAI,EAHH4F,EAAA,MAAX1C,QADR9E,EAIsB0H,GAAA,CAFpB,IAAK5C,EAAQ,GACb,QAAA7E,EAAAmD,CAAA,EACA,QAAA0B,CAAA,wnBC9CL,MAAM6C,EAAevF,EAGlB,iBAAkB,eAAe,EAE9BwF,EAAoBxF,EAAsB,iBAAkB,UAAU,EAC1E,OAAQwB,GAAsBA,EAAQ,aAAe,OAAO,EACxDiE,EAAoB3I,EAAIyI,EAAa,iBAAiB,EACtDG,EAAkB5I,EAAcyI,EAAa,eAAe,EAKlE,OAAA7G,EAAM+G,EAAmB,IAAM,CAC9B,MAAME,EAAc,CAACF,EAAkB,MACvC,OAAO,IAAI,UAAU,SACpB,iBACA,sBACAA,EAAkB,MAAQ,MAAQ,KAClC,CACC,QAAS,IAAMG,GAAY5H,EAAE,iBAAkB,OAAO,CAAC,EACvD,MAAO,IAAM,CACZyH,EAAkB,MAAQE,EAC1BE,GAAU7H,EAAE,iBAAkB,oBAAoB,CAAC,CACpD,CAAA,CACD,CAEF,CAAC,EAQDU,EAAMgH,EAAiB,CAACI,EAAUC,IAAa,CAE9C,OAAO,IAAI,UAAU,SACpB,iBACA,yBACAD,EAAS,KAAK,GAAG,EACjB,CACC,QAAS,IAAMF,GAAY5H,EAAE,iBAAkB,wBAAwB,CAAC,EACxE,MAAO,IAAM,CACZ6H,GAAU7H,EAAE,iBAAkB,iCAAiC,CAAC,EAChE0H,EAAgB,MAAQK,CACzB,CAAA,CACD,CAEF,CAAC,cAIA/G,EAsBO,OAAA,KAAA,CArBNG,EAEK,KAAA,CAFA,MAAKF,EAAEC,EAAAA,OAAO,0BAA0B,CAAA,IACzCrB,EAAAG,CAAA,EAAC,iBAAA,8CAAA,CAAA,EAAA,CAAA,EAGLuC,EAEwB1C,EAAAkD,CAAA,EAAA,YAFQ0E,EAAA,2CAAAA,EAAiB,MAAA1H,GAAE,KAAK,QAAA,aACvD,IAAmE,KAAhEF,EAAAG,CAAA,EAAC,iBAAA,wCAAA,CAAA,EAAA,CAAA,CAAA,4BAGLmB,EAYW,WAAA,CAZ2B,MAAKF,EAAEC,EAAAA,OAAO,2BAA2B,CAAA,GAC9EC,EAES,gBADLtB,EAAAG,CAAA,EAAC,iBAAA,uDAAA,CAAA,EAAA,CAAA,SAELgB,EAOwBI,EAAA,KAAAI,EANL3B,EAAA2H,CAAA,EAAXhE,QADR5D,EAOwBC,EAAAkD,CAAA,EAAA,CALtB,IAAKS,EAAQ,sBACLkE,EAAA,2CAAAA,EAAe,MAAA3H,GACvB,MAAOyD,EAAQ,WAChB,KAAK,6BAAA,aACL,IAAkB,CAAfX,EAAAkB,EAAAP,EAAQ,IAAI,EAAA,CAAA,CAAA,qDAVCiE,EAAA,KAAiB,CAAA,4MH7DrC,wEISA,MAAMO,EAAWhG,EAAU,iBAAkB,WAAY,CACxD,OAAQ,GACR,iBAAkB,CACjB,SAAU,KACV,QAAS,IAAA,EAEV,QAAS,EAAA,CACT,EAEKyD,EAAQpB,GAAA,EAGR4D,EAAmBD,EAAS,kBAAkB,UAAY,CAAA,EAE1DE,EAAiBF,EAAS,kBAAkB,SAAW,CAAA,EAEvDG,EAAarJ,EAAI,EAAK,EACtBsJ,EAAatJ,EAAA,EAOnB,eAAeuJ,EAAW3D,EAA6B,CAEtD,GADAyD,EAAW,MAAQ,GACf,CAAA,CAACzD,EAIL,GAAI,CACCsD,EAAS,QACZ,MAAMvC,EAAM,oBAAoBf,CAAO,EAEvC,MAAMe,EAAM,kBAAkBf,CAAO,EAEtC0D,EAAW,MAAQ,MACpB,OAASE,EAAO,CACfC,GAAO,MAAM,iCAAkC,CAAE,MAAAD,CAAA,CAAO,EACxDH,EAAW,MAAQ,EACpB,CACD,mBAICvI,EAyEoBC,EAAA2I,EAAA,EAAA,CAxElB,OAAQ3I,EAAAmI,CAAA,EAAS,OACjB,KAAMnI,EAAAG,CAAA,EAAC,iBAAA,kBAAA,EACP,YAAiBH,EAAAG,CAAA,EAAC,iBAAA,qHAAA,GAAiJH,EAAAmI,CAAA,EAAS,YAAqBnI,EAAAG,CAAA,EAAC,iBAAA,yEAAA,kBAQlM,IAA0C,EAD3CuB,EAAA,EAAA,EAAAP,EAKaI,EAAA,KAAAI,EAJa3B,EAAAoI,CAAA,EAAgB,CAAlCQ,EAASjD,SADjB5F,EAKaC,EAAA6I,EAAA,EAAA,CAHX,IAAKlD,EACN,KAAK,OAAA,aACL,IAAa,KAAViD,CAAO,EAAA,CAAA,CAAA,uBAIXlH,EAAA,EAAA,EAAAP,EA0BaI,EAAA,KAAAI,EAzBmB3B,EAAAqI,CAAA,EAAc,CAArCS,EAAYC,SADrBhJ,EA0BaC,EAAA6I,EAAA,EAAA,CAxBX,IAAKE,EACN,KAAK,SAAA,aACL,IAgBI,CAhBJzH,EAgBI,IAAA,KAAA,CAfayH,IAAM,YAAtB5H,EAEWI,EAAA,CAAA,IAAA,GAAA,KADPvB,EAAAG,CAAA,EAAC,iBAAA,sDAAA,CAAA,EAAA,CAAA,CAAA,OAEgB4I,IAAM,WAA3B5H,EAEWI,EAAA,CAAA,IAAA,GAAA,KADPvB,EAAAG,CAAA,EAAC,iBAAA,qDAAA,CAAA,EAAA,CAAA,CAAA,YAELgB,EAEWI,EAAA,CAAA,IAAA,GAAA,CADPyB,EAAAkB,EAAAlE,EAAAG,CAAA,iDAAoD,OAAA4I,EAAM,CAAA,EAAA,CAAA,CAAA,OACnD/F,EAAA,MACRhD,EAAAgJ,EAAA,wPAAgRF,EAAW,MAAA,QAO/RxH,EAIK,KAAA,CAJA,MAAKF,EAAEC,EAAAA,OAAO,sCAAsC,EAAG,aAAYrB,EAAAG,CAAA,EAAC,iBAAA,oBAAA,CAAA,UACxEgB,EAEKI,EAAA,KAAAI,EAFiBmH,EAAXnF,IAAXjC,EAAA,EAAAP,EAEK,KAAA,CAF8B,IAAKwC,CAAA,IACpCA,CAAO,EAAA,CAAA,gDAcbjB,EAAwBuG,EAAA,EAExBvG,EAQW1C,EAAA2C,CAAA,EAAA,CAPT,MAAKvB,EAAEC,EAAAA,OAAO,yCAAyC,EACxD,QAAQ,UACP,QAAKuB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAEoI,EAAA,MAAU,CAAIA,EAAA,MAAA,GACX,OACV,IAAoC,CAApC5F,EAAoC1C,EAAA6C,CAAA,EAAA,CAAjB,KAAM7C,EAAAkJ,EAAA,GAAO,KAAA,EAAA,CAAA,MAAA,CAAA,CAAA,aACtB,IACX,CADWlG,EAAA,MACRhD,EAAAG,CAAA,EAAC,iBAAA,sBAAA,CAAA,EAAA,CAAA,CAAA,qBAGLuC,EAGuBiE,GAAA,YAFb4B,EAAA,2CAAAA,EAAU,MAAArI,GACX,KAAMoI,EAAA,qCAAAA,EAAU,MAAApI,GACvB,QAAOsI,CAAA,gCAEgBxI,EAAAmI,CAAA,EAAS,aAAlCpI,EAA6CoJ,GAAA,CAAA,IAAA,CAAA,CAAA,kWCzH/C,MAAMC,EAAoBjH,EAIvB,iBAAkB,oBAAoB,EAEnCkH,EAAUpK,EAAI,EAAK,EACnBqK,EAAWrK,EAAImK,EAAkB,IAAI,EACrCG,EAAWtK,EAAImK,EAAkB,QAAQ,EAE/C1D,GAAoCpH,CAAK,EAKzC,eAAekL,GAAW,CACzB,GAAI,CACHH,EAAQ,MAAQ,GAChB,KAAM,CAAE,KAAAhL,GAAS,MAAMC,EAAM,KAAcC,EAAY,uCAAuC,EAAG,CAEhG,IAAK6K,EAAkB,IACvB,KAAME,EAAS,MACf,SAAUC,EAAS,KAAA,EACjB,CAAE,gBAAiBxE,EAAoB,OAAQ,EAClD,GAAI1G,EAAM,CACT0J,GAAY5H,EAAE,iBAAkB,0BAA0B,CAAC,EAC3D,MACD,CACD,OAASN,EAAG,CACX6I,GAAO,MAAM7I,CAAU,CAExB,QAAA,CACCwJ,EAAQ,MAAQ,EACjB,CAEArB,GAAU7H,EAAE,iBAAkB,mCAAmC,CAAC,EAClEmJ,EAAS,MAAQF,EAAkB,KACnCG,EAAS,MAAQH,EAAkB,QACpC,mBAICrJ,EA0BoBC,EAAA2I,EAAA,EAAA,CAzBlB,KAAM3I,EAAAG,CAAA,EAAC,iBAAA,oBAAA,EACP,YAAaH,EAAAG,CAAA,EAAC,iBAAA,gHAAA,CAAA,aACf,IAsBO,CAtBPmB,EAsBO,OAAA,CArBN,GAAG,qBACF,MAAKF,EAAEC,EAAAA,OAAO,4BAA4B,EAC3C,aAAa,QACZ,YAAgBmI,EAAQ,CAAA,SAAA,CAAA,CAAA,GACzB9G,EAIyC1C,EAAAmE,EAAA,EAAA,YAH/BmF,EAAA,2CAAAA,EAAQ,MAAApJ,GACjB,KAAK,WACL,aAAa,QACZ,MAAOF,EAAAG,CAAA,EAAC,iBAAA,OAAA,CAAA,iCACVuC,EAI4C1C,EAAAyJ,EAAA,EAAA,YAHlCF,EAAA,2CAAAA,EAAQ,MAAArJ,GACjB,KAAK,WACL,aAAa,QACZ,MAAOF,EAAAG,CAAA,EAAC,iBAAA,UAAA,CAAA,iCACVuC,EAMW1C,EAAA2C,CAAA,EAAA,CALT,MAAKvB,EAAEC,EAAAA,OAAO,oCAAoC,EAClD,SAAUgI,EAAA,MACX,QAAQ,UACR,KAAK,QAAA,aACL,IAA6E,KAA1EA,EAAA,MAAUrJ,EAAAG,CAAA,EAAC,iBAAA,UAAA,EAAiCH,EAAAG,CAAA,EAAC,iBAAA,MAAA,CAAA,EAAA,CAAA,CAAA,8WC1EnDuC,EAA2BgH,EAAA,EAC3BhH,EAA4BiH,EAAA,CAAA,UCFvBC,GAAQC,GAAA,EACRC,EAAMC,GAAUC,EAAgB,EACtCF,EAAI,OAAO,SAAW,iBACtBA,EAAI,IAAIF,EAAK,EACbE,EAAI,MAAM,iBAAiB","x_google_ignoreList":[0]} \ No newline at end of file