nextcloud-server/dist/files_versions-sidebar-tab.mjs

27 lines
21 KiB
JavaScript

import{_ as z,v as d,o as r,k as C,m as g,t as _,B as R,h as F,i as V,l as ce,j as h,e as l,E as O,ac as ne,c as S,w as p,u as v,b as M,a as H,a7 as ve,U as ie,ab as de,a8 as me,ad as ae,a4 as B,D as re,G as ue,H as fe,I as pe,d as he,p as te,$ as be,s as ge,ae as we,af as ye,F as _e,x as Ce,Y as X,f as ke}from"./TrayArrowDown-sRwZP_WA.chunk.mjs";import{n as N,o as He,f as Ve,N as Se,u as Le,d as G,s as J}from"./Plus-DDsJI2iW.chunk.mjs";import{h as Ae,j as se,P as Q,e as Ie,p as ze}from"./index-wzXhnBCQ.chunk.mjs";import{a as xe}from"./ContentCopy-BEfKgtZW.chunk.mjs";import{m as oe,N as $e}from"./index-C2fUbm9n.chunk.mjs";import{_ as Me,a as Oe}from"./index-BGFNwqHi.chunk.mjs";import{I as Ee,_ as De,g as Be}from"./TrashCanOutline-avc1vI9P.chunk.mjs";const Ne='<svg xmlns="http://www.w3.org/2000/svg" id="mdi-backup-restore" viewBox="0 0 24 24"><path d="M12,3A9,9 0 0,0 3,12H0L4,16L8,12H5A7,7 0 0,1 12,5A7,7 0 0,1 19,12A7,7 0 0,1 12,19C10.5,19 9.09,18.5 7.94,17.7L6.5,19.14C8.04,20.3 9.94,21 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M14,12A2,2 0 0,0 12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12Z" /></svg>',Te={name:"BackupRestoreIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Re=["aria-hidden","aria-label"],Fe=["fill","width","height"],Pe={d:"M12,3A9,9 0 0,0 3,12H0L4,16L8,12H5A7,7 0 0,1 12,5A7,7 0 0,1 19,12A7,7 0 0,1 12,19C10.5,19 9.09,18.5 7.94,17.7L6.5,19.14C8.04,20.3 9.94,21 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M14,12A2,2 0 0,0 12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12Z"},Ue={key:0};function qe(e,o,i,s,m,n){return r(),d("span",R(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon backup-restore-icon",role:"img",onClick:o[0]||(o[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[C("path",Pe,[i.title?(r(),d("title",Ue,_(i.title),1)):g("",!0)])],8,Fe))],16,Re)}const We=z(Te,[["render",qe]]),Ke={name:"FileCompareIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},je=["aria-hidden","aria-label"],Ze=["fill","width","height"],Ye={d:"M10,18H6V16H10V18M10,14H6V12H10V14M10,1V2H6C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H10V23H12V1H10M20,8V20C20,21.11 19.11,22 18,22H14V20H18V11H14V9H18.5L14,4.5V2L20,8M16,14H14V12H16V14M16,18H14V16H16V18Z"},Xe={key:0};function Ge(e,o,i,s,m,n){return r(),d("span",R(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon file-compare-icon",role:"img",onClick:o[0]||(o[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[C("path",Ye,[i.title?(r(),d("title",Xe,_(i.title),1)):g("",!0)])],8,Ze))],16,je)}const Je=z(Ke,[["render",Ge]]),Qe={name:"ImageOffOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ei=["aria-hidden","aria-label"],ii=["fill","width","height"],ti={d:"M22 20.7L3.3 2L2 3.3L3 4.3V19C3 20.1 3.9 21 5 21H19.7L20.7 22L22 20.7M5 19V6.3L12.6 13.9L11.1 15.8L9 13.1L6 17H15.7L17.7 19H5M8.8 5L6.8 3H19C20.1 3 21 3.9 21 5V17.2L19 15.2V5H8.8"},si={key:0};function oi(e,o,i,s,m,n){return r(),d("span",R(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon image-off-outline-icon",role:"img",onClick:o[0]||(o[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[C("path",ti,[i.title?(r(),d("title",si,_(i.title),1)):g("",!0)])],8,ii))],16,ei)}const ni=z(Qe,[["render",oi]]),ai={name:"PencilOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ri=["aria-hidden","aria-label"],li=["fill","width","height"],ui={d:"M14.06,9L15,9.94L5.92,19H5V18.08L14.06,9M17.66,3C17.41,3 17.15,3.1 16.96,3.29L15.13,5.12L18.88,8.87L20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18.17,3.09 17.92,3 17.66,3M14.06,6.19L3,17.25V21H6.75L17.81,9.94L14.06,6.19Z"},ci={key:0};function vi(e,o,i,s,m,n){return r(),d("span",R(e.$attrs,{"aria-hidden":i.title?null:"true","aria-label":i.title,class:"material-design-icon pencil-outline-icon",role:"img",onClick:o[0]||(o[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:i.fillColor,class:"material-design-icon__svg",width:i.size,height:i.size,viewBox:"0 0 24 24"},[C("path",ui,[i.title?(r(),d("title",ci,_(i.title),1)):g("",!0)])],8,li))],16,ri)}const di=z(ai,[["render",vi]]),mi={key:0,class:"version__image"},fi=["src"],pi={key:2,class:"version__image"},hi={class:"version__info"},bi=["title"],gi={key:1,class:"version__info","data-cy-files-version-author-name":""},wi={key:0},yi=["title"],_i={class:"version__info version__info__subline"},Ci=F({__name:"VersionEntry",props:{version:{type:Object,required:!0},fileInfo:{type:Object,required:!0},isCurrent:{type:Boolean,default:!1},isFirstVersion:{type:Boolean,default:!1},loadPreview:{type:Boolean,default:!1},canView:{type:Boolean,default:!1},canCompare:{type:Boolean,default:!1}},emits:["click","compare","restore","delete","label-update-request"],setup(e,{emit:o}){const i=e,s=o,m=(t,c)=>(t&c)!==0,n=V(!1),u=V(!1),y=V(ce("core","capabilities",{files:{version_labeling:!1,version_deletion:!1}})),f=h(()=>Ae(i.version.size)),b=h(()=>{const t=i.version.label??"";return i.isCurrent?t===""?l("files_versions","Current version"):`${t} (${l("files_versions","Current version")})`:i.isFirstVersion&&t===""?l("files_versions","Initial version"):t}),a=h(()=>!i.version.author||!i.version.authorName?"":i.version.author===O()?.uid?l("files_versions","You"):i.version.authorName??i.version.author),L=h(()=>oe(i.version.mtime).format("LLLL")),k=h(()=>i.isCurrent?ne()+se("/remote.php/webdav",i.fileInfo.path,i.fileInfo.name):ne()+i.version.url),A=h(()=>y.value.files.version_labeling===!0),P=h(()=>y.value.files.version_deletion===!0),U=h(()=>m(i.fileInfo.permissions,Q.DELETE)),D=h(()=>m(i.fileInfo.permissions,Q.UPDATE)),q=h(()=>!((i.fileInfo.permissions&Q.READ)===0||i.fileInfo.mountType==="shared"&&(i.fileInfo.shareAttributes.find(t=>t.scope==="permissions"&&t.key==="download")||{})?.value===!1));function W(){s("label-update-request")}function K(){s("restore",i.version)}async function j(){await ie(),await ie(),s("delete",i.version)}function Z(){if(!i.canView){window.location.href=k.value;return}s("click",{version:i.version})}function Y(){if(!i.canView)throw new Error("Cannot compare version of this file");s("compare",{version:i.version})}return(t,c)=>(r(),S(v($e),{class:"version","force-display-actions":!0,"actions-aria-label":v(l)("files_versions","Actions for version from {versionHumanExplicitDate}",{versionHumanExplicitDate:L.value}),"data-files-versions-version":e.version.fileVersion,onClick:Z},{icon:p(()=>[e.loadPreview||n.value?e.version.previewUrl&&!u.value?(r(),d("img",{key:1,src:e.version.previewUrl,alt:"",decoding:"async",fetchpriority:"low",loading:"lazy",class:"version__image",onLoad:c[0]||(c[0]=w=>n.value=!0),onError:c[1]||(c[1]=w=>u.value=!0)},null,40,fi)):(r(),d("div",pi,[H(ni,{size:20})])):(r(),d("div",mi))]),name:p(()=>[C("div",hi,[b.value?(r(),d("div",{key:0,class:"version__info__label","data-cy-files-version-label":"",title:b.value},_(b.value),9,bi)):g("",!0),a.value?(r(),d("div",gi,[b.value?(r(),d("span",wi,"•")):g("",!0),H(v(Ve),{class:"avatar",user:e.version.author??void 0,size:20,"disable-menu":"","disable-tooltip":"","hide-status":""},null,8,["user"]),C("div",{class:"version__info__author_name",title:a.value},_(a.value),9,yi)])):g("",!0)])]),subname:p(()=>[C("div",_i,[H(v(Me),{class:"version__info__date","relative-time":"short",timestamp:e.version.mtime},null,8,["timestamp"]),c[2]||(c[2]=C("span",null,"•",-1)),C("span",null,_(f.value),1)])]),actions:p(()=>[A.value&&D.value?(r(),S(v(N),{key:0,"data-cy-files-versions-version-action":"label","close-after-click":!0,onClick:W},{icon:p(()=>[H(di,{size:22})]),default:p(()=>[M(" "+_(e.version.label===""?v(l)("files_versions","Name this version"):v(l)("files_versions","Edit version name")),1)]),_:1})):g("",!0),!e.isCurrent&&e.canView&&e.canCompare?(r(),S(v(N),{key:1,"data-cy-files-versions-version-action":"compare","close-after-click":!0,onClick:Y},{icon:p(()=>[H(Je,{size:22})]),default:p(()=>[M(" "+_(v(l)("files_versions","Compare to current version")),1)]),_:1})):g("",!0),!e.isCurrent&&D.value?(r(),S(v(N),{key:2,"data-cy-files-versions-version-action":"restore","close-after-click":!0,onClick:K},{icon:p(()=>[H(We,{size:22})]),default:p(()=>[M(" "+_(v(l)("files_versions","Restore version")),1)]),_:1})):g("",!0),q.value?(r(),S(v(He),{key:3,"data-cy-files-versions-version-action":"download",href:k.value,"close-after-click":!0,download:k.value},{icon:p(()=>[H(ve,{size:22})]),default:p(()=>[M(" "+_(v(l)("files_versions","Download version")),1)]),_:1},8,["href","download"])):g("",!0),!e.isCurrent&&P.value&&U.value?(r(),S(v(N),{key:4,"data-cy-files-versions-version-action":"delete","close-after-click":!0,onClick:j},{icon:p(()=>[H(Ee,{size:22})]),default:p(()=>[M(" "+_(v(l)("files_versions","Delete version")),1)]),_:1})):g("",!0)]),_:1},8,["actions-aria-label","data-files-versions-version"]))}}),ki=z(Ci,[["__scopeId","data-v-e3870fc8"]]),Hi={class:"version-label-modal__info"},Vi=F({__name:"VersionLabelDialog",props:{open:{type:Boolean,default:!1},label:{type:String,default:""}},emits:["update:open","update:label"],setup(e,{emit:o}){const i=e,s=o,m=de("labelInput"),n=V(""),u=h(()=>{const f=[];return i.label.trim()===""?f.push({label:l("files_versions","Cancel")}):f.push({label:l("files_versions","Remove version name"),type:"reset",variant:"error",callback:()=>{y("")}}),[...f,{label:l("files_versions","Save version name"),icon:me,type:"submit",variant:"primary"}]});ae(()=>{n.value=i.label??""}),ae(()=>{i.open&&ie(()=>m.value?.focus()),n.value=i.label});function y(f){s("update:label",f)}return(f,b)=>(r(),S(v(Se),{buttons:u.value,"content-classes":"version-label-modal","is-form":"",open:e.open,size:"normal",name:v(l)("files_versions","Name this version"),"onUpdate:open":b[1]||(b[1]=a=>f.$emit("update:open",a)),onSubmit:b[2]||(b[2]=a=>y(n.value))},{default:p(()=>[H(v(De),{ref_key:"labelInput",ref:m,modelValue:n.value,"onUpdate:modelValue":b[0]||(b[0]=a=>n.value=a),class:"version-label-modal__input",label:v(l)("files_versions","Version name"),placeholder:v(l)("files_versions","Version name")},null,8,["modelValue","label","placeholder"]),C("p",Hi,_(v(l)("files_versions","Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.")),1)]),_:1},8,["buttons","open","name"]))}}),Si=z(Vi,[["__scopeId","data-v-6a69577b"]]),I=Be().setApp("files_version").detectUser().build(),Li=F({name:"VirtualScrolling",props:{sections:{type:Array,required:!0},containerElement:{type:HTMLElement,default:null},useWindow:{type:Boolean,default:!1},headerHeight:{type:Number,default:75},renderDistance:{type:Number,default:.5},bottomBufferRatio:{type:Number,default:2},scrollToKey:{type:String,default:""}},emits:["need-content"],data(){return{scrollPosition:0,containerHeight:0,rowsContainerHeight:0,resizeObserver:null}},computed:{visibleSections(){I.debug("[VirtualScrolling] Computing visible section",{sections:this.sections});const e=this.containerHeight,o=this.scrollPosition,i=o+e;let s=0,m=0;const n=this.sections.map(a=>(m+=this.headerHeight,{...a,rows:a.rows.reduce((L,k)=>{s=m,m+=k.height;let A=0;return m<o?A=(o-m)/e:s>i&&(A=(s-i)/e),A>this.renderDistance?L:[...L,{...k,distance:A}]},[])})).filter(a=>a.rows.length>0),u=n.flatMap(({rows:a})=>a).flatMap(({items:a})=>a),y=this._rowIdToKeyMap;u.forEach(a=>a.key=y[a.id]);const f=u.map(({key:a})=>a).filter(a=>a!==void 0),b=Object.values(y).filter(a=>!f.includes(a));return u.filter(({key:a})=>a===void 0).forEach(a=>a.key=b.pop()??Math.random().toString(36).substr(2)),this._rowIdToKeyMap=u.reduce((a,{id:L,key:k})=>({...a,[`${L}`]:k}),{}),n},totalHeight(){return this.sections.map(e=>this.headerHeight+e.height).reduce((e,o)=>e+o,0)+0},paddingTop(){if(this.visibleSections.length===0)return 0;let e=0;for(const o of this.sections){if(o.key!==this.visibleSections[0].rows[0].sectionKey){e+=this.headerHeight+o.height;continue}for(const i of o.rows){if(i.key===this.visibleSections[0].rows[0].key)return e;e+=i.height}e+=this.headerHeight}return e},rowsContainerStyle(){return{height:`${this.totalHeight}px`,paddingTop:`${this.paddingTop}px`}},isNearBottom(){const e=this.containerHeight*this.bottomBufferRatio;return this.scrollPosition+this.containerHeight>=this.totalHeight-e},container(){return I.debug("[VirtualScrolling] Computing container"),this.containerElement!==null?this.containerElement:this.useWindow?window:this.$refs.container}},watch:{isNearBottom(e){I.debug("[VirtualScrolling] isNearBottom changed",{value:e}),e&&this.$emit("need-content")},visibleSections(){this.isNearBottom&&this.$emit("need-content")},scrollToKey(e){let o=0;for(const i of this.sections){if(i.key!==e){o+=this.headerHeight+i.height;continue}break}I.debug("[VirtualScrolling] Scrolling to",{currentRowTopDistanceFromTop:o}),this.container.scrollTo({top:o,behavior:"smooth"})}},beforeCreate(){this._rowIdToKeyMap={}},mounted(){this.resizeObserver=new ResizeObserver(e=>{for(const o of e){const i=o.contentRect;o.target===this.container&&(this.containerHeight=i.height),o.target.classList.contains("vs-rows-container")&&(this.rowsContainerHeight=i.height)}}),this.useWindow?(window.addEventListener("resize",this.updateContainerSize,{passive:!0}),this.containerHeight=window.innerHeight):this.resizeObserver.observe(this.container),this.resizeObserver.observe(this.$refs.rowsContainer),this.container.addEventListener("scroll",this.updateScrollPosition,{passive:!0})},beforeUnmount(){this.useWindow&&window.removeEventListener("resize",this.updateContainerSize),this.resizeObserver?.disconnect(),this.container.removeEventListener("scroll",this.updateScrollPosition)},methods:{updateScrollPosition(){this._onScrollHandle??=requestAnimationFrame(()=>{this._onScrollHandle=null,this.useWindow?this.scrollPosition=this.container.scrollY:this.scrollPosition=this.container.scrollTop})},updateContainerSize(){this.containerHeight=window.innerHeight}}}),Ai={key:0,ref:"container",class:"vs-container"};function Ii(e,o,i,s,m,n){return!e.useWindow&&e.containerElement===null?(r(),d("div",Ai,[C("div",{ref:"rowsContainer",class:"vs-rows-container",style:re(e.rowsContainerStyle)},[B(e.$slots,"default",{visibleSections:e.visibleSections},void 0,!0),B(e.$slots,"loader",{},void 0,!0)],4)],512)):(r(),d("div",{key:1,ref:"rowsContainer",class:"vs-rows-container",style:re(e.rowsContainerStyle)},[B(e.$slots,"default",{visibleSections:e.visibleSections},void 0,!0),B(e.$slots,"loader",{},void 0,!0)],4))}const zi=z(Li,[["render",Ii],["__scopeId","data-v-b0f92288"]]),xi="dav",$i=ue(xi),E=Oe($i);function le(e){E.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:e??""})}pe(le),le(fe());const Mi=`<?xml version="1.0"?>
<d:propfind xmlns:d="DAV:"
xmlns:oc="http://owncloud.org/ns"
xmlns:nc="http://nextcloud.org/ns"
xmlns:ocs="http://open-collaboration-services.org/ns">
<d:prop>
<d:getcontentlength />
<d:getcontenttype />
<d:getlastmodified />
<d:getetag />
<nc:version-label />
<nc:version-author />
<nc:has-preview />
</d:prop>
</d:propfind>`;async function ee(e){const o=`/versions/${O()?.uid}/versions/${e.id}`;try{const i=(await E.getDirectoryContents(o,{data:Mi,details:!0})).data.filter(({mime:n})=>n!=="").map(n=>Ei(n,e)),s=new Set(i.map(n=>String(n.author))),m=await he.post(te("/displaynames"),{users:[...s]});for(const n of i){const u=m.data.users[n.author??""];u&&(n.authorName=u)}return i}catch(i){throw I.error("Could not fetch version",{exception:i}),i}}async function Oi(e){try{I.debug("Restoring version",{url:e.url}),await E.moveFile(`/versions/${O()?.uid}/versions/${e.fileId}/${e.fileVersion}`,`/versions/${O()?.uid}/restore/target`)}catch(o){throw I.error("Could not restore version",{exception:o}),o}}function Ei(e,o){const i=oe(e.lastmod).unix()*1e3;let s="";return i===o.mtime?s=te("/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0&forceIcon=1&mimeFallback=1",{fileId:o.id,fileEtag:o.etag}):s=te("/apps/files_versions/preview?file={file}&version={fileVersion}&mimeFallback=1",{file:se(o.path,o.name),fileVersion:e.basename}),{fileId:o.id,label:e.props["version-label"]?String(e.props["version-label"]):"",author:e.props["version-author"]?String(e.props["version-author"]):null,authorName:null,filename:e.filename,basename:oe(i).format("LLL"),mime:e.mime,etag:`${e.props.getetag}`,size:e.size,type:e.type,mtime:i,permissions:"R",previewUrl:s,url:se("/remote.php/dav",e.filename),source:ue("dav")+Ie(e.filename),fileVersion:e.basename}}async function Di(e,o){return await E.customRequest(e.filename,{method:"PROPPATCH",data:`<?xml version="1.0"?>
<d:propertyupdate xmlns:d="DAV:"
xmlns:oc="http://owncloud.org/ns"
xmlns:nc="http://nextcloud.org/ns"
xmlns:ocs="http://open-collaboration-services.org/ns">
<d:set>
<d:prop>
<nc:version-label>${o}</nc:version-label>
</d:prop>
</d:set>
</d:propertyupdate>`})}async function Bi(e){await E.deleteFile(e.filename)}const Ni={key:0,class:"versions-tab__container"},Ti=["aria-label"],Ri=F({__name:"FilesVersionsSidebarTab",setup(e,{expose:o}){const i=Le(),s=V(null),m=V(!1),n=V([]),u=V(!1),y=V(!1),f=V(null),b=h(()=>[...n.value].sort((t,c)=>s.value===null?0:t.mtime===s.value.mtime?-1:c.mtime===s.value.mtime?1:c.mtime-t.mtime)),a=h(()=>[{key:"versions",rows:b.value.map(t=>({key:t.mtime.toString(),height:68,sectionKey:"versions",items:[{id:t.mtime.toString(),version:t}]})),height:68*b.value.length}]),L=h(()=>n.value.map(t=>t.mtime).reduce((t,c)=>Math.min(t,c))),k=h(()=>{if(s.value===null)return null;let t="";return s.value.permissions&1&&(t+="R"),s.value.permissions&2&&(t+="W"),s.value.permissions&8&&(t+="D"),{...s.value,mime:s.value.mimetype,basename:s.value.name,filename:s.value.path+"/"+s.value.name,permissions:t,fileid:s.value.id}}),A=h(()=>s.value===null?!1:window.OCA.Viewer?.mimetypesCompare?.includes(s.value.mimetype)),P=h(()=>!i.value);be(()=>{ge("files_versions:restore:restored",ee)}),we(()=>{ye("files_versions:restore:restored",ee)}),o({async update(t){s.value=t,j(),U()},async setIsActive(t){m.value=t}});async function U(){try{u.value=!0,n.value=await ee(s.value)}finally{u.value=!1}}async function D(t){const c=s.value;s.value={...s.value,size:t.size,mtime:t.mtime};const w={preventDefault:!1,fileInfo:s.value,version:t};if(X("files_versions:restore:requested",w),!w.preventDefault)try{await Oi(t),t.label?G(l("files_versions",`${t.label} restored`)):t.mtime===L.value?G(l("files_versions","Initial version restored")):G(l("files_versions","Version restored")),X("files_versions:restore:restored",t)}catch{s.value=c,J(l("files_versions","Could not restore version")),X("files_versions:restore:failed",t)}}function q(t){y.value=!0,f.value=t}async function W(t){if(f.value===null)throw new Error("editedVersion should be set at that point");const c=f.value.label;f.value.label=t,y.value=!1;try{await Di(f.value,t),f.value=null}catch(w){f.value.label=c,J(l("files_versions","Could not set version label")),I.error("Could not set version label",{exception:w})}}async function K(t){const c=n.value.indexOf(t);n.value.splice(c,1);try{await Bi(t)}catch{n.value.push(t),J(l("files_versions","Could not delete version"))}}function j(){n.value=[]}function Z({version:t}){if(s.value!==null){if(t.mtime===s.value.mtime){window.OCA.Viewer.open({fileInfo:k.value});return}window.OCA.Viewer.open({fileInfo:{...t,filename:t.mtime===s.value.mtime?ze.join("files",O()?.uid??"",s.value.path,s.value.name):t.filename,previewUrl:void 0},enableSidebar:!1})}}function Y({version:t}){const c=n.value.map(w=>({...w,previewUrl:void 0}));window.OCA.Viewer.compare(k.value,c.find(w=>w.source===t.source))}return(t,c)=>s.value!==null?(r(),d("div",Ni,[H(zi,{sections:a.value,"header-height":0},{default:p(({visibleSections:w})=>[C("ul",{"aria-label":v(l)("files_versions","File versions"),"data-files-versions-versions-list":""},[w.length===1?(r(!0),d(_e,{key:0},Ce(w[0].rows,$=>(r(),S(ki,{key:$.items[0].version.mtime,"can-view":A.value,"can-compare":P.value,"load-preview":m.value,version:$.items[0].version,"file-info":s.value,"is-current":$.items[0].version.mtime===s.value.mtime,"is-first-version":$.items[0].version.mtime===L.value,onClick:Z,onCompare:Y,onRestore:D,onLabelUpdateRequest:Fi=>q($.items[0].version),onDelete:K},null,8,["can-view","can-compare","load-preview","version","file-info","is-current","is-first-version","onLabelUpdateRequest"]))),128)):g("",!0)],8,Ti)]),loader:p(()=>[u.value?(r(),S(v(xe),{key:0,class:"files-list-viewer__loader"})):g("",!0)]),_:1},8,["sections"]),f.value?(r(),S(Si,{key:0,open:y.value,"onUpdate:open":c[0]||(c[0]=w=>y.value=w),label:f.value.label,"onUpdate:label":W},null,8,["open","label"])):g("",!0)])):g("",!0)}});let x=null,T=null;window.addEventListener("DOMContentLoaded",function(){window.OCA.Files?.Sidebar!==void 0&&window.OCA.Files.Sidebar.registerTab(new window.OCA.Files.Sidebar.Tab({id:"files_versions",name:l("files_versions","Versions"),iconSvg:Ne,async mount(e,o){x&&x.unmount(),x=ke(Ri),T=x.mount(e),T.update(o)},update(e){T.update(e)},setIsActive(e){T?.setIsActive(e)},destroy(){x?.unmount(),x=null},enabled(e){return!(e?.isDirectory()??!0)}}))});
//# sourceMappingURL=files_versions-sidebar-tab.mjs.map