3 lines
35 KiB
JavaScript
3 lines
35 KiB
JavaScript
import{r as re,a as c,o as s,f as L,k as z,g as _,I as Be,w,l as se,h as f,n as T,j as O,b as $,m as V,i as J,F as R,L as ge,M as H,x as C,N as Ee,O as K,d as U,c as b,P as de,H as Fe,t as Se,Q as j,u,v as Te,A as X,p as We,q as ye,R as Oe,S as Ge,z as qe,T as Ze}from"./runtime-dom.esm-bundler-Dyqpejx9.chunk.mjs";import{u as je,s as Qe,a as pe,e as Je,c as Ke}from"./index-D953jVe0.chunk.mjs";import{N as Xe}from"./NcDialog-BY-1v8yi-BgMfM1gn.chunk.mjs";import{c as ie,b as G,n as fe,h as Ye,o as et,p as tt,q as be,s as xe,t as Pe,_ as it,g as De,v as at}from"./index-Dk4MzVw6.chunk.mjs";import{b as q,g as lt,c as nt,s as rt,C as Ie,d as st,e as me,f as ve,h as Ve,P as we,i as ot}from"./index-BYewGXp2.chunk.mjs";import{_ as ct}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-DB_sncsA.chunk.mjs";import{mdiFolder as dt,mdiClock as ut,mdiStar as pt,mdiLock as ft,mdiTag as mt,mdiLink as vt,mdiAccountPlus as ke,mdiGroup as ht,mdiNetwork as gt}from"./mdi-B4cPizwD.chunk.mjs";import{e as _e,f as Ce,g as Le,P as yt,t as v,l as Z,s as he,h as bt}from"./index-DhgIrZpo.chunk.mjs";import Ne from"./index-Ds-TrDn_.chunk.mjs";import{l as Re}from"./index-CYie652Q.chunk.mjs";import{j as Y}from"./index-B7npabGH.chunk.mjs";import"./index-0D_mItKm.chunk.mjs";const wt={name:"ChevronRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},kt=["aria-hidden","aria-label"],_t=["fill","width","height"],Ct={d:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"},Lt={key:0};function $t(e,i,t,a,l,r){return s(),c("span",V(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))}),[(s(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",Ct,[t.title?(s(),c("title",Lt,$(t.title),1)):z("",!0)])],8,_t))],16,kt)}const zt=ie(wt,[["render",$t]]),Bt={name:"NcBreadcrumb",components:{NcActions:fe,ChevronRight:zt,NcButton:G},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=Ye();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))}}},Ft=["data-crumb-id"];function St(e,i,t,a,l,r){const n=re("NcButton"),o=re("NcActions"),p=re("ChevronRight");return s(),c("li",{ref:"crumb",class:T(["vue-crumb",[{"vue-crumb--hovered":l.hovering},e.$props.class]]),"data-crumb-id":a.crumbId,draggable:"false",onDragstart:J(()=>{},["prevent"]),onDrop:i[0]||(i[0]=J((...d)=>r.dropped&&r.dropped(...d),["prevent"])),onDragover:J(()=>{},["prevent"]),onDragenter:i[1]||(i[1]=(...d)=>r.dragEnter&&r.dragEnter(...d)),onDragleave:i[2]||(i[2]=(...d)=>r.dragLeave&&r.dragLeave(...d))},[(t.name||t.icon||e.$slots.icon)&&!e.$slots.default?(s(),L(n,V({key:0,"aria-label":t.icon?t.name:void 0,variant:"tertiary"},r.linkAttributes),Be({_:2},[e.$slots.icon||t.icon?{name:"icon",fn:w(()=>[se(e.$slots,"icon",{},()=>[f("span",{class:T([t.icon,"icon"])},null,2)],!0)]),key:"0"}:void 0,!(e.$slots.icon||t.icon)||t.forceIconText?{name:"default",fn:w(()=>[O($(t.name),1)]),key:"1"}:void 0]),1040,["aria-label"])):z("",!0),e.$slots.default?(s(),L(o,{key:1,ref:"actions",container:a.actionsContainer,"force-menu":t.forceMenu,"force-name":"","menu-name":t.name,open:t.open,title:t.title,variant:"tertiary","onUpdate:open":r.onOpenChange},{icon:w(()=>[se(e.$slots,"menu-icon",{},void 0,!0)]),default:w(()=>[se(e.$slots,"default",{},void 0,!0)]),_:3},8,["container","force-menu","menu-name","open","title","onUpdate:open"])):z("",!0),_(p,{class:"vue-crumb__separator",size:20})],42,Ft)}const ee=ie(Bt,[["render",St],["__scopeId","data-v-28ef52a4"]]),xt={name:"FolderIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Pt=["aria-hidden","aria-label"],Dt=["fill","width","height"],It={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"},Vt={key:0};function Nt(e,i,t,a,l,r){return s(),c("span",V(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))}),[(s(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",It,[t.title?(s(),c("title",Vt,$(t.title),1)):z("",!0)])],8,Dt))],16,Pt)}const $e=ie(xt,[["render",Nt]]),x="vue-crumb",Rt={name:"NcBreadcrumbs",components:{NcActions:fe,NcActionButton:Le,NcActionRouter:Ce,NcActionLink:_e,NcBreadcrumb:ee,IconFolder:$e},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",tt(()=>{this.handleWindowResize()},100)),Qe("navigation-toggled",this.delayedResize)},mounted(){this.handleWindowResize()},updated(){this.delayedResize(),this.$nextTick(()=>{this.hideCrumbs()})},beforeUnmount(){window.removeEventListener("resize",this.handleWindowResize),je("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 a=this.getTotalWidth();this.$refs.breadcrumb__actions&&(a+=this.$refs.breadcrumb__actions.offsetWidth);let l=a-t;l+=l>0?64:0;let r=0;const n=Math.floor(e/2);for(;l>0&&r<e-2;){const o=n+(r%2?r+1:r)/2*Math.pow(-1,r+e%2);l-=this.getWidth(this.breadcrumbsRefs[o]?.$el,o===this.breadcrumbsRefs.length-1),i.push(o),r++}this.arraysEqual(this.hiddenIndices,i.sort((o,p)=>o-p))||(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;t<e.length;++t)if(e[t]!==i[t])return!1;return!0},getTotalWidth(){return this.breadcrumbsRefs.reduce((e,i,t)=>e+this.getWidth(i.$el,t===this.breadcrumbsRefs.length-1),0)},getWidth(e,i){if(!e?.classList)return 0;const t=e.classList.contains(`${x}--hidden`);e.style.minWidth="auto",i&&(e.style.maxWidth="210px"),e.classList.remove(`${x}--hidden`);const a=e.offsetWidth;return t&&e.classList.add(`${x}--hidden`),e.style.minWidth="",e.style.maxWidth="",a},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 a=document.querySelectorAll(`.${x}`);for(const l of a)l.classList.remove(`${x}--hovered`);return this.preventDefault(e)},dragOver(e){return this.preventDefault(e)},dragEnter(e,i){if(!i&&e.target.closest){const t=e.target.closest(`.${x}`);if(t.classList&&t.classList.contains(x)){const a=document.querySelectorAll(`.${x}`);for(const l of a)l.classList.remove(`${x}--hovered`);t.classList.add(`${x}--hovered`)}}},dragLeave(e,i){if(!i&&!e.target.contains(e.relatedTarget)&&e.target.closest){const t=e.target.closest(`.${x}`);if(t.contains(e.relatedTarget))return;t.classList&&t.classList.contains(x)&&t.classList.remove(`${x}--hovered`)}},hideCrumbs(){this.breadcrumbsRefs.forEach((e,i)=>{e?.$el?.classList&&(this.hiddenIndices.includes(i)?e.$el.classList.add(`${x}--hidden`):e.$el.classList.remove(`${x}--hidden`))})},isBreadcrumb(e){return e?.type?.name==="NcBreadcrumb"}},render(){let e=[];if(this.$slots.default?.().forEach(l=>{if(this.isBreadcrumb(l)){e.push(l);return}l?.type===R&&l?.children?.forEach?.(r=>{this.isBreadcrumb(r)&&e.push(r)})}),e.length===0)return;e[0]=ge(e[0],{icon:this.rootIcon,ref:"breadcrumbs"});const i=[];e=e.map((l,r)=>ge(l,{ref:n=>{i[r]=n}}));const t=[...e];this.hiddenIndices.length&&t.splice(Math.round(e.length/2),0,H(ee,{class:"dropdown",...this.menuBreadcrumbProps,"aria-hidden":!0,ref:"actionsBreadcrumb",key:"actions-breadcrumb-1",onDragenter:()=>{this.menuBreadcrumbProps.open=!0},onDragleave:this.closeActions,"onUpdate:open":l=>{this.menuBreadcrumbProps.open=l}},{default:()=>this.hiddenIndices.filter(l=>l<=e.length-1).map(l=>{const r=e[l],{to:n,href:o,disableDrop:p,name:d,...g}=r.props;delete g.ref;let y=Le,h="";o&&(y=_e,h=o),n&&(y=Ce,h=n);const N=H($e,{size:20});return H(y,{...g,class:x,href:o||null,to:n||null,draggable:!1,onDragstart:this.dragStart,onDrop:D=>this.dropped(D,h,p),onDragover:this.dragOver,onDragenter:D=>this.dragEnter(D,p),onDragleave:D=>this.dragLeave(D,p)},{default:()=>d,icon:()=>N})})}));const a=[H("nav",{"aria-label":this.ariaLabel},[H("ul",{class:"breadcrumb__crumbs"},[t])])];return et(this.$slots.actions?.())&&a.push(H("div",{class:"breadcrumb__actions",ref:"breadcrumb__actions"},this.$slots.actions?.())),this.breadcrumbsRefs=i,H("div",{class:["breadcrumb",{"breadcrumb--collapsed":this.hiddenIndices.length===e.length-2}],ref:"container"},a)}},Mt=ie(Rt,[["__scopeId","data-v-af2b1226"]]),At=new yt({concurrency:5});function Ht(e){const{resolve:i,promise:t}=Promise.withResolvers();return At.add(()=>{const a=new Image;return a.onerror=()=>i(!1),a.onload=()=>i(!0),a.src=e,t}),t}function Ut(e,i={}){i={size:32,cropPreview:!1,mimeFallback:!0,...i};try{const t=e.attributes?.previewUrl||pe("/core/preview?fileId={fileid}",{fileid:e.fileid});let a;try{a=new URL(t)}catch{a=new URL(t,window.location.origin)}return a.searchParams.set("x",`${i.size}`),a.searchParams.set("y",`${i.size}`),a.searchParams.set("mimeFallback",`${i.mimeFallback}`),a.searchParams.set("a",i.cropPreview===!0?"0":"1"),a.searchParams.set("c",`${e.attributes.etag}`),a}catch{return null}}function Et(e,i){const t=C(null),a=C(!1);return Ee(()=>{a.value=!1,t.value=Ut(K(e),K(i||{})),t.value&&K(e).type===q.File&&Ht(t.value.href).then(l=>{a.value=l})}),{previewURL:t,previewLoaded:a}}const P=(e,i)=>{const t=e.__vccOpts||e;for(const[a,l]of i)t[a]=l;return t};var te;(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"})(te||(te={})),typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ze=K,Tt={name:"FileIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Wt=["aria-hidden","aria-label"],Ot=["fill","width","height"],Gt={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"},qt={key:0};function Zt(e,i,t,a,l,r){return s(),c("span",V(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))}),[(s(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",Gt,[t.title?(s(),c("title",qt,$(t.title),1)):z("",!0)])],8,Ot))],16,Wt)}const ue=P(Tt,[["render",Zt]]),jt={name:"MenuDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Qt=["aria-hidden","aria-label"],Jt=["fill","width","height"],Kt={d:"M7,10L12,15L17,10H7Z"},Xt={key:0};function Yt(e,i,t,a,l,r){return s(),c("span",V(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))}),[(s(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",Kt,[t.title?(s(),c("title",Xt,$(t.title),1)):z("",!0)])],8,Jt))],16,Qt)}const oe=P(jt,[["render",Yt]]),ei={name:"MenuUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ti=["aria-hidden","aria-label"],ii=["fill","width","height"],ai={d:"M7,15L12,10L17,15H7Z"},li={key:0};function ni(e,i,t,a,l,r){return s(),c("span",V(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))}),[(s(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",ai,[t.title?(s(),c("title",li,$(t.title),1)):z("",!0)])],8,ii))],16,ti)}const ce=P(ei,[["render",ni]]),ri={name:"FolderIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},si=["aria-hidden","aria-label"],oi=["fill","width","height"],ci={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"},di={key:0};function ui(e,i,t,a,l,r){return s(),c("span",V(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))}),[(s(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",ci,[t.title?(s(),c("title",di,$(t.title),1)):z("",!0)])],8,oi))],16,si)}const Me=P(ri,[["render",ui]]),Ae={"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"},pi=U({__name:"FilePreview",props:{node:{},cropImagePreviews:{type:Boolean}},setup(e){const i=e,t=C(Ae),{previewURL:a,previewLoaded:l}=Et(Se(i,"node"),b(()=>({cropPreview:i.cropImagePreviews}))),r=b(()=>i.node.type===q.File),n=b(()=>{if(i.node.type!==q.Folder)return null;if(i.node.attributes?.["is-encrypted"]===1)return ft;if(i.node.attributes?.["is-tag"])return mt;const o=Object.values(i.node.attributes?.["share-types"]||{}).flat();if(o.some(p=>p===te.Link||p===te.Email))return vt;if(o.length>0)return ke;switch(i.node.attributes?.["mount-type"]){case"external":case"external-session":return gt;case"group":return ht;case"shared":return ke}return null});return(o,p)=>(s(),c("div",{style:Ze(u(l)?{backgroundImage:`url(${u(a)})`}:void 0),class:T(t.value["file-picker__file-icon"])},[u(l)?z("",!0):(s(),c(R,{key:0},[r.value?(s(),L(ue,{key:0,size:32})):(s(),c(R,{key:1},[n.value?(s(),L(u(De),{key:0,class:T(t.value["file-picker__file-icon-overlay"]),inline:"",path:n.value,size:16},null,8,["class","path"])):z("",!0),_(Me,{class:T(t.value["file-picker__file-icon--primary"]),size:32},null,8,["class"])],64))],64))],6))}}),fi=["tabindex","aria-selected","data-filename"],mi={class:"row-name"},vi={class:"file-picker__name-container","data-testid":"row-name"},hi=["title","textContent"],gi=["textContent"],yi={class:"row-size"},bi={class:"row-modified"},wi=U({__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,a=i,l=b(()=>t.node.mtime??0),r=b(()=>t.node.attributes?.displayName||t.node.basename.slice(0,t.node.extension?-t.node.extension.length:void 0)),n=b(()=>t.node.extension),o=b(()=>t.node.type===q.Folder),p=b(()=>t.canPick&&(t.allowPickDirectory||!o.value)),d=b(()=>(t.node.permissions&we.READ)===we.READ);function g(){p.value&&a("update:selected",!t.selected)}function y(){o.value?d.value&&a("enterDirectory",t.node):g()}function h(N){N.key==="Enter"&&y()}return(N,D)=>(s(),c("tr",V({tabindex:e.showCheckbox&&!o.value?void 0:0,"aria-selected":p.value?e.selected:void 0,class:["file-picker__row",[{"file-picker__row--selected":e.selected&&!e.showCheckbox,"file-picker__row--not-navigatable":o.value&&!d.value,"file-picker__row--not-pickable":!p.value}]],"data-filename":e.node.basename,"data-testid":"file-list-row"},qe({click:y,...!e.showCheckbox||o.value?{keydown:h}:{}},!0)),[e.showCheckbox?(s(),c("td",{key:0,class:"row-checkbox",onClick:J(()=>{},["stop"])},[_(u(Pe),{"aria-label":u(v)("Select the row for {nodename}",{nodename:r.value}),disabled:!p.value,"data-testid":"row-checkbox","model-value":e.selected,"onUpdate:modelValue":g},null,8,["aria-label","disabled","model-value"])])):z("",!0),f("td",mi,[f("div",vi,[_(pi,{node:e.node,"crop-image-previews":e.cropImagePreviews},null,8,["node","crop-image-previews"]),f("div",{class:"file-picker__file-name",title:r.value,textContent:$(r.value)},null,8,hi),f("div",{class:"file-picker__file-extension",textContent:$(n.value)},null,8,gi)])]),f("td",yi,$(u(ot)(e.node.size||0)),1),f("td",bi,[_(u(ct),{timestamp:l.value,"ignore-seconds":""},null,8,["timestamp"])])],16,fi))}}),ki=P(wi,[["__scopeId","data-v-a5daea8d"]]),_i={"aria-hidden":"true",class:"file-picker__row loading-row"},Ci={key:0,class:"row-checkbox"},Li={class:"row-name"},$i={class:"row-wrapper"},zi=U({__name:"LoadingTableRow",props:{showCheckbox:{type:Boolean}},setup(e){return(i,t)=>(s(),c("tr",_i,[e.showCheckbox?(s(),c("td",Ci,[...t[0]||(t[0]=[f("span",null,null,-1)])])):z("",!0),f("td",Li,[f("div",$i,[f("span",{class:T(u(Ae)["file-picker__file-icon"])},null,2),t[1]||(t[1]=f("span",null,null,-1))])]),t[2]||(t[2]=f("td",{class:"row-size"},[f("span")],-1)),t[3]||(t[3]=f("td",{class:"row-modified"},[f("span")],-1))]))}}),Bi=P(zi,[["__scopeId","data-v-1f96131b"]]);function He(){const e=Re("files","config",null),i=C(e?.show_hidden??!0),t=C(e?.sort_favorites_first??!0),a=C(e?.crop_image_previews??!0);return j(async()=>{if(xe())Z.debug("Skip loading files settings - currently on public share");else try{const{data:l}=await Ne.get(pe("/apps/files/api/v1/configs"));i.value=l?.data?.show_hidden??!1,t.value=l?.data?.sort_favorites_first??!0,a.value=l?.data?.crop_image_previews??!0}catch(l){Z.error("Could not load files settings",l),he(v("Could not load files settings"))}}),{showHiddenFiles:i,sortFavoritesFirst:t,cropImagePreviews:a}}function Fi(e){const i=d=>d==="asc"?"ascending":d==="desc"?"descending":"none",t=Re("files","viewConfigs",null),a=C({sortBy:t?.files?.sorting_mode??"basename",order:i(t?.files?.sorting_direction??"asc")}),l=C({sortBy:t?.recent?.sorting_mode??"basename",order:i(t?.recent?.sorting_direction??"asc")}),r=C({sortBy:t?.favorites?.sorting_mode??"basename",order:i(t?.favorites?.sorting_direction??"asc")});j(async()=>{if(xe())Z.debug("Skip loading files views - currently on public share");else try{const{data:d}=await Ne.get(pe("/apps/files/api/v1/views"));a.value={sortBy:d?.data?.files?.sorting_mode??"basename",order:i(d?.data?.files?.sorting_direction)},r.value={sortBy:d?.data?.favorites?.sorting_mode??"basename",order:i(d?.data?.favorites?.sorting_direction)},l.value={sortBy:d?.data?.recent?.sorting_mode??"basename",order:i(d?.data?.recent?.sorting_direction)}}catch(d){Z.error("Could not load files views",d),he(v("Could not load files views"))}});const n=b(()=>ze(e||"files")==="files"?a.value:ze(e)==="recent"?l.value:r.value),o=b(()=>n.value.sortBy),p=b(()=>n.value.order);return{filesViewConfig:a,favoritesViewConfig:r,recentViewConfig:l,currentConfig:n,sortBy:o,order:p}}const Si={key:0,class:"row-checkbox"},xi={class:"hidden-visually"},Pi=["aria-sort"],Di={class:"header-wrapper"},Ii={key:2,style:{width:"44px"}},Vi=["aria-sort"],Ni={key:2,style:{width:"44px"}},Ri=["aria-sort"],Mi={key:2,style:{width:"44px"}},Ai=U({__name:"FileList",props:We({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=ye(e,"path"),t=ye(e,"selectedFiles"),a=e,l=C(),{currentConfig:r}=Fi(a.currentView),n=b(()=>l.value??r.value),o=b(()=>n.value.sortBy==="basename"?n.value.order==="none"?void 0:n.value.order:void 0),p=b(()=>n.value.sortBy==="size"?n.value.order==="none"?void 0:n.value.order:void 0),d=b(()=>n.value.sortBy==="mtime"?n.value.order==="none"?void 0:n.value.order:void 0);function g(B){n.value.sortBy===B?n.value.order==="ascending"?l.value={sortBy:n.value.sortBy,order:"descending"}:l.value={sortBy:n.value.sortBy,order:"ascending"}:l.value={sortBy:B,order:"ascending"}}const{sortFavoritesFirst:y,cropImagePreviews:h}=He(),N=b(()=>rt(a.files,{sortFoldersFirst:!0,sortFavoritesFirst:y.value,sortingOrder:n.value.order==="descending"?"desc":"asc",sortingMode:n.value.sortBy})),D=b(()=>a.files.filter(B=>a.allowPickDirectory||B.type!==q.Folder)),W=b(()=>!a.loading&&t.value.length>0&&t.value.length>=D.value.length);function ae(){t.value.length<D.value.length?t.value=[...D.value]:t.value=[]}function le(B){t.value.includes(B)?t.value=t.value.filter(F=>F.path!==B.path):a.multiselect?t.value=[...t.value,B]:t.value=[B]}function Q(B){i.value=B.path}const M=C(4),E=C();{const B=()=>Oe(()=>{const F=E.value?.parentElement?.children||[];let S=E.value?.parentElement?.clientHeight||450;for(let A=0;A<F.length;A++)E.value?.isSameNode(F[A])||(S-=F[A].clientHeight);M.value=Math.max(1,Math.floor((S-50)/50))});j(()=>{window.addEventListener("resize",B),B()}),Ge(()=>{window.removeEventListener("resize",B)})}return(B,F)=>(s(),c("div",{ref_key:"fileContainer",ref:E,class:"file-picker__files"},[f("table",null,[f("thead",null,[f("tr",null,[e.multiselect?(s(),c("th",Si,[f("span",xi,$(u(v)("Select entry")),1),e.multiselect?(s(),L(u(Pe),{key:0,"aria-label":u(v)("Select all entries"),"data-testid":"select-all-checkbox","model-value":W.value,"onUpdate:modelValue":ae},null,8,["aria-label","model-value"])):z("",!0)])):z("",!0),f("th",{"aria-sort":o.value,class:"row-name"},[f("div",Di,[F[3]||(F[3]=f("span",{class:"file-picker__header-preview"},null,-1)),_(u(G),{"data-test":"file-picker_sort-name",variant:"tertiary",wide:"",onClick:F[0]||(F[0]=S=>g("basename"))},{icon:w(()=>[o.value==="ascending"?(s(),L(ce,{key:0,size:20})):o.value==="descending"?(s(),L(oe,{key:1,size:20})):(s(),c("span",Ii))]),default:w(()=>[O(" "+$(u(v)("Name")),1)]),_:1})])],8,Pi),f("th",{"aria-sort":p.value,class:"row-size"},[_(u(G),{variant:"tertiary",wide:"",onClick:F[1]||(F[1]=S=>g("size"))},{icon:w(()=>[p.value==="ascending"?(s(),L(ce,{key:0,size:20})):p.value==="descending"?(s(),L(oe,{key:1,size:20})):(s(),c("span",Ni))]),default:w(()=>[O(" "+$(u(v)("Size")),1)]),_:1})],8,Vi),f("th",{"aria-sort":d.value,class:"row-modified"},[_(u(G),{variant:"tertiary",wide:"",onClick:F[2]||(F[2]=S=>g("mtime"))},{icon:w(()=>[d.value==="ascending"?(s(),L(ce,{key:0,size:20})):d.value==="descending"?(s(),L(oe,{key:1,size:20})):(s(),c("span",Mi))]),default:w(()=>[O(" "+$(u(v)("Modified")),1)]),_:1})],8,Ri)])]),f("tbody",null,[e.loading?(s(!0),c(R,{key:0},X(M.value,S=>(s(),L(Bi,{key:S,"show-checkbox":e.multiselect},null,8,["show-checkbox"]))),128)):(s(!0),c(R,{key:1},X(N.value,S=>(s(),L(ki,{key:S.fileid||S.path,"allow-pick-directory":e.allowPickDirectory,"show-checkbox":e.multiselect,"can-pick":(e.multiselect||t.value.length===0||t.value.includes(S))&&(e.canPick===void 0||e.canPick(S)),selected:t.value.includes(S),node:S,"crop-image-previews":u(h),"onUpdate:selected":A=>le(S),onEnterDirectory:Q},null,8,["allow-pick-directory","show-checkbox","can-pick","selected","node","crop-image-previews","onUpdate:selected"]))),128))])])],512))}}),Hi=P(Ai,[["__scopeId","data-v-38620705"]]),Ui={name:"HomeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ei=["aria-hidden","aria-label"],Ti=["fill","width","height"],Wi={d:"M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z"},Oi={key:0};function Gi(e,i,t,a,l,r){return s(),c("span",V(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))}),[(s(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",Wi,[t.title?(s(),c("title",Oi,$(t.title),1)):z("",!0)])],8,Ti))],16,Ei)}const qi=P(Ui,[["render",Gi]]),Zi={name:"PlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ji=["aria-hidden","aria-label"],Qi=["fill","width","height"],Ji={d:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"},Ki={key:0};function Xi(e,i,t,a,l,r){return s(),c("span",V(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))}),[(s(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",Ji,[t.title?(s(),c("title",Ki,$(t.title),1)):z("",!0)])],8,Qi))],16,ji)}const Yi=P(Zi,[["render",Xi]]),ea=U({__name:"FilePickerBreadcrumbs",props:{path:{},showMenu:{type:Boolean}},emits:["update:path","create-node"],setup(e,{emit:i}){const t=e,a=i,l=C(!1),r=C(""),n=Te("nameInput");function o(){const g=r.value.trim(),y=n.value?.$el?.querySelector("input");let h="";return g.length===0?h=v("Folder name cannot be empty."):g.includes("/")?h=v('"/" is not allowed inside a folder name.'):["..","."].includes(g)?h=v('"{name}" is an invalid folder name.',{name:g}):window.OC.config?.blacklist_files_regex&&g.match(window.OC.config?.blacklist_files_regex)&&(h=v('"{name}" is not an allowed folder name',{name:g})),y&&y.setCustomValidity(h),h===""}function p(){const g=r.value.trim();o()&&(l.value=!1,a("create-node",g),r.value="")}const d=b(()=>t.path.split("/").filter(g=>g!=="").map((g,y,h)=>({name:g,path:"/"+h.slice(0,y+1).join("/")})));return(g,y)=>(s(),L(u(Mt),{class:"file-picker__breadcrumbs"},Be({default:w(()=>[_(u(ee),{name:u(v)("All files"),title:u(v)("Home"),onClick:y[0]||(y[0]=h=>a("update:path","/"))},{icon:w(()=>[_(qi,{size:20})]),_:1},8,["name","title"]),(s(!0),c(R,null,X(d.value,h=>(s(),L(u(ee),{key:h.path,name:h.name,title:h.path,onClick:N=>a("update:path",h.path)},null,8,["name","title","onClick"]))),128))]),_:2},[e.showMenu?{name:"actions",fn:w(()=>[_(u(fe),{open:l.value,"onUpdate:open":y[2]||(y[2]=h=>l.value=h),"aria-label":u(v)("Create directory"),"force-menu":!0,"force-name":!0,"menu-name":u(v)("New"),variant:"secondary",onClose:y[3]||(y[3]=h=>r.value="")},{icon:w(()=>[_(Yi,{size:20})]),default:w(()=>[_(u(bt),{ref_key:"nameInput",ref:n,modelValue:r.value,"onUpdate:modelValue":[y[1]||(y[1]=h=>r.value=h),o],label:u(v)("New folder"),placeholder:u(v)("New folder name"),onSubmit:p},{icon:w(()=>[_(Me,{size:20})]),_:1},8,["modelValue","label","placeholder"])]),_:1},8,["open","aria-label","menu-name"])]),key:"0"}:void 0]),1024))}}),ta=P(ea,[["__scopeId","data-v-4e6fd4e4"]]),ia={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},aa=["aria-hidden","aria-label"],la=["fill","width","height"],na={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"},ra={key:0};function sa(e,i,t,a,l,r){return s(),c("span",V(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))}),[(s(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",na,[t.title?(s(),c("title",ra,$(t.title),1)):z("",!0)])],8,la))],16,aa)}const oa=P(ia,[["render",sa]]),ca={name:"MagnifyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},da=["aria-hidden","aria-label"],ua=["fill","width","height"],pa={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"},fa={key:0};function ma(e,i,t,a,l,r){return s(),c("span",V(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))}),[(s(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[f("path",pa,[t.title?(s(),c("title",fa,$(t.title),1)):z("",!0)])],8,ua))],16,da)}const va=P(ca,[["render",ma]]);function ha(e){const i=[{id:"files",label:v("All files"),icon:dt},{id:"recent",label:v("Recent"),icon:ut},{id:"favorites",label:v("Favorites"),icon:pt}],t=e.value?i.filter(({id:a})=>a==="files"):i;return{allViews:i,availableViews:t}}const ga={key:0,class:"file-picker__side"},ya=U({__name:"FilePickerNavigation",props:{currentView:{},filterString:{},isCollapsed:{type:Boolean},disabledNavigation:{type:Boolean}},emits:["update:currentView","update:filterString"],setup(e,{emit:i}){const t=e,a=i,{availableViews:l}=ha(C(Ke()===null)),r=b(()=>l.filter(o=>o.id===t.currentView)[0]??l[0]),n=o=>a("update:filterString",o);return(o,p)=>(s(),c(R,null,[_(u(it),{class:"file-picker__filter-input",label:u(v)("Filter file list"),"show-trailing-button":!!e.filterString,"model-value":e.filterString,"onUpdate:modelValue":n,onTrailingButtonClick:p[0]||(p[0]=d=>n(""))},{"trailing-button-icon":w(()=>[_(oa,{size:16})]),default:w(()=>[_(va,{size:16})]),_:1},8,["label","show-trailing-button","model-value"]),u(l).length>1&&!e.disabledNavigation?(s(),c(R,{key:0},[e.isCollapsed?(s(),L(u(at),{key:1,"aria-label":u(v)("Current view selector"),clearable:!1,searchable:!1,options:u(l),"model-value":r.value,"onUpdate:modelValue":p[1]||(p[1]=d=>a("update:currentView",d.id))},null,8,["aria-label","options","model-value"])):(s(),c("ul",ga,[(s(!0),c(R,null,X(u(l),d=>(s(),c("li",{key:d.id},[_(u(G),{variant:e.currentView===d.id?"primary":"tertiary",wide:!0,onClick:g=>o.$emit("update:currentView",d.id)},{icon:w(()=>[_(u(De),{path:d.icon,size:20},null,8,["path"])]),default:w(()=>[O(" "+$(d.label),1)]),_:2},1032,["variant","onClick"])]))),128))]))],64)):z("",!0)],64))}}),ba=P(ya,[["__scopeId","data-v-86223490"]]);function wa(e){const i=new AbortController,t=Math.round(Date.now()/1e3)-3600*24*14;return new Ie(async(a,l,r)=>{r(()=>i.abort());try{const{data:n}=await e.search("/",{signal:i.signal,details:!0,data:st(t)}),o=n.results.map(p=>me(p));a(o)}catch(n){l(n)}})}function ka(e,i){const t=new AbortController;return new Ie(async(a,l,r)=>{r(()=>t.abort());try{const n=(await e.getDirectoryContents(Y(ve,i),{signal:t.signal,details:!0,includeSelf:!0,data:Ve()})).data.map(o=>me(o));a({contents:n.filter(({path:o})=>o!==i),folder:n.find(({path:o})=>o===i)})}catch(n){l(n)}})}async function _a(e,i){const{data:t}=await e.stat(Y(ve,i),{details:!0,data:Ve()});return me(t)}function Ca(e,i){const t=lt(),a=de([]),l=de(null),r=C(!0),n=C(null);async function o(d){const g=Y(i.value,d);await t.createDirectory(Y(ve,g));const y=await _a(t,g);return a.value=[...a.value,y],y}async function p(){n.value&&n.value.cancel(),r.value=!0,e.value==="favorites"?n.value=nt(t,i.value):e.value==="recent"?n.value=wa(t):n.value=ka(t,i.value);const d=await n.value;if(d)"folder"in d?(l.value=d.folder,a.value=d.contents):(l.value=null,a.value=d);else return;n.value=null,r.value=!1}return Fe([e,i],()=>p()),j(()=>p()),{isLoading:r,files:a,folder:l,loadFiles:p,createDirectory:o}}function La(e){const i=b(()=>e.value.map(t=>t.split("/")));return{isSupportedMimeType:t=>{const a=t.split("/");return i.value.some(([l,r])=>(a[0]===l||l==="*")&&(a[1]===r||r==="*"))}}}const $a={class:"file-picker__main"},za={key:1,class:"file-picker__view"},Ba=U({__name:"FilePicker",props:{buttons:{},name:{},allowPickDirectory:{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,a=i,l=C(!0),r=C("files"),n=C(window?.sessionStorage.getItem("NC.FilePicker.LastPath")||"/"),o=C(""),p=b({get:()=>r.value==="files"?o.value||t.path||n.value:"/",set:k=>{o.value=k}}),d=de([]),{files:g,folder:y,isLoading:h,loadFiles:N,createDirectory:D}=Ca(r,p);Fe([o],()=>{t.path===void 0&&o.value&&window.sessionStorage.setItem("NC.FilePicker.LastPath",o.value),d.value=[]});let W=!1;const ae=b(()=>{const k=d.value.length===0&&t.allowPickDirectory&&y.value?[y.value]:d.value;return(typeof t.buttons=="function"?t.buttons(k,p.value,r.value):t.buttons).map(m=>({...m,disabled:m.disabled||h.value,callback:()=>{W=!0,le(m.callback,k)}}))});async function le(k,m){await k(m),a("close",m),W=!1}const Q=b(()=>r.value==="favorites"?v("Favorites"):r.value==="recent"?v("Recent"):""),M=C(""),{isSupportedMimeType:E}=La(Se(t,"mimetypeFilter"));j(()=>N());const{showHiddenFiles:B}=He(),F=b(()=>{let k=g.value;return B.value||(k=k.filter(m=>!m.basename.startsWith("."))),t.mimetypeFilter.length>0&&(k=k.filter(m=>m.type==="folder"||m.mime&&E(m.mime))),M.value&&(k=k.filter(m=>m.basename.toLowerCase().includes(M.value.toLowerCase()))),t.filterFn&&(k=k.filter(m=>t.filterFn(m))),k}),S=b(()=>r.value==="files"?v("Upload some content or sync with your devices!"):r.value==="recent"?v("Files and folders you recently modified will show up here."):v("Files and folders you mark as favorite will show up here."));async function A(k){try{const m=await D(k);o.value=m.path,Je("files:node:created",g.value.filter(I=>I.basename===k)[0])}catch(m){Z.warn("Could not create new folder",{name:k,error:m}),he(v("Could not create the new folder"))}}function Ue(k){!k&&!W&&a("close")}return(k,m)=>(s(),L(u(Xe),{open:l.value,"onUpdate:open":[m[6]||(m[6]=I=>l.value=I),Ue],buttons:ae.value,name:e.name,size:"large","content-classes":"file-picker__content","dialog-classes":"file-picker","navigation-classes":"file-picker__navigation"},{navigation:w(({isCollapsed:I})=>[_(ba,{"current-view":r.value,"onUpdate:currentView":m[0]||(m[0]=ne=>r.value=ne),"filter-string":M.value,"onUpdate:filterString":m[1]||(m[1]=ne=>M.value=ne),"is-collapsed":I,"disabled-navigation":e.disabledNavigation},null,8,["current-view","filter-string","is-collapsed","disabled-navigation"])]),default:w(()=>[f("div",$a,[r.value==="files"?(s(),L(ta,{key:0,path:p.value,"onUpdate:path":m[2]||(m[2]=I=>p.value=I),"show-menu":e.allowPickDirectory,onCreateNode:A},null,8,["path","show-menu"])):(s(),c("div",za,[f("h3",null,$(Q.value),1)])),u(h)||F.value.length>0?(s(),L(Hi,{key:2,path:p.value,"onUpdate:path":[m[3]||(m[3]=I=>p.value=I),m[5]||(m[5]=I=>r.value="files")],"selected-files":d.value,"onUpdate:selectedFiles":m[4]||(m[4]=I=>d.value=I),"allow-pick-directory":e.allowPickDirectory,"current-view":r.value,files:F.value,multiselect:e.multiselect,loading:u(h),name:Q.value,"can-pick":e.canPickFn},null,8,["path","selected-files","allow-pick-directory","current-view","files","multiselect","loading","name","can-pick"])):M.value?(s(),L(u(be),{key:3,name:u(v)("No matching files"),description:u(v)("No files matching your filter were found.")},{icon:w(()=>[_(ue)]),_:1},8,["name","description"])):(s(),L(u(be),{key:4,name:u(v)("No files in here"),description:S.value},{icon:w(()=>[_(ue)]),_:1},8,["name","description"]))])]),_:1},8,["open","buttons","name"]))}}),Ua=P(Ba,[["__scopeId","data-v-5287035b"]]);export{Ua as default};
|
|
//# sourceMappingURL=FilePicker-CtWlxGEm-BooJyQsu.chunk.mjs.map
|