(()=>{"use strict";var e,t,n,r={26436:(e,t,n)=>{var r,s=n(32981),a=n(53334),i=n(25883),o=n(56760),l=n(63814),c=n(85168),u=n(65043),d=n(85471);!function(e){e[e.SUCCESS=0]="SUCCESS",e[e.ERROR=1]="ERROR",e[e.INDETERMINATE=2]="INDETERMINATE",e[e.INCOMPLETE_CONF=3]="INCOMPLETE_CONF",e[e.UNAUTHORIZED=4]="UNAUTHORIZED",e[e.TIMEOUT=5]="TIMEOUT",e[e.NETWORK_ERROR=6]="NETWORK_ERROR"}(r||(r={}));const A=function(e){return!(!e.status||e.status===r.SUCCESS)&&(e.userProvided||"password::global::user"===e.authMechanism)},p=function(e){if(e.type===i.pt.File)return!1;const t=e.attributes;return!(!t.scope||!t.backend||"personal"!==t.scope&&"system"!==t.scope)};(0,o.IF)(u.Ay);const f=new i.hY({id:"credentials-external-storage",displayName:()=>(0,a.Tl)("files","Enter missing credentials"),iconSvgInline:()=>'',enabled:e=>{if(1!==e.length)return!1;const t=e[0];if(!p(t))return!1;const n=t.attributes?.config||{};return!!A(n)},async exec(e){const{login:t,password:s}=await new Promise((e=>(0,c.Ss)((0,d.$V)((()=>Promise.all([n.e(4208),n.e(7367)]).then(n.bind(n,7367)))),{},(t=>{e(t)}))));if(t&&s)try{await async function(e,t,n){const s=(await u.Ay.request({method:"PUT",url:(0,l.Jv)("apps/files_external/userglobalstorages/{id}",{id:e.attributes.id}),confirmPassword:o.mH.Strict,data:{backendOptions:{user:t,password:n}}})).data;return s.status!==r.SUCCESS?((0,c.Qg)((0,a.Tl)("files_external","Unable to update this external storage config. {statusMessage}",{statusMessage:s?.statusMessage||""})),null):((0,c.Te)((0,a.Tl)("files_external","New configuration successfully saved")),d.Ay.set(e.attributes,"config",s),!0)}(e,t,s),(0,c.Te)((0,a.Tl)("files_external","Credentials successfully set"))}catch(e){(0,c.Qg)((0,a.Tl)("files_external","Error while setting credentials: {error}",{error:e.message}))}return null},order:-1e3,default:i.m9.DEFAULT,inline:()=>!0});var g=n(85072),h=n.n(g),m=n(97825),w=n.n(m),C=n(77659),v=n.n(C),b=n(55056),x=n.n(b),y=n(10540),T=n.n(y),E=n(41113),_=n.n(E),S=n(64755),O={};O.styleTagTransform=_(),O.setAttributes=x(),O.insert=v().bind(null,"head"),O.domAPI=w(),O.insertStyleElement=T(),h()(S.A,O),S.A&&S.A.locals&&S.A.locals;var H=n(21777);const k=`/files/${(0,H.HW)()?.uid}`,N=e=>{const t=(e.path+"/"+e.name).replace(/^\//gm,"");return new i.vd({id:e.id,source:(0,l.dC)("dav"+k+"/"+t),root:k,owner:(0,H.HW)()?.uid||null,permissions:e.config.status!==r.SUCCESS?i.aX.NONE:e?.permissions||i.aX.READ,attributes:{displayName:t,...e}})},M=new i.hY({id:"check-external-storage",displayName:()=>"",iconSvgInline:()=>"",enabled:e=>e.every((e=>!0===p(e))),exec:async()=>null,async renderInline(e){const t=document.createElement("span");t.className="files-list__row-status",t.innerHTML=(0,a.Tl)("files_external","Checking storage …");let n=null;return function(e){const t=arguments.length>1&&void 0!==arguments[1]&&!arguments[1]?"userstorages":"userglobalstorages";return u.Ay.get((0,l.Jv)(`apps/files_external/${t}/${e}?testOnly=false`))}(e.attributes.id,"system"===e.attributes.scope).then((s=>{if(n=s.data,d.Ay.set(e.attributes,"config",n),n.status!==r.SUCCESS)throw new Error(n?.statusMessage||(0,a.Tl)("files_external","There was an error with this external storage."));t.remove()})).catch((r=>{r.response&&!n&&(0,c.I9)((0,a.Tl)("files_external","We were unable to check the external storage {basename}",{basename:e.basename})),t.innerHTML="";const s=!!n&&A(n),i=document.createElement("span");i.classList.add("files-list__row-status--"+(s?"warning":"error")),s||(t.innerHTML='',t.title=r.message),t.prepend(i)})),t},order:10}),R=new i.hY({id:"open-in-files-external-storage",displayName:e=>(e?.[0]?.attributes?.config||{status:r.INDETERMINATE}).status!==r.SUCCESS?(0,a.Tl)("files_external","Examine this faulty external storage configuration"):(0,a.Tl)("files","Open in Files"),iconSvgInline:()=>"",enabled:(e,t)=>"extstoragemounts"===t.id,async exec(e){const t=e.attributes.config;return t?.status!==r.SUCCESS?(window.OC.dialogs.confirm((0,a.Tl)("files_external","There was an error with this external storage. Do you want to review this mount point config in the settings page?"),(0,a.Tl)("files_external","External mount error"),(e=>{if(!0===e){const e=(0,H.HW)()?.isAdmin?"admin":"user";window.location.href=(0,l.Jv)(`/settings/${e}/externalstorages`)}})),null):(window.OCP.Files.Router.goToRoute(null,{view:"files"},{dir:e.path}),null)},order:-1e3,default:i.m9.HIDDEN}),U=(0,s.C)("files_external","allowUserMounting",!1);(0,i.bh)().register(new i.Ss({id:"extstoragemounts",name:(0,a.Tl)("files_external","External storage"),caption:(0,a.Tl)("files_external","List of external storage."),emptyCaption:U?(0,a.Tl)("files_external","There is no external storage configured. You can configure them in your Personal settings."):(0,a.Tl)("files_external","There is no external storage configured and you don't have the permission to configure them."),emptyTitle:(0,a.Tl)("files_external","No external storage"),icon:'',order:30,columns:[new i.VP({id:"storage-type",title:(0,a.Tl)("files_external","Storage type"),render(e){const t=e.attributes?.backend||(0,a.Tl)("files_external","Unknown"),n=document.createElement("span");return n.textContent=t,n}}),new i.VP({id:"scope",title:(0,a.Tl)("files_external","Scope"),render(e){const t=document.createElement("span");let n=(0,a.Tl)("files_external","Personal");return"system"===e.attributes?.scope&&(n=(0,a.Tl)("files_external","System")),t.textContent=n,t}})],getContents:async()=>{const e=(await u.Ay.get((0,l.KT)("apps/files_external/api/v1/mounts"))).data.ocs.data.map(N);return{folder:new i.vd({id:0,source:(0,l.dC)("dav"+k),root:k,owner:(0,H.HW)()?.uid||null,permissions:i.aX.READ}),contents:e}}})),(0,i.Gg)(f),(0,i.Gg)(M),(0,i.Gg)(R)},64755:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(71354),s=n.n(r),a=n(76314),i=n.n(a)()(s());i.push([e.id,".files-list__row-status{display:flex;min-width:44px;justify-content:center;align-items:center;height:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.files-list__row-status svg{width:24px;height:24px}.files-list__row-status svg path{fill:currentColor}.files-list__row-status--error,.files-list__row-status--warning{position:absolute;display:block;top:0;left:0;right:0;bottom:0;opacity:.1;z-index:-1}.files-list__row-status--error{background:var(--color-error)}.files-list__row-status--warning{background:var(--color-warning)}","",{version:3,sources:["webpack://./apps/files_external/src/css/fileEntryStatus.scss"],names:[],mappings:"AAAA,wBACC,YAAA,CACA,cAAA,CACA,sBAAA,CACA,kBAAA,CACA,WAAA,CACA,sBAAA,CACA,kBAAA,CACA,eAAA,CAEA,4BACC,UAAA,CACA,WAAA,CAEA,iCACC,iBAAA,CAIF,gEAEC,iBAAA,CACA,aAAA,CACA,KAAA,CACA,MAAA,CACA,OAAA,CACA,QAAA,CACA,UAAA,CACA,UAAA,CAGD,+BACC,6BAAA,CAGD,iCACC,+BAAA",sourcesContent:[".files-list__row-status {\n\tdisplay: flex;\n\tmin-width: 44px;\n\tjustify-content: center;\n\talign-items: center;\n\theight: 100%;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\toverflow: hidden;\n\n\tsvg {\n\t\twidth: 24px;\n\t\theight: 24px;\n\n\t\tpath {\n\t\t\tfill: currentColor;\n\t\t}\n\t}\n\n\t&--error,\n\t&--warning {\n\t\tposition: absolute;\n\t\tdisplay: block;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\topacity: .1;\n\t\tz-index: -1;\n\t}\n\n\t&--error {\n\t\tbackground: var(--color-error);\n\t}\n\n\t&--warning {\n\t\tbackground: var(--color-warning);\n\t}\n}\n"],sourceRoot:""}]);const o=i}},s={};function a(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={id:e,loaded:!1,exports:{}};return r[e].call(n.exports,n,n.exports,a),n.loaded=!0,n.exports}a.m=r,e=[],a.O=(t,n,r,s)=>{if(!n){var i=1/0;for(u=0;u=s)&&Object.keys(a.O).every((e=>a.O[e](n[l])))?n.splice(l--,1):(o=!1,s0&&e[u-1][2]>s;u--)e[u]=e[u-1];e[u]=[n,r,s]},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((t,n)=>(a.f[n](e,t),t)),[])),a.u=e=>e+"-"+e+".js?v="+{2441:"bd6d3dc836e836cd4795",5775:"bdb5a44b157eaff757ea",5862:"18c97d281a8207f0ce8d",7367:"98e708f87d44f5ba5513"}[e],a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t={},n="nextcloud:",a.l=(e,r,s,i)=>{if(t[e])t[e].push(r);else{var o,l;if(void 0!==s)for(var c=document.getElementsByTagName("script"),u=0;u{o.onerror=o.onload=null,clearTimeout(p);var s=t[e];if(delete t[e],o.parentNode&&o.parentNode.removeChild(o),s&&s.forEach((e=>e(r))),n)return n(r)},p=setTimeout(A.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=A.bind(null,o.onerror),o.onload=A.bind(null,o.onload),l&&document.head.appendChild(o)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.j=1873,(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var r=n.length-1;r>-1&&(!e||!/^http(s?):/.test(e));)e=n[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{a.b=document.baseURI||self.location.href;var e={1873:0};a.f.j=(t,n)=>{var r=a.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var s=new Promise(((n,s)=>r=e[t]=[n,s]));n.push(r[2]=s);var i=a.p+a.u(t),o=new Error;a.l(i,(n=>{if(a.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var s=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed.\n("+s+": "+i+")",o.name="ChunkLoadError",o.type=s,o.request=i,r[1](o)}}),"chunk-"+t,t)}},a.O.j=t=>0===e[t];var t=(t,n)=>{var r,s,i=n[0],o=n[1],l=n[2],c=0;if(i.some((t=>0!==e[t]))){for(r in o)a.o(o,r)&&(a.m[r]=o[r]);if(l)var u=l(a)}for(t&&t(n);ca(26436)));i=a.O(i)})(); //# sourceMappingURL=files_external-init.js.map?v=384e1f49bc98a14c6241