r2-explorer 1.1.3 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. package/dashboard/assets/{AuthLayout.7618f480.js → AuthLayout.69a601d4.js} +1 -1
  2. package/dashboard/{spa/assets/EmailFilePage.bbf7a6c5.js → assets/EmailFilePage.b9af5203.js} +1 -1
  3. package/dashboard/{spa/assets/ErrorNotFound.699f3886.js → assets/ErrorNotFound.e25d48e7.js} +1 -1
  4. package/dashboard/{spa/assets/LoginPage.149f1ef8.js → assets/LoginPage.7cae560f.js} +1 -1
  5. package/dashboard/assets/{auth-store.f621e290.js → auth-store.adb4e0f1.js} +1 -1
  6. package/dashboard/assets/{auth.9b526521.js → auth.888ee5c0.js} +1 -1
  7. package/dashboard/assets/{bus.18b30314.js → bus.f801e67b.js} +1 -1
  8. package/dashboard/assets/{index.69bcbd86.js → index.81c5f354.js} +2 -2
  9. package/dashboard/index.html +1 -1
  10. package/dashboard/spa/assets/{AuthLayout.7618f480.js → AuthLayout.69a601d4.js} +1 -1
  11. package/dashboard/{assets/EmailFilePage.bbf7a6c5.js → spa/assets/EmailFilePage.b9af5203.js} +1 -1
  12. package/dashboard/{assets/ErrorNotFound.699f3886.js → spa/assets/ErrorNotFound.e25d48e7.js} +1 -1
  13. package/dashboard/{assets/LoginPage.149f1ef8.js → spa/assets/LoginPage.7cae560f.js} +1 -1
  14. package/dashboard/spa/assets/{auth-store.f621e290.js → auth-store.adb4e0f1.js} +1 -1
  15. package/dashboard/spa/assets/{auth.9b526521.js → auth.888ee5c0.js} +1 -1
  16. package/dashboard/spa/assets/{bus.18b30314.js → bus.f801e67b.js} +1 -1
  17. package/dashboard/spa/assets/{index.69bcbd86.js → index.81c5f354.js} +2 -2
  18. package/dashboard/spa/index.html +1 -1
  19. package/dist/index.js +1 -1
  20. package/dist/index.mjs +1 -1
  21. package/package.json +1 -1
