aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornextcloud-command <nextcloud-command@users.noreply.github.com>2025-03-27 22:44:40 +0000
committerAndy Scherzinger <info@andy-scherzinger.de>2025-03-28 00:02:29 +0100
commita913a2135303e7ecda0b7d453f3e83a6a659eb16 (patch)
tree506c059d44cc52e6b92064d8cf905a56c028fd53
parent4d88c408376ecd3057613eeeb866954ec43e38bc (diff)
downloadnextcloud-server-backport/51744/stable29.tar.gz
nextcloud-server-backport/51744/stable29.zip
chore(assets): Recompile assetsbackport/51744/stable29
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
-rw-r--r--dist/files_versions-files_versions.js4
-rw-r--r--dist/files_versions-files_versions.js.map2
2 files changed, 3 insertions, 3 deletions
diff --git a/dist/files_versions-files_versions.js b/dist/files_versions-files_versions.js
index 205e7f2a527..0a059b9beb0 100644
--- a/dist/files_versions-files_versions.js
+++ b/dist/files_versions-files_versions.js
@@ -1,3 +1,3 @@
/*! For license information please see files_versions-files_versions.js.LICENSE.txt */
-(()=>{var e,i,n,s={1544:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var n=i(71354),s=i.n(n),o=i(76314),r=i.n(o)()(s());r.push([e.id,".version[data-v-16623a3e]{display:flex;flex-direction:row}.version__info[data-v-16623a3e]{display:flex;flex-direction:row;align-items:center;gap:.5rem;color:var(--color-main-text);font-weight:500}.version__info__label[data-v-16623a3e]{font-weight:700;overflow:hidden;text-overflow:ellipsis}.version__info__date[data-v-16623a3e]{overflow:hidden;text-overflow:ellipsis}.version__info__subline[data-v-16623a3e]{color:var(--color-text-maxcontrast)}.version__image[data-v-16623a3e]{width:3rem;height:3rem;border:1px solid var(--color-border);border-radius:var(--border-radius-large);display:flex;justify-content:center;color:var(--color-text-light)}","",{version:3,sources:["webpack://./apps/files_versions/src/components/Version.vue"],names:[],mappings:"AACA,0BACC,YAAA,CACA,kBAAA,CAEA,gCACC,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,SAAA,CACA,4BAAA,CACA,eAAA,CAEA,uCACC,eAAA,CAEA,eAAA,CACA,sBAAA,CAGD,sCAEC,eAAA,CACA,sBAAA,CAGD,yCACC,mCAAA,CAIF,iCACC,UAAA,CACA,WAAA,CACA,oCAAA,CACA,wCAAA,CAGA,YAAA,CACA,sBAAA,CACA,6BAAA",sourcesContent:["\n.version {\n\tdisplay: flex;\n\tflex-direction: row;\n\n\t&__info {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\talign-items: center;\n\t\tgap: 0.5rem;\n\t\tcolor: var(--color-main-text);\n\t\tfont-weight: 500;\n\n\t\t&__label {\n\t\t\tfont-weight: 700;\n\t\t\t// Fix overflow on narrow screens\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__date {\n\t\t\t// Fix overflow on narrow screens\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__subline {\n\t\t\tcolor: var(--color-text-maxcontrast)\n\t\t}\n\t}\n\n\t&__image {\n\t\twidth: 3rem;\n\t\theight: 3rem;\n\t\tborder: 1px solid var(--color-border);\n\t\tborder-radius: var(--border-radius-large);\n\n\t\t// Useful to display no preview icon.\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\tcolor: var(--color-text-light);\n\t}\n}\n"],sourceRoot:""}]);const a=r},6659:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var n=i(71354),s=i.n(n),o=i(76314),r=i.n(o)()(s());r.push([e.id,".vs-container[data-v-11dbbae6]{overflow-y:scroll;height:100%}.vs-rows-container[data-v-11dbbae6]{box-sizing:border-box;will-change:scroll-position,padding;contain:layout paint style}","",{version:3,sources:["webpack://./apps/files_versions/src/components/VirtualScrolling.vue"],names:[],mappings:"AACA,+BACC,iBAAA,CACA,WAAA,CAGD,oCACC,qBAAA,CACA,mCAAA,CACA,0BAAA",sourcesContent:["\n.vs-container {\n\toverflow-y: scroll;\n\theight: 100%;\n}\n\n.vs-rows-container {\n\tbox-sizing: border-box;\n\twill-change: scroll-position, padding;\n\tcontain: layout paint style;\n}\n"],sourceRoot:""}]);const a=r},25584:(e,i,n)=>{"use strict";var s=n(85471),o=n(53334),r=n(43627),a=n.n(r),l=n(85168),c=n(16406),d=n(61338),u=n(21777),v=n(59892),f=n(38653),p=n(63814),h=n(71225),m=n(19231),A=n(60669);const b=(0,p.dC)("dav"),_=(0,A.UU)(b),g=e=>{_.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:e??""})};(0,u.zo)(g),g((0,u.do)());const C=_,w=(0,n(35947).YK)().setApp("files_version").detectUser().build();var y=n(25883),x=n(32981),V=n(65043);const k={name:"BackupRestoreIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var L=n(14486);const S=(0,L.A)(k,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon backup-restore-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{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"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var I=n(79759);const H={name:"DownloadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},T=(0,L.A)(H,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon download-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,B={name:"FileCompareIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},N=(0,L.A)(B,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon file-compare-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{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"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,$={name:"ImageOffOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},z=(0,L.A)($,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon image-off-outline-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{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"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var E=n(2413),D=n(57505),O=n(37168),P=n(41944),M=n(4604),R=n(12341),F=n(94849);const U=(e,t)=>!!(e&t),j=(0,s.pM)({name:"Version",components:{NcActionLink:O.A,NcActionButton:D.A,NcAvatar:P.A,NcDateTime:M.A,NcListItem:R.N,BackupRestore:S,Download:T,FileCompare:N,Pencil:E.A,Delete:I.A,ImageOffOutline:z},directives:{tooltip:F.A},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"],data:()=>({previewLoaded:!1,previewErrored:!1,capabilities:(0,x.C)("core","capabilities",{files:{version_labeling:!1,version_deletion:!1}}),versionAuthor:""}),computed:{humanReadableSize(){return(0,y.v7)(this.version.size)},versionLabel(){const e=this.version.label??"";return this.isCurrent?""===e?(0,o.t)("files_versions","Current version"):`${e} (${(0,o.t)("files_versions","Current version")})`:this.isFirstVersion&&""===e?(0,o.t)("files_versions","Initial version"):e},downloadURL(){return this.isCurrent?(0,p.aU)()+(0,h.HS)("/remote.php/webdav",this.fileInfo.path,this.fileInfo.name):(0,p.aU)()+this.version.url},enableLabeling(){return!0===this.capabilities.files.version_labeling},enableDeletion(){return!0===this.capabilities.files.version_deletion},hasDeletePermissions(){return U(this.fileInfo.permissions,y.aX.DELETE)},hasUpdatePermissions(){return U(this.fileInfo.permissions,y.aX.UPDATE)},isDownloadable(){if(!(this.fileInfo.permissions&y.aX.READ))return!1;if("shared"===this.fileInfo.mountType){const e=this.fileInfo.shareAttributes.find((e=>"permissions"===e.scope&&"download"===e.key))||{};if(!1===e?.enabled)return!1}return!0}},created(){this.fetchDisplayName()},methods:{labelUpdate(){this.$emit("label-update-request")},restoreVersion(){this.$emit("restore",this.version)},async deleteVersion(){await this.$nextTick(),await this.$nextTick(),this.$emit("delete",this.version)},async fetchDisplayName(){if(this.versionAuthor=null,this.version.author)if(this.version.author===(0,u.HW)()?.uid)this.versionAuthor=(0,o.t)("files_versions","You");else try{const{data:e}=await V.Ay.post((0,p.Jv)("/displaynames"),{users:[this.version.author]});this.versionAuthor=e.users[this.version.author]}catch(e){w.warn("Could not load user display name",{error:e})}},click(){this.canView?this.$emit("click",{version:this.version}):window.location.href=this.downloadURL},compareVersion(){if(!this.canView)throw new Error("Cannot compare version of this file");this.$emit("compare",{version:this.version})},t:o.t}});var q=n(85072),W=n.n(q),Y=n(97825),K=n.n(Y),G=n(77659),X=n.n(G),Z=n(55056),J=n.n(Z),Q=n(10540),ee=n.n(Q),te=n(41113),ie=n.n(te),ne=n(1544),se={};se.styleTagTransform=ie(),se.setAttributes=J(),se.insert=X().bind(null,"head"),se.domAPI=K(),se.insertStyleElement=ee(),W()(ne.A,se),ne.A&&ne.A.locals&&ne.A.locals;const oe=(0,L.A)(j,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcListItem",{staticClass:"version",attrs:{"force-display-actions":!0,"data-files-versions-version":e.version.fileVersion},on:{click:e.click},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loadPreview||e.previewLoaded?!e.isCurrent&&!e.version.hasPreview||e.previewErrored?t("div",{staticClass:"version__image"},[t("ImageOffOutline",{attrs:{size:20}})],1):t("img",{staticClass:"version__image",attrs:{src:e.version.previewUrl,alt:"",decoding:"async",fetchpriority:"low",loading:"lazy"},on:{load:function(t){e.previewLoaded=!0},error:function(t){e.previewErrored=!0}}}):t("div",{staticClass:"version__image"})]},proxy:!0},{key:"name",fn:function(){return[t("div",{staticClass:"version__info"},[e.versionLabel?t("div",{staticClass:"version__info__label",attrs:{"data-cy-files-version-label":"",title:e.versionLabel}},[e._v("\n\t\t\t\t"+e._s(e.versionLabel)+"\n\t\t\t")]):e._e(),e._v(" "),e.versionAuthor?t("div",{staticClass:"version__info",attrs:{"data-cy-files-version-author-name":""}},[e.versionLabel?t("span",[e._v("•")]):e._e(),e._v(" "),t("NcAvatar",{staticClass:"avatar",attrs:{user:e.version.author,size:20,"disable-menu":"","disable-tooltip":"","show-user-status":!1}}),e._v(" "),t("div",[e._v(e._s(e.versionAuthor))])],1):e._e()])]},proxy:!0},{key:"subname",fn:function(){return[t("div",{staticClass:"version__info version__info__subline"},[t("NcDateTime",{staticClass:"version__info__date",attrs:{"relative-time":"short",timestamp:e.version.mtime}}),e._v(" "),t("span",[e._v("•")]),e._v(" "),t("span",[e._v(e._s(e.humanReadableSize))])],1)]},proxy:!0},{key:"actions",fn:function(){return[e.enableLabeling&&e.hasUpdatePermissions?t("NcActionButton",{attrs:{"data-cy-files-versions-version-action":"label","close-after-click":!0},on:{click:e.labelUpdate},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Pencil",{attrs:{size:22}})]},proxy:!0}],null,!1,3072546167)},[e._v("\n\t\t\t"+e._s(""===e.version.label?e.t("files_versions","Name this version"):e.t("files_versions","Edit version name"))+"\n\t\t")]):e._e(),e._v(" "),!e.isCurrent&&e.canView&&e.canCompare?t("NcActionButton",{attrs:{"data-cy-files-versions-version-action":"compare","close-after-click":!0},on:{click:e.compareVersion},scopedSlots:e._u([{key:"icon",fn:function(){return[t("FileCompare",{attrs:{size:22}})]},proxy:!0}],null,!1,1958207595)},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Compare to current version"))+"\n\t\t")]):e._e(),e._v(" "),!e.isCurrent&&e.hasUpdatePermissions?t("NcActionButton",{attrs:{"data-cy-files-versions-version-action":"restore","close-after-click":!0},on:{click:e.restoreVersion},scopedSlots:e._u([{key:"icon",fn:function(){return[t("BackupRestore",{attrs:{size:22}})]},proxy:!0}],null,!1,2239038444)},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Restore version"))+"\n\t\t")]):e._e(),e._v(" "),e.isDownloadable?t("NcActionLink",{attrs:{"data-cy-files-versions-version-action":"download",href:e.downloadURL,"close-after-click":!0,download:e.downloadURL},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Download",{attrs:{size:22}})]},proxy:!0}],null,!1,927269758)},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Download version"))+"\n\t\t")]):e._e(),e._v(" "),!e.isCurrent&&e.enableDeletion&&e.hasDeletePermissions?t("NcActionButton",{attrs:{"data-cy-files-versions-version-action":"delete","close-after-click":!0},on:{click:e.deleteVersion},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Delete",{attrs:{size:22}})]},proxy:!0}],null,!1,2429175571)},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Delete version"))+"\n\t\t")]):e._e()]},proxy:!0}])})}),[],!1,null,"16623a3e",null).exports,re=(0,s.pM)({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:""}},data:()=>({scrollPosition:0,containerHeight:0,rowsContainerHeight:0,resizeObserver:null}),computed:{visibleSections(){w.debug("[VirtualScrolling] Computing visible section",{sections:this.sections});const e=this.containerHeight,t=this.scrollPosition,i=t+e;let n=0,s=0;const o=this.sections.map((o=>(s+=this.headerHeight,{...o,rows:o.rows.reduce(((o,r)=>{n=s,s+=r.height;let a=0;return s<t?a=(t-s)/e:n>i&&(a=(n-i)/e),a>this.renderDistance?o:[...o,{...r,distance:a}]}),[])}))).filter((e=>e.rows.length>0)),r=o.flatMap((e=>{let{rows:t}=e;return t})).flatMap((e=>{let{items:t}=e;return t})),a=this._rowIdToKeyMap;r.forEach((e=>e.key=a[e.id]));const l=r.map((e=>{let{key:t}=e;return t})).filter((e=>void 0!==e)),c=Object.values(a).filter((e=>!l.includes(e)));return r.filter((e=>{let{key:t}=e;return void 0===t})).forEach((e=>e.key=c.pop()??Math.random().toString(36).substr(2))),this._rowIdToKeyMap=r.reduce(((e,t)=>{let{id:i,key:n}=t;return{...e,[`${i}`]:n}}),{}),o},totalHeight(){return this.sections.map((e=>this.headerHeight+e.height)).reduce(((e,t)=>e+t),0)+0},paddingTop(){if(0===this.visibleSections.length)return 0;let e=0;for(const t of this.sections)if(t.key===this.visibleSections[0].rows[0].sectionKey){for(const i of t.rows){if(i.key===this.visibleSections[0].rows[0].key)return e;e+=i.height}e+=this.headerHeight}else e+=this.headerHeight+t.height;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 w.debug("[VirtualScrolling] Computing container"),null!==this.containerElement?this.containerElement:this.useWindow?window:this.$refs.container}},watch:{isNearBottom(e){w.debug("[VirtualScrolling] isNearBottom changed",{value:e}),e&&this.$emit("need-content")},visibleSections(){this.isNearBottom&&this.$emit("need-content")},scrollToKey(e){let t=0;for(const i of this.sections){if(i.key===e)break;t+=this.headerHeight+i.height}w.debug("[VirtualScrolling] Scrolling to",{currentRowTopDistanceFromTop:t}),this.container.scrollTo({top:t,behavior:"smooth"})}},beforeCreate(){this._rowIdToKeyMap={}},mounted(){this.resizeObserver=new ResizeObserver((e=>{for(const t of e){const e=t.contentRect;t.target===this.container&&(this.containerHeight=e.height),t.target.classList.contains("vs-rows-container")&&(this.rowsContainerHeight=e.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})},beforeDestroy(){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}}});var ae=n(6659),le={};le.styleTagTransform=ie(),le.setAttributes=J(),le.insert=X().bind(null,"head"),le.domAPI=K(),le.insertStyleElement=ee(),W()(ae.A,le),ae.A&&ae.A.locals&&ae.A.locals;const ce=(0,L.A)(re,(function(){var e=this,t=e._self._c;return e._self._setupProxy,e.useWindow||null!==e.containerElement?t("div",{ref:"rowsContainer",staticClass:"vs-rows-container",style:e.rowsContainerStyle},[e._t("default",null,{visibleSections:e.visibleSections}),e._v(" "),e._t("loader")],2):t("div",{ref:"container",staticClass:"vs-container"},[t("div",{ref:"rowsContainer",staticClass:"vs-rows-container",style:e.rowsContainerStyle},[e._t("default",null,{visibleSections:e.visibleSections}),e._v(" "),e._t("loader")],2)])}),[],!1,null,"11dbbae6",null).exports;var de=n(54373),ue=n(32051),ve=n(82182);const fe=(0,s.pM)({name:"VersionLabelForm",components:{NcButton:ue.A,NcTextField:ve.A,Check:de.A},props:{versionLabel:{type:String,default:""}},data(){return{innerVersionLabel:this.versionLabel}},mounted(){this.$nextTick((()=>{this.$refs.labelInput.$el.getElementsByTagName("input")[0].focus()}))},methods:{setVersionLabel(e){this.$emit("label-update",e)},t:o.Tl}});var pe=n(43100),he={};he.styleTagTransform=ie(),he.setAttributes=J(),he.insert=X().bind(null,"head"),he.domAPI=K(),he.insertStyleElement=ee(),W()(pe.A,he),pe.A&&pe.A.locals&&pe.A.locals;const me={name:"VersionTab",components:{Version:oe,VirtualScrolling:ce,VersionLabelForm:(0,L.A)(fe,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("form",{staticClass:"version-label-modal",on:{submit:function(t){return t.preventDefault(),e.setVersionLabel(e.innerVersionLabel)}}},[t("label",[t("div",{staticClass:"version-label-modal__title"},[e._v(e._s(e.t("files_versions","Version name")))]),e._v(" "),t("NcTextField",{ref:"labelInput",attrs:{value:e.innerVersionLabel,placeholder:e.t("files_versions","Version name"),"label-outside":!0},on:{"update:value":function(t){e.innerVersionLabel=t}}})],1),e._v(" "),t("div",{staticClass:"version-label-modal__info"},[e._v("\n\t\t"+e._s(e.t("files_versions","Named versions are persisted, and excluded from automatic cleanups when your storage quota is full."))+"\n\t")]),e._v(" "),t("div",{staticClass:"version-label-modal__actions"},[t("NcButton",{attrs:{disabled:0===e.innerVersionLabel.trim().length},on:{click:function(t){return e.setVersionLabel("")}}},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Remove version name"))+"\n\t\t")]),e._v(" "),t("NcButton",{attrs:{type:"primary","native-type":"submit"},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Check")]},proxy:!0}])},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Save version name"))+"\n\t\t")])],1)])}),[],!1,null,"58311f0c",null).exports,NcLoadingIcon:v.A,NcModal:f.A},mixins:[c.A],data:()=>({fileInfo:null,isActive:!1,versions:[],loading:!1,showVersionLabelForm:!1}),computed:{sections(){return[{key:"versions",rows:this.orderedVersions.map((e=>({key:e.mtime,height:68,sectionKey:"versions",items:[e]}))),height:68*this.orderedVersions.length}]},orderedVersions(){return[...this.versions].sort(((e,t)=>e.mtime===this.fileInfo.mtime?-1:t.mtime===this.fileInfo.mtime?1:t.mtime-e.mtime))},initialVersionMtime(){return this.versions.map((e=>e.mtime)).reduce(((e,t)=>Math.min(e,t)))},viewerFileInfo(){let e="";return 1&this.fileInfo.permissions&&(e+="R"),2&this.fileInfo.permissions&&(e+="W"),8&this.fileInfo.permissions&&(e+="D"),{...this.fileInfo,mime:this.fileInfo.mimetype,basename:this.fileInfo.name,filename:this.fileInfo.path+"/"+this.fileInfo.name,permissions:e,fileid:this.fileInfo.id}},canView(){return window.OCA.Viewer?.mimetypesCompare?.includes(this.fileInfo.mimetype)},canCompare(){return!this.isMobile}},mounted(){(0,d.B1)("files_versions:restore:restored",this.fetchVersions)},beforeUnmount(){(0,d.al)("files_versions:restore:restored",this.fetchVersions)},methods:{async update(e){this.fileInfo=e,this.resetState(),this.fetchVersions()},async setIsActive(e){this.isActive=e},async fetchVersions(){try{this.loading=!0,this.versions=await async function(e){const t=`/versions/${(0,u.HW)()?.uid}/versions/${e.id}`;try{return(await C.getDirectoryContents(t,{data:'<?xml version="1.0"?>\n<d:propfind xmlns:d="DAV:"\n\txmlns:oc="http://owncloud.org/ns"\n\txmlns:nc="http://nextcloud.org/ns"\n\txmlns:ocs="http://open-collaboration-services.org/ns">\n\t<d:prop>\n\t\t<d:getcontentlength />\n\t\t<d:getcontenttype />\n\t\t<d:getlastmodified />\n\t\t<d:getetag />\n\t\t<nc:version-label />\n\t\t<nc:version-author />\n\t\t<nc:has-preview />\n\t</d:prop>\n</d:propfind>',details:!0})).data.filter((e=>{let{mime:t}=e;return""!==t})).map((t=>function(e,t){const i=1e3*(0,m.A)(e.lastmod).unix();let n="";return n=i===t.mtime?(0,p.Jv)("/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0",{fileId:t.id,fileEtag:t.etag}):(0,p.Jv)("/apps/files_versions/preview?file={file}&version={fileVersion}",{file:(0,h.HS)(t.path,t.name),fileVersion:e.basename}),{fileId:t.id,label:e.props["version-label"]&&String(e.props["version-label"]),author:e.props["version-author"]??null,filename:e.filename,basename:(0,m.A)(i).format("LLL"),mime:e.mime,etag:`${e.props.getetag}`,size:e.size,type:e.type,mtime:i,permissions:"R",hasPreview:1===e.props["has-preview"],previewUrl:n,url:(0,h.HS)("/remote.php/dav",e.filename),source:(0,p.dC)("dav")+(0,h.O0)(e.filename),fileVersion:e.basename}}(t,e)))}catch(e){throw w.error("Could not fetch version",{exception:e}),e}}(this.fileInfo)}finally{this.loading=!1}},async handleRestore(e){const i=this.fileInfo;this.fileInfo={...this.fileInfo,size:e.size,mtime:e.mtime};const n={preventDefault:!1,fileInfo:this.fileInfo,version:e};if((0,d.Ic)("files_versions:restore:requested",n),!n.preventDefault)try{await async function(e){try{w.debug("Restoring version",{url:e.url}),await C.moveFile(`/versions/${(0,u.HW)()?.uid}/versions/${e.fileId}/${e.fileVersion}`,`/versions/${(0,u.HW)()?.uid}/restore/target`)}catch(e){throw w.error("Could not restore version",{exception:e}),e}}(e),""!==e.label?(0,l.Te)(t("files_versions",`${e.label} restored`)):e.mtime===this.initialVersionMtime?(0,l.Te)(t("files_versions","Initial version restored")):(0,l.Te)(t("files_versions","Version restored")),(0,d.Ic)("files_versions:restore:restored",e)}catch(n){this.fileInfo=i,(0,l.Qg)(t("files_versions","Could not restore version")),(0,d.Ic)("files_versions:restore:failed",e)}},handleLabelUpdateRequest(e){this.showVersionLabelForm=!0,this.editedVersion=e},async handleLabelUpdate(e){const t=this.editedVersion.label;this.editedVersion.label=e,this.showVersionLabelForm=!1;try{await async function(e,t){return await C.customRequest(e.filename,{method:"PROPPATCH",data:`<?xml version="1.0"?>\n\t\t\t\t\t<d:propertyupdate xmlns:d="DAV:"\n\t\t\t\t\t\txmlns:oc="http://owncloud.org/ns"\n\t\t\t\t\t\txmlns:nc="http://nextcloud.org/ns"\n\t\t\t\t\t\txmlns:ocs="http://open-collaboration-services.org/ns">\n\t\t\t\t\t<d:set>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<nc:version-label>${t}</nc:version-label>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t</d:set>\n\t\t\t\t\t</d:propertyupdate>`})}(this.editedVersion,e),this.editedVersion=null}catch(e){this.editedVersion.label=t,(0,l.Qg)(this.t("files_versions","Could not set version label")),logger.error("Could not set version label",{exception:e})}},async handleDelete(e){const i=this.versions.indexOf(e);this.versions.splice(i,1);try{await async function(e){await C.deleteFile(e.filename)}(e)}catch(i){this.versions.push(e),(0,l.Qg)(t("files_versions","Could not delete version"))}},resetState(){this.$set(this,"versions",[])},openVersion(e){let{version:t}=e;if(t.mtime===this.fileInfo.mtime)return void OCA.Viewer.open({fileInfo:this.viewerFileInfo});const i=this.versions.map((e=>({...e,filename:e.mtime===this.fileInfo.mtime?a().join("files",(0,u.HW)()?.uid??"",this.fileInfo.path,this.fileInfo.name):e.filename,hasPreview:!1,previewUrl:void 0})));OCA.Viewer.open({fileInfo:i.find((e=>e.source===t.source)),enableSidebar:!1})},compareVersion(e){let{version:t}=e;const i=this.versions.map((e=>({...e,hasPreview:!1,previewUrl:void 0})));OCA.Viewer.compare(this.viewerFileInfo,i.find((e=>e.source===t.source)))}}};var Ae=n(33064),be={};be.styleTagTransform=ie(),be.setAttributes=J(),be.insert=X().bind(null,"head"),be.domAPI=K(),be.insertStyleElement=ee(),W()(Ae.A,be),Ae.A&&Ae.A.locals&&Ae.A.locals;const _e=(0,L.A)(me,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"versions-tab__container"},[t("VirtualScrolling",{attrs:{sections:e.sections,"header-height":0},scopedSlots:e._u([{key:"default",fn:function(i){let{visibleSections:n}=i;return[t("ul",{attrs:{"aria-label":e.t("files_versions","File versions"),"data-files-versions-versions-list":""}},[1===n.length?e._l(n[0].rows,(function(i){return t("Version",{key:i.items[0].mtime,attrs:{"can-view":e.canView,"can-compare":e.canCompare,"load-preview":e.isActive,version:i.items[0],"file-info":e.fileInfo,"is-current":i.items[0].mtime===e.fileInfo.mtime,"is-first-version":i.items[0].mtime===e.initialVersionMtime},on:{click:e.openVersion,compare:e.compareVersion,restore:e.handleRestore,"label-update-request":function(t){return e.handleLabelUpdateRequest(i.items[0])},delete:e.handleDelete}})})):e._e()],2),e._v(" "),e.loading?t("NcLoadingIcon",{staticClass:"files-list-viewer__loader",attrs:{slot:"loader"},slot:"loader"}):e._e()]}}])}),e._v(" "),e.showVersionLabelForm?t("NcModal",{attrs:{title:e.t("files_versions","Name this version")},on:{close:function(t){e.showVersionLabelForm=!1}}},[t("VersionLabelForm",{attrs:{"version-label":e.editedVersion.label},on:{"label-update":e.handleLabelUpdate}})],1):e._e()],1)}),[],!1,null,null,null).exports;var ge=n(80284);s.Ay.prototype.t=o.Tl,s.Ay.prototype.n=o.zw,s.Ay.use(ge.Ay);const Ce=s.Ay.extend(_e);let we=null;window.addEventListener("DOMContentLoaded",(function(){void 0!==OCA.Files?.Sidebar&&OCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab({id:"version_vue",name:(0,o.Tl)("files_versions","Versions"),iconSvg:'<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>',async mount(e,t,i){we&&we.$destroy(),we=new Ce({parent:i}),await we.update(t),we.$mount(e)},update(e){we.update(e)},setIsActive(e){we&&we.setIsActive(e)},destroy(){we.$destroy(),we=null},enabled:e=>!(e?.isDirectory()??1)}))}))},33064:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var n=i(71354),s=i.n(n),o=i(76314),r=i.n(o)()(s());r.push([e.id,".versions-tab__container{height:100%}","",{version:3,sources:["webpack://./apps/files_versions/src/views/VersionTab.vue"],names:[],mappings:"AACA,yBACC,WAAA",sourcesContent:["\n.versions-tab__container {\n\theight: 100%;\n}\n"],sourceRoot:""}]);const a=r},42634:()=>{},43100:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var n=i(71354),s=i.n(n),o=i(76314),r=i.n(o)()(s());r.push([e.id,".version-label-modal[data-v-58311f0c]{display:flex;justify-content:space-between;flex-direction:column;height:250px;padding:16px}.version-label-modal__title[data-v-58311f0c]{margin-bottom:12px;font-weight:600}.version-label-modal__info[data-v-58311f0c]{margin-top:12px;color:var(--color-text-maxcontrast)}.version-label-modal__actions[data-v-58311f0c]{display:flex;justify-content:space-between;margin-top:64px}","",{version:3,sources:["webpack://./apps/files_versions/src/components/VersionLabelForm.vue"],names:[],mappings:"AACA,sCACC,YAAA,CACA,6BAAA,CACA,qBAAA,CACA,YAAA,CACA,YAAA,CAEA,6CACC,kBAAA,CACA,eAAA,CAGD,4CACC,eAAA,CACA,mCAAA,CAGD,+CACC,YAAA,CACA,6BAAA,CACA,eAAA",sourcesContent:["\n.version-label-modal {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tflex-direction: column;\n\theight: 250px;\n\tpadding: 16px;\n\n\t&__title {\n\t\tmargin-bottom: 12px;\n\t\tfont-weight: 600;\n\t}\n\n\t&__info {\n\t\tmargin-top: 12px;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__actions {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tmargin-top: 64px;\n\t}\n}\n"],sourceRoot:""}]);const a=r},59169:()=>{},63779:()=>{},77199:()=>{},86833:()=>{}},o={};function r(e){var t=o[e];if(void 0!==t)return t.exports;var i=o[e]={id:e,loaded:!1,exports:{}};return s[e].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}r.m=s,e=[],r.O=(t,i,n,s)=>{if(!i){var o=1/0;for(d=0;d<e.length;d++){i=e[d][0],n=e[d][1],s=e[d][2];for(var a=!0,l=0;l<i.length;l++)(!1&s||o>=s)&&Object.keys(r.O).every((e=>r.O[e](i[l])))?i.splice(l--,1):(a=!1,s<o&&(o=s));if(a){e.splice(d--,1);var c=n();void 0!==c&&(t=c)}}return t}s=s||0;for(var d=e.length;d>0&&e[d-1][2]>s;d--)e[d]=e[d-1];e[d]=[i,n,s]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((t,i)=>(r.f[i](e,t),t)),[])),r.u=e=>e+"-"+e+".js?v="+{2441:"bd6d3dc836e836cd4795",5775:"bdb5a44b157eaff757ea",5862:"18c97d281a8207f0ce8d"}[e],r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i={},n="nextcloud:",r.l=(e,t,s,o)=>{if(i[e])i[e].push(t);else{var a,l;if(void 0!==s)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var u=c[d];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==n+s){a=u;break}}a||(l=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,r.nc&&a.setAttribute("nonce",r.nc),a.setAttribute("data-webpack",n+s),a.src=e),i[e]=[t];var v=(t,n)=>{a.onerror=a.onload=null,clearTimeout(f);var s=i[e];if(delete i[e],a.parentNode&&a.parentNode.removeChild(a),s&&s.forEach((e=>e(n))),t)return t(n)},f=setTimeout(v.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=v.bind(null,a.onerror),a.onload=v.bind(null,a.onload),l&&document.head.appendChild(a)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.j=2250,(()=>{var e;r.g.importScripts&&(e=r.g.location+"");var t=r.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var i=t.getElementsByTagName("script");if(i.length)for(var n=i.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=i[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=e})(),(()=>{r.b=document.baseURI||self.location.href;var e={2250:0};r.f.j=(t,i)=>{var n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)i.push(n[2]);else{var s=new Promise(((i,s)=>n=e[t]=[i,s]));i.push(n[2]=s);var o=r.p+r.u(t),a=new Error;r.l(o,(i=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var s=i&&("load"===i.type?"missing":i.type),o=i&&i.target&&i.target.src;a.message="Loading chunk "+t+" failed.\n("+s+": "+o+")",a.name="ChunkLoadError",a.type=s,a.request=o,n[1](a)}}),"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,i)=>{var n,s,o=i[0],a=i[1],l=i[2],c=0;if(o.some((t=>0!==e[t]))){for(n in a)r.o(a,n)&&(r.m[n]=a[n]);if(l)var d=l(r)}for(t&&t(i);c<o.length;c++)s=o[c],r.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return r.O(d)},i=self.webpackChunknextcloud=self.webpackChunknextcloud||[];i.forEach(t.bind(null,0)),i.push=t.bind(null,i.push.bind(i))})(),r.nc=void 0;var a=r.O(void 0,[4208],(()=>r(25584)));a=r.O(a)})();
-//# sourceMappingURL=files_versions-files_versions.js.map?v=09f40d2c8f52430e5e47 \ No newline at end of file
+(()=>{var e,i,n,s={6659:(e,t,i)=>{"use strict";i.d(t,{A:()=>l});var n=i(71354),s=i.n(n),o=i(76314),r=i.n(o)()(s());r.push([e.id,".vs-container[data-v-11dbbae6]{overflow-y:scroll;height:100%}.vs-rows-container[data-v-11dbbae6]{box-sizing:border-box;will-change:scroll-position,padding;contain:layout paint style}","",{version:3,sources:["webpack://./apps/files_versions/src/components/VirtualScrolling.vue"],names:[],mappings:"AACA,+BACC,iBAAA,CACA,WAAA,CAGD,oCACC,qBAAA,CACA,mCAAA,CACA,0BAAA",sourcesContent:["\n.vs-container {\n\toverflow-y: scroll;\n\theight: 100%;\n}\n\n.vs-rows-container {\n\tbox-sizing: border-box;\n\twill-change: scroll-position, padding;\n\tcontain: layout paint style;\n}\n"],sourceRoot:""}]);const l=r},34377:(e,t,i)=>{"use strict";i.d(t,{A:()=>l});var n=i(71354),s=i.n(n),o=i(76314),r=i.n(o)()(s());r.push([e.id,".versions-tab__container{height:100%}","",{version:3,sources:["webpack://./apps/files_versions/src/views/VersionTab.vue"],names:[],mappings:"AACA,yBACC,WAAA",sourcesContent:["\n.versions-tab__container {\n\theight: 100%;\n}\n"],sourceRoot:""}]);const l=r},42634:()=>{},43100:(e,t,i)=>{"use strict";i.d(t,{A:()=>l});var n=i(71354),s=i.n(n),o=i(76314),r=i.n(o)()(s());r.push([e.id,".version-label-modal[data-v-58311f0c]{display:flex;justify-content:space-between;flex-direction:column;height:250px;padding:16px}.version-label-modal__title[data-v-58311f0c]{margin-bottom:12px;font-weight:600}.version-label-modal__info[data-v-58311f0c]{margin-top:12px;color:var(--color-text-maxcontrast)}.version-label-modal__actions[data-v-58311f0c]{display:flex;justify-content:space-between;margin-top:64px}","",{version:3,sources:["webpack://./apps/files_versions/src/components/VersionLabelForm.vue"],names:[],mappings:"AACA,sCACC,YAAA,CACA,6BAAA,CACA,qBAAA,CACA,YAAA,CACA,YAAA,CAEA,6CACC,kBAAA,CACA,eAAA,CAGD,4CACC,eAAA,CACA,mCAAA,CAGD,+CACC,YAAA,CACA,6BAAA,CACA,eAAA",sourcesContent:["\n.version-label-modal {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tflex-direction: column;\n\theight: 250px;\n\tpadding: 16px;\n\n\t&__title {\n\t\tmargin-bottom: 12px;\n\t\tfont-weight: 600;\n\t}\n\n\t&__info {\n\t\tmargin-top: 12px;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__actions {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tmargin-top: 64px;\n\t}\n}\n"],sourceRoot:""}]);const l=r},59169:()=>{},63779:()=>{},69585:(e,i,n)=>{"use strict";var s=n(85471),o=n(53334),r=n(43627),l=n.n(r),a=n(85168),c=n(16406),d=n(61338),u=n(21777),f=n(59892),v=n(38653),p=n(63814),h=n(71225),m=n(19231),A=n(60669);const b=(0,p.dC)("dav"),_=(0,A.UU)(b),g=e=>{_.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:e??""})};(0,u.zo)(g),g((0,u.do)());const C=_,y=(0,n(35947).YK)().setApp("files_version").detectUser().build();var w=n(25883),x=n(32981),V=n(65043);const k={name:"BackupRestoreIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var L=n(14486);const I=(0,L.A)(k,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon backup-restore-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{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"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var S=n(79759);const H={name:"DownloadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},T=(0,L.A)(H,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon download-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,B={name:"FileCompareIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},N=(0,L.A)(B,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon file-compare-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{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"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,$={name:"ImageOffOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},z=(0,L.A)($,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon image-off-outline-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{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"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var E=n(2413),D=n(57505),O=n(37168),M=n(41944),P=n(4604),R=n(12341),F=n(94849);const U=(e,t)=>!!(e&t),j=(0,s.pM)({name:"Version",components:{NcActionLink:O.A,NcActionButton:D.A,NcAvatar:M.A,NcDateTime:P.A,NcListItem:R.N,BackupRestore:I,Download:T,FileCompare:N,Pencil:E.A,Delete:S.A,ImageOffOutline:z},directives:{tooltip:F.A},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"],data:()=>({previewLoaded:!1,previewErrored:!1,capabilities:(0,x.C)("core","capabilities",{files:{version_labeling:!1,version_deletion:!1}}),versionAuthor:""}),computed:{humanReadableSize(){return(0,w.v7)(this.version.size)},versionLabel(){const e=this.version.label??"";return this.isCurrent?""===e?(0,o.t)("files_versions","Current version"):`${e} (${(0,o.t)("files_versions","Current version")})`:this.isFirstVersion&&""===e?(0,o.t)("files_versions","Initial version"):e},downloadURL(){return this.isCurrent?(0,p.aU)()+(0,h.HS)("/remote.php/webdav",this.fileInfo.path,this.fileInfo.name):(0,p.aU)()+this.version.url},enableLabeling(){return!0===this.capabilities.files.version_labeling},enableDeletion(){return!0===this.capabilities.files.version_deletion},hasDeletePermissions(){return U(this.fileInfo.permissions,w.aX.DELETE)},hasUpdatePermissions(){return U(this.fileInfo.permissions,w.aX.UPDATE)},isDownloadable(){if(!(this.fileInfo.permissions&w.aX.READ))return!1;if("shared"===this.fileInfo.mountType){const e=this.fileInfo.shareAttributes.find((e=>"permissions"===e.scope&&"download"===e.key))||{};if(!1===e?.enabled)return!1}return!0}},created(){this.fetchDisplayName()},methods:{labelUpdate(){this.$emit("label-update-request")},restoreVersion(){this.$emit("restore",this.version)},async deleteVersion(){await this.$nextTick(),await this.$nextTick(),this.$emit("delete",this.version)},async fetchDisplayName(){if(this.versionAuthor=null,this.version.author)if(this.version.author===(0,u.HW)()?.uid)this.versionAuthor=(0,o.t)("files_versions","You");else try{const{data:e}=await V.Ay.post((0,p.Jv)("/displaynames"),{users:[this.version.author]});this.versionAuthor=e.users[this.version.author]}catch(e){y.warn("Could not load user display name",{error:e})}},click(){this.canView?this.$emit("click",{version:this.version}):window.location.href=this.downloadURL},compareVersion(){if(!this.canView)throw new Error("Cannot compare version of this file");this.$emit("compare",{version:this.version})},t:o.t}});var q=n(85072),W=n.n(q),Y=n(97825),K=n.n(Y),G=n(77659),X=n.n(G),Z=n(55056),J=n.n(Z),Q=n(10540),ee=n.n(Q),te=n(41113),ie=n.n(te),ne=n(95730),se={};se.styleTagTransform=ie(),se.setAttributes=J(),se.insert=X().bind(null,"head"),se.domAPI=K(),se.insertStyleElement=ee(),W()(ne.A,se),ne.A&&ne.A.locals&&ne.A.locals;const oe=(0,L.A)(j,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcListItem",{staticClass:"version",attrs:{"force-display-actions":!0,"data-files-versions-version":e.version.fileVersion},on:{click:e.click},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loadPreview||e.previewLoaded?e.version.previewUrl&&!e.previewErrored?t("img",{staticClass:"version__image",attrs:{src:e.version.previewUrl,alt:"",decoding:"async",fetchpriority:"low",loading:"lazy"},on:{load:function(t){e.previewLoaded=!0},error:function(t){e.previewErrored=!0}}}):t("div",{staticClass:"version__image"},[t("ImageOffOutline",{attrs:{size:20}})],1):t("div",{staticClass:"version__image"})]},proxy:!0},{key:"name",fn:function(){return[t("div",{staticClass:"version__info"},[e.versionLabel?t("div",{staticClass:"version__info__label",attrs:{"data-cy-files-version-label":"",title:e.versionLabel}},[e._v("\n\t\t\t\t"+e._s(e.versionLabel)+"\n\t\t\t")]):e._e(),e._v(" "),e.versionAuthor?t("div",{staticClass:"version__info",attrs:{"data-cy-files-version-author-name":""}},[e.versionLabel?t("span",[e._v("•")]):e._e(),e._v(" "),t("NcAvatar",{staticClass:"avatar",attrs:{user:e.version.author,size:20,"disable-menu":"","disable-tooltip":"","show-user-status":!1}}),e._v(" "),t("div",[e._v(e._s(e.versionAuthor))])],1):e._e()])]},proxy:!0},{key:"subname",fn:function(){return[t("div",{staticClass:"version__info version__info__subline"},[t("NcDateTime",{staticClass:"version__info__date",attrs:{"relative-time":"short",timestamp:e.version.mtime}}),e._v(" "),t("span",[e._v("•")]),e._v(" "),t("span",[e._v(e._s(e.humanReadableSize))])],1)]},proxy:!0},{key:"actions",fn:function(){return[e.enableLabeling&&e.hasUpdatePermissions?t("NcActionButton",{attrs:{"data-cy-files-versions-version-action":"label","close-after-click":!0},on:{click:e.labelUpdate},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Pencil",{attrs:{size:22}})]},proxy:!0}],null,!1,3072546167)},[e._v("\n\t\t\t"+e._s(""===e.version.label?e.t("files_versions","Name this version"):e.t("files_versions","Edit version name"))+"\n\t\t")]):e._e(),e._v(" "),!e.isCurrent&&e.canView&&e.canCompare?t("NcActionButton",{attrs:{"data-cy-files-versions-version-action":"compare","close-after-click":!0},on:{click:e.compareVersion},scopedSlots:e._u([{key:"icon",fn:function(){return[t("FileCompare",{attrs:{size:22}})]},proxy:!0}],null,!1,1958207595)},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Compare to current version"))+"\n\t\t")]):e._e(),e._v(" "),!e.isCurrent&&e.hasUpdatePermissions?t("NcActionButton",{attrs:{"data-cy-files-versions-version-action":"restore","close-after-click":!0},on:{click:e.restoreVersion},scopedSlots:e._u([{key:"icon",fn:function(){return[t("BackupRestore",{attrs:{size:22}})]},proxy:!0}],null,!1,2239038444)},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Restore version"))+"\n\t\t")]):e._e(),e._v(" "),e.isDownloadable?t("NcActionLink",{attrs:{"data-cy-files-versions-version-action":"download",href:e.downloadURL,"close-after-click":!0,download:e.downloadURL},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Download",{attrs:{size:22}})]},proxy:!0}],null,!1,927269758)},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Download version"))+"\n\t\t")]):e._e(),e._v(" "),!e.isCurrent&&e.enableDeletion&&e.hasDeletePermissions?t("NcActionButton",{attrs:{"data-cy-files-versions-version-action":"delete","close-after-click":!0},on:{click:e.deleteVersion},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Delete",{attrs:{size:22}})]},proxy:!0}],null,!1,2429175571)},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Delete version"))+"\n\t\t")]):e._e()]},proxy:!0}])})}),[],!1,null,"3b76b962",null).exports,re=(0,s.pM)({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:""}},data:()=>({scrollPosition:0,containerHeight:0,rowsContainerHeight:0,resizeObserver:null}),computed:{visibleSections(){y.debug("[VirtualScrolling] Computing visible section",{sections:this.sections});const e=this.containerHeight,t=this.scrollPosition,i=t+e;let n=0,s=0;const o=this.sections.map((o=>(s+=this.headerHeight,{...o,rows:o.rows.reduce(((o,r)=>{n=s,s+=r.height;let l=0;return s<t?l=(t-s)/e:n>i&&(l=(n-i)/e),l>this.renderDistance?o:[...o,{...r,distance:l}]}),[])}))).filter((e=>e.rows.length>0)),r=o.flatMap((e=>{let{rows:t}=e;return t})).flatMap((e=>{let{items:t}=e;return t})),l=this._rowIdToKeyMap;r.forEach((e=>e.key=l[e.id]));const a=r.map((e=>{let{key:t}=e;return t})).filter((e=>void 0!==e)),c=Object.values(l).filter((e=>!a.includes(e)));return r.filter((e=>{let{key:t}=e;return void 0===t})).forEach((e=>e.key=c.pop()??Math.random().toString(36).substr(2))),this._rowIdToKeyMap=r.reduce(((e,t)=>{let{id:i,key:n}=t;return{...e,[`${i}`]:n}}),{}),o},totalHeight(){return this.sections.map((e=>this.headerHeight+e.height)).reduce(((e,t)=>e+t),0)+0},paddingTop(){if(0===this.visibleSections.length)return 0;let e=0;for(const t of this.sections)if(t.key===this.visibleSections[0].rows[0].sectionKey){for(const i of t.rows){if(i.key===this.visibleSections[0].rows[0].key)return e;e+=i.height}e+=this.headerHeight}else e+=this.headerHeight+t.height;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 y.debug("[VirtualScrolling] Computing container"),null!==this.containerElement?this.containerElement:this.useWindow?window:this.$refs.container}},watch:{isNearBottom(e){y.debug("[VirtualScrolling] isNearBottom changed",{value:e}),e&&this.$emit("need-content")},visibleSections(){this.isNearBottom&&this.$emit("need-content")},scrollToKey(e){let t=0;for(const i of this.sections){if(i.key===e)break;t+=this.headerHeight+i.height}y.debug("[VirtualScrolling] Scrolling to",{currentRowTopDistanceFromTop:t}),this.container.scrollTo({top:t,behavior:"smooth"})}},beforeCreate(){this._rowIdToKeyMap={}},mounted(){this.resizeObserver=new ResizeObserver((e=>{for(const t of e){const e=t.contentRect;t.target===this.container&&(this.containerHeight=e.height),t.target.classList.contains("vs-rows-container")&&(this.rowsContainerHeight=e.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})},beforeDestroy(){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}}});var le=n(6659),ae={};ae.styleTagTransform=ie(),ae.setAttributes=J(),ae.insert=X().bind(null,"head"),ae.domAPI=K(),ae.insertStyleElement=ee(),W()(le.A,ae),le.A&&le.A.locals&&le.A.locals;const ce=(0,L.A)(re,(function(){var e=this,t=e._self._c;return e._self._setupProxy,e.useWindow||null!==e.containerElement?t("div",{ref:"rowsContainer",staticClass:"vs-rows-container",style:e.rowsContainerStyle},[e._t("default",null,{visibleSections:e.visibleSections}),e._v(" "),e._t("loader")],2):t("div",{ref:"container",staticClass:"vs-container"},[t("div",{ref:"rowsContainer",staticClass:"vs-rows-container",style:e.rowsContainerStyle},[e._t("default",null,{visibleSections:e.visibleSections}),e._v(" "),e._t("loader")],2)])}),[],!1,null,"11dbbae6",null).exports;var de=n(54373),ue=n(32051),fe=n(82182);const ve=(0,s.pM)({name:"VersionLabelForm",components:{NcButton:ue.A,NcTextField:fe.A,Check:de.A},props:{versionLabel:{type:String,default:""}},data(){return{innerVersionLabel:this.versionLabel}},mounted(){this.$nextTick((()=>{this.$refs.labelInput.$el.getElementsByTagName("input")[0].focus()}))},methods:{setVersionLabel(e){this.$emit("label-update",e)},t:o.Tl}});var pe=n(43100),he={};he.styleTagTransform=ie(),he.setAttributes=J(),he.insert=X().bind(null,"head"),he.domAPI=K(),he.insertStyleElement=ee(),W()(pe.A,he),pe.A&&pe.A.locals&&pe.A.locals;const me={name:"VersionTab",components:{Version:oe,VirtualScrolling:ce,VersionLabelForm:(0,L.A)(ve,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("form",{staticClass:"version-label-modal",on:{submit:function(t){return t.preventDefault(),e.setVersionLabel(e.innerVersionLabel)}}},[t("label",[t("div",{staticClass:"version-label-modal__title"},[e._v(e._s(e.t("files_versions","Version name")))]),e._v(" "),t("NcTextField",{ref:"labelInput",attrs:{value:e.innerVersionLabel,placeholder:e.t("files_versions","Version name"),"label-outside":!0},on:{"update:value":function(t){e.innerVersionLabel=t}}})],1),e._v(" "),t("div",{staticClass:"version-label-modal__info"},[e._v("\n\t\t"+e._s(e.t("files_versions","Named versions are persisted, and excluded from automatic cleanups when your storage quota is full."))+"\n\t")]),e._v(" "),t("div",{staticClass:"version-label-modal__actions"},[t("NcButton",{attrs:{disabled:0===e.innerVersionLabel.trim().length},on:{click:function(t){return e.setVersionLabel("")}}},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Remove version name"))+"\n\t\t")]),e._v(" "),t("NcButton",{attrs:{type:"primary","native-type":"submit"},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Check")]},proxy:!0}])},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Save version name"))+"\n\t\t")])],1)])}),[],!1,null,"58311f0c",null).exports,NcLoadingIcon:f.A,NcModal:v.A},mixins:[c.A],data:()=>({fileInfo:null,isActive:!1,versions:[],loading:!1,showVersionLabelForm:!1}),computed:{sections(){return[{key:"versions",rows:this.orderedVersions.map((e=>({key:e.mtime,height:68,sectionKey:"versions",items:[e]}))),height:68*this.orderedVersions.length}]},orderedVersions(){return[...this.versions].sort(((e,t)=>e.mtime===this.fileInfo.mtime?-1:t.mtime===this.fileInfo.mtime?1:t.mtime-e.mtime))},initialVersionMtime(){return this.versions.map((e=>e.mtime)).reduce(((e,t)=>Math.min(e,t)))},viewerFileInfo(){let e="";return 1&this.fileInfo.permissions&&(e+="R"),2&this.fileInfo.permissions&&(e+="W"),8&this.fileInfo.permissions&&(e+="D"),{...this.fileInfo,mime:this.fileInfo.mimetype,basename:this.fileInfo.name,filename:this.fileInfo.path+"/"+this.fileInfo.name,permissions:e,fileid:this.fileInfo.id}},canView(){return window.OCA.Viewer?.mimetypesCompare?.includes(this.fileInfo.mimetype)},canCompare(){return!this.isMobile}},mounted(){(0,d.B1)("files_versions:restore:restored",this.fetchVersions)},beforeUnmount(){(0,d.al)("files_versions:restore:restored",this.fetchVersions)},methods:{async update(e){this.fileInfo=e,this.resetState(),this.fetchVersions()},async setIsActive(e){this.isActive=e},async fetchVersions(){try{this.loading=!0,this.versions=await async function(e){const t=`/versions/${(0,u.HW)()?.uid}/versions/${e.id}`;try{return(await C.getDirectoryContents(t,{data:'<?xml version="1.0"?>\n<d:propfind xmlns:d="DAV:"\n\txmlns:oc="http://owncloud.org/ns"\n\txmlns:nc="http://nextcloud.org/ns"\n\txmlns:ocs="http://open-collaboration-services.org/ns">\n\t<d:prop>\n\t\t<d:getcontentlength />\n\t\t<d:getcontenttype />\n\t\t<d:getlastmodified />\n\t\t<d:getetag />\n\t\t<nc:version-label />\n\t\t<nc:version-author />\n\t\t<nc:has-preview />\n\t</d:prop>\n</d:propfind>',details:!0})).data.filter((e=>{let{mime:t}=e;return""!==t})).map((t=>function(e,t){const i=1e3*(0,m.A)(e.lastmod).unix();let n="";return n=i===t.mtime?(0,p.Jv)("/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0&forceIcon=1&mimeFallback=1",{fileId:t.id,fileEtag:t.etag}):(0,p.Jv)("/apps/files_versions/preview?file={file}&version={fileVersion}&mimeFallback=1",{file:(0,h.HS)(t.path,t.name),fileVersion:e.basename}),{fileId:t.id,label:e.props["version-label"]&&String(e.props["version-label"]),author:e.props["version-author"]??null,filename:e.filename,basename:(0,m.A)(i).format("LLL"),mime:e.mime,etag:`${e.props.getetag}`,size:e.size,type:e.type,mtime:i,permissions:"R",previewUrl:n,url:(0,h.HS)("/remote.php/dav",e.filename),source:(0,p.dC)("dav")+(0,h.O0)(e.filename),fileVersion:e.basename}}(t,e)))}catch(e){throw y.error("Could not fetch version",{exception:e}),e}}(this.fileInfo)}finally{this.loading=!1}},async handleRestore(e){const i=this.fileInfo;this.fileInfo={...this.fileInfo,size:e.size,mtime:e.mtime};const n={preventDefault:!1,fileInfo:this.fileInfo,version:e};if((0,d.Ic)("files_versions:restore:requested",n),!n.preventDefault)try{await async function(e){try{y.debug("Restoring version",{url:e.url}),await C.moveFile(`/versions/${(0,u.HW)()?.uid}/versions/${e.fileId}/${e.fileVersion}`,`/versions/${(0,u.HW)()?.uid}/restore/target`)}catch(e){throw y.error("Could not restore version",{exception:e}),e}}(e),""!==e.label?(0,a.Te)(t("files_versions",`${e.label} restored`)):e.mtime===this.initialVersionMtime?(0,a.Te)(t("files_versions","Initial version restored")):(0,a.Te)(t("files_versions","Version restored")),(0,d.Ic)("files_versions:restore:restored",e)}catch(n){this.fileInfo=i,(0,a.Qg)(t("files_versions","Could not restore version")),(0,d.Ic)("files_versions:restore:failed",e)}},handleLabelUpdateRequest(e){this.showVersionLabelForm=!0,this.editedVersion=e},async handleLabelUpdate(e){const t=this.editedVersion.label;this.editedVersion.label=e,this.showVersionLabelForm=!1;try{await async function(e,t){return await C.customRequest(e.filename,{method:"PROPPATCH",data:`<?xml version="1.0"?>\n\t\t\t\t\t<d:propertyupdate xmlns:d="DAV:"\n\t\t\t\t\t\txmlns:oc="http://owncloud.org/ns"\n\t\t\t\t\t\txmlns:nc="http://nextcloud.org/ns"\n\t\t\t\t\t\txmlns:ocs="http://open-collaboration-services.org/ns">\n\t\t\t\t\t<d:set>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<nc:version-label>${t}</nc:version-label>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t</d:set>\n\t\t\t\t\t</d:propertyupdate>`})}(this.editedVersion,e),this.editedVersion=null}catch(e){this.editedVersion.label=t,(0,a.Qg)(this.t("files_versions","Could not set version label")),logger.error("Could not set version label",{exception:e})}},async handleDelete(e){const i=this.versions.indexOf(e);this.versions.splice(i,1);try{await async function(e){await C.deleteFile(e.filename)}(e)}catch(i){this.versions.push(e),(0,a.Qg)(t("files_versions","Could not delete version"))}},resetState(){this.$set(this,"versions",[])},openVersion(e){let{version:t}=e;if(t.mtime===this.fileInfo.mtime)return void OCA.Viewer.open({fileInfo:this.viewerFileInfo});const i=this.versions.map((e=>({...e,filename:e.mtime===this.fileInfo.mtime?l().join("files",(0,u.HW)()?.uid??"",this.fileInfo.path,this.fileInfo.name):e.filename,previewUrl:void 0})));OCA.Viewer.open({fileInfo:i.find((e=>e.source===t.source)),enableSidebar:!1})},compareVersion(e){let{version:t}=e;const i=this.versions.map((e=>({...e,previewUrl:void 0})));OCA.Viewer.compare(this.viewerFileInfo,i.find((e=>e.source===t.source)))}}};var Ae=n(34377),be={};be.styleTagTransform=ie(),be.setAttributes=J(),be.insert=X().bind(null,"head"),be.domAPI=K(),be.insertStyleElement=ee(),W()(Ae.A,be),Ae.A&&Ae.A.locals&&Ae.A.locals;const _e=(0,L.A)(me,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"versions-tab__container"},[t("VirtualScrolling",{attrs:{sections:e.sections,"header-height":0},scopedSlots:e._u([{key:"default",fn:function(i){let{visibleSections:n}=i;return[t("ul",{attrs:{"aria-label":e.t("files_versions","File versions"),"data-files-versions-versions-list":""}},[1===n.length?e._l(n[0].rows,(function(i){return t("Version",{key:i.items[0].mtime,attrs:{"can-view":e.canView,"can-compare":e.canCompare,"load-preview":e.isActive,version:i.items[0],"file-info":e.fileInfo,"is-current":i.items[0].mtime===e.fileInfo.mtime,"is-first-version":i.items[0].mtime===e.initialVersionMtime},on:{click:e.openVersion,compare:e.compareVersion,restore:e.handleRestore,"label-update-request":function(t){return e.handleLabelUpdateRequest(i.items[0])},delete:e.handleDelete}})})):e._e()],2),e._v(" "),e.loading?t("NcLoadingIcon",{staticClass:"files-list-viewer__loader",attrs:{slot:"loader"},slot:"loader"}):e._e()]}}])}),e._v(" "),e.showVersionLabelForm?t("NcModal",{attrs:{title:e.t("files_versions","Name this version")},on:{close:function(t){e.showVersionLabelForm=!1}}},[t("VersionLabelForm",{attrs:{"version-label":e.editedVersion.label},on:{"label-update":e.handleLabelUpdate}})],1):e._e()],1)}),[],!1,null,null,null).exports;var ge=n(80284);s.Ay.prototype.t=o.Tl,s.Ay.prototype.n=o.zw,s.Ay.use(ge.Ay);const Ce=s.Ay.extend(_e);let ye=null;window.addEventListener("DOMContentLoaded",(function(){void 0!==OCA.Files?.Sidebar&&OCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab({id:"version_vue",name:(0,o.Tl)("files_versions","Versions"),iconSvg:'<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>',async mount(e,t,i){ye&&ye.$destroy(),ye=new Ce({parent:i}),await ye.update(t),ye.$mount(e)},update(e){ye.update(e)},setIsActive(e){ye&&ye.setIsActive(e)},destroy(){ye.$destroy(),ye=null},enabled:e=>!(e?.isDirectory()??1)}))}))},77199:()=>{},86833:()=>{},95730:(e,t,i)=>{"use strict";i.d(t,{A:()=>l});var n=i(71354),s=i.n(n),o=i(76314),r=i.n(o)()(s());r.push([e.id,".version[data-v-3b76b962]{display:flex;flex-direction:row}.version__info[data-v-3b76b962]{display:flex;flex-direction:row;align-items:center;gap:.5rem;color:var(--color-main-text);font-weight:500}.version__info__label[data-v-3b76b962]{font-weight:700;overflow:hidden;text-overflow:ellipsis}.version__info__date[data-v-3b76b962]{overflow:hidden;text-overflow:ellipsis}.version__info__subline[data-v-3b76b962]{color:var(--color-text-maxcontrast)}.version__image[data-v-3b76b962]{width:3rem;height:3rem;border:1px solid var(--color-border);border-radius:var(--border-radius-large);display:flex;justify-content:center;color:var(--color-text-light)}","",{version:3,sources:["webpack://./apps/files_versions/src/components/Version.vue"],names:[],mappings:"AACA,0BACC,YAAA,CACA,kBAAA,CAEA,gCACC,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,SAAA,CACA,4BAAA,CACA,eAAA,CAEA,uCACC,eAAA,CAEA,eAAA,CACA,sBAAA,CAGD,sCAEC,eAAA,CACA,sBAAA,CAGD,yCACC,mCAAA,CAIF,iCACC,UAAA,CACA,WAAA,CACA,oCAAA,CACA,wCAAA,CAGA,YAAA,CACA,sBAAA,CACA,6BAAA",sourcesContent:["\n.version {\n\tdisplay: flex;\n\tflex-direction: row;\n\n\t&__info {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\talign-items: center;\n\t\tgap: 0.5rem;\n\t\tcolor: var(--color-main-text);\n\t\tfont-weight: 500;\n\n\t\t&__label {\n\t\t\tfont-weight: 700;\n\t\t\t// Fix overflow on narrow screens\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__date {\n\t\t\t// Fix overflow on narrow screens\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__subline {\n\t\t\tcolor: var(--color-text-maxcontrast)\n\t\t}\n\t}\n\n\t&__image {\n\t\twidth: 3rem;\n\t\theight: 3rem;\n\t\tborder: 1px solid var(--color-border);\n\t\tborder-radius: var(--border-radius-large);\n\n\t\t// Useful to display no preview icon.\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\tcolor: var(--color-text-light);\n\t}\n}\n"],sourceRoot:""}]);const l=r}},o={};function r(e){var t=o[e];if(void 0!==t)return t.exports;var i=o[e]={id:e,loaded:!1,exports:{}};return s[e].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}r.m=s,e=[],r.O=(t,i,n,s)=>{if(!i){var o=1/0;for(d=0;d<e.length;d++){i=e[d][0],n=e[d][1],s=e[d][2];for(var l=!0,a=0;a<i.length;a++)(!1&s||o>=s)&&Object.keys(r.O).every((e=>r.O[e](i[a])))?i.splice(a--,1):(l=!1,s<o&&(o=s));if(l){e.splice(d--,1);var c=n();void 0!==c&&(t=c)}}return t}s=s||0;for(var d=e.length;d>0&&e[d-1][2]>s;d--)e[d]=e[d-1];e[d]=[i,n,s]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((t,i)=>(r.f[i](e,t),t)),[])),r.u=e=>e+"-"+e+".js?v="+{2441:"bd6d3dc836e836cd4795",5775:"bdb5a44b157eaff757ea",5862:"18c97d281a8207f0ce8d"}[e],r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i={},n="nextcloud:",r.l=(e,t,s,o)=>{if(i[e])i[e].push(t);else{var l,a;if(void 0!==s)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var u=c[d];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==n+s){l=u;break}}l||(a=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,r.nc&&l.setAttribute("nonce",r.nc),l.setAttribute("data-webpack",n+s),l.src=e),i[e]=[t];var f=(t,n)=>{l.onerror=l.onload=null,clearTimeout(v);var s=i[e];if(delete i[e],l.parentNode&&l.parentNode.removeChild(l),s&&s.forEach((e=>e(n))),t)return t(n)},v=setTimeout(f.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=f.bind(null,l.onerror),l.onload=f.bind(null,l.onload),a&&document.head.appendChild(l)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.j=2250,(()=>{var e;r.g.importScripts&&(e=r.g.location+"");var t=r.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var i=t.getElementsByTagName("script");if(i.length)for(var n=i.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=i[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=e})(),(()=>{r.b=document.baseURI||self.location.href;var e={2250:0};r.f.j=(t,i)=>{var n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)i.push(n[2]);else{var s=new Promise(((i,s)=>n=e[t]=[i,s]));i.push(n[2]=s);var o=r.p+r.u(t),l=new Error;r.l(o,(i=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var s=i&&("load"===i.type?"missing":i.type),o=i&&i.target&&i.target.src;l.message="Loading chunk "+t+" failed.\n("+s+": "+o+")",l.name="ChunkLoadError",l.type=s,l.request=o,n[1](l)}}),"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,i)=>{var n,s,o=i[0],l=i[1],a=i[2],c=0;if(o.some((t=>0!==e[t]))){for(n in l)r.o(l,n)&&(r.m[n]=l[n]);if(a)var d=a(r)}for(t&&t(i);c<o.length;c++)s=o[c],r.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return r.O(d)},i=self.webpackChunknextcloud=self.webpackChunknextcloud||[];i.forEach(t.bind(null,0)),i.push=t.bind(null,i.push.bind(i))})(),r.nc=void 0;var l=r.O(void 0,[4208],(()=>r(69585)));l=r.O(l)})();
+//# sourceMappingURL=files_versions-files_versions.js.map?v=5c66083007362591fb2b \ No newline at end of file
diff --git a/dist/files_versions-files_versions.js.map b/dist/files_versions-files_versions.js.map
index 5205c4524eb..08900c2a852 100644
--- a/dist/files_versions-files_versions.js.map
+++ b/dist/files_versions-files_versions.js.map
@@ -1 +1 @@
-{"version":3,"file":"files_versions-files_versions.js?v=09f40d2c8f52430e5e47","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files_versions/src/components/Version.vue?vue&type=style&index=0&id=16623a3e&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files_versions/src/components/VirtualScrolling.vue?vue&type=style&index=0&id=11dbbae6&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files_versions/src/utils/davClient.js","webpack:///nextcloud/apps/files_versions/src/utils/logger.js","webpack:///nextcloud/apps/files_versions/src/components/Version.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/BackupRestore.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/BackupRestore.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/BackupRestore.vue?6cf7","webpack:///nextcloud/node_modules/vue-material-design-icons/BackupRestore.vue?vue&type=template&id=4ae28ccb","webpack:///nextcloud/node_modules/vue-material-design-icons/Download.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Download.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Download.vue?b226","webpack:///nextcloud/node_modules/vue-material-design-icons/Download.vue?vue&type=template&id=183a1228","webpack:///nextcloud/node_modules/vue-material-design-icons/FileCompare.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/FileCompare.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/FileCompare.vue?5fdf","webpack:///nextcloud/node_modules/vue-material-design-icons/FileCompare.vue?vue&type=template&id=af361756","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageOffOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageOffOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ImageOffOutline.vue?e0b5","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageOffOutline.vue?vue&type=template&id=fdaa4406","webpack:///nextcloud/apps/files_versions/src/components/Version.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files_versions/src/components/Version.vue?2473","webpack://nextcloud/./apps/files_versions/src/components/Version.vue?0a31","webpack:///nextcloud/apps/files_versions/src/components/VirtualScrolling.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files_versions/src/components/VirtualScrolling.vue","webpack://nextcloud/./apps/files_versions/src/components/VirtualScrolling.vue?3e31","webpack://nextcloud/./apps/files_versions/src/components/VirtualScrolling.vue?fc23","webpack:///nextcloud/apps/files_versions/src/components/VersionLabelForm.vue","webpack:///nextcloud/apps/files_versions/src/components/VersionLabelForm.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files_versions/src/components/VersionLabelForm.vue?8728","webpack://nextcloud/./apps/files_versions/src/components/VersionLabelForm.vue?dbea","webpack:///nextcloud/apps/files_versions/src/views/VersionTab.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_versions/src/views/VersionTab.vue","webpack:///nextcloud/apps/files_versions/src/utils/versions.ts","webpack:///nextcloud/apps/files_versions/src/utils/davRequest.js","webpack://nextcloud/./apps/files_versions/src/views/VersionTab.vue?74ba","webpack://nextcloud/./apps/files_versions/src/views/VersionTab.vue?d7ee","webpack://nextcloud/./apps/files_versions/src/views/VersionTab.vue?4309","webpack:///nextcloud/apps/files_versions/src/files_versions_tab.js","webpack:///nextcloud/apps/files_versions/src/views/VersionTab.vue?vue&type=style&index=0&id=6ab9ea41&prod&lang=scss","webpack:///nextcloud/apps/files_versions/src/components/VersionLabelForm.vue?vue&type=style&index=0&id=58311f0c&prod&scoped=true&lang=scss","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.version[data-v-16623a3e]{display:flex;flex-direction:row}.version__info[data-v-16623a3e]{display:flex;flex-direction:row;align-items:center;gap:.5rem;color:var(--color-main-text);font-weight:500}.version__info__label[data-v-16623a3e]{font-weight:700;overflow:hidden;text-overflow:ellipsis}.version__info__date[data-v-16623a3e]{overflow:hidden;text-overflow:ellipsis}.version__info__subline[data-v-16623a3e]{color:var(--color-text-maxcontrast)}.version__image[data-v-16623a3e]{width:3rem;height:3rem;border:1px solid var(--color-border);border-radius:var(--border-radius-large);display:flex;justify-content:center;color:var(--color-text-light)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_versions/src/components/Version.vue\"],\"names\":[],\"mappings\":\"AACA,0BACC,YAAA,CACA,kBAAA,CAEA,gCACC,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,SAAA,CACA,4BAAA,CACA,eAAA,CAEA,uCACC,eAAA,CAEA,eAAA,CACA,sBAAA,CAGD,sCAEC,eAAA,CACA,sBAAA,CAGD,yCACC,mCAAA,CAIF,iCACC,UAAA,CACA,WAAA,CACA,oCAAA,CACA,wCAAA,CAGA,YAAA,CACA,sBAAA,CACA,6BAAA\",\"sourcesContent\":[\"\\n.version {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\n\\t&__info {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\talign-items: center;\\n\\t\\tgap: 0.5rem;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tfont-weight: 500;\\n\\n\\t\\t&__label {\\n\\t\\t\\tfont-weight: 700;\\n\\t\\t\\t// Fix overflow on narrow screens\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__date {\\n\\t\\t\\t// Fix overflow on narrow screens\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__subline {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast)\\n\\t\\t}\\n\\t}\\n\\n\\t&__image {\\n\\t\\twidth: 3rem;\\n\\t\\theight: 3rem;\\n\\t\\tborder: 1px solid var(--color-border);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\n\\t\\t// Useful to display no preview icon.\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\tcolor: var(--color-text-light);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.vs-container[data-v-11dbbae6]{overflow-y:scroll;height:100%}.vs-rows-container[data-v-11dbbae6]{box-sizing:border-box;will-change:scroll-position,padding;contain:layout paint style}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_versions/src/components/VirtualScrolling.vue\"],\"names\":[],\"mappings\":\"AACA,+BACC,iBAAA,CACA,WAAA,CAGD,oCACC,qBAAA,CACA,mCAAA,CACA,0BAAA\",\"sourcesContent\":[\"\\n.vs-container {\\n\\toverflow-y: scroll;\\n\\theight: 100%;\\n}\\n\\n.vs-rows-container {\\n\\tbox-sizing: border-box;\\n\\twill-change: scroll-position, padding;\\n\\tcontain: layout paint style;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * @copyright 2022 Louis Chemineau <mlouis@chmn.me>\n *\n * @author Louis Chemineau <mlouis@chmn.me>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { createClient } from 'webdav'\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\n\n// init webdav client\nconst rootPath = 'dav'\nconst remote = generateRemoteUrl(rootPath)\nconst client = createClient(remote)\n\n// set CSRF token header\nconst setHeaders = (token) => {\n client.setHeaders({\n // Add this so the server knows it is an request from the browser\n 'X-Requested-With': 'XMLHttpRequest',\n // Inject user auth\n requesttoken: token ?? '',\n })\n}\n\n// refresh headers when request token changes\nonRequestTokenUpdate(setHeaders)\nsetHeaders(getRequestToken())\n\nexport default client","/**\n * @copyright 2022 Louis Chemineau <mlouis@chmn.me>\n *\n * @author Louis Chemineau <mlouis@chmn.me>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files_version')\n\t.detectUser()\n\t.build()\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcListItem',{staticClass:\"version\",attrs:{\"force-display-actions\":true,\"data-files-versions-version\":_vm.version.fileVersion},on:{\"click\":_vm.click},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(!(_vm.loadPreview || _vm.previewLoaded))?_c('div',{staticClass:\"version__image\"}):((_vm.isCurrent || _vm.version.hasPreview) && !_vm.previewErrored)?_c('img',{staticClass:\"version__image\",attrs:{\"src\":_vm.version.previewUrl,\"alt\":\"\",\"decoding\":\"async\",\"fetchpriority\":\"low\",\"loading\":\"lazy\"},on:{\"load\":function($event){_vm.previewLoaded = true},\"error\":function($event){_vm.previewErrored = true}}}):_c('div',{staticClass:\"version__image\"},[_c('ImageOffOutline',{attrs:{\"size\":20}})],1)]},proxy:true},{key:\"name\",fn:function(){return [_c('div',{staticClass:\"version__info\"},[(_vm.versionLabel)?_c('div',{staticClass:\"version__info__label\",attrs:{\"data-cy-files-version-label\":\"\",\"title\":_vm.versionLabel}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.versionLabel)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.versionAuthor)?_c('div',{staticClass:\"version__info\",attrs:{\"data-cy-files-version-author-name\":\"\"}},[(_vm.versionLabel)?_c('span',[_vm._v(\"•\")]):_vm._e(),_vm._v(\" \"),_c('NcAvatar',{staticClass:\"avatar\",attrs:{\"user\":_vm.version.author,\"size\":20,\"disable-menu\":\"\",\"disable-tooltip\":\"\",\"show-user-status\":false}}),_vm._v(\" \"),_c('div',[_vm._v(_vm._s(_vm.versionAuthor))])],1):_vm._e()])]},proxy:true},{key:\"subname\",fn:function(){return [_c('div',{staticClass:\"version__info version__info__subline\"},[_c('NcDateTime',{staticClass:\"version__info__date\",attrs:{\"relative-time\":\"short\",\"timestamp\":_vm.version.mtime}}),_vm._v(\" \"),_c('span',[_vm._v(\"•\")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.humanReadableSize))])],1)]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.enableLabeling && _vm.hasUpdatePermissions)?_c('NcActionButton',{attrs:{\"data-cy-files-versions-version-action\":\"label\",\"close-after-click\":true},on:{\"click\":_vm.labelUpdate},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":22}})]},proxy:true}],null,false,3072546167)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.version.label === '' ? _vm.t('files_versions', 'Name this version') : _vm.t('files_versions', 'Edit version name'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.isCurrent && _vm.canView && _vm.canCompare)?_c('NcActionButton',{attrs:{\"data-cy-files-versions-version-action\":\"compare\",\"close-after-click\":true},on:{\"click\":_vm.compareVersion},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('FileCompare',{attrs:{\"size\":22}})]},proxy:true}],null,false,1958207595)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Compare to current version'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.isCurrent && _vm.hasUpdatePermissions)?_c('NcActionButton',{attrs:{\"data-cy-files-versions-version-action\":\"restore\",\"close-after-click\":true},on:{\"click\":_vm.restoreVersion},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('BackupRestore',{attrs:{\"size\":22}})]},proxy:true}],null,false,2239038444)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Restore version'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.isDownloadable)?_c('NcActionLink',{attrs:{\"data-cy-files-versions-version-action\":\"download\",\"href\":_vm.downloadURL,\"close-after-click\":true,\"download\":_vm.downloadURL},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Download',{attrs:{\"size\":22}})]},proxy:true}],null,false,927269758)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Download version'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.isCurrent && _vm.enableDeletion && _vm.hasDeletePermissions)?_c('NcActionButton',{attrs:{\"data-cy-files-versions-version-action\":\"delete\",\"close-after-click\":true},on:{\"click\":_vm.deleteVersion},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":22}})]},proxy:true}],null,false,2429175571)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Delete version'))+\"\\n\\t\\t\")]):_vm._e()]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon backup-restore-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"BackupRestoreIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./BackupRestore.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./BackupRestore.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BackupRestore.vue?vue&type=template&id=4ae28ccb\"\nimport script from \"./BackupRestore.vue?vue&type=script&lang=js\"\nexport * from \"./BackupRestore.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon backup-restore-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"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\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon download-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"DownloadIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Download.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Download.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Download.vue?vue&type=template&id=183a1228\"\nimport script from \"./Download.vue?vue&type=script&lang=js\"\nexport * from \"./Download.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon download-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileCompare.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileCompare.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon file-compare-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FileCompareIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./FileCompare.vue?vue&type=template&id=af361756\"\nimport script from \"./FileCompare.vue?vue&type=script&lang=js\"\nexport * from \"./FileCompare.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon file-compare-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"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\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageOffOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageOffOutline.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon image-off-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ImageOffOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./ImageOffOutline.vue?vue&type=template&id=fdaa4406\"\nimport script from \"./ImageOffOutline.vue?vue&type=script&lang=js\"\nexport * from \"./ImageOffOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon image-off-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"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\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=style&index=0&id=16623a3e&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=style&index=0&id=16623a3e&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Version.vue?vue&type=template&id=16623a3e&scoped=true\"\nimport script from \"./Version.vue?vue&type=script&lang=ts\"\nexport * from \"./Version.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Version.vue?vue&type=style&index=0&id=16623a3e&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"16623a3e\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualScrolling.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualScrolling.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!_vm.useWindow && _vm.containerElement === null)?_c('div',{ref:\"container\",staticClass:\"vs-container\"},[_c('div',{ref:\"rowsContainer\",staticClass:\"vs-rows-container\",style:(_vm.rowsContainerStyle)},[_vm._t(\"default\",null,{\"visibleSections\":_vm.visibleSections}),_vm._v(\" \"),_vm._t(\"loader\")],2)]):_c('div',{ref:\"rowsContainer\",staticClass:\"vs-rows-container\",style:(_vm.rowsContainerStyle)},[_vm._t(\"default\",null,{\"visibleSections\":_vm.visibleSections}),_vm._v(\" \"),_vm._t(\"loader\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualScrolling.vue?vue&type=style&index=0&id=11dbbae6&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualScrolling.vue?vue&type=style&index=0&id=11dbbae6&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VirtualScrolling.vue?vue&type=template&id=11dbbae6&scoped=true\"\nimport script from \"./VirtualScrolling.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualScrolling.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VirtualScrolling.vue?vue&type=style&index=0&id=11dbbae6&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11dbbae6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form',{staticClass:\"version-label-modal\",on:{\"submit\":function($event){$event.preventDefault();return _vm.setVersionLabel(_vm.innerVersionLabel)}}},[_c('label',[_c('div',{staticClass:\"version-label-modal__title\"},[_vm._v(_vm._s(_vm.t('files_versions', 'Version name')))]),_vm._v(\" \"),_c('NcTextField',{ref:\"labelInput\",attrs:{\"value\":_vm.innerVersionLabel,\"placeholder\":_vm.t('files_versions', 'Version name'),\"label-outside\":true},on:{\"update:value\":function($event){_vm.innerVersionLabel=$event}}})],1),_vm._v(\" \"),_c('div',{staticClass:\"version-label-modal__info\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_versions', 'Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"version-label-modal__actions\"},[_c('NcButton',{attrs:{\"disabled\":_vm.innerVersionLabel.trim().length === 0},on:{\"click\":function($event){return _vm.setVersionLabel('')}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Remove version name'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"primary\",\"native-type\":\"submit\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Check')]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Save version name'))+\"\\n\\t\\t\")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionLabelForm.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionLabelForm.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionLabelForm.vue?vue&type=style&index=0&id=58311f0c&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionLabelForm.vue?vue&type=style&index=0&id=58311f0c&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VersionLabelForm.vue?vue&type=template&id=58311f0c&scoped=true\"\nimport script from \"./VersionLabelForm.vue?vue&type=script&lang=ts\"\nexport * from \"./VersionLabelForm.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VersionLabelForm.vue?vue&type=style&index=0&id=58311f0c&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"58311f0c\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionTab.vue?vue&type=script&lang=js\"","<!--\n - @copyright 2022 Carl Schwan <carl@carlschwan.eu>\n - @license AGPL-3.0-or-later\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -->\n<template>\n\t<div class=\"versions-tab__container\">\n\t\t<VirtualScrolling v-slot=\"{ visibleSections }\"\n\t\t\t:sections=\"sections\"\n\t\t\t:header-height=\"0\">\n\t\t\t<ul :aria-label=\"t('files_versions', 'File versions')\" data-files-versions-versions-list>\n\t\t\t\t<template v-if=\"visibleSections.length === 1\">\n\t\t\t\t\t<Version v-for=\"(row) of visibleSections[0].rows\"\n\t\t\t\t\t\t:key=\"row.items[0].mtime\"\n\t\t\t\t\t\t:can-view=\"canView\"\n\t\t\t\t\t\t:can-compare=\"canCompare\"\n\t\t\t\t\t\t:load-preview=\"isActive\"\n\t\t\t\t\t\t:version=\"row.items[0]\"\n\t\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t\t:is-current=\"row.items[0].mtime === fileInfo.mtime\"\n\t\t\t\t\t\t:is-first-version=\"row.items[0].mtime === initialVersionMtime\"\n\t\t\t\t\t\t@click=\"openVersion\"\n\t\t\t\t\t\t@compare=\"compareVersion\"\n\t\t\t\t\t\t@restore=\"handleRestore\"\n\t\t\t\t\t\t@label-update-request=\"handleLabelUpdateRequest(row.items[0])\"\n\t\t\t\t\t\t@delete=\"handleDelete\" />\n\t\t\t\t</template>\n\t\t\t</ul>\n\t\t\t<NcLoadingIcon v-if=\"loading\" slot=\"loader\" class=\"files-list-viewer__loader\" />\n\t\t</VirtualScrolling>\n\t\t<NcModal v-if=\"showVersionLabelForm\"\n\t\t\t:title=\"t('files_versions', 'Name this version')\"\n\t\t\t@close=\"showVersionLabelForm = false\">\n\t\t\t<VersionLabelForm :version-label=\"editedVersion.label\" @label-update=\"handleLabelUpdate\" />\n\t\t</NcModal>\n\t</div>\n</template>\n\n<script>\nimport path from 'path'\n\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport isMobile from '@nextcloud/vue/dist/Mixins/isMobile.js'\nimport { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'\nimport NcModal from '@nextcloud/vue/dist/Components/NcModal.js'\n\nimport { fetchVersions, deleteVersion, restoreVersion, setVersionLabel } from '../utils/versions.ts'\nimport Version from '../components/Version.vue'\nimport VirtualScrolling from '../components/VirtualScrolling.vue'\nimport VersionLabelForm from '../components/VersionLabelForm.vue'\n\nexport default {\n\tname: 'VersionTab',\n\tcomponents: {\n\t\tVersion,\n\t\tVirtualScrolling,\n\t\tVersionLabelForm,\n\t\tNcLoadingIcon,\n\t\tNcModal,\n\t},\n\tmixins: [\n\t\tisMobile,\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tfileInfo: null,\n\t\t\tisActive: false,\n\t\t\t/** @type {import('../utils/versions.ts').Version[]} */\n\t\t\tversions: [],\n\t\t\tloading: false,\n\t\t\tshowVersionLabelForm: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tsections() {\n\t\t\tconst rows = this.orderedVersions.map(version => ({ key: version.mtime, height: 68, sectionKey: 'versions', items: [version] }))\n\t\t\treturn [{ key: 'versions', rows, height: 68 * this.orderedVersions.length }]\n\t\t},\n\n\t\t/**\n\t\t * Order versions by mtime.\n\t\t * Put the current version at the top.\n\t\t *\n\t\t * @return {import('../utils/versions.ts').Version[]}\n\t\t */\n\t\torderedVersions() {\n\t\t\treturn [...this.versions].sort((a, b) => {\n\t\t\t\tif (a.mtime === this.fileInfo.mtime) {\n\t\t\t\t\treturn -1\n\t\t\t\t} else if (b.mtime === this.fileInfo.mtime) {\n\t\t\t\t\treturn 1\n\t\t\t\t} else {\n\t\t\t\t\treturn b.mtime - a.mtime\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Return the mtime of the first version to display \"Initial version\" label\n\t\t *\n\t\t * @return {number}\n\t\t */\n\t\tinitialVersionMtime() {\n\t\t\treturn this.versions\n\t\t\t\t.map(version => version.mtime)\n\t\t\t\t.reduce((a, b) => Math.min(a, b))\n\t\t},\n\n\t\tviewerFileInfo() {\n\t\t\t// We need to remap bitmask to dav permissions as the file info we have is converted through client.js\n\t\t\tlet davPermissions = ''\n\t\t\tif (this.fileInfo.permissions & 1) {\n\t\t\t\tdavPermissions += 'R'\n\t\t\t}\n\t\t\tif (this.fileInfo.permissions & 2) {\n\t\t\t\tdavPermissions += 'W'\n\t\t\t}\n\t\t\tif (this.fileInfo.permissions & 8) {\n\t\t\t\tdavPermissions += 'D'\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...this.fileInfo,\n\t\t\t\tmime: this.fileInfo.mimetype,\n\t\t\t\tbasename: this.fileInfo.name,\n\t\t\t\tfilename: this.fileInfo.path + '/' + this.fileInfo.name,\n\t\t\t\tpermissions: davPermissions,\n\t\t\t\tfileid: this.fileInfo.id,\n\t\t\t}\n\t\t},\n\n\t\t/** @return {boolean} */\n\t\tcanView() {\n\t\t\treturn window.OCA.Viewer?.mimetypesCompare?.includes(this.fileInfo.mimetype)\n\t\t},\n\n\t\tcanCompare() {\n\t\t\treturn !this.isMobile\n\t\t},\n\t},\n\tmounted() {\n\t\tsubscribe('files_versions:restore:restored', this.fetchVersions)\n\t},\n\tbeforeUnmount() {\n\t\tunsubscribe('files_versions:restore:restored', this.fetchVersions)\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Update current fileInfo and fetch new data\n\t\t *\n\t\t * @param {object} fileInfo the current file FileInfo\n\t\t */\n\t\tasync update(fileInfo) {\n\t\t\tthis.fileInfo = fileInfo\n\t\t\tthis.resetState()\n\t\t\tthis.fetchVersions()\n\t\t},\n\n\t\t/**\n\t\t * @param {boolean} isActive whether the tab is active\n\t\t */\n\t\tasync setIsActive(isActive) {\n\t\t\tthis.isActive = isActive\n\t\t},\n\n\t\t/**\n\t\t * Get the existing versions infos\n\t\t */\n\t\tasync fetchVersions() {\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\t\t\t\tthis.versions = await fetchVersions(this.fileInfo)\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Handle restored event from Version.vue\n\t\t *\n\t\t * @param {import('../utils/versions.ts').Version} version\n\t\t */\n\t\tasync handleRestore(version) {\n\t\t\t// Update local copy of fileInfo as rendering depends on it.\n\t\t\tconst oldFileInfo = this.fileInfo\n\t\t\tthis.fileInfo = {\n\t\t\t\t...this.fileInfo,\n\t\t\t\tsize: version.size,\n\t\t\t\tmtime: version.mtime,\n\t\t\t}\n\n\t\t\tconst restoreStartedEventState = {\n\t\t\t\tpreventDefault: false,\n\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\tversion,\n\t\t\t}\n\t\t\temit('files_versions:restore:requested', restoreStartedEventState)\n\t\t\tif (restoreStartedEventState.preventDefault) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tawait restoreVersion(version)\n\t\t\t\tif (version.label !== '') {\n\t\t\t\t\tshowSuccess(t('files_versions', `${version.label} restored`))\n\t\t\t\t} else if (version.mtime === this.initialVersionMtime) {\n\t\t\t\t\tshowSuccess(t('files_versions', 'Initial version restored'))\n\t\t\t\t} else {\n\t\t\t\t\tshowSuccess(t('files_versions', 'Version restored'))\n\t\t\t\t}\n\t\t\t\temit('files_versions:restore:restored', version)\n\t\t\t} catch (exception) {\n\t\t\t\tthis.fileInfo = oldFileInfo\n\t\t\t\tshowError(t('files_versions', 'Could not restore version'))\n\t\t\t\temit('files_versions:restore:failed', version)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Handle label-updated event from Version.vue\n\t\t * @param {import('../utils/versions.ts').Version} version\n\t\t */\n\t\thandleLabelUpdateRequest(version) {\n\t\t\tthis.showVersionLabelForm = true\n\t\t\tthis.editedVersion = version\n\t\t},\n\n\t\t/**\n\t\t * Handle label-updated event from Version.vue\n\t\t * @param {string} newLabel\n\t\t */\n\t\tasync handleLabelUpdate(newLabel) {\n\t\t\tconst oldLabel = this.editedVersion.label\n\t\t\tthis.editedVersion.label = newLabel\n\t\t\tthis.showVersionLabelForm = false\n\n\t\t\ttry {\n\t\t\t\tawait setVersionLabel(this.editedVersion, newLabel)\n\t\t\t\tthis.editedVersion = null\n\t\t\t} catch (exception) {\n\t\t\t\tthis.editedVersion.label = oldLabel\n\t\t\t\tshowError(this.t('files_versions', 'Could not set version label'))\n\t\t\t\tlogger.error('Could not set version label', { exception })\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Handle deleted event from Version.vue\n\t\t *\n\t\t * @param {import('../utils/versions.ts').Version} version\n\t\t * @param {string} newName\n\t\t */\n\t\tasync handleDelete(version) {\n\t\t\tconst index = this.versions.indexOf(version)\n\t\t\tthis.versions.splice(index, 1)\n\n\t\t\ttry {\n\t\t\t\tawait deleteVersion(version)\n\t\t\t} catch (exception) {\n\t\t\t\tthis.versions.push(version)\n\t\t\t\tshowError(t('files_versions', 'Could not delete version'))\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Reset the current view to its default state\n\t\t */\n\t\tresetState() {\n\t\t\tthis.$set(this, 'versions', [])\n\t\t},\n\n\t\topenVersion({ version }) {\n\t\t\t// Open current file view instead of read only\n\t\t\tif (version.mtime === this.fileInfo.mtime) {\n\t\t\t\tOCA.Viewer.open({ fileInfo: this.viewerFileInfo })\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Versions previews are too small for our use case, so we override hasPreview and previewUrl\n\t\t\t// which makes the viewer render the original file.\n\t\t\t// We also point to the original filename if the version is the current one.\n\t\t\tconst versions = this.versions.map(version => ({\n\t\t\t\t...version,\n\t\t\t\tfilename: version.mtime === this.fileInfo.mtime ? path.join('files', getCurrentUser()?.uid ?? '', this.fileInfo.path, this.fileInfo.name) : version.filename,\n\t\t\t\thasPreview: false,\n\t\t\t\tpreviewUrl: undefined,\n\t\t\t}))\n\n\t\t\tOCA.Viewer.open({\n\t\t\t\tfileInfo: versions.find(v => v.source === version.source),\n\t\t\t\tenableSidebar: false,\n\t\t\t})\n\t\t},\n\n\t\tcompareVersion({ version }) {\n\t\t\tconst versions = this.versions.map(version => ({ ...version, hasPreview: false, previewUrl: undefined }))\n\n\t\t\tOCA.Viewer.compare(this.viewerFileInfo, versions.find(v => v.source === version.source))\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\">\n.versions-tab__container {\n\theight: 100%;\n}\n</style>\n","import { generateRemoteUrl, generateUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { joinPaths, encodePath } from '@nextcloud/paths';\nimport moment from '@nextcloud/moment';\nimport client from '../utils/davClient.js';\nimport davRequest from '../utils/davRequest.js';\nimport logger from '../utils/logger.js';\nexport async function fetchVersions(fileInfo) {\n const path = `/versions/${getCurrentUser()?.uid}/versions/${fileInfo.id}`;\n try {\n const response = await client.getDirectoryContents(path, {\n data: davRequest,\n details: true,\n });\n return response.data\n // Filter out root\n .filter(({ mime }) => mime !== '')\n .map(version => formatVersion(version, fileInfo));\n }\n catch (exception) {\n logger.error('Could not fetch version', { exception });\n throw exception;\n }\n}\n/**\n * Restore the given version\n */\nexport async function restoreVersion(version) {\n try {\n logger.debug('Restoring version', { url: version.url });\n await client.moveFile(`/versions/${getCurrentUser()?.uid}/versions/${version.fileId}/${version.fileVersion}`, `/versions/${getCurrentUser()?.uid}/restore/target`);\n }\n catch (exception) {\n logger.error('Could not restore version', { exception });\n throw exception;\n }\n}\n/**\n * Format version\n */\nfunction formatVersion(version, fileInfo) {\n const mtime = moment(version.lastmod).unix() * 1000;\n let previewUrl = '';\n if (mtime === fileInfo.mtime) { // Version is the current one\n previewUrl = generateUrl('/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0', {\n fileId: fileInfo.id,\n fileEtag: fileInfo.etag,\n });\n }\n else {\n previewUrl = generateUrl('/apps/files_versions/preview?file={file}&version={fileVersion}', {\n file: joinPaths(fileInfo.path, fileInfo.name),\n fileVersion: version.basename,\n });\n }\n return {\n fileId: fileInfo.id,\n // If version-label is defined make sure it is a string (prevent issue if the label is a number an PHP returns a number then)\n label: version.props['version-label'] && String(version.props['version-label']),\n author: version.props['version-author'] ?? null,\n filename: version.filename,\n basename: moment(mtime).format('LLL'),\n mime: version.mime,\n etag: `${version.props.getetag}`,\n size: version.size,\n type: version.type,\n mtime,\n permissions: 'R',\n hasPreview: version.props['has-preview'] === 1,\n previewUrl,\n url: joinPaths('/remote.php/dav', version.filename),\n source: generateRemoteUrl('dav') + encodePath(version.filename),\n fileVersion: version.basename,\n };\n}\nexport async function setVersionLabel(version, newLabel) {\n return await client.customRequest(version.filename, {\n method: 'PROPPATCH',\n data: `<?xml version=\"1.0\"?>\n\t\t\t\t\t<d:propertyupdate xmlns:d=\"DAV:\"\n\t\t\t\t\t\txmlns:oc=\"http://owncloud.org/ns\"\n\t\t\t\t\t\txmlns:nc=\"http://nextcloud.org/ns\"\n\t\t\t\t\t\txmlns:ocs=\"http://open-collaboration-services.org/ns\">\n\t\t\t\t\t<d:set>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<nc:version-label>${newLabel}</nc:version-label>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t</d:set>\n\t\t\t\t\t</d:propertyupdate>`,\n });\n}\nexport async function deleteVersion(version) {\n await client.deleteFile(version.filename);\n}\n","/**\n * @copyright Copyright (c) 2019 Louis Chmn <louis@chmn.me>\n *\n * @author Louis Chmn <louis@chmn.me>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default `<?xml version=\"1.0\"?>\n<d:propfind xmlns:d=\"DAV:\"\n\txmlns:oc=\"http://owncloud.org/ns\"\n\txmlns:nc=\"http://nextcloud.org/ns\"\n\txmlns:ocs=\"http://open-collaboration-services.org/ns\">\n\t<d:prop>\n\t\t<d:getcontentlength />\n\t\t<d:getcontenttype />\n\t\t<d:getlastmodified />\n\t\t<d:getetag />\n\t\t<nc:version-label />\n\t\t<nc:version-author />\n\t\t<nc:has-preview />\n\t</d:prop>\n</d:propfind>`\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionTab.vue?vue&type=style&index=0&id=6ab9ea41&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionTab.vue?vue&type=style&index=0&id=6ab9ea41&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VersionTab.vue?vue&type=template&id=6ab9ea41\"\nimport script from \"./VersionTab.vue?vue&type=script&lang=js\"\nexport * from \"./VersionTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./VersionTab.vue?vue&type=style&index=0&id=6ab9ea41&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"versions-tab__container\"},[_c('VirtualScrolling',{attrs:{\"sections\":_vm.sections,\"header-height\":0},scopedSlots:_vm._u([{key:\"default\",fn:function({ visibleSections }){return [_c('ul',{attrs:{\"aria-label\":_vm.t('files_versions', 'File versions'),\"data-files-versions-versions-list\":\"\"}},[(visibleSections.length === 1)?_vm._l((visibleSections[0].rows),function(row){return _c('Version',{key:row.items[0].mtime,attrs:{\"can-view\":_vm.canView,\"can-compare\":_vm.canCompare,\"load-preview\":_vm.isActive,\"version\":row.items[0],\"file-info\":_vm.fileInfo,\"is-current\":row.items[0].mtime === _vm.fileInfo.mtime,\"is-first-version\":row.items[0].mtime === _vm.initialVersionMtime},on:{\"click\":_vm.openVersion,\"compare\":_vm.compareVersion,\"restore\":_vm.handleRestore,\"label-update-request\":function($event){return _vm.handleLabelUpdateRequest(row.items[0])},\"delete\":_vm.handleDelete}})}):_vm._e()],2),_vm._v(\" \"),(_vm.loading)?_c('NcLoadingIcon',{staticClass:\"files-list-viewer__loader\",attrs:{\"slot\":\"loader\"},slot:\"loader\"}):_vm._e()]}}])}),_vm._v(\" \"),(_vm.showVersionLabelForm)?_c('NcModal',{attrs:{\"title\":_vm.t('files_versions', 'Name this version')},on:{\"close\":function($event){_vm.showVersionLabelForm = false}}},[_c('VersionLabelForm',{attrs:{\"version-label\":_vm.editedVersion.label},on:{\"label-update\":_vm.handleLabelUpdate}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2022 Carl Schwan <carl@carlschwan.eu>\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n'\n\nimport VersionTab from './views/VersionTab.vue'\nimport VTooltip from 'v-tooltip'\n// eslint-disable-next-line n/no-missing-import, import/no-unresolved\nimport BackupRestore from '@mdi/svg/svg/backup-restore.svg?raw'\n\nVue.prototype.t = t\nVue.prototype.n = n\n\nVue.use(VTooltip)\n\n// Init Sharing tab component\nconst View = Vue.extend(VersionTab)\nlet TabInstance = null\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\tif (OCA.Files?.Sidebar === undefined) {\n\t\treturn\n\t}\n\n\tOCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab({\n\t\tid: 'version_vue',\n\t\tname: t('files_versions', 'Versions'),\n\t\ticonSvg: BackupRestore,\n\n\t\tasync mount(el, fileInfo, context) {\n\t\t\tif (TabInstance) {\n\t\t\t\tTabInstance.$destroy()\n\t\t\t}\n\t\t\tTabInstance = new View({\n\t\t\t\t// Better integration with vue parent component\n\t\t\t\tparent: context,\n\t\t\t})\n\t\t\t// Only mount after we have all the info we need\n\t\t\tawait TabInstance.update(fileInfo)\n\t\t\tTabInstance.$mount(el)\n\t\t},\n\t\tupdate(fileInfo) {\n\t\t\tTabInstance.update(fileInfo)\n\t\t},\n\t\tsetIsActive(isActive) {\n\t\t\tif (!TabInstance) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tTabInstance.setIsActive(isActive)\n\t\t},\n\t\tdestroy() {\n\t\t\tTabInstance.$destroy()\n\t\t\tTabInstance = null\n\t\t},\n\t\tenabled(fileInfo) {\n\t\t\treturn !(fileInfo?.isDirectory() ?? true)\n\t\t},\n\t}))\n})\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.versions-tab__container{height:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_versions/src/views/VersionTab.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,WAAA\",\"sourcesContent\":[\"\\n.versions-tab__container {\\n\\theight: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.version-label-modal[data-v-58311f0c]{display:flex;justify-content:space-between;flex-direction:column;height:250px;padding:16px}.version-label-modal__title[data-v-58311f0c]{margin-bottom:12px;font-weight:600}.version-label-modal__info[data-v-58311f0c]{margin-top:12px;color:var(--color-text-maxcontrast)}.version-label-modal__actions[data-v-58311f0c]{display:flex;justify-content:space-between;margin-top:64px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_versions/src/components/VersionLabelForm.vue\"],\"names\":[],\"mappings\":\"AACA,sCACC,YAAA,CACA,6BAAA,CACA,qBAAA,CACA,YAAA,CACA,YAAA,CAEA,6CACC,kBAAA,CACA,eAAA,CAGD,4CACC,eAAA,CACA,mCAAA,CAGD,+CACC,YAAA,CACA,6BAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.version-label-modal {\\n\\tdisplay: flex;\\n\\tjustify-content: space-between;\\n\\tflex-direction: column;\\n\\theight: 250px;\\n\\tpadding: 16px;\\n\\n\\t&__title {\\n\\t\\tmargin-bottom: 12px;\\n\\t\\tfont-weight: 600;\\n\\t}\\n\\n\\t&__info {\\n\\t\\tmargin-top: 12px;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: space-between;\\n\\t\\tmargin-top: 64px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"2441\":\"bd6d3dc836e836cd4795\",\"5775\":\"bdb5a44b157eaff757ea\",\"5862\":\"18c97d281a8207f0ce8d\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2250;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2250: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(25584)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","___CSS_LOADER_EXPORT___","push","module","id","remote","generateRemoteUrl","client","createClient","setHeaders","token","requesttoken","onRequestTokenUpdate","getRequestToken","getLoggerBuilder","setApp","detectUser","build","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","hasPermission","permissions","permission","defineComponent","components","NcActionLink","NcActionButton","NcAvatar","NcDateTime","NcListItem","BackupRestore","Download","FileCompare","Pencil","Delete","ImageOffOutline","directives","tooltip","Tooltip","version","Object","required","fileInfo","isCurrent","Boolean","isFirstVersion","loadPreview","canView","canCompare","data","previewLoaded","previewErrored","capabilities","loadState","files","version_labeling","version_deletion","versionAuthor","computed","humanReadableSize","formatFileSize","versionLabel","label","t","downloadURL","getRootUrl","joinPaths","path","url","enableLabeling","enableDeletion","hasDeletePermissions","Permission","DELETE","hasUpdatePermissions","UPDATE","isDownloadable","READ","mountType","downloadAttribute","shareAttributes","find","attribute","scope","key","enabled","created","fetchDisplayName","methods","labelUpdate","restoreVersion","deleteVersion","$nextTick","author","getCurrentUser","uid","axios","post","generateUrl","users","error","logger","warn","click","window","location","href","compareVersion","Error","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_setupProxy","fileVersion","scopedSlots","_u","fn","hasPreview","previewUrl","proxy","mtime","sections","Array","containerElement","HTMLElement","useWindow","headerHeight","renderDistance","bottomBufferRatio","scrollToKey","scrollPosition","containerHeight","rowsContainerHeight","resizeObserver","visibleSections","debug","containerTop","containerBottom","currentRowTop","currentRowBottom","map","section","rows","reduce","visibleRows","row","height","distance","filter","length","visibleItems","flatMap","_ref","_ref2","items","rowIdToKeyMap","_rowIdToKeyMap","forEach","item","usedTokens","_ref3","undefined","unusedTokens","values","includes","_ref4","pop","Math","random","toString","substr","finalMapping","_ref5","totalHeight","sectionHeight","paddingTop","sectionKey","rowsContainerStyle","isNearBottom","buffer","container","$refs","watch","value","currentRowTopDistanceFromTop","scrollTo","top","behavior","beforeCreate","mounted","ResizeObserver","entries","entry","cr","contentRect","target","classList","contains","addEventListener","updateContainerSize","passive","innerHeight","observe","rowsContainer","updateScrollPosition","beforeDestroy","removeEventListener","disconnect","_onScrollHandle","requestAnimationFrame","scrollY","scrollTop","ref","style","_t","NcButton","NcTextField","Check","innerVersionLabel","labelInput","$el","getElementsByTagName","focus","setVersionLabel","translate","Version","VirtualScrolling","VersionLabelForm","preventDefault","trim","NcLoadingIcon","NcModal","mixins","isMobile","isActive","versions","loading","showVersionLabelForm","orderedVersions","sort","a","b","initialVersionMtime","min","viewerFileInfo","davPermissions","mime","mimetype","basename","filename","fileid","OCA","Viewer","mimetypesCompare","subscribe","fetchVersions","beforeUnmount","unsubscribe","update","resetState","setIsActive","async","getDirectoryContents","details","moment","lastmod","unix","fileId","fileEtag","etag","file","format","getetag","source","encodePath","formatVersion","exception","handleRestore","oldFileInfo","restoreStartedEventState","emit","moveFile","showSuccess","showError","handleLabelUpdateRequest","editedVersion","handleLabelUpdate","newLabel","oldLabel","customRequest","method","handleDelete","index","indexOf","splice","deleteFile","$set","openVersion","open","v","enableSidebar","compare","_l","slot","Vue","prototype","n","use","VTooltip","View","extend","VersionTab","TabInstance","Files","Sidebar","registerTab","Tab","iconSvg","mount","el","context","$destroy","parent","$mount","destroy","isDirectory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","keys","every","r","getter","__esModule","d","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","promises","u","g","globalThis","Function","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","document","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","currentScript","tagName","toUpperCase","test","replace","p","baseURI","self","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"files_versions-files_versions.js?v=5c66083007362591fb2b","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files_versions/src/components/VirtualScrolling.vue?vue&type=style&index=0&id=11dbbae6&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files_versions/src/views/VersionTab.vue?vue&type=style&index=0&id=48c0be68&prod&lang=scss","webpack:///nextcloud/apps/files_versions/src/components/VersionLabelForm.vue?vue&type=style&index=0&id=58311f0c&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files_versions/src/utils/davClient.js","webpack:///nextcloud/apps/files_versions/src/utils/logger.js","webpack:///nextcloud/apps/files_versions/src/components/Version.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/BackupRestore.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/BackupRestore.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/BackupRestore.vue?6cf7","webpack:///nextcloud/node_modules/vue-material-design-icons/BackupRestore.vue?vue&type=template&id=4ae28ccb","webpack:///nextcloud/node_modules/vue-material-design-icons/Download.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Download.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Download.vue?b226","webpack:///nextcloud/node_modules/vue-material-design-icons/Download.vue?vue&type=template&id=183a1228","webpack:///nextcloud/node_modules/vue-material-design-icons/FileCompare.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/FileCompare.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/FileCompare.vue?5fdf","webpack:///nextcloud/node_modules/vue-material-design-icons/FileCompare.vue?vue&type=template&id=af361756","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageOffOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageOffOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ImageOffOutline.vue?e0b5","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageOffOutline.vue?vue&type=template&id=fdaa4406","webpack:///nextcloud/apps/files_versions/src/components/Version.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files_versions/src/components/Version.vue?a62a","webpack://nextcloud/./apps/files_versions/src/components/Version.vue?0a31","webpack:///nextcloud/apps/files_versions/src/components/VirtualScrolling.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files_versions/src/components/VirtualScrolling.vue","webpack://nextcloud/./apps/files_versions/src/components/VirtualScrolling.vue?3e31","webpack://nextcloud/./apps/files_versions/src/components/VirtualScrolling.vue?fc23","webpack:///nextcloud/apps/files_versions/src/components/VersionLabelForm.vue","webpack:///nextcloud/apps/files_versions/src/components/VersionLabelForm.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files_versions/src/components/VersionLabelForm.vue?8728","webpack://nextcloud/./apps/files_versions/src/components/VersionLabelForm.vue?dbea","webpack:///nextcloud/apps/files_versions/src/views/VersionTab.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_versions/src/views/VersionTab.vue","webpack:///nextcloud/apps/files_versions/src/utils/versions.ts","webpack:///nextcloud/apps/files_versions/src/utils/davRequest.js","webpack://nextcloud/./apps/files_versions/src/views/VersionTab.vue?b128","webpack://nextcloud/./apps/files_versions/src/views/VersionTab.vue?d7ee","webpack://nextcloud/./apps/files_versions/src/views/VersionTab.vue?4309","webpack:///nextcloud/apps/files_versions/src/files_versions_tab.js","webpack:///nextcloud/apps/files_versions/src/components/Version.vue?vue&type=style&index=0&id=3b76b962&prod&scoped=true&lang=scss","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.vs-container[data-v-11dbbae6]{overflow-y:scroll;height:100%}.vs-rows-container[data-v-11dbbae6]{box-sizing:border-box;will-change:scroll-position,padding;contain:layout paint style}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_versions/src/components/VirtualScrolling.vue\"],\"names\":[],\"mappings\":\"AACA,+BACC,iBAAA,CACA,WAAA,CAGD,oCACC,qBAAA,CACA,mCAAA,CACA,0BAAA\",\"sourcesContent\":[\"\\n.vs-container {\\n\\toverflow-y: scroll;\\n\\theight: 100%;\\n}\\n\\n.vs-rows-container {\\n\\tbox-sizing: border-box;\\n\\twill-change: scroll-position, padding;\\n\\tcontain: layout paint style;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.versions-tab__container{height:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_versions/src/views/VersionTab.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,WAAA\",\"sourcesContent\":[\"\\n.versions-tab__container {\\n\\theight: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.version-label-modal[data-v-58311f0c]{display:flex;justify-content:space-between;flex-direction:column;height:250px;padding:16px}.version-label-modal__title[data-v-58311f0c]{margin-bottom:12px;font-weight:600}.version-label-modal__info[data-v-58311f0c]{margin-top:12px;color:var(--color-text-maxcontrast)}.version-label-modal__actions[data-v-58311f0c]{display:flex;justify-content:space-between;margin-top:64px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_versions/src/components/VersionLabelForm.vue\"],\"names\":[],\"mappings\":\"AACA,sCACC,YAAA,CACA,6BAAA,CACA,qBAAA,CACA,YAAA,CACA,YAAA,CAEA,6CACC,kBAAA,CACA,eAAA,CAGD,4CACC,eAAA,CACA,mCAAA,CAGD,+CACC,YAAA,CACA,6BAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.version-label-modal {\\n\\tdisplay: flex;\\n\\tjustify-content: space-between;\\n\\tflex-direction: column;\\n\\theight: 250px;\\n\\tpadding: 16px;\\n\\n\\t&__title {\\n\\t\\tmargin-bottom: 12px;\\n\\t\\tfont-weight: 600;\\n\\t}\\n\\n\\t&__info {\\n\\t\\tmargin-top: 12px;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: space-between;\\n\\t\\tmargin-top: 64px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * @copyright 2022 Louis Chemineau <mlouis@chmn.me>\n *\n * @author Louis Chemineau <mlouis@chmn.me>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { createClient } from 'webdav'\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\n\n// init webdav client\nconst rootPath = 'dav'\nconst remote = generateRemoteUrl(rootPath)\nconst client = createClient(remote)\n\n// set CSRF token header\nconst setHeaders = (token) => {\n client.setHeaders({\n // Add this so the server knows it is an request from the browser\n 'X-Requested-With': 'XMLHttpRequest',\n // Inject user auth\n requesttoken: token ?? '',\n })\n}\n\n// refresh headers when request token changes\nonRequestTokenUpdate(setHeaders)\nsetHeaders(getRequestToken())\n\nexport default client","/**\n * @copyright 2022 Louis Chemineau <mlouis@chmn.me>\n *\n * @author Louis Chemineau <mlouis@chmn.me>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files_version')\n\t.detectUser()\n\t.build()\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcListItem',{staticClass:\"version\",attrs:{\"force-display-actions\":true,\"data-files-versions-version\":_vm.version.fileVersion},on:{\"click\":_vm.click},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(!(_vm.loadPreview || _vm.previewLoaded))?_c('div',{staticClass:\"version__image\"}):(_vm.version.previewUrl && !_vm.previewErrored)?_c('img',{staticClass:\"version__image\",attrs:{\"src\":_vm.version.previewUrl,\"alt\":\"\",\"decoding\":\"async\",\"fetchpriority\":\"low\",\"loading\":\"lazy\"},on:{\"load\":function($event){_vm.previewLoaded = true},\"error\":function($event){_vm.previewErrored = true}}}):_c('div',{staticClass:\"version__image\"},[_c('ImageOffOutline',{attrs:{\"size\":20}})],1)]},proxy:true},{key:\"name\",fn:function(){return [_c('div',{staticClass:\"version__info\"},[(_vm.versionLabel)?_c('div',{staticClass:\"version__info__label\",attrs:{\"data-cy-files-version-label\":\"\",\"title\":_vm.versionLabel}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.versionLabel)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.versionAuthor)?_c('div',{staticClass:\"version__info\",attrs:{\"data-cy-files-version-author-name\":\"\"}},[(_vm.versionLabel)?_c('span',[_vm._v(\"•\")]):_vm._e(),_vm._v(\" \"),_c('NcAvatar',{staticClass:\"avatar\",attrs:{\"user\":_vm.version.author,\"size\":20,\"disable-menu\":\"\",\"disable-tooltip\":\"\",\"show-user-status\":false}}),_vm._v(\" \"),_c('div',[_vm._v(_vm._s(_vm.versionAuthor))])],1):_vm._e()])]},proxy:true},{key:\"subname\",fn:function(){return [_c('div',{staticClass:\"version__info version__info__subline\"},[_c('NcDateTime',{staticClass:\"version__info__date\",attrs:{\"relative-time\":\"short\",\"timestamp\":_vm.version.mtime}}),_vm._v(\" \"),_c('span',[_vm._v(\"•\")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.humanReadableSize))])],1)]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.enableLabeling && _vm.hasUpdatePermissions)?_c('NcActionButton',{attrs:{\"data-cy-files-versions-version-action\":\"label\",\"close-after-click\":true},on:{\"click\":_vm.labelUpdate},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":22}})]},proxy:true}],null,false,3072546167)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.version.label === '' ? _vm.t('files_versions', 'Name this version') : _vm.t('files_versions', 'Edit version name'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.isCurrent && _vm.canView && _vm.canCompare)?_c('NcActionButton',{attrs:{\"data-cy-files-versions-version-action\":\"compare\",\"close-after-click\":true},on:{\"click\":_vm.compareVersion},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('FileCompare',{attrs:{\"size\":22}})]},proxy:true}],null,false,1958207595)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Compare to current version'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.isCurrent && _vm.hasUpdatePermissions)?_c('NcActionButton',{attrs:{\"data-cy-files-versions-version-action\":\"restore\",\"close-after-click\":true},on:{\"click\":_vm.restoreVersion},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('BackupRestore',{attrs:{\"size\":22}})]},proxy:true}],null,false,2239038444)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Restore version'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.isDownloadable)?_c('NcActionLink',{attrs:{\"data-cy-files-versions-version-action\":\"download\",\"href\":_vm.downloadURL,\"close-after-click\":true,\"download\":_vm.downloadURL},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Download',{attrs:{\"size\":22}})]},proxy:true}],null,false,927269758)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Download version'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.isCurrent && _vm.enableDeletion && _vm.hasDeletePermissions)?_c('NcActionButton',{attrs:{\"data-cy-files-versions-version-action\":\"delete\",\"close-after-click\":true},on:{\"click\":_vm.deleteVersion},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":22}})]},proxy:true}],null,false,2429175571)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Delete version'))+\"\\n\\t\\t\")]):_vm._e()]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon backup-restore-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"BackupRestoreIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./BackupRestore.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./BackupRestore.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BackupRestore.vue?vue&type=template&id=4ae28ccb\"\nimport script from \"./BackupRestore.vue?vue&type=script&lang=js\"\nexport * from \"./BackupRestore.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon backup-restore-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"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\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon download-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"DownloadIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Download.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Download.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Download.vue?vue&type=template&id=183a1228\"\nimport script from \"./Download.vue?vue&type=script&lang=js\"\nexport * from \"./Download.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon download-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileCompare.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileCompare.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon file-compare-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FileCompareIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./FileCompare.vue?vue&type=template&id=af361756\"\nimport script from \"./FileCompare.vue?vue&type=script&lang=js\"\nexport * from \"./FileCompare.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon file-compare-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"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\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageOffOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageOffOutline.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon image-off-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ImageOffOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./ImageOffOutline.vue?vue&type=template&id=fdaa4406\"\nimport script from \"./ImageOffOutline.vue?vue&type=script&lang=js\"\nexport * from \"./ImageOffOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon image-off-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"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\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=style&index=0&id=3b76b962&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=style&index=0&id=3b76b962&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Version.vue?vue&type=template&id=3b76b962&scoped=true\"\nimport script from \"./Version.vue?vue&type=script&lang=ts\"\nexport * from \"./Version.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Version.vue?vue&type=style&index=0&id=3b76b962&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3b76b962\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualScrolling.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualScrolling.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!_vm.useWindow && _vm.containerElement === null)?_c('div',{ref:\"container\",staticClass:\"vs-container\"},[_c('div',{ref:\"rowsContainer\",staticClass:\"vs-rows-container\",style:(_vm.rowsContainerStyle)},[_vm._t(\"default\",null,{\"visibleSections\":_vm.visibleSections}),_vm._v(\" \"),_vm._t(\"loader\")],2)]):_c('div',{ref:\"rowsContainer\",staticClass:\"vs-rows-container\",style:(_vm.rowsContainerStyle)},[_vm._t(\"default\",null,{\"visibleSections\":_vm.visibleSections}),_vm._v(\" \"),_vm._t(\"loader\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualScrolling.vue?vue&type=style&index=0&id=11dbbae6&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualScrolling.vue?vue&type=style&index=0&id=11dbbae6&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VirtualScrolling.vue?vue&type=template&id=11dbbae6&scoped=true\"\nimport script from \"./VirtualScrolling.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualScrolling.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VirtualScrolling.vue?vue&type=style&index=0&id=11dbbae6&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11dbbae6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form',{staticClass:\"version-label-modal\",on:{\"submit\":function($event){$event.preventDefault();return _vm.setVersionLabel(_vm.innerVersionLabel)}}},[_c('label',[_c('div',{staticClass:\"version-label-modal__title\"},[_vm._v(_vm._s(_vm.t('files_versions', 'Version name')))]),_vm._v(\" \"),_c('NcTextField',{ref:\"labelInput\",attrs:{\"value\":_vm.innerVersionLabel,\"placeholder\":_vm.t('files_versions', 'Version name'),\"label-outside\":true},on:{\"update:value\":function($event){_vm.innerVersionLabel=$event}}})],1),_vm._v(\" \"),_c('div',{staticClass:\"version-label-modal__info\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_versions', 'Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"version-label-modal__actions\"},[_c('NcButton',{attrs:{\"disabled\":_vm.innerVersionLabel.trim().length === 0},on:{\"click\":function($event){return _vm.setVersionLabel('')}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Remove version name'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"primary\",\"native-type\":\"submit\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Check')]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Save version name'))+\"\\n\\t\\t\")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionLabelForm.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionLabelForm.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionLabelForm.vue?vue&type=style&index=0&id=58311f0c&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionLabelForm.vue?vue&type=style&index=0&id=58311f0c&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VersionLabelForm.vue?vue&type=template&id=58311f0c&scoped=true\"\nimport script from \"./VersionLabelForm.vue?vue&type=script&lang=ts\"\nexport * from \"./VersionLabelForm.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VersionLabelForm.vue?vue&type=style&index=0&id=58311f0c&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"58311f0c\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionTab.vue?vue&type=script&lang=js\"","<!--\n - @copyright 2022 Carl Schwan <carl@carlschwan.eu>\n - @license AGPL-3.0-or-later\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -->\n<template>\n\t<div class=\"versions-tab__container\">\n\t\t<VirtualScrolling v-slot=\"{ visibleSections }\"\n\t\t\t:sections=\"sections\"\n\t\t\t:header-height=\"0\">\n\t\t\t<ul :aria-label=\"t('files_versions', 'File versions')\" data-files-versions-versions-list>\n\t\t\t\t<template v-if=\"visibleSections.length === 1\">\n\t\t\t\t\t<Version v-for=\"(row) of visibleSections[0].rows\"\n\t\t\t\t\t\t:key=\"row.items[0].mtime\"\n\t\t\t\t\t\t:can-view=\"canView\"\n\t\t\t\t\t\t:can-compare=\"canCompare\"\n\t\t\t\t\t\t:load-preview=\"isActive\"\n\t\t\t\t\t\t:version=\"row.items[0]\"\n\t\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t\t:is-current=\"row.items[0].mtime === fileInfo.mtime\"\n\t\t\t\t\t\t:is-first-version=\"row.items[0].mtime === initialVersionMtime\"\n\t\t\t\t\t\t@click=\"openVersion\"\n\t\t\t\t\t\t@compare=\"compareVersion\"\n\t\t\t\t\t\t@restore=\"handleRestore\"\n\t\t\t\t\t\t@label-update-request=\"handleLabelUpdateRequest(row.items[0])\"\n\t\t\t\t\t\t@delete=\"handleDelete\" />\n\t\t\t\t</template>\n\t\t\t</ul>\n\t\t\t<NcLoadingIcon v-if=\"loading\" slot=\"loader\" class=\"files-list-viewer__loader\" />\n\t\t</VirtualScrolling>\n\t\t<NcModal v-if=\"showVersionLabelForm\"\n\t\t\t:title=\"t('files_versions', 'Name this version')\"\n\t\t\t@close=\"showVersionLabelForm = false\">\n\t\t\t<VersionLabelForm :version-label=\"editedVersion.label\" @label-update=\"handleLabelUpdate\" />\n\t\t</NcModal>\n\t</div>\n</template>\n\n<script>\nimport path from 'path'\n\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport isMobile from '@nextcloud/vue/dist/Mixins/isMobile.js'\nimport { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'\nimport NcModal from '@nextcloud/vue/dist/Components/NcModal.js'\n\nimport { fetchVersions, deleteVersion, restoreVersion, setVersionLabel } from '../utils/versions.ts'\nimport Version from '../components/Version.vue'\nimport VirtualScrolling from '../components/VirtualScrolling.vue'\nimport VersionLabelForm from '../components/VersionLabelForm.vue'\n\nexport default {\n\tname: 'VersionTab',\n\tcomponents: {\n\t\tVersion,\n\t\tVirtualScrolling,\n\t\tVersionLabelForm,\n\t\tNcLoadingIcon,\n\t\tNcModal,\n\t},\n\tmixins: [\n\t\tisMobile,\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tfileInfo: null,\n\t\t\tisActive: false,\n\t\t\t/** @type {import('../utils/versions.ts').Version[]} */\n\t\t\tversions: [],\n\t\t\tloading: false,\n\t\t\tshowVersionLabelForm: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tsections() {\n\t\t\tconst rows = this.orderedVersions.map(version => ({ key: version.mtime, height: 68, sectionKey: 'versions', items: [version] }))\n\t\t\treturn [{ key: 'versions', rows, height: 68 * this.orderedVersions.length }]\n\t\t},\n\n\t\t/**\n\t\t * Order versions by mtime.\n\t\t * Put the current version at the top.\n\t\t *\n\t\t * @return {import('../utils/versions.ts').Version[]}\n\t\t */\n\t\torderedVersions() {\n\t\t\treturn [...this.versions].sort((a, b) => {\n\t\t\t\tif (a.mtime === this.fileInfo.mtime) {\n\t\t\t\t\treturn -1\n\t\t\t\t} else if (b.mtime === this.fileInfo.mtime) {\n\t\t\t\t\treturn 1\n\t\t\t\t} else {\n\t\t\t\t\treturn b.mtime - a.mtime\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Return the mtime of the first version to display \"Initial version\" label\n\t\t *\n\t\t * @return {number}\n\t\t */\n\t\tinitialVersionMtime() {\n\t\t\treturn this.versions\n\t\t\t\t.map(version => version.mtime)\n\t\t\t\t.reduce((a, b) => Math.min(a, b))\n\t\t},\n\n\t\tviewerFileInfo() {\n\t\t\t// We need to remap bitmask to dav permissions as the file info we have is converted through client.js\n\t\t\tlet davPermissions = ''\n\t\t\tif (this.fileInfo.permissions & 1) {\n\t\t\t\tdavPermissions += 'R'\n\t\t\t}\n\t\t\tif (this.fileInfo.permissions & 2) {\n\t\t\t\tdavPermissions += 'W'\n\t\t\t}\n\t\t\tif (this.fileInfo.permissions & 8) {\n\t\t\t\tdavPermissions += 'D'\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...this.fileInfo,\n\t\t\t\tmime: this.fileInfo.mimetype,\n\t\t\t\tbasename: this.fileInfo.name,\n\t\t\t\tfilename: this.fileInfo.path + '/' + this.fileInfo.name,\n\t\t\t\tpermissions: davPermissions,\n\t\t\t\tfileid: this.fileInfo.id,\n\t\t\t}\n\t\t},\n\n\t\t/** @return {boolean} */\n\t\tcanView() {\n\t\t\treturn window.OCA.Viewer?.mimetypesCompare?.includes(this.fileInfo.mimetype)\n\t\t},\n\n\t\tcanCompare() {\n\t\t\treturn !this.isMobile\n\t\t},\n\t},\n\tmounted() {\n\t\tsubscribe('files_versions:restore:restored', this.fetchVersions)\n\t},\n\tbeforeUnmount() {\n\t\tunsubscribe('files_versions:restore:restored', this.fetchVersions)\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Update current fileInfo and fetch new data\n\t\t *\n\t\t * @param {object} fileInfo the current file FileInfo\n\t\t */\n\t\tasync update(fileInfo) {\n\t\t\tthis.fileInfo = fileInfo\n\t\t\tthis.resetState()\n\t\t\tthis.fetchVersions()\n\t\t},\n\n\t\t/**\n\t\t * @param {boolean} isActive whether the tab is active\n\t\t */\n\t\tasync setIsActive(isActive) {\n\t\t\tthis.isActive = isActive\n\t\t},\n\n\t\t/**\n\t\t * Get the existing versions infos\n\t\t */\n\t\tasync fetchVersions() {\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\t\t\t\tthis.versions = await fetchVersions(this.fileInfo)\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Handle restored event from Version.vue\n\t\t *\n\t\t * @param {import('../utils/versions.ts').Version} version\n\t\t */\n\t\tasync handleRestore(version) {\n\t\t\t// Update local copy of fileInfo as rendering depends on it.\n\t\t\tconst oldFileInfo = this.fileInfo\n\t\t\tthis.fileInfo = {\n\t\t\t\t...this.fileInfo,\n\t\t\t\tsize: version.size,\n\t\t\t\tmtime: version.mtime,\n\t\t\t}\n\n\t\t\tconst restoreStartedEventState = {\n\t\t\t\tpreventDefault: false,\n\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\tversion,\n\t\t\t}\n\t\t\temit('files_versions:restore:requested', restoreStartedEventState)\n\t\t\tif (restoreStartedEventState.preventDefault) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tawait restoreVersion(version)\n\t\t\t\tif (version.label !== '') {\n\t\t\t\t\tshowSuccess(t('files_versions', `${version.label} restored`))\n\t\t\t\t} else if (version.mtime === this.initialVersionMtime) {\n\t\t\t\t\tshowSuccess(t('files_versions', 'Initial version restored'))\n\t\t\t\t} else {\n\t\t\t\t\tshowSuccess(t('files_versions', 'Version restored'))\n\t\t\t\t}\n\t\t\t\temit('files_versions:restore:restored', version)\n\t\t\t} catch (exception) {\n\t\t\t\tthis.fileInfo = oldFileInfo\n\t\t\t\tshowError(t('files_versions', 'Could not restore version'))\n\t\t\t\temit('files_versions:restore:failed', version)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Handle label-updated event from Version.vue\n\t\t * @param {import('../utils/versions.ts').Version} version\n\t\t */\n\t\thandleLabelUpdateRequest(version) {\n\t\t\tthis.showVersionLabelForm = true\n\t\t\tthis.editedVersion = version\n\t\t},\n\n\t\t/**\n\t\t * Handle label-updated event from Version.vue\n\t\t * @param {string} newLabel\n\t\t */\n\t\tasync handleLabelUpdate(newLabel) {\n\t\t\tconst oldLabel = this.editedVersion.label\n\t\t\tthis.editedVersion.label = newLabel\n\t\t\tthis.showVersionLabelForm = false\n\n\t\t\ttry {\n\t\t\t\tawait setVersionLabel(this.editedVersion, newLabel)\n\t\t\t\tthis.editedVersion = null\n\t\t\t} catch (exception) {\n\t\t\t\tthis.editedVersion.label = oldLabel\n\t\t\t\tshowError(this.t('files_versions', 'Could not set version label'))\n\t\t\t\tlogger.error('Could not set version label', { exception })\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Handle deleted event from Version.vue\n\t\t *\n\t\t * @param {import('../utils/versions.ts').Version} version\n\t\t * @param {string} newName\n\t\t */\n\t\tasync handleDelete(version) {\n\t\t\tconst index = this.versions.indexOf(version)\n\t\t\tthis.versions.splice(index, 1)\n\n\t\t\ttry {\n\t\t\t\tawait deleteVersion(version)\n\t\t\t} catch (exception) {\n\t\t\t\tthis.versions.push(version)\n\t\t\t\tshowError(t('files_versions', 'Could not delete version'))\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Reset the current view to its default state\n\t\t */\n\t\tresetState() {\n\t\t\tthis.$set(this, 'versions', [])\n\t\t},\n\n\t\topenVersion({ version }) {\n\t\t\t// Open current file view instead of read only\n\t\t\tif (version.mtime === this.fileInfo.mtime) {\n\t\t\t\tOCA.Viewer.open({ fileInfo: this.viewerFileInfo })\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Versions previews are too small for our use case, so we override previewUrl\n\t\t\t// which makes the viewer render the original file.\n\t\t\t// We also point to the original filename if the version is the current one.\n\t\t\tconst versions = this.versions.map(version => ({\n\t\t\t\t...version,\n\t\t\t\tfilename: version.mtime === this.fileInfo.mtime ? path.join('files', getCurrentUser()?.uid ?? '', this.fileInfo.path, this.fileInfo.name) : version.filename,\n\t\t\t\tpreviewUrl: undefined,\n\t\t\t}))\n\n\t\t\tOCA.Viewer.open({\n\t\t\t\tfileInfo: versions.find(v => v.source === version.source),\n\t\t\t\tenableSidebar: false,\n\t\t\t})\n\t\t},\n\n\t\tcompareVersion({ version }) {\n\t\t\tconst versions = this.versions.map(version => ({ ...version, previewUrl: undefined }))\n\n\t\t\tOCA.Viewer.compare(this.viewerFileInfo, versions.find(v => v.source === version.source))\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\">\n.versions-tab__container {\n\theight: 100%;\n}\n</style>\n","import { generateRemoteUrl, generateUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { joinPaths, encodePath } from '@nextcloud/paths';\nimport moment from '@nextcloud/moment';\nimport client from '../utils/davClient.js';\nimport davRequest from '../utils/davRequest.js';\nimport logger from '../utils/logger.js';\nexport async function fetchVersions(fileInfo) {\n const path = `/versions/${getCurrentUser()?.uid}/versions/${fileInfo.id}`;\n try {\n const response = await client.getDirectoryContents(path, {\n data: davRequest,\n details: true,\n });\n return response.data\n // Filter out root\n .filter(({ mime }) => mime !== '')\n .map(version => formatVersion(version, fileInfo));\n }\n catch (exception) {\n logger.error('Could not fetch version', { exception });\n throw exception;\n }\n}\n/**\n * Restore the given version\n */\nexport async function restoreVersion(version) {\n try {\n logger.debug('Restoring version', { url: version.url });\n await client.moveFile(`/versions/${getCurrentUser()?.uid}/versions/${version.fileId}/${version.fileVersion}`, `/versions/${getCurrentUser()?.uid}/restore/target`);\n }\n catch (exception) {\n logger.error('Could not restore version', { exception });\n throw exception;\n }\n}\n/**\n * Format version\n */\nfunction formatVersion(version, fileInfo) {\n const mtime = moment(version.lastmod).unix() * 1000;\n let previewUrl = '';\n if (mtime === fileInfo.mtime) { // Version is the current one\n previewUrl = generateUrl('/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0&forceIcon=1&mimeFallback=1', {\n fileId: fileInfo.id,\n fileEtag: fileInfo.etag,\n });\n }\n else {\n previewUrl = generateUrl('/apps/files_versions/preview?file={file}&version={fileVersion}&mimeFallback=1', {\n file: joinPaths(fileInfo.path, fileInfo.name),\n fileVersion: version.basename,\n });\n }\n return {\n fileId: fileInfo.id,\n // If version-label is defined make sure it is a string (prevent issue if the label is a number an PHP returns a number then)\n label: version.props['version-label'] && String(version.props['version-label']),\n author: version.props['version-author'] ?? null,\n filename: version.filename,\n basename: moment(mtime).format('LLL'),\n mime: version.mime,\n etag: `${version.props.getetag}`,\n size: version.size,\n type: version.type,\n mtime,\n permissions: 'R',\n previewUrl,\n url: joinPaths('/remote.php/dav', version.filename),\n source: generateRemoteUrl('dav') + encodePath(version.filename),\n fileVersion: version.basename,\n };\n}\nexport async function setVersionLabel(version, newLabel) {\n return await client.customRequest(version.filename, {\n method: 'PROPPATCH',\n data: `<?xml version=\"1.0\"?>\n\t\t\t\t\t<d:propertyupdate xmlns:d=\"DAV:\"\n\t\t\t\t\t\txmlns:oc=\"http://owncloud.org/ns\"\n\t\t\t\t\t\txmlns:nc=\"http://nextcloud.org/ns\"\n\t\t\t\t\t\txmlns:ocs=\"http://open-collaboration-services.org/ns\">\n\t\t\t\t\t<d:set>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<nc:version-label>${newLabel}</nc:version-label>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t</d:set>\n\t\t\t\t\t</d:propertyupdate>`,\n });\n}\nexport async function deleteVersion(version) {\n await client.deleteFile(version.filename);\n}\n","/**\n * @copyright Copyright (c) 2019 Louis Chmn <louis@chmn.me>\n *\n * @author Louis Chmn <louis@chmn.me>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default `<?xml version=\"1.0\"?>\n<d:propfind xmlns:d=\"DAV:\"\n\txmlns:oc=\"http://owncloud.org/ns\"\n\txmlns:nc=\"http://nextcloud.org/ns\"\n\txmlns:ocs=\"http://open-collaboration-services.org/ns\">\n\t<d:prop>\n\t\t<d:getcontentlength />\n\t\t<d:getcontenttype />\n\t\t<d:getlastmodified />\n\t\t<d:getetag />\n\t\t<nc:version-label />\n\t\t<nc:version-author />\n\t\t<nc:has-preview />\n\t</d:prop>\n</d:propfind>`\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionTab.vue?vue&type=style&index=0&id=48c0be68&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionTab.vue?vue&type=style&index=0&id=48c0be68&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VersionTab.vue?vue&type=template&id=48c0be68\"\nimport script from \"./VersionTab.vue?vue&type=script&lang=js\"\nexport * from \"./VersionTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./VersionTab.vue?vue&type=style&index=0&id=48c0be68&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"versions-tab__container\"},[_c('VirtualScrolling',{attrs:{\"sections\":_vm.sections,\"header-height\":0},scopedSlots:_vm._u([{key:\"default\",fn:function({ visibleSections }){return [_c('ul',{attrs:{\"aria-label\":_vm.t('files_versions', 'File versions'),\"data-files-versions-versions-list\":\"\"}},[(visibleSections.length === 1)?_vm._l((visibleSections[0].rows),function(row){return _c('Version',{key:row.items[0].mtime,attrs:{\"can-view\":_vm.canView,\"can-compare\":_vm.canCompare,\"load-preview\":_vm.isActive,\"version\":row.items[0],\"file-info\":_vm.fileInfo,\"is-current\":row.items[0].mtime === _vm.fileInfo.mtime,\"is-first-version\":row.items[0].mtime === _vm.initialVersionMtime},on:{\"click\":_vm.openVersion,\"compare\":_vm.compareVersion,\"restore\":_vm.handleRestore,\"label-update-request\":function($event){return _vm.handleLabelUpdateRequest(row.items[0])},\"delete\":_vm.handleDelete}})}):_vm._e()],2),_vm._v(\" \"),(_vm.loading)?_c('NcLoadingIcon',{staticClass:\"files-list-viewer__loader\",attrs:{\"slot\":\"loader\"},slot:\"loader\"}):_vm._e()]}}])}),_vm._v(\" \"),(_vm.showVersionLabelForm)?_c('NcModal',{attrs:{\"title\":_vm.t('files_versions', 'Name this version')},on:{\"close\":function($event){_vm.showVersionLabelForm = false}}},[_c('VersionLabelForm',{attrs:{\"version-label\":_vm.editedVersion.label},on:{\"label-update\":_vm.handleLabelUpdate}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2022 Carl Schwan <carl@carlschwan.eu>\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n'\n\nimport VersionTab from './views/VersionTab.vue'\nimport VTooltip from 'v-tooltip'\n// eslint-disable-next-line n/no-missing-import, import/no-unresolved\nimport BackupRestore from '@mdi/svg/svg/backup-restore.svg?raw'\n\nVue.prototype.t = t\nVue.prototype.n = n\n\nVue.use(VTooltip)\n\n// Init Sharing tab component\nconst View = Vue.extend(VersionTab)\nlet TabInstance = null\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\tif (OCA.Files?.Sidebar === undefined) {\n\t\treturn\n\t}\n\n\tOCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab({\n\t\tid: 'version_vue',\n\t\tname: t('files_versions', 'Versions'),\n\t\ticonSvg: BackupRestore,\n\n\t\tasync mount(el, fileInfo, context) {\n\t\t\tif (TabInstance) {\n\t\t\t\tTabInstance.$destroy()\n\t\t\t}\n\t\t\tTabInstance = new View({\n\t\t\t\t// Better integration with vue parent component\n\t\t\t\tparent: context,\n\t\t\t})\n\t\t\t// Only mount after we have all the info we need\n\t\t\tawait TabInstance.update(fileInfo)\n\t\t\tTabInstance.$mount(el)\n\t\t},\n\t\tupdate(fileInfo) {\n\t\t\tTabInstance.update(fileInfo)\n\t\t},\n\t\tsetIsActive(isActive) {\n\t\t\tif (!TabInstance) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tTabInstance.setIsActive(isActive)\n\t\t},\n\t\tdestroy() {\n\t\t\tTabInstance.$destroy()\n\t\t\tTabInstance = null\n\t\t},\n\t\tenabled(fileInfo) {\n\t\t\treturn !(fileInfo?.isDirectory() ?? true)\n\t\t},\n\t}))\n})\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.version[data-v-3b76b962]{display:flex;flex-direction:row}.version__info[data-v-3b76b962]{display:flex;flex-direction:row;align-items:center;gap:.5rem;color:var(--color-main-text);font-weight:500}.version__info__label[data-v-3b76b962]{font-weight:700;overflow:hidden;text-overflow:ellipsis}.version__info__date[data-v-3b76b962]{overflow:hidden;text-overflow:ellipsis}.version__info__subline[data-v-3b76b962]{color:var(--color-text-maxcontrast)}.version__image[data-v-3b76b962]{width:3rem;height:3rem;border:1px solid var(--color-border);border-radius:var(--border-radius-large);display:flex;justify-content:center;color:var(--color-text-light)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_versions/src/components/Version.vue\"],\"names\":[],\"mappings\":\"AACA,0BACC,YAAA,CACA,kBAAA,CAEA,gCACC,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,SAAA,CACA,4BAAA,CACA,eAAA,CAEA,uCACC,eAAA,CAEA,eAAA,CACA,sBAAA,CAGD,sCAEC,eAAA,CACA,sBAAA,CAGD,yCACC,mCAAA,CAIF,iCACC,UAAA,CACA,WAAA,CACA,oCAAA,CACA,wCAAA,CAGA,YAAA,CACA,sBAAA,CACA,6BAAA\",\"sourcesContent\":[\"\\n.version {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\n\\t&__info {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\talign-items: center;\\n\\t\\tgap: 0.5rem;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tfont-weight: 500;\\n\\n\\t\\t&__label {\\n\\t\\t\\tfont-weight: 700;\\n\\t\\t\\t// Fix overflow on narrow screens\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__date {\\n\\t\\t\\t// Fix overflow on narrow screens\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__subline {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast)\\n\\t\\t}\\n\\t}\\n\\n\\t&__image {\\n\\t\\twidth: 3rem;\\n\\t\\theight: 3rem;\\n\\t\\tborder: 1px solid var(--color-border);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\n\\t\\t// Useful to display no preview icon.\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\tcolor: var(--color-text-light);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"2441\":\"bd6d3dc836e836cd4795\",\"5775\":\"bdb5a44b157eaff757ea\",\"5862\":\"18c97d281a8207f0ce8d\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2250;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2250: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(69585)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","___CSS_LOADER_EXPORT___","push","module","id","remote","generateRemoteUrl","client","createClient","setHeaders","token","requesttoken","onRequestTokenUpdate","getRequestToken","getLoggerBuilder","setApp","detectUser","build","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","hasPermission","permissions","permission","defineComponent","components","NcActionLink","NcActionButton","NcAvatar","NcDateTime","NcListItem","BackupRestore","Download","FileCompare","Pencil","Delete","ImageOffOutline","directives","tooltip","Tooltip","version","Object","required","fileInfo","isCurrent","Boolean","isFirstVersion","loadPreview","canView","canCompare","data","previewLoaded","previewErrored","capabilities","loadState","files","version_labeling","version_deletion","versionAuthor","computed","humanReadableSize","formatFileSize","versionLabel","label","t","downloadURL","getRootUrl","joinPaths","path","url","enableLabeling","enableDeletion","hasDeletePermissions","Permission","DELETE","hasUpdatePermissions","UPDATE","isDownloadable","READ","mountType","downloadAttribute","shareAttributes","find","attribute","scope","key","enabled","created","fetchDisplayName","methods","labelUpdate","restoreVersion","deleteVersion","$nextTick","author","getCurrentUser","uid","axios","post","generateUrl","users","error","logger","warn","click","window","location","href","compareVersion","Error","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_setupProxy","fileVersion","scopedSlots","_u","fn","previewUrl","proxy","mtime","sections","Array","containerElement","HTMLElement","useWindow","headerHeight","renderDistance","bottomBufferRatio","scrollToKey","scrollPosition","containerHeight","rowsContainerHeight","resizeObserver","visibleSections","debug","containerTop","containerBottom","currentRowTop","currentRowBottom","map","section","rows","reduce","visibleRows","row","height","distance","filter","length","visibleItems","flatMap","_ref","_ref2","items","rowIdToKeyMap","_rowIdToKeyMap","forEach","item","usedTokens","_ref3","undefined","unusedTokens","values","includes","_ref4","pop","Math","random","toString","substr","finalMapping","_ref5","totalHeight","sectionHeight","paddingTop","sectionKey","rowsContainerStyle","isNearBottom","buffer","container","$refs","watch","value","currentRowTopDistanceFromTop","scrollTo","top","behavior","beforeCreate","mounted","ResizeObserver","entries","entry","cr","contentRect","target","classList","contains","addEventListener","updateContainerSize","passive","innerHeight","observe","rowsContainer","updateScrollPosition","beforeDestroy","removeEventListener","disconnect","_onScrollHandle","requestAnimationFrame","scrollY","scrollTop","ref","style","_t","NcButton","NcTextField","Check","innerVersionLabel","labelInput","$el","getElementsByTagName","focus","setVersionLabel","translate","Version","VirtualScrolling","VersionLabelForm","preventDefault","trim","NcLoadingIcon","NcModal","mixins","isMobile","isActive","versions","loading","showVersionLabelForm","orderedVersions","sort","a","b","initialVersionMtime","min","viewerFileInfo","davPermissions","mime","mimetype","basename","filename","fileid","OCA","Viewer","mimetypesCompare","subscribe","fetchVersions","beforeUnmount","unsubscribe","update","resetState","setIsActive","async","getDirectoryContents","details","moment","lastmod","unix","fileId","fileEtag","etag","file","format","getetag","source","encodePath","formatVersion","exception","handleRestore","oldFileInfo","restoreStartedEventState","emit","moveFile","showSuccess","showError","handleLabelUpdateRequest","editedVersion","handleLabelUpdate","newLabel","oldLabel","customRequest","method","handleDelete","index","indexOf","splice","deleteFile","$set","openVersion","open","v","enableSidebar","compare","_l","slot","Vue","prototype","n","use","VTooltip","View","extend","VersionTab","TabInstance","Files","Sidebar","registerTab","Tab","iconSvg","mount","el","context","$destroy","parent","$mount","destroy","isDirectory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","keys","every","r","getter","__esModule","d","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","promises","u","g","globalThis","Function","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","document","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","currentScript","tagName","toUpperCase","test","replace","p","baseURI","self","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file