import{r as ye,c as d,o,f as C,k as S,h as k,m as We,i as b,n as we,a as m,q as j,s as K,t as $,u as F,x as se,F as P,y as Be,z as U,A as ot,B as lt,C as O,D as w,E as p,G as oe,H as ct,I as qe,J as dt,K as ut,M as L,N as X,d as ze,l as ie,O as ue,P as pt,Q as mt,R as ft,S as je,T as ae,U as Le,V as ht,b as Ze,W as $e,X as Se,Y as vt,j as le,Z as gt,$ as yt,a0 as wt,a1 as bt}from"./modulepreload-polyfill-DS8mCOmY.chunk.mjs";import{_ as pe,a as Q,b as Ae,c as _t,d as Ee,e as Fe,f as Pe,i as kt,g as Ct,u as Lt,h as $t,j as St,P as Vt,k as zt,l as At,m as Ge,n as Dt,o as Je,p as Mt}from"./index-BgGcM4Fs.chunk.mjs";import{f as Ie,g as Nt,h as Ke,i as He,j as ee,N as Re,t as h,l as te,k as De}from"./style-BSeD2-8B.chunk.mjs";import{l as xt,_ as Bt}from"./index-DswZY4c3.chunk.mjs";const Et={name:"ChevronRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ft=["aria-hidden","aria-label"],Pt=["fill","width","height"],It={d:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"},Ht={key:0};function Rt(e,i,t,r,a,s){return o(),d("span",F(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chevron-right-icon",role:"img",onClick:i[0]||(i[0]=n=>e.$emit("click",n))}),[(o(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",It,[t.title?(o(),d("title",Ht,$(t.title),1)):S("",!0)])],8,Pt))],16,Ft)}const Ot=pe(Et,[["render",Rt]]),Tt={name:"NcBreadcrumb",components:{NcActions:Ae,ChevronRight:Ot,NcButton:Q},inheritAttrs:!1,props:{name:{type:String,required:!0},title:{type:String,default:null},to:{type:[String,Object],default:void 0},href:{type:String,default:void 0},icon:{type:String,default:""},forceIconText:{type:Boolean,default:!1},disableDrop:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},open:{type:Boolean,default:!1},class:{type:[String,Array,Object],default:""}},emits:["dragenter","dragleave","dropped","update:open"],setup(){const e=_t();return{actionsContainer:`.vue-crumb[data-crumb-id="${e}"]`,crumbId:e}},data(){return{hovering:!1}},computed:{linkAttributes(){return this.to?{to:this.to,...this.$attrs}:this.href?{href:this.href,...this.$attrs}:this.$attrs}},methods:{onOpenChange(e){this.$emit("update:open",e)},dropped(e){return this.disableDrop||(this.$emit("dropped",e,this.to||this.href),this.$parent.$emit("dropped",e,this.to||this.href),this.hovering=!1),!1},dragEnter(e){this.$emit("dragenter",e),!this.disableDrop&&(this.hovering=!0)},dragLeave(e){this.$emit("dragleave",e),!this.disableDrop&&(e.target.contains(e.relatedTarget)||this.$refs.crumb.contains(e.relatedTarget)||(this.hovering=!1))}}},Ut=["data-crumb-id"];function Wt(e,i,t,r,a,s){const n=ye("NcButton"),c=ye("NcActions"),u=ye("ChevronRight");return o(),d("li",{ref:"crumb",class:j(["vue-crumb",[{"vue-crumb--hovered":a.hovering},e.$props.class]]),"data-crumb-id":r.crumbId,draggable:"false",onDragstart:se(()=>{},["prevent"]),onDrop:i[0]||(i[0]=se((...l)=>s.dropped&&s.dropped(...l),["prevent"])),onDragover:se(()=>{},["prevent"]),onDragenter:i[1]||(i[1]=(...l)=>s.dragEnter&&s.dragEnter(...l)),onDragleave:i[2]||(i[2]=(...l)=>s.dragLeave&&s.dragLeave(...l))},[(t.name||t.icon||e.$slots.icon)&&!e.$slots.default?(o(),C(n,F({key:0,"aria-label":t.icon?t.name:void 0,variant:"tertiary"},s.linkAttributes),We({_:2},[e.$slots.icon||t.icon?{name:"icon",fn:b(()=>[we(e.$slots,"icon",{},()=>[m("span",{class:j([t.icon,"icon"])},null,2)],!0)]),key:"0"}:void 0,!(e.$slots.icon||t.icon)||t.forceIconText?{name:"default",fn:b(()=>[K($(t.name),1)]),key:"1"}:void 0]),1040,["aria-label"])):S("",!0),e.$slots.default?(o(),C(c,{key:1,ref:"actions",container:r.actionsContainer,forceMenu:t.forceMenu,forceName:"",menuName:t.name,open:t.open,title:t.title,variant:"tertiary","onUpdate:open":s.onOpenChange},{icon:b(()=>[we(e.$slots,"menu-icon",{},void 0,!0)]),default:b(()=>[we(e.$slots,"default",{},void 0,!0)]),_:3},8,["container","forceMenu","menuName","open","title","onUpdate:open"])):S("",!0),k(u,{class:"vue-crumb__separator",size:20})],42,Ut)}const ce=pe(Tt,[["render",Wt],["__scopeId","data-v-46306025"]]),qt={name:"FolderIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},jt=["aria-hidden","aria-label"],Zt=["fill","width","height"],Gt={d:"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z"},Jt={key:0};function Kt(e,i,t,r,a,s){return o(),d("span",F(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon folder-icon",role:"img",onClick:i[0]||(i[0]=n=>e.$emit("click",n))}),[(o(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",Gt,[t.title?(o(),d("title",Jt,$(t.title),1)):S("",!0)])],8,Zt))],16,jt)}const Oe=pe(qt,[["render",Kt]]),M="vue-crumb",Xt={name:"NcBreadcrumbs",components:{NcActions:Ae,NcActionButton:Pe,NcActionRouter:Fe,NcActionLink:Ee,NcBreadcrumb:ce,IconFolder:Oe},props:{rootIcon:{type:String,default:"icon-home"},ariaLabel:{type:String,default:null}},emits:["dropped"],data(){return{hiddenIndices:[],menuBreadcrumbProps:{name:"",forceMenu:!0,disableDrop:!0,open:!1},breadcrumbsRefs:[]}},created(){window.addEventListener("resize",Ct(()=>{this.handleWindowResize()},100)),lt("navigation-toggled",this.delayedResize)},mounted(){this.handleWindowResize()},updated(){this.delayedResize(),this.$nextTick(()=>{this.hideCrumbs()})},beforeUnmount(){window.removeEventListener("resize",this.handleWindowResize),ot("navigation-toggled",this.delayedResize)},methods:{closeActions(e){this.$refs.actionsBreadcrumb.$el.contains(e.relatedTarget)||(this.menuBreadcrumbProps.open=!1)},async delayedResize(){await this.$nextTick(),this.handleWindowResize()},handleWindowResize(){if(!this.$refs.container)return;const e=this.breadcrumbsRefs.length,i=[],t=this.$refs.container.offsetWidth;let r=this.getTotalWidth();this.$refs.breadcrumb__actions&&(r+=this.$refs.breadcrumb__actions.offsetWidth);let a=r-t;a+=a>0?64:0;let s=0;const n=Math.floor(e/2);for(;a>0&&sc-u))||(this.hiddenIndices=i)},arraysEqual(e,i){if(e.length!==i.length)return!1;if(e===i)return!0;if(e===null||i===null)return!1;for(let t=0;te+this.getWidth(i.$el,t===this.breadcrumbsRefs.length-1),0)},getWidth(e,i){if(!e?.classList)return 0;const t=e.classList.contains(`${M}--hidden`);e.style.minWidth="auto",i&&(e.style.maxWidth="210px"),e.classList.remove(`${M}--hidden`);const r=e.offsetWidth;return t&&e.classList.add(`${M}--hidden`),e.style.minWidth="",e.style.maxWidth="",r},preventDefault(e){return e.preventDefault&&e.preventDefault(),!1},dragStart(e){return this.preventDefault(e)},dropped(e,i,t){t||this.$emit("dropped",e,i),this.menuBreadcrumbProps.open=!1;const r=document.querySelectorAll(`.${M}`);for(const a of r)a.classList.remove(`${M}--hovered`);return this.preventDefault(e)},dragOver(e){return this.preventDefault(e)},dragEnter(e,i){if(!i&&e.target.closest){const t=e.target.closest(`.${M}`);if(t.classList&&t.classList.contains(M)){const r=document.querySelectorAll(`.${M}`);for(const a of r)a.classList.remove(`${M}--hovered`);t.classList.add(`${M}--hovered`)}}},dragLeave(e,i){if(!i&&!e.target.contains(e.relatedTarget)&&e.target.closest){const t=e.target.closest(`.${M}`);if(t.contains(e.relatedTarget))return;t.classList&&t.classList.contains(M)&&t.classList.remove(`${M}--hovered`)}},hideCrumbs(){this.breadcrumbsRefs.forEach((e,i)=>{e?.$el?.classList&&(this.hiddenIndices.includes(i)?e.$el.classList.add(`${M}--hidden`):e.$el.classList.remove(`${M}--hidden`))})},isBreadcrumb(e){return e?.type?.name==="NcBreadcrumb"}},render(){let e=[];if(this.$slots.default?.().forEach(a=>{if(this.isBreadcrumb(a)){e.push(a);return}a?.type===P&&a?.children?.forEach?.(s=>{this.isBreadcrumb(s)&&e.push(s)})}),e.length===0)return;e[0]=Be(e[0],{icon:this.rootIcon,ref:"breadcrumbs"});const i=[];e=e.map((a,s)=>Be(a,{ref:n=>{i[s]=n}}));const t=[...e];this.hiddenIndices.length&&t.splice(Math.round(e.length/2),0,U(ce,{class:"dropdown",...this.menuBreadcrumbProps,"aria-hidden":!0,ref:"actionsBreadcrumb",key:"actions-breadcrumb-1",onDragenter:()=>{this.menuBreadcrumbProps.open=!0},onDragleave:this.closeActions,"onUpdate:open":a=>{this.menuBreadcrumbProps.open=a}},{default:()=>this.hiddenIndices.filter(a=>a<=e.length-1).map(a=>{const s=e[a],{to:n,href:c,disableDrop:u,name:l,...v}=s.props;delete v.ref;let y=Pe,g="";c&&(y=Ee,g=c),n&&(y=Fe,g=n);const D=U(Oe,{size:20});return U(y,{...v,class:M,href:c||null,to:n||null,draggable:!1,onDragstart:this.dragStart,onDrop:B=>this.dropped(B,g,u),onDragover:this.dragOver,onDragenter:B=>this.dragEnter(B,u),onDragleave:B=>this.dragLeave(B,u)},{default:()=>l,icon:()=>D})})}));const r=[U("nav",{"aria-label":this.ariaLabel},[U("ul",{class:"breadcrumb__crumbs"},[t])])];return kt(this.$slots.actions?.())&&r.push(U("div",{class:"breadcrumb__actions",ref:"breadcrumb__actions"},this.$slots.actions?.())),this.breadcrumbsRefs=i,U("div",{class:["breadcrumb",{"breadcrumb--collapsed":this.hiddenIndices.length===e.length-2}],ref:"container"},r)}},Qt=pe(Xt,[["__scopeId","data-v-0015282c"]]),Yt=["data-timestamp","title","textContent"],ei=O({__name:"NcDateTime",props:{timestamp:{},format:{default:()=>({timeStyle:"medium",dateStyle:"short"})},relativeTime:{type:[Boolean,String],default:"long"},ignoreSeconds:{type:Boolean}},setup(e){const i=e,t=w(()=>({format:i.format})),r=w(()=>({ignoreSeconds:i.ignoreSeconds,relativeTime:i.relativeTime||"long",update:i.relativeTime!==!1})),a=$t(oe(()=>i.timestamp),t),s=Lt(oe(()=>i.timestamp),r),n=w(()=>i.relativeTime?s.value:a.value);return(c,u)=>(o(),d("span",{class:"nc-datetime",dir:"auto","data-timestamp":c.timestamp,title:p(a),textContent:$(n.value)},null,8,Yt))}});var ti="M12,5A3.5,3.5 0 0,0 8.5,8.5A3.5,3.5 0 0,0 12,12A3.5,3.5 0 0,0 15.5,8.5A3.5,3.5 0 0,0 12,5M12,7A1.5,1.5 0 0,1 13.5,8.5A1.5,1.5 0 0,1 12,10A1.5,1.5 0 0,1 10.5,8.5A1.5,1.5 0 0,1 12,7M5.5,8A2.5,2.5 0 0,0 3,10.5C3,11.44 3.53,12.25 4.29,12.68C4.65,12.88 5.06,13 5.5,13C5.94,13 6.35,12.88 6.71,12.68C7.08,12.47 7.39,12.17 7.62,11.81C6.89,10.86 6.5,9.7 6.5,8.5C6.5,8.41 6.5,8.31 6.5,8.22C6.2,8.08 5.86,8 5.5,8M18.5,8C18.14,8 17.8,8.08 17.5,8.22C17.5,8.31 17.5,8.41 17.5,8.5C17.5,9.7 17.11,10.86 16.38,11.81C16.5,12 16.63,12.15 16.78,12.3C16.94,12.45 17.1,12.58 17.29,12.68C17.65,12.88 18.06,13 18.5,13C18.94,13 19.35,12.88 19.71,12.68C20.47,12.25 21,11.44 21,10.5A2.5,2.5 0 0,0 18.5,8M12,14C9.66,14 5,15.17 5,17.5V19H19V17.5C19,15.17 14.34,14 12,14M4.71,14.55C2.78,14.78 0,15.76 0,17.5V19H3V17.07C3,16.06 3.69,15.22 4.71,14.55M19.29,14.55C20.31,15.22 21,16.06 21,17.07V19H24V17.5C24,15.76 21.22,14.78 19.29,14.55M12,16C13.53,16 15.24,16.5 16.23,17H7.77C8.76,16.5 10.47,16 12,16Z",Te="M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z",ii="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z",ai="M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z",ri="M7 14C5.9 14 5 13.1 5 12S5.9 10 7 10 9 10.9 9 12 8.1 14 7 14M12.6 10C11.8 7.7 9.6 6 7 6C3.7 6 1 8.7 1 12S3.7 18 7 18C9.6 18 11.8 16.3 12.6 14H16V18H20V14H23V10H12.6Z",ni="M3.9,12C3.9,10.29 5.29,8.9 7,8.9H11V7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H11V15.1H7C5.29,15.1 3.9,13.71 3.9,12M8,13H16V11H8V13M17,7H13V8.9H17C18.71,8.9 20.1,10.29 20.1,12C20.1,13.71 18.71,15.1 17,15.1H13V17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7Z",si="M15,20A1,1 0 0,0 14,19H13V17H17A2,2 0 0,0 19,15V5A2,2 0 0,0 17,3H7A2,2 0 0,0 5,5V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15M7,15V5H17V15H7Z",oi="M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z",li="M21.41 11.58L12.41 2.58A2 2 0 0 0 11 2H4A2 2 0 0 0 2 4V11A2 2 0 0 0 2.59 12.42L11.59 21.42A2 2 0 0 0 13 22A2 2 0 0 0 14.41 21.41L21.41 14.41A2 2 0 0 0 22 13A2 2 0 0 0 21.41 11.58M13 20L4 11V4H11L20 13M6.5 5A1.5 1.5 0 1 1 5 6.5A1.5 1.5 0 0 1 6.5 5Z";window._nc_files_scope??={},window._nc_files_scope.v4_0??={};const Y=window._nc_files_scope.v4_0;ct().setApp("@nextcloud/files").detectUser().build();const R=Object.freeze({Folder:"folder",File:"file"}),x=Object.freeze({NONE:0,READ:1,UPDATE:2,CREATE:4,WRITE:4,DELETE:8,SHARE:16,ALL:31}),Xe=Object.freeze({NEW:"new",FAILED:"failed",LOADING:"loading",LOCKED:"locked"});function Qe(e,i){return e.match(i)!==null}function H(e,i){if(e.id&&typeof e.id!="number"&&typeof e.id!="string")throw new Error("Invalid id type of value");if(!e.source)throw new Error("Missing mandatory source");try{new URL(e.source)}catch{throw new Error("Invalid source format, source must be a valid URL")}if(!e.source.startsWith("http"))throw new Error("Invalid source format, only http(s) is supported");if(!e.root)throw new Error("Missing mandatory root");if(typeof e.root!="string")throw new Error("Invalid root type");if(!e.root.startsWith("/"))throw new Error("Root must start with a leading slash");if(!e.source.includes(e.root))throw new Error("Root must be part of the source");if(Qe(e.source,i)){const t=e.source.match(i)[0];if(!e.source.includes(ee(t,e.root)))throw new Error("The root must be relative to the service. e.g /files/emma")}if(e.displayname&&typeof e.displayname!="string")throw new Error("Invalid displayname type");if(e.mtime&&!(e.mtime instanceof Date))throw new Error("Invalid mtime type");if(e.crtime&&!(e.crtime instanceof Date))throw new Error("Invalid crtime type");if(!e.mime||typeof e.mime!="string"||!e.mime.match(/^[-\w.]+\/[-+\w.]+$/gi))throw new Error("Missing or invalid mandatory mime");if("size"in e&&typeof e.size!="number"&&e.size!==void 0)throw new Error("Invalid size type");if("permissions"in e&&e.permissions!==void 0&&!(typeof e.permissions=="number"&&e.permissions>=x.NONE&&e.permissions<=x.ALL))throw new Error("Invalid permissions");if(e.owner&&e.owner!==null&&typeof e.owner!="string")throw new Error("Invalid owner type");if(e.attributes&&typeof e.attributes!="object")throw new Error("Invalid attributes type");if(e.status&&!Object.values(Xe).includes(e.status))throw new Error("Status must be a valid NodeStatus")}function ci(e){e.mtime&&typeof e.mtime=="string"&&!isNaN(Date.parse(e.mtime))&&JSON.stringify(new Date(e.mtime))===JSON.stringify(e.mtime)&&(e.mtime=new Date(e.mtime)),e.crtime&&typeof e.crtime=="string"&&!isNaN(Date.parse(e.crtime))&&JSON.stringify(new Date(e.crtime))===JSON.stringify(e.crtime)&&(e.crtime=new Date(e.crtime))}function di(e){if(e instanceof RegExp)return e;const i=e.match(/(\/?)(.+)\1([a-z]*)/i);if(!i)throw new Error("Invalid regular expression format.");const t=Array.from(new Set(i[3])).filter(r=>"gimsuy".includes(r)).join("");return new RegExp(i[2],t)}class me{_attributes;_data;_knownDavService=/(remote|public)\.php\/(web)?dav/i;readonlyAttributes=Object.entries(Object.getOwnPropertyDescriptors(me.prototype)).filter(i=>typeof i[1].get=="function"&&i[0]!=="__proto__").map(i=>i[0]);handler={set:(i,t,r)=>this.readonlyAttributes.includes(t)?!1:Reflect.set(i,t,r),deleteProperty:(i,t)=>this.readonlyAttributes.includes(t)?!1:Reflect.deleteProperty(i,t)};constructor(...[i,t]){i.mime||(i.mime="application/octet-stream"),ci(i),t=di(t||this._knownDavService),H(i,t),this._data={...i,attributes:{}},this._attributes=new Proxy(this._data.attributes,this.handler),this.update(i.attributes??{}),t&&(this._knownDavService=t)}get source(){return this._data.source.replace(/\/$/i,"")}get encodedSource(){const{origin:i}=new URL(this.source);return i+Ie(this.source.slice(i.length))}get basename(){return Nt(this.source)}get displayname(){return this._data.displayname||this.basename}set displayname(i){H({...this._data,displayname:i},this._knownDavService),this._data.displayname=i}get extension(){return Ke(this.source)}get dirname(){return He(this.path)}get mime(){return this._data.mime||"application/octet-stream"}set mime(i){i??="application/octet-stream",H({...this._data,mime:i},this._knownDavService),this._data.mime=i}get mtime(){return this._data.mtime}set mtime(i){H({...this._data,mtime:i},this._knownDavService),this._data.mtime=i}get crtime(){return this._data.crtime}get size(){return this._data.size}set size(i){H({...this._data,size:i},this._knownDavService),this.updateMtime(),this._data.size=i}get attributes(){return this._attributes}get permissions(){return this.owner===null&&!this.isDavResource?x.READ:this._data.permissions!==void 0?this._data.permissions:x.NONE}set permissions(i){H({...this._data,permissions:i},this._knownDavService),this.updateMtime(),this._data.permissions=i}get owner(){return this.isDavResource?this._data.owner:null}get isDavResource(){return Qe(this.source,this._knownDavService)}get root(){return this._data.root.replace(/^(.+)\/$/,"$1")}get path(){const i=this.source.indexOf("://"),t=this.source.slice(0,i),r=this.source.slice(i+3),a=r.indexOf("/"),s=r.slice(0,a),n=r.slice(a),c=`${t}://${s}${Ie(n)}`,u=new URL(c);let l=decodeURIComponent(u.pathname);this.isDavResource&&(l=l.split(this._knownDavService).pop());const v=l.indexOf(this.root),y=this.root.replace(/\/$/,"");return l.slice(v+y.length)||"/"}get fileid(){return typeof this._data?.id=="number"?this._data.id:void 0}get id(){if(!(typeof this._data?.id>"u"||typeof this._data.id=="number"&&this._data.id<0))return String(this._data.id)}get status(){return this._data?.status}set status(i){H({...this._data,status:i},this._knownDavService),this._data.status=i}move(i){H({...this._data,source:i},this._knownDavService);const t=this.basename;this._data.source=i,this.displayname===t&&this.basename!==t&&(this.displayname=this.basename)}rename(i){if(i.includes("/"))throw new Error("Invalid basename");this.move(He(this.source)+"/"+i)}updateMtime(){this._data.mtime&&(this._data.mtime=new Date)}update(i){for(const[t,r]of Object.entries(i))try{r===void 0?delete this.attributes[t]:this.attributes[t]=r}catch(a){if(a instanceof TypeError)continue;throw a}}clone(){return new this.constructor(structuredClone(this._data),this._knownDavService)}toJSON(){return JSON.stringify([structuredClone(this._data),this._knownDavService.toString()])}}class ui extends me{constructor(...[i,t]){super(i,t)}get type(){return R.File}}class pi extends me{constructor(...[i,t]){super({...i,mime:"httpd/unix-directory"},t)}get type(){return R.Folder}get extension(){return null}get mime(){return"httpd/unix-directory"}}const W=Object.freeze({ReservedName:"reserved name",Character:"character",Extension:"extension"});class J extends Error{constructor(i){super(`Invalid ${i.reason} '${i.segment}' in filename '${i.filename}'`,{cause:i})}get filename(){return this.cause.filename}get reason(){return this.cause.reason}get segment(){return this.cause.segment}}function mi(e){const i=St().files,t=i.forbidden_filename_characters??["/","\\"];for(const n of t)if(e.includes(n))throw new J({segment:n,reason:W.Character,filename:e});if(e=e.toLocaleLowerCase(),(i.forbidden_filenames??[".htaccess"]).includes(e))throw new J({filename:e,segment:e,reason:W.ReservedName});const r=e.indexOf(".",1),a=e.substring(0,r===-1?void 0:r);if((i.forbidden_filename_basenames??[]).includes(a))throw new J({filename:e,segment:a,reason:W.ReservedName});const s=i.forbidden_filename_extensions??[];for(const n of s)if(e.length>n.length&&e.endsWith(n))throw new J({segment:n,reason:W.Extension,filename:e})}const be=["B","KB","MB","GB","TB","PB"],_e=["B","KiB","MiB","GiB","TiB","PiB"];function fi(e,i=!1,t=!1,r=!1){t=t&&!r,typeof e=="string"&&(e=Number(e));let a=e>0?Math.floor(Math.log(e)/Math.log(r?1e3:1024)):0;a=Math.min((t?_e.length:be.length)-1,a);const s=t?_e[a]:be[a];let n=(e/Math.pow(r?1e3:1024,a)).toFixed(1);return i===!0&&a===0?(n!=="0.0"?"< 1 ":"0 ")+(t?_e[1]:be[1]):(a<2?n=parseFloat(n).toFixed(0):n=parseFloat(n).toLocaleString(qe()),n+" "+s)}function Ue(e){return e instanceof Date?e.toISOString():String(e)}function hi(e,i,t){i=i??[s=>s],t=t??[];const r=i.map((s,n)=>(t[n]??"asc")==="asc"?1:-1),a=Intl.Collator([dt(),qe()],{numeric:!0,usage:"sort"});return[...e].sort((s,n)=>{for(const[c,u]of i.entries()){const l=a.compare(Ue(u(s)),Ue(u(n)));if(l!==0)return l*r[c]}return 0})}const G=Object.freeze({Name:"basename",Modified:"mtime",Size:"size"});function vi(e,i={}){const t={sortingMode:G.Name,sortingOrder:"asc",...i};function r(n){const c=n.displayname||n.attributes?.displayname||n.basename||"";return n.type===R.Folder?c:c.lastIndexOf(".")>0?c.slice(0,c.lastIndexOf(".")):c}const a=[...t.sortFavoritesFirst?[n=>n.attributes?.favorite!==1]:[],...t.sortFoldersFirst?[n=>n.type!=="folder"]:[],...t.sortingMode!==G.Name?[n=>n[t.sortingMode]??n.attributes[t.sortingMode]]:[],n=>r(n),n=>n.basename],s=[...t.sortFavoritesFirst?["asc"]:[],...t.sortFoldersFirst?["asc"]:[],...t.sortingMode===G.Modified?[t.sortingOrder==="asc"?"desc":"asc"]:[],...t.sortingMode!==G.Modified&&t.sortingMode!==G.Name?[t.sortingOrder]:[],t.sortingOrder,t.sortingOrder];return hi(e,a,s)}const gi=new Vt({concurrency:5});function yi(e){const{resolve:i,promise:t}=Promise.withResolvers();return gi.add(()=>{const r=new Image;return r.onerror=()=>i(!1),r.onload=()=>i(!0),r.src=e,t}),t}function wi(e,i={}){i={size:32,cropPreview:!1,mimeFallback:!0,...i};try{const t=e.attributes?.previewUrl||ze("/core/preview?fileId={fileid}",{fileid:e.fileid});let r;try{r=new URL(t)}catch{r=new URL(t,window.location.origin)}return r.searchParams.set("x",`${i.size}`),r.searchParams.set("y",`${i.size}`),r.searchParams.set("mimeFallback",`${i.mimeFallback}`),r.searchParams.set("a",i.cropPreview===!0?"0":"1"),r.searchParams.set("c",`${e.attributes.etag}`),r}catch{return null}}function bi(e,i){const t=L(null),r=L(!1);return ut(()=>{r.value=!1,t.value=wi(X(e),X(i||{})),t.value&&X(e).type===R.File&&yi(t.value.href).then(a=>{r.value=a})}),{previewURL:t,previewLoaded:r}}const N=(e,i)=>{const t=e.__vccOpts||e;for(const[r,a]of i)t[r]=a;return t};var de;(function(e){e[e.User=0]="User",e[e.Group=1]="Group",e[e.Link=3]="Link",e[e.Email=4]="Email",e[e.Remote=6]="Remote",e[e.Team=7]="Team",e[e.Guest=8]="Guest",e[e.RemoteGroup=9]="RemoteGroup",e[e.Room=10]="Room",e[e.Deck=12]="Deck",e[e.FederatedGroup=14]="FederatedGroup",e[e.ScienceMesh=15]="ScienceMesh"})(de||(de={}));function Ye(){return ie("files_sharing","isPublic",null)??document.querySelector('input#isPublic[type="hidden"][name="isPublic"][value="1"]')!==null}function Me(){return ie("files_sharing","isPublic",null)??document.querySelector('input#isPublic[type="hidden"][name="isPublic"][value="1"]')!==null}function _i(){return ie("files_sharing","sharingToken",null)??document.querySelector('input#sharingToken[type="hidden"]')?.value??null}function ki(e=""){let i=x.NONE;return e&&(e.includes("G")&&(i|=x.READ),e.includes("W")&&(i|=x.WRITE),e.includes("CK")&&(i|=x.CREATE),e.includes("NV")&&(i|=x.UPDATE),e.includes("D")&&(i|=x.DELETE),e.includes("R")&&(i|=x.SHARE)),i}const Ci=["d:getcontentlength","d:getcontenttype","d:getetag","d:getlastmodified","d:creationdate","d:displayname","d:quota-available-bytes","d:resourcetype","nc:has-preview","nc:is-encrypted","nc:mount-type","oc:comments-unread","oc:favorite","oc:fileid","oc:owner-display-name","oc:owner-id","oc:permissions","oc:size"],Li={d:"DAV:",nc:"http://nextcloud.org/ns",oc:"http://owncloud.org/ns",ocs:"http://open-collaboration-services.org/ns"};function Ne(){return Y.davProperties??=[...Ci],Y.davProperties.map(e=>`<${e} />`).join(" ")}function xe(){return Y.davNamespaces??={...Li},Object.keys(Y.davNamespaces).map(e=>`xmlns:${e}="${Y.davNamespaces?.[e]}"`).join(" ")}function et(){return` ${Ne()} `}function $i(){return` ${Ne()} 1 `}function Si(e){return` ${Ne()} /files/${ue()?.uid}/ infinity httpd/unix-directory 0 ${e} 100 0 `}function Vi(){return Me()?`/files/${_i()}`:`/files/${ue()?.uid}`}const re=Vi();function zi(){const e=pt("dav");return Me()?e.replace("remote.php","public.php"):e}const tt=zi();function it(e=tt,i={}){const t=xt(e,{headers:i});function r(a){t.setHeaders({...i,"X-Requested-With":"XMLHttpRequest",requesttoken:a??""})}return ft(r),r(mt()),Bt().patch("fetch",(a,s)=>{const n=s.headers;return n?.method&&(s.method=n.method,delete n.method),fetch(a,s)}),t}async function Ai(e={}){const i=e.client??it(),t=e.path??"/",r=e.davRoot??re;return(await i.getDirectoryContents(`${r}${t}`,{signal:e.signal,details:!0,data:$i(),headers:{method:"REPORT"},includeSelf:!0})).data.filter(a=>a.filename!==t).map(a=>fe(a,r))}function fe(e,i=re,t=tt){let r=ue()?.uid;if(Me())r=r??"anonymous";else if(!r)throw new Error("No user id found");const a=e.props,s=ki(a?.permissions),n=String(a?.["owner-id"]||r),c=a.fileid||0,u=new Date(Date.parse(e.lastmod)),l=new Date(Date.parse(a.creationdate)),v={id:c,source:`${t}${e.filename}`,mtime:!isNaN(u.getTime())&&u.getTime()!==0?u:void 0,crtime:!isNaN(l.getTime())&&l.getTime()!==0?l:void 0,mime:e.mime||"application/octet-stream",displayname:a.displayname!==void 0?String(a.displayname):void 0,size:a?.size||Number.parseInt(a.getcontentlength||"0"),status:c<0?Xe.FAILED:void 0,permissions:s,owner:n,root:i,attributes:{...e,...a,hasPreview:a?.["has-preview"]}};return delete v.attributes?.props,e.type==="file"?new ui(v):new pi(v)}const Di={name:"FileIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Mi=["aria-hidden","aria-label"],Ni=["fill","width","height"],xi={d:"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z"},Bi={key:0};function Ei(e,i,t,r,a,s){return o(),d("span",F(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon file-icon",role:"img",onClick:i[0]||(i[0]=n=>e.$emit("click",n))}),[(o(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",xi,[t.title?(o(),d("title",Bi,$(t.title),1)):S("",!0)])],8,Ni))],16,Mi)}const Ve=N(Di,[["render",Ei]]),Fi={name:"MenuDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Pi=["aria-hidden","aria-label"],Ii=["fill","width","height"],Hi={d:"M7,10L12,15L17,10H7Z"},Ri={key:0};function Oi(e,i,t,r,a,s){return o(),d("span",F(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon menu-down-icon",role:"img",onClick:i[0]||(i[0]=n=>e.$emit("click",n))}),[(o(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",Hi,[t.title?(o(),d("title",Ri,$(t.title),1)):S("",!0)])],8,Ii))],16,Pi)}const ke=N(Fi,[["render",Oi]]),Ti={name:"MenuUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ui=["aria-hidden","aria-label"],Wi=["fill","width","height"],qi={d:"M7,15L12,10L17,15H7Z"},ji={key:0};function Zi(e,i,t,r,a,s){return o(),d("span",F(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon menu-up-icon",role:"img",onClick:i[0]||(i[0]=n=>e.$emit("click",n))}),[(o(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",qi,[t.title?(o(),d("title",ji,$(t.title),1)):S("",!0)])],8,Wi))],16,Ui)}const Ce=N(Ti,[["render",Zi]]),Gi={name:"FolderIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ji=["aria-hidden","aria-label"],Ki=["fill","width","height"],Xi={d:"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z"},Qi={key:0};function Yi(e,i,t,r,a,s){return o(),d("span",F(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon folder-icon",role:"img",onClick:i[0]||(i[0]=n=>e.$emit("click",n))}),[(o(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",Xi,[t.title?(o(),d("title",Qi,$(t.title),1)):S("",!0)])],8,Ki))],16,Ji)}const at=N(Gi,[["render",Yi]]),rt={"file-picker__file-icon":"_file-picker__file-icon_3v9zx_9","file-picker__file-icon--primary":"_file-picker__file-icon--primary_3v9zx_21","file-picker__file-icon-overlay":"_file-picker__file-icon-overlay_3v9zx_25"},ea=O({__name:"FilePreview",props:{node:{},cropImagePreviews:{type:Boolean}},setup(e){const i=e,t=L(rt),{previewURL:r,previewLoaded:a}=bi(oe(i,"node"),w(()=>({cropPreview:i.cropImagePreviews}))),s=w(()=>i.node.type===R.File),n=w(()=>{if(i.node.type!==R.Folder)return null;if(i.node.attributes?.["is-encrypted"]===1)return ri;if(i.node.attributes?.["is-tag"])return li;const c=Object.values(i.node.attributes?.["share-types"]||{}).flat();if(c.some(u=>u===de.Link||u===de.Email))return ni;if(c.length>0)return Te;switch(i.node.attributes?.["mount-type"]){case"external":case"external-session":return si;case"group":return ti;case"shared":return Te}return null});return(c,u)=>(o(),d("div",{style:bt(p(a)?{backgroundImage:`url(${p(r)})`}:void 0),class:j(t.value["file-picker__file-icon"])},[p(a)?S("",!0):(o(),d(P,{key:0},[s.value?(o(),C(Ve,{key:0,size:32})):(o(),d(P,{key:1},[n.value?(o(),C(p(Je),{key:0,class:j(t.value["file-picker__file-icon-overlay"]),inline:"",path:n.value,size:16},null,8,["class","path"])):S("",!0),k(at,{class:j(t.value["file-picker__file-icon--primary"]),size:32},null,8,["class"])],64))],64))],6))}}),ta=["tabindex","aria-selected","data-filename"],ia={class:"row-name"},aa={class:"file-picker__name-container","data-testid":"row-name"},ra=["title","textContent"],na=["textContent"],sa={class:"row-size"},oa={class:"row-modified"},la=O({__name:"FileListRow",props:{allowPickDirectory:{type:Boolean},selected:{type:Boolean},showCheckbox:{type:Boolean},canPick:{type:Boolean},node:{},cropImagePreviews:{type:Boolean}},emits:["update:selected","enterDirectory"],setup(e,{emit:i}){const t=e,r=i,a=w(()=>t.node.mtime??0),s=w(()=>Ke(t.node.displayname)),n=w(()=>t.node.displayname.slice(0,s.value?-s.value.length:void 0)),c=w(()=>t.node.type===R.Folder),u=w(()=>t.canPick&&(t.allowPickDirectory||!c.value)),l=w(()=>(t.node.permissions&x.READ)===x.READ);function v(){u.value&&r("update:selected",!t.selected)}function y(){c.value?l.value&&r("enterDirectory",t.node):v()}function g(D){D.key==="Enter"&&y()}return(D,B)=>(o(),d("tr",F({tabindex:e.showCheckbox&&!c.value?void 0:0,"aria-selected":u.value?e.selected:void 0,class:["file-picker__row",[{"file-picker__row--selected":e.selected&&!e.showCheckbox,"file-picker__row--not-navigatable":c.value&&!l.value,"file-picker__row--not-pickable":!u.value}]],"data-filename":e.node.basename,"data-testid":"file-list-row"},wt({click:y,...!e.showCheckbox||c.value?{keydown:g}:{}},!0)),[e.showCheckbox?(o(),d("td",{key:0,class:"row-checkbox",onClick:se(()=>{},["stop"])},[k(p(Ge),{"aria-label":p(h)("Select the row for {nodename}",{nodename:n.value}),disabled:!u.value,"data-testid":"row-checkbox",modelValue:e.selected,"onUpdate:modelValue":v},null,8,["aria-label","disabled","modelValue"])])):S("",!0),m("td",ia,[m("div",aa,[k(ea,{node:e.node,cropImagePreviews:e.cropImagePreviews},null,8,["node","cropImagePreviews"]),m("div",{class:"file-picker__file-name",title:n.value,textContent:$(n.value)},null,8,ra),m("div",{class:"file-picker__file-extension",textContent:$(s.value)},null,8,na)])]),m("td",sa,$(p(fi)(e.node.size||0)),1),m("td",oa,[k(p(ei),{timestamp:a.value,ignoreSeconds:""},null,8,["timestamp"])])],16,ta))}}),ca=N(la,[["__scopeId","data-v-7857e8bd"]]),da={"aria-hidden":"true",class:"file-picker__row loading-row"},ua={key:0,class:"row-checkbox"},pa={class:"row-name"},ma={class:"row-wrapper"},fa=O({__name:"LoadingTableRow",props:{showCheckbox:{type:Boolean}},setup(e){return(i,t)=>(o(),d("tr",da,[e.showCheckbox?(o(),d("td",ua,[...t[0]||(t[0]=[m("span",null,null,-1)])])):S("",!0),m("td",pa,[m("div",ma,[m("span",{class:j(p(rt)["file-picker__file-icon"])},null,2),t[1]||(t[1]=m("span",null,null,-1))])]),t[2]||(t[2]=m("td",{class:"row-size"},[m("span")],-1)),t[3]||(t[3]=m("td",{class:"row-modified"},[m("span")],-1))]))}}),ha=N(fa,[["__scopeId","data-v-1f96131b"]]);function nt(){const e=ie("files","config",null),i=L(e?.show_hidden??!0),t=L(e?.sort_favorites_first??!0),r=L(e?.crop_image_previews??!0);return ae(async()=>{if(Ye())te.debug("Skip loading files settings - currently on public share");else try{const{data:a}=await Ze.get(ze("/apps/files/api/v1/configs"));i.value=a?.data?.show_hidden??!1,t.value=a?.data?.sort_favorites_first??!0,r.value=a?.data?.crop_image_previews??!0}catch(a){te.error("Could not load files settings",{error:a}),De(h("Could not load files settings"))}}),{showHiddenFiles:i,sortFavoritesFirst:t,cropImagePreviews:r}}function va(e){const i=l=>l==="asc"?"ascending":l==="desc"?"descending":"none",t=ie("files","viewConfigs",null),r=L({sortBy:t?.files?.sorting_mode??"basename",order:i(t?.files?.sorting_direction??"asc")}),a=L({sortBy:t?.recent?.sorting_mode??"basename",order:i(t?.recent?.sorting_direction??"asc")}),s=L({sortBy:t?.favorites?.sorting_mode??"basename",order:i(t?.favorites?.sorting_direction??"asc")});ae(async()=>{if(Ye())te.debug("Skip loading files views - currently on public share");else try{const{data:l}=await Ze.get(ze("/apps/files/api/v1/views"));r.value={sortBy:l?.data?.files?.sorting_mode??"basename",order:i(l?.data?.files?.sorting_direction)},s.value={sortBy:l?.data?.favorites?.sorting_mode??"basename",order:i(l?.data?.favorites?.sorting_direction)},a.value={sortBy:l?.data?.recent?.sorting_mode??"basename",order:i(l?.data?.recent?.sorting_direction)}}catch(l){te.error("Could not load files views",{error:l}),De(h("Could not load files views"))}});const n=w(()=>X(e||"files")==="files"?r.value:X(e)==="recent"?a.value:s.value),c=w(()=>n.value.sortBy),u=w(()=>n.value.order);return{filesViewConfig:r,favoritesViewConfig:s,recentViewConfig:a,currentConfig:n,sortBy:c,order:u}}const ga={key:0,class:"row-checkbox"},ya={class:"hidden-visually"},wa=["aria-sort"],ba={class:"header-wrapper"},_a={key:2,style:{width:"44px"}},ka=["aria-sort"],Ca={key:2,style:{width:"44px"}},La=["aria-sort"],$a={key:2,style:{width:"44px"}},Sa=O({__name:"FileList",props:$e({currentView:{},multiselect:{type:Boolean},allowPickDirectory:{type:Boolean},loading:{type:Boolean},files:{},canPick:{type:Function}},{path:{required:!0},pathModifiers:{},selectedFiles:{required:!0},selectedFilesModifiers:{}}),emits:["update:path","update:selectedFiles"],setup(e){const i=Se(e,"path"),t=Se(e,"selectedFiles"),r=e,a=L(),{currentConfig:s}=va(r.currentView),n=w(()=>a.value??s.value),c=w(()=>n.value.sortBy==="basename"?n.value.order==="none"?void 0:n.value.order:void 0),u=w(()=>n.value.sortBy==="size"?n.value.order==="none"?void 0:n.value.order:void 0),l=w(()=>n.value.sortBy==="mtime"?n.value.order==="none"?void 0:n.value.order:void 0);function v(V){n.value.sortBy===V?n.value.order==="ascending"?a.value={sortBy:n.value.sortBy,order:"descending"}:a.value={sortBy:n.value.sortBy,order:"ascending"}:a.value={sortBy:V,order:"ascending"}}const{sortFavoritesFirst:y,cropImagePreviews:g}=nt(),D=w(()=>vi(r.files,{sortFoldersFirst:!0,sortFavoritesFirst:y.value,sortingOrder:n.value.order==="descending"?"desc":"asc",sortingMode:n.value.sortBy})),B=w(()=>r.files.filter(V=>r.allowPickDirectory||V.type!==R.Folder)),Z=w(()=>!r.loading&&t.value.length>0&&t.value.length>=B.value.length);function he(){t.value.lengthz.path!==V.path):r.multiselect?t.value=[...t.value,V]:t.value=[V]}function ne(V){i.value=V.path}const I=L(4),q=L();{const V=()=>gt(()=>{const z=q.value?.parentElement?.children||[];let A=q.value?.parentElement?.clientHeight||450;for(let T=0;T{window.addEventListener("resize",V),V()}),yt(()=>{window.removeEventListener("resize",V)})}return(V,z)=>(o(),d("div",{ref_key:"fileContainer",ref:q,class:"file-picker__files"},[m("table",null,[m("thead",null,[m("tr",null,[e.multiselect?(o(),d("th",ga,[m("span",ya,$(p(h)("Select entry")),1),e.multiselect?(o(),C(p(Ge),{key:0,"aria-label":p(h)("Select all entries"),"data-testid":"select-all-checkbox",modelValue:Z.value,"onUpdate:modelValue":he},null,8,["aria-label","modelValue"])):S("",!0)])):S("",!0),m("th",{"aria-sort":c.value,class:"row-name"},[m("div",ba,[z[3]||(z[3]=m("span",{class:"file-picker__header-preview"},null,-1)),k(p(Q),{"data-test":"file-picker_sort-name",variant:"tertiary",wide:"",onClick:z[0]||(z[0]=A=>v("basename"))},{icon:b(()=>[c.value==="ascending"?(o(),C(Ce,{key:0,size:20})):c.value==="descending"?(o(),C(ke,{key:1,size:20})):(o(),d("span",_a))]),default:b(()=>[K(" "+$(p(h)("Name")),1)]),_:1})])],8,wa),m("th",{"aria-sort":u.value,class:"row-size"},[k(p(Q),{variant:"tertiary",wide:"",onClick:z[1]||(z[1]=A=>v("size"))},{icon:b(()=>[u.value==="ascending"?(o(),C(Ce,{key:0,size:20})):u.value==="descending"?(o(),C(ke,{key:1,size:20})):(o(),d("span",Ca))]),default:b(()=>[K(" "+$(p(h)("Size")),1)]),_:1})],8,ka),m("th",{"aria-sort":l.value,class:"row-modified"},[k(p(Q),{variant:"tertiary",wide:"",onClick:z[2]||(z[2]=A=>v("mtime"))},{icon:b(()=>[l.value==="ascending"?(o(),C(Ce,{key:0,size:20})):l.value==="descending"?(o(),C(ke,{key:1,size:20})):(o(),d("span",$a))]),default:b(()=>[K(" "+$(p(h)("Modified")),1)]),_:1})],8,La)])]),m("tbody",null,[e.loading?(o(!0),d(P,{key:0},le(I.value,A=>(o(),C(ha,{key:A,showCheckbox:e.multiselect},null,8,["showCheckbox"]))),128)):(o(!0),d(P,{key:1},le(D.value,A=>(o(),C(ca,{key:A.fileid||A.path,allowPickDirectory:e.allowPickDirectory,showCheckbox:e.multiselect,canPick:(e.multiselect||t.value.length===0||t.value.includes(A))&&(e.canPick===void 0||e.canPick(A)),selected:t.value.includes(A),node:A,cropImagePreviews:p(g),"onUpdate:selected":T=>ve(A),onEnterDirectory:ne},null,8,["allowPickDirectory","showCheckbox","canPick","selected","node","cropImagePreviews","onUpdate:selected"]))),128))])])],512))}}),Va=N(Sa,[["__scopeId","data-v-412efd5c"]]),za={name:"HomeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Aa=["aria-hidden","aria-label"],Da=["fill","width","height"],Ma={d:"M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z"},Na={key:0};function xa(e,i,t,r,a,s){return o(),d("span",F(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon home-icon",role:"img",onClick:i[0]||(i[0]=n=>e.$emit("click",n))}),[(o(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",Ma,[t.title?(o(),d("title",Na,$(t.title),1)):S("",!0)])],8,Da))],16,Aa)}const Ba=N(za,[["render",xa]]),Ea={name:"PlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Fa=["aria-hidden","aria-label"],Pa=["fill","width","height"],Ia={d:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"},Ha={key:0};function Ra(e,i,t,r,a,s){return o(),d("span",F(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon plus-icon",role:"img",onClick:i[0]||(i[0]=n=>e.$emit("click",n))}),[(o(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",Ia,[t.title?(o(),d("title",Ha,$(t.title),1)):S("",!0)])],8,Pa))],16,Fa)}const Oa=N(Ea,[["render",Ra]]),Ta=O({__name:"FilePickerBreadcrumbs",props:$e({showMenu:{type:Boolean}},{path:{required:!0},pathModifiers:{}}),emits:$e(["createNode"],["update:path"]),setup(e,{emit:i}){const t=Se(e,"path"),r=i,a=L(!1),s=L(""),n=vt("nameInput");function c(){const v=s.value.trim(),y=n.value?.$el?.querySelector("input");let g="";try{mi(v)}catch(D){if(!(D instanceof J))throw D;switch(D.reason){case W.Character:g=h('"{char}" is not allowed inside a folder name.',{char:D.segment});break;case W.ReservedName:g=h('"{segment}" is a reserved name and not allowed for folder names.',{segment:D.segment});break;case W.Extension:g=h('Folder names must not end with "{extension}".',{extension:D.segment});break;default:g=h("Invalid folder name.")}}return y&&y.setCustomValidity(g),g===""}function u(){const v=s.value.trim();c()&&(a.value=!1,r("createNode",v),s.value="")}const l=w(()=>t.value.split("/").filter(v=>v!=="").map((v,y,g)=>({name:v,path:"/"+g.slice(0,y+1).join("/")})));return(v,y)=>(o(),C(p(Qt),{class:"file-picker__breadcrumbs"},We({default:b(()=>[k(p(ce),{name:p(h)("All files"),title:p(h)("Home"),onClick:y[0]||(y[0]=g=>t.value="/")},{icon:b(()=>[k(Ba,{size:20})]),_:1},8,["name","title"]),(o(!0),d(P,null,le(l.value,g=>(o(),C(p(ce),{key:g.path,name:g.name,title:g.path,onClick:D=>t.value=g.path},null,8,["name","title","onClick"]))),128))]),_:2},[e.showMenu?{name:"actions",fn:b(()=>[k(p(Ae),{open:a.value,"onUpdate:open":y[2]||(y[2]=g=>a.value=g),"aria-label":p(h)("Create directory"),forceMenu:!0,forceName:!0,menuName:p(h)("New"),variant:"secondary",onClose:y[3]||(y[3]=g=>s.value="")},{icon:b(()=>[k(Oa,{size:20})]),default:b(()=>[k(p(At),{ref_key:"nameInput",ref:n,modelValue:s.value,"onUpdate:modelValue":[y[1]||(y[1]=g=>s.value=g),c],label:p(h)("New folder"),placeholder:p(h)("New folder name"),onSubmit:u},{icon:b(()=>[k(at,{size:20})]),_:1},8,["modelValue","label","placeholder"])]),_:1},8,["open","aria-label","menuName"])]),key:"0"}:void 0]),1024))}}),Ua=N(Ta,[["__scopeId","data-v-b448b141"]]),Wa={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},qa=["aria-hidden","aria-label"],ja=["fill","width","height"],Za={d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},Ga={key:0};function Ja(e,i,t,r,a,s){return o(),d("span",F(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon close-icon",role:"img",onClick:i[0]||(i[0]=n=>e.$emit("click",n))}),[(o(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",Za,[t.title?(o(),d("title",Ga,$(t.title),1)):S("",!0)])],8,ja))],16,qa)}const Ka=N(Wa,[["render",Ja]]),Xa={name:"MagnifyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Qa=["aria-hidden","aria-label"],Ya=["fill","width","height"],er={d:"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"},tr={key:0};function ir(e,i,t,r,a,s){return o(),d("span",F(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon magnify-icon",role:"img",onClick:i[0]||(i[0]=n=>e.$emit("click",n))}),[(o(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",er,[t.title?(o(),d("title",tr,$(t.title),1)):S("",!0)])],8,Ya))],16,Qa)}const ar=N(Xa,[["render",ir]]);function rr(e){const i=[{id:"files",label:h("All files"),icon:ai},{id:"recent",label:h("Recent"),icon:ii},{id:"favorites",label:h("Favorites"),icon:oi}],t=e.value?i.filter(({id:r})=>r==="files"):i;return{allViews:i,availableViews:t}}const nr={key:0,class:"file-picker__side"},sr=O({__name:"FilePickerNavigation",props:{currentView:{},filterString:{},isCollapsed:{type:Boolean},disabledNavigation:{type:Boolean}},emits:["update:currentView","update:filterString"],setup(e,{emit:i}){const t=e,r=i,{availableViews:a}=rr(L(ue()===null)),s=w(()=>a.filter(c=>c.id===t.currentView)[0]??a[0]),n=c=>r("update:filterString",c.toString());return(c,u)=>(o(),d(P,null,[k(p(Dt),{class:"file-picker__filter-input",label:p(h)("Filter file list"),showTrailingButton:!!e.filterString,modelValue:e.filterString,"onUpdate:modelValue":n,onTrailingButtonClick:u[0]||(u[0]=l=>n(""))},{"trailing-button-icon":b(()=>[k(Ka,{size:16})]),default:b(()=>[k(ar,{size:16})]),_:1},8,["label","showTrailingButton","modelValue"]),p(a).length>1&&!e.disabledNavigation?(o(),d(P,{key:0},[e.isCollapsed?(o(),C(p(Mt),{key:1,"aria-label":p(h)("Current view selector"),clearable:!1,searchable:!1,options:p(a),modelValue:s.value,"onUpdate:modelValue":u[1]||(u[1]=l=>r("update:currentView",l.id))},null,8,["aria-label","options","modelValue"])):(o(),d("ul",nr,[(o(!0),d(P,null,le(p(a),l=>(o(),d("li",{key:l.id},[k(p(Q),{variant:e.currentView===l.id?"primary":"tertiary",wide:!0,onClick:v=>c.$emit("update:currentView",l.id)},{icon:b(()=>[k(p(Je),{path:l.icon,size:20},null,8,["path"])]),default:b(()=>[K(" "+$(l.label),1)]),_:2},1032,["variant","onClick"])]))),128))]))],64)):S("",!0)],64))}}),or=N(sr,[["__scopeId","data-v-e1c54e23"]]);async function lr({client:e,signal:i}){const t=Math.round(Date.now()/1e3)-1209600,{data:r}=await e.search("/",{signal:i,details:!0,data:Si(t)});return r.results.map(a=>fe(a))}async function cr({client:e,path:i,signal:t}){const r=(await e.getDirectoryContents(ee(re,i),{signal:t,details:!0,includeSelf:!0,data:et()})).data.map(a=>fe(a));return{contents:r.filter(({path:a})=>a!==i),folder:r.find(({path:a})=>i===a)}}async function dr(e,i){const{data:t}=await e.stat(ee(re,i),{details:!0,data:et()});return fe(t)}function ur(e,i){const t=it(),r=Le([]),a=Le(null),s=L(!0);let n;async function c(l){const v=ee(i.value,l);await t.createDirectory(ee(re,v));const y=await dr(t,v);return r.value=[...r.value,y],y}async function u(){n&&(n.abort(),n=void 0),n=new AbortController,s.value=!0;try{if(e.value==="favorites")r.value=await Ai({client:t,path:i.value,signal:n.signal}),a.value=null;else if(e.value==="recent")r.value=await lr({client:t,signal:n.signal}),a.value=null;else{const l=await cr({client:t,path:i.value,signal:n.signal});a.value=l.folder,r.value=l.contents}}catch(l){if(l instanceof Error&&l.name==="AbortError")return;throw l}finally{n=void 0,s.value=!1}}return je([e,i],()=>u()),ae(()=>u()),{isLoading:s,files:r,folder:a,loadFiles:u,createDirectory:c}}function pr(e){const i=w(()=>e.value.map(t=>t.split("/")));return{isSupportedMimeType:t=>{const r=t.split("/");return i.value.some(([a,s])=>(r[0]===a||a==="*")&&(r[1]===s||s==="*"))}}}const mr={class:"file-picker__main"},fr={key:1,class:"file-picker__view"},hr=O({__name:"FilePicker",props:{buttons:{},name:{},allowPickDirectory:{type:Boolean,default:!1},noMenu:{type:Boolean,default:!1},disabledNavigation:{type:Boolean,default:!1},filterFn:{type:Function,default:void 0},canPickFn:{type:Function,default:void 0},mimetypeFilter:{default:()=>[]},multiselect:{type:Boolean,default:!1},path:{default:void 0}},emits:["close"],setup(e,{emit:i}){const t=e,r=i,a=L(!0),s=L("files"),n=L(window?.sessionStorage.getItem("NC.FilePicker.LastPath")||"/"),c=L(""),u=w({get:()=>s.value==="files"?c.value||t.path||n.value:"/",set:_=>{c.value=_}}),l=Le([]),{files:v,folder:y,isLoading:g,loadFiles:D,createDirectory:B}=ur(s,u);je([c],()=>{t.path===void 0&&c.value&&window.sessionStorage.setItem("NC.FilePicker.LastPath",c.value),l.value=[]});let Z=!1;const he=w(()=>{const _=l.value.length===0&&t.allowPickDirectory&&y.value?[y.value]:l.value;return(typeof t.buttons=="function"?t.buttons(_,u.value,s.value):t.buttons).map(f=>({...f,disabled:f.disabled||g.value,callback:()=>{Z=!0,ve(f.callback,_)}}))});async function ve(_,f){await _(f),r("close",f),Z=!1}const ne=w(()=>s.value==="favorites"?h("Favorites"):s.value==="recent"?h("Recent"):""),I=L(""),{isSupportedMimeType:q}=pr(oe(t,"mimetypeFilter"));ae(()=>D());const{showHiddenFiles:V}=nt(),z=w(()=>{let _=v.value;return V.value||(_=_.filter(f=>!f.basename.startsWith("."))),t.mimetypeFilter.length>0&&(_=_.filter(f=>f.type==="folder"||f.mime&&q(f.mime))),I.value&&(_=_.filter(f=>f.basename.toLowerCase().includes(I.value.toLowerCase()))),t.filterFn&&(_=_.filter(f=>t.filterFn(f))),_}),A=w(()=>s.value==="files"?h("Upload some content or sync with your devices!"):s.value==="recent"?h("Files and folders you recently modified will show up here."):h("Files and folders you mark as favorite will show up here."));async function T(_){try{const f=await B(_);c.value=f.path,ht("files:node:created",v.value.filter(E=>E.basename===_)[0])}catch(f){te.warn("Could not create new folder",{name:_,error:f}),De(h("Could not create the new folder"))}}function st(_){!_&&!Z&&r("close")}return(_,f)=>(o(),C(p(zt),{open:a.value,"onUpdate:open":[f[6]||(f[6]=E=>a.value=E),st],buttons:he.value,name:e.name,size:"large",contentClasses:"file-picker__content",dialogClasses:"file-picker",navigationClasses:"file-picker__navigation"},{navigation:b(({isCollapsed:E})=>[k(or,{currentView:s.value,"onUpdate:currentView":f[0]||(f[0]=ge=>s.value=ge),filterString:I.value,"onUpdate:filterString":f[1]||(f[1]=ge=>I.value=ge),isCollapsed:E,disabledNavigation:e.disabledNavigation},null,8,["currentView","filterString","isCollapsed","disabledNavigation"])]),default:b(()=>[m("div",mr,[s.value==="files"?(o(),C(Ua,{key:0,path:u.value,"onUpdate:path":f[2]||(f[2]=E=>u.value=E),showMenu:!e.noMenu,onCreateNode:T},null,8,["path","showMenu"])):(o(),d("div",fr,[m("h3",null,$(ne.value),1)])),p(g)||z.value.length>0?(o(),C(Va,{key:2,path:u.value,"onUpdate:path":[f[3]||(f[3]=E=>u.value=E),f[5]||(f[5]=E=>s.value="files")],selectedFiles:l.value,"onUpdate:selectedFiles":f[4]||(f[4]=E=>l.value=E),allowPickDirectory:e.allowPickDirectory,currentView:s.value,files:z.value,multiselect:e.multiselect,loading:p(g),name:ne.value,canPick:e.canPickFn},null,8,["path","selectedFiles","allowPickDirectory","currentView","files","multiselect","loading","name","canPick"])):I.value?(o(),C(p(Re),{key:3,name:p(h)("No matching files"),description:p(h)("No files matching your filter were found.")},{icon:b(()=>[k(Ve)]),_:1},8,["name","description"])):(o(),C(p(Re),{key:4,name:p(h)("No files in here"),description:A.value},{icon:b(()=>[k(Ve)]),_:1},8,["name","description"]))])]),_:1},8,["open","buttons","name"]))}}),br=N(hr,[["__scopeId","data-v-9b6534b1"]]);export{br as default}; //# sourceMappingURL=FilePicker-C1yRZfLt-D0s-H9w_.chunk.mjs.map