@@ -1 +1 @@
1
- import{_ as a,c as n,r,o as s,e as c,w as e,Q as _,f as o,g as p}from"./index.69bcbd86.js";const u=n({name:"AuthLayout",components:{}});function f(i,d,l,m,h,v){const t=r("router-view");return s(),c(_,{view:"hHh lpR fFf"},{default:e(()=>[o(p,{class:"container"},{default:e(()=>[o(t)]),_:1})]),_:1})}var x=a(u,[["render",f]]);export{x as default};
1
+ import{_ as a,c as n,r,o as s,e as c,w as e,Q as _,f as o,g as p}from"./index.81c5f354.js";const u=n({name:"AuthLayout",components:{}});function f(i,d,l,m,h,v){const t=r("router-view");return s(),c(_,{view:"hHh lpR fFf"},{default:e(()=>[o(p,{class:"container"},{default:e(()=>[o(t)]),_:1})]),_:1})}var x=a(u,[["render",f]]);export{x as default};
@@ -1,2 +1,2 @@
1
- import{h as te,G as _e,H as Se,I as q,J as W,K as Te,L as $e,M as Pe,N as x,k as _,O as N,P as Be,R as Ce,S as qe,T as He,U as Ee,V as Me,W as Ae,X as z,Y as D,Z as U,$ as V,a0 as Fe,a1 as j,a2 as R,a3 as Oe,l as M,a4 as Ie,n as Le,a5 as Qe,m as ae,a6 as We,_ as xe,c as Ne,a7 as G,a8 as J,a9 as ze,aa as w,u as De,ab as Ue,o as u,ac as p,f as s,w as o,F as K,ad as Ve,x as $,E as P,z as b,ae as X,e as H,B as Y,y as d,A as v,t as Z,af as ee,ag as je,ah as Re}from"./index.69bcbd86.js";var E=te({name:"QTooltip",inheritAttrs:!1,props:{..._e,...Se,...q,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null},transitionShow:{...q.transitionShow,default:"jump-down"},transitionHide:{...q.transitionHide,default:"jump-up"},anchor:{type:String,default:"bottom middle",validator:W},self:{type:String,default:"top middle",validator:W},offset:{type:Array,default:()=>[14,14],validator:Te},scrollTarget:$e,delay:{type:Number,default:0},hideDelay:{type:Number,default:0},persistent:Boolean},emits:[...Pe],setup(e,{slots:t,emit:m,attrs:l}){let a,n;const r=Le(),{proxy:{$q:c}}=r,g=x(null),S=x(!1),se=_(()=>N(e.anchor,c.lang.rtl)),le=_(()=>N(e.self,c.lang.rtl)),ne=_(()=>e.persistent!==!0),{registerTick:oe,removeTick:ie}=Be(),{registerTimeout:T}=Ce(),{transitionProps:re,transitionStyle:de}=qe(e),{localScrollTarget:A,changeScrollEvent:ce,unconfigureScrollTarget:ue}=He(e,L),{anchorEl:f,canShow:fe,anchorEvents:k}=Ee({showing:S,configureAnchorEl:ye}),{show:me,hide:B}=Me({showing:S,canShow:fe,handleShow:pe,handleHide:ve,hideOnRouteChange:ne,processOnMount:!0});Object.assign(k,{delayShow:ge,delayHide:ke});const{showPortal:F,hidePortal:O,renderPortal:he}=Ae(r,g,be,"tooltip");if(c.platform.is.mobile===!0){const i={anchorEl:f,innerRef:g,onClickOutside(h){return B(h),h.target.classList.contains("q-dialog__backdrop")&&We(h),!0}},C=_(()=>e.modelValue===null&&e.persistent!==!0&&S.value===!0);z(C,h=>{(h===!0?Qe:U)(i)}),D(()=>{U(i)})}function pe(i){F(),oe(()=>{n=new MutationObserver(()=>y()),n.observe(g.value,{attributes:!1,childList:!0,characterData:!0,subtree:!0}),y(),L()}),a===void 0&&(a=z(()=>c.screen.width+"|"+c.screen.height+"|"+e.self+"|"+e.anchor+"|"+c.lang.rtl,y)),T(()=>{F(!0),m("show",i)},e.transitionDuration)}function ve(i){ie(),O(),I(),T(()=>{O(!0),m("hide",i)},e.transitionDuration)}function I(){n!==void 0&&(n.disconnect(),n=void 0),a!==void 0&&(a(),a=void 0),ue(),V(k,"tooltipTemp")}function y(){Fe({targetEl:g.value,offset:e.offset,anchorEl:f.value,anchorOrigin:se.value,selfOrigin:le.value,maxHeight:e.maxHeight,maxWidth:e.maxWidth})}function ge(i){if(c.platform.is.mobile===!0){j(),document.body.classList.add("non-selectable");const C=f.value,h=["touchmove","touchcancel","touchend","click"].map(Q=>[C,Q,"delayHide","passiveCapture"]);R(k,"tooltipTemp",h)}T(()=>{me(i)},e.delay)}function ke(i){c.platform.is.mobile===!0&&(V(k,"tooltipTemp"),j(),setTimeout(()=>{document.body.classList.remove("non-selectable")},10)),T(()=>{B(i)},e.hideDelay)}function ye(){if(e.noParentEvent===!0||f.value===null)return;const i=c.platform.is.mobile===!0?[[f.value,"touchstart","delayShow","passive"]]:[[f.value,"mouseenter","delayShow","passive"],[f.value,"mouseleave","delayHide","passive"]];R(k,"anchor",i)}function L(){if(f.value!==null||e.scrollTarget!==void 0){A.value=Oe(f.value,e.scrollTarget);const i=e.noParentEvent===!0?y:B;ce(A.value,i)}}function we(){return S.value===!0?M("div",{...l,ref:g,class:["q-tooltip q-tooltip--style q-position-engine no-pointer-events",l.class],style:[l.style,de.value],role:"tooltip"},ae(t.default)):null}function be(){return M(Ie,re.value,we)}return D(I),Object.assign(r.proxy,{updatePosition:y}),he}}),Ge=te({name:"QBtnGroup",props:{unelevated:Boolean,outline:Boolean,flat:Boolean,rounded:Boolean,square:Boolean,push:Boolean,stretch:Boolean,glossy:Boolean,spread:Boolean},setup(e,{slots:t}){const m=_(()=>{const l=["unelevated","outline","flat","rounded","square","push","stretch","glossy"].filter(a=>e[a]===!0).map(a=>`q-btn-group--${a}`).join(" ");return`q-btn-group row no-wrap${l.length!==0?" "+l:""}`+(e.spread===!0?" q-btn-group--spread":" inline")});return()=>M("div",{class:m.value},ae(t.default))}});const Je=Ne({name:"EmailFolderPage",data:()=>({srcdoc:null,file:null,fileHead:null,timeInterval:null,attachments:[]}),computed:{selectedBucket:function(){return this.$route.params.bucket},selectedFolder:function(){return this.$route.params.folder},selectedFile:function(){return this.$route.params.file},filePath:function(){const e=G(this.selectedFile);return`.r2-explorer/emails/${this.selectedFolder}/${e}`}},watch:{selectedBucket(e){this.$router.push({name:"email-folder",params:{bucket:e,folder:J(this.selectedFolder)}})}},methods:{timeSince:ze,contentFinishedLoading(){clearInterval(this.timeInterval),this.timeInterval=null,this.resizeIframe()},resizeIframe(){this.$refs.renderWindow&&(this.$refs.renderWindow.style.height=`${this.$refs.renderWindow.contentWindow.document.documentElement.scrollHeight}px`)},fetchEmail:async function(){const e=G(this.selectedFile),t=await w.downloadFile(this.selectedBucket,this.filePath,{}),m=e.split(".json")[0];this.file=t.data;let l=t.data.html;if(l){l=l.replaceAll(/<a(.*?)>(.*?)<\/a>/gi,'<a$1 target="_blank">$2</a>');for(const a of t.data.attachments){a.display=!0,a.downloadUrl=`${this.mainStore.serverUrl}/api/buckets/${this.selectedBucket}/${J(`.r2-explorer/emails/${this.selectedFolder}/${m}/${a.filename}`)}`;let n=a.contentId;if(n){n.startsWith("<")&&n.endsWith(">")&&(n=n.substring(1,n.length-1));const r=`cid:${n}`;l.includes(r)&&(l=l.replaceAll(`cid:${n}`,a.downloadUrl),a.display=!1)}}this.srcdoc=l}this.attachments=t.data.attachments.filter(a=>a.display),w.headFile(this.selectedBucket,this.filePath).then(async a=>{a.customMetadata.read==="false"?this.fileHead=await w.updateMetadata(this.selectedBucket,this.filePath,{...a.customMetadata,read:!0}):this.fileHead=a}),setTimeout(()=>{this.contentFinishedLoading()},1e4),this.timeInterval=setInterval(()=>{this.resizeIframe()},400)},markAsUnread:async function(){this.fileHead=await w.updateMetadata(this.selectedBucket,this.filePath,{...this.fileHead.customMetadata,read:!1}),this.q.notify({group:!1,icon:"done",spinner:!1,message:"Email marked as unread!",timeout:2500})},markAsRead:async function(){this.fileHead=await w.updateMetadata(this.selectedBucket,this.filePath,{...this.fileHead.customMetadata,read:!0}),this.q.notify({group:!1,icon:"done",spinner:!1,message:"Email marked as read!",timeout:2500})},downloadAtt:e=>{console.log(e);const t=document.createElement("a");t.download=e.filename,t.href=e.downloadUrl,document.body.appendChild(t),t.click(),document.body.removeChild(t)}},created(){this.fetchEmail()},setup(){return{mainStore:De(),q:Ue()}}}),Ke={key:0},Xe={class:"font-18 q-my-none"},Ye={class:"d-flex row"},Ze={class:"d-flex column"},et={class:"text-muted"},tt={class:"q-ml-auto"},at={class:""},st={class:"overflow-auto d-block email-wrapper"},lt=["srcdoc"],nt=["innerHTML"],ot={class:"row attachments"},it={key:1,class:"text-center q-my-lg"};function rt(e,t,m,l,a,n){return this.file?(u(),p("div",Ke,[s(K,null,{default:o(()=>[s($,{class:"bg-grey-2 text-black",vertical:""},{default:o(()=>[s(Ge,{unelevated:""},{default:o(()=>[s(P,{push:"",icon:"arrow_back",to:{name:"email-folder",params:{bucket:e.$route.params.bucket,folder:e.$route.params.folder}}},{default:o(()=>[s(E,null,{default:o(()=>t[1]||(t[1]=[b("Back")])),_:1})]),_:1},8,["to"]),e.fileHead?(u(),p(X,{key:0},[e.fileHead.customMetadata.read==="true"?(u(),H(P,{key:0,push:"",icon:"mark_email_unread",onClick:e.markAsUnread},{default:o(()=>[s(E,null,{default:o(()=>t[2]||(t[2]=[b("Mark email as unread")])),_:1})]),_:1},8,["onClick"])):(u(),H(P,{key:1,push:"",icon:"mark_email_read",onClick:e.markAsRead},{default:o(()=>[s(E,null,{default:o(()=>t[3]||(t[3]=[b("Mark email as read")])),_:1})]),_:1},8,["onClick"]))],64)):Y("",!0)]),_:1})]),_:1}),s($,{vertical:""},{default:o(()=>[d("h5",Xe,v(e.file.subject),1)]),_:1}),s($,{horizontal:"",class:"q-px-sm"},{default:o(()=>[d("div",Ye,[s(Z,{name:"account_circle",size:"xl",class:"q-mr-sm"}),d("div",Ze,[d("span",null,[b(v(e.file.from.name)+" ",1),d("small",et,"<"+v(e.file.from.address)+">",1)]),d("span",null,"to "+v(e.file.to[0].address),1)])]),d("div",tt,[d("small",at,v(e.file.date)+" ("+v(e.timeSince(new Date(e.file.date)))+")",1)])]),_:1}),s(ee,{vertical:""},{default:o(()=>[d("div",st,[e.srcdoc?(u(),p("iframe",{key:0,frameborder:"0",scrolling:"no",class:"w-100 d-block",onLoad:t[0]||(t[0]=(...r)=>e.contentFinishedLoading&&e.contentFinishedLoading(...r)),ref:"renderWindow",id:"renderWindow",srcdoc:e.srcdoc,sandbox:"allow-popups allow-popups-to-escape-sandbox allow-same-origin",csp:"script-src 'none'"},null,40,lt)):(u(),p("div",{key:1,innerHTML:e.file.text.replaceAll(`
1
+ import{h as te,G as _e,H as Se,I as q,J as W,K as Te,L as $e,M as Pe,N as x,k as _,O as N,P as Be,R as Ce,S as qe,T as He,U as Ee,V as Me,W as Ae,X as z,Y as D,Z as U,$ as V,a0 as Fe,a1 as j,a2 as R,a3 as Oe,l as M,a4 as Ie,n as Le,a5 as Qe,m as ae,a6 as We,_ as xe,c as Ne,a7 as G,a8 as J,a9 as ze,aa as w,u as De,ab as Ue,o as u,ac as p,f as s,w as o,F as K,ad as Ve,x as $,E as P,z as b,ae as X,e as H,B as Y,y as d,A as v,t as Z,af as ee,ag as je,ah as Re}from"./index.81c5f354.js";var E=te({name:"QTooltip",inheritAttrs:!1,props:{..._e,...Se,...q,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null},transitionShow:{...q.transitionShow,default:"jump-down"},transitionHide:{...q.transitionHide,default:"jump-up"},anchor:{type:String,default:"bottom middle",validator:W},self:{type:String,default:"top middle",validator:W},offset:{type:Array,default:()=>[14,14],validator:Te},scrollTarget:$e,delay:{type:Number,default:0},hideDelay:{type:Number,default:0},persistent:Boolean},emits:[...Pe],setup(e,{slots:t,emit:m,attrs:l}){let a,n;const r=Le(),{proxy:{$q:c}}=r,g=x(null),S=x(!1),se=_(()=>N(e.anchor,c.lang.rtl)),le=_(()=>N(e.self,c.lang.rtl)),ne=_(()=>e.persistent!==!0),{registerTick:oe,removeTick:ie}=Be(),{registerTimeout:T}=Ce(),{transitionProps:re,transitionStyle:de}=qe(e),{localScrollTarget:A,changeScrollEvent:ce,unconfigureScrollTarget:ue}=He(e,L),{anchorEl:f,canShow:fe,anchorEvents:k}=Ee({showing:S,configureAnchorEl:ye}),{show:me,hide:B}=Me({showing:S,canShow:fe,handleShow:pe,handleHide:ve,hideOnRouteChange:ne,processOnMount:!0});Object.assign(k,{delayShow:ge,delayHide:ke});const{showPortal:F,hidePortal:O,renderPortal:he}=Ae(r,g,be,"tooltip");if(c.platform.is.mobile===!0){const i={anchorEl:f,innerRef:g,onClickOutside(h){return B(h),h.target.classList.contains("q-dialog__backdrop")&&We(h),!0}},C=_(()=>e.modelValue===null&&e.persistent!==!0&&S.value===!0);z(C,h=>{(h===!0?Qe:U)(i)}),D(()=>{U(i)})}function pe(i){F(),oe(()=>{n=new MutationObserver(()=>y()),n.observe(g.value,{attributes:!1,childList:!0,characterData:!0,subtree:!0}),y(),L()}),a===void 0&&(a=z(()=>c.screen.width+"|"+c.screen.height+"|"+e.self+"|"+e.anchor+"|"+c.lang.rtl,y)),T(()=>{F(!0),m("show",i)},e.transitionDuration)}function ve(i){ie(),O(),I(),T(()=>{O(!0),m("hide",i)},e.transitionDuration)}function I(){n!==void 0&&(n.disconnect(),n=void 0),a!==void 0&&(a(),a=void 0),ue(),V(k,"tooltipTemp")}function y(){Fe({targetEl:g.value,offset:e.offset,anchorEl:f.value,anchorOrigin:se.value,selfOrigin:le.value,maxHeight:e.maxHeight,maxWidth:e.maxWidth})}function ge(i){if(c.platform.is.mobile===!0){j(),document.body.classList.add("non-selectable");const C=f.value,h=["touchmove","touchcancel","touchend","click"].map(Q=>[C,Q,"delayHide","passiveCapture"]);R(k,"tooltipTemp",h)}T(()=>{me(i)},e.delay)}function ke(i){c.platform.is.mobile===!0&&(V(k,"tooltipTemp"),j(),setTimeout(()=>{document.body.classList.remove("non-selectable")},10)),T(()=>{B(i)},e.hideDelay)}function ye(){if(e.noParentEvent===!0||f.value===null)return;const i=c.platform.is.mobile===!0?[[f.value,"touchstart","delayShow","passive"]]:[[f.value,"mouseenter","delayShow","passive"],[f.value,"mouseleave","delayHide","passive"]];R(k,"anchor",i)}function L(){if(f.value!==null||e.scrollTarget!==void 0){A.value=Oe(f.value,e.scrollTarget);const i=e.noParentEvent===!0?y:B;ce(A.value,i)}}function we(){return S.value===!0?M("div",{...l,ref:g,class:["q-tooltip q-tooltip--style q-position-engine no-pointer-events",l.class],style:[l.style,de.value],role:"tooltip"},ae(t.default)):null}function be(){return M(Ie,re.value,we)}return D(I),Object.assign(r.proxy,{updatePosition:y}),he}}),Ge=te({name:"QBtnGroup",props:{unelevated:Boolean,outline:Boolean,flat:Boolean,rounded:Boolean,square:Boolean,push:Boolean,stretch:Boolean,glossy:Boolean,spread:Boolean},setup(e,{slots:t}){const m=_(()=>{const l=["unelevated","outline","flat","rounded","square","push","stretch","glossy"].filter(a=>e[a]===!0).map(a=>`q-btn-group--${a}`).join(" ");return`q-btn-group row no-wrap${l.length!==0?" "+l:""}`+(e.spread===!0?" q-btn-group--spread":" inline")});return()=>M("div",{class:m.value},ae(t.default))}});const Je=Ne({name:"EmailFolderPage",data:()=>({srcdoc:null,file:null,fileHead:null,timeInterval:null,attachments:[]}),computed:{selectedBucket:function(){return this.$route.params.bucket},selectedFolder:function(){return this.$route.params.folder},selectedFile:function(){return this.$route.params.file},filePath:function(){const e=G(this.selectedFile);return`.r2-explorer/emails/${this.selectedFolder}/${e}`}},watch:{selectedBucket(e){this.$router.push({name:"email-folder",params:{bucket:e,folder:J(this.selectedFolder)}})}},methods:{timeSince:ze,contentFinishedLoading(){clearInterval(this.timeInterval),this.timeInterval=null,this.resizeIframe()},resizeIframe(){this.$refs.renderWindow&&(this.$refs.renderWindow.style.height=`${this.$refs.renderWindow.contentWindow.document.documentElement.scrollHeight}px`)},fetchEmail:async function(){const e=G(this.selectedFile),t=await w.downloadFile(this.selectedBucket,this.filePath,{}),m=e.split(".json")[0];this.file=t.data;let l=t.data.html;if(l){l=l.replaceAll(/<a(.*?)>(.*?)<\/a>/gi,'<a$1 target="_blank">$2</a>');for(const a of t.data.attachments){a.display=!0,a.downloadUrl=`${this.mainStore.serverUrl}/api/buckets/${this.selectedBucket}/${J(`.r2-explorer/emails/${this.selectedFolder}/${m}/${a.filename}`)}`;let n=a.contentId;if(n){n.startsWith("<")&&n.endsWith(">")&&(n=n.substring(1,n.length-1));const r=`cid:${n}`;l.includes(r)&&(l=l.replaceAll(`cid:${n}`,a.downloadUrl),a.display=!1)}}this.srcdoc=l}this.attachments=t.data.attachments.filter(a=>a.display),w.headFile(this.selectedBucket,this.filePath).then(async a=>{a.customMetadata.read==="false"?this.fileHead=await w.updateMetadata(this.selectedBucket,this.filePath,{...a.customMetadata,read:!0}):this.fileHead=a}),setTimeout(()=>{this.contentFinishedLoading()},1e4),this.timeInterval=setInterval(()=>{this.resizeIframe()},400)},markAsUnread:async function(){this.fileHead=await w.updateMetadata(this.selectedBucket,this.filePath,{...this.fileHead.customMetadata,read:!1}),this.q.notify({group:!1,icon:"done",spinner:!1,message:"Email marked as unread!",timeout:2500})},markAsRead:async function(){this.fileHead=await w.updateMetadata(this.selectedBucket,this.filePath,{...this.fileHead.customMetadata,read:!0}),this.q.notify({group:!1,icon:"done",spinner:!1,message:"Email marked as read!",timeout:2500})},downloadAtt:e=>{console.log(e);const t=document.createElement("a");t.download=e.filename,t.href=e.downloadUrl,document.body.appendChild(t),t.click(),document.body.removeChild(t)}},created(){this.fetchEmail()},setup(){return{mainStore:De(),q:Ue()}}}),Ke={key:0},Xe={class:"font-18 q-my-none"},Ye={class:"d-flex row"},Ze={class:"d-flex column"},et={class:"text-muted"},tt={class:"q-ml-auto"},at={class:""},st={class:"overflow-auto d-block email-wrapper"},lt=["srcdoc"],nt=["innerHTML"],ot={class:"row attachments"},it={key:1,class:"text-center q-my-lg"};function rt(e,t,m,l,a,n){return this.file?(u(),p("div",Ke,[s(K,null,{default:o(()=>[s($,{class:"bg-grey-2 text-black",vertical:""},{default:o(()=>[s(Ge,{unelevated:""},{default:o(()=>[s(P,{push:"",icon:"arrow_back",to:{name:"email-folder",params:{bucket:e.$route.params.bucket,folder:e.$route.params.folder}}},{default:o(()=>[s(E,null,{default:o(()=>t[1]||(t[1]=[b("Back")])),_:1})]),_:1},8,["to"]),e.fileHead?(u(),p(X,{key:0},[e.fileHead.customMetadata.read==="true"?(u(),H(P,{key:0,push:"",icon:"mark_email_unread",onClick:e.markAsUnread},{default:o(()=>[s(E,null,{default:o(()=>t[2]||(t[2]=[b("Mark email as unread")])),_:1})]),_:1},8,["onClick"])):(u(),H(P,{key:1,push:"",icon:"mark_email_read",onClick:e.markAsRead},{default:o(()=>[s(E,null,{default:o(()=>t[3]||(t[3]=[b("Mark email as read")])),_:1})]),_:1},8,["onClick"]))],64)):Y("",!0)]),_:1})]),_:1}),s($,{vertical:""},{default:o(()=>[d("h5",Xe,v(e.file.subject),1)]),_:1}),s($,{horizontal:"",class:"q-px-sm"},{default:o(()=>[d("div",Ye,[s(Z,{name:"account_circle",size:"xl",class:"q-mr-sm"}),d("div",Ze,[d("span",null,[b(v(e.file.from.name)+" ",1),d("small",et,"<"+v(e.file.from.address)+">",1)]),d("span",null,"to "+v(e.file.to[0].address),1)])]),d("div",tt,[d("small",at,v(e.file.date)+" ("+v(e.timeSince(new Date(e.file.date)))+")",1)])]),_:1}),s(ee,{vertical:""},{default:o(()=>[d("div",st,[e.srcdoc?(u(),p("iframe",{key:0,frameborder:"0",scrolling:"no",class:"w-100 d-block",onLoad:t[0]||(t[0]=(...r)=>e.contentFinishedLoading&&e.contentFinishedLoading(...r)),ref:"renderWindow",id:"renderWindow",srcdoc:e.srcdoc,sandbox:"allow-popups allow-popups-to-escape-sandbox allow-same-origin",csp:"script-src 'none'"},null,40,lt)):(u(),p("div",{key:1,innerHTML:e.file.text.replaceAll(`
2
2
  `,"<br>")},null,8,nt))])]),_:1}),e.attachments.length>0?(u(),H(ee,{key:0,vertical:""},{default:o(()=>[s(je),t[4]||(t[4]=d("h6",{class:"q-my-md"},"Attachments",-1)),d("div",ot,[(u(!0),p(X,null,Re(e.file.attachments,r=>(u(),p("div",{class:"col-md-4 col-sm-12",key:r.filename},[s(K,null,{default:o(()=>[s($,{class:"q-pa-sm flex",style:{"align-items":"center"}},{default:o(()=>[s(Z,{name:"description",size:"md",color:"blue",class:"q-mr-sm"}),b(" "+v(r.filename)+" ",1),s(P,{color:"white","text-color":"black",icon:"download",class:"q-mr-0 q-ml-auto",onClick:c=>e.downloadAtt(r)},null,8,["onClick"])]),_:2},1024)]),_:2},1024)]))),128))])]),_:1})):Y("",!0)]),_:1})])):(u(),p("div",it,[s(Ve,{color:"primary",size:"3em"})]))}var ct=xe(Je,[["render",rt],["__scopeId","data-v-59368c26"]]);export{ct as default};
@@ -1 +1 @@
1
- import{_ as o,c as s,o as r,ac as n,y as t,f as a,E as l}from"./index.69bcbd86.js";const c=s({name:"ErrorNotFound"}),d={class:"fullscreen bg-blue text-white text-center q-pa-md flex flex-center"};function i(p,e,f,u,x,m){return r(),n("div",d,[t("div",null,[e[0]||(e[0]=t("div",{style:{"font-size":"30vh"}}," 404 ",-1)),e[1]||(e[1]=t("div",{class:"text-h2",style:{opacity:".4"}}," Oops. Nothing here... ",-1)),a(l,{class:"q-mt-xl",color:"white","text-color":"blue",unelevated:"",to:"/",label:"Go Home","no-caps":""})])])}var _=o(c,[["render",i]]);export{_ as default};
1
+ import{_ as o,c as s,o as r,ac as n,y as t,f as a,E as l}from"./index.81c5f354.js";const c=s({name:"ErrorNotFound"}),d={class:"fullscreen bg-blue text-white text-center q-pa-md flex flex-center"};function i(p,e,f,u,x,m){return r(),n("div",d,[t("div",null,[e[0]||(e[0]=t("div",{style:{"font-size":"30vh"}}," 404 ",-1)),e[1]||(e[1]=t("div",{class:"text-h2",style:{opacity:".4"}}," Oops. Nothing here... ",-1)),a(l,{class:"q-mt-xl",color:"white","text-color":"blue",unelevated:"",to:"/",label:"Go Home","no-caps":""})])])}var _=o(c,[["render",i]]);export{_ as default};
@@ -1 +1 @@
1
- import{h,i as w,j as y,k as u,l as r,m,n as k,p as q,q as C,s as S,t as V,_ as x,c as Q,o as p,e as v,w as t,v as B,f as o,x as f,y as g,z as E,A as I,B as _,C as $,D as b,E as A,F as D}from"./index.69bcbd86.js";import{u as P}from"./auth-store.f621e290.js";var N=h({name:"QBanner",props:{...w,inlineActions:Boolean,dense:Boolean,rounded:Boolean},setup(e,{slots:a}){const{proxy:{$q:s}}=k(),d=y(e,s),l=u(()=>"q-banner row items-center"+(e.dense===!0?" q-banner--dense":"")+(d.value===!0?" q-banner--dark q-dark":"")+(e.rounded===!0?" rounded-borders":"")),i=u(()=>`q-banner__actions row items-center justify-end col-${e.inlineActions===!0?"auto":"all"}`);return()=>{const n=[r("div",{class:"q-banner__avatar col-auto row items-center self-start"},m(a.avatar)),r("div",{class:"q-banner__content col text-body2"},m(a.default))],c=m(a.action);return c!==void 0&&n.push(r("div",{class:i.value},c)),r("div",{class:l.value+(e.inlineActions===!1&&c!==void 0?" q-banner--top-padding":""),role:"alert"},n)}}}),U=h({name:"QToggle",props:{...q,icon:String,iconColor:String},emits:C,setup(e){function a(s,d){const l=u(()=>(s.value===!0?e.checkedIcon:d.value===!0?e.indeterminateIcon:e.uncheckedIcon)||e.icon),i=u(()=>s.value===!0?e.iconColor:null);return()=>[r("div",{class:"q-toggle__track"}),r("div",{class:"q-toggle__thumb absolute flex flex-center no-wrap"},l.value!==void 0?[r(V,{name:l.value,color:i.value})]:void 0)]}return S("toggle",a)}});const z=P(),j=Q({name:"login-page",components:{},data(){return{loading:!1,showError:"",form:{username:"",password:"",remind:!0}}},methods:{async onSubmit(){this.loading=!0;try{await z.LogIn(this.$router,this.form),this.showError=""}catch(e){throw this.showError=e.message,e}finally{this.loading=!1}}}});function F(e,a,s,d,l,i){return p(),v(B,{class:"flex flex-center"},{default:t(()=>[o(D,{class:"q-pa-md shadow-2",bordered:""},{default:t(()=>[o(f,{class:"text-center"},{default:t(()=>a[3]||(a[3]=[g("div",{class:"text-grey-9 text-h5 text-weight-bold"},"Sign in",-1),g("div",{class:"text-grey-8"},"Enter your email address and password to access admin panel.",-1)])),_:1}),e.showError?(p(),v(f,{key:0},{default:t(()=>[o(N,{"inline-actions":"",class:"text-white bg-red"},{default:t(()=>[E(I(e.showError),1)]),_:1})]),_:1})):_("",!0),o(f,null,{default:t(()=>[o($,{onSubmit:e.onSubmit,class:"q-gutter-sm"},{default:t(()=>[o(b,{filled:"",modelValue:e.form.username,"onUpdate:modelValue":a[0]||(a[0]=n=>e.form.username=n),label:"Username","lazy-rules":"",type:"text"},null,8,["modelValue"]),o(b,{filled:"",modelValue:e.form.password,"onUpdate:modelValue":a[1]||(a[1]=n=>e.form.password=n),label:"Password","lazy-rules":"",type:"password"},null,8,["modelValue"]),o(U,{modelValue:e.form.remind,"onUpdate:modelValue":a[2]||(a[2]=n=>e.form.remind=n),label:"Remember me"},null,8,["modelValue"]),g("div",null,[o(A,{loading:e.loading,label:"Sign in",type:"submit",color:"primary"},null,8,["loading"])])]),_:1},8,["onSubmit"])]),_:1})]),_:1})]),_:1})}var R=x(j,[["render",F]]);export{R as default};
1
+ import{h,i as w,j as y,k as u,l as r,m,n as k,p as q,q as C,s as S,t as V,_ as x,c as Q,o as p,e as v,w as t,v as B,f as o,x as f,y as g,z as E,A as I,B as _,C as $,D as b,E as A,F as D}from"./index.81c5f354.js";import{u as P}from"./auth-store.adb4e0f1.js";var N=h({name:"QBanner",props:{...w,inlineActions:Boolean,dense:Boolean,rounded:Boolean},setup(e,{slots:a}){const{proxy:{$q:s}}=k(),d=y(e,s),l=u(()=>"q-banner row items-center"+(e.dense===!0?" q-banner--dense":"")+(d.value===!0?" q-banner--dark q-dark":"")+(e.rounded===!0?" rounded-borders":"")),i=u(()=>`q-banner__actions row items-center justify-end col-${e.inlineActions===!0?"auto":"all"}`);return()=>{const n=[r("div",{class:"q-banner__avatar col-auto row items-center self-start"},m(a.avatar)),r("div",{class:"q-banner__content col text-body2"},m(a.default))],c=m(a.action);return c!==void 0&&n.push(r("div",{class:i.value},c)),r("div",{class:l.value+(e.inlineActions===!1&&c!==void 0?" q-banner--top-padding":""),role:"alert"},n)}}}),U=h({name:"QToggle",props:{...q,icon:String,iconColor:String},emits:C,setup(e){function a(s,d){const l=u(()=>(s.value===!0?e.checkedIcon:d.value===!0?e.indeterminateIcon:e.uncheckedIcon)||e.icon),i=u(()=>s.value===!0?e.iconColor:null);return()=>[r("div",{class:"q-toggle__track"}),r("div",{class:"q-toggle__thumb absolute flex flex-center no-wrap"},l.value!==void 0?[r(V,{name:l.value,color:i.value})]:void 0)]}return S("toggle",a)}});const z=P(),j=Q({name:"login-page",components:{},data(){return{loading:!1,showError:"",form:{username:"",password:"",remind:!0}}},methods:{async onSubmit(){this.loading=!0;try{await z.LogIn(this.$router,this.form),this.showError=""}catch(e){throw this.showError=e.message,e}finally{this.loading=!1}}}});function F(e,a,s,d,l,i){return p(),v(B,{class:"flex flex-center"},{default:t(()=>[o(D,{class:"q-pa-md shadow-2",bordered:""},{default:t(()=>[o(f,{class:"text-center"},{default:t(()=>a[3]||(a[3]=[g("div",{class:"text-grey-9 text-h5 text-weight-bold"},"Sign in",-1),g("div",{class:"text-grey-8"},"Enter your email address and password to access admin panel.",-1)])),_:1}),e.showError?(p(),v(f,{key:0},{default:t(()=>[o(N,{"inline-actions":"",class:"text-white bg-red"},{default:t(()=>[E(I(e.showError),1)]),_:1})]),_:1})):_("",!0),o(f,null,{default:t(()=>[o($,{onSubmit:e.onSubmit,class:"q-gutter-sm"},{default:t(()=>[o(b,{filled:"",modelValue:e.form.username,"onUpdate:modelValue":a[0]||(a[0]=n=>e.form.username=n),label:"Username","lazy-rules":"",type:"text"},null,8,["modelValue"]),o(b,{filled:"",modelValue:e.form.password,"onUpdate:modelValue":a[1]||(a[1]=n=>e.form.password=n),label:"Password","lazy-rules":"",type:"password"},null,8,["modelValue"]),o(U,{modelValue:e.form.remind,"onUpdate:modelValue":a[2]||(a[2]=n=>e.form.remind=n),label:"Remember me"},null,8,["modelValue"]),g("div",null,[o(A,{loading:e.loading,label:"Sign in",type:"submit",color:"primary"},null,8,["loading"])])]),_:1},8,["onSubmit"])]),_:1})]),_:1})]),_:1})}var R=x(j,[["render",F]]);export{R as default};
@@ -1 +1 @@
1
- import{d as l,u as i,a as r}from"./index.69bcbd86.js";const a="r2_explorer_session_token",c=l("auth",{state:()=>({}),getters:{isAuthenticated:e=>!!e.user,StateUser:e=>e.user},actions:{async LogIn(e,s){const o=i(),t=btoa(`${s.username}:${s.password}`);r.defaults.headers.common.Authorization=`Basic ${t}`;try{await o.loadServerConfigs(e,this.q)}catch(n){throw console.log(n),delete r.defaults.headers.common.Authorization,new Error("Invalid username or password")}r.defaults.headers.common.Authorization=`Basic ${t}`,s.remind===!0?localStorage.setItem(a,t):sessionStorage.setItem(a,t)},async CheckLoginInStorage(e,s){let o=sessionStorage.getItem(a),t=!1;if(o||(o=localStorage.getItem(a)),!o)return!1;const n=i();return r.defaults.headers.common.Authorization=`Basic ${o}`,t=await n.loadServerConfigs(e,s,!0),t||delete r.defaults.headers.common.Authorization,!1},async LogOut(e){localStorage.removeItem(a),sessionStorage.removeItem(a),await e.replace({name:"login"})}}});export{c as u};
1
+ import{d as l,u as i,a as r}from"./index.81c5f354.js";const a="r2_explorer_session_token",c=l("auth",{state:()=>({}),getters:{isAuthenticated:e=>!!e.user,StateUser:e=>e.user},actions:{async LogIn(e,s){const o=i(),t=btoa(`${s.username}:${s.password}`);r.defaults.headers.common.Authorization=`Basic ${t}`;try{await o.loadServerConfigs(e,this.q)}catch(n){throw console.log(n),delete r.defaults.headers.common.Authorization,new Error("Invalid username or password")}r.defaults.headers.common.Authorization=`Basic ${t}`,s.remind===!0?localStorage.setItem(a,t):sessionStorage.setItem(a,t)},async CheckLoginInStorage(e,s){let o=sessionStorage.getItem(a),t=!1;if(o||(o=localStorage.getItem(a)),!o)return!1;const n=i();return r.defaults.headers.common.Authorization=`Basic ${o}`,t=await n.loadServerConfigs(e,s,!0),t||delete r.defaults.headers.common.Authorization,!1},async LogOut(e){localStorage.removeItem(a),sessionStorage.removeItem(a),await e.replace({name:"login"})}}});export{c as u};
@@ -1 +1 @@
1
- import{b as e,u as r}from"./index.69bcbd86.js";import{u as s}from"./auth-store.f621e290.js";var c=e(async({app:o,router:t,store:a})=>{await s(a).CheckLoginInStorage(t,o.config.globalProperties.$q)===!1&&await r(a).loadServerConfigs(t,o.config.globalProperties.$q,!0)});export{c as default};
1
+ import{b as e,u as r}from"./index.81c5f354.js";import{u as s}from"./auth-store.adb4e0f1.js";var c=e(async({app:o,router:t,store:a})=>{await s(a).CheckLoginInStorage(t,o.config.globalProperties.$q)===!1&&await r(a).loadServerConfigs(t,o.config.globalProperties.$q,!0)});export{c as default};
@@ -1 +1 @@
1
- import{b as c}from"./index.69bcbd86.js";class n{constructor(){this.__stack={}}on(t,s,i){return(this.__stack[t]||(this.__stack[t]=[])).push({fn:s,ctx:i}),this}once(t,s,i){const o=(...e)=>{this.off(t,o),s.apply(i,e)};return o.__callback=s,this.on(t,o,i)}emit(t){const s=this.__stack[t];if(s!==void 0){const i=[].slice.call(arguments,1);s.forEach(o=>{o.fn.apply(o.ctx,i)})}return this}off(t,s){const i=this.__stack[t];if(i===void 0)return this;if(s===void 0)return delete this.__stack[t],this;const o=i.filter(e=>e.fn!==s&&e.fn.__callback!==s);return o.length!==0?this.__stack[t]=o:delete this.__stack[t],this}}var h=c(({app:r})=>{const t=new n;r.config.globalProperties.$bus=t,r.provide("bus",t)});export{h as default};
1
+ import{b as c}from"./index.81c5f354.js";class n{constructor(){this.__stack={}}on(t,s,i){return(this.__stack[t]||(this.__stack[t]=[])).push({fn:s,ctx:i}),this}once(t,s,i){const o=(...e)=>{this.off(t,o),s.apply(i,e)};return o.__callback=s,this.on(t,o,i)}emit(t){const s=this.__stack[t];if(s!==void 0){const i=[].slice.call(arguments,1);s.forEach(o=>{o.fn.apply(o.ctx,i)})}return this}off(t,s){const i=this.__stack[t];if(i===void 0)return this;if(s===void 0)return delete this.__stack[t],this;const o=i.filter(e=>e.fn!==s&&e.fn.__callback!==s);return o.length!==0?this.__stack[t]=o:delete this.__stack[t],this}}var h=c(({app:r})=>{const t=new n;r.config.globalProperties.$bus=t,r.provide("bus",t)});export{h as default};
@@ -98,7 +98,7 @@ ${b}
98
98
  `).forEach(y=>{m+=`${y.substring(1)}
99
99
  `}),d+m+b},fixCodeBlocks=replaceRegex(codeBlockFixRegex,codeBlockFixer),replaceMarkdown=u=>replaceParagraphs(replaceOrderedLists(replaceUnorderedLists(replaceHorizontalRules(replaceBlockquotes(replaceceStrikethrough(replaceBoldItalics(replaceHeadings(replaceLinks(replaceImages(replaceInlineCodes(replaceCodeBlocks(u)))))))))))),parseMarkdown=u=>fixCodeBlocks(replaceMarkdown(`
100
100
  ${u}
101
- `)).trim();var FilePreview_vue_vue_type_style_index_0_lang="";const _sfc_main$3={components:{LogGz,PdfViewer,EmailViewer},data:()=>({open:!1,editMode:!1,downloadProgress:0,abortControl:void 0,type:void 0,file:void 0,filename:void 0,fileData:void 0,fileDataEdited:void 0,previewConfig:[{extensions:["png","jpg","jpeg","webp","avif"],type:"image",downloadType:"objectUrl"},{extensions:["mp3"],type:"audio",downloadType:"objectUrl"},{extensions:["mp4","ogg"],type:"video",downloadType:"objectUrl"},{extensions:["pdf"],type:"pdf",downloadType:"objectUrl"},{extensions:["txt"],type:"text",downloadType:"text"},{extensions:["md"],type:"markdown",downloadType:"text"},{extensions:["csv"],type:"csv",downloadType:"text"},{extensions:["json"],type:"json",downloadType:"text"},{extensions:["html"],type:"html",downloadType:"text"},{extensions:["log.gz"],type:"logs",downloadType:"blob"},{extensions:["eml"],type:"email",downloadType:"text"}]}),methods:{getType(u){for(const d of this.previewConfig)for(const g of d.extensions)if(u.endsWith(g))return{type:d.type,downloadType:d.downloadType};return{type:"unknown",downloadType:"text"}},async openFile(u){if(bytesToMegabytes(u.size)>200){this.q.notify({message:"File is too big to preview.",color:"orange"});return}const d=this.getType(u.name);if(this.abortControl=new AbortController,await this.$router.push({name:"files-file",params:{bucket:this.$route.params.bucket,folder:this.$route.params.folder||ROOT_FOLDER,file:u.nameHash}}),this.filename=u.name,this.file=u,this.open=!0,d){this.type=d.type;const g=await apiHandler.downloadFile(this.$route.params.bucket,u.key,d,b=>{this.downloadProgress=b.loaded/b.total},this.abortControl);let f;if(d.downloadType==="objectUrl"){const b=new Blob([g.data]);f=URL.createObjectURL(b)}else d.downloadType,f=g.data;this.fileData=f}},close(){this.abortControl&&this.abortControl.abort(),this.cancelEdit(),this.$route.params.file&&(this.$route.params.folder===ROOT_FOLDER?this.$router.push({name:"files-home",params:{bucket:this.$route.params.bucket}}):this.$router.push({name:"files-folder",params:{bucket:this.$route.params.bucket,folder:this.$route.params.folder}})),this.type=void 0,this.fileData=void 0,this.filename=void 0,this.abortControl=void 0,this.downloadProgress=0},markdownParser(u){return parseMarkdown(u)},csvParser:u=>{let d="";const g=u.split(`
101
+ `)).trim();var FilePreview_vue_vue_type_style_index_0_lang="";const _sfc_main$3={components:{LogGz,PdfViewer,EmailViewer},data:()=>({open:!1,editMode:!1,downloadProgress:0,abortControl:void 0,type:void 0,file:void 0,filename:void 0,fileData:void 0,fileDataEdited:void 0,previewConfig:[{extensions:["png","jpg","jpeg","webp","avif"],type:"image",downloadType:"objectUrl"},{extensions:["mp3"],type:"audio",downloadType:"objectUrl"},{extensions:["mp4","ogg"],type:"video",downloadType:"objectUrl"},{extensions:["pdf"],type:"pdf",downloadType:"objectUrl"},{extensions:["txt"],type:"text",downloadType:"text"},{extensions:["md"],type:"markdown",downloadType:"text"},{extensions:["csv"],type:"csv",downloadType:"text"},{extensions:["json"],type:"json",downloadType:"text"},{extensions:["html"],type:"html",downloadType:"text"},{extensions:["log.gz"],type:"logs",downloadType:"blob"},{extensions:["eml"],type:"email",downloadType:"text"}]}),methods:{getType(u){for(const d of this.previewConfig)for(const g of d.extensions)if(u.toLowerCase().endsWith(g))return{type:d.type,downloadType:d.downloadType};return{type:"unknown",downloadType:"text"}},async openFile(u){if(bytesToMegabytes(u.size)>200){this.q.notify({message:"File is too big to preview.",color:"orange"});return}const d=this.getType(u.name);if(this.abortControl=new AbortController,await this.$router.push({name:"files-file",params:{bucket:this.$route.params.bucket,folder:this.$route.params.folder||ROOT_FOLDER,file:u.nameHash}}),this.filename=u.name,this.file=u,this.open=!0,d){this.type=d.type;const g=await apiHandler.downloadFile(this.$route.params.bucket,u.key,d,b=>{this.downloadProgress=b.loaded/b.total},this.abortControl);let f;if(d.downloadType==="objectUrl"){const b=new Blob([g.data]);f=URL.createObjectURL(b)}else d.downloadType,f=g.data;this.fileData=f}},close(){this.abortControl&&this.abortControl.abort(),this.cancelEdit(),this.$route.params.file&&(this.$route.params.folder===ROOT_FOLDER?this.$router.push({name:"files-home",params:{bucket:this.$route.params.bucket}}):this.$router.push({name:"files-folder",params:{bucket:this.$route.params.bucket,folder:this.$route.params.folder}})),this.type=void 0,this.fileData=void 0,this.filename=void 0,this.abortControl=void 0,this.downloadProgress=0},markdownParser(u){return parseMarkdown(u)},csvParser:u=>{let d="";const g=u.split(`
102
102
  `);if(g.length===0)return"<h2>Empty csv</h2>";for(const[f,b]of g.entries()){let m="";const y=b.split(/(\s*"[^"]+"\s*|\s*[^,]+|,)(?=,|$)/g).filter(k=>k!==""&&k!==",");for(const k of y)f===0?m+=`<th>${k.replaceAll('"',"")}</th>`:m+=`<td>${k.replaceAll('"',"")}</td>`;d+=`<tr>${m}</tr>`}return`<table class="table">${d}</table>`},enableEdit:function(){typeof this.fileData=="object"?this.fileDataEdited=JSON.stringify(this.fileData,null,2):this.fileDataEdited=this.fileData,this.editMode=!0},cancelEdit:function(){this.editMode=!1,this.fileDataEdited=void 0},validateEdit:(u,d)=>{if(u==="json")try{return JSON.parse(d),!0}catch{return!1}return!0},saveEdit:async function(){var b,m;if(!this.validateEdit(this.type,this.fileDataEdited)){this.q.notify({type:"negative",message:`Content is not valid ${this.type}.`});return}const d=this.q.notify({group:!1,spinner:!0,message:"Updating file...",caption:"0%",timeout:0}),g={};(b=this.file.httpMetadata)!=null&&b.contentType&&(g.type=(m=this.file.httpMetadata)==null?void 0:m.contentType);const f=new Blob([this.fileDataEdited],g);await apiHandler.uploadObjects(f,this.file.key,this.selectedBucket,y=>{d({caption:`${Number.parseInt(y.loaded*100/f.size)}%`})}),d({icon:"done",spinner:!1,caption:"100%",message:"File updated!",timeout:5e3}),this.cancelEdit(),this.openFile(this.file)}},computed:{selectedBucket:function(){return this.$route.params.bucket}},setup(){return{q:useQuasar()}}},_hoisted_1$1={class:"text-center q-my-lg"},_hoisted_2$1={class:"text-center q-my-lg"},_hoisted_3$1={key:0,class:"flex column",style:{height:"100%"}},_hoisted_4$1={class:"file-edit"},_hoisted_5$1=["src"],_hoisted_6$1={key:3,class:"text-center"},_hoisted_7$1={controls:""},_hoisted_8=["src"],_hoisted_9={key:4,class:"text-center"},_hoisted_10={controls:"",style:{"max-width":"100%",height:"auto"}},_hoisted_11=["src"],_hoisted_12=["innerHTML"],_hoisted_13=["innerHTML"],_hoisted_14=["innerHTML"],_hoisted_15=["innerHTML"],_hoisted_16=["innerHTML"],_hoisted_17={key:12,class:"flex column",style:{height:"100%","flex-wrap":"nowrap","max-width":"100%","line-break":"anywhere"}},_hoisted_18={class:"file-edit"},_hoisted_19=["innerHTML"];function _sfc_render$3(u,d,g,f,b,m){const y=resolveComponent("pdf-viewer"),k=resolveComponent("log-gz"),a=resolveComponent("email-viewer");return openBlock(),createBlock(QDialog,{modelValue:u.open,"onUpdate:modelValue":d[1]||(d[1]=q=>u.open=q),"full-width":"","full-height":"",onHide:m.close},{default:withCtx(()=>[createVNode(QCard,{class:"flex column"},{default:withCtx(()=>[createVNode(QCardSection,{class:"row items-center q-p-sm bg-grey-3",style:{"font-size":"20px"}},{default:withCtx(()=>[createBaseVNode("div",null,toDisplayString(u.filename),1),u.editMode?(openBlock(),createElementBlock(Fragment,{key:0},[createVNode(QBtn,{icon:"delete",label:"Cancel",size:"md",class:"q-ml-md",color:"red",dense:"",onClick:m.cancelEdit},null,8,["onClick"]),createVNode(QBtn,{icon:"save",label:"Save",size:"md",class:"q-ml-md",color:"green",dense:"",onClick:m.saveEdit},null,8,["onClick"])],64)):(openBlock(),createBlock(QBtn,{key:1,icon:"edit",label:"edit",size:"md",class:"q-ml-md",color:"orange",dense:"",onClick:m.enableEdit},null,8,["onClick"])),createVNode(QSpace),withDirectives(createVNode(QBtn,{icon:"close",size:"md",round:"",dense:""},null,512),[[ClosePopup]])]),_:1}),createVNode(QCardSection,{class:"scroll",style:{flex:"1"}},{default:withCtx(()=>[u.fileData===void 0&&u.type?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode("div",_hoisted_1$1,[createVNode(QSpinner,{color:"primary",size:"3em"})]),createBaseVNode("div",_hoisted_2$1,[createVNode(QLinearProgress,{stripe:"",size:"10px",value:u.downloadProgress},null,8,["value"])])],64)):(openBlock(),createElementBlock(Fragment,{key:1},[u.editMode?(openBlock(),createElementBlock("div",_hoisted_3$1,[createVNode(QCard,{class:"bg-orange-2",flat:"",square:""},{default:withCtx(()=>[createVNode(QCardSection,null,{default:withCtx(()=>d[2]||(d[2]=[createTextVNode(" File editing is still in tests! ")])),_:1})]),_:1}),createBaseVNode("div",_hoisted_4$1,[createVNode(QInput,{modelValue:u.fileDataEdited,"onUpdate:modelValue":d[0]||(d[0]=q=>u.fileDataEdited=q),filled:"",outlined:"",type:"textarea"},null,8,["modelValue"])])])):u.type==="pdf"?(openBlock(),createBlock(y,{key:1,pdfUrl:u.fileData},null,8,["pdfUrl"])):u.type==="image"?(openBlock(),createElementBlock("img",{key:2,src:u.fileData,class:"preview-image"},null,8,_hoisted_5$1)):u.type==="audio"?(openBlock(),createElementBlock("div",_hoisted_6$1,[createBaseVNode("audio",_hoisted_7$1,[createBaseVNode("source",{src:u.fileData},null,8,_hoisted_8),d[3]||(d[3]=createTextVNode(" Your browser does not support the audio element. "))])])):u.type==="video"?(openBlock(),createElementBlock("div",_hoisted_9,[createBaseVNode("video",_hoisted_10,[createBaseVNode("source",{src:u.fileData},null,8,_hoisted_11),d[4]||(d[4]=createTextVNode(" Your browser does not support the video tag. "))])])):u.type==="text"?(openBlock(),createElementBlock("div",{key:5,innerHTML:u.fileData.replaceAll(`
103
103
  `,"<br>")},null,8,_hoisted_12)):u.type==="json"?(openBlock(),createElementBlock("pre",{key:6,innerHTML:JSON.stringify(u.fileData,null,2)},null,8,_hoisted_13)):u.type==="html"?(openBlock(),createElementBlock("pre",{key:7,innerHTML:u.fileData},null,8,_hoisted_14)):u.type==="markdown"?(openBlock(),createElementBlock("div",{key:8,class:"markdown",innerHTML:m.markdownParser(u.fileData)},null,8,_hoisted_15)):u.type==="csv"?(openBlock(),createElementBlock("div",{key:9,class:"markdown",innerHTML:m.csvParser(u.fileData)},null,8,_hoisted_16)):u.type==="logs"?(openBlock(),createBlock(k,{key:10,filedata:u.fileData},null,8,["filedata"])):u.type==="email"?(openBlock(),createBlock(a,{key:11,filedata:u.fileData},null,8,["filedata"])):u.fileData?(openBlock(),createElementBlock("div",_hoisted_17,[createVNode(QCard,{class:"bg-orange-2",flat:"",square:""},{default:withCtx(()=>[createVNode(QCardSection,null,{default:withCtx(()=>d[5]||(d[5]=[createTextVNode(" This in a unknown file type, opening as text. ")])),_:1})]),_:1}),createBaseVNode("div",_hoisted_18,[createBaseVNode("div",{innerHTML:u.fileData.replaceAll(`
104
- `,"<br>")},null,8,_hoisted_19)])])):createCommentVNode("",!0)],64))]),_:1})]),_:1})]),_:1},8,["modelValue","onHide"])}var FilePreview=_export_sfc(_sfc_main$3,[["render",_sfc_render$3]]),DragAndDrop_vue_vue_type_style_index_0_scoped_true_lang="";const _sfc_main$2={data:()=>({isHover:!1,filelist:[],dragContainer:{top:0,bottom:0,left:0,right:0}}),computed:{selectedBucket:function(){return this.$route.params.bucket},selectedFolder:function(){return this.$route.params.folder&&this.$route.params.folder!==ROOT_FOLDER?decode(this.$route.params.folder):""}},methods:{openFilesUploader(){this.$refs.filesUploader.click()},openFoldersUploader(){this.$refs.foldersUploader.click()},dragover(u){if(this.mainStore.apiReadonly||this.isHover===!0)return;const d=this.$refs.dragContainer.getBoundingClientRect();this.dragContainer={top:d.top,bottom:d.bottom,left:d.left,right:d.right},this.isHover=!0},dragleave(u){this.isHover!==!1&&(u.clientX<this.dragContainer.left||u.clientX>this.dragContainer.right||u.clientY>this.dragContainer.bottom||u.clientY<this.dragContainer.top)&&(this.isHover=!1)},inputFiles(u){this.uploadFiles({"":u.target.files})},inputFolders(u){const d={};for(const g of u.target.files){const f=g.webkitRelativePath.lastIndexOf("/"),b=g.webkitRelativePath.slice(0,f);d[b]===void 0&&(d[b]=[]),d[b].push(g)}this.uploadFiles(d)},async uploadFiles(u){let d=0,g=0;const f=[];for(const[k,a]of Object.entries(u)){if(k!==""){const q=`${this.selectedFolder+k}/`;await apiHandler.createFolder(q,this.selectedBucket)}d+=a.length;for(const q of a)f.push(q.name),g+=q.size}this.$bus.emit("fetchFiles");const b=this.q.notify({group:!1,spinner:!0,message:`Uploading files 1/${f.length}...`,caption:"0%",timeout:0});let m=0,y=0;for(const[k,a]of Object.entries(u)){b({message:`Uploading files ${m+1}/${f.length}...`,caption:`${Number.parseInt((m+1)*100/f.length)}%`});let q=this.selectedFolder+k;q.length>0&&q.slice(-1)!=="/"&&(q+="/"),(q==="/"||q===ROOT_FOLDER)&&(q="");for(const w of a){m+=1;const $=q+w.name,Q=95*1024*1024;if(w.size>Q){const{uploadId:C}=(await apiHandler.multipartCreate(w,$,this.selectedBucket)).data;let v=1;const J=[];for(let ae=0;ae<w.size;ae+=Q){const H=Math.min(ae+Q,w.size),Y=w.slice(ae,H),{data:G}=await apiHandler.multipartUpload(C,v,this.selectedBucket,$,Y,j=>{b({caption:`${Number.parseInt((y+ae+j.loaded)*100/g)}%`})});J.push(G),v+=1}await apiHandler.multipartComplete(w,$,this.selectedBucket,J,C)}else await apiHandler.uploadObjects(w,$,this.selectedBucket,C=>{b({caption:`${Number.parseInt((y+C.loaded)*100/g)}%`})});y+=w.size}}b({icon:"done",spinner:!1,caption:"100%",message:"Files Uploaded!",timeout:5e3}),this.$bus.emit("fetchFiles")},async traverseFileTree(u,d,g,f){if(d=d||"",u.isFile&&f>0)await new Promise((m,y)=>{u.file(k=>{g[d].push(k),m()})});else if(u.isDirectory){const b=d?`${d}/${u.name}`:u.name;g[b]===void 0&&(g[b]=[]);const m=u.createReader();await new Promise((k,a)=>{m.readEntries(async q=>{for(let w=0;w<q.length;w++)await this.traverseFileTree(q[w],b,g,f+1);k()})})}},async drop(u){if(!this.isHover)return;const d=u.dataTransfer.files,g=await u.dataTransfer.items,f={};for(const m of g){const y=m.webkitGetAsEntry();y&&await this.traverseFileTree(y,"",f,0)}const b=[];for(const m of d)f[m.name]===void 0&&b.push(m);f[""]=b,this.uploadFiles(f),this.isHover=!1}},mounted(){this.$bus.on("openFilesUploader",this.openFilesUploader),this.$bus.on("openFoldersUploader",this.openFoldersUploader)},beforeUnmount(){this.$bus.off("openFilesUploader"),this.$bus.off("openFoldersUploader")},setup(){return{mainStore:useMainStore(),q:useQuasar()}}};function _sfc_render$2(u,d,g,f,b,m){return openBlock(),createElementBlock(Fragment,null,[createBaseVNode("div",{ref:"dragContainer",class:normalizeClass(["upload-box",{active:u.isHover}]),onDragover:d[0]||(d[0]=withModifiers((...y)=>m.dragover&&m.dragover(...y),["prevent"])),onDragleave:d[1]||(d[1]=withModifiers((...y)=>m.dragleave&&m.dragleave(...y),["prevent"])),onDrop:d[2]||(d[2]=withModifiers((...y)=>m.drop&&m.drop(...y),["prevent"]))},[renderSlot(u.$slots,"default",{},void 0,!0),d[5]||(d[5]=createBaseVNode("div",{class:"drop-files"},[createBaseVNode("div",{class:"box"},[createBaseVNode("h3",null,"Drop files to upload"),createBaseVNode("span",{class:"font-28"},[createBaseVNode("i",{class:"bi bi-cloud-upload-fill"})])])],-1))],34),createBaseVNode("input",{style:{display:"none"},onChange:d[3]||(d[3]=(...y)=>m.inputFiles&&m.inputFiles(...y)),type:"file",name:"files[]",ref:"filesUploader",multiple:""},null,544),createBaseVNode("input",{style:{display:"none"},onChange:d[4]||(d[4]=(...y)=>m.inputFolders&&m.inputFolders(...y)),type:"file",webkitdirectory:"",name:"files[]",ref:"foldersUploader",multiple:""},null,544)],64)}var DragAndDrop=_export_sfc(_sfc_main$2,[["render",_sfc_render$2],["__scopeId","data-v-8e99a572"]]);const _sfc_main$1={name:"FileContextMenu",props:{prop:{}},computed:{selectedBucket:function(){return this.$route.params.bucket},selectedFolder:function(){return this.$route.params.folder&&this.$route.params.folder!==ROOT_FOLDER?decode(this.$route.params.folder):""}},methods:{renameObject:function(){this.$emit("renameObject",this.prop.row)},updateMetadataObject:function(){this.$emit("updateMetadataObject",this.prop.row)},openObject:function(){this.$emit("openObject",this.prop.row)},deleteObject:function(){this.$emit("deleteObject",this.prop.row)},shareObject:async function(){let u;this.prop.row.type==="folder"?u=window.location.origin+this.$router.resolve({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(this.prop.row.key)}}).href:u=window.location.origin+this.$router.resolve({name:"files-file",params:{bucket:this.selectedBucket,folder:this.selectedFolder?encode(this.selectedFolder):ROOT_FOLDER,file:this.prop.row.nameHash}}).href;try{await navigator.clipboard.writeText(u),this.q.notify({message:"Link to file copied to clipboard!",timeout:5e3,type:"positive"})}catch(d){this.q.notify({message:`Failed to copy: ${d}`,timeout:5e3,type:"negative"})}},downloadObject:function(){const u=document.createElement("a");u.download=this.prop.row.name,u.href=`${this.mainStore.serverUrl}/api/buckets/${this.selectedBucket}/${encode(this.prop.row.key)}`,document.body.appendChild(u),u.click(),document.body.removeChild(u)}},setup(){return{mainStore:useMainStore(),q:useQuasar()}}};function _sfc_render$1(u,d,g,f,b,m){return openBlock(),createBlock(QList,{style:{"min-width":"100px"}},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(QItem,{clickable:"",onClick:m.openObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[0]||(d[0]=[createTextVNode("Open")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]),g.prop.row.type==="file"?withDirectives((openBlock(),createBlock(QItem,{key:0,clickable:"",onClick:m.downloadObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[1]||(d[1]=[createTextVNode("Download")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]):createCommentVNode("",!0),g.prop.row.type==="file"?withDirectives((openBlock(),createBlock(QItem,{key:1,clickable:"",onClick:m.renameObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[2]||(d[2]=[createTextVNode("Rename")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]):createCommentVNode("",!0),g.prop.row.type==="file"?withDirectives((openBlock(),createBlock(QItem,{key:2,clickable:"",onClick:m.updateMetadataObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[3]||(d[3]=[createTextVNode("Update Metadata")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]):createCommentVNode("",!0),withDirectives((openBlock(),createBlock(QItem,{clickable:"",onClick:m.shareObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[4]||(d[4]=[createTextVNode("Get sharable link")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]),withDirectives((openBlock(),createBlock(QItem,{clickable:"",onClick:m.deleteObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[5]||(d[5]=[createTextVNode("Delete")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]])]),_:1})}var FileContextMenu=_export_sfc(_sfc_main$1,[["render",_sfc_render$1]]),FilesFolderPage_vue_vue_type_style_index_0_lang="";const _sfc_main=defineComponent({name:"FilesIndexPage",components:{FileContextMenu,FileOptions,DragAndDrop,FilePreview},data:()=>({loading:!1,rows:[],columns:[{name:"name",required:!0,label:"Name",align:"left",field:"name",sortable:!0,sort:(u,d,g,f)=>g.type==="folder"?f.type==="folder"?u.localeCompare(d):1:f.type==="folder"?-1:u.localeCompare(d)},{name:"lastModified",required:!0,label:"Last Modified",align:"left",field:"lastModified",sortable:!0,sort:(u,d,g,f)=>g.timestamp-f.timestamp},{name:"size",required:!0,label:"Size",align:"left",field:"size",sortable:!0,sort:(u,d,g,f)=>g.sizeRaw-f.sizeRaw},{name:"options",label:"",sortable:!1}]}),computed:{selectedBucket:function(){return this.$route.params.bucket},selectedFolder:function(){return this.$route.params.folder&&this.$route.params.folder!==ROOT_FOLDER?decode(this.$route.params.folder):""},breadcrumbs:function(){return this.selectedFolder?[{name:this.selectedBucket,path:"/"},...this.selectedFolder.split("/").filter(u=>u!=="").map((u,d,g)=>({name:u,path:`${g.slice(0,d+1).join("/").replace("Home/","")}/`}))]:[{name:this.selectedBucket,path:"/"}]}},watch:{selectedBucket(u){this.fetchFiles()},selectedFolder(u){this.fetchFiles()}},methods:{openRowClick:function(u,d,g){u.preventDefault(),this.openObject(d)},openRowDlbClick:function(u,d,g){u.preventDefault(),this.$bus.emit("openFileDetails",d)},breadcrumbsClick:function(u){this.$router.push({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(u.path)}})},rowClick:function(u,d){d.type==="folder"?this.$router.push({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(d.key)}}):this.$refs.preview.openFile(d)},openObject:function(u){u.type==="folder"?this.$router.push({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(u.key)}}):this.$refs.preview.openFile(u)},renameObject:function(u){u.type==="folder"?this.$router.push({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(u.key)}}):this.$refs.preview.openFile(u)},fetchFiles:async function(){this.loading=!0,this.rows=await apiHandler.fetchFile(this.selectedBucket,this.selectedFolder,"/"),this.loading=!1},openPreviewFromKey:async function(){let u=`${decode(this.$route.params.file)}`;this.selectedFolder&&this.selectedFolder!==ROOT_FOLDER&&(u=`${this.selectedFolder}${decode(this.$route.params.file)}`);const d=await apiHandler.headFile(this.selectedBucket,u);this.$refs.preview.openFile(d)}},created(){this.fetchFiles()},mounted(){this.$refs.table.sort("name"),this.$bus.on("fetchFiles",this.fetchFiles),this.$route.params.file&&this.openPreviewFromKey()},beforeUnmount(){this.$bus.off("fetchFiles")},setup(){return{mainStore:useMainStore(),q:useQuasar()}}}),_hoisted_1={class:"q-pa-md"},_hoisted_2={class:"full-width q-my-lg"},_hoisted_3={class:"flex items-center justify-center"},_hoisted_4={key:0,class:"full-width q-my-lg"},_hoisted_5={class:"flex items-center justify-center"},_hoisted_6={class:"flex",style:{"align-items":"center"}},_hoisted_7={class:"text-right"};function _sfc_render(u,d,g,f,b,m){const y=resolveComponent("FileContextMenu"),k=resolveComponent("drag-and-drop"),a=resolveComponent("file-preview"),q=resolveComponent("file-options");return openBlock(),createElementBlock(Fragment,null,[createVNode(QPage,{class:""},{default:withCtx(()=>[createBaseVNode("div",_hoisted_1,[createVNode(QBreadcrumbs,null,{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(u.breadcrumbs,w=>(openBlock(),createBlock(QBreadcrumbsEl,{style:{cursor:"pointer"},key:w.name,label:w.name,onClick:$=>u.breadcrumbsClick(w)},null,8,["label","onClick"]))),128))]),_:1}),createVNode(k,{ref:"uploader"},{default:withCtx(()=>[createVNode(QTable,{ref:"table",rows:u.rows,columns:u.columns,"row-key":"name",loading:u.loading,"hide-pagination":!0,"rows-per-page-options":[0],"column-sort-order":"da",flat:!0,"table-class":"file-list",onRowDblclick:u.openRowClick,onRowClick:u.openRowDlbClick},{loading:withCtx(()=>[createBaseVNode("div",_hoisted_2,[createBaseVNode("h6",_hoisted_3,[createVNode(QSpinner,{color:"primary",size:"xl"})])])]),"no-data":withCtx(()=>[u.loading?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_4,[createBaseVNode("h6",_hoisted_5,[createVNode(QIcon,{name:"folder",color:"orange",size:"lg"}),d[0]||(d[0]=createTextVNode("This folder is empty"))])]))]),"body-cell-name":withCtx(w=>[createBaseVNode("td",_hoisted_6,[createVNode(QIcon,{name:w.row.icon,size:"sm",color:w.row.color,class:"q-mr-xs"},null,8,["name","color"]),createTextVNode(" "+toDisplayString(w.row.name),1)])]),"body-cell":withCtx(w=>[createVNode(QTd,{props:w},{default:withCtx(()=>[createTextVNode(toDisplayString(w.value),1)]),_:2},1032,["props"]),createVNode(QMenu,{"touch-position":"","context-menu":""},{default:withCtx(()=>[createVNode(y,{prop:w,onOpenObject:u.openObject,onDeleteObject:u.$refs.options.deleteObject,onRenameObject:u.$refs.options.renameObject,onUpdateMetadataObject:u.$refs.options.updateMetadataObject},null,8,["prop","onOpenObject","onDeleteObject","onRenameObject","onUpdateMetadataObject"])]),_:2},1024)]),"body-cell-options":withCtx(w=>[createBaseVNode("td",_hoisted_7,[createVNode(QBtn,{round:"",flat:"",icon:"more_vert",size:"sm"},{default:withCtx(()=>[createVNode(QMenu,null,{default:withCtx(()=>[createVNode(y,{prop:w,onOpenObject:u.openObject,onDeleteObject:u.$refs.options.deleteObject,onRenameObject:u.$refs.options.renameObject,onUpdateMetadataObject:u.$refs.options.updateMetadataObject},null,8,["prop","onOpenObject","onDeleteObject","onRenameObject","onUpdateMetadataObject"])]),_:2},1024)]),_:2},1024)])]),_:1},8,["rows","columns","loading","onRowDblclick","onRowClick"])]),_:1},512)])]),_:1}),createVNode(a,{ref:"preview"},null,512),createVNode(q,{ref:"options"},null,512)],64)}var FilesFolderPage=_export_sfc(_sfc_main,[["render",_sfc_render]]);const routes=[{path:"/auth",component:()=>__vitePreload(()=>import("./AuthLayout.7618f480.js"),[]),children:[{path:"login",name:"login",component:()=>__vitePreload(()=>import("./LoginPage.149f1ef8.js"),["assets/LoginPage.149f1ef8.js","assets/auth-store.f621e290.js"])}]},{path:"/",component:MainLayout,children:[{path:"/",name:"home",component:HomePage},{path:"/:bucket/files",name:"files-home",component:FilesFolderPage},{path:"/:bucket/files/:folder",name:"files-folder",component:FilesFolderPage},{path:"/:bucket/files/:folder/:file",name:"files-file",component:FilesFolderPage},{path:"/:bucket/email",name:"email-home",component:EmailFolderPage},{path:"/:bucket/email/:folder",name:"email-folder",component:EmailFolderPage},{path:"/:bucket/email/:folder/:file",name:"email-file",component:()=>__vitePreload(()=>import("./EmailFilePage.bbf7a6c5.js"),["assets/EmailFilePage.bbf7a6c5.js","assets/EmailFilePage.c4890c9c.css"])},{path:"/storage/:bucket",redirect:u=>({name:"files-home",params:{bucket:u.params.bucket}})},{path:"/storage/:bucket/:folder",redirect:u=>({name:"files-folder",params:{bucket:u.params.bucket,folder:u.params.folder}})},{path:"/storage/:bucket/:folder/:file",redirect:u=>({name:"files-file",params:{bucket:u.params.bucket,folder:u.params.folder,file:u.params.file}})}]},{path:"/:catchAll(.*)*",component:()=>__vitePreload(()=>import("./ErrorNotFound.699f3886.js"),[])}];var createRouter=()=>createRouter$1({scrollBehavior:()=>({left:0,top:0}),routes,history:createWebHistory("/")});async function createQuasarApp(u,d){const g=u(App);g.use(Quasar,d);const f=typeof createStore=="function"?await createStore({}):createStore;g.use(f);const b=markRaw(typeof createRouter=="function"?await createRouter({store:f}):createRouter);return f.use(({store:m})=>{m.router=b}),{app:g,store:f,router:b}}let uid=0;const defaults={},groups={},notificationsList={},positionClass={},emptyRE=/^\s*$/,notifRefs=[],invalidTimeoutValues=[void 0,null,!0,!1,""],positionList=["top-left","top-right","bottom-left","bottom-right","top","bottom","left","right","center"],badgePositions=["top-left","top-right","bottom-left","bottom-right"],notifTypes={positive:{icon:u=>u.iconSet.type.positive,color:"positive"},negative:{icon:u=>u.iconSet.type.negative,color:"negative"},warning:{icon:u=>u.iconSet.type.warning,color:"warning",textColor:"dark"},info:{icon:u=>u.iconSet.type.info,color:"info"},ongoing:{group:!1,timeout:0,spinner:!0,color:"grey-8"}};function addNotification(u,d,g){if(!u)return logError("parameter required");let f;const b={textColor:"white"};if(u.ignoreDefaults!==!0&&Object.assign(b,defaults),isObject$1(u)===!1&&(b.type&&Object.assign(b,notifTypes[b.type]),u={message:u}),Object.assign(b,notifTypes[u.type||b.type],u),typeof b.icon=="function"&&(b.icon=b.icon(d)),b.spinner?(b.spinner===!0&&(b.spinner=QSpinner),b.spinner=markRaw(b.spinner)):b.spinner=!1,b.meta={hasMedia:Boolean(b.spinner!==!1||b.icon||b.avatar),hasText:hasContent(b.message)||hasContent(b.caption)},b.position){if(positionList.includes(b.position)===!1)return logError("wrong position",u)}else b.position="bottom";if(invalidTimeoutValues.includes(b.timeout)===!0)b.timeout=5e3;else{const a=Number(b.timeout);if(isNaN(a)||a<0)return logError("wrong timeout",u);b.timeout=Number.isFinite(a)?a:0}b.timeout===0?b.progress=!1:b.progress===!0&&(b.meta.progressClass="q-notification__progress"+(b.progressClass?` ${b.progressClass}`:""),b.meta.progressStyle={animationDuration:`${b.timeout+1e3}ms`});const m=(Array.isArray(u.actions)===!0?u.actions:[]).concat(u.ignoreDefaults!==!0&&Array.isArray(defaults.actions)===!0?defaults.actions:[]).concat(notifTypes[u.type]!==void 0&&Array.isArray(notifTypes[u.type].actions)===!0?notifTypes[u.type].actions:[]),{closeBtn:y}=b;if(y&&m.push({label:typeof y=="string"?y:d.lang.label.close}),b.actions=m.map(({handler:a,noDismiss:q,...w})=>({flat:!0,...w,onClick:typeof a=="function"?()=>{a(),q!==!0&&k()}:()=>{k()}})),b.multiLine===void 0&&(b.multiLine=b.actions.length>1),Object.assign(b.meta,{class:`q-notification row items-stretch q-notification--${b.multiLine===!0?"multi-line":"standard"}`+(b.color!==void 0?` bg-${b.color}`:"")+(b.textColor!==void 0?` text-${b.textColor}`:"")+(b.classes!==void 0?` ${b.classes}`:""),wrapperClass:"q-notification__wrapper col relative-position border-radius-inherit "+(b.multiLine===!0?"column no-wrap justify-center":"row items-center"),contentClass:"q-notification__content row items-center"+(b.multiLine===!0?"":" col"),leftClass:b.meta.hasText===!0?"additional":"single",attrs:{role:"alert",...b.attrs}}),b.group===!1?(b.group=void 0,b.meta.group=void 0):((b.group===void 0||b.group===!0)&&(b.group=[b.message,b.caption,b.multiline].concat(b.actions.map(a=>`${a.label}*${a.icon}`)).join("|")),b.meta.group=b.group+"|"+b.position),b.actions.length===0?b.actions=void 0:b.meta.actionsClass="q-notification__actions row items-center "+(b.multiLine===!0?"justify-end":"col-auto")+(b.meta.hasMedia===!0?" q-notification__actions--with-media":""),g!==void 0){g.notif.meta.timer&&(clearTimeout(g.notif.meta.timer),g.notif.meta.timer=void 0),b.meta.uid=g.notif.meta.uid;const a=notificationsList[b.position].value.indexOf(g.notif);notificationsList[b.position].value[a]=b}else{const a=groups[b.meta.group];if(a===void 0){if(b.meta.uid=uid++,b.meta.badge=1,["left","right","center"].indexOf(b.position)!==-1)notificationsList[b.position].value.splice(Math.floor(notificationsList[b.position].value.length/2),0,b);else{const q=b.position.indexOf("top")!==-1?"unshift":"push";notificationsList[b.position].value[q](b)}b.group!==void 0&&(groups[b.meta.group]=b)}else{if(a.meta.timer&&(clearTimeout(a.meta.timer),a.meta.timer=void 0),b.badgePosition!==void 0){if(badgePositions.includes(b.badgePosition)===!1)return logError("wrong badgePosition",u)}else b.badgePosition=`top-${b.position.indexOf("left")!==-1?"right":"left"}`;b.meta.uid=a.meta.uid,b.meta.badge=a.meta.badge+1,b.meta.badgeClass=`q-notification__badge q-notification__badge--${b.badgePosition}`+(b.badgeColor!==void 0?` bg-${b.badgeColor}`:"")+(b.badgeTextColor!==void 0?` text-${b.badgeTextColor}`:"")+(b.badgeClass?` ${b.badgeClass}`:"");const q=notificationsList[b.position].value.indexOf(a);notificationsList[b.position].value[q]=groups[b.meta.group]=b}}const k=()=>{removeNotification(b),f=void 0};if(b.timeout>0&&(b.meta.timer=setTimeout(()=>{b.meta.timer=void 0,k()},b.timeout+1e3)),b.group!==void 0)return a=>{a!==void 0?logError("trying to update a grouped one which is forbidden",u):k()};if(f={dismiss:k,config:u,notif:b},g!==void 0){Object.assign(g,f);return}return a=>{if(f!==void 0)if(a===void 0)f.dismiss();else{const q=Object.assign({},f.config,a,{group:!1,position:b.position});addNotification(q,d,f)}}}function removeNotification(u){u.meta.timer&&(clearTimeout(u.meta.timer),u.meta.timer=void 0);const d=notificationsList[u.position].value.indexOf(u);if(d!==-1){u.group!==void 0&&delete groups[u.meta.group];const g=notifRefs[""+u.meta.uid];if(g){const{width:f,height:b}=getComputedStyle(g);g.style.left=`${g.offsetLeft}px`,g.style.width=f,g.style.height=b}notificationsList[u.position].value.splice(d,1),typeof u.onDismiss=="function"&&u.onDismiss()}}function hasContent(u){return u!=null&&emptyRE.test(u)!==!0}function logError(u,d){return console.error(`Notify: ${u}`,d),!1}function getComponent(){return createComponent({name:"QNotifications",devtools:{hide:!0},setup(){return()=>h("div",{class:"q-notifications"},positionList.map(u=>h(TransitionGroup,{key:u,class:positionClass[u],tag:"div",name:`q-notification--${u}`},()=>notificationsList[u].value.map(d=>{const g=d.meta,f=[];if(g.hasMedia===!0&&(d.spinner!==!1?f.push(h(d.spinner,{class:"q-notification__spinner q-notification__spinner--"+g.leftClass,color:d.spinnerColor,size:d.spinnerSize})):d.icon?f.push(h(QIcon,{class:"q-notification__icon q-notification__icon--"+g.leftClass,name:d.icon,color:d.iconColor,size:d.iconSize,role:"img"})):d.avatar&&f.push(h(QAvatar,{class:"q-notification__avatar q-notification__avatar--"+g.leftClass},()=>h("img",{src:d.avatar,"aria-hidden":"true"})))),g.hasText===!0){let m;const y={class:"q-notification__message col"};if(d.html===!0)y.innerHTML=d.caption?`<div>${d.message}</div><div class="q-notification__caption">${d.caption}</div>`:d.message;else{const k=[d.message];m=d.caption?[h("div",k),h("div",{class:"q-notification__caption"},[d.caption])]:k}f.push(h("div",y,m))}const b=[h("div",{class:g.contentClass},f)];return d.progress===!0&&b.push(h("div",{key:`${g.uid}|p|${g.badge}`,class:g.progressClass,style:g.progressStyle})),d.actions!==void 0&&b.push(h("div",{class:g.actionsClass},d.actions.map(m=>h(QBtn,m)))),g.badge>1&&b.push(h("div",{key:`${g.uid}|${g.badge}`,class:d.meta.badgeClass,style:d.badgeStyle},[g.badge])),h("div",{ref:m=>{notifRefs[""+g.uid]=m},key:g.uid,class:g.class,...g.attrs},[h("div",{class:g.wrapperClass},b)])}))))}})}var Notify={setDefaults(u){isObject$1(u)===!0&&Object.assign(defaults,u)},registerType(u,d){isObject$1(d)===!0&&(notifTypes[u]=d)},install({$q:u,parentApp:d}){if(u.notify=this.create=g=>addNotification(g,u),u.notify.setDefaults=this.setDefaults,u.notify.registerType=this.registerType,u.config.notify!==void 0&&this.setDefaults(u.config.notify),this.__installed!==!0){positionList.forEach(f=>{notificationsList[f]=ref([]);const b=["left","center","right"].includes(f)===!0?"center":f.indexOf("top")!==-1?"top":"bottom",m=f.indexOf("left")!==-1?"start":f.indexOf("right")!==-1?"end":"center",y=["left","right"].includes(f)?`items-${f==="left"?"start":"end"} justify-center`:f==="center"?"flex-center":`items-${m}`;positionClass[f]=`q-notifications__list q-notifications__list--${b} fixed column no-wrap ${y}`});const g=createGlobalNode("q-notify");createChildApp(getComponent(),d).mount(g)}}},quasarUserOptions={config:{},plugins:{Notify}};let appPrefetch=typeof App.preFetch=="function"?App.preFetch:App.__c!==void 0&&typeof App.__c.preFetch=="function"?App.__c.preFetch:!1;function getMatchedComponents(u,d){const g=u?u.matched?u:d.resolve(u).route:d.currentRoute.value;if(!g)return[];const f=g.matched.filter(b=>b.components!==void 0);return f.length===0?[]:Array.prototype.concat.apply([],f.map(b=>Object.keys(b.components).map(m=>{const y=b.components[m];return{path:b.path,c:y}})))}function addPreFetchHooks({router:u,store:d,publicPath:g}){u.beforeResolve((f,b,m)=>{const y=window.location.href.replace(window.location.origin,""),k=getMatchedComponents(f,u),a=getMatchedComponents(b,u);let q=!1;const w=k.filter((v,J)=>q||(q=!a[J]||a[J].c!==v.c||v.path.indexOf("/:")>-1)).filter(v=>v.c!==void 0&&(typeof v.c.preFetch=="function"||v.c.__c!==void 0&&typeof v.c.__c.preFetch=="function")).map(v=>v.c.__c!==void 0?v.c.__c.preFetch:v.c.preFetch);if(appPrefetch!==!1&&(w.unshift(appPrefetch),appPrefetch=!1),w.length===0)return m();let $=!1;const Q=v=>{$=!0,m(v)},C=()=>{$===!1&&m()};w.reduce((v,J)=>v.then(()=>$===!1&&J({store:d,currentRoute:f,previousRoute:b,redirect:Q,urlPath:y,publicPath:g})),Promise.resolve()).then(C).catch(v=>{console.error(v),C()})})}const publicPath="/";async function start({app:u,router:d,store:g},f){let b=!1;const m=a=>{try{return d.resolve(a).href}catch{}return Object(a)===a?null:a},y=a=>{if(b=!0,typeof a=="string"&&/^https?:\/\//.test(a)){window.location.href=a;return}const q=m(a);q!==null&&(window.location.href=q)},k=window.location.href.replace(window.location.origin,"");for(let a=0;b===!1&&a<f.length;a++)try{await f[a]({app:u,router:d,store:g,ssrContext:null,redirect:y,urlPath:k,publicPath})}catch(q){if(q&&q.url){y(q.url);return}console.error("[Quasar] boot error:",q);return}b!==!0&&(u.use(d),addPreFetchHooks({router:d,store:g}),u.mount("#q-app"))}createQuasarApp(createApp,quasarUserOptions).then(u=>{const[d,g]=Promise.allSettled!==void 0?["allSettled",f=>f.map(b=>{if(b.status==="rejected"){console.error("[Quasar] boot error:",b.reason);return}return b.value.default})]:["all",f=>f.map(b=>b.default)];return Promise[d]([__vitePreload(()=>Promise.resolve().then(function(){return axios$1}),void 0),__vitePreload(()=>import("./auth.9b526521.js"),["assets/auth.9b526521.js","assets/auth-store.f621e290.js"]),__vitePreload(()=>import("./bus.18b30314.js"),[])]).then(f=>{const b=g(f).filter(m=>typeof m=="function");start(u,b)})});export{cleanEvt as $,toDisplayString as A,createCommentVNode as B,QForm as C,QInput as D,QBtn as E,QCard as F,useAnchorStaticProps as G,useModelToggleProps as H,useTransitionProps as I,validatePosition as J,validateOffset as K,scrollTargetProp as L,useModelToggleEmits as M,ref as N,parsePosition as O,useTick as P,QLayout as Q,useTimeout as R,useTransition as S,useScrollTarget as T,useAnchor as U,useModelToggle as V,usePortal as W,watch as X,onBeforeUnmount as Y,removeClickOutside as Z,_export_sfc as _,api as a,setPosition as a0,clearSelection as a1,addEvt as a2,getScrollTarget as a3,Transition as a4,addClickOutside as a5,stopAndPrevent as a6,decode as a7,encode as a8,timeSince as a9,apiHandler as aa,useQuasar as ab,createElementBlock as ac,QSpinner as ad,Fragment as ae,QCardActions as af,QSeparator as ag,renderList as ah,boot as b,defineComponent as c,defineStore as d,createBlock as e,createVNode as f,QPageContainer as g,createComponent as h,useDarkProps as i,useDark as j,computed as k,h as l,hSlot as m,getCurrentInstance as n,openBlock as o,useCheckboxProps as p,useCheckboxEmits as q,resolveComponent as r,useCheckbox as s,QIcon as t,useMainStore as u,QPage as v,withCtx as w,QCardSection as x,createBaseVNode as y,createTextVNode as z};
104
+ `,"<br>")},null,8,_hoisted_19)])])):createCommentVNode("",!0)],64))]),_:1})]),_:1})]),_:1},8,["modelValue","onHide"])}var FilePreview=_export_sfc(_sfc_main$3,[["render",_sfc_render$3]]),DragAndDrop_vue_vue_type_style_index_0_scoped_true_lang="";const _sfc_main$2={data:()=>({isHover:!1,filelist:[],dragContainer:{top:0,bottom:0,left:0,right:0}}),computed:{selectedBucket:function(){return this.$route.params.bucket},selectedFolder:function(){return this.$route.params.folder&&this.$route.params.folder!==ROOT_FOLDER?decode(this.$route.params.folder):""}},methods:{openFilesUploader(){this.$refs.filesUploader.click()},openFoldersUploader(){this.$refs.foldersUploader.click()},dragover(u){if(this.mainStore.apiReadonly||this.isHover===!0)return;const d=this.$refs.dragContainer.getBoundingClientRect();this.dragContainer={top:d.top,bottom:d.bottom,left:d.left,right:d.right},this.isHover=!0},dragleave(u){this.isHover!==!1&&(u.clientX<this.dragContainer.left||u.clientX>this.dragContainer.right||u.clientY>this.dragContainer.bottom||u.clientY<this.dragContainer.top)&&(this.isHover=!1)},inputFiles(u){this.uploadFiles({"":u.target.files})},inputFolders(u){const d={};for(const g of u.target.files){const f=g.webkitRelativePath.lastIndexOf("/"),b=g.webkitRelativePath.slice(0,f);d[b]===void 0&&(d[b]=[]),d[b].push(g)}this.uploadFiles(d)},async uploadFiles(u){let d=0,g=0;const f=[];for(const[k,a]of Object.entries(u)){if(k!==""){const q=`${this.selectedFolder+k}/`;await apiHandler.createFolder(q,this.selectedBucket)}d+=a.length;for(const q of a)f.push(q.name),g+=q.size}this.$bus.emit("fetchFiles");const b=this.q.notify({group:!1,spinner:!0,message:`Uploading files 1/${f.length}...`,caption:"0%",timeout:0});let m=0,y=0;for(const[k,a]of Object.entries(u)){b({message:`Uploading files ${m+1}/${f.length}...`,caption:`${Number.parseInt((m+1)*100/f.length)}%`});let q=this.selectedFolder+k;q.length>0&&q.slice(-1)!=="/"&&(q+="/"),(q==="/"||q===ROOT_FOLDER)&&(q="");for(const w of a){m+=1;const $=q+w.name,Q=95*1024*1024;if(w.size>Q){const{uploadId:C}=(await apiHandler.multipartCreate(w,$,this.selectedBucket)).data;let v=1;const J=[];for(let ae=0;ae<w.size;ae+=Q){const H=Math.min(ae+Q,w.size),Y=w.slice(ae,H),{data:G}=await apiHandler.multipartUpload(C,v,this.selectedBucket,$,Y,j=>{b({caption:`${Number.parseInt((y+ae+j.loaded)*100/g)}%`})});J.push(G),v+=1}await apiHandler.multipartComplete(w,$,this.selectedBucket,J,C)}else await apiHandler.uploadObjects(w,$,this.selectedBucket,C=>{b({caption:`${Number.parseInt((y+C.loaded)*100/g)}%`})});y+=w.size}}b({icon:"done",spinner:!1,caption:"100%",message:"Files Uploaded!",timeout:5e3}),this.$bus.emit("fetchFiles")},async traverseFileTree(u,d,g,f){if(d=d||"",u.isFile&&f>0)await new Promise((m,y)=>{u.file(k=>{g[d].push(k),m()})});else if(u.isDirectory){const b=d?`${d}/${u.name}`:u.name;g[b]===void 0&&(g[b]=[]);const m=u.createReader();await new Promise((k,a)=>{m.readEntries(async q=>{for(let w=0;w<q.length;w++)await this.traverseFileTree(q[w],b,g,f+1);k()})})}},async drop(u){if(!this.isHover)return;const d=u.dataTransfer.files,g=await u.dataTransfer.items,f={};for(const m of g){const y=m.webkitGetAsEntry();y&&await this.traverseFileTree(y,"",f,0)}const b=[];for(const m of d)f[m.name]===void 0&&b.push(m);f[""]=b,this.uploadFiles(f),this.isHover=!1}},mounted(){this.$bus.on("openFilesUploader",this.openFilesUploader),this.$bus.on("openFoldersUploader",this.openFoldersUploader)},beforeUnmount(){this.$bus.off("openFilesUploader"),this.$bus.off("openFoldersUploader")},setup(){return{mainStore:useMainStore(),q:useQuasar()}}};function _sfc_render$2(u,d,g,f,b,m){return openBlock(),createElementBlock(Fragment,null,[createBaseVNode("div",{ref:"dragContainer",class:normalizeClass(["upload-box",{active:u.isHover}]),onDragover:d[0]||(d[0]=withModifiers((...y)=>m.dragover&&m.dragover(...y),["prevent"])),onDragleave:d[1]||(d[1]=withModifiers((...y)=>m.dragleave&&m.dragleave(...y),["prevent"])),onDrop:d[2]||(d[2]=withModifiers((...y)=>m.drop&&m.drop(...y),["prevent"]))},[renderSlot(u.$slots,"default",{},void 0,!0),d[5]||(d[5]=createBaseVNode("div",{class:"drop-files"},[createBaseVNode("div",{class:"box"},[createBaseVNode("h3",null,"Drop files to upload"),createBaseVNode("span",{class:"font-28"},[createBaseVNode("i",{class:"bi bi-cloud-upload-fill"})])])],-1))],34),createBaseVNode("input",{style:{display:"none"},onChange:d[3]||(d[3]=(...y)=>m.inputFiles&&m.inputFiles(...y)),type:"file",name:"files[]",ref:"filesUploader",multiple:""},null,544),createBaseVNode("input",{style:{display:"none"},onChange:d[4]||(d[4]=(...y)=>m.inputFolders&&m.inputFolders(...y)),type:"file",webkitdirectory:"",name:"files[]",ref:"foldersUploader",multiple:""},null,544)],64)}var DragAndDrop=_export_sfc(_sfc_main$2,[["render",_sfc_render$2],["__scopeId","data-v-8e99a572"]]);const _sfc_main$1={name:"FileContextMenu",props:{prop:{}},computed:{selectedBucket:function(){return this.$route.params.bucket},selectedFolder:function(){return this.$route.params.folder&&this.$route.params.folder!==ROOT_FOLDER?decode(this.$route.params.folder):""}},methods:{renameObject:function(){this.$emit("renameObject",this.prop.row)},updateMetadataObject:function(){this.$emit("updateMetadataObject",this.prop.row)},openObject:function(){this.$emit("openObject",this.prop.row)},deleteObject:function(){this.$emit("deleteObject",this.prop.row)},shareObject:async function(){let u;this.prop.row.type==="folder"?u=window.location.origin+this.$router.resolve({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(this.prop.row.key)}}).href:u=window.location.origin+this.$router.resolve({name:"files-file",params:{bucket:this.selectedBucket,folder:this.selectedFolder?encode(this.selectedFolder):ROOT_FOLDER,file:this.prop.row.nameHash}}).href;try{await navigator.clipboard.writeText(u),this.q.notify({message:"Link to file copied to clipboard!",timeout:5e3,type:"positive"})}catch(d){this.q.notify({message:`Failed to copy: ${d}`,timeout:5e3,type:"negative"})}},downloadObject:function(){const u=document.createElement("a");u.download=this.prop.row.name,u.href=`${this.mainStore.serverUrl}/api/buckets/${this.selectedBucket}/${encode(this.prop.row.key)}`,document.body.appendChild(u),u.click(),document.body.removeChild(u)}},setup(){return{mainStore:useMainStore(),q:useQuasar()}}};function _sfc_render$1(u,d,g,f,b,m){return openBlock(),createBlock(QList,{style:{"min-width":"100px"}},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(QItem,{clickable:"",onClick:m.openObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[0]||(d[0]=[createTextVNode("Open")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]),g.prop.row.type==="file"?withDirectives((openBlock(),createBlock(QItem,{key:0,clickable:"",onClick:m.downloadObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[1]||(d[1]=[createTextVNode("Download")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]):createCommentVNode("",!0),g.prop.row.type==="file"?withDirectives((openBlock(),createBlock(QItem,{key:1,clickable:"",onClick:m.renameObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[2]||(d[2]=[createTextVNode("Rename")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]):createCommentVNode("",!0),g.prop.row.type==="file"?withDirectives((openBlock(),createBlock(QItem,{key:2,clickable:"",onClick:m.updateMetadataObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[3]||(d[3]=[createTextVNode("Update Metadata")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]):createCommentVNode("",!0),withDirectives((openBlock(),createBlock(QItem,{clickable:"",onClick:m.shareObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[4]||(d[4]=[createTextVNode("Get sharable link")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]),withDirectives((openBlock(),createBlock(QItem,{clickable:"",onClick:m.deleteObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[5]||(d[5]=[createTextVNode("Delete")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]])]),_:1})}var FileContextMenu=_export_sfc(_sfc_main$1,[["render",_sfc_render$1]]),FilesFolderPage_vue_vue_type_style_index_0_lang="";const _sfc_main=defineComponent({name:"FilesIndexPage",components:{FileContextMenu,FileOptions,DragAndDrop,FilePreview},data:()=>({loading:!1,rows:[],columns:[{name:"name",required:!0,label:"Name",align:"left",field:"name",sortable:!0,sort:(u,d,g,f)=>g.type==="folder"?f.type==="folder"?u.localeCompare(d):1:f.type==="folder"?-1:u.localeCompare(d)},{name:"lastModified",required:!0,label:"Last Modified",align:"left",field:"lastModified",sortable:!0,sort:(u,d,g,f)=>g.timestamp-f.timestamp},{name:"size",required:!0,label:"Size",align:"left",field:"size",sortable:!0,sort:(u,d,g,f)=>g.sizeRaw-f.sizeRaw},{name:"options",label:"",sortable:!1}]}),computed:{selectedBucket:function(){return this.$route.params.bucket},selectedFolder:function(){return this.$route.params.folder&&this.$route.params.folder!==ROOT_FOLDER?decode(this.$route.params.folder):""},breadcrumbs:function(){return this.selectedFolder?[{name:this.selectedBucket,path:"/"},...this.selectedFolder.split("/").filter(u=>u!=="").map((u,d,g)=>({name:u,path:`${g.slice(0,d+1).join("/").replace("Home/","")}/`}))]:[{name:this.selectedBucket,path:"/"}]}},watch:{selectedBucket(u){this.fetchFiles()},selectedFolder(u){this.fetchFiles()}},methods:{openRowClick:function(u,d,g){u.preventDefault(),this.openObject(d)},openRowDlbClick:function(u,d,g){u.preventDefault(),this.$bus.emit("openFileDetails",d)},breadcrumbsClick:function(u){this.$router.push({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(u.path)}})},rowClick:function(u,d){d.type==="folder"?this.$router.push({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(d.key)}}):this.$refs.preview.openFile(d)},openObject:function(u){u.type==="folder"?this.$router.push({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(u.key)}}):this.$refs.preview.openFile(u)},renameObject:function(u){u.type==="folder"?this.$router.push({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(u.key)}}):this.$refs.preview.openFile(u)},fetchFiles:async function(){this.loading=!0,this.rows=await apiHandler.fetchFile(this.selectedBucket,this.selectedFolder,"/"),this.loading=!1},openPreviewFromKey:async function(){let u=`${decode(this.$route.params.file)}`;this.selectedFolder&&this.selectedFolder!==ROOT_FOLDER&&(u=`${this.selectedFolder}${decode(this.$route.params.file)}`);const d=await apiHandler.headFile(this.selectedBucket,u);this.$refs.preview.openFile(d)}},created(){this.fetchFiles()},mounted(){this.$refs.table.sort("name"),this.$bus.on("fetchFiles",this.fetchFiles),this.$route.params.file&&this.openPreviewFromKey()},beforeUnmount(){this.$bus.off("fetchFiles")},setup(){return{mainStore:useMainStore(),q:useQuasar()}}}),_hoisted_1={class:"q-pa-md"},_hoisted_2={class:"full-width q-my-lg"},_hoisted_3={class:"flex items-center justify-center"},_hoisted_4={key:0,class:"full-width q-my-lg"},_hoisted_5={class:"flex items-center justify-center"},_hoisted_6={class:"flex",style:{"align-items":"center"}},_hoisted_7={class:"text-right"};function _sfc_render(u,d,g,f,b,m){const y=resolveComponent("FileContextMenu"),k=resolveComponent("drag-and-drop"),a=resolveComponent("file-preview"),q=resolveComponent("file-options");return openBlock(),createElementBlock(Fragment,null,[createVNode(QPage,{class:""},{default:withCtx(()=>[createBaseVNode("div",_hoisted_1,[createVNode(QBreadcrumbs,null,{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(u.breadcrumbs,w=>(openBlock(),createBlock(QBreadcrumbsEl,{style:{cursor:"pointer"},key:w.name,label:w.name,onClick:$=>u.breadcrumbsClick(w)},null,8,["label","onClick"]))),128))]),_:1}),createVNode(k,{ref:"uploader"},{default:withCtx(()=>[createVNode(QTable,{ref:"table",rows:u.rows,columns:u.columns,"row-key":"name",loading:u.loading,"hide-pagination":!0,"rows-per-page-options":[0],"column-sort-order":"da",flat:!0,"table-class":"file-list",onRowDblclick:u.openRowClick,onRowClick:u.openRowDlbClick},{loading:withCtx(()=>[createBaseVNode("div",_hoisted_2,[createBaseVNode("h6",_hoisted_3,[createVNode(QSpinner,{color:"primary",size:"xl"})])])]),"no-data":withCtx(()=>[u.loading?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_4,[createBaseVNode("h6",_hoisted_5,[createVNode(QIcon,{name:"folder",color:"orange",size:"lg"}),d[0]||(d[0]=createTextVNode("This folder is empty"))])]))]),"body-cell-name":withCtx(w=>[createBaseVNode("td",_hoisted_6,[createVNode(QIcon,{name:w.row.icon,size:"sm",color:w.row.color,class:"q-mr-xs"},null,8,["name","color"]),createTextVNode(" "+toDisplayString(w.row.name),1)])]),"body-cell":withCtx(w=>[createVNode(QTd,{props:w},{default:withCtx(()=>[createTextVNode(toDisplayString(w.value),1)]),_:2},1032,["props"]),createVNode(QMenu,{"touch-position":"","context-menu":""},{default:withCtx(()=>[createVNode(y,{prop:w,onOpenObject:u.openObject,onDeleteObject:u.$refs.options.deleteObject,onRenameObject:u.$refs.options.renameObject,onUpdateMetadataObject:u.$refs.options.updateMetadataObject},null,8,["prop","onOpenObject","onDeleteObject","onRenameObject","onUpdateMetadataObject"])]),_:2},1024)]),"body-cell-options":withCtx(w=>[createBaseVNode("td",_hoisted_7,[createVNode(QBtn,{round:"",flat:"",icon:"more_vert",size:"sm"},{default:withCtx(()=>[createVNode(QMenu,null,{default:withCtx(()=>[createVNode(y,{prop:w,onOpenObject:u.openObject,onDeleteObject:u.$refs.options.deleteObject,onRenameObject:u.$refs.options.renameObject,onUpdateMetadataObject:u.$refs.options.updateMetadataObject},null,8,["prop","onOpenObject","onDeleteObject","onRenameObject","onUpdateMetadataObject"])]),_:2},1024)]),_:2},1024)])]),_:1},8,["rows","columns","loading","onRowDblclick","onRowClick"])]),_:1},512)])]),_:1}),createVNode(a,{ref:"preview"},null,512),createVNode(q,{ref:"options"},null,512)],64)}var FilesFolderPage=_export_sfc(_sfc_main,[["render",_sfc_render]]);const routes=[{path:"/auth",component:()=>__vitePreload(()=>import("./AuthLayout.69a601d4.js"),[]),children:[{path:"login",name:"login",component:()=>__vitePreload(()=>import("./LoginPage.7cae560f.js"),["assets/LoginPage.7cae560f.js","assets/auth-store.adb4e0f1.js"])}]},{path:"/",component:MainLayout,children:[{path:"/",name:"home",component:HomePage},{path:"/:bucket/files",name:"files-home",component:FilesFolderPage},{path:"/:bucket/files/:folder",name:"files-folder",component:FilesFolderPage},{path:"/:bucket/files/:folder/:file",name:"files-file",component:FilesFolderPage},{path:"/:bucket/email",name:"email-home",component:EmailFolderPage},{path:"/:bucket/email/:folder",name:"email-folder",component:EmailFolderPage},{path:"/:bucket/email/:folder/:file",name:"email-file",component:()=>__vitePreload(()=>import("./EmailFilePage.b9af5203.js"),["assets/EmailFilePage.b9af5203.js","assets/EmailFilePage.c4890c9c.css"])},{path:"/storage/:bucket",redirect:u=>({name:"files-home",params:{bucket:u.params.bucket}})},{path:"/storage/:bucket/:folder",redirect:u=>({name:"files-folder",params:{bucket:u.params.bucket,folder:u.params.folder}})},{path:"/storage/:bucket/:folder/:file",redirect:u=>({name:"files-file",params:{bucket:u.params.bucket,folder:u.params.folder,file:u.params.file}})}]},{path:"/:catchAll(.*)*",component:()=>__vitePreload(()=>import("./ErrorNotFound.e25d48e7.js"),[])}];var createRouter=()=>createRouter$1({scrollBehavior:()=>({left:0,top:0}),routes,history:createWebHistory("/")});async function createQuasarApp(u,d){const g=u(App);g.use(Quasar,d);const f=typeof createStore=="function"?await createStore({}):createStore;g.use(f);const b=markRaw(typeof createRouter=="function"?await createRouter({store:f}):createRouter);return f.use(({store:m})=>{m.router=b}),{app:g,store:f,router:b}}let uid=0;const defaults={},groups={},notificationsList={},positionClass={},emptyRE=/^\s*$/,notifRefs=[],invalidTimeoutValues=[void 0,null,!0,!1,""],positionList=["top-left","top-right","bottom-left","bottom-right","top","bottom","left","right","center"],badgePositions=["top-left","top-right","bottom-left","bottom-right"],notifTypes={positive:{icon:u=>u.iconSet.type.positive,color:"positive"},negative:{icon:u=>u.iconSet.type.negative,color:"negative"},warning:{icon:u=>u.iconSet.type.warning,color:"warning",textColor:"dark"},info:{icon:u=>u.iconSet.type.info,color:"info"},ongoing:{group:!1,timeout:0,spinner:!0,color:"grey-8"}};function addNotification(u,d,g){if(!u)return logError("parameter required");let f;const b={textColor:"white"};if(u.ignoreDefaults!==!0&&Object.assign(b,defaults),isObject$1(u)===!1&&(b.type&&Object.assign(b,notifTypes[b.type]),u={message:u}),Object.assign(b,notifTypes[u.type||b.type],u),typeof b.icon=="function"&&(b.icon=b.icon(d)),b.spinner?(b.spinner===!0&&(b.spinner=QSpinner),b.spinner=markRaw(b.spinner)):b.spinner=!1,b.meta={hasMedia:Boolean(b.spinner!==!1||b.icon||b.avatar),hasText:hasContent(b.message)||hasContent(b.caption)},b.position){if(positionList.includes(b.position)===!1)return logError("wrong position",u)}else b.position="bottom";if(invalidTimeoutValues.includes(b.timeout)===!0)b.timeout=5e3;else{const a=Number(b.timeout);if(isNaN(a)||a<0)return logError("wrong timeout",u);b.timeout=Number.isFinite(a)?a:0}b.timeout===0?b.progress=!1:b.progress===!0&&(b.meta.progressClass="q-notification__progress"+(b.progressClass?` ${b.progressClass}`:""),b.meta.progressStyle={animationDuration:`${b.timeout+1e3}ms`});const m=(Array.isArray(u.actions)===!0?u.actions:[]).concat(u.ignoreDefaults!==!0&&Array.isArray(defaults.actions)===!0?defaults.actions:[]).concat(notifTypes[u.type]!==void 0&&Array.isArray(notifTypes[u.type].actions)===!0?notifTypes[u.type].actions:[]),{closeBtn:y}=b;if(y&&m.push({label:typeof y=="string"?y:d.lang.label.close}),b.actions=m.map(({handler:a,noDismiss:q,...w})=>({flat:!0,...w,onClick:typeof a=="function"?()=>{a(),q!==!0&&k()}:()=>{k()}})),b.multiLine===void 0&&(b.multiLine=b.actions.length>1),Object.assign(b.meta,{class:`q-notification row items-stretch q-notification--${b.multiLine===!0?"multi-line":"standard"}`+(b.color!==void 0?` bg-${b.color}`:"")+(b.textColor!==void 0?` text-${b.textColor}`:"")+(b.classes!==void 0?` ${b.classes}`:""),wrapperClass:"q-notification__wrapper col relative-position border-radius-inherit "+(b.multiLine===!0?"column no-wrap justify-center":"row items-center"),contentClass:"q-notification__content row items-center"+(b.multiLine===!0?"":" col"),leftClass:b.meta.hasText===!0?"additional":"single",attrs:{role:"alert",...b.attrs}}),b.group===!1?(b.group=void 0,b.meta.group=void 0):((b.group===void 0||b.group===!0)&&(b.group=[b.message,b.caption,b.multiline].concat(b.actions.map(a=>`${a.label}*${a.icon}`)).join("|")),b.meta.group=b.group+"|"+b.position),b.actions.length===0?b.actions=void 0:b.meta.actionsClass="q-notification__actions row items-center "+(b.multiLine===!0?"justify-end":"col-auto")+(b.meta.hasMedia===!0?" q-notification__actions--with-media":""),g!==void 0){g.notif.meta.timer&&(clearTimeout(g.notif.meta.timer),g.notif.meta.timer=void 0),b.meta.uid=g.notif.meta.uid;const a=notificationsList[b.position].value.indexOf(g.notif);notificationsList[b.position].value[a]=b}else{const a=groups[b.meta.group];if(a===void 0){if(b.meta.uid=uid++,b.meta.badge=1,["left","right","center"].indexOf(b.position)!==-1)notificationsList[b.position].value.splice(Math.floor(notificationsList[b.position].value.length/2),0,b);else{const q=b.position.indexOf("top")!==-1?"unshift":"push";notificationsList[b.position].value[q](b)}b.group!==void 0&&(groups[b.meta.group]=b)}else{if(a.meta.timer&&(clearTimeout(a.meta.timer),a.meta.timer=void 0),b.badgePosition!==void 0){if(badgePositions.includes(b.badgePosition)===!1)return logError("wrong badgePosition",u)}else b.badgePosition=`top-${b.position.indexOf("left")!==-1?"right":"left"}`;b.meta.uid=a.meta.uid,b.meta.badge=a.meta.badge+1,b.meta.badgeClass=`q-notification__badge q-notification__badge--${b.badgePosition}`+(b.badgeColor!==void 0?` bg-${b.badgeColor}`:"")+(b.badgeTextColor!==void 0?` text-${b.badgeTextColor}`:"")+(b.badgeClass?` ${b.badgeClass}`:"");const q=notificationsList[b.position].value.indexOf(a);notificationsList[b.position].value[q]=groups[b.meta.group]=b}}const k=()=>{removeNotification(b),f=void 0};if(b.timeout>0&&(b.meta.timer=setTimeout(()=>{b.meta.timer=void 0,k()},b.timeout+1e3)),b.group!==void 0)return a=>{a!==void 0?logError("trying to update a grouped one which is forbidden",u):k()};if(f={dismiss:k,config:u,notif:b},g!==void 0){Object.assign(g,f);return}return a=>{if(f!==void 0)if(a===void 0)f.dismiss();else{const q=Object.assign({},f.config,a,{group:!1,position:b.position});addNotification(q,d,f)}}}function removeNotification(u){u.meta.timer&&(clearTimeout(u.meta.timer),u.meta.timer=void 0);const d=notificationsList[u.position].value.indexOf(u);if(d!==-1){u.group!==void 0&&delete groups[u.meta.group];const g=notifRefs[""+u.meta.uid];if(g){const{width:f,height:b}=getComputedStyle(g);g.style.left=`${g.offsetLeft}px`,g.style.width=f,g.style.height=b}notificationsList[u.position].value.splice(d,1),typeof u.onDismiss=="function"&&u.onDismiss()}}function hasContent(u){return u!=null&&emptyRE.test(u)!==!0}function logError(u,d){return console.error(`Notify: ${u}`,d),!1}function getComponent(){return createComponent({name:"QNotifications",devtools:{hide:!0},setup(){return()=>h("div",{class:"q-notifications"},positionList.map(u=>h(TransitionGroup,{key:u,class:positionClass[u],tag:"div",name:`q-notification--${u}`},()=>notificationsList[u].value.map(d=>{const g=d.meta,f=[];if(g.hasMedia===!0&&(d.spinner!==!1?f.push(h(d.spinner,{class:"q-notification__spinner q-notification__spinner--"+g.leftClass,color:d.spinnerColor,size:d.spinnerSize})):d.icon?f.push(h(QIcon,{class:"q-notification__icon q-notification__icon--"+g.leftClass,name:d.icon,color:d.iconColor,size:d.iconSize,role:"img"})):d.avatar&&f.push(h(QAvatar,{class:"q-notification__avatar q-notification__avatar--"+g.leftClass},()=>h("img",{src:d.avatar,"aria-hidden":"true"})))),g.hasText===!0){let m;const y={class:"q-notification__message col"};if(d.html===!0)y.innerHTML=d.caption?`<div>${d.message}</div><div class="q-notification__caption">${d.caption}</div>`:d.message;else{const k=[d.message];m=d.caption?[h("div",k),h("div",{class:"q-notification__caption"},[d.caption])]:k}f.push(h("div",y,m))}const b=[h("div",{class:g.contentClass},f)];return d.progress===!0&&b.push(h("div",{key:`${g.uid}|p|${g.badge}`,class:g.progressClass,style:g.progressStyle})),d.actions!==void 0&&b.push(h("div",{class:g.actionsClass},d.actions.map(m=>h(QBtn,m)))),g.badge>1&&b.push(h("div",{key:`${g.uid}|${g.badge}`,class:d.meta.badgeClass,style:d.badgeStyle},[g.badge])),h("div",{ref:m=>{notifRefs[""+g.uid]=m},key:g.uid,class:g.class,...g.attrs},[h("div",{class:g.wrapperClass},b)])}))))}})}var Notify={setDefaults(u){isObject$1(u)===!0&&Object.assign(defaults,u)},registerType(u,d){isObject$1(d)===!0&&(notifTypes[u]=d)},install({$q:u,parentApp:d}){if(u.notify=this.create=g=>addNotification(g,u),u.notify.setDefaults=this.setDefaults,u.notify.registerType=this.registerType,u.config.notify!==void 0&&this.setDefaults(u.config.notify),this.__installed!==!0){positionList.forEach(f=>{notificationsList[f]=ref([]);const b=["left","center","right"].includes(f)===!0?"center":f.indexOf("top")!==-1?"top":"bottom",m=f.indexOf("left")!==-1?"start":f.indexOf("right")!==-1?"end":"center",y=["left","right"].includes(f)?`items-${f==="left"?"start":"end"} justify-center`:f==="center"?"flex-center":`items-${m}`;positionClass[f]=`q-notifications__list q-notifications__list--${b} fixed column no-wrap ${y}`});const g=createGlobalNode("q-notify");createChildApp(getComponent(),d).mount(g)}}},quasarUserOptions={config:{},plugins:{Notify}};let appPrefetch=typeof App.preFetch=="function"?App.preFetch:App.__c!==void 0&&typeof App.__c.preFetch=="function"?App.__c.preFetch:!1;function getMatchedComponents(u,d){const g=u?u.matched?u:d.resolve(u).route:d.currentRoute.value;if(!g)return[];const f=g.matched.filter(b=>b.components!==void 0);return f.length===0?[]:Array.prototype.concat.apply([],f.map(b=>Object.keys(b.components).map(m=>{const y=b.components[m];return{path:b.path,c:y}})))}function addPreFetchHooks({router:u,store:d,publicPath:g}){u.beforeResolve((f,b,m)=>{const y=window.location.href.replace(window.location.origin,""),k=getMatchedComponents(f,u),a=getMatchedComponents(b,u);let q=!1;const w=k.filter((v,J)=>q||(q=!a[J]||a[J].c!==v.c||v.path.indexOf("/:")>-1)).filter(v=>v.c!==void 0&&(typeof v.c.preFetch=="function"||v.c.__c!==void 0&&typeof v.c.__c.preFetch=="function")).map(v=>v.c.__c!==void 0?v.c.__c.preFetch:v.c.preFetch);if(appPrefetch!==!1&&(w.unshift(appPrefetch),appPrefetch=!1),w.length===0)return m();let $=!1;const Q=v=>{$=!0,m(v)},C=()=>{$===!1&&m()};w.reduce((v,J)=>v.then(()=>$===!1&&J({store:d,currentRoute:f,previousRoute:b,redirect:Q,urlPath:y,publicPath:g})),Promise.resolve()).then(C).catch(v=>{console.error(v),C()})})}const publicPath="/";async function start({app:u,router:d,store:g},f){let b=!1;const m=a=>{try{return d.resolve(a).href}catch{}return Object(a)===a?null:a},y=a=>{if(b=!0,typeof a=="string"&&/^https?:\/\//.test(a)){window.location.href=a;return}const q=m(a);q!==null&&(window.location.href=q)},k=window.location.href.replace(window.location.origin,"");for(let a=0;b===!1&&a<f.length;a++)try{await f[a]({app:u,router:d,store:g,ssrContext:null,redirect:y,urlPath:k,publicPath})}catch(q){if(q&&q.url){y(q.url);return}console.error("[Quasar] boot error:",q);return}b!==!0&&(u.use(d),addPreFetchHooks({router:d,store:g}),u.mount("#q-app"))}createQuasarApp(createApp,quasarUserOptions).then(u=>{const[d,g]=Promise.allSettled!==void 0?["allSettled",f=>f.map(b=>{if(b.status==="rejected"){console.error("[Quasar] boot error:",b.reason);return}return b.value.default})]:["all",f=>f.map(b=>b.default)];return Promise[d]([__vitePreload(()=>Promise.resolve().then(function(){return axios$1}),void 0),__vitePreload(()=>import("./auth.888ee5c0.js"),["assets/auth.888ee5c0.js","assets/auth-store.adb4e0f1.js"]),__vitePreload(()=>import("./bus.f801e67b.js"),[])]).then(f=>{const b=g(f).filter(m=>typeof m=="function");start(u,b)})});export{cleanEvt as $,toDisplayString as A,createCommentVNode as B,QForm as C,QInput as D,QBtn as E,QCard as F,useAnchorStaticProps as G,useModelToggleProps as H,useTransitionProps as I,validatePosition as J,validateOffset as K,scrollTargetProp as L,useModelToggleEmits as M,ref as N,parsePosition as O,useTick as P,QLayout as Q,useTimeout as R,useTransition as S,useScrollTarget as T,useAnchor as U,useModelToggle as V,usePortal as W,watch as X,onBeforeUnmount as Y,removeClickOutside as Z,_export_sfc as _,api as a,setPosition as a0,clearSelection as a1,addEvt as a2,getScrollTarget as a3,Transition as a4,addClickOutside as a5,stopAndPrevent as a6,decode as a7,encode as a8,timeSince as a9,apiHandler as aa,useQuasar as ab,createElementBlock as ac,QSpinner as ad,Fragment as ae,QCardActions as af,QSeparator as ag,renderList as ah,boot as b,defineComponent as c,defineStore as d,createBlock as e,createVNode as f,QPageContainer as g,createComponent as h,useDarkProps as i,useDark as j,computed as k,h as l,hSlot as m,getCurrentInstance as n,openBlock as o,useCheckboxProps as p,useCheckboxEmits as q,resolveComponent as r,useCheckbox as s,QIcon as t,useMainStore as u,QPage as v,withCtx as w,QCardSection as x,createBaseVNode as y,createTextVNode as z};
@@ -33,7 +33,7 @@
33
33
  color: #333;
34
34
  font-size: 1.2rem;
35
35
  margin-bottom: 0.5rem;
36
- }</style> <script type="module" crossorigin src="/assets/index.69bcbd86.js"></script>
36
+ }</style> <script type="module" crossorigin src="/assets/index.81c5f354.js"></script>
37
37
  <link rel="stylesheet" href="/assets/index.7e109f1f.css">
38
38
  </head><body><div id=q-app></div></body><script>var elem = document.getElementById('q-app')
39
39
  elem.innerHTML = `
@@ -1 +1 @@
1
- import{_ as a,c as n,r,o as s,e as c,w as e,Q as _,f as o,g as p}from"./index.69bcbd86.js";const u=n({name:"AuthLayout",components:{}});function f(i,d,l,m,h,v){const t=r("router-view");return s(),c(_,{view:"hHh lpR fFf"},{default:e(()=>[o(p,{class:"container"},{default:e(()=>[o(t)]),_:1})]),_:1})}var x=a(u,[["render",f]]);export{x as default};
1
+ import{_ as a,c as n,r,o as s,e as c,w as e,Q as _,f as o,g as p}from"./index.81c5f354.js";const u=n({name:"AuthLayout",components:{}});function f(i,d,l,m,h,v){const t=r("router-view");return s(),c(_,{view:"hHh lpR fFf"},{default:e(()=>[o(p,{class:"container"},{default:e(()=>[o(t)]),_:1})]),_:1})}var x=a(u,[["render",f]]);export{x as default};
@@ -1,2 +1,2 @@
1
- import{h as te,G as _e,H as Se,I as q,J as W,K as Te,L as $e,M as Pe,N as x,k as _,O as N,P as Be,R as Ce,S as qe,T as He,U as Ee,V as Me,W as Ae,X as z,Y as D,Z as U,$ as V,a0 as Fe,a1 as j,a2 as R,a3 as Oe,l as M,a4 as Ie,n as Le,a5 as Qe,m as ae,a6 as We,_ as xe,c as Ne,a7 as G,a8 as J,a9 as ze,aa as w,u as De,ab as Ue,o as u,ac as p,f as s,w as o,F as K,ad as Ve,x as $,E as P,z as b,ae as X,e as H,B as Y,y as d,A as v,t as Z,af as ee,ag as je,ah as Re}from"./index.69bcbd86.js";var E=te({name:"QTooltip",inheritAttrs:!1,props:{..._e,...Se,...q,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null},transitionShow:{...q.transitionShow,default:"jump-down"},transitionHide:{...q.transitionHide,default:"jump-up"},anchor:{type:String,default:"bottom middle",validator:W},self:{type:String,default:"top middle",validator:W},offset:{type:Array,default:()=>[14,14],validator:Te},scrollTarget:$e,delay:{type:Number,default:0},hideDelay:{type:Number,default:0},persistent:Boolean},emits:[...Pe],setup(e,{slots:t,emit:m,attrs:l}){let a,n;const r=Le(),{proxy:{$q:c}}=r,g=x(null),S=x(!1),se=_(()=>N(e.anchor,c.lang.rtl)),le=_(()=>N(e.self,c.lang.rtl)),ne=_(()=>e.persistent!==!0),{registerTick:oe,removeTick:ie}=Be(),{registerTimeout:T}=Ce(),{transitionProps:re,transitionStyle:de}=qe(e),{localScrollTarget:A,changeScrollEvent:ce,unconfigureScrollTarget:ue}=He(e,L),{anchorEl:f,canShow:fe,anchorEvents:k}=Ee({showing:S,configureAnchorEl:ye}),{show:me,hide:B}=Me({showing:S,canShow:fe,handleShow:pe,handleHide:ve,hideOnRouteChange:ne,processOnMount:!0});Object.assign(k,{delayShow:ge,delayHide:ke});const{showPortal:F,hidePortal:O,renderPortal:he}=Ae(r,g,be,"tooltip");if(c.platform.is.mobile===!0){const i={anchorEl:f,innerRef:g,onClickOutside(h){return B(h),h.target.classList.contains("q-dialog__backdrop")&&We(h),!0}},C=_(()=>e.modelValue===null&&e.persistent!==!0&&S.value===!0);z(C,h=>{(h===!0?Qe:U)(i)}),D(()=>{U(i)})}function pe(i){F(),oe(()=>{n=new MutationObserver(()=>y()),n.observe(g.value,{attributes:!1,childList:!0,characterData:!0,subtree:!0}),y(),L()}),a===void 0&&(a=z(()=>c.screen.width+"|"+c.screen.height+"|"+e.self+"|"+e.anchor+"|"+c.lang.rtl,y)),T(()=>{F(!0),m("show",i)},e.transitionDuration)}function ve(i){ie(),O(),I(),T(()=>{O(!0),m("hide",i)},e.transitionDuration)}function I(){n!==void 0&&(n.disconnect(),n=void 0),a!==void 0&&(a(),a=void 0),ue(),V(k,"tooltipTemp")}function y(){Fe({targetEl:g.value,offset:e.offset,anchorEl:f.value,anchorOrigin:se.value,selfOrigin:le.value,maxHeight:e.maxHeight,maxWidth:e.maxWidth})}function ge(i){if(c.platform.is.mobile===!0){j(),document.body.classList.add("non-selectable");const C=f.value,h=["touchmove","touchcancel","touchend","click"].map(Q=>[C,Q,"delayHide","passiveCapture"]);R(k,"tooltipTemp",h)}T(()=>{me(i)},e.delay)}function ke(i){c.platform.is.mobile===!0&&(V(k,"tooltipTemp"),j(),setTimeout(()=>{document.body.classList.remove("non-selectable")},10)),T(()=>{B(i)},e.hideDelay)}function ye(){if(e.noParentEvent===!0||f.value===null)return;const i=c.platform.is.mobile===!0?[[f.value,"touchstart","delayShow","passive"]]:[[f.value,"mouseenter","delayShow","passive"],[f.value,"mouseleave","delayHide","passive"]];R(k,"anchor",i)}function L(){if(f.value!==null||e.scrollTarget!==void 0){A.value=Oe(f.value,e.scrollTarget);const i=e.noParentEvent===!0?y:B;ce(A.value,i)}}function we(){return S.value===!0?M("div",{...l,ref:g,class:["q-tooltip q-tooltip--style q-position-engine no-pointer-events",l.class],style:[l.style,de.value],role:"tooltip"},ae(t.default)):null}function be(){return M(Ie,re.value,we)}return D(I),Object.assign(r.proxy,{updatePosition:y}),he}}),Ge=te({name:"QBtnGroup",props:{unelevated:Boolean,outline:Boolean,flat:Boolean,rounded:Boolean,square:Boolean,push:Boolean,stretch:Boolean,glossy:Boolean,spread:Boolean},setup(e,{slots:t}){const m=_(()=>{const l=["unelevated","outline","flat","rounded","square","push","stretch","glossy"].filter(a=>e[a]===!0).map(a=>`q-btn-group--${a}`).join(" ");return`q-btn-group row no-wrap${l.length!==0?" "+l:""}`+(e.spread===!0?" q-btn-group--spread":" inline")});return()=>M("div",{class:m.value},ae(t.default))}});const Je=Ne({name:"EmailFolderPage",data:()=>({srcdoc:null,file:null,fileHead:null,timeInterval:null,attachments:[]}),computed:{selectedBucket:function(){return this.$route.params.bucket},selectedFolder:function(){return this.$route.params.folder},selectedFile:function(){return this.$route.params.file},filePath:function(){const e=G(this.selectedFile);return`.r2-explorer/emails/${this.selectedFolder}/${e}`}},watch:{selectedBucket(e){this.$router.push({name:"email-folder",params:{bucket:e,folder:J(this.selectedFolder)}})}},methods:{timeSince:ze,contentFinishedLoading(){clearInterval(this.timeInterval),this.timeInterval=null,this.resizeIframe()},resizeIframe(){this.$refs.renderWindow&&(this.$refs.renderWindow.style.height=`${this.$refs.renderWindow.contentWindow.document.documentElement.scrollHeight}px`)},fetchEmail:async function(){const e=G(this.selectedFile),t=await w.downloadFile(this.selectedBucket,this.filePath,{}),m=e.split(".json")[0];this.file=t.data;let l=t.data.html;if(l){l=l.replaceAll(/<a(.*?)>(.*?)<\/a>/gi,'<a$1 target="_blank">$2</a>');for(const a of t.data.attachments){a.display=!0,a.downloadUrl=`${this.mainStore.serverUrl}/api/buckets/${this.selectedBucket}/${J(`.r2-explorer/emails/${this.selectedFolder}/${m}/${a.filename}`)}`;let n=a.contentId;if(n){n.startsWith("<")&&n.endsWith(">")&&(n=n.substring(1,n.length-1));const r=`cid:${n}`;l.includes(r)&&(l=l.replaceAll(`cid:${n}`,a.downloadUrl),a.display=!1)}}this.srcdoc=l}this.attachments=t.data.attachments.filter(a=>a.display),w.headFile(this.selectedBucket,this.filePath).then(async a=>{a.customMetadata.read==="false"?this.fileHead=await w.updateMetadata(this.selectedBucket,this.filePath,{...a.customMetadata,read:!0}):this.fileHead=a}),setTimeout(()=>{this.contentFinishedLoading()},1e4),this.timeInterval=setInterval(()=>{this.resizeIframe()},400)},markAsUnread:async function(){this.fileHead=await w.updateMetadata(this.selectedBucket,this.filePath,{...this.fileHead.customMetadata,read:!1}),this.q.notify({group:!1,icon:"done",spinner:!1,message:"Email marked as unread!",timeout:2500})},markAsRead:async function(){this.fileHead=await w.updateMetadata(this.selectedBucket,this.filePath,{...this.fileHead.customMetadata,read:!0}),this.q.notify({group:!1,icon:"done",spinner:!1,message:"Email marked as read!",timeout:2500})},downloadAtt:e=>{console.log(e);const t=document.createElement("a");t.download=e.filename,t.href=e.downloadUrl,document.body.appendChild(t),t.click(),document.body.removeChild(t)}},created(){this.fetchEmail()},setup(){return{mainStore:De(),q:Ue()}}}),Ke={key:0},Xe={class:"font-18 q-my-none"},Ye={class:"d-flex row"},Ze={class:"d-flex column"},et={class:"text-muted"},tt={class:"q-ml-auto"},at={class:""},st={class:"overflow-auto d-block email-wrapper"},lt=["srcdoc"],nt=["innerHTML"],ot={class:"row attachments"},it={key:1,class:"text-center q-my-lg"};function rt(e,t,m,l,a,n){return this.file?(u(),p("div",Ke,[s(K,null,{default:o(()=>[s($,{class:"bg-grey-2 text-black",vertical:""},{default:o(()=>[s(Ge,{unelevated:""},{default:o(()=>[s(P,{push:"",icon:"arrow_back",to:{name:"email-folder",params:{bucket:e.$route.params.bucket,folder:e.$route.params.folder}}},{default:o(()=>[s(E,null,{default:o(()=>t[1]||(t[1]=[b("Back")])),_:1})]),_:1},8,["to"]),e.fileHead?(u(),p(X,{key:0},[e.fileHead.customMetadata.read==="true"?(u(),H(P,{key:0,push:"",icon:"mark_email_unread",onClick:e.markAsUnread},{default:o(()=>[s(E,null,{default:o(()=>t[2]||(t[2]=[b("Mark email as unread")])),_:1})]),_:1},8,["onClick"])):(u(),H(P,{key:1,push:"",icon:"mark_email_read",onClick:e.markAsRead},{default:o(()=>[s(E,null,{default:o(()=>t[3]||(t[3]=[b("Mark email as read")])),_:1})]),_:1},8,["onClick"]))],64)):Y("",!0)]),_:1})]),_:1}),s($,{vertical:""},{default:o(()=>[d("h5",Xe,v(e.file.subject),1)]),_:1}),s($,{horizontal:"",class:"q-px-sm"},{default:o(()=>[d("div",Ye,[s(Z,{name:"account_circle",size:"xl",class:"q-mr-sm"}),d("div",Ze,[d("span",null,[b(v(e.file.from.name)+" ",1),d("small",et,"<"+v(e.file.from.address)+">",1)]),d("span",null,"to "+v(e.file.to[0].address),1)])]),d("div",tt,[d("small",at,v(e.file.date)+" ("+v(e.timeSince(new Date(e.file.date)))+")",1)])]),_:1}),s(ee,{vertical:""},{default:o(()=>[d("div",st,[e.srcdoc?(u(),p("iframe",{key:0,frameborder:"0",scrolling:"no",class:"w-100 d-block",onLoad:t[0]||(t[0]=(...r)=>e.contentFinishedLoading&&e.contentFinishedLoading(...r)),ref:"renderWindow",id:"renderWindow",srcdoc:e.srcdoc,sandbox:"allow-popups allow-popups-to-escape-sandbox allow-same-origin",csp:"script-src 'none'"},null,40,lt)):(u(),p("div",{key:1,innerHTML:e.file.text.replaceAll(`
1
+ import{h as te,G as _e,H as Se,I as q,J as W,K as Te,L as $e,M as Pe,N as x,k as _,O as N,P as Be,R as Ce,S as qe,T as He,U as Ee,V as Me,W as Ae,X as z,Y as D,Z as U,$ as V,a0 as Fe,a1 as j,a2 as R,a3 as Oe,l as M,a4 as Ie,n as Le,a5 as Qe,m as ae,a6 as We,_ as xe,c as Ne,a7 as G,a8 as J,a9 as ze,aa as w,u as De,ab as Ue,o as u,ac as p,f as s,w as o,F as K,ad as Ve,x as $,E as P,z as b,ae as X,e as H,B as Y,y as d,A as v,t as Z,af as ee,ag as je,ah as Re}from"./index.81c5f354.js";var E=te({name:"QTooltip",inheritAttrs:!1,props:{..._e,...Se,...q,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null},transitionShow:{...q.transitionShow,default:"jump-down"},transitionHide:{...q.transitionHide,default:"jump-up"},anchor:{type:String,default:"bottom middle",validator:W},self:{type:String,default:"top middle",validator:W},offset:{type:Array,default:()=>[14,14],validator:Te},scrollTarget:$e,delay:{type:Number,default:0},hideDelay:{type:Number,default:0},persistent:Boolean},emits:[...Pe],setup(e,{slots:t,emit:m,attrs:l}){let a,n;const r=Le(),{proxy:{$q:c}}=r,g=x(null),S=x(!1),se=_(()=>N(e.anchor,c.lang.rtl)),le=_(()=>N(e.self,c.lang.rtl)),ne=_(()=>e.persistent!==!0),{registerTick:oe,removeTick:ie}=Be(),{registerTimeout:T}=Ce(),{transitionProps:re,transitionStyle:de}=qe(e),{localScrollTarget:A,changeScrollEvent:ce,unconfigureScrollTarget:ue}=He(e,L),{anchorEl:f,canShow:fe,anchorEvents:k}=Ee({showing:S,configureAnchorEl:ye}),{show:me,hide:B}=Me({showing:S,canShow:fe,handleShow:pe,handleHide:ve,hideOnRouteChange:ne,processOnMount:!0});Object.assign(k,{delayShow:ge,delayHide:ke});const{showPortal:F,hidePortal:O,renderPortal:he}=Ae(r,g,be,"tooltip");if(c.platform.is.mobile===!0){const i={anchorEl:f,innerRef:g,onClickOutside(h){return B(h),h.target.classList.contains("q-dialog__backdrop")&&We(h),!0}},C=_(()=>e.modelValue===null&&e.persistent!==!0&&S.value===!0);z(C,h=>{(h===!0?Qe:U)(i)}),D(()=>{U(i)})}function pe(i){F(),oe(()=>{n=new MutationObserver(()=>y()),n.observe(g.value,{attributes:!1,childList:!0,characterData:!0,subtree:!0}),y(),L()}),a===void 0&&(a=z(()=>c.screen.width+"|"+c.screen.height+"|"+e.self+"|"+e.anchor+"|"+c.lang.rtl,y)),T(()=>{F(!0),m("show",i)},e.transitionDuration)}function ve(i){ie(),O(),I(),T(()=>{O(!0),m("hide",i)},e.transitionDuration)}function I(){n!==void 0&&(n.disconnect(),n=void 0),a!==void 0&&(a(),a=void 0),ue(),V(k,"tooltipTemp")}function y(){Fe({targetEl:g.value,offset:e.offset,anchorEl:f.value,anchorOrigin:se.value,selfOrigin:le.value,maxHeight:e.maxHeight,maxWidth:e.maxWidth})}function ge(i){if(c.platform.is.mobile===!0){j(),document.body.classList.add("non-selectable");const C=f.value,h=["touchmove","touchcancel","touchend","click"].map(Q=>[C,Q,"delayHide","passiveCapture"]);R(k,"tooltipTemp",h)}T(()=>{me(i)},e.delay)}function ke(i){c.platform.is.mobile===!0&&(V(k,"tooltipTemp"),j(),setTimeout(()=>{document.body.classList.remove("non-selectable")},10)),T(()=>{B(i)},e.hideDelay)}function ye(){if(e.noParentEvent===!0||f.value===null)return;const i=c.platform.is.mobile===!0?[[f.value,"touchstart","delayShow","passive"]]:[[f.value,"mouseenter","delayShow","passive"],[f.value,"mouseleave","delayHide","passive"]];R(k,"anchor",i)}function L(){if(f.value!==null||e.scrollTarget!==void 0){A.value=Oe(f.value,e.scrollTarget);const i=e.noParentEvent===!0?y:B;ce(A.value,i)}}function we(){return S.value===!0?M("div",{...l,ref:g,class:["q-tooltip q-tooltip--style q-position-engine no-pointer-events",l.class],style:[l.style,de.value],role:"tooltip"},ae(t.default)):null}function be(){return M(Ie,re.value,we)}return D(I),Object.assign(r.proxy,{updatePosition:y}),he}}),Ge=te({name:"QBtnGroup",props:{unelevated:Boolean,outline:Boolean,flat:Boolean,rounded:Boolean,square:Boolean,push:Boolean,stretch:Boolean,glossy:Boolean,spread:Boolean},setup(e,{slots:t}){const m=_(()=>{const l=["unelevated","outline","flat","rounded","square","push","stretch","glossy"].filter(a=>e[a]===!0).map(a=>`q-btn-group--${a}`).join(" ");return`q-btn-group row no-wrap${l.length!==0?" "+l:""}`+(e.spread===!0?" q-btn-group--spread":" inline")});return()=>M("div",{class:m.value},ae(t.default))}});const Je=Ne({name:"EmailFolderPage",data:()=>({srcdoc:null,file:null,fileHead:null,timeInterval:null,attachments:[]}),computed:{selectedBucket:function(){return this.$route.params.bucket},selectedFolder:function(){return this.$route.params.folder},selectedFile:function(){return this.$route.params.file},filePath:function(){const e=G(this.selectedFile);return`.r2-explorer/emails/${this.selectedFolder}/${e}`}},watch:{selectedBucket(e){this.$router.push({name:"email-folder",params:{bucket:e,folder:J(this.selectedFolder)}})}},methods:{timeSince:ze,contentFinishedLoading(){clearInterval(this.timeInterval),this.timeInterval=null,this.resizeIframe()},resizeIframe(){this.$refs.renderWindow&&(this.$refs.renderWindow.style.height=`${this.$refs.renderWindow.contentWindow.document.documentElement.scrollHeight}px`)},fetchEmail:async function(){const e=G(this.selectedFile),t=await w.downloadFile(this.selectedBucket,this.filePath,{}),m=e.split(".json")[0];this.file=t.data;let l=t.data.html;if(l){l=l.replaceAll(/<a(.*?)>(.*?)<\/a>/gi,'<a$1 target="_blank">$2</a>');for(const a of t.data.attachments){a.display=!0,a.downloadUrl=`${this.mainStore.serverUrl}/api/buckets/${this.selectedBucket}/${J(`.r2-explorer/emails/${this.selectedFolder}/${m}/${a.filename}`)}`;let n=a.contentId;if(n){n.startsWith("<")&&n.endsWith(">")&&(n=n.substring(1,n.length-1));const r=`cid:${n}`;l.includes(r)&&(l=l.replaceAll(`cid:${n}`,a.downloadUrl),a.display=!1)}}this.srcdoc=l}this.attachments=t.data.attachments.filter(a=>a.display),w.headFile(this.selectedBucket,this.filePath).then(async a=>{a.customMetadata.read==="false"?this.fileHead=await w.updateMetadata(this.selectedBucket,this.filePath,{...a.customMetadata,read:!0}):this.fileHead=a}),setTimeout(()=>{this.contentFinishedLoading()},1e4),this.timeInterval=setInterval(()=>{this.resizeIframe()},400)},markAsUnread:async function(){this.fileHead=await w.updateMetadata(this.selectedBucket,this.filePath,{...this.fileHead.customMetadata,read:!1}),this.q.notify({group:!1,icon:"done",spinner:!1,message:"Email marked as unread!",timeout:2500})},markAsRead:async function(){this.fileHead=await w.updateMetadata(this.selectedBucket,this.filePath,{...this.fileHead.customMetadata,read:!0}),this.q.notify({group:!1,icon:"done",spinner:!1,message:"Email marked as read!",timeout:2500})},downloadAtt:e=>{console.log(e);const t=document.createElement("a");t.download=e.filename,t.href=e.downloadUrl,document.body.appendChild(t),t.click(),document.body.removeChild(t)}},created(){this.fetchEmail()},setup(){return{mainStore:De(),q:Ue()}}}),Ke={key:0},Xe={class:"font-18 q-my-none"},Ye={class:"d-flex row"},Ze={class:"d-flex column"},et={class:"text-muted"},tt={class:"q-ml-auto"},at={class:""},st={class:"overflow-auto d-block email-wrapper"},lt=["srcdoc"],nt=["innerHTML"],ot={class:"row attachments"},it={key:1,class:"text-center q-my-lg"};function rt(e,t,m,l,a,n){return this.file?(u(),p("div",Ke,[s(K,null,{default:o(()=>[s($,{class:"bg-grey-2 text-black",vertical:""},{default:o(()=>[s(Ge,{unelevated:""},{default:o(()=>[s(P,{push:"",icon:"arrow_back",to:{name:"email-folder",params:{bucket:e.$route.params.bucket,folder:e.$route.params.folder}}},{default:o(()=>[s(E,null,{default:o(()=>t[1]||(t[1]=[b("Back")])),_:1})]),_:1},8,["to"]),e.fileHead?(u(),p(X,{key:0},[e.fileHead.customMetadata.read==="true"?(u(),H(P,{key:0,push:"",icon:"mark_email_unread",onClick:e.markAsUnread},{default:o(()=>[s(E,null,{default:o(()=>t[2]||(t[2]=[b("Mark email as unread")])),_:1})]),_:1},8,["onClick"])):(u(),H(P,{key:1,push:"",icon:"mark_email_read",onClick:e.markAsRead},{default:o(()=>[s(E,null,{default:o(()=>t[3]||(t[3]=[b("Mark email as read")])),_:1})]),_:1},8,["onClick"]))],64)):Y("",!0)]),_:1})]),_:1}),s($,{vertical:""},{default:o(()=>[d("h5",Xe,v(e.file.subject),1)]),_:1}),s($,{horizontal:"",class:"q-px-sm"},{default:o(()=>[d("div",Ye,[s(Z,{name:"account_circle",size:"xl",class:"q-mr-sm"}),d("div",Ze,[d("span",null,[b(v(e.file.from.name)+" ",1),d("small",et,"<"+v(e.file.from.address)+">",1)]),d("span",null,"to "+v(e.file.to[0].address),1)])]),d("div",tt,[d("small",at,v(e.file.date)+" ("+v(e.timeSince(new Date(e.file.date)))+")",1)])]),_:1}),s(ee,{vertical:""},{default:o(()=>[d("div",st,[e.srcdoc?(u(),p("iframe",{key:0,frameborder:"0",scrolling:"no",class:"w-100 d-block",onLoad:t[0]||(t[0]=(...r)=>e.contentFinishedLoading&&e.contentFinishedLoading(...r)),ref:"renderWindow",id:"renderWindow",srcdoc:e.srcdoc,sandbox:"allow-popups allow-popups-to-escape-sandbox allow-same-origin",csp:"script-src 'none'"},null,40,lt)):(u(),p("div",{key:1,innerHTML:e.file.text.replaceAll(`
2
2
  `,"<br>")},null,8,nt))])]),_:1}),e.attachments.length>0?(u(),H(ee,{key:0,vertical:""},{default:o(()=>[s(je),t[4]||(t[4]=d("h6",{class:"q-my-md"},"Attachments",-1)),d("div",ot,[(u(!0),p(X,null,Re(e.file.attachments,r=>(u(),p("div",{class:"col-md-4 col-sm-12",key:r.filename},[s(K,null,{default:o(()=>[s($,{class:"q-pa-sm flex",style:{"align-items":"center"}},{default:o(()=>[s(Z,{name:"description",size:"md",color:"blue",class:"q-mr-sm"}),b(" "+v(r.filename)+" ",1),s(P,{color:"white","text-color":"black",icon:"download",class:"q-mr-0 q-ml-auto",onClick:c=>e.downloadAtt(r)},null,8,["onClick"])]),_:2},1024)]),_:2},1024)]))),128))])]),_:1})):Y("",!0)]),_:1})])):(u(),p("div",it,[s(Ve,{color:"primary",size:"3em"})]))}var ct=xe(Je,[["render",rt],["__scopeId","data-v-59368c26"]]);export{ct as default};
@@ -1 +1 @@
1
- import{_ as o,c as s,o as r,ac as n,y as t,f as a,E as l}from"./index.69bcbd86.js";const c=s({name:"ErrorNotFound"}),d={class:"fullscreen bg-blue text-white text-center q-pa-md flex flex-center"};function i(p,e,f,u,x,m){return r(),n("div",d,[t("div",null,[e[0]||(e[0]=t("div",{style:{"font-size":"30vh"}}," 404 ",-1)),e[1]||(e[1]=t("div",{class:"text-h2",style:{opacity:".4"}}," Oops. Nothing here... ",-1)),a(l,{class:"q-mt-xl",color:"white","text-color":"blue",unelevated:"",to:"/",label:"Go Home","no-caps":""})])])}var _=o(c,[["render",i]]);export{_ as default};
1
+ import{_ as o,c as s,o as r,ac as n,y as t,f as a,E as l}from"./index.81c5f354.js";const c=s({name:"ErrorNotFound"}),d={class:"fullscreen bg-blue text-white text-center q-pa-md flex flex-center"};function i(p,e,f,u,x,m){return r(),n("div",d,[t("div",null,[e[0]||(e[0]=t("div",{style:{"font-size":"30vh"}}," 404 ",-1)),e[1]||(e[1]=t("div",{class:"text-h2",style:{opacity:".4"}}," Oops. Nothing here... ",-1)),a(l,{class:"q-mt-xl",color:"white","text-color":"blue",unelevated:"",to:"/",label:"Go Home","no-caps":""})])])}var _=o(c,[["render",i]]);export{_ as default};
@@ -1 +1 @@
1
- import{h,i as w,j as y,k as u,l as r,m,n as k,p as q,q as C,s as S,t as V,_ as x,c as Q,o as p,e as v,w as t,v as B,f as o,x as f,y as g,z as E,A as I,B as _,C as $,D as b,E as A,F as D}from"./index.69bcbd86.js";import{u as P}from"./auth-store.f621e290.js";var N=h({name:"QBanner",props:{...w,inlineActions:Boolean,dense:Boolean,rounded:Boolean},setup(e,{slots:a}){const{proxy:{$q:s}}=k(),d=y(e,s),l=u(()=>"q-banner row items-center"+(e.dense===!0?" q-banner--dense":"")+(d.value===!0?" q-banner--dark q-dark":"")+(e.rounded===!0?" rounded-borders":"")),i=u(()=>`q-banner__actions row items-center justify-end col-${e.inlineActions===!0?"auto":"all"}`);return()=>{const n=[r("div",{class:"q-banner__avatar col-auto row items-center self-start"},m(a.avatar)),r("div",{class:"q-banner__content col text-body2"},m(a.default))],c=m(a.action);return c!==void 0&&n.push(r("div",{class:i.value},c)),r("div",{class:l.value+(e.inlineActions===!1&&c!==void 0?" q-banner--top-padding":""),role:"alert"},n)}}}),U=h({name:"QToggle",props:{...q,icon:String,iconColor:String},emits:C,setup(e){function a(s,d){const l=u(()=>(s.value===!0?e.checkedIcon:d.value===!0?e.indeterminateIcon:e.uncheckedIcon)||e.icon),i=u(()=>s.value===!0?e.iconColor:null);return()=>[r("div",{class:"q-toggle__track"}),r("div",{class:"q-toggle__thumb absolute flex flex-center no-wrap"},l.value!==void 0?[r(V,{name:l.value,color:i.value})]:void 0)]}return S("toggle",a)}});const z=P(),j=Q({name:"login-page",components:{},data(){return{loading:!1,showError:"",form:{username:"",password:"",remind:!0}}},methods:{async onSubmit(){this.loading=!0;try{await z.LogIn(this.$router,this.form),this.showError=""}catch(e){throw this.showError=e.message,e}finally{this.loading=!1}}}});function F(e,a,s,d,l,i){return p(),v(B,{class:"flex flex-center"},{default:t(()=>[o(D,{class:"q-pa-md shadow-2",bordered:""},{default:t(()=>[o(f,{class:"text-center"},{default:t(()=>a[3]||(a[3]=[g("div",{class:"text-grey-9 text-h5 text-weight-bold"},"Sign in",-1),g("div",{class:"text-grey-8"},"Enter your email address and password to access admin panel.",-1)])),_:1}),e.showError?(p(),v(f,{key:0},{default:t(()=>[o(N,{"inline-actions":"",class:"text-white bg-red"},{default:t(()=>[E(I(e.showError),1)]),_:1})]),_:1})):_("",!0),o(f,null,{default:t(()=>[o($,{onSubmit:e.onSubmit,class:"q-gutter-sm"},{default:t(()=>[o(b,{filled:"",modelValue:e.form.username,"onUpdate:modelValue":a[0]||(a[0]=n=>e.form.username=n),label:"Username","lazy-rules":"",type:"text"},null,8,["modelValue"]),o(b,{filled:"",modelValue:e.form.password,"onUpdate:modelValue":a[1]||(a[1]=n=>e.form.password=n),label:"Password","lazy-rules":"",type:"password"},null,8,["modelValue"]),o(U,{modelValue:e.form.remind,"onUpdate:modelValue":a[2]||(a[2]=n=>e.form.remind=n),label:"Remember me"},null,8,["modelValue"]),g("div",null,[o(A,{loading:e.loading,label:"Sign in",type:"submit",color:"primary"},null,8,["loading"])])]),_:1},8,["onSubmit"])]),_:1})]),_:1})]),_:1})}var R=x(j,[["render",F]]);export{R as default};
1
+ import{h,i as w,j as y,k as u,l as r,m,n as k,p as q,q as C,s as S,t as V,_ as x,c as Q,o as p,e as v,w as t,v as B,f as o,x as f,y as g,z as E,A as I,B as _,C as $,D as b,E as A,F as D}from"./index.81c5f354.js";import{u as P}from"./auth-store.adb4e0f1.js";var N=h({name:"QBanner",props:{...w,inlineActions:Boolean,dense:Boolean,rounded:Boolean},setup(e,{slots:a}){const{proxy:{$q:s}}=k(),d=y(e,s),l=u(()=>"q-banner row items-center"+(e.dense===!0?" q-banner--dense":"")+(d.value===!0?" q-banner--dark q-dark":"")+(e.rounded===!0?" rounded-borders":"")),i=u(()=>`q-banner__actions row items-center justify-end col-${e.inlineActions===!0?"auto":"all"}`);return()=>{const n=[r("div",{class:"q-banner__avatar col-auto row items-center self-start"},m(a.avatar)),r("div",{class:"q-banner__content col text-body2"},m(a.default))],c=m(a.action);return c!==void 0&&n.push(r("div",{class:i.value},c)),r("div",{class:l.value+(e.inlineActions===!1&&c!==void 0?" q-banner--top-padding":""),role:"alert"},n)}}}),U=h({name:"QToggle",props:{...q,icon:String,iconColor:String},emits:C,setup(e){function a(s,d){const l=u(()=>(s.value===!0?e.checkedIcon:d.value===!0?e.indeterminateIcon:e.uncheckedIcon)||e.icon),i=u(()=>s.value===!0?e.iconColor:null);return()=>[r("div",{class:"q-toggle__track"}),r("div",{class:"q-toggle__thumb absolute flex flex-center no-wrap"},l.value!==void 0?[r(V,{name:l.value,color:i.value})]:void 0)]}return S("toggle",a)}});const z=P(),j=Q({name:"login-page",components:{},data(){return{loading:!1,showError:"",form:{username:"",password:"",remind:!0}}},methods:{async onSubmit(){this.loading=!0;try{await z.LogIn(this.$router,this.form),this.showError=""}catch(e){throw this.showError=e.message,e}finally{this.loading=!1}}}});function F(e,a,s,d,l,i){return p(),v(B,{class:"flex flex-center"},{default:t(()=>[o(D,{class:"q-pa-md shadow-2",bordered:""},{default:t(()=>[o(f,{class:"text-center"},{default:t(()=>a[3]||(a[3]=[g("div",{class:"text-grey-9 text-h5 text-weight-bold"},"Sign in",-1),g("div",{class:"text-grey-8"},"Enter your email address and password to access admin panel.",-1)])),_:1}),e.showError?(p(),v(f,{key:0},{default:t(()=>[o(N,{"inline-actions":"",class:"text-white bg-red"},{default:t(()=>[E(I(e.showError),1)]),_:1})]),_:1})):_("",!0),o(f,null,{default:t(()=>[o($,{onSubmit:e.onSubmit,class:"q-gutter-sm"},{default:t(()=>[o(b,{filled:"",modelValue:e.form.username,"onUpdate:modelValue":a[0]||(a[0]=n=>e.form.username=n),label:"Username","lazy-rules":"",type:"text"},null,8,["modelValue"]),o(b,{filled:"",modelValue:e.form.password,"onUpdate:modelValue":a[1]||(a[1]=n=>e.form.password=n),label:"Password","lazy-rules":"",type:"password"},null,8,["modelValue"]),o(U,{modelValue:e.form.remind,"onUpdate:modelValue":a[2]||(a[2]=n=>e.form.remind=n),label:"Remember me"},null,8,["modelValue"]),g("div",null,[o(A,{loading:e.loading,label:"Sign in",type:"submit",color:"primary"},null,8,["loading"])])]),_:1},8,["onSubmit"])]),_:1})]),_:1})]),_:1})}var R=x(j,[["render",F]]);export{R as default};
@@ -1 +1 @@
1
- import{d as l,u as i,a as r}from"./index.69bcbd86.js";const a="r2_explorer_session_token",c=l("auth",{state:()=>({}),getters:{isAuthenticated:e=>!!e.user,StateUser:e=>e.user},actions:{async LogIn(e,s){const o=i(),t=btoa(`${s.username}:${s.password}`);r.defaults.headers.common.Authorization=`Basic ${t}`;try{await o.loadServerConfigs(e,this.q)}catch(n){throw console.log(n),delete r.defaults.headers.common.Authorization,new Error("Invalid username or password")}r.defaults.headers.common.Authorization=`Basic ${t}`,s.remind===!0?localStorage.setItem(a,t):sessionStorage.setItem(a,t)},async CheckLoginInStorage(e,s){let o=sessionStorage.getItem(a),t=!1;if(o||(o=localStorage.getItem(a)),!o)return!1;const n=i();return r.defaults.headers.common.Authorization=`Basic ${o}`,t=await n.loadServerConfigs(e,s,!0),t||delete r.defaults.headers.common.Authorization,!1},async LogOut(e){localStorage.removeItem(a),sessionStorage.removeItem(a),await e.replace({name:"login"})}}});export{c as u};
1
+ import{d as l,u as i,a as r}from"./index.81c5f354.js";const a="r2_explorer_session_token",c=l("auth",{state:()=>({}),getters:{isAuthenticated:e=>!!e.user,StateUser:e=>e.user},actions:{async LogIn(e,s){const o=i(),t=btoa(`${s.username}:${s.password}`);r.defaults.headers.common.Authorization=`Basic ${t}`;try{await o.loadServerConfigs(e,this.q)}catch(n){throw console.log(n),delete r.defaults.headers.common.Authorization,new Error("Invalid username or password")}r.defaults.headers.common.Authorization=`Basic ${t}`,s.remind===!0?localStorage.setItem(a,t):sessionStorage.setItem(a,t)},async CheckLoginInStorage(e,s){let o=sessionStorage.getItem(a),t=!1;if(o||(o=localStorage.getItem(a)),!o)return!1;const n=i();return r.defaults.headers.common.Authorization=`Basic ${o}`,t=await n.loadServerConfigs(e,s,!0),t||delete r.defaults.headers.common.Authorization,!1},async LogOut(e){localStorage.removeItem(a),sessionStorage.removeItem(a),await e.replace({name:"login"})}}});export{c as u};
@@ -1 +1 @@
1
- import{b as e,u as r}from"./index.69bcbd86.js";import{u as s}from"./auth-store.f621e290.js";var c=e(async({app:o,router:t,store:a})=>{await s(a).CheckLoginInStorage(t,o.config.globalProperties.$q)===!1&&await r(a).loadServerConfigs(t,o.config.globalProperties.$q,!0)});export{c as default};
1
+ import{b as e,u as r}from"./index.81c5f354.js";import{u as s}from"./auth-store.adb4e0f1.js";var c=e(async({app:o,router:t,store:a})=>{await s(a).CheckLoginInStorage(t,o.config.globalProperties.$q)===!1&&await r(a).loadServerConfigs(t,o.config.globalProperties.$q,!0)});export{c as default};
@@ -1 +1 @@
1
- import{b as c}from"./index.69bcbd86.js";class n{constructor(){this.__stack={}}on(t,s,i){return(this.__stack[t]||(this.__stack[t]=[])).push({fn:s,ctx:i}),this}once(t,s,i){const o=(...e)=>{this.off(t,o),s.apply(i,e)};return o.__callback=s,this.on(t,o,i)}emit(t){const s=this.__stack[t];if(s!==void 0){const i=[].slice.call(arguments,1);s.forEach(o=>{o.fn.apply(o.ctx,i)})}return this}off(t,s){const i=this.__stack[t];if(i===void 0)return this;if(s===void 0)return delete this.__stack[t],this;const o=i.filter(e=>e.fn!==s&&e.fn.__callback!==s);return o.length!==0?this.__stack[t]=o:delete this.__stack[t],this}}var h=c(({app:r})=>{const t=new n;r.config.globalProperties.$bus=t,r.provide("bus",t)});export{h as default};
1
+ import{b as c}from"./index.81c5f354.js";class n{constructor(){this.__stack={}}on(t,s,i){return(this.__stack[t]||(this.__stack[t]=[])).push({fn:s,ctx:i}),this}once(t,s,i){const o=(...e)=>{this.off(t,o),s.apply(i,e)};return o.__callback=s,this.on(t,o,i)}emit(t){const s=this.__stack[t];if(s!==void 0){const i=[].slice.call(arguments,1);s.forEach(o=>{o.fn.apply(o.ctx,i)})}return this}off(t,s){const i=this.__stack[t];if(i===void 0)return this;if(s===void 0)return delete this.__stack[t],this;const o=i.filter(e=>e.fn!==s&&e.fn.__callback!==s);return o.length!==0?this.__stack[t]=o:delete this.__stack[t],this}}var h=c(({app:r})=>{const t=new n;r.config.globalProperties.$bus=t,r.provide("bus",t)});export{h as default};
@@ -98,7 +98,7 @@ ${b}
98
98
  `).forEach(y=>{m+=`${y.substring(1)}
99
99
  `}),d+m+b},fixCodeBlocks=replaceRegex(codeBlockFixRegex,codeBlockFixer),replaceMarkdown=u=>replaceParagraphs(replaceOrderedLists(replaceUnorderedLists(replaceHorizontalRules(replaceBlockquotes(replaceceStrikethrough(replaceBoldItalics(replaceHeadings(replaceLinks(replaceImages(replaceInlineCodes(replaceCodeBlocks(u)))))))))))),parseMarkdown=u=>fixCodeBlocks(replaceMarkdown(`
100
100
  ${u}
101
- `)).trim();var FilePreview_vue_vue_type_style_index_0_lang="";const _sfc_main$3={components:{LogGz,PdfViewer,EmailViewer},data:()=>({open:!1,editMode:!1,downloadProgress:0,abortControl:void 0,type:void 0,file:void 0,filename:void 0,fileData:void 0,fileDataEdited:void 0,previewConfig:[{extensions:["png","jpg","jpeg","webp","avif"],type:"image",downloadType:"objectUrl"},{extensions:["mp3"],type:"audio",downloadType:"objectUrl"},{extensions:["mp4","ogg"],type:"video",downloadType:"objectUrl"},{extensions:["pdf"],type:"pdf",downloadType:"objectUrl"},{extensions:["txt"],type:"text",downloadType:"text"},{extensions:["md"],type:"markdown",downloadType:"text"},{extensions:["csv"],type:"csv",downloadType:"text"},{extensions:["json"],type:"json",downloadType:"text"},{extensions:["html"],type:"html",downloadType:"text"},{extensions:["log.gz"],type:"logs",downloadType:"blob"},{extensions:["eml"],type:"email",downloadType:"text"}]}),methods:{getType(u){for(const d of this.previewConfig)for(const g of d.extensions)if(u.endsWith(g))return{type:d.type,downloadType:d.downloadType};return{type:"unknown",downloadType:"text"}},async openFile(u){if(bytesToMegabytes(u.size)>200){this.q.notify({message:"File is too big to preview.",color:"orange"});return}const d=this.getType(u.name);if(this.abortControl=new AbortController,await this.$router.push({name:"files-file",params:{bucket:this.$route.params.bucket,folder:this.$route.params.folder||ROOT_FOLDER,file:u.nameHash}}),this.filename=u.name,this.file=u,this.open=!0,d){this.type=d.type;const g=await apiHandler.downloadFile(this.$route.params.bucket,u.key,d,b=>{this.downloadProgress=b.loaded/b.total},this.abortControl);let f;if(d.downloadType==="objectUrl"){const b=new Blob([g.data]);f=URL.createObjectURL(b)}else d.downloadType,f=g.data;this.fileData=f}},close(){this.abortControl&&this.abortControl.abort(),this.cancelEdit(),this.$route.params.file&&(this.$route.params.folder===ROOT_FOLDER?this.$router.push({name:"files-home",params:{bucket:this.$route.params.bucket}}):this.$router.push({name:"files-folder",params:{bucket:this.$route.params.bucket,folder:this.$route.params.folder}})),this.type=void 0,this.fileData=void 0,this.filename=void 0,this.abortControl=void 0,this.downloadProgress=0},markdownParser(u){return parseMarkdown(u)},csvParser:u=>{let d="";const g=u.split(`
101
+ `)).trim();var FilePreview_vue_vue_type_style_index_0_lang="";const _sfc_main$3={components:{LogGz,PdfViewer,EmailViewer},data:()=>({open:!1,editMode:!1,downloadProgress:0,abortControl:void 0,type:void 0,file:void 0,filename:void 0,fileData:void 0,fileDataEdited:void 0,previewConfig:[{extensions:["png","jpg","jpeg","webp","avif"],type:"image",downloadType:"objectUrl"},{extensions:["mp3"],type:"audio",downloadType:"objectUrl"},{extensions:["mp4","ogg"],type:"video",downloadType:"objectUrl"},{extensions:["pdf"],type:"pdf",downloadType:"objectUrl"},{extensions:["txt"],type:"text",downloadType:"text"},{extensions:["md"],type:"markdown",downloadType:"text"},{extensions:["csv"],type:"csv",downloadType:"text"},{extensions:["json"],type:"json",downloadType:"text"},{extensions:["html"],type:"html",downloadType:"text"},{extensions:["log.gz"],type:"logs",downloadType:"blob"},{extensions:["eml"],type:"email",downloadType:"text"}]}),methods:{getType(u){for(const d of this.previewConfig)for(const g of d.extensions)if(u.toLowerCase().endsWith(g))return{type:d.type,downloadType:d.downloadType};return{type:"unknown",downloadType:"text"}},async openFile(u){if(bytesToMegabytes(u.size)>200){this.q.notify({message:"File is too big to preview.",color:"orange"});return}const d=this.getType(u.name);if(this.abortControl=new AbortController,await this.$router.push({name:"files-file",params:{bucket:this.$route.params.bucket,folder:this.$route.params.folder||ROOT_FOLDER,file:u.nameHash}}),this.filename=u.name,this.file=u,this.open=!0,d){this.type=d.type;const g=await apiHandler.downloadFile(this.$route.params.bucket,u.key,d,b=>{this.downloadProgress=b.loaded/b.total},this.abortControl);let f;if(d.downloadType==="objectUrl"){const b=new Blob([g.data]);f=URL.createObjectURL(b)}else d.downloadType,f=g.data;this.fileData=f}},close(){this.abortControl&&this.abortControl.abort(),this.cancelEdit(),this.$route.params.file&&(this.$route.params.folder===ROOT_FOLDER?this.$router.push({name:"files-home",params:{bucket:this.$route.params.bucket}}):this.$router.push({name:"files-folder",params:{bucket:this.$route.params.bucket,folder:this.$route.params.folder}})),this.type=void 0,this.fileData=void 0,this.filename=void 0,this.abortControl=void 0,this.downloadProgress=0},markdownParser(u){return parseMarkdown(u)},csvParser:u=>{let d="";const g=u.split(`
102
102
  `);if(g.length===0)return"<h2>Empty csv</h2>";for(const[f,b]of g.entries()){let m="";const y=b.split(/(\s*"[^"]+"\s*|\s*[^,]+|,)(?=,|$)/g).filter(k=>k!==""&&k!==",");for(const k of y)f===0?m+=`<th>${k.replaceAll('"',"")}</th>`:m+=`<td>${k.replaceAll('"',"")}</td>`;d+=`<tr>${m}</tr>`}return`<table class="table">${d}</table>`},enableEdit:function(){typeof this.fileData=="object"?this.fileDataEdited=JSON.stringify(this.fileData,null,2):this.fileDataEdited=this.fileData,this.editMode=!0},cancelEdit:function(){this.editMode=!1,this.fileDataEdited=void 0},validateEdit:(u,d)=>{if(u==="json")try{return JSON.parse(d),!0}catch{return!1}return!0},saveEdit:async function(){var b,m;if(!this.validateEdit(this.type,this.fileDataEdited)){this.q.notify({type:"negative",message:`Content is not valid ${this.type}.`});return}const d=this.q.notify({group:!1,spinner:!0,message:"Updating file...",caption:"0%",timeout:0}),g={};(b=this.file.httpMetadata)!=null&&b.contentType&&(g.type=(m=this.file.httpMetadata)==null?void 0:m.contentType);const f=new Blob([this.fileDataEdited],g);await apiHandler.uploadObjects(f,this.file.key,this.selectedBucket,y=>{d({caption:`${Number.parseInt(y.loaded*100/f.size)}%`})}),d({icon:"done",spinner:!1,caption:"100%",message:"File updated!",timeout:5e3}),this.cancelEdit(),this.openFile(this.file)}},computed:{selectedBucket:function(){return this.$route.params.bucket}},setup(){return{q:useQuasar()}}},_hoisted_1$1={class:"text-center q-my-lg"},_hoisted_2$1={class:"text-center q-my-lg"},_hoisted_3$1={key:0,class:"flex column",style:{height:"100%"}},_hoisted_4$1={class:"file-edit"},_hoisted_5$1=["src"],_hoisted_6$1={key:3,class:"text-center"},_hoisted_7$1={controls:""},_hoisted_8=["src"],_hoisted_9={key:4,class:"text-center"},_hoisted_10={controls:"",style:{"max-width":"100%",height:"auto"}},_hoisted_11=["src"],_hoisted_12=["innerHTML"],_hoisted_13=["innerHTML"],_hoisted_14=["innerHTML"],_hoisted_15=["innerHTML"],_hoisted_16=["innerHTML"],_hoisted_17={key:12,class:"flex column",style:{height:"100%","flex-wrap":"nowrap","max-width":"100%","line-break":"anywhere"}},_hoisted_18={class:"file-edit"},_hoisted_19=["innerHTML"];function _sfc_render$3(u,d,g,f,b,m){const y=resolveComponent("pdf-viewer"),k=resolveComponent("log-gz"),a=resolveComponent("email-viewer");return openBlock(),createBlock(QDialog,{modelValue:u.open,"onUpdate:modelValue":d[1]||(d[1]=q=>u.open=q),"full-width":"","full-height":"",onHide:m.close},{default:withCtx(()=>[createVNode(QCard,{class:"flex column"},{default:withCtx(()=>[createVNode(QCardSection,{class:"row items-center q-p-sm bg-grey-3",style:{"font-size":"20px"}},{default:withCtx(()=>[createBaseVNode("div",null,toDisplayString(u.filename),1),u.editMode?(openBlock(),createElementBlock(Fragment,{key:0},[createVNode(QBtn,{icon:"delete",label:"Cancel",size:"md",class:"q-ml-md",color:"red",dense:"",onClick:m.cancelEdit},null,8,["onClick"]),createVNode(QBtn,{icon:"save",label:"Save",size:"md",class:"q-ml-md",color:"green",dense:"",onClick:m.saveEdit},null,8,["onClick"])],64)):(openBlock(),createBlock(QBtn,{key:1,icon:"edit",label:"edit",size:"md",class:"q-ml-md",color:"orange",dense:"",onClick:m.enableEdit},null,8,["onClick"])),createVNode(QSpace),withDirectives(createVNode(QBtn,{icon:"close",size:"md",round:"",dense:""},null,512),[[ClosePopup]])]),_:1}),createVNode(QCardSection,{class:"scroll",style:{flex:"1"}},{default:withCtx(()=>[u.fileData===void 0&&u.type?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode("div",_hoisted_1$1,[createVNode(QSpinner,{color:"primary",size:"3em"})]),createBaseVNode("div",_hoisted_2$1,[createVNode(QLinearProgress,{stripe:"",size:"10px",value:u.downloadProgress},null,8,["value"])])],64)):(openBlock(),createElementBlock(Fragment,{key:1},[u.editMode?(openBlock(),createElementBlock("div",_hoisted_3$1,[createVNode(QCard,{class:"bg-orange-2",flat:"",square:""},{default:withCtx(()=>[createVNode(QCardSection,null,{default:withCtx(()=>d[2]||(d[2]=[createTextVNode(" File editing is still in tests! ")])),_:1})]),_:1}),createBaseVNode("div",_hoisted_4$1,[createVNode(QInput,{modelValue:u.fileDataEdited,"onUpdate:modelValue":d[0]||(d[0]=q=>u.fileDataEdited=q),filled:"",outlined:"",type:"textarea"},null,8,["modelValue"])])])):u.type==="pdf"?(openBlock(),createBlock(y,{key:1,pdfUrl:u.fileData},null,8,["pdfUrl"])):u.type==="image"?(openBlock(),createElementBlock("img",{key:2,src:u.fileData,class:"preview-image"},null,8,_hoisted_5$1)):u.type==="audio"?(openBlock(),createElementBlock("div",_hoisted_6$1,[createBaseVNode("audio",_hoisted_7$1,[createBaseVNode("source",{src:u.fileData},null,8,_hoisted_8),d[3]||(d[3]=createTextVNode(" Your browser does not support the audio element. "))])])):u.type==="video"?(openBlock(),createElementBlock("div",_hoisted_9,[createBaseVNode("video",_hoisted_10,[createBaseVNode("source",{src:u.fileData},null,8,_hoisted_11),d[4]||(d[4]=createTextVNode(" Your browser does not support the video tag. "))])])):u.type==="text"?(openBlock(),createElementBlock("div",{key:5,innerHTML:u.fileData.replaceAll(`
103
103
  `,"<br>")},null,8,_hoisted_12)):u.type==="json"?(openBlock(),createElementBlock("pre",{key:6,innerHTML:JSON.stringify(u.fileData,null,2)},null,8,_hoisted_13)):u.type==="html"?(openBlock(),createElementBlock("pre",{key:7,innerHTML:u.fileData},null,8,_hoisted_14)):u.type==="markdown"?(openBlock(),createElementBlock("div",{key:8,class:"markdown",innerHTML:m.markdownParser(u.fileData)},null,8,_hoisted_15)):u.type==="csv"?(openBlock(),createElementBlock("div",{key:9,class:"markdown",innerHTML:m.csvParser(u.fileData)},null,8,_hoisted_16)):u.type==="logs"?(openBlock(),createBlock(k,{key:10,filedata:u.fileData},null,8,["filedata"])):u.type==="email"?(openBlock(),createBlock(a,{key:11,filedata:u.fileData},null,8,["filedata"])):u.fileData?(openBlock(),createElementBlock("div",_hoisted_17,[createVNode(QCard,{class:"bg-orange-2",flat:"",square:""},{default:withCtx(()=>[createVNode(QCardSection,null,{default:withCtx(()=>d[5]||(d[5]=[createTextVNode(" This in a unknown file type, opening as text. ")])),_:1})]),_:1}),createBaseVNode("div",_hoisted_18,[createBaseVNode("div",{innerHTML:u.fileData.replaceAll(`
104
- `,"<br>")},null,8,_hoisted_19)])])):createCommentVNode("",!0)],64))]),_:1})]),_:1})]),_:1},8,["modelValue","onHide"])}var FilePreview=_export_sfc(_sfc_main$3,[["render",_sfc_render$3]]),DragAndDrop_vue_vue_type_style_index_0_scoped_true_lang="";const _sfc_main$2={data:()=>({isHover:!1,filelist:[],dragContainer:{top:0,bottom:0,left:0,right:0}}),computed:{selectedBucket:function(){return this.$route.params.bucket},selectedFolder:function(){return this.$route.params.folder&&this.$route.params.folder!==ROOT_FOLDER?decode(this.$route.params.folder):""}},methods:{openFilesUploader(){this.$refs.filesUploader.click()},openFoldersUploader(){this.$refs.foldersUploader.click()},dragover(u){if(this.mainStore.apiReadonly||this.isHover===!0)return;const d=this.$refs.dragContainer.getBoundingClientRect();this.dragContainer={top:d.top,bottom:d.bottom,left:d.left,right:d.right},this.isHover=!0},dragleave(u){this.isHover!==!1&&(u.clientX<this.dragContainer.left||u.clientX>this.dragContainer.right||u.clientY>this.dragContainer.bottom||u.clientY<this.dragContainer.top)&&(this.isHover=!1)},inputFiles(u){this.uploadFiles({"":u.target.files})},inputFolders(u){const d={};for(const g of u.target.files){const f=g.webkitRelativePath.lastIndexOf("/"),b=g.webkitRelativePath.slice(0,f);d[b]===void 0&&(d[b]=[]),d[b].push(g)}this.uploadFiles(d)},async uploadFiles(u){let d=0,g=0;const f=[];for(const[k,a]of Object.entries(u)){if(k!==""){const q=`${this.selectedFolder+k}/`;await apiHandler.createFolder(q,this.selectedBucket)}d+=a.length;for(const q of a)f.push(q.name),g+=q.size}this.$bus.emit("fetchFiles");const b=this.q.notify({group:!1,spinner:!0,message:`Uploading files 1/${f.length}...`,caption:"0%",timeout:0});let m=0,y=0;for(const[k,a]of Object.entries(u)){b({message:`Uploading files ${m+1}/${f.length}...`,caption:`${Number.parseInt((m+1)*100/f.length)}%`});let q=this.selectedFolder+k;q.length>0&&q.slice(-1)!=="/"&&(q+="/"),(q==="/"||q===ROOT_FOLDER)&&(q="");for(const w of a){m+=1;const $=q+w.name,Q=95*1024*1024;if(w.size>Q){const{uploadId:C}=(await apiHandler.multipartCreate(w,$,this.selectedBucket)).data;let v=1;const J=[];for(let ae=0;ae<w.size;ae+=Q){const H=Math.min(ae+Q,w.size),Y=w.slice(ae,H),{data:G}=await apiHandler.multipartUpload(C,v,this.selectedBucket,$,Y,j=>{b({caption:`${Number.parseInt((y+ae+j.loaded)*100/g)}%`})});J.push(G),v+=1}await apiHandler.multipartComplete(w,$,this.selectedBucket,J,C)}else await apiHandler.uploadObjects(w,$,this.selectedBucket,C=>{b({caption:`${Number.parseInt((y+C.loaded)*100/g)}%`})});y+=w.size}}b({icon:"done",spinner:!1,caption:"100%",message:"Files Uploaded!",timeout:5e3}),this.$bus.emit("fetchFiles")},async traverseFileTree(u,d,g,f){if(d=d||"",u.isFile&&f>0)await new Promise((m,y)=>{u.file(k=>{g[d].push(k),m()})});else if(u.isDirectory){const b=d?`${d}/${u.name}`:u.name;g[b]===void 0&&(g[b]=[]);const m=u.createReader();await new Promise((k,a)=>{m.readEntries(async q=>{for(let w=0;w<q.length;w++)await this.traverseFileTree(q[w],b,g,f+1);k()})})}},async drop(u){if(!this.isHover)return;const d=u.dataTransfer.files,g=await u.dataTransfer.items,f={};for(const m of g){const y=m.webkitGetAsEntry();y&&await this.traverseFileTree(y,"",f,0)}const b=[];for(const m of d)f[m.name]===void 0&&b.push(m);f[""]=b,this.uploadFiles(f),this.isHover=!1}},mounted(){this.$bus.on("openFilesUploader",this.openFilesUploader),this.$bus.on("openFoldersUploader",this.openFoldersUploader)},beforeUnmount(){this.$bus.off("openFilesUploader"),this.$bus.off("openFoldersUploader")},setup(){return{mainStore:useMainStore(),q:useQuasar()}}};function _sfc_render$2(u,d,g,f,b,m){return openBlock(),createElementBlock(Fragment,null,[createBaseVNode("div",{ref:"dragContainer",class:normalizeClass(["upload-box",{active:u.isHover}]),onDragover:d[0]||(d[0]=withModifiers((...y)=>m.dragover&&m.dragover(...y),["prevent"])),onDragleave:d[1]||(d[1]=withModifiers((...y)=>m.dragleave&&m.dragleave(...y),["prevent"])),onDrop:d[2]||(d[2]=withModifiers((...y)=>m.drop&&m.drop(...y),["prevent"]))},[renderSlot(u.$slots,"default",{},void 0,!0),d[5]||(d[5]=createBaseVNode("div",{class:"drop-files"},[createBaseVNode("div",{class:"box"},[createBaseVNode("h3",null,"Drop files to upload"),createBaseVNode("span",{class:"font-28"},[createBaseVNode("i",{class:"bi bi-cloud-upload-fill"})])])],-1))],34),createBaseVNode("input",{style:{display:"none"},onChange:d[3]||(d[3]=(...y)=>m.inputFiles&&m.inputFiles(...y)),type:"file",name:"files[]",ref:"filesUploader",multiple:""},null,544),createBaseVNode("input",{style:{display:"none"},onChange:d[4]||(d[4]=(...y)=>m.inputFolders&&m.inputFolders(...y)),type:"file",webkitdirectory:"",name:"files[]",ref:"foldersUploader",multiple:""},null,544)],64)}var DragAndDrop=_export_sfc(_sfc_main$2,[["render",_sfc_render$2],["__scopeId","data-v-8e99a572"]]);const _sfc_main$1={name:"FileContextMenu",props:{prop:{}},computed:{selectedBucket:function(){return this.$route.params.bucket},selectedFolder:function(){return this.$route.params.folder&&this.$route.params.folder!==ROOT_FOLDER?decode(this.$route.params.folder):""}},methods:{renameObject:function(){this.$emit("renameObject",this.prop.row)},updateMetadataObject:function(){this.$emit("updateMetadataObject",this.prop.row)},openObject:function(){this.$emit("openObject",this.prop.row)},deleteObject:function(){this.$emit("deleteObject",this.prop.row)},shareObject:async function(){let u;this.prop.row.type==="folder"?u=window.location.origin+this.$router.resolve({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(this.prop.row.key)}}).href:u=window.location.origin+this.$router.resolve({name:"files-file",params:{bucket:this.selectedBucket,folder:this.selectedFolder?encode(this.selectedFolder):ROOT_FOLDER,file:this.prop.row.nameHash}}).href;try{await navigator.clipboard.writeText(u),this.q.notify({message:"Link to file copied to clipboard!",timeout:5e3,type:"positive"})}catch(d){this.q.notify({message:`Failed to copy: ${d}`,timeout:5e3,type:"negative"})}},downloadObject:function(){const u=document.createElement("a");u.download=this.prop.row.name,u.href=`${this.mainStore.serverUrl}/api/buckets/${this.selectedBucket}/${encode(this.prop.row.key)}`,document.body.appendChild(u),u.click(),document.body.removeChild(u)}},setup(){return{mainStore:useMainStore(),q:useQuasar()}}};function _sfc_render$1(u,d,g,f,b,m){return openBlock(),createBlock(QList,{style:{"min-width":"100px"}},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(QItem,{clickable:"",onClick:m.openObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[0]||(d[0]=[createTextVNode("Open")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]),g.prop.row.type==="file"?withDirectives((openBlock(),createBlock(QItem,{key:0,clickable:"",onClick:m.downloadObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[1]||(d[1]=[createTextVNode("Download")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]):createCommentVNode("",!0),g.prop.row.type==="file"?withDirectives((openBlock(),createBlock(QItem,{key:1,clickable:"",onClick:m.renameObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[2]||(d[2]=[createTextVNode("Rename")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]):createCommentVNode("",!0),g.prop.row.type==="file"?withDirectives((openBlock(),createBlock(QItem,{key:2,clickable:"",onClick:m.updateMetadataObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[3]||(d[3]=[createTextVNode("Update Metadata")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]):createCommentVNode("",!0),withDirectives((openBlock(),createBlock(QItem,{clickable:"",onClick:m.shareObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[4]||(d[4]=[createTextVNode("Get sharable link")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]),withDirectives((openBlock(),createBlock(QItem,{clickable:"",onClick:m.deleteObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[5]||(d[5]=[createTextVNode("Delete")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]])]),_:1})}var FileContextMenu=_export_sfc(_sfc_main$1,[["render",_sfc_render$1]]),FilesFolderPage_vue_vue_type_style_index_0_lang="";const _sfc_main=defineComponent({name:"FilesIndexPage",components:{FileContextMenu,FileOptions,DragAndDrop,FilePreview},data:()=>({loading:!1,rows:[],columns:[{name:"name",required:!0,label:"Name",align:"left",field:"name",sortable:!0,sort:(u,d,g,f)=>g.type==="folder"?f.type==="folder"?u.localeCompare(d):1:f.type==="folder"?-1:u.localeCompare(d)},{name:"lastModified",required:!0,label:"Last Modified",align:"left",field:"lastModified",sortable:!0,sort:(u,d,g,f)=>g.timestamp-f.timestamp},{name:"size",required:!0,label:"Size",align:"left",field:"size",sortable:!0,sort:(u,d,g,f)=>g.sizeRaw-f.sizeRaw},{name:"options",label:"",sortable:!1}]}),computed:{selectedBucket:function(){return this.$route.params.bucket},selectedFolder:function(){return this.$route.params.folder&&this.$route.params.folder!==ROOT_FOLDER?decode(this.$route.params.folder):""},breadcrumbs:function(){return this.selectedFolder?[{name:this.selectedBucket,path:"/"},...this.selectedFolder.split("/").filter(u=>u!=="").map((u,d,g)=>({name:u,path:`${g.slice(0,d+1).join("/").replace("Home/","")}/`}))]:[{name:this.selectedBucket,path:"/"}]}},watch:{selectedBucket(u){this.fetchFiles()},selectedFolder(u){this.fetchFiles()}},methods:{openRowClick:function(u,d,g){u.preventDefault(),this.openObject(d)},openRowDlbClick:function(u,d,g){u.preventDefault(),this.$bus.emit("openFileDetails",d)},breadcrumbsClick:function(u){this.$router.push({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(u.path)}})},rowClick:function(u,d){d.type==="folder"?this.$router.push({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(d.key)}}):this.$refs.preview.openFile(d)},openObject:function(u){u.type==="folder"?this.$router.push({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(u.key)}}):this.$refs.preview.openFile(u)},renameObject:function(u){u.type==="folder"?this.$router.push({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(u.key)}}):this.$refs.preview.openFile(u)},fetchFiles:async function(){this.loading=!0,this.rows=await apiHandler.fetchFile(this.selectedBucket,this.selectedFolder,"/"),this.loading=!1},openPreviewFromKey:async function(){let u=`${decode(this.$route.params.file)}`;this.selectedFolder&&this.selectedFolder!==ROOT_FOLDER&&(u=`${this.selectedFolder}${decode(this.$route.params.file)}`);const d=await apiHandler.headFile(this.selectedBucket,u);this.$refs.preview.openFile(d)}},created(){this.fetchFiles()},mounted(){this.$refs.table.sort("name"),this.$bus.on("fetchFiles",this.fetchFiles),this.$route.params.file&&this.openPreviewFromKey()},beforeUnmount(){this.$bus.off("fetchFiles")},setup(){return{mainStore:useMainStore(),q:useQuasar()}}}),_hoisted_1={class:"q-pa-md"},_hoisted_2={class:"full-width q-my-lg"},_hoisted_3={class:"flex items-center justify-center"},_hoisted_4={key:0,class:"full-width q-my-lg"},_hoisted_5={class:"flex items-center justify-center"},_hoisted_6={class:"flex",style:{"align-items":"center"}},_hoisted_7={class:"text-right"};function _sfc_render(u,d,g,f,b,m){const y=resolveComponent("FileContextMenu"),k=resolveComponent("drag-and-drop"),a=resolveComponent("file-preview"),q=resolveComponent("file-options");return openBlock(),createElementBlock(Fragment,null,[createVNode(QPage,{class:""},{default:withCtx(()=>[createBaseVNode("div",_hoisted_1,[createVNode(QBreadcrumbs,null,{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(u.breadcrumbs,w=>(openBlock(),createBlock(QBreadcrumbsEl,{style:{cursor:"pointer"},key:w.name,label:w.name,onClick:$=>u.breadcrumbsClick(w)},null,8,["label","onClick"]))),128))]),_:1}),createVNode(k,{ref:"uploader"},{default:withCtx(()=>[createVNode(QTable,{ref:"table",rows:u.rows,columns:u.columns,"row-key":"name",loading:u.loading,"hide-pagination":!0,"rows-per-page-options":[0],"column-sort-order":"da",flat:!0,"table-class":"file-list",onRowDblclick:u.openRowClick,onRowClick:u.openRowDlbClick},{loading:withCtx(()=>[createBaseVNode("div",_hoisted_2,[createBaseVNode("h6",_hoisted_3,[createVNode(QSpinner,{color:"primary",size:"xl"})])])]),"no-data":withCtx(()=>[u.loading?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_4,[createBaseVNode("h6",_hoisted_5,[createVNode(QIcon,{name:"folder",color:"orange",size:"lg"}),d[0]||(d[0]=createTextVNode("This folder is empty"))])]))]),"body-cell-name":withCtx(w=>[createBaseVNode("td",_hoisted_6,[createVNode(QIcon,{name:w.row.icon,size:"sm",color:w.row.color,class:"q-mr-xs"},null,8,["name","color"]),createTextVNode(" "+toDisplayString(w.row.name),1)])]),"body-cell":withCtx(w=>[createVNode(QTd,{props:w},{default:withCtx(()=>[createTextVNode(toDisplayString(w.value),1)]),_:2},1032,["props"]),createVNode(QMenu,{"touch-position":"","context-menu":""},{default:withCtx(()=>[createVNode(y,{prop:w,onOpenObject:u.openObject,onDeleteObject:u.$refs.options.deleteObject,onRenameObject:u.$refs.options.renameObject,onUpdateMetadataObject:u.$refs.options.updateMetadataObject},null,8,["prop","onOpenObject","onDeleteObject","onRenameObject","onUpdateMetadataObject"])]),_:2},1024)]),"body-cell-options":withCtx(w=>[createBaseVNode("td",_hoisted_7,[createVNode(QBtn,{round:"",flat:"",icon:"more_vert",size:"sm"},{default:withCtx(()=>[createVNode(QMenu,null,{default:withCtx(()=>[createVNode(y,{prop:w,onOpenObject:u.openObject,onDeleteObject:u.$refs.options.deleteObject,onRenameObject:u.$refs.options.renameObject,onUpdateMetadataObject:u.$refs.options.updateMetadataObject},null,8,["prop","onOpenObject","onDeleteObject","onRenameObject","onUpdateMetadataObject"])]),_:2},1024)]),_:2},1024)])]),_:1},8,["rows","columns","loading","onRowDblclick","onRowClick"])]),_:1},512)])]),_:1}),createVNode(a,{ref:"preview"},null,512),createVNode(q,{ref:"options"},null,512)],64)}var FilesFolderPage=_export_sfc(_sfc_main,[["render",_sfc_render]]);const routes=[{path:"/auth",component:()=>__vitePreload(()=>import("./AuthLayout.7618f480.js"),[]),children:[{path:"login",name:"login",component:()=>__vitePreload(()=>import("./LoginPage.149f1ef8.js"),["assets/LoginPage.149f1ef8.js","assets/auth-store.f621e290.js"])}]},{path:"/",component:MainLayout,children:[{path:"/",name:"home",component:HomePage},{path:"/:bucket/files",name:"files-home",component:FilesFolderPage},{path:"/:bucket/files/:folder",name:"files-folder",component:FilesFolderPage},{path:"/:bucket/files/:folder/:file",name:"files-file",component:FilesFolderPage},{path:"/:bucket/email",name:"email-home",component:EmailFolderPage},{path:"/:bucket/email/:folder",name:"email-folder",component:EmailFolderPage},{path:"/:bucket/email/:folder/:file",name:"email-file",component:()=>__vitePreload(()=>import("./EmailFilePage.bbf7a6c5.js"),["assets/EmailFilePage.bbf7a6c5.js","assets/EmailFilePage.c4890c9c.css"])},{path:"/storage/:bucket",redirect:u=>({name:"files-home",params:{bucket:u.params.bucket}})},{path:"/storage/:bucket/:folder",redirect:u=>({name:"files-folder",params:{bucket:u.params.bucket,folder:u.params.folder}})},{path:"/storage/:bucket/:folder/:file",redirect:u=>({name:"files-file",params:{bucket:u.params.bucket,folder:u.params.folder,file:u.params.file}})}]},{path:"/:catchAll(.*)*",component:()=>__vitePreload(()=>import("./ErrorNotFound.699f3886.js"),[])}];var createRouter=()=>createRouter$1({scrollBehavior:()=>({left:0,top:0}),routes,history:createWebHistory("/")});async function createQuasarApp(u,d){const g=u(App);g.use(Quasar,d);const f=typeof createStore=="function"?await createStore({}):createStore;g.use(f);const b=markRaw(typeof createRouter=="function"?await createRouter({store:f}):createRouter);return f.use(({store:m})=>{m.router=b}),{app:g,store:f,router:b}}let uid=0;const defaults={},groups={},notificationsList={},positionClass={},emptyRE=/^\s*$/,notifRefs=[],invalidTimeoutValues=[void 0,null,!0,!1,""],positionList=["top-left","top-right","bottom-left","bottom-right","top","bottom","left","right","center"],badgePositions=["top-left","top-right","bottom-left","bottom-right"],notifTypes={positive:{icon:u=>u.iconSet.type.positive,color:"positive"},negative:{icon:u=>u.iconSet.type.negative,color:"negative"},warning:{icon:u=>u.iconSet.type.warning,color:"warning",textColor:"dark"},info:{icon:u=>u.iconSet.type.info,color:"info"},ongoing:{group:!1,timeout:0,spinner:!0,color:"grey-8"}};function addNotification(u,d,g){if(!u)return logError("parameter required");let f;const b={textColor:"white"};if(u.ignoreDefaults!==!0&&Object.assign(b,defaults),isObject$1(u)===!1&&(b.type&&Object.assign(b,notifTypes[b.type]),u={message:u}),Object.assign(b,notifTypes[u.type||b.type],u),typeof b.icon=="function"&&(b.icon=b.icon(d)),b.spinner?(b.spinner===!0&&(b.spinner=QSpinner),b.spinner=markRaw(b.spinner)):b.spinner=!1,b.meta={hasMedia:Boolean(b.spinner!==!1||b.icon||b.avatar),hasText:hasContent(b.message)||hasContent(b.caption)},b.position){if(positionList.includes(b.position)===!1)return logError("wrong position",u)}else b.position="bottom";if(invalidTimeoutValues.includes(b.timeout)===!0)b.timeout=5e3;else{const a=Number(b.timeout);if(isNaN(a)||a<0)return logError("wrong timeout",u);b.timeout=Number.isFinite(a)?a:0}b.timeout===0?b.progress=!1:b.progress===!0&&(b.meta.progressClass="q-notification__progress"+(b.progressClass?` ${b.progressClass}`:""),b.meta.progressStyle={animationDuration:`${b.timeout+1e3}ms`});const m=(Array.isArray(u.actions)===!0?u.actions:[]).concat(u.ignoreDefaults!==!0&&Array.isArray(defaults.actions)===!0?defaults.actions:[]).concat(notifTypes[u.type]!==void 0&&Array.isArray(notifTypes[u.type].actions)===!0?notifTypes[u.type].actions:[]),{closeBtn:y}=b;if(y&&m.push({label:typeof y=="string"?y:d.lang.label.close}),b.actions=m.map(({handler:a,noDismiss:q,...w})=>({flat:!0,...w,onClick:typeof a=="function"?()=>{a(),q!==!0&&k()}:()=>{k()}})),b.multiLine===void 0&&(b.multiLine=b.actions.length>1),Object.assign(b.meta,{class:`q-notification row items-stretch q-notification--${b.multiLine===!0?"multi-line":"standard"}`+(b.color!==void 0?` bg-${b.color}`:"")+(b.textColor!==void 0?` text-${b.textColor}`:"")+(b.classes!==void 0?` ${b.classes}`:""),wrapperClass:"q-notification__wrapper col relative-position border-radius-inherit "+(b.multiLine===!0?"column no-wrap justify-center":"row items-center"),contentClass:"q-notification__content row items-center"+(b.multiLine===!0?"":" col"),leftClass:b.meta.hasText===!0?"additional":"single",attrs:{role:"alert",...b.attrs}}),b.group===!1?(b.group=void 0,b.meta.group=void 0):((b.group===void 0||b.group===!0)&&(b.group=[b.message,b.caption,b.multiline].concat(b.actions.map(a=>`${a.label}*${a.icon}`)).join("|")),b.meta.group=b.group+"|"+b.position),b.actions.length===0?b.actions=void 0:b.meta.actionsClass="q-notification__actions row items-center "+(b.multiLine===!0?"justify-end":"col-auto")+(b.meta.hasMedia===!0?" q-notification__actions--with-media":""),g!==void 0){g.notif.meta.timer&&(clearTimeout(g.notif.meta.timer),g.notif.meta.timer=void 0),b.meta.uid=g.notif.meta.uid;const a=notificationsList[b.position].value.indexOf(g.notif);notificationsList[b.position].value[a]=b}else{const a=groups[b.meta.group];if(a===void 0){if(b.meta.uid=uid++,b.meta.badge=1,["left","right","center"].indexOf(b.position)!==-1)notificationsList[b.position].value.splice(Math.floor(notificationsList[b.position].value.length/2),0,b);else{const q=b.position.indexOf("top")!==-1?"unshift":"push";notificationsList[b.position].value[q](b)}b.group!==void 0&&(groups[b.meta.group]=b)}else{if(a.meta.timer&&(clearTimeout(a.meta.timer),a.meta.timer=void 0),b.badgePosition!==void 0){if(badgePositions.includes(b.badgePosition)===!1)return logError("wrong badgePosition",u)}else b.badgePosition=`top-${b.position.indexOf("left")!==-1?"right":"left"}`;b.meta.uid=a.meta.uid,b.meta.badge=a.meta.badge+1,b.meta.badgeClass=`q-notification__badge q-notification__badge--${b.badgePosition}`+(b.badgeColor!==void 0?` bg-${b.badgeColor}`:"")+(b.badgeTextColor!==void 0?` text-${b.badgeTextColor}`:"")+(b.badgeClass?` ${b.badgeClass}`:"");const q=notificationsList[b.position].value.indexOf(a);notificationsList[b.position].value[q]=groups[b.meta.group]=b}}const k=()=>{removeNotification(b),f=void 0};if(b.timeout>0&&(b.meta.timer=setTimeout(()=>{b.meta.timer=void 0,k()},b.timeout+1e3)),b.group!==void 0)return a=>{a!==void 0?logError("trying to update a grouped one which is forbidden",u):k()};if(f={dismiss:k,config:u,notif:b},g!==void 0){Object.assign(g,f);return}return a=>{if(f!==void 0)if(a===void 0)f.dismiss();else{const q=Object.assign({},f.config,a,{group:!1,position:b.position});addNotification(q,d,f)}}}function removeNotification(u){u.meta.timer&&(clearTimeout(u.meta.timer),u.meta.timer=void 0);const d=notificationsList[u.position].value.indexOf(u);if(d!==-1){u.group!==void 0&&delete groups[u.meta.group];const g=notifRefs[""+u.meta.uid];if(g){const{width:f,height:b}=getComputedStyle(g);g.style.left=`${g.offsetLeft}px`,g.style.width=f,g.style.height=b}notificationsList[u.position].value.splice(d,1),typeof u.onDismiss=="function"&&u.onDismiss()}}function hasContent(u){return u!=null&&emptyRE.test(u)!==!0}function logError(u,d){return console.error(`Notify: ${u}`,d),!1}function getComponent(){return createComponent({name:"QNotifications",devtools:{hide:!0},setup(){return()=>h("div",{class:"q-notifications"},positionList.map(u=>h(TransitionGroup,{key:u,class:positionClass[u],tag:"div",name:`q-notification--${u}`},()=>notificationsList[u].value.map(d=>{const g=d.meta,f=[];if(g.hasMedia===!0&&(d.spinner!==!1?f.push(h(d.spinner,{class:"q-notification__spinner q-notification__spinner--"+g.leftClass,color:d.spinnerColor,size:d.spinnerSize})):d.icon?f.push(h(QIcon,{class:"q-notification__icon q-notification__icon--"+g.leftClass,name:d.icon,color:d.iconColor,size:d.iconSize,role:"img"})):d.avatar&&f.push(h(QAvatar,{class:"q-notification__avatar q-notification__avatar--"+g.leftClass},()=>h("img",{src:d.avatar,"aria-hidden":"true"})))),g.hasText===!0){let m;const y={class:"q-notification__message col"};if(d.html===!0)y.innerHTML=d.caption?`<div>${d.message}</div><div class="q-notification__caption">${d.caption}</div>`:d.message;else{const k=[d.message];m=d.caption?[h("div",k),h("div",{class:"q-notification__caption"},[d.caption])]:k}f.push(h("div",y,m))}const b=[h("div",{class:g.contentClass},f)];return d.progress===!0&&b.push(h("div",{key:`${g.uid}|p|${g.badge}`,class:g.progressClass,style:g.progressStyle})),d.actions!==void 0&&b.push(h("div",{class:g.actionsClass},d.actions.map(m=>h(QBtn,m)))),g.badge>1&&b.push(h("div",{key:`${g.uid}|${g.badge}`,class:d.meta.badgeClass,style:d.badgeStyle},[g.badge])),h("div",{ref:m=>{notifRefs[""+g.uid]=m},key:g.uid,class:g.class,...g.attrs},[h("div",{class:g.wrapperClass},b)])}))))}})}var Notify={setDefaults(u){isObject$1(u)===!0&&Object.assign(defaults,u)},registerType(u,d){isObject$1(d)===!0&&(notifTypes[u]=d)},install({$q:u,parentApp:d}){if(u.notify=this.create=g=>addNotification(g,u),u.notify.setDefaults=this.setDefaults,u.notify.registerType=this.registerType,u.config.notify!==void 0&&this.setDefaults(u.config.notify),this.__installed!==!0){positionList.forEach(f=>{notificationsList[f]=ref([]);const b=["left","center","right"].includes(f)===!0?"center":f.indexOf("top")!==-1?"top":"bottom",m=f.indexOf("left")!==-1?"start":f.indexOf("right")!==-1?"end":"center",y=["left","right"].includes(f)?`items-${f==="left"?"start":"end"} justify-center`:f==="center"?"flex-center":`items-${m}`;positionClass[f]=`q-notifications__list q-notifications__list--${b} fixed column no-wrap ${y}`});const g=createGlobalNode("q-notify");createChildApp(getComponent(),d).mount(g)}}},quasarUserOptions={config:{},plugins:{Notify}};let appPrefetch=typeof App.preFetch=="function"?App.preFetch:App.__c!==void 0&&typeof App.__c.preFetch=="function"?App.__c.preFetch:!1;function getMatchedComponents(u,d){const g=u?u.matched?u:d.resolve(u).route:d.currentRoute.value;if(!g)return[];const f=g.matched.filter(b=>b.components!==void 0);return f.length===0?[]:Array.prototype.concat.apply([],f.map(b=>Object.keys(b.components).map(m=>{const y=b.components[m];return{path:b.path,c:y}})))}function addPreFetchHooks({router:u,store:d,publicPath:g}){u.beforeResolve((f,b,m)=>{const y=window.location.href.replace(window.location.origin,""),k=getMatchedComponents(f,u),a=getMatchedComponents(b,u);let q=!1;const w=k.filter((v,J)=>q||(q=!a[J]||a[J].c!==v.c||v.path.indexOf("/:")>-1)).filter(v=>v.c!==void 0&&(typeof v.c.preFetch=="function"||v.c.__c!==void 0&&typeof v.c.__c.preFetch=="function")).map(v=>v.c.__c!==void 0?v.c.__c.preFetch:v.c.preFetch);if(appPrefetch!==!1&&(w.unshift(appPrefetch),appPrefetch=!1),w.length===0)return m();let $=!1;const Q=v=>{$=!0,m(v)},C=()=>{$===!1&&m()};w.reduce((v,J)=>v.then(()=>$===!1&&J({store:d,currentRoute:f,previousRoute:b,redirect:Q,urlPath:y,publicPath:g})),Promise.resolve()).then(C).catch(v=>{console.error(v),C()})})}const publicPath="/";async function start({app:u,router:d,store:g},f){let b=!1;const m=a=>{try{return d.resolve(a).href}catch{}return Object(a)===a?null:a},y=a=>{if(b=!0,typeof a=="string"&&/^https?:\/\//.test(a)){window.location.href=a;return}const q=m(a);q!==null&&(window.location.href=q)},k=window.location.href.replace(window.location.origin,"");for(let a=0;b===!1&&a<f.length;a++)try{await f[a]({app:u,router:d,store:g,ssrContext:null,redirect:y,urlPath:k,publicPath})}catch(q){if(q&&q.url){y(q.url);return}console.error("[Quasar] boot error:",q);return}b!==!0&&(u.use(d),addPreFetchHooks({router:d,store:g}),u.mount("#q-app"))}createQuasarApp(createApp,quasarUserOptions).then(u=>{const[d,g]=Promise.allSettled!==void 0?["allSettled",f=>f.map(b=>{if(b.status==="rejected"){console.error("[Quasar] boot error:",b.reason);return}return b.value.default})]:["all",f=>f.map(b=>b.default)];return Promise[d]([__vitePreload(()=>Promise.resolve().then(function(){return axios$1}),void 0),__vitePreload(()=>import("./auth.9b526521.js"),["assets/auth.9b526521.js","assets/auth-store.f621e290.js"]),__vitePreload(()=>import("./bus.18b30314.js"),[])]).then(f=>{const b=g(f).filter(m=>typeof m=="function");start(u,b)})});export{cleanEvt as $,toDisplayString as A,createCommentVNode as B,QForm as C,QInput as D,QBtn as E,QCard as F,useAnchorStaticProps as G,useModelToggleProps as H,useTransitionProps as I,validatePosition as J,validateOffset as K,scrollTargetProp as L,useModelToggleEmits as M,ref as N,parsePosition as O,useTick as P,QLayout as Q,useTimeout as R,useTransition as S,useScrollTarget as T,useAnchor as U,useModelToggle as V,usePortal as W,watch as X,onBeforeUnmount as Y,removeClickOutside as Z,_export_sfc as _,api as a,setPosition as a0,clearSelection as a1,addEvt as a2,getScrollTarget as a3,Transition as a4,addClickOutside as a5,stopAndPrevent as a6,decode as a7,encode as a8,timeSince as a9,apiHandler as aa,useQuasar as ab,createElementBlock as ac,QSpinner as ad,Fragment as ae,QCardActions as af,QSeparator as ag,renderList as ah,boot as b,defineComponent as c,defineStore as d,createBlock as e,createVNode as f,QPageContainer as g,createComponent as h,useDarkProps as i,useDark as j,computed as k,h as l,hSlot as m,getCurrentInstance as n,openBlock as o,useCheckboxProps as p,useCheckboxEmits as q,resolveComponent as r,useCheckbox as s,QIcon as t,useMainStore as u,QPage as v,withCtx as w,QCardSection as x,createBaseVNode as y,createTextVNode as z};
104
+ `,"<br>")},null,8,_hoisted_19)])])):createCommentVNode("",!0)],64))]),_:1})]),_:1})]),_:1},8,["modelValue","onHide"])}var FilePreview=_export_sfc(_sfc_main$3,[["render",_sfc_render$3]]),DragAndDrop_vue_vue_type_style_index_0_scoped_true_lang="";const _sfc_main$2={data:()=>({isHover:!1,filelist:[],dragContainer:{top:0,bottom:0,left:0,right:0}}),computed:{selectedBucket:function(){return this.$route.params.bucket},selectedFolder:function(){return this.$route.params.folder&&this.$route.params.folder!==ROOT_FOLDER?decode(this.$route.params.folder):""}},methods:{openFilesUploader(){this.$refs.filesUploader.click()},openFoldersUploader(){this.$refs.foldersUploader.click()},dragover(u){if(this.mainStore.apiReadonly||this.isHover===!0)return;const d=this.$refs.dragContainer.getBoundingClientRect();this.dragContainer={top:d.top,bottom:d.bottom,left:d.left,right:d.right},this.isHover=!0},dragleave(u){this.isHover!==!1&&(u.clientX<this.dragContainer.left||u.clientX>this.dragContainer.right||u.clientY>this.dragContainer.bottom||u.clientY<this.dragContainer.top)&&(this.isHover=!1)},inputFiles(u){this.uploadFiles({"":u.target.files})},inputFolders(u){const d={};for(const g of u.target.files){const f=g.webkitRelativePath.lastIndexOf("/"),b=g.webkitRelativePath.slice(0,f);d[b]===void 0&&(d[b]=[]),d[b].push(g)}this.uploadFiles(d)},async uploadFiles(u){let d=0,g=0;const f=[];for(const[k,a]of Object.entries(u)){if(k!==""){const q=`${this.selectedFolder+k}/`;await apiHandler.createFolder(q,this.selectedBucket)}d+=a.length;for(const q of a)f.push(q.name),g+=q.size}this.$bus.emit("fetchFiles");const b=this.q.notify({group:!1,spinner:!0,message:`Uploading files 1/${f.length}...`,caption:"0%",timeout:0});let m=0,y=0;for(const[k,a]of Object.entries(u)){b({message:`Uploading files ${m+1}/${f.length}...`,caption:`${Number.parseInt((m+1)*100/f.length)}%`});let q=this.selectedFolder+k;q.length>0&&q.slice(-1)!=="/"&&(q+="/"),(q==="/"||q===ROOT_FOLDER)&&(q="");for(const w of a){m+=1;const $=q+w.name,Q=95*1024*1024;if(w.size>Q){const{uploadId:C}=(await apiHandler.multipartCreate(w,$,this.selectedBucket)).data;let v=1;const J=[];for(let ae=0;ae<w.size;ae+=Q){const H=Math.min(ae+Q,w.size),Y=w.slice(ae,H),{data:G}=await apiHandler.multipartUpload(C,v,this.selectedBucket,$,Y,j=>{b({caption:`${Number.parseInt((y+ae+j.loaded)*100/g)}%`})});J.push(G),v+=1}await apiHandler.multipartComplete(w,$,this.selectedBucket,J,C)}else await apiHandler.uploadObjects(w,$,this.selectedBucket,C=>{b({caption:`${Number.parseInt((y+C.loaded)*100/g)}%`})});y+=w.size}}b({icon:"done",spinner:!1,caption:"100%",message:"Files Uploaded!",timeout:5e3}),this.$bus.emit("fetchFiles")},async traverseFileTree(u,d,g,f){if(d=d||"",u.isFile&&f>0)await new Promise((m,y)=>{u.file(k=>{g[d].push(k),m()})});else if(u.isDirectory){const b=d?`${d}/${u.name}`:u.name;g[b]===void 0&&(g[b]=[]);const m=u.createReader();await new Promise((k,a)=>{m.readEntries(async q=>{for(let w=0;w<q.length;w++)await this.traverseFileTree(q[w],b,g,f+1);k()})})}},async drop(u){if(!this.isHover)return;const d=u.dataTransfer.files,g=await u.dataTransfer.items,f={};for(const m of g){const y=m.webkitGetAsEntry();y&&await this.traverseFileTree(y,"",f,0)}const b=[];for(const m of d)f[m.name]===void 0&&b.push(m);f[""]=b,this.uploadFiles(f),this.isHover=!1}},mounted(){this.$bus.on("openFilesUploader",this.openFilesUploader),this.$bus.on("openFoldersUploader",this.openFoldersUploader)},beforeUnmount(){this.$bus.off("openFilesUploader"),this.$bus.off("openFoldersUploader")},setup(){return{mainStore:useMainStore(),q:useQuasar()}}};function _sfc_render$2(u,d,g,f,b,m){return openBlock(),createElementBlock(Fragment,null,[createBaseVNode("div",{ref:"dragContainer",class:normalizeClass(["upload-box",{active:u.isHover}]),onDragover:d[0]||(d[0]=withModifiers((...y)=>m.dragover&&m.dragover(...y),["prevent"])),onDragleave:d[1]||(d[1]=withModifiers((...y)=>m.dragleave&&m.dragleave(...y),["prevent"])),onDrop:d[2]||(d[2]=withModifiers((...y)=>m.drop&&m.drop(...y),["prevent"]))},[renderSlot(u.$slots,"default",{},void 0,!0),d[5]||(d[5]=createBaseVNode("div",{class:"drop-files"},[createBaseVNode("div",{class:"box"},[createBaseVNode("h3",null,"Drop files to upload"),createBaseVNode("span",{class:"font-28"},[createBaseVNode("i",{class:"bi bi-cloud-upload-fill"})])])],-1))],34),createBaseVNode("input",{style:{display:"none"},onChange:d[3]||(d[3]=(...y)=>m.inputFiles&&m.inputFiles(...y)),type:"file",name:"files[]",ref:"filesUploader",multiple:""},null,544),createBaseVNode("input",{style:{display:"none"},onChange:d[4]||(d[4]=(...y)=>m.inputFolders&&m.inputFolders(...y)),type:"file",webkitdirectory:"",name:"files[]",ref:"foldersUploader",multiple:""},null,544)],64)}var DragAndDrop=_export_sfc(_sfc_main$2,[["render",_sfc_render$2],["__scopeId","data-v-8e99a572"]]);const _sfc_main$1={name:"FileContextMenu",props:{prop:{}},computed:{selectedBucket:function(){return this.$route.params.bucket},selectedFolder:function(){return this.$route.params.folder&&this.$route.params.folder!==ROOT_FOLDER?decode(this.$route.params.folder):""}},methods:{renameObject:function(){this.$emit("renameObject",this.prop.row)},updateMetadataObject:function(){this.$emit("updateMetadataObject",this.prop.row)},openObject:function(){this.$emit("openObject",this.prop.row)},deleteObject:function(){this.$emit("deleteObject",this.prop.row)},shareObject:async function(){let u;this.prop.row.type==="folder"?u=window.location.origin+this.$router.resolve({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(this.prop.row.key)}}).href:u=window.location.origin+this.$router.resolve({name:"files-file",params:{bucket:this.selectedBucket,folder:this.selectedFolder?encode(this.selectedFolder):ROOT_FOLDER,file:this.prop.row.nameHash}}).href;try{await navigator.clipboard.writeText(u),this.q.notify({message:"Link to file copied to clipboard!",timeout:5e3,type:"positive"})}catch(d){this.q.notify({message:`Failed to copy: ${d}`,timeout:5e3,type:"negative"})}},downloadObject:function(){const u=document.createElement("a");u.download=this.prop.row.name,u.href=`${this.mainStore.serverUrl}/api/buckets/${this.selectedBucket}/${encode(this.prop.row.key)}`,document.body.appendChild(u),u.click(),document.body.removeChild(u)}},setup(){return{mainStore:useMainStore(),q:useQuasar()}}};function _sfc_render$1(u,d,g,f,b,m){return openBlock(),createBlock(QList,{style:{"min-width":"100px"}},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(QItem,{clickable:"",onClick:m.openObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[0]||(d[0]=[createTextVNode("Open")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]),g.prop.row.type==="file"?withDirectives((openBlock(),createBlock(QItem,{key:0,clickable:"",onClick:m.downloadObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[1]||(d[1]=[createTextVNode("Download")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]):createCommentVNode("",!0),g.prop.row.type==="file"?withDirectives((openBlock(),createBlock(QItem,{key:1,clickable:"",onClick:m.renameObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[2]||(d[2]=[createTextVNode("Rename")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]):createCommentVNode("",!0),g.prop.row.type==="file"?withDirectives((openBlock(),createBlock(QItem,{key:2,clickable:"",onClick:m.updateMetadataObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[3]||(d[3]=[createTextVNode("Update Metadata")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]):createCommentVNode("",!0),withDirectives((openBlock(),createBlock(QItem,{clickable:"",onClick:m.shareObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[4]||(d[4]=[createTextVNode("Get sharable link")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]]),withDirectives((openBlock(),createBlock(QItem,{clickable:"",onClick:m.deleteObject},{default:withCtx(()=>[createVNode(QItemSection,null,{default:withCtx(()=>d[5]||(d[5]=[createTextVNode("Delete")])),_:1})]),_:1},8,["onClick"])),[[ClosePopup]])]),_:1})}var FileContextMenu=_export_sfc(_sfc_main$1,[["render",_sfc_render$1]]),FilesFolderPage_vue_vue_type_style_index_0_lang="";const _sfc_main=defineComponent({name:"FilesIndexPage",components:{FileContextMenu,FileOptions,DragAndDrop,FilePreview},data:()=>({loading:!1,rows:[],columns:[{name:"name",required:!0,label:"Name",align:"left",field:"name",sortable:!0,sort:(u,d,g,f)=>g.type==="folder"?f.type==="folder"?u.localeCompare(d):1:f.type==="folder"?-1:u.localeCompare(d)},{name:"lastModified",required:!0,label:"Last Modified",align:"left",field:"lastModified",sortable:!0,sort:(u,d,g,f)=>g.timestamp-f.timestamp},{name:"size",required:!0,label:"Size",align:"left",field:"size",sortable:!0,sort:(u,d,g,f)=>g.sizeRaw-f.sizeRaw},{name:"options",label:"",sortable:!1}]}),computed:{selectedBucket:function(){return this.$route.params.bucket},selectedFolder:function(){return this.$route.params.folder&&this.$route.params.folder!==ROOT_FOLDER?decode(this.$route.params.folder):""},breadcrumbs:function(){return this.selectedFolder?[{name:this.selectedBucket,path:"/"},...this.selectedFolder.split("/").filter(u=>u!=="").map((u,d,g)=>({name:u,path:`${g.slice(0,d+1).join("/").replace("Home/","")}/`}))]:[{name:this.selectedBucket,path:"/"}]}},watch:{selectedBucket(u){this.fetchFiles()},selectedFolder(u){this.fetchFiles()}},methods:{openRowClick:function(u,d,g){u.preventDefault(),this.openObject(d)},openRowDlbClick:function(u,d,g){u.preventDefault(),this.$bus.emit("openFileDetails",d)},breadcrumbsClick:function(u){this.$router.push({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(u.path)}})},rowClick:function(u,d){d.type==="folder"?this.$router.push({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(d.key)}}):this.$refs.preview.openFile(d)},openObject:function(u){u.type==="folder"?this.$router.push({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(u.key)}}):this.$refs.preview.openFile(u)},renameObject:function(u){u.type==="folder"?this.$router.push({name:"files-folder",params:{bucket:this.selectedBucket,folder:encode(u.key)}}):this.$refs.preview.openFile(u)},fetchFiles:async function(){this.loading=!0,this.rows=await apiHandler.fetchFile(this.selectedBucket,this.selectedFolder,"/"),this.loading=!1},openPreviewFromKey:async function(){let u=`${decode(this.$route.params.file)}`;this.selectedFolder&&this.selectedFolder!==ROOT_FOLDER&&(u=`${this.selectedFolder}${decode(this.$route.params.file)}`);const d=await apiHandler.headFile(this.selectedBucket,u);this.$refs.preview.openFile(d)}},created(){this.fetchFiles()},mounted(){this.$refs.table.sort("name"),this.$bus.on("fetchFiles",this.fetchFiles),this.$route.params.file&&this.openPreviewFromKey()},beforeUnmount(){this.$bus.off("fetchFiles")},setup(){return{mainStore:useMainStore(),q:useQuasar()}}}),_hoisted_1={class:"q-pa-md"},_hoisted_2={class:"full-width q-my-lg"},_hoisted_3={class:"flex items-center justify-center"},_hoisted_4={key:0,class:"full-width q-my-lg"},_hoisted_5={class:"flex items-center justify-center"},_hoisted_6={class:"flex",style:{"align-items":"center"}},_hoisted_7={class:"text-right"};function _sfc_render(u,d,g,f,b,m){const y=resolveComponent("FileContextMenu"),k=resolveComponent("drag-and-drop"),a=resolveComponent("file-preview"),q=resolveComponent("file-options");return openBlock(),createElementBlock(Fragment,null,[createVNode(QPage,{class:""},{default:withCtx(()=>[createBaseVNode("div",_hoisted_1,[createVNode(QBreadcrumbs,null,{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(u.breadcrumbs,w=>(openBlock(),createBlock(QBreadcrumbsEl,{style:{cursor:"pointer"},key:w.name,label:w.name,onClick:$=>u.breadcrumbsClick(w)},null,8,["label","onClick"]))),128))]),_:1}),createVNode(k,{ref:"uploader"},{default:withCtx(()=>[createVNode(QTable,{ref:"table",rows:u.rows,columns:u.columns,"row-key":"name",loading:u.loading,"hide-pagination":!0,"rows-per-page-options":[0],"column-sort-order":"da",flat:!0,"table-class":"file-list",onRowDblclick:u.openRowClick,onRowClick:u.openRowDlbClick},{loading:withCtx(()=>[createBaseVNode("div",_hoisted_2,[createBaseVNode("h6",_hoisted_3,[createVNode(QSpinner,{color:"primary",size:"xl"})])])]),"no-data":withCtx(()=>[u.loading?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_4,[createBaseVNode("h6",_hoisted_5,[createVNode(QIcon,{name:"folder",color:"orange",size:"lg"}),d[0]||(d[0]=createTextVNode("This folder is empty"))])]))]),"body-cell-name":withCtx(w=>[createBaseVNode("td",_hoisted_6,[createVNode(QIcon,{name:w.row.icon,size:"sm",color:w.row.color,class:"q-mr-xs"},null,8,["name","color"]),createTextVNode(" "+toDisplayString(w.row.name),1)])]),"body-cell":withCtx(w=>[createVNode(QTd,{props:w},{default:withCtx(()=>[createTextVNode(toDisplayString(w.value),1)]),_:2},1032,["props"]),createVNode(QMenu,{"touch-position":"","context-menu":""},{default:withCtx(()=>[createVNode(y,{prop:w,onOpenObject:u.openObject,onDeleteObject:u.$refs.options.deleteObject,onRenameObject:u.$refs.options.renameObject,onUpdateMetadataObject:u.$refs.options.updateMetadataObject},null,8,["prop","onOpenObject","onDeleteObject","onRenameObject","onUpdateMetadataObject"])]),_:2},1024)]),"body-cell-options":withCtx(w=>[createBaseVNode("td",_hoisted_7,[createVNode(QBtn,{round:"",flat:"",icon:"more_vert",size:"sm"},{default:withCtx(()=>[createVNode(QMenu,null,{default:withCtx(()=>[createVNode(y,{prop:w,onOpenObject:u.openObject,onDeleteObject:u.$refs.options.deleteObject,onRenameObject:u.$refs.options.renameObject,onUpdateMetadataObject:u.$refs.options.updateMetadataObject},null,8,["prop","onOpenObject","onDeleteObject","onRenameObject","onUpdateMetadataObject"])]),_:2},1024)]),_:2},1024)])]),_:1},8,["rows","columns","loading","onRowDblclick","onRowClick"])]),_:1},512)])]),_:1}),createVNode(a,{ref:"preview"},null,512),createVNode(q,{ref:"options"},null,512)],64)}var FilesFolderPage=_export_sfc(_sfc_main,[["render",_sfc_render]]);const routes=[{path:"/auth",component:()=>__vitePreload(()=>import("./AuthLayout.69a601d4.js"),[]),children:[{path:"login",name:"login",component:()=>__vitePreload(()=>import("./LoginPage.7cae560f.js"),["assets/LoginPage.7cae560f.js","assets/auth-store.adb4e0f1.js"])}]},{path:"/",component:MainLayout,children:[{path:"/",name:"home",component:HomePage},{path:"/:bucket/files",name:"files-home",component:FilesFolderPage},{path:"/:bucket/files/:folder",name:"files-folder",component:FilesFolderPage},{path:"/:bucket/files/:folder/:file",name:"files-file",component:FilesFolderPage},{path:"/:bucket/email",name:"email-home",component:EmailFolderPage},{path:"/:bucket/email/:folder",name:"email-folder",component:EmailFolderPage},{path:"/:bucket/email/:folder/:file",name:"email-file",component:()=>__vitePreload(()=>import("./EmailFilePage.b9af5203.js"),["assets/EmailFilePage.b9af5203.js","assets/EmailFilePage.c4890c9c.css"])},{path:"/storage/:bucket",redirect:u=>({name:"files-home",params:{bucket:u.params.bucket}})},{path:"/storage/:bucket/:folder",redirect:u=>({name:"files-folder",params:{bucket:u.params.bucket,folder:u.params.folder}})},{path:"/storage/:bucket/:folder/:file",redirect:u=>({name:"files-file",params:{bucket:u.params.bucket,folder:u.params.folder,file:u.params.file}})}]},{path:"/:catchAll(.*)*",component:()=>__vitePreload(()=>import("./ErrorNotFound.e25d48e7.js"),[])}];var createRouter=()=>createRouter$1({scrollBehavior:()=>({left:0,top:0}),routes,history:createWebHistory("/")});async function createQuasarApp(u,d){const g=u(App);g.use(Quasar,d);const f=typeof createStore=="function"?await createStore({}):createStore;g.use(f);const b=markRaw(typeof createRouter=="function"?await createRouter({store:f}):createRouter);return f.use(({store:m})=>{m.router=b}),{app:g,store:f,router:b}}let uid=0;const defaults={},groups={},notificationsList={},positionClass={},emptyRE=/^\s*$/,notifRefs=[],invalidTimeoutValues=[void 0,null,!0,!1,""],positionList=["top-left","top-right","bottom-left","bottom-right","top","bottom","left","right","center"],badgePositions=["top-left","top-right","bottom-left","bottom-right"],notifTypes={positive:{icon:u=>u.iconSet.type.positive,color:"positive"},negative:{icon:u=>u.iconSet.type.negative,color:"negative"},warning:{icon:u=>u.iconSet.type.warning,color:"warning",textColor:"dark"},info:{icon:u=>u.iconSet.type.info,color:"info"},ongoing:{group:!1,timeout:0,spinner:!0,color:"grey-8"}};function addNotification(u,d,g){if(!u)return logError("parameter required");let f;const b={textColor:"white"};if(u.ignoreDefaults!==!0&&Object.assign(b,defaults),isObject$1(u)===!1&&(b.type&&Object.assign(b,notifTypes[b.type]),u={message:u}),Object.assign(b,notifTypes[u.type||b.type],u),typeof b.icon=="function"&&(b.icon=b.icon(d)),b.spinner?(b.spinner===!0&&(b.spinner=QSpinner),b.spinner=markRaw(b.spinner)):b.spinner=!1,b.meta={hasMedia:Boolean(b.spinner!==!1||b.icon||b.avatar),hasText:hasContent(b.message)||hasContent(b.caption)},b.position){if(positionList.includes(b.position)===!1)return logError("wrong position",u)}else b.position="bottom";if(invalidTimeoutValues.includes(b.timeout)===!0)b.timeout=5e3;else{const a=Number(b.timeout);if(isNaN(a)||a<0)return logError("wrong timeout",u);b.timeout=Number.isFinite(a)?a:0}b.timeout===0?b.progress=!1:b.progress===!0&&(b.meta.progressClass="q-notification__progress"+(b.progressClass?` ${b.progressClass}`:""),b.meta.progressStyle={animationDuration:`${b.timeout+1e3}ms`});const m=(Array.isArray(u.actions)===!0?u.actions:[]).concat(u.ignoreDefaults!==!0&&Array.isArray(defaults.actions)===!0?defaults.actions:[]).concat(notifTypes[u.type]!==void 0&&Array.isArray(notifTypes[u.type].actions)===!0?notifTypes[u.type].actions:[]),{closeBtn:y}=b;if(y&&m.push({label:typeof y=="string"?y:d.lang.label.close}),b.actions=m.map(({handler:a,noDismiss:q,...w})=>({flat:!0,...w,onClick:typeof a=="function"?()=>{a(),q!==!0&&k()}:()=>{k()}})),b.multiLine===void 0&&(b.multiLine=b.actions.length>1),Object.assign(b.meta,{class:`q-notification row items-stretch q-notification--${b.multiLine===!0?"multi-line":"standard"}`+(b.color!==void 0?` bg-${b.color}`:"")+(b.textColor!==void 0?` text-${b.textColor}`:"")+(b.classes!==void 0?` ${b.classes}`:""),wrapperClass:"q-notification__wrapper col relative-position border-radius-inherit "+(b.multiLine===!0?"column no-wrap justify-center":"row items-center"),contentClass:"q-notification__content row items-center"+(b.multiLine===!0?"":" col"),leftClass:b.meta.hasText===!0?"additional":"single",attrs:{role:"alert",...b.attrs}}),b.group===!1?(b.group=void 0,b.meta.group=void 0):((b.group===void 0||b.group===!0)&&(b.group=[b.message,b.caption,b.multiline].concat(b.actions.map(a=>`${a.label}*${a.icon}`)).join("|")),b.meta.group=b.group+"|"+b.position),b.actions.length===0?b.actions=void 0:b.meta.actionsClass="q-notification__actions row items-center "+(b.multiLine===!0?"justify-end":"col-auto")+(b.meta.hasMedia===!0?" q-notification__actions--with-media":""),g!==void 0){g.notif.meta.timer&&(clearTimeout(g.notif.meta.timer),g.notif.meta.timer=void 0),b.meta.uid=g.notif.meta.uid;const a=notificationsList[b.position].value.indexOf(g.notif);notificationsList[b.position].value[a]=b}else{const a=groups[b.meta.group];if(a===void 0){if(b.meta.uid=uid++,b.meta.badge=1,["left","right","center"].indexOf(b.position)!==-1)notificationsList[b.position].value.splice(Math.floor(notificationsList[b.position].value.length/2),0,b);else{const q=b.position.indexOf("top")!==-1?"unshift":"push";notificationsList[b.position].value[q](b)}b.group!==void 0&&(groups[b.meta.group]=b)}else{if(a.meta.timer&&(clearTimeout(a.meta.timer),a.meta.timer=void 0),b.badgePosition!==void 0){if(badgePositions.includes(b.badgePosition)===!1)return logError("wrong badgePosition",u)}else b.badgePosition=`top-${b.position.indexOf("left")!==-1?"right":"left"}`;b.meta.uid=a.meta.uid,b.meta.badge=a.meta.badge+1,b.meta.badgeClass=`q-notification__badge q-notification__badge--${b.badgePosition}`+(b.badgeColor!==void 0?` bg-${b.badgeColor}`:"")+(b.badgeTextColor!==void 0?` text-${b.badgeTextColor}`:"")+(b.badgeClass?` ${b.badgeClass}`:"");const q=notificationsList[b.position].value.indexOf(a);notificationsList[b.position].value[q]=groups[b.meta.group]=b}}const k=()=>{removeNotification(b),f=void 0};if(b.timeout>0&&(b.meta.timer=setTimeout(()=>{b.meta.timer=void 0,k()},b.timeout+1e3)),b.group!==void 0)return a=>{a!==void 0?logError("trying to update a grouped one which is forbidden",u):k()};if(f={dismiss:k,config:u,notif:b},g!==void 0){Object.assign(g,f);return}return a=>{if(f!==void 0)if(a===void 0)f.dismiss();else{const q=Object.assign({},f.config,a,{group:!1,position:b.position});addNotification(q,d,f)}}}function removeNotification(u){u.meta.timer&&(clearTimeout(u.meta.timer),u.meta.timer=void 0);const d=notificationsList[u.position].value.indexOf(u);if(d!==-1){u.group!==void 0&&delete groups[u.meta.group];const g=notifRefs[""+u.meta.uid];if(g){const{width:f,height:b}=getComputedStyle(g);g.style.left=`${g.offsetLeft}px`,g.style.width=f,g.style.height=b}notificationsList[u.position].value.splice(d,1),typeof u.onDismiss=="function"&&u.onDismiss()}}function hasContent(u){return u!=null&&emptyRE.test(u)!==!0}function logError(u,d){return console.error(`Notify: ${u}`,d),!1}function getComponent(){return createComponent({name:"QNotifications",devtools:{hide:!0},setup(){return()=>h("div",{class:"q-notifications"},positionList.map(u=>h(TransitionGroup,{key:u,class:positionClass[u],tag:"div",name:`q-notification--${u}`},()=>notificationsList[u].value.map(d=>{const g=d.meta,f=[];if(g.hasMedia===!0&&(d.spinner!==!1?f.push(h(d.spinner,{class:"q-notification__spinner q-notification__spinner--"+g.leftClass,color:d.spinnerColor,size:d.spinnerSize})):d.icon?f.push(h(QIcon,{class:"q-notification__icon q-notification__icon--"+g.leftClass,name:d.icon,color:d.iconColor,size:d.iconSize,role:"img"})):d.avatar&&f.push(h(QAvatar,{class:"q-notification__avatar q-notification__avatar--"+g.leftClass},()=>h("img",{src:d.avatar,"aria-hidden":"true"})))),g.hasText===!0){let m;const y={class:"q-notification__message col"};if(d.html===!0)y.innerHTML=d.caption?`<div>${d.message}</div><div class="q-notification__caption">${d.caption}</div>`:d.message;else{const k=[d.message];m=d.caption?[h("div",k),h("div",{class:"q-notification__caption"},[d.caption])]:k}f.push(h("div",y,m))}const b=[h("div",{class:g.contentClass},f)];return d.progress===!0&&b.push(h("div",{key:`${g.uid}|p|${g.badge}`,class:g.progressClass,style:g.progressStyle})),d.actions!==void 0&&b.push(h("div",{class:g.actionsClass},d.actions.map(m=>h(QBtn,m)))),g.badge>1&&b.push(h("div",{key:`${g.uid}|${g.badge}`,class:d.meta.badgeClass,style:d.badgeStyle},[g.badge])),h("div",{ref:m=>{notifRefs[""+g.uid]=m},key:g.uid,class:g.class,...g.attrs},[h("div",{class:g.wrapperClass},b)])}))))}})}var Notify={setDefaults(u){isObject$1(u)===!0&&Object.assign(defaults,u)},registerType(u,d){isObject$1(d)===!0&&(notifTypes[u]=d)},install({$q:u,parentApp:d}){if(u.notify=this.create=g=>addNotification(g,u),u.notify.setDefaults=this.setDefaults,u.notify.registerType=this.registerType,u.config.notify!==void 0&&this.setDefaults(u.config.notify),this.__installed!==!0){positionList.forEach(f=>{notificationsList[f]=ref([]);const b=["left","center","right"].includes(f)===!0?"center":f.indexOf("top")!==-1?"top":"bottom",m=f.indexOf("left")!==-1?"start":f.indexOf("right")!==-1?"end":"center",y=["left","right"].includes(f)?`items-${f==="left"?"start":"end"} justify-center`:f==="center"?"flex-center":`items-${m}`;positionClass[f]=`q-notifications__list q-notifications__list--${b} fixed column no-wrap ${y}`});const g=createGlobalNode("q-notify");createChildApp(getComponent(),d).mount(g)}}},quasarUserOptions={config:{},plugins:{Notify}};let appPrefetch=typeof App.preFetch=="function"?App.preFetch:App.__c!==void 0&&typeof App.__c.preFetch=="function"?App.__c.preFetch:!1;function getMatchedComponents(u,d){const g=u?u.matched?u:d.resolve(u).route:d.currentRoute.value;if(!g)return[];const f=g.matched.filter(b=>b.components!==void 0);return f.length===0?[]:Array.prototype.concat.apply([],f.map(b=>Object.keys(b.components).map(m=>{const y=b.components[m];return{path:b.path,c:y}})))}function addPreFetchHooks({router:u,store:d,publicPath:g}){u.beforeResolve((f,b,m)=>{const y=window.location.href.replace(window.location.origin,""),k=getMatchedComponents(f,u),a=getMatchedComponents(b,u);let q=!1;const w=k.filter((v,J)=>q||(q=!a[J]||a[J].c!==v.c||v.path.indexOf("/:")>-1)).filter(v=>v.c!==void 0&&(typeof v.c.preFetch=="function"||v.c.__c!==void 0&&typeof v.c.__c.preFetch=="function")).map(v=>v.c.__c!==void 0?v.c.__c.preFetch:v.c.preFetch);if(appPrefetch!==!1&&(w.unshift(appPrefetch),appPrefetch=!1),w.length===0)return m();let $=!1;const Q=v=>{$=!0,m(v)},C=()=>{$===!1&&m()};w.reduce((v,J)=>v.then(()=>$===!1&&J({store:d,currentRoute:f,previousRoute:b,redirect:Q,urlPath:y,publicPath:g})),Promise.resolve()).then(C).catch(v=>{console.error(v),C()})})}const publicPath="/";async function start({app:u,router:d,store:g},f){let b=!1;const m=a=>{try{return d.resolve(a).href}catch{}return Object(a)===a?null:a},y=a=>{if(b=!0,typeof a=="string"&&/^https?:\/\//.test(a)){window.location.href=a;return}const q=m(a);q!==null&&(window.location.href=q)},k=window.location.href.replace(window.location.origin,"");for(let a=0;b===!1&&a<f.length;a++)try{await f[a]({app:u,router:d,store:g,ssrContext:null,redirect:y,urlPath:k,publicPath})}catch(q){if(q&&q.url){y(q.url);return}console.error("[Quasar] boot error:",q);return}b!==!0&&(u.use(d),addPreFetchHooks({router:d,store:g}),u.mount("#q-app"))}createQuasarApp(createApp,quasarUserOptions).then(u=>{const[d,g]=Promise.allSettled!==void 0?["allSettled",f=>f.map(b=>{if(b.status==="rejected"){console.error("[Quasar] boot error:",b.reason);return}return b.value.default})]:["all",f=>f.map(b=>b.default)];return Promise[d]([__vitePreload(()=>Promise.resolve().then(function(){return axios$1}),void 0),__vitePreload(()=>import("./auth.888ee5c0.js"),["assets/auth.888ee5c0.js","assets/auth-store.adb4e0f1.js"]),__vitePreload(()=>import("./bus.f801e67b.js"),[])]).then(f=>{const b=g(f).filter(m=>typeof m=="function");start(u,b)})});export{cleanEvt as $,toDisplayString as A,createCommentVNode as B,QForm as C,QInput as D,QBtn as E,QCard as F,useAnchorStaticProps as G,useModelToggleProps as H,useTransitionProps as I,validatePosition as J,validateOffset as K,scrollTargetProp as L,useModelToggleEmits as M,ref as N,parsePosition as O,useTick as P,QLayout as Q,useTimeout as R,useTransition as S,useScrollTarget as T,useAnchor as U,useModelToggle as V,usePortal as W,watch as X,onBeforeUnmount as Y,removeClickOutside as Z,_export_sfc as _,api as a,setPosition as a0,clearSelection as a1,addEvt as a2,getScrollTarget as a3,Transition as a4,addClickOutside as a5,stopAndPrevent as a6,decode as a7,encode as a8,timeSince as a9,apiHandler as aa,useQuasar as ab,createElementBlock as ac,QSpinner as ad,Fragment as ae,QCardActions as af,QSeparator as ag,renderList as ah,boot as b,defineComponent as c,defineStore as d,createBlock as e,createVNode as f,QPageContainer as g,createComponent as h,useDarkProps as i,useDark as j,computed as k,h as l,hSlot as m,getCurrentInstance as n,openBlock as o,useCheckboxProps as p,useCheckboxEmits as q,resolveComponent as r,useCheckbox as s,QIcon as t,useMainStore as u,QPage as v,withCtx as w,QCardSection as x,createBaseVNode as y,createTextVNode as z};
@@ -33,7 +33,7 @@
33
33
  color: #333;
34
34
  font-size: 1.2rem;
35
35
  margin-bottom: 0.5rem;
36
- }</style> <script type="module" crossorigin src="/assets/index.69bcbd86.js"></script>
36
+ }</style> <script type="module" crossorigin src="/assets/index.81c5f354.js"></script>
37
37
  <link rel="stylesheet" href="/assets/index.7e109f1f.css">
38
38
  </head><body><div id=q-app></div></body><script>var elem = document.getElementById('q-app')
39
39
  elem.innerHTML = `
package/dist/index.js CHANGED
@@ -60,7 +60,7 @@ async function readOnlyMiddleware(c, next) {
60
60
  }
61
61
 
62
62
  // package.json
63
- var version = "1.1.3";
63
+ var version = "1.1.4";
64
64
 
65
65
  // src/foundation/settings.ts
66
66
  var settings = {
package/dist/index.mjs CHANGED
@@ -30,7 +30,7 @@ async function readOnlyMiddleware(c, next) {
30
30
  }
31
31
 
32
32
  // package.json
33
- var version = "1.1.3";
33
+ var version = "1.1.4";
34
34
 
35
35
  // src/foundation/settings.ts
36
36
  var settings = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "r2-explorer",
3
- "version": "1.1.3",
3
+ "version": "1.1.4",
4
4
  "description": "A Google Drive Interface for your Cloudflare R2 Buckets",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",