(()=>{"use strict";var e,t,s,n={4114:(e,t,s)=>{s.d(t,{u:()=>i});var n=s(65899);const i=()=>(window._nc_files_pinia||(window._nc_files_pinia=(0,n.Ey)()),window._nc_files_pinia)},4735:(e,t,s)=>{s.d(t,{L:()=>i,P:()=>a});var n=s(32981);function i(){return 0!==(0,n.C)("files","storageStats",{quota:-1}).quota}function a(){const{default_view:e}=(0,n.C)("files","config",{default_view:"files"});return"personal"!==e||i()?e:"files"}},9165:(e,t,s)=>{s.d(t,{Brj:()=>d,HzW:()=>f,IyB:()=>n,NZC:()=>a,WBH:()=>c,ZL5:()=>u,bFE:()=>o,fEr:()=>r,jUz:()=>g,kHm:()=>m,kOJ:()=>l,u4v:()=>i});var n="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",i="M7 11H9V13H7V11M21 5V19C21 20.11 20.11 21 19 21H5C3.89 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H6V1H8V3H16V1H18V3H19C20.11 3 21 3.9 21 5M5 7H19V5H5V7M19 19V9H5V19H19M15 13H17V11H15V13M11 13H13V11H11V13Z",a="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",o="M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z",r="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",l="M1,1V5H2V19H1V23H5V22H19V23H23V19H22V5H23V1H19V2H5V1M5,4H19V5H20V19H19V20H5V19H4V5H5M6,6V14H9V18H18V9H14V6M8,8H12V12H8M14,11H16V16H11V14H14",d="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",m="M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z",c="M9,2A7,7 0 0,1 16,9C16,10.5 15.5,12 14.61,13.19L15.41,14H16L22,20L20,22L14,16V15.41L13.19,14.61C12,15.5 10.5,16 9,16A7,7 0 0,1 2,9A7,7 0 0,1 9,2M11.12,5.46L9,7.59L6.88,5.46L5.46,6.88L7.59,9L5.46,11.12L6.88,12.54L9,10.41L11.12,12.54L12.54,11.12L10.41,9L12.54,6.88L11.12,5.46Z",g="M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z",u="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",f="M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z"},9558:(e,t,s)=>{s.d(t,{A:()=>n});const n=(0,s(35947).YK)().setApp("files").detectUser().build()},16954:(e,t,s)=>{s.d(t,{hE:()=>u});var n=s(77815),i=s(36117),a=s(43627),o=s(56908),r=s(21976),l=s(4114),d=s(89761),m=s(82736),c=s(9558);const g=e=>(0,n.pO)(e);function u(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";const t=new AbortController,s=(0,m.j)((0,l.u)());return s.query.length>=3?new i.CancelablePromise(((i,m,c)=>{c((()=>t.abort())),async function(e,t,s){let i=(0,d._)((0,l.u)()).getDirectoryByPath("files",e);if(!i){const t=(0,a.join)(n.VA,e),s=await o.S.stat(t,{details:!0});i=g(s.data)}return{folder:i,contents:await(0,r.E)(t,{dir:e,signal:s})}}(e,s.query,t.signal).then(i).catch(m)})):function(e){e=(0,a.join)(n.VA,e);const t=new AbortController,s=(0,n.aN)();return new i.CancelablePromise((async(n,i,a)=>{a((()=>t.abort()));try{const i=await o.S.getDirectoryContents(e,{details:!0,data:s,includeSelf:!0,signal:t.signal}),a=i.data[0],r=i.data.slice(1);if(a.filename!==e&&`${a.filename}/`!==e)throw c.A.debug(`Exepected "${e}" but got filename "${a.filename}" instead.`),new Error("Root node does not match requested path");n({folder:g(a),contents:r.map((e=>{try{return g(e)}catch(t){return c.A.error(`Invalid node detected '${e.basename}'`,{error:t}),null}})).filter(Boolean)})}catch(e){i(e)}}))}(e)}},19598:(e,t,s)=>{var n=s(35810),i=s(85168),a=s(32981),o=s(53334),r=s(49264),l=s(5655),d=s(21777),m=s(71225),c=s(85471),g=s(77764);const u=new n.VP({id:"files_trashbin--original-location",title:(0,o.t)("files_trashbin","Original location"),render(e){const t=h(e),s=document.createElement("span");return s.title=t,s.textContent=t,s},sort(e,t){const s=h(e),n=h(t);return s.localeCompare(n,[(0,o.Z0)(),(0,o.lO)()],{numeric:!0,usage:"sort"})}}),f=new n.VP({id:"files_trashbin--deleted-by",title:(0,o.t)("files_trashbin","Deleted by"),render(e){const{userId:t,displayName:s,label:n}=w(e);if(n){const e=document.createElement("span");return e.textContent=n,e}return new(c.Ay.extend(g.A))({propsData:{size:32,user:t??void 0,displayName:s??t}}).$mount().$el},sort(e,t){const s=w(e),n=s.label??s.displayName??s.userId,i=w(t),a=i.label??i.displayName??i.userId;return n.localeCompare(a,[(0,o.Z0)(),(0,o.lO)()],{numeric:!0,usage:"sort"})}}),p=new n.VP({id:"files_trashbin--deleted",title:(0,o.t)("files_trashbin","Deleted"),render(e){const t=e.attributes?.["trashbin-deletion-time"]||(e?.mtime?.getTime()??0)/1e3,s=document.createElement("span");if(t){const e=Intl.DateTimeFormat([(0,o.lO)()],{dateStyle:"long",timeStyle:"short"}),n=new Date(1e3*t);return s.title=e.format(n),s.textContent=(0,o.fw)(n,{ignoreSeconds:(0,o.t)("files","few seconds ago")}),s}return s.textContent=(0,o.t)("files_trashbin","A long time ago"),s},sort(e,t){const s=e.attributes?.["trashbin-deletion-time"]||(e?.mtime?.getTime()??0)/1e3;return(t.attributes?.["trashbin-deletion-time"]||(t?.mtime?.getTime()??0)/1e3)-s}});function h(e){const t=v(e.attributes?.["trashbin-original-location"]);if(!t)return(0,o.t)("files_trashbin","Unknown");const s=(0,m.pD)(t);return s===t?(0,o.t)("files_trashbin","All files"):s.replace(/^\//,"")}function w(e){const t=v(e.attributes?.["trashbin-deleted-by-id"]),s=v(e.attributes?.["trashbin-deleted-by-display-name"]);let n;const i=(0,d.HW)()?.uid;return t===i&&(n=(0,o.t)("files_trashbin","You")),t||s||(n=(0,o.t)("files_trashbin","Unknown")),{userId:t,displayName:s,label:n}}function v(e){return e?String(e):null}const b=`/trashbin/${(0,d.HW)()?.uid}/trash`,y=(0,n.H4)();var T=s(63814);const k=`\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t${(0,n.VX)()}\n\t\n`,x=e=>{const t=(0,n.Al)(e,b);return t.attributes.previewUrl=(0,T.Jv)("/apps/files_trashbin/preview?fileId={fileid}&x=32&y=32",{fileid:t.fileid}),t};var C=s(70684);const L="trashbin";new n.Ss({id:L,name:(0,o.t)("files_trashbin","Deleted files"),caption:(0,o.t)("files_trashbin","List of files that have been deleted."),emptyTitle:(0,o.t)("files_trashbin","No deleted files"),emptyCaption:(0,o.t)("files_trashbin","Files and folders you have deleted will show up here"),icon:C,order:50,sticky:!0,defaultSortKey:"deleted",columns:[u,f,p],getContents:async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";const t=(await y.getDirectoryContents(`${b}${e}`,{details:!0,data:k,includeSelf:!0})).data.map(x),[s]=t.splice(t.findIndex((t=>t.path===e)),1);return{folder:s,contents:t}}});var S=s(61338),U=s(87485),_=s(65043),A=s(65899);const N=(0,a.C)("files","config",{crop_image_previews:!0,default_view:"files",grid_view:!1,show_files_extensions:!0,show_hidden:!1,show_mime_column:!0,sort_favorites_first:!0,sort_folders_first:!0,show_dialog_deletion:!1,show_dialog_file_extension:!0}),F=(0,A.nY)("userconfig",(()=>{const e=(0,c.KR)({...N});return(0,S.B1)("files:config:updated",(t=>{let{key:s,value:n}=t;return function(t,s){(0,c.hZ)(e.value,t,s)}(s,n)})),{userConfig:e,update:async function(e,t){null!==(0,d.HW)()&&await _.Ay.put((0,T.Jv)("/apps/files/api/v1/config/{key}",{key:e}),{value:t}),(0,S.Ic)("files:config:updated",{key:e,value:t})}}}));var E=s(4114);const P=()=>!0===(0,U.F)()?.files?.undelete,I=e=>e.every((e=>!0===e.attributes["is-mount-root"]&&"shared"===e.attributes["mount-type"])),R=e=>e.every((e=>!0===e.attributes["is-mount-root"]&&"external"===e.attributes["mount-type"])),O=(e,t)=>I(e)?1===e.length?(0,o.t)("files","Leave this share"):(0,o.t)("files","Leave these shares"):R(e)?1===e.length?(0,o.t)("files","Disconnect storage"):(0,o.t)("files","Disconnect storages"):"trashbin"!==t.id&&P()?(e=>{if(1===e.length)return!1;const t=e.some((e=>I([e]))),s=e.some((e=>!I([e])));return t&&s})(e)?(0,o.t)("files","Delete and unshare"):(e=>!e.some((e=>e.type!==n.pt.File)))(e)?1===e.length?(0,o.t)("files","Delete file"):(0,o.t)("files","Delete files"):(e=>!e.some((e=>e.type!==n.pt.Folder)))(e)?1===e.length?(0,o.t)("files","Delete folder"):(0,o.t)("files","Delete folders"):(0,o.t)("files","Delete"):(0,o.t)("files","Delete permanently"),z=()=>!1!==F((0,E.u)()).userConfig.show_dialog_deletion,B=async(e,t)=>{const s="trashbin"!==t.id&&P()?(0,o.n)("files","You are about to delete {count} item","You are about to delete {count} items",e.length,{count:e.length}):(0,o.n)("files","You are about to permanently delete {count} item","You are about to permanently delete {count} items",e.length,{count:e.length});return new Promise((n=>{window.OC.dialogs.confirmDestructive(s,(0,o.t)("files","Confirm deletion"),{type:window.OC.dialogs.YES_NO_BUTTONS,confirm:O(e,t),confirmClasses:"error",cancel:(0,o.t)("files","Cancel")},(e=>{n(e)}))}))},D=async e=>{await _.Ay.delete(e.encodedSource),(0,S.Ic)("files:node:deleted",e)};var j=s(9558);const V=new r.A({concurrency:5}),M=new n.hY({id:"delete",displayName:O,iconSvgInline:e=>I(e)?l:R(e)?'':'',enabled:(e,t)=>(t.id!==L||!1!==(0,a.C)("files_trashbin","config",{allow_delete:!0}).allow_delete)&&(e.length>0&&e.map((e=>e.permissions)).every((e=>!!(e&n.aX.DELETE)))),async exec(e,t){try{let s=!0;const n=((new Error).stack||"").toLocaleLowerCase().includes("keydown");return(z()||n)&&(s=await B([e],t)),!1===s?((0,i.cf)((0,o.Tl)("files","Deletion cancelled")),null):(await D(e),!0)}catch(t){return j.A.error("Error while deleting a file",{error:t,source:e.source,node:e}),!1}},async execBatch(e,t){let s=!0;if((z()||e.length>=5&&!I(e)&&!R(e))&&(s=await B(e,t)),!1===s)return(0,i.cf)((0,o.Tl)("files","Deletion cancelled")),Promise.all(e.map((()=>null)));const n=e.map((e=>new Promise((t=>{V.add((async()=>{try{await D(e),t(!0)}catch(s){j.A.error("Error while deleting a file",{error:s,source:e.source,node:e}),t(!1)}}))}))));return Promise.all(n)},destructive:!0,order:100});function H(e){if(!(e.permissions&n.aX.READ))return!1;if(!0===e.attributes["hide-download"]||"true"===e.attributes["hide-download"])return!1;if(e.attributes["share-attributes"]){const t=JSON.parse(e.attributes["share-attributes"]||"[]").find((e=>{let{scope:t,key:s}=e;return"permissions"===t&&"download"===s}));if(void 0!==t)return!0===t.value}return!0}function W(e,t){const s=document.createElement("a");s.download=t??"",s.href=e,s.click()}function Y(e,t){const s=e.split("/").filter(Boolean),n=t.split("/").filter(Boolean);let i="";for(const[e,a]of s.entries()){if(e>=t.length)break;if(a!==n[e])break;i=`${i}${""===i?"":"/"}${a}`}return i}const $=function(e){let t;if(1===e.length){if(e[0].type===n.pt.File)return W(e[0].encodedSource,e[0].displayname);t=new URL(e[0].encodedSource),t.searchParams.append("accept","zip")}else{t=new URL(e[0].encodedSource);let s=t.pathname;for(const t of e.slice(1))s=Y(s,new URL(t.encodedSource).pathname);t.pathname=s;const n=e.map((e=>decodeURIComponent(e.encodedSource.slice(t.href.length+1))));t.searchParams.append("accept","zip"),t.searchParams.append("files",JSON.stringify(n))}return"/"!==t.pathname.at(-1)&&(t.pathname=`${t.pathname}/`),W(t.href)},G=new n.hY({id:"download",default:n.m9.DEFAULT,displayName:()=>(0,o.t)("files","Download"),iconSvgInline:()=>'',enabled:(e,t)=>0!==e.length&&!e.some((e=>!e.isDavResource))&&!(e.length>1&&"trashbin"===t.id)&&e.every(H),exec:async e=>($([e]),null),execBatch:async e=>($(e),new Array(e.length).fill(null)),order:30});var q=s(82680);const K=new n.hY({id:"edit-locally",displayName:()=>(0,o.Tl)("files","Open locally"),iconSvgInline:()=>'',enabled:e=>1===e.length&&!(0,q.f)()&&!!(e[0].permissions&n.aX.UPDATE),exec:async e=>(await async function(e){await X(e);const t=await async function(){let e=!1;const t=(new i.ik).setName((0,o.Tl)("files","Open file locally")).setText((0,o.Tl)("files","The file should now open on your device. If it doesn't, please check that you have the desktop app installed.")).setButtons([{label:(0,o.Tl)("files","Retry and close"),type:"secondary",callback:()=>{e="local"}},{label:(0,o.Tl)("files","Open online"),icon:'',type:"primary",callback:()=>{e="online"}}]).build();return await t.show(),e}();"local"===t?await X(e):"online"===t&&window.OCA.Viewer.open({path:e})}(e.path),null),order:25});async function X(e){const t=(0,T.KT)("apps/files/api/v1")+"/openlocaleditor?format=json";try{const s=await _.Ay.post(t,{path:e}),n=(0,d.HW)()?.uid;let i=`nc://open/${n}@`+window.location.host+(0,m.O0)(e);i+="?token="+s.data.ocs.data.token,window.open(i,"_self")}catch(e){(0,i.Qg)((0,o.Tl)("files","Failed to redirect to client"))}}var J=s(63006),Z=s(11459);const Q=new r.A({concurrency:5}),ee=e=>e.some((e=>1!==e.attributes.favorite)),te=async(e,t,s)=>{try{const n=(0,T.Jv)("/apps/files/api/v1/files")+(0,m.O0)(e.path);return await _.Ay.post(n,{tags:s?[window.OC.TAG_FAVORITE]:[]}),"favorites"!==t.id||s||"/"!==e.dirname||(0,S.Ic)("files:node:deleted",e),c.Ay.set(e.attributes,"favorite",s?1:0),s?(0,S.Ic)("files:favorites:added",e):(0,S.Ic)("files:favorites:removed",e),!0}catch(t){const n=s?"adding a file to favourites":"removing a file from favourites";return j.A.error("Error while "+n,{error:t,source:e.source,node:e}),!1}},se=new n.hY({id:"favorite",displayName:e=>ee(e)?(0,o.Tl)("files","Add to favorites"):(0,o.Tl)("files","Remove from favorites"),iconSvgInline:e=>ee(e)?J:Z,enabled:e=>!(0,q.f)()&&e.every((e=>e.root?.startsWith?.("/files")))&&e.every((e=>e.permissions!==n.aX.NONE)),async exec(e,t){const s=ee([e]);return await te(e,t,s)},async execBatch(e,t){const s=ee(e),n=e.map((e=>new Promise((n=>{Q.add((async()=>{try{await te(e,t,s),n(!0)}catch(t){j.A.error("Error while adding file to favorite",{error:t,source:e.source,node:e}),n(!1)}}))}))));return Promise.all(n)},order:-50});var ne=s(85748),ie=s(43627),ae=s(21363);const oe='',re=(0,a.C)("files_sharing","sharePermissions",n.aX.NONE);let le;var de;!function(e){e.MOVE="Move",e.COPY="Copy",e.MOVE_OR_COPY="move-or-copy"}(de||(de={}));const me=e=>{const t=e.reduce(((e,t)=>Math.min(e,t.permissions)),n.aX.ALL);return Boolean(t&n.aX.DELETE)},ce=e=>!!(e=>e.every((e=>!JSON.parse(e.attributes?.["share-attributes"]??"[]").some((e=>"permissions"===e.scope&&!1===e.value&&"download"===e.key)))))(e)&&!e.some((e=>e.permissions===n.aX.NONE))&&(!(0,q.f)()||Boolean(re&n.aX.CREATE));var ge=s(16954);const ue=e=>me(e)?ce(e)?de.MOVE_OR_COPY:de.MOVE:de.COPY,fe=async function(e,t,s){let a=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!t)return;if(t.type!==n.pt.Folder)throw new Error((0,o.Tl)("files","Destination is not a folder"));if(s===de.MOVE&&e.dirname===t.path)throw new Error((0,o.Tl)("files","This file/folder is already in that directory"));if(`${t.path}/`.startsWith(`${e.path}/`))throw new Error((0,o.Tl)("files","You cannot move a file/folder onto itself or into a subfolder of itself"));c.Ay.set(e,"status",n.zI.LOADING);const l=function(e,t,s){const n=e===de.MOVE?(0,o.Tl)("files",'Moving "{source}" to "{destination}" …',{source:t,destination:s}):(0,o.Tl)("files",'Copying "{source}" to "{destination}" …',{source:t,destination:s});let a;return a=(0,i.cf)(` ${n}`,{isHTML:!0,timeout:i.DH,onRemove:()=>{a?.hideToast(),a=void 0}}),()=>a&&a.hideToast()}(s,e.basename,t.path),d=(le||(le=new r.A({concurrency:5})),le);return await d.add((async()=>{const r=e=>1===e?(0,o.Tl)("files","(copy)"):(0,o.Tl)("files","(copy %n)",void 0,e);try{const l=(0,n.H4)(),d=(0,ie.join)(n.lJ,e.path),m=(0,ie.join)(n.lJ,t.path);if(s===de.COPY){let s=e.basename;if(!a){const t=await l.getDirectoryContents(m);s=(0,n.E6)(e.basename,t.map((e=>e.basename)),{suffix:r,ignoreFileExtension:e.type===n.pt.Folder})}if(await l.copyFile(d,(0,ie.join)(m,s)),e.dirname===t.path){const{data:e}=await l.stat((0,ie.join)(m,s),{details:!0,data:(0,n.VL)()});(0,S.Ic)("files:node:created",(0,n.Al)(e))}}else{if(!a){const s=await(0,ge.hE)(t.path);if((0,ne.h)([e],s.contents))try{const{selected:n,renamed:i}=await(0,ne.o)(t.path,[e],s.contents);if(!n.length&&!i.length)return}catch(e){return void(0,i.Qg)((0,o.Tl)("files","Move cancelled"))}}try{await l.moveFile(d,(0,ie.join)(m,e.basename))}catch(e){const t=new DOMParser,s=await(e.response?.text()),n=t.parseFromString(s??"","text/xml").querySelector("message")?.textContent;throw n&&(0,i.Qg)(n),e}(0,S.Ic)("files:node:deleted",e)}}catch(e){if((0,_.F0)(e)){if(412===e.response?.status)throw new Error((0,o.Tl)("files","A file or folder with that name already exists in this folder"));if(423===e.response?.status)throw new Error((0,o.Tl)("files","The files are locked"));if(404===e.response?.status)throw new Error((0,o.Tl)("files","The file does not exist anymore"));if(e.message)throw new Error(e.message)}throw j.A.debug(e),new Error}finally{c.Ay.set(e,"status",""),l()}}))};async function pe(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",s=arguments.length>2?arguments[2]:void 0;const{resolve:a,reject:r,promise:l}=Promise.withResolvers(),d=s.map((e=>e.fileid)).filter(Boolean);return(0,i.a1)((0,o.Tl)("files","Choose destination")).allowDirectories(!0).setFilter((e=>!d.includes(e.fileid))).setMimeTypeFilter([]).setMultiSelect(!1).startAt(t).setButtonFactory(((t,i)=>{const r=[],l=(0,ie.basename)(i),d=s.map((e=>e.dirname)),m=s.map((e=>e.path));return e!==de.COPY&&e!==de.MOVE_OR_COPY||r.push({label:l?(0,o.Tl)("files","Copy to {target}",{target:l},void 0,{escape:!1,sanitize:!1}):(0,o.Tl)("files","Copy"),type:"primary",icon:ae,disabled:t.some((e=>!(e.permissions&n.aX.CREATE))),async callback(e){a({destination:e[0],action:de.COPY})}}),d.includes(i)||m.includes(i)||t.some((e=>!(e.permissions&n.aX.CREATE)))||e!==de.MOVE&&e!==de.MOVE_OR_COPY||r.push({label:l?(0,o.Tl)("files","Move to {target}",{target:l},void 0,{escape:!1,sanitize:!1}):(0,o.Tl)("files","Move"),type:e===de.MOVE?"primary":"secondary",icon:oe,async callback(e){a({destination:e[0],action:de.MOVE})}}),r})).build().pick().catch((e=>{j.A.debug(e),e instanceof i.vT?a(!1):r(new Error((0,o.Tl)("files","Move or copy operation failed")))})),l}const he=new n.hY({id:"move-copy",displayName(e){switch(ue(e)){case de.MOVE:return(0,o.Tl)("files","Move");case de.COPY:return(0,o.Tl)("files","Copy");case de.MOVE_OR_COPY:return(0,o.Tl)("files","Move or copy")}},iconSvgInline:()=>oe,enabled:(e,t)=>"public-file-share"!==t.id&&!!e.every((e=>e.root?.startsWith("/files/")))&&e.length>0&&(me(e)||ce(e)),async exec(e,t,s){const n=ue([e]);let a;try{a=await pe(n,s,[e])}catch(e){return j.A.error(e),!1}if(!1===a)return(0,i.cf)((0,o.Tl)("files",'Cancelled move or copy of "{filename}".',{filename:e.displayname})),null;try{return await fe(e,a.destination,a.action),!0}catch(e){return!!(e instanceof Error&&e.message)&&((0,i.Qg)(e.message),null)}},async execBatch(e,t,s){const n=ue(e),a=await pe(n,s,e);if(!1===a)return(0,i.cf)(1===e.length?(0,o.Tl)("files",'Cancelled move or copy of "{filename}".',{filename:e[0].displayname}):(0,o.Tl)("files","Cancelled move or copy operation")),e.map((()=>null));const r=e.map((async e=>{try{return await fe(e,a.destination,a.action),!0}catch(t){return j.A.error(`Failed to ${a.action} node`,{node:e,error:t}),!1}}));return await Promise.all(r)},order:15}),we='',ve=new n.hY({id:"open-folder",displayName(e){const t=e[0].displayname;return(0,o.Tl)("files","Open folder {displayName}",{displayName:t})},iconSvgInline:()=>we,enabled(e){if(1!==e.length)return!1;const t=e[0];return!!t.isDavRessource&&t.type===n.pt.Folder&&!!(t.permissions&n.aX.READ)},exec:async(e,t)=>!(!e||e.type!==n.pt.Folder)&&(window.OCP.Files.Router.goToRoute(null,{view:t.id,fileid:String(e.fileid)},{dir:e.path}),null),default:n.m9.HIDDEN,order:-100});var be=s(53775);const ye=new n.hY({id:"open-in-files",displayName:()=>(0,o.t)("files","Open in Files"),iconSvgInline:()=>"",enabled:(e,t)=>"recent"===t.id||t.id===be.w,async exec(e){let t=e.dirname;return e.type===n.pt.Folder&&(t=t+"/"+e.basename),window.OCP.Files.Router.goToRoute(null,{view:"files",fileid:String(e.fileid)},{dir:t,openfile:"true"}),null},order:-1e3,default:n.m9.HIDDEN});var Te=s(38225),ke=s(89761);const xe=new n.hY({id:"rename",displayName:()=>(0,o.Tl)("files","Rename"),iconSvgInline:()=>Te,enabled:(e,t)=>{if(0===e.length)return!1;if("public-file-share"===t.id)return!1;const s=e[0],i=(0,ke._)((0,E.u)()),a="/"===s.dirname?i.getRoot(t.id):i.getNode((0,ie.dirname)(s.source)),o=a?.permissions||n.aX.NONE;return Boolean(s.permissions&n.aX.DELETE)&&Boolean(o&n.aX.CREATE)},exec:async e=>((0,S.Ic)("files:node:rename",e),null),order:10});var Ce=s(49981);const Le=new n.hY({id:"details",displayName:()=>(0,o.Tl)("files","Open details"),iconSvgInline:()=>Ce,enabled:e=>!(0,q.f)()&&1===e.length&&!!e[0]&&!!window?.OCA?.Files?.Sidebar&&((e[0].root?.startsWith("/files/")&&e[0].permissions!==n.aX.NONE)??!1),async exec(e,t,s){try{return window.OCA.Files.Sidebar.file===e.path?(j.A.debug("Sidebar already open for this file",{node:e}),null):(window.OCA.Files.Sidebar.setActiveTab("sharing"),await window.OCA.Files.Sidebar.open(e.path),window.OCP?.Files?.Router?.goToRoute(null,{view:t.id,fileid:String(e.fileid)},{...window.OCP.Files.Router.query,dir:s,opendetails:"true"},!0),null)}catch(e){return j.A.error("Error while opening sidebar",{error:e}),!1}},order:-50}),Se=new n.hY({id:"view-in-folder",displayName:()=>(0,o.t)("files","View in folder"),iconSvgInline:()=>oe,enabled(e,t){if((0,q.f)())return!1;if("files"===t.id)return!1;if(1!==e.length)return!1;const s=e[0];return!!s.isDavRessource&&!!s.root?.startsWith("/files")&&s.permissions!==n.aX.NONE&&s.type===n.pt.File},exec:async e=>!(!e||e.type!==n.pt.File)&&(window.OCP.Files.Router.goToRoute(null,{view:"files",fileid:String(e.fileid)},{dir:e.dirname}),null),order:80});class Ue extends n.L3{constructor(){var e,t,s;super("files:hidden",0),e=this,s=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="showHidden"))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,this.showHidden=(0,a.C)("files","config",{show_hidden:!1}).show_hidden,(0,S.B1)("files:config:updated",(e=>{let{key:t,value:s}=e;"show_hidden"===t&&(this.showHidden=Boolean(s),this.filterUpdated())}))}filter(e){return this.showHidden?e:e.filter((e=>!0!==e.attributes.hidden&&!e.basename.startsWith(".")))}}var _e=s(9165),Ae=s(57505),Ne=s(6695),Fe=s(24764),Ee=s(15502);const Pe=(0,c.pM)({__name:"FileListFilter",props:{isActive:{type:Boolean},filterName:null},emits:["reset-filter"],setup:e=>({__sfc:!0,t:o.t,NcActions:Fe.A,NcActionButton:Ae.A,NcActionSeparator:Ee.A})});var Ie=s(85072),Re=s.n(Ie),Oe=s(97825),ze=s.n(Oe),Be=s(77659),De=s.n(Be),je=s(55056),Ve=s.n(je),Me=s(10540),He=s.n(Me),We=s(41113),Ye=s.n(We),$e=s(23197),Ge={};Ge.styleTagTransform=Ye(),Ge.setAttributes=Ve(),Ge.insert=De().bind(null,"head"),Ge.domAPI=ze(),Ge.insertStyleElement=He(),Re()($e.A,Ge),$e.A&&$e.A.locals&&$e.A.locals;var qe=s(14486);const Ke=(0,qe.A)(Pe,(function(){var e=this,t=e._self._c,s=e._self._setupProxy;return t(s.NcActions,{attrs:{"force-menu":"",type:e.isActive?"secondary":"tertiary","menu-name":e.filterName},scopedSlots:e._u([{key:"icon",fn:function(){return[e._t("icon")]},proxy:!0}],null,!0)},[e._v(" "),e._t("default"),e._v(" "),e.isActive?[t(s.NcActionSeparator),e._v(" "),t(s.NcActionButton,{staticClass:"files-list-filter__clear-button",attrs:{"close-after-click":""},on:{click:function(t){return e.$emit("reset-filter")}}},[e._v("\n\t\t\t"+e._s(s.t("files","Clear filter"))+"\n\t\t")])]:e._e()],2)}),[],!1,null,"00a77ab8",null).exports,Xe=(0,c.pM)({name:"FileListFilterType",components:{FileListFilter:Ke,NcActionButton:Ae.A,NcIconSvgWrapper:Ne.A},props:{presets:{type:Array,default:()=>[]},typePresets:{type:Array,required:!0}},setup:()=>({mdiFileOutline:_e.bFE,t:o.Tl}),data:()=>({selectedOptions:[]}),computed:{isActive(){return this.selectedOptions.length>0}},watch:{presets(){this.selectedOptions=this.presets??[]},selectedOptions(e,t){0===this.selectedOptions.length?0!==t.length&&this.$emit("update:presets"):this.$emit("update:presets",this.selectedOptions)}},mounted(){this.selectedOptions=this.presets??[]},methods:{resetFilter(){this.selectedOptions=[]},toggleOption(e){const t=this.selectedOptions.indexOf(e);-1!==t?this.selectedOptions.splice(t,1):this.selectedOptions.push(e)}}});var Je=s(73470),Ze={};Ze.styleTagTransform=Ye(),Ze.setAttributes=Ve(),Ze.insert=De().bind(null,"head"),Ze.domAPI=ze(),Ze.insertStyleElement=He(),Re()(Je.A,Ze),Je.A&&Je.A.locals&&Je.A.locals;const Qe=(0,qe.A)(Xe,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("FileListFilter",{staticClass:"file-list-filter-type",attrs:{"is-active":e.isActive,"filter-name":e.t("files","Type")},on:{"reset-filter":e.resetFilter},scopedSlots:e._u([{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{path:e.mdiFileOutline}})]},proxy:!0}])},[e._v(" "),e._l(e.typePresets,(function(s){return t("NcActionButton",{key:s.id,attrs:{type:"checkbox","model-value":e.selectedOptions.includes(s)},on:{click:function(t){return e.toggleOption(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.icon}})]},proxy:!0}],null,!0)},[e._v("\n\t\t"+e._s(s.label)+"\n\t")])}))],2)}),[],!1,null,null,null).exports;function et(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const tt=(e,t)=>e.replace("[{id:"document",label:(0,o.t)("files","Documents"),icon:tt('',"#49abea"),mime:["x-office/document"]},{id:"spreadsheet",label:(0,o.t)("files","Spreadsheets"),icon:tt('',"#9abd4e"),mime:["x-office/spreadsheet"]},{id:"presentation",label:(0,o.t)("files","Presentations"),icon:tt('',"#f0965f"),mime:["x-office/presentation"]},{id:"pdf",label:(0,o.t)("files","PDFs"),icon:tt('',"#dc5047"),mime:["application/pdf"]},{id:"folder",label:(0,o.t)("files","Folders"),icon:tt(we,window.getComputedStyle(document.body).getPropertyValue("--color-primary-element")),mime:["httpd/unix-directory"]},{id:"audio",label:(0,o.t)("files","Audio"),icon:'',mime:["audio"]},{id:"image",label:(0,o.t)("files","Photos and images"),icon:'',mime:["image"]},{id:"video",label:(0,o.t)("files","Videos"),icon:'',mime:["video"]}])()),this.currentInstance&&(this.currentInstance.$destroy(),delete this.currentInstance);const t=c.Ay.extend(Qe);this.currentInstance=new t({propsData:{presets:this.currentPresets,typePresets:this.allPresets},el:e}).$on("update:presets",this.setPresets.bind(this)).$mount()}filter(e){if(!this.currentPresets||0===this.currentPresets.length)return e;const t=this.currentPresets.reduce(((e,t)=>[...e,...t.mime]),[]);return e.filter((e=>{if(!e.mime)return!1;const s=e.mime.toLowerCase();return!!t.includes(s)||!!t.includes(window.OC.MimeTypeList.aliases[s])||!!t.includes(s.split("/")[0])}))}reset(){this.setPresets()}setPresets(e){this.currentPresets=e??[],void 0!==this.currentInstance&&(this.currentInstance.$props.presets=e),this.filterUpdated();const t=[];if(e&&e.length>0)for(const s of e)t.push({icon:s.icon,text:s.label,onclick:()=>this.removeFilterPreset(s.id)});else this.currentInstance?.resetFilter();this.updateChips(t)}removeFilterPreset(e){const t=this.currentPresets.filter((t=>{let{id:s}=t;return s!==e}));this.setPresets(t)}}const nt=(0,c.pM)({components:{FileListFilter:Ke,NcActionButton:Ae.A,NcIconSvgWrapper:Ne.A},props:{timePresets:{type:Array,required:!0}},setup:()=>({mdiCalendarRangeOutline:_e.u4v}),data:()=>({selectedOption:null,timeRangeEnd:null,timeRangeStart:null}),computed:{isActive(){return null!==this.selectedOption},currentPreset(){return this.timePresets.find((e=>{let{id:t}=e;return t===this.selectedOption}))??null}},watch:{selectedOption(){if(null===this.selectedOption)this.$emit("update:preset");else{const e=this.currentPreset;this.$emit("update:preset",e)}}},methods:{t:o.Tl,resetFilter(){this.selectedOption=null,this.timeRangeEnd=null,this.timeRangeStart=null}}});var it=s(31891),at={};at.styleTagTransform=Ye(),at.setAttributes=Ve(),at.insert=De().bind(null,"head"),at.domAPI=ze(),at.insertStyleElement=He(),Re()(it.A,at),it.A&&it.A.locals&&it.A.locals;const ot=(0,qe.A)(nt,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("FileListFilter",{attrs:{"is-active":e.isActive,"filter-name":e.t("files","Modified")},on:{"reset-filter":e.resetFilter},scopedSlots:e._u([{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{path:e.mdiCalendarRangeOutline}})]},proxy:!0}])},[e._v(" "),e._l(e.timePresets,(function(s){return t("NcActionButton",{key:s.id,attrs:{type:"radio","close-after-click":"","model-value":e.selectedOption,value:s.id},on:{"update:modelValue":function(t){e.selectedOption=t},"update:model-value":function(t){e.selectedOption=t}}},[e._v("\n\t\t"+e._s(s.label)+"\n\t")])}))],2)}),[],!1,null,"35fd0c81",null).exports;function rt(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const lt=()=>(new Date).setHours(0,0,0,0),dt=[{id:"today",label:(0,o.t)("files","Today"),filter:e=>e>lt()},{id:"last-7",label:(0,o.t)("files","Last 7 days"),filter:e=>e>lt()-6048e5},{id:"last-30",label:(0,o.t)("files","Last 30 days"),filter:e=>e>lt()-2592e6},{id:"this-year",label:(0,o.t)("files","This year ({year})",{year:(new Date).getFullYear()}),filter:e=>e>new Date(lt()).setMonth(0,1)},{id:"last-year",label:(0,o.t)("files","Last year ({year})",{year:(new Date).getFullYear()-1}),filter:e=>e>new Date(lt()).setFullYear((new Date).getFullYear()-1,0,1)&&evoid 0===e.mtime||this.currentPreset.filter(e.mtime.getTime()))):e}reset(){this.setPreset()}setPreset(e){this.currentPreset=e,this.filterUpdated();const t=[];e?t.push({icon:'',text:e.label,onclick:()=>this.setPreset()}):this.currentInstance?.resetFilter(),this.updateChips(t)}}var ct=s(97012),gt=s(94219),ut=s(82182),ft=s(40083);const pt=(0,c.pM)({__name:"NewNodeDialog",props:{defaultName:{type:String,default:(0,o.t)("files","New folder")},otherNames:{type:Array,default:()=>[]},open:{type:Boolean,default:!0},name:{type:String,default:(0,o.t)("files","Create new folder")},label:{type:String,default:(0,o.t)("files","Folder name")}},emits:["close"],setup(e,t){let{emit:s}=t;const i=e,a=(0,c.KR)(i.defaultName),r=(0,c.KR)(),l=(0,c.KR)(),d=(0,c.KR)(""),m=(0,c.EW)((()=>a.value.trim().startsWith(".")));function g(){(0,c.dY)((()=>{const e=r.value?.$el.querySelector("input");if(!i.open||!e)return;const t=a.value.length-(0,ie.extname)(a.value).length;e.focus(),e.setSelectionRange(0,t)}))}return(0,c.wB)((()=>[i.defaultName,i.otherNames]),(()=>{a.value=(0,n.E6)(i.defaultName,i.otherNames).trim()})),(0,c.nT)((()=>{i.otherNames.includes(a.value.trim())?d.value=(0,o.t)("files","This name is already in use."):d.value=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(""===e.trim())return(0,o.t)("files","Filename must not be empty.");try{return(0,n.KT)(e),""}catch(e){if(!(e instanceof n.di))throw e;switch(e.reason){case n.nF.Character:return(0,o.t)("files",'"{char}" is not allowed inside a filename.',{char:e.segment},void 0,{escape:t});case n.nF.ReservedName:return(0,o.t)("files",'"{segment}" is a reserved name and not allowed for filenames.',{segment:e.segment},void 0,{escape:!1});case n.nF.Extension:return e.segment.match(/\.[a-z]/i)?(0,o.t)("files",'"{extension}" is not an allowed filetype.',{extension:e.segment},void 0,{escape:!1}):(0,o.t)("files",'Filenames must not end with "{extension}".',{extension:e.segment},void 0,{escape:!1});default:return(0,o.t)("files","Invalid filename.")}}}(a.value.trim());const e=r.value?.$el.querySelector("input");e&&(e.setCustomValidity(d.value),e.reportValidity())})),(0,c.wB)((()=>i.open),(()=>{(0,c.dY)((()=>{g()}))})),(0,c.sV)((()=>{a.value=(0,n.E6)(a.value,i.otherNames).trim(),(0,c.dY)((()=>g()))})),{__sfc:!0,props:i,emit:s,localDefaultName:a,nameInput:r,formElement:l,validity:d,isHiddenFileName:m,focusInput:g,submit:function(){l.value?.requestSubmit()},t:o.t,NcButton:ct.A,NcDialog:gt.A,NcTextField:ut.A,NcNoteCard:ft.A}}});var ht=s(96102),wt={};wt.styleTagTransform=Ye(),wt.setAttributes=Ve(),wt.insert=De().bind(null,"head"),wt.domAPI=ze(),wt.insertStyleElement=He(),Re()(ht.A,wt),ht.A&&ht.A.locals&&ht.A.locals;const vt=(0,qe.A)(pt,(function(){var e=this,t=e._self._c,s=e._self._setupProxy;return t(s.NcDialog,{attrs:{"data-cy-files-new-node-dialog":"",name:e.name,open:e.open,"close-on-click-outside":"","out-transition":""},on:{"update:open":function(e){return s.emit("close",null)}},scopedSlots:e._u([{key:"actions",fn:function(){return[t(s.NcButton,{attrs:{"data-cy-files-new-node-dialog-submit":"",type:"primary",disabled:""!==s.validity},on:{click:s.submit}},[e._v("\n\t\t\t"+e._s(s.t("files","Create"))+"\n\t\t")])]},proxy:!0}])},[e._v(" "),t("form",{ref:"formElement",staticClass:"new-node-dialog__form",on:{submit:function(e){return e.preventDefault(),s.emit("close",s.localDefaultName)}}},[t(s.NcTextField,{ref:"nameInput",attrs:{"data-cy-files-new-node-dialog-input":"",error:""!==s.validity,"helper-text":s.validity,label:e.label,value:s.localDefaultName},on:{"update:value":function(e){s.localDefaultName=e}}}),e._v(" "),s.isHiddenFileName?t(s.NcNoteCard,{attrs:{type:"warning",text:s.t("files","Files starting with a dot are hidden by default")}}):e._e()],1)])}),[],!1,null,"04462327",null).exports;function bt(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=t.map((e=>e.basename));return new Promise((t=>{(0,i.Ss)(vt,{...s,defaultName:e,otherNames:n},(e=>{t(e)}))}))}const yt={id:"newFolder",displayName:(0,o.Tl)("files","New folder"),enabled:e=>Boolean(e.permissions&n.aX.CREATE)&&Boolean(e.permissions&n.aX.READ),iconSvgInline:''.replace(/viewBox/gi,'style="color: var(--color-primary-element)" viewBox'),order:0,async handler(e,t){const s=await bt((0,o.Tl)("files","New folder"),t);if(null!==s)try{const{fileid:t,source:a}=await(async(e,t)=>{const s=e.source+"/"+t,n=e.encodedSource+"/"+encodeURIComponent(t),i=await(0,_.Ay)({method:"MKCOL",url:n,headers:{Overwrite:"F"}});return{fileid:parseInt(i.headers["oc-fileid"]),source:s}})(e,s.trim()),r=new n.vd({source:a,id:t,mtime:new Date,owner:e.owner,permissions:n.aX.ALL,root:e?.root||"/files/"+(0,d.HW)()?.uid,attributes:{"mount-type":e.attributes?.["mount-type"],"owner-id":e.attributes?.["owner-id"],"owner-display-name":e.attributes?.["owner-display-name"]}});(0,S.Ic)("files:node:created",r),(0,i.Te)((0,o.Tl)("files",'Created new folder "{name}"',{name:(0,ie.basename)(a)})),j.A.debug("Created new folder",{folder:r,source:a}),window.OCP.Files.Router.goToRoute(null,{view:"files",fileid:String(t)},{dir:e.path})}catch(e){j.A.error("Creating new folder failed",{error:e}),(0,i.Qg)("Creating new folder failed")}else(0,i.cf)((0,o.Tl)("files","New folder creation cancelled"))}},Tt=(0,a.C)("files","templates_enabled",!0);let kt=(0,a.C)("files","templates_path",!1);j.A.debug("Templates folder enabled",{templatesEnabled:Tt}),j.A.debug("Initial templates folder",{templatesPath:kt});const xt={id:"template-picker",displayName:(0,o.Tl)("files","Create templates folder"),iconSvgInline:'',order:30,enabled:e=>!(!Tt||kt||e.owner!==(0,d.HW)()?.uid||!(e.permissions&n.aX.CREATE)),async handler(e,t){const s=await bt((0,o.Tl)("files","Templates"),t,{name:(0,o.Tl)("files","New template folder")});null!==s&&(async function(e,t){const s=(0,ie.join)(e.path,t);try{j.A.debug("Initializing the templates directory",{templatePath:s});const{data:e}=await _.Ay.post((0,T.KT)("apps/files/api/v1/templates/path"),{templatePath:s,copySystemTemplates:!0});window.OCP.Files.Router.goToRoute(null,{view:"files",fileid:void 0},{dir:s}),j.A.info("Created new templates folder",{...e.ocs.data}),kt=e.ocs.data.templates_path}catch(e){j.A.error("Unable to initialize the templates directory"),(0,i.Qg)((0,o.Tl)("files","Unable to initialize the templates directory"))}}(e,s),(0,n.gj)("template-picker"))}},Ct=(0,c.$V)((()=>Promise.all([s.e(4208),s.e(7729)]).then(s.bind(s,47729))));let Lt=null;const St=async e=>{if(null===Lt){const t=document.createElement("div");t.id="template-picker",document.body.appendChild(t),Lt=new c.Ay({render:t=>t(Ct,{ref:"picker",props:{parent:e}}),methods:{open(){this.$refs.picker.open(...arguments)}},el:t})}return Lt};var Ut=s(77815),_t=s(56908),At=s(36117);const Nt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";return"/"!==e?(0,ge.hE)(e):new At.CancelablePromise(((e,t,s)=>{const i=(0,n.Q$)(_t.S).catch(t).then((s=>{s?e({contents:s,folder:new n.vd({id:0,source:`${n.PY}${n.lJ}`,root:n.lJ,owner:(0,d.HW)()?.uid||null,permissions:n.aX.READ})}):t()}));s((()=>i.cancel()))}))},Ft=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return new n.Ss({id:Et(e.path),name:e.displayname,icon:we,order:t,params:{dir:e.path,fileid:String(e.fileid),view:"favorites"},parent:"favorites",columns:[],getContents:Nt})},Et=function(e){return`favorite-${function(e){let t=0;for(let s=0;s>>0}(e)}`},Pt=Math.round(Date.now()/1e3-1209600),It=e=>(0,n.Al)(e,n.lJ,(0,T.$_)()),Rt=(0,d.HW)()?.uid,Ot=function(e){const t=e.attributes["mount-type"];return Rt===e.owner&&!["group","shared"].includes(t)},zt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";return(0,ge.hE)(e).then((e=>(e.contents=e.contents.filter(Ot),e)))};var Bt=s(4735);const Dt="personal";var jt=s(85022);const Vt="folders",Mt=`${n.PY}/files/${(0,d.HW)()?.uid}`,Ht=Intl.Collator([(0,o.Z0)(),(0,o.lO)()],{numeric:!0,usage:"sort"}),Wt=(e,t)=>Ht.compare(e.displayName??e.basename,t.displayName??t.basename),Yt=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const n=e.toSorted(Wt);for(const{id:e,basename:i,displayName:a,children:o}of n){const n=(0,m.HS)(t,i),r=`${Mt}${n}`,l={source:r,encodedSource:Gt(r),path:n,fileid:e,basename:i};a&&(l.displayName=a),s.push(l),o.length>0&&Yt(o,n,s)}return s},$t=e=>(0,ge.hE)(e),Gt=e=>{const{origin:t}=new URL(e);return t+(0,m.O0)(e.slice(t.length))},qt=e=>{const t=(0,m.pD)(e);return t===Mt?Vt:Gt(t)},Kt=(0,a.C)("files","config",{folder_tree:!0}).folder_tree;let Xt=(0,a.C)("files","config",{show_hidden:!1}).show_hidden;const Jt=(0,n.bh)(),Zt=new r.A({concurrency:5,intervalCap:5,interval:200}),Qt=new r.A({concurrency:5,intervalCap:5,interval:200}),es=async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";await Zt.add((async()=>{const t=await async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;const{data:s}=await _.Ay.get((0,T.KT)("/apps/files/api/v1/folder-tree"),{params:new URLSearchParams({path:e,depth:String(t)})});return Yt(s,e)}(e),s=t.map((e=>Qt.add((()=>ss(e)))));await Promise.allSettled(s)}))},ts=e=>async t=>{t.loading||t.loaded||(t.loading=!0,await es(e.path),t.loading=!1,t.loaded=!0,(0,S.Ic)("files:navigation:updated"),(0,S.Ic)("files:folder-tree:expanded"))},ss=e=>{const t=Jt.views.find((t=>t.id===e.encodedSource));t&&Jt.remove(t.id),!Xt&&e.basename.startsWith(".")||Jt.register(new n.Ss({id:e.encodedSource,parent:qt(e.source),name:e.displayName??e.displayname??e.basename,icon:we,getContents:$t,loadChildViews:ts(e),params:{view:Vt,fileid:String(e.fileid),dir:e.path}}))},ns=e=>{e.type===n.pt.Folder&&ss(e)},is=e=>{e.type===n.pt.Folder&&(e=>{const t=e.encodedSource;Jt.remove(t)})(e)},as=e=>{let{node:t,oldSource:s}=e;if(t.type!==n.pt.Folder)return;var i;i=s,Jt.remove(i),ss(t);const a=t.source.replace(Mt,""),o=s.replace(Mt,""),r=Jt.views.filter((e=>!!e.params?.dir&&!(0,m.ys)(e.params.dir,o)&&e.params.dir.startsWith(o)));for(const e of r)e.parent=qt(t.source),e.params.dir=e.params.dir.replace(o,a)},os=async e=>{let{key:t,value:s}=e;"show_hidden"===t&&(Xt=s,await es(),(0,S.Ic)("files:folder-tree:initialized"))},rs=new r.A({concurrency:5}),ls=function(e,t){return _.Ay.post((0,T.KT)("/apps/files/api/v1/convert"),{fileId:e,targetMimeType:t})},ds="convert";var ms=s(82736);class cs extends n.L3{constructor(){var e,t,s;super("files:filename",5),e=this,s="",(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="searchQuery"))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,(0,S.B1)("files:search:updated",(e=>{let{query:t,scope:s}=e;"filter"===s&&this.updateQuery(t)}))}filter(e){const t=this.searchQuery.toLocaleLowerCase().split(" ").filter(Boolean);return e.filter((e=>{const s=e.displayname.toLocaleLowerCase();return t.every((e=>s.includes(e)))}))}reset(){this.updateQuery("")}updateQuery(e){if((e=(e||"").trim())!==this.searchQuery){this.searchQuery=e,this.filterUpdated();const t=[];if(""!==e)t.push({text:e,onclick:()=>{this.updateQuery("")}});else{const e=(0,ms.j)((0,E.u)());"filter"===e.scope&&(e.query="")}this.updateChips(t)}}}const gs=(0,c.pM)({__name:"FileListFilterToSearch",setup(e,t){let{expose:s}=t;const n=(0,c.KR)(!1);function i(){n.value=!1}function a(){n.value=!0}return s({hideButton:i,showButton:a}),{__sfc:!0,isVisible:n,hideButton:i,showButton:a,onClick:function(){(0,ms.j)((0,E.u)()).scope="globally"},t:o.t,NcButton:ct.A}}}),us=(0,qe.A)(gs,(function(){var e=this,t=e._self._c,s=e._self._setupProxy;return t(s.NcButton,{directives:[{name:"show",rawName:"v-show",value:s.isVisible,expression:"isVisible"}],on:{click:s.onClick}},[e._v("\n\t"+e._s(s.t("files","Search everywhere"))+"\n")])}),[],!1,null,null,null).exports;class fs extends n.L3{constructor(){var e,t,s;super("files:filter-to-search",999),e=this,s=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="currentInstance"))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,(0,S.B1)("files:search:updated",(e=>{let{query:t,scope:s}=e;t&&"filter"===s?this.currentInstance?.showButton():this.currentInstance?.hideButton()}))}mount(e){this.currentInstance&&this.currentInstance.$destroy();const t=c.Ay.extend(us);this.currentInstance=(new t).$mount(e)}filter(e){return e}}(()=>{const e=((0,U.F)()?.files?.file_conversions??[]).map((e=>{let{to:t,from:s,displayName:a}=e;return new n.hY({id:`convert-${s}-${t}`,displayName:()=>(0,o.t)("files","Save as {displayName}",{displayName:a}),iconSvgInline:()=>{return e=t,``;var e},enabled:e=>e.every((e=>s===e.mime)),exec:async e=>(async function(e,t){const s=(0,i.Cs)((0,o.t)("files","Converting file …"));try{const s=await rs.add((()=>ls(e,t)));(0,i.Te)((0,o.t)("files","File successfully converted"));const n=await(0,_t.t)(s.data.ocs.data.path);(0,S.Ic)("files:node:created",n);const a=s.data.ocs.data.fileId;window.OCP.Files.Router.goToRoute(null,{...window.OCP.Files.Router.params,fileid:a.toString()},window.OCP.Files.Router.query)}catch(s){if((0,_.F0)(s)&&s.response?.data?.ocs?.meta?.message)return void(0,i.Qg)((0,o.t)("files","Failed to convert file: {message}",{message:s.response.data.ocs.meta.message}));j.A.error("Failed to convert file",{fileId:e,targetMimeType:t,error:s}),(0,i.Qg)((0,o.t)("files","Failed to convert file"))}finally{s.hideToast()}}(e.fileid,t),null),execBatch:async e=>(async function(e,t){const s=e.map((e=>rs.add((()=>ls(e,t))))),n=(0,i.Cs)((0,o.t)("files","Converting files …"));try{const n=await Promise.allSettled(s),a=n.filter((e=>"rejected"===e.status));if(a.length>0){const s=a.map((e=>e.reason?.response?.data?.ocs?.meta?.message));return j.A.error("Failed to convert files",{fileIds:e,targetMimeType:t,messages:s}),1===new Set(s).size&&"string"==typeof s[0]?void(0,i.Qg)((0,o.t)("files","Failed to convert files: {message}",{message:s[0]})):a.length===e.length?void(0,i.Qg)((0,o.t)("files","All files failed to be converted")):1===a.length&&s[0]?void(0,i.Qg)((0,o.t)("files","One file could not be converted: {message}",{message:s[0]})):((0,i.Qg)((0,o.n)("files","One file could not be converted","%n files could not be converted",a.length)),void(0,i.Te)((0,o.n)("files","One file successfully converted","%n files successfully converted",e.length-a.length)))}(0,i.Te)((0,o.t)("files","Files successfully converted"));const r=window.OCP.Files.Router.query.dir,l=n.filter((e=>"fulfilled"===e.status)).map((e=>e.value.data.ocs.data.path)).filter((e=>e.startsWith(r)));j.A.debug("Files to fetch",{newPaths:l}),(await Promise.all(l.map((e=>(0,_t.t)(e))))).forEach((e=>(0,S.Ic)("files:node:created",e)));const d=n[0].value.data.ocs.data.fileId;window.OCP.Files.Router.goToRoute(null,{...window.OCP.Files.Router.params,fileid:d.toString()},window.OCP.Files.Router.query)}catch(s){(0,i.Qg)((0,o.t)("files","Failed to convert files")),j.A.error("Failed to convert files",{fileIds:e,targetMimeType:t,error:s})}finally{n.hideToast()}}(e.map((e=>e.fileid)).filter(Boolean),t),Array(e.length).fill(null)),parent:ds})}));(0,n.Gg)(new n.hY({id:ds,displayName:()=>(0,o.t)("files","Save as …"),iconSvgInline:()=>'',enabled:(t,s)=>e.some((e=>e.enabled(t,s))),exec:async()=>null,order:25})),e.forEach(n.Gg)})(),(0,n.Gg)(M),(0,n.Gg)(G),(0,n.Gg)(K),(0,n.Gg)(se),(0,n.Gg)(he),(0,n.Gg)(ve),(0,n.Gg)(ye),(0,n.Gg)(xe),(0,n.Gg)(Le),(0,n.Gg)(Se),(0,n.zj)(yt),(0,n.zj)(xt),(0,a.C)("files","templates",[]).forEach(((e,t)=>{(0,n.zj)({id:`template-new-${e.app}-${t}`,displayName:e.label,iconClass:e.iconClass||"icon-file",iconSvgInline:e.iconSvgInline,enabled:e=>!!(e.permissions&n.aX.CREATE),order:11,async handler(t,s){const n=St(t),i=await bt(`${e.label}${e.extension}`,s,{label:(0,o.Tl)("files","Filename"),name:e.label});null!==i&&(await n).open(i.trim(),e)}})})),!1===(0,q.f)()&&((async()=>{const e=(0,n.bh)();e.register(new n.Ss({id:"favorites",name:(0,o.t)("files","Favorites"),caption:(0,o.t)("files","List of favorite files and folders."),emptyTitle:(0,o.t)("files","No favorites yet"),emptyCaption:(0,o.t)("files","Files and folders you mark as favorite will show up here"),icon:J,order:15,columns:[],getContents:Nt}));const t=(await(0,Ut.Q$)(_t.S)).filter((e=>e.type===n.pt.Folder)),s=t.map(((e,t)=>Ft(e,t)));j.A.debug("Generating favorites view",{favoriteFolders:t}),s.forEach((t=>e.register(t))),(0,S.B1)("files:favorites:added",(e=>{e.type===n.pt.Folder&&(null!==e.path&&e.root?.startsWith("/files")?a(e):j.A.error("Favorite folder is not within user files root",{node:e}))})),(0,S.B1)("files:favorites:removed",(e=>{e.type===n.pt.Folder&&(null!==e.path&&e.root?.startsWith("/files")?r(e.path):j.A.error("Favorite folder is not within user files root",{node:e}))})),(0,S.B1)("files:node:renamed",(e=>{e.type===n.pt.Folder&&1===e.attributes.favorite&&l(e)}));const i=function(){t.sort(((e,t)=>e.basename.localeCompare(t.basename,[(0,o.Z0)(),(0,o.lO)()],{ignorePunctuation:!0,numeric:!0,usage:"sort"}))),t.forEach(((e,t)=>{const n=s.find((t=>t.id===Et(e.path)));n&&(n.order=t)}))},a=function(n){const a=Ft(n);t.find((e=>e.path===n.path))||(t.push(n),s.push(a),i(),e.register(a))},r=function(n){const a=Et(n),o=t.findIndex((e=>e.path===n));-1!==o&&(t.splice(o,1),s.splice(o,1),e.remove(a),i())},l=function(e){const s=t.find((t=>t.fileid===e.fileid));void 0!==s&&(r(s.path),a(e))};i()})(),(0,jt.g)(),(0,Bt.L)()&&(0,n.bh)().register(new n.Ss({id:Dt,name:(0,o.t)("files","Personal files"),caption:(0,o.t)("files","List of your files and folders that are not shared."),emptyTitle:(0,o.t)("files","No personal files found"),emptyCaption:(0,o.t)("files","Files that are not shared will show up here."),icon:'',order:(0,Bt.P)()===Dt?0:5,getContents:zt})),(0,n.bh)().register(new n.Ss({id:"recent",name:(0,o.Tl)("files","Recent"),caption:(0,o.Tl)("files","List of recently modified files and folders."),emptyTitle:(0,o.Tl)("files","No recently modified files"),emptyCaption:(0,o.Tl)("files","Files and folders you recently modified will show up here."),icon:'',order:10,defaultSortKey:"mtime",getContents:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";const t=F((0,E.u)()),s=s=>"/"!==e||t.userConfig.show_hidden||!s.dirname.split("/").some((e=>e.startsWith("."))),i=new AbortController;return new At.CancelablePromise((async(e,t,a)=>{a((()=>i.abort())),e((async()=>{const e=(await _t.S.search("/",{signal:i.signal,details:!0,data:(0,n.R3)(Pt)})).data.results.map(It).filter(s);return{folder:new n.vd({id:0,source:`${n.PY}${n.lJ}`,root:n.lJ,owner:(0,d.HW)()?.uid||null,permissions:n.aX.READ}),contents:e}})())}))}})),(0,be.d)(),(async()=>{Kt&&(Jt.register(new n.Ss({id:Vt,name:(0,o.Tl)("files","Folder tree"),caption:(0,o.Tl)("files","List of your files and folders."),icon:ae,order:50,getContents:$t})),await es(),(0,S.B1)("files:node:created",ns),(0,S.B1)("files:node:deleted",is),(0,S.B1)("files:node:moved",as),(0,S.B1)("files:config:updated",os),(0,S.Ic)("files:folder-tree:initialized"))})()),(0,n.cZ)(new Ue),(0,n.cZ)(new st),(0,n.cZ)(new mt),(0,n.cZ)(new cs),(0,n.cZ)(new fs),"serviceWorker"in navigator?window.addEventListener("load",(async()=>{try{const e=(0,T.Jv)("/apps/files/preview-service-worker.js",{},{noRewrite:!0});let t=(0,T.aU)();""===t&&(t="/");const s=await navigator.serviceWorker.register(e,{scope:t});j.A.debug("SW registered: ",{registration:s})}catch(e){j.A.error("SW registration failed: ",{error:e})}})):j.A.debug("Service Worker is not enabled on this browser."),(0,n.Yc)("nc:hidden",{nc:"http://nextcloud.org/ns"}),(0,n.Yc)("nc:is-mount-root",{nc:"http://nextcloud.org/ns"}),(0,n.Yc)("nc:metadata-blurhash",{nc:"http://nextcloud.org/ns"}),(0,n.Yc)("nc:metadata-files-live-photo",{nc:"http://nextcloud.org/ns"})},21976:(e,t,s)=>{s.d(t,{E:()=>l});var n=s(21777),i=s(77815),a=s(63814),o=s(56908),r=s(9558);async function l(e,t){let{dir:s,signal:l}=t;const d=(0,n.HW)();if(!d)return[];if((e=e.trim()).length<3)return[];s&&!s.startsWith("/")&&(s=`/${s}`),r.A.debug("Searching for nodes",{query:e,dir:s});const{data:m}=await o.S.search("/",{details:!0,signal:l,data:`\n\n\t \n\t\t \n\t\t\t \n\t\t\t ${(0,i.VX)()}\n\t\t\t \n\t\t \n\t\t \n\t\t\t \n\t\t\t\t /files/${d.uid}${s||""}\n\t\t\t\t infinity\n\t\t\t \n\t\t \n\t\t \n\t\t\t \n\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t \n\t\t\t\t %${e.replace("%","")}%\n\t\t\t \n\t\t \n\t\t \n\t\n`});return l?.aborted?[]:m.results.map((e=>(0,i.pO)(e,i.VA,(0,a.$_)())))}},23197:(e,t,s)=>{s.d(t,{A:()=>r});var n=s(71354),i=s.n(n),a=s(76314),o=s.n(a)()(i());o.push([e.id,"\n.files-list-filter__clear-button[data-v-00a77ab8] .action-button__text {\n\tcolor: var(--color-error-text);\n}\n[data-v-00a77ab8] .button-vue {\n\tfont-weight: normal !important;\n*[data-v-00a77ab8] {\n\t\tfont-weight: normal !important;\n}\n}\n","",{version:3,sources:["webpack://./apps/files/src/components/FileListFilter/FileListFilter.vue"],names:[],mappings:";AAyCA;CACA,8BAAA;AACA;AAEA;CACA,8BAAA;AAEA;EACA,8BAAA;AACA;AACA",sourcesContent:["\x3c!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n--\x3e\n\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{{ t('files', 'Clear filter') }}\n\t\t\t\n\t\t\n\t\n\n\n