]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fix download URL for versions 40946/head
authorChristopher Ng <chrng8@gmail.com>
Mon, 6 Mar 2023 18:24:31 +0000 (10:24 -0800)
committerLouis Chemineau <louis@chmn.me>
Tue, 17 Oct 2023 10:52:05 +0000 (12:52 +0200)
Signed-off-by: Christopher Ng <chrng8@gmail.com>
apps/files_versions/src/components/Version.vue
dist/files_versions-files_versions.js
dist/files_versions-files_versions.js.map

index f91e3b47178426af430fb75d46853dd11f548802..90435abd9bedd2cf404c80c848c30bc8424deb70 100644 (file)
@@ -120,7 +120,7 @@ import { NcActionButton, NcActionLink, NcListItem, NcModal, NcButton, NcTextFiel
 import moment from '@nextcloud/moment'
 import { translate } from '@nextcloud/l10n'
 import { joinPaths } from '@nextcloud/paths'
-import { generateUrl } from '@nextcloud/router'
+import { generateUrl, getRootUrl } from '@nextcloud/router'
 import { loadState } from '@nextcloud/initial-state'
 import { emit } from '@nextcloud/event-bus'
 
@@ -213,9 +213,9 @@ export default {
                 */
                downloadURL() {
                        if (this.isCurrent) {
-                               return joinPaths('/remote.php/webdav', this.fileInfo.path, this.fileInfo.name)
+                               return getRootUrl() + joinPaths('/remote.php/webdav', this.fileInfo.path, this.fileInfo.name)
                        } else {
-                               return this.version.url
+                               return getRootUrl() + this.version.url
                        }
                },
 
index 936546424f5fdf70f4a9c4d9c315a54a111f2820..0829ec741576fd77a48300c0e78d495aff1af554 100644 (file)
@@ -1,3 +1,3 @@
 /*! For license information please see files_versions-files_versions.js.LICENSE.txt */
-!function(){var e,n={16457:function(e,n,r){"use strict";var o=r(20144),s=r(31352),i=r(64024),a=r(45994),l=r(81063),c=r(79753),u=r(4820);(0,l.getPatcher)().patch("request",u.default);var f=(0,c.generateRemoteUrl)("dav"),d=(0,l.createClient)(f),v='<?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<nc:version-label />\n\t</d:prop>\n</d:propfind>',p=(0,r(17499).IY)().setApp("files_version").detectUser().build(),m=r(65358),h=r(80351),b=r.n(h);function j(e,t,n,r,o,s,i){try{var a=e[s](i),l=a.value}catch(e){return void n(e)}a.done?t(l):Promise.resolve(l).then(r,o)}function A(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var s=e.apply(t,n);function i(e){j(s,r,o,i,a,"next",e)}function a(e){j(s,r,o,i,a,"throw",e)}i(void 0)}))}}function y(e){return g.apply(this,arguments)}function g(){return(g=A(regeneratorRuntime.mark((function e(t){var n,r,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r="/versions/".concat(null===(n=(0,a.ts)())||void 0===n?void 0:n.uid,"/versions/").concat(t.id),e.prev=1,e.next=4,d.getDirectoryContents(r,{data:v,details:!0});case 4:return o=e.sent,e.abrupt("return",o.data.filter((function(e){return""!==e.mime})).map((function(e){return w(e,t)})));case 8:throw e.prev=8,e.t0=e.catch(1),p.error("Could not fetch version",{exception:e.t0}),e.t0;case 12:case"end":return e.stop()}}),e,null,[[1,8]])})))).apply(this,arguments)}function _(e){return x.apply(this,arguments)}function x(){return(x=A(regeneratorRuntime.mark((function e(t){var n,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,p.debug("Restoring version",{url:t.url}),e.next=4,d.moveFile("/versions/".concat(null===(n=(0,a.ts)())||void 0===n?void 0:n.uid,"/versions/").concat(t.fileId,"/").concat(t.fileVersion),"/versions/".concat(null===(r=(0,a.ts)())||void 0===r?void 0:r.uid,"/restore/target"));case 4:e.next=10;break;case 6:throw e.prev=6,e.t0=e.catch(0),p.error("Could not restore version",{exception:e.t0}),e.t0;case 10:case"end":return e.stop()}}),e,null,[[0,6]])})))).apply(this,arguments)}function w(e,t){return{fileId:t.id,label:e.props["version-label"],fileName:e.filename,mimeType:e.mime,size:e.size,type:e.type,mtime:1e3*b()(e.lastmod).unix(),preview:(0,c.generateUrl)("/apps/files_versions/preview?file={file}&version={fileVersion}",{file:(0,m.RQ)(t.path,t.name),fileVersion:e.basename}),url:(0,m.RQ)("/remote.php/dav",e.filename),fileVersion:e.basename}}function C(e,t){return k.apply(this,arguments)}function k(){return(k=A(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.customRequest(t.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>'.concat(n,"</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>")});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function V(e){return O.apply(this,arguments)}function O(){return(O=A(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.deleteFile(t.fileName);case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var I=r(88722),R=r(41293),z=r(73229),S=r(80419),L=r(57612),P=r(24860),D=r(15961),N=r(79954),B=r(78595),F={name:"Version",components:{NcActionLink:D.ih,NcActionButton:D.Js,NcListItem:D.hx,NcModal:D.Jc,NcButton:D.P2,NcTextField:D.h3,BackupRestore:I.Z,Download:R.Z,Pencil:z.default,Check:S.default,Delete:L.Z,ImageOffOutline:P.Z},directives:{tooltip:D.u},filters:{humanReadableSize:function(e){return OC.Util.humanFileSize(e)},humanDateFromNow:function(e){return b()(e).fromNow()}},props:{version:{type:Object,required:!0},fileInfo:{type:Object,required:!0},isCurrent:{type:Boolean,default:!1},isFirstVersion:{type:Boolean,default:!1}},data:function(){return{showVersionLabelForm:!1,formVersionLabelValue:this.version.label,capabilities:(0,N.j)("core","capabilities",{files:{version_labeling:!1,version_deletion:!1}}),previewError:!1}},computed:{versionLabel:function(){var e,t=null!==(e=this.version.label)&&void 0!==e?e:"";return this.isCurrent?""===t?(0,s.Iu)("files_versions","Current version"):"".concat(t," (").concat((0,s.Iu)("files_versions","Current version"),")"):this.isFirstVersion&&""===t?(0,s.Iu)("files_versions","Initial version"):t},downloadURL:function(){return this.isCurrent?(0,m.RQ)("/remote.php/webdav",this.fileInfo.path,this.fileInfo.name):this.version.url},previewURL:function(){return this.isCurrent?(0,c.generateUrl)("/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0",{fileId:this.fileInfo.id,fileEtag:this.fileInfo.etag}):this.version.preview},formattedDate:function(){return b()(this.version.mtime).format("LLL")}},methods:{openVersion:function(e){e.preventDefault();var t={preventDefault:!1,fileInfo:this.fileInfo,version:this.version};(0,B.j8)("files_versions:view:open",t),t.preventDefault||(window.location.href=this.downloadURL)},openVersionLabelModal:function(){var e=this;this.showVersionLabelForm=!0,this.$nextTick((function(){e.$refs.labelInput.$el.getElementsByTagName("input")[0].focus()}))},restoreVersion:function(){this.$emit("restore",this.version)},setVersionLabel:function(e){this.formVersionLabelValue=e,this.showVersionLabelForm=!1,this.$emit("label-update",this.version,e)},deleteVersion:function(){this.$emit("delete",this.version)}}},U=r(93379),E=r.n(U),T=r(7795),Z=r.n(T),M=r(90569),$=r.n(M),q=r(3565),Y=r.n(q),G=r(19216),Q=r.n(G),J=r(44589),H=r.n(J),W=r(54241),K={};K.styleTagTransform=H(),K.setAttributes=Y(),K.insert=$().bind(null,"head"),K.domAPI=Z(),K.insertStyleElement=Q(),E()(W.Z,K),W.Z&&W.Z.locals&&W.Z.locals;var X=r(51900);function ee(e){return ee="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ee(e)}function te(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ne(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?te(Object(n),!0).forEach((function(t){re(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):te(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function re(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==ee(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!==ee(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===ee(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oe(e,t,n,r,o,s,i){try{var a=e[s](i),l=a.value}catch(e){return void n(e)}a.done?t(l):Promise.resolve(l).then(r,o)}function se(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var s=e.apply(t,n);function i(e){oe(s,r,o,i,a,"next",e)}function a(e){oe(s,r,o,i,a,"throw",e)}i(void 0)}))}}function ie(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var ae={name:"VersionTab",components:{Version:(0,X.Z)(F,(function(){var e=this,t=e._self._c;return t("div",[t("NcListItem",{staticClass:"version",attrs:{title:e.versionLabel,"force-display-actions":!0,"data-files-versions-version":""},on:{click:e.openVersion},scopedSlots:e._u([{key:"icon",fn:function(){return[e.previewError?t("div",{staticClass:"version__image"},[t("ImageOffOutline",{attrs:{size:20}})],1):t("img",{staticClass:"version__image",attrs:{src:e.previewURL,alt:""},on:{error:function(t){e.previewError=!0}}})]},proxy:!0},{key:"subtitle",fn:function(){return[t("div",{staticClass:"version__info"},[t("span",{attrs:{title:e.formattedDate}},[e._v(e._s(e._f("humanDateFromNow")(e.version.mtime)))]),e._v(" "),t("span",{staticClass:"version__info__size"},[e._v("•")]),e._v(" "),t("span",{staticClass:"version__info__size"},[e._v(e._s(e._f("humanReadableSize")(e.version.size)))])])]},proxy:!0},{key:"actions",fn:function(){return[!0===e.capabilities.files.version_labeling?t("NcActionButton",{attrs:{"close-after-click":!0},on:{click:e.openVersionLabelModal},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Pencil",{attrs:{size:22}})]},proxy:!0}],null,!1,3072546167)},[e._v("\n\t\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\t")]):e._e(),e._v(" "),e.isCurrent?e._e():t("NcActionButton",{attrs:{"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\t"+e._s(e.t("files_versions","Restore version"))+"\n\t\t\t")]),e._v(" "),t("NcActionLink",{attrs:{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}])},[e._v("\n\t\t\t\t"+e._s(e.t("files_versions","Download version"))+"\n\t\t\t")]),e._v(" "),e.isCurrent||!0!==e.capabilities.files.version_deletion?e._e():t("NcActionButton",{attrs:{"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\t"+e._s(e.t("files_versions","Delete version"))+"\n\t\t\t")])]},proxy:!0}])}),e._v(" "),e.showVersionLabelForm?t("NcModal",{attrs:{title:e.t("files_versions","Name this version")},on:{close:function(t){e.showVersionLabelForm=!1}}},[t("form",{staticClass:"version-label-modal",on:{submit:function(t){return t.preventDefault(),e.setVersionLabel(e.formVersionLabelValue)}}},[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.formVersionLabelValue,placeholder:e.t("files_versions","Version name"),"label-outside":!0},on:{"update:value":function(t){e.formVersionLabelValue=t}}})],1),e._v(" "),t("div",{staticClass:"version-label-modal__info"},[e._v("\n\t\t\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\t\t")]),e._v(" "),t("div",{staticClass:"version-label-modal__actions"},[t("NcButton",{attrs:{disabled:0===e.formVersionLabelValue.trim().length},on:{click:function(t){return e.setVersionLabel("")}}},[e._v("\n\t\t\t\t\t"+e._s(e.t("files_versions","Remove version name"))+"\n\t\t\t\t")]),e._v(" "),t("NcButton",{attrs:{type:"primary","native-type":"submit"},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Check")]},proxy:!0}],null,!1,2308323205)},[e._v("\n\t\t\t\t\t"+e._s(e.t("files_versions","Save version name"))+"\n\t\t\t\t")])],1)])]):e._e()],1)}),[],!1,null,"5fe2c526",null).exports},data:function(){return{fileInfo:null,versions:[],loading:!1}},mounted:function(){(0,B.Ld)("files_versions:restore:restored",this.fetchVersions)},beforeUnmount:function(){(0,B.r1)("files_versions:restore:restored",this.fetchVersions)},computed:{orderedVersions:function(){var e,t=this;return(e=this.versions,function(e){if(Array.isArray(e))return ie(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return ie(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ie(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).sort((function(e,n){return e.mtime===t.fileInfo.mtime?-1:n.mtime===t.fileInfo.mtime?1:n.mtime-e.mtime}))},initialVersionMtime:function(){return this.versions.map((function(e){return e.mtime})).reduce((function(e,t){return Math.min(e,t)}))}},methods:{update:function(e){var t=this;return se(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:t.fileInfo=e,t.resetState(),t.fetchVersions();case 3:case"end":return n.stop()}}),n)})))()},fetchVersions:function(){var e=this;return se(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,e.loading=!0,t.next=4,y(e.fileInfo);case 4:e.versions=t.sent;case 5:return t.prev=5,e.loading=!1,t.finish(5);case 8:case"end":return t.stop()}}),t,null,[[0,,5,8]])})))()},handleRestore:function(e){var n=this;return se(regeneratorRuntime.mark((function r(){var o,s;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=n.fileInfo,n.fileInfo=ne(ne({},n.fileInfo),{},{size:e.size,mtime:e.mtime}),s={preventDefault:!1,fileInfo:n.fileInfo,version:e},(0,B.j8)("files_versions:restore:requested",s),!s.preventDefault){r.next=6;break}return r.abrupt("return");case 6:return r.prev=6,r.next=9,_(e);case 9:""!==e.label?(0,i.s$)(t("files_versions","".concat(e.label," restored"))):e.mtime===n.initialVersionMtime?(0,i.s$)(t("files_versions","Initial version restored")):(0,i.s$)(t("files_versions","Version restored")),(0,B.j8)("files_versions:restore:restored",e),r.next=18;break;case 13:r.prev=13,r.t0=r.catch(6),n.fileInfo=o,(0,i.x2)(t("files_versions","Could not restore version")),(0,B.j8)("files_versions:restore:failed",e);case 18:case"end":return r.stop()}}),r,null,[[6,13]])})))()},handleLabelUpdate:function(e,n){return se(regeneratorRuntime.mark((function r(){var o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o=e.label,e.label=n,r.prev=2,r.next=5,C(e,n);case 5:r.next=11;break;case 7:r.prev=7,r.t0=r.catch(2),e.label=o,(0,i.x2)(t("files_versions","Could not set version name"));case 11:case"end":return r.stop()}}),r,null,[[2,7]])})))()},handleDelete:function(e){var n=this;return se(regeneratorRuntime.mark((function r(){var o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o=n.versions.indexOf(e),n.versions.splice(o,1),r.prev=2,r.next=5,V(e);case 5:r.next=11;break;case 7:r.prev=7,r.t0=r.catch(2),n.versions.push(e),(0,i.x2)(t("files_versions","Could not delete version"));case 11:case"end":return r.stop()}}),r,null,[[2,7]])})))()},resetState:function(){this.$set(this,"versions",[])}}},le=(0,X.Z)(ae,(function(){var e=this,t=e._self._c;return t("ul",{attrs:{"data-files-versions-versions-list":""}},e._l(e.orderedVersions,(function(n){return t("Version",{key:n.mtime,attrs:{version:n,"file-info":e.fileInfo,"is-current":n.mtime===e.fileInfo.mtime,"is-first-version":n.mtime===e.initialVersionMtime},on:{restore:e.handleRestore,"label-update":e.handleLabelUpdate,delete:e.handleDelete}})})),1)}),[],!1,null,null,null).exports,ce=r(61361),ue=r(27608);function fe(e,t,n,r,o,s,i){try{var a=e[s](i),l=a.value}catch(e){return void n(e)}a.done?t(l):Promise.resolve(l).then(r,o)}o.ZP.prototype.t=s.Iu,o.ZP.prototype.n=s.uN,o.ZP.use(ce.default);var de=o.ZP.extend(le),ve=null;window.addEventListener("DOMContentLoaded",(function(){var e;void 0!==(null===(e=OCA.Files)||void 0===e?void 0:e.Sidebar)&&OCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab({id:"version_vue",name:(0,s.Iu)("files_versions","Versions"),iconSvg:ue,mount:function(e,t,n){return(r=regeneratorRuntime.mark((function r(){return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return ve&&ve.$destroy(),ve=new de({parent:n}),r.next=4,ve.update(t);case 4:ve.$mount(e);case 5:case"end":return r.stop()}}),r)})),function(){var e=this,t=arguments;return new Promise((function(n,o){var s=r.apply(e,t);function i(e){fe(s,n,o,i,a,"next",e)}function a(e){fe(s,n,o,i,a,"throw",e)}i(void 0)}))})();var r},update:function(e){ve.update(e)},destroy:function(){ve.$destroy(),ve=null},enabled:function(e){var t;return!(null===(t=null==e?void 0:e.isDirectory())||void 0===t||t)}}))}))},54241:function(e,t,n){"use strict";var r=n(87537),o=n.n(r),s=n(23645),i=n.n(s)()(o());i.push([e.id,".version[data-v-5fe2c526]{display:flex;flex-direction:row}.version__info[data-v-5fe2c526]{display:flex;flex-direction:row;align-items:center;gap:.5rem}.version__info__size[data-v-5fe2c526]{color:var(--color-text-lighter)}.version__image[data-v-5fe2c526]{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-label-modal[data-v-5fe2c526]{display:flex;justify-content:space-between;flex-direction:column;height:250px;padding:16px}.version-label-modal__title[data-v-5fe2c526]{margin-bottom:12px;font-weight:600}.version-label-modal__info[data-v-5fe2c526]{margin-top:12px;color:var(--color-text-maxcontrast)}.version-label-modal__actions[data-v-5fe2c526]{display:flex;justify-content:space-between;margin-top:64px}","",{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,CAEA,sCACC,+BAAA,CAIF,iCACC,UAAA,CACA,WAAA,CACA,oCAAA,CACA,wCAAA,CAGA,YAAA,CACA,sBAAA,CACA,6BAAA,CAIF,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 {\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\n\t\t&__size {\n\t\t\tcolor: var(--color-text-lighter);\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\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:""}]),t.Z=i},46700:function(e,t,n){var r={"./af":42786,"./af.js":42786,"./ar":30867,"./ar-dz":14130,"./ar-dz.js":14130,"./ar-kw":96135,"./ar-kw.js":96135,"./ar-ly":56440,"./ar-ly.js":56440,"./ar-ma":47702,"./ar-ma.js":47702,"./ar-sa":16040,"./ar-sa.js":16040,"./ar-tn":37100,"./ar-tn.js":37100,"./ar.js":30867,"./az":31083,"./az.js":31083,"./be":9808,"./be.js":9808,"./bg":68338,"./bg.js":68338,"./bm":67438,"./bm.js":67438,"./bn":8905,"./bn-bd":76225,"./bn-bd.js":76225,"./bn.js":8905,"./bo":11560,"./bo.js":11560,"./br":1278,"./br.js":1278,"./bs":80622,"./bs.js":80622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":50877,"./cv.js":50877,"./cy":47373,"./cy.js":47373,"./da":24780,"./da.js":24780,"./de":59740,"./de-at":60217,"./de-at.js":60217,"./de-ch":60894,"./de-ch.js":60894,"./de.js":59740,"./dv":5300,"./dv.js":5300,"./el":50837,"./el.js":50837,"./en-au":78348,"./en-au.js":78348,"./en-ca":77925,"./en-ca.js":77925,"./en-gb":22243,"./en-gb.js":22243,"./en-ie":46436,"./en-ie.js":46436,"./en-il":47207,"./en-il.js":47207,"./en-in":44175,"./en-in.js":44175,"./en-nz":76319,"./en-nz.js":76319,"./en-sg":31662,"./en-sg.js":31662,"./eo":92915,"./eo.js":92915,"./es":55655,"./es-do":55251,"./es-do.js":55251,"./es-mx":96112,"./es-mx.js":96112,"./es-us":71146,"./es-us.js":71146,"./es.js":55655,"./et":5603,"./et.js":5603,"./eu":77763,"./eu.js":77763,"./fa":76959,"./fa.js":76959,"./fi":11897,"./fi.js":11897,"./fil":42549,"./fil.js":42549,"./fo":94694,"./fo.js":94694,"./fr":94470,"./fr-ca":63049,"./fr-ca.js":63049,"./fr-ch":52330,"./fr-ch.js":52330,"./fr.js":94470,"./fy":5044,"./fy.js":5044,"./ga":29295,"./ga.js":29295,"./gd":2101,"./gd.js":2101,"./gl":38794,"./gl.js":38794,"./gom-deva":27884,"./gom-deva.js":27884,"./gom-latn":23168,"./gom-latn.js":23168,"./gu":95349,"./gu.js":95349,"./he":24206,"./he.js":24206,"./hi":30094,"./hi.js":30094,"./hr":30316,"./hr.js":30316,"./hu":22138,"./hu.js":22138,"./hy-am":11423,"./hy-am.js":11423,"./id":29218,"./id.js":29218,"./is":90135,"./is.js":90135,"./it":90626,"./it-ch":10150,"./it-ch.js":10150,"./it.js":90626,"./ja":39183,"./ja.js":39183,"./jv":24286,"./jv.js":24286,"./ka":12105,"./ka.js":12105,"./kk":47772,"./kk.js":47772,"./km":18758,"./km.js":18758,"./kn":79282,"./kn.js":79282,"./ko":33730,"./ko.js":33730,"./ku":1408,"./ku.js":1408,"./ky":33291,"./ky.js":33291,"./lb":36841,"./lb.js":36841,"./lo":55466,"./lo.js":55466,"./lt":57010,"./lt.js":57010,"./lv":37595,"./lv.js":37595,"./me":39861,"./me.js":39861,"./mi":35493,"./mi.js":35493,"./mk":95966,"./mk.js":95966,"./ml":87341,"./ml.js":87341,"./mn":5115,"./mn.js":5115,"./mr":10370,"./mr.js":10370,"./ms":9847,"./ms-my":41237,"./ms-my.js":41237,"./ms.js":9847,"./mt":72126,"./mt.js":72126,"./my":56165,"./my.js":56165,"./nb":64924,"./nb.js":64924,"./ne":16744,"./ne.js":16744,"./nl":93901,"./nl-be":59814,"./nl-be.js":59814,"./nl.js":93901,"./nn":83877,"./nn.js":83877,"./oc-lnc":92135,"./oc-lnc.js":92135,"./pa-in":15858,"./pa-in.js":15858,"./pl":64495,"./pl.js":64495,"./pt":89520,"./pt-br":57971,"./pt-br.js":57971,"./pt.js":89520,"./ro":96459,"./ro.js":96459,"./ru":21793,"./ru.js":21793,"./sd":40950,"./sd.js":40950,"./se":10490,"./se.js":10490,"./si":90124,"./si.js":90124,"./sk":64249,"./sk.js":64249,"./sl":14985,"./sl.js":14985,"./sq":51104,"./sq.js":51104,"./sr":49131,"./sr-cyrl":79915,"./sr-cyrl.js":79915,"./sr.js":49131,"./ss":85893,"./ss.js":85893,"./sv":98760,"./sv.js":98760,"./sw":91172,"./sw.js":91172,"./ta":27333,"./ta.js":27333,"./te":23110,"./te.js":23110,"./tet":52095,"./tet.js":52095,"./tg":27321,"./tg.js":27321,"./th":9041,"./th.js":9041,"./tk":19005,"./tk.js":19005,"./tl-ph":75768,"./tl-ph.js":75768,"./tlh":89444,"./tlh.js":89444,"./tr":72397,"./tr.js":72397,"./tzl":28254,"./tzl.js":28254,"./tzm":51106,"./tzm-latn":30699,"./tzm-latn.js":30699,"./tzm.js":51106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":67691,"./uk.js":67691,"./ur":13795,"./ur.js":13795,"./uz":6791,"./uz-latn":60588,"./uz-latn.js":60588,"./uz.js":6791,"./vi":65666,"./vi.js":65666,"./x-pseudo":14378,"./x-pseudo.js":14378,"./yo":75805,"./yo.js":75805,"./zh-cn":83839,"./zh-cn.js":83839,"./zh-hk":55726,"./zh-hk.js":55726,"./zh-mo":99807,"./zh-mo.js":99807,"./zh-tw":74152,"./zh-tw.js":74152};function o(e){var t=s(e);return n(t)}function s(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=s,e.exports=o,o.id=46700},69862:function(){},40964:function(){}},r={};function o(e){var t=r[e];if(void 0!==t)return t.exports;var s=r[e]={id:e,loaded:!1,exports:{}};return n[e].call(s.exports,s,s.exports,o),s.loaded=!0,s.exports}o.m=n,e=[],o.O=function(t,n,r,s){if(!n){var i=1/0;for(u=0;u<e.length;u++){n=e[u][0],r=e[u][1],s=e[u][2];for(var a=!0,l=0;l<n.length;l++)(!1&s||i>=s)&&Object.keys(o.O).every((function(e){return o.O[e](n[l])}))?n.splice(l--,1):(a=!1,s<i&&(i=s));if(a){e.splice(u--,1);var c=r();void 0!==c&&(t=c)}}return t}s=s||0;for(var u=e.length;u>0&&e[u-1][2]>s;u--)e[u]=e[u-1];e[u]=[n,r,s]},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,{a:t}),t},o.d=function(e,t){for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},o.j=1358,function(){o.b=document.baseURI||self.location.href;var e={1358:0};o.O.j=function(t){return 0===e[t]};var t=function(t,n){var r,s,i=n[0],a=n[1],l=n[2],c=0;if(i.some((function(t){return 0!==e[t]}))){for(r in a)o.o(a,r)&&(o.m[r]=a[r]);if(l)var u=l(o)}for(t&&t(n);c<i.length;c++)s=i[c],o.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return o.O(u)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}(),o.nc=void 0;var s=o.O(void 0,[7874],(function(){return o(16457)}));s=o.O(s)}();
-//# sourceMappingURL=files_versions-files_versions.js.map?v=75ca2049fe5d6d53130e
\ No newline at end of file
+!function(){var e,n={76156:function(e,n,r){"use strict";var o=r(20144),s=r(31352),i=r(64024),a=r(45994),l=r(81063),c=r(79753),u=r(4820);(0,l.getPatcher)().patch("request",u.default);var f=(0,c.generateRemoteUrl)("dav"),d=(0,l.createClient)(f),v='<?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<nc:version-label />\n\t</d:prop>\n</d:propfind>',p=(0,r(17499).IY)().setApp("files_version").detectUser().build(),m=r(65358),h=r(80351),b=r.n(h);function j(e,t,n,r,o,s,i){try{var a=e[s](i),l=a.value}catch(e){return void n(e)}a.done?t(l):Promise.resolve(l).then(r,o)}function A(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var s=e.apply(t,n);function i(e){j(s,r,o,i,a,"next",e)}function a(e){j(s,r,o,i,a,"throw",e)}i(void 0)}))}}function y(e){return g.apply(this,arguments)}function g(){return(g=A(regeneratorRuntime.mark((function e(t){var n,r,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r="/versions/".concat(null===(n=(0,a.ts)())||void 0===n?void 0:n.uid,"/versions/").concat(t.id),e.prev=1,e.next=4,d.getDirectoryContents(r,{data:v,details:!0});case 4:return o=e.sent,e.abrupt("return",o.data.filter((function(e){return""!==e.mime})).map((function(e){return w(e,t)})));case 8:throw e.prev=8,e.t0=e.catch(1),p.error("Could not fetch version",{exception:e.t0}),e.t0;case 12:case"end":return e.stop()}}),e,null,[[1,8]])})))).apply(this,arguments)}function _(e){return x.apply(this,arguments)}function x(){return(x=A(regeneratorRuntime.mark((function e(t){var n,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,p.debug("Restoring version",{url:t.url}),e.next=4,d.moveFile("/versions/".concat(null===(n=(0,a.ts)())||void 0===n?void 0:n.uid,"/versions/").concat(t.fileId,"/").concat(t.fileVersion),"/versions/".concat(null===(r=(0,a.ts)())||void 0===r?void 0:r.uid,"/restore/target"));case 4:e.next=10;break;case 6:throw e.prev=6,e.t0=e.catch(0),p.error("Could not restore version",{exception:e.t0}),e.t0;case 10:case"end":return e.stop()}}),e,null,[[0,6]])})))).apply(this,arguments)}function w(e,t){return{fileId:t.id,label:e.props["version-label"],fileName:e.filename,mimeType:e.mime,size:e.size,type:e.type,mtime:1e3*b()(e.lastmod).unix(),preview:(0,c.generateUrl)("/apps/files_versions/preview?file={file}&version={fileVersion}",{file:(0,m.RQ)(t.path,t.name),fileVersion:e.basename}),url:(0,m.RQ)("/remote.php/dav",e.filename),fileVersion:e.basename}}function C(e,t){return k.apply(this,arguments)}function k(){return(k=A(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.customRequest(t.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>'.concat(n,"</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>")});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function V(e){return O.apply(this,arguments)}function O(){return(O=A(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.deleteFile(t.fileName);case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var I=r(88722),R=r(41293),z=r(73229),S=r(80419),L=r(57612),P=r(24860),D=r(15961),N=r(79954),B=r(78595),U={name:"Version",components:{NcActionLink:D.ih,NcActionButton:D.Js,NcListItem:D.hx,NcModal:D.Jc,NcButton:D.P2,NcTextField:D.h3,BackupRestore:I.Z,Download:R.Z,Pencil:z.default,Check:S.default,Delete:L.Z,ImageOffOutline:P.Z},directives:{tooltip:D.u},filters:{humanReadableSize:function(e){return OC.Util.humanFileSize(e)},humanDateFromNow:function(e){return b()(e).fromNow()}},props:{version:{type:Object,required:!0},fileInfo:{type:Object,required:!0},isCurrent:{type:Boolean,default:!1},isFirstVersion:{type:Boolean,default:!1}},data:function(){return{showVersionLabelForm:!1,formVersionLabelValue:this.version.label,capabilities:(0,N.j)("core","capabilities",{files:{version_labeling:!1,version_deletion:!1}}),previewError:!1}},computed:{versionLabel:function(){var e,t=null!==(e=this.version.label)&&void 0!==e?e:"";return this.isCurrent?""===t?(0,s.Iu)("files_versions","Current version"):"".concat(t," (").concat((0,s.Iu)("files_versions","Current version"),")"):this.isFirstVersion&&""===t?(0,s.Iu)("files_versions","Initial version"):t},downloadURL:function(){return this.isCurrent?(0,c.getRootUrl)()+(0,m.RQ)("/remote.php/webdav",this.fileInfo.path,this.fileInfo.name):(0,c.getRootUrl)()+this.version.url},previewURL:function(){return this.isCurrent?(0,c.generateUrl)("/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0",{fileId:this.fileInfo.id,fileEtag:this.fileInfo.etag}):this.version.preview},formattedDate:function(){return b()(this.version.mtime).format("LLL")}},methods:{openVersion:function(e){e.preventDefault();var t={preventDefault:!1,fileInfo:this.fileInfo,version:this.version};(0,B.j8)("files_versions:view:open",t),t.preventDefault||(window.location.href=this.downloadURL)},openVersionLabelModal:function(){var e=this;this.showVersionLabelForm=!0,this.$nextTick((function(){e.$refs.labelInput.$el.getElementsByTagName("input")[0].focus()}))},restoreVersion:function(){this.$emit("restore",this.version)},setVersionLabel:function(e){this.formVersionLabelValue=e,this.showVersionLabelForm=!1,this.$emit("label-update",this.version,e)},deleteVersion:function(){this.$emit("delete",this.version)}}},F=r(93379),E=r.n(F),T=r(7795),Z=r.n(T),M=r(90569),$=r.n(M),q=r(3565),Y=r.n(q),G=r(19216),Q=r.n(G),J=r(44589),H=r.n(J),W=r(22652),K={};K.styleTagTransform=H(),K.setAttributes=Y(),K.insert=$().bind(null,"head"),K.domAPI=Z(),K.insertStyleElement=Q(),E()(W.Z,K),W.Z&&W.Z.locals&&W.Z.locals;var X=r(51900);function ee(e){return ee="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ee(e)}function te(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ne(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?te(Object(n),!0).forEach((function(t){re(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):te(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function re(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==ee(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!==ee(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===ee(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oe(e,t,n,r,o,s,i){try{var a=e[s](i),l=a.value}catch(e){return void n(e)}a.done?t(l):Promise.resolve(l).then(r,o)}function se(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var s=e.apply(t,n);function i(e){oe(s,r,o,i,a,"next",e)}function a(e){oe(s,r,o,i,a,"throw",e)}i(void 0)}))}}function ie(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var ae={name:"VersionTab",components:{Version:(0,X.Z)(U,(function(){var e=this,t=e._self._c;return t("div",[t("NcListItem",{staticClass:"version",attrs:{title:e.versionLabel,"force-display-actions":!0,"data-files-versions-version":""},on:{click:e.openVersion},scopedSlots:e._u([{key:"icon",fn:function(){return[e.previewError?t("div",{staticClass:"version__image"},[t("ImageOffOutline",{attrs:{size:20}})],1):t("img",{staticClass:"version__image",attrs:{src:e.previewURL,alt:""},on:{error:function(t){e.previewError=!0}}})]},proxy:!0},{key:"subtitle",fn:function(){return[t("div",{staticClass:"version__info"},[t("span",{attrs:{title:e.formattedDate}},[e._v(e._s(e._f("humanDateFromNow")(e.version.mtime)))]),e._v(" "),t("span",{staticClass:"version__info__size"},[e._v("•")]),e._v(" "),t("span",{staticClass:"version__info__size"},[e._v(e._s(e._f("humanReadableSize")(e.version.size)))])])]},proxy:!0},{key:"actions",fn:function(){return[!0===e.capabilities.files.version_labeling?t("NcActionButton",{attrs:{"close-after-click":!0},on:{click:e.openVersionLabelModal},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Pencil",{attrs:{size:22}})]},proxy:!0}],null,!1,3072546167)},[e._v("\n\t\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\t")]):e._e(),e._v(" "),e.isCurrent?e._e():t("NcActionButton",{attrs:{"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\t"+e._s(e.t("files_versions","Restore version"))+"\n\t\t\t")]),e._v(" "),t("NcActionLink",{attrs:{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}])},[e._v("\n\t\t\t\t"+e._s(e.t("files_versions","Download version"))+"\n\t\t\t")]),e._v(" "),e.isCurrent||!0!==e.capabilities.files.version_deletion?e._e():t("NcActionButton",{attrs:{"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\t"+e._s(e.t("files_versions","Delete version"))+"\n\t\t\t")])]},proxy:!0}])}),e._v(" "),e.showVersionLabelForm?t("NcModal",{attrs:{title:e.t("files_versions","Name this version")},on:{close:function(t){e.showVersionLabelForm=!1}}},[t("form",{staticClass:"version-label-modal",on:{submit:function(t){return t.preventDefault(),e.setVersionLabel(e.formVersionLabelValue)}}},[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.formVersionLabelValue,placeholder:e.t("files_versions","Version name"),"label-outside":!0},on:{"update:value":function(t){e.formVersionLabelValue=t}}})],1),e._v(" "),t("div",{staticClass:"version-label-modal__info"},[e._v("\n\t\t\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\t\t")]),e._v(" "),t("div",{staticClass:"version-label-modal__actions"},[t("NcButton",{attrs:{disabled:0===e.formVersionLabelValue.trim().length},on:{click:function(t){return e.setVersionLabel("")}}},[e._v("\n\t\t\t\t\t"+e._s(e.t("files_versions","Remove version name"))+"\n\t\t\t\t")]),e._v(" "),t("NcButton",{attrs:{type:"primary","native-type":"submit"},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Check")]},proxy:!0}],null,!1,2308323205)},[e._v("\n\t\t\t\t\t"+e._s(e.t("files_versions","Save version name"))+"\n\t\t\t\t")])],1)])]):e._e()],1)}),[],!1,null,"06c2e1ec",null).exports},data:function(){return{fileInfo:null,versions:[],loading:!1}},mounted:function(){(0,B.Ld)("files_versions:restore:restored",this.fetchVersions)},beforeUnmount:function(){(0,B.r1)("files_versions:restore:restored",this.fetchVersions)},computed:{orderedVersions:function(){var e,t=this;return(e=this.versions,function(e){if(Array.isArray(e))return ie(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return ie(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ie(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).sort((function(e,n){return e.mtime===t.fileInfo.mtime?-1:n.mtime===t.fileInfo.mtime?1:n.mtime-e.mtime}))},initialVersionMtime:function(){return this.versions.map((function(e){return e.mtime})).reduce((function(e,t){return Math.min(e,t)}))}},methods:{update:function(e){var t=this;return se(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:t.fileInfo=e,t.resetState(),t.fetchVersions();case 3:case"end":return n.stop()}}),n)})))()},fetchVersions:function(){var e=this;return se(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,e.loading=!0,t.next=4,y(e.fileInfo);case 4:e.versions=t.sent;case 5:return t.prev=5,e.loading=!1,t.finish(5);case 8:case"end":return t.stop()}}),t,null,[[0,,5,8]])})))()},handleRestore:function(e){var n=this;return se(regeneratorRuntime.mark((function r(){var o,s;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=n.fileInfo,n.fileInfo=ne(ne({},n.fileInfo),{},{size:e.size,mtime:e.mtime}),s={preventDefault:!1,fileInfo:n.fileInfo,version:e},(0,B.j8)("files_versions:restore:requested",s),!s.preventDefault){r.next=6;break}return r.abrupt("return");case 6:return r.prev=6,r.next=9,_(e);case 9:""!==e.label?(0,i.s$)(t("files_versions","".concat(e.label," restored"))):e.mtime===n.initialVersionMtime?(0,i.s$)(t("files_versions","Initial version restored")):(0,i.s$)(t("files_versions","Version restored")),(0,B.j8)("files_versions:restore:restored",e),r.next=18;break;case 13:r.prev=13,r.t0=r.catch(6),n.fileInfo=o,(0,i.x2)(t("files_versions","Could not restore version")),(0,B.j8)("files_versions:restore:failed",e);case 18:case"end":return r.stop()}}),r,null,[[6,13]])})))()},handleLabelUpdate:function(e,n){return se(regeneratorRuntime.mark((function r(){var o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o=e.label,e.label=n,r.prev=2,r.next=5,C(e,n);case 5:r.next=11;break;case 7:r.prev=7,r.t0=r.catch(2),e.label=o,(0,i.x2)(t("files_versions","Could not set version name"));case 11:case"end":return r.stop()}}),r,null,[[2,7]])})))()},handleDelete:function(e){var n=this;return se(regeneratorRuntime.mark((function r(){var o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o=n.versions.indexOf(e),n.versions.splice(o,1),r.prev=2,r.next=5,V(e);case 5:r.next=11;break;case 7:r.prev=7,r.t0=r.catch(2),n.versions.push(e),(0,i.x2)(t("files_versions","Could not delete version"));case 11:case"end":return r.stop()}}),r,null,[[2,7]])})))()},resetState:function(){this.$set(this,"versions",[])}}},le=(0,X.Z)(ae,(function(){var e=this,t=e._self._c;return t("ul",{attrs:{"data-files-versions-versions-list":""}},e._l(e.orderedVersions,(function(n){return t("Version",{key:n.mtime,attrs:{version:n,"file-info":e.fileInfo,"is-current":n.mtime===e.fileInfo.mtime,"is-first-version":n.mtime===e.initialVersionMtime},on:{restore:e.handleRestore,"label-update":e.handleLabelUpdate,delete:e.handleDelete}})})),1)}),[],!1,null,null,null).exports,ce=r(61361),ue=r(27608);function fe(e,t,n,r,o,s,i){try{var a=e[s](i),l=a.value}catch(e){return void n(e)}a.done?t(l):Promise.resolve(l).then(r,o)}o.ZP.prototype.t=s.Iu,o.ZP.prototype.n=s.uN,o.ZP.use(ce.default);var de=o.ZP.extend(le),ve=null;window.addEventListener("DOMContentLoaded",(function(){var e;void 0!==(null===(e=OCA.Files)||void 0===e?void 0:e.Sidebar)&&OCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab({id:"version_vue",name:(0,s.Iu)("files_versions","Versions"),iconSvg:ue,mount:function(e,t,n){return(r=regeneratorRuntime.mark((function r(){return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return ve&&ve.$destroy(),ve=new de({parent:n}),r.next=4,ve.update(t);case 4:ve.$mount(e);case 5:case"end":return r.stop()}}),r)})),function(){var e=this,t=arguments;return new Promise((function(n,o){var s=r.apply(e,t);function i(e){fe(s,n,o,i,a,"next",e)}function a(e){fe(s,n,o,i,a,"throw",e)}i(void 0)}))})();var r},update:function(e){ve.update(e)},destroy:function(){ve.$destroy(),ve=null},enabled:function(e){var t;return!(null===(t=null==e?void 0:e.isDirectory())||void 0===t||t)}}))}))},22652:function(e,t,n){"use strict";var r=n(87537),o=n.n(r),s=n(23645),i=n.n(s)()(o());i.push([e.id,".version[data-v-06c2e1ec]{display:flex;flex-direction:row}.version__info[data-v-06c2e1ec]{display:flex;flex-direction:row;align-items:center;gap:.5rem}.version__info__size[data-v-06c2e1ec]{color:var(--color-text-lighter)}.version__image[data-v-06c2e1ec]{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-label-modal[data-v-06c2e1ec]{display:flex;justify-content:space-between;flex-direction:column;height:250px;padding:16px}.version-label-modal__title[data-v-06c2e1ec]{margin-bottom:12px;font-weight:600}.version-label-modal__info[data-v-06c2e1ec]{margin-top:12px;color:var(--color-text-maxcontrast)}.version-label-modal__actions[data-v-06c2e1ec]{display:flex;justify-content:space-between;margin-top:64px}","",{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,CAEA,sCACC,+BAAA,CAIF,iCACC,UAAA,CACA,WAAA,CACA,oCAAA,CACA,wCAAA,CAGA,YAAA,CACA,sBAAA,CACA,6BAAA,CAIF,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 {\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\n\t\t&__size {\n\t\t\tcolor: var(--color-text-lighter);\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\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:""}]),t.Z=i},46700:function(e,t,n){var r={"./af":42786,"./af.js":42786,"./ar":30867,"./ar-dz":14130,"./ar-dz.js":14130,"./ar-kw":96135,"./ar-kw.js":96135,"./ar-ly":56440,"./ar-ly.js":56440,"./ar-ma":47702,"./ar-ma.js":47702,"./ar-sa":16040,"./ar-sa.js":16040,"./ar-tn":37100,"./ar-tn.js":37100,"./ar.js":30867,"./az":31083,"./az.js":31083,"./be":9808,"./be.js":9808,"./bg":68338,"./bg.js":68338,"./bm":67438,"./bm.js":67438,"./bn":8905,"./bn-bd":76225,"./bn-bd.js":76225,"./bn.js":8905,"./bo":11560,"./bo.js":11560,"./br":1278,"./br.js":1278,"./bs":80622,"./bs.js":80622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":50877,"./cv.js":50877,"./cy":47373,"./cy.js":47373,"./da":24780,"./da.js":24780,"./de":59740,"./de-at":60217,"./de-at.js":60217,"./de-ch":60894,"./de-ch.js":60894,"./de.js":59740,"./dv":5300,"./dv.js":5300,"./el":50837,"./el.js":50837,"./en-au":78348,"./en-au.js":78348,"./en-ca":77925,"./en-ca.js":77925,"./en-gb":22243,"./en-gb.js":22243,"./en-ie":46436,"./en-ie.js":46436,"./en-il":47207,"./en-il.js":47207,"./en-in":44175,"./en-in.js":44175,"./en-nz":76319,"./en-nz.js":76319,"./en-sg":31662,"./en-sg.js":31662,"./eo":92915,"./eo.js":92915,"./es":55655,"./es-do":55251,"./es-do.js":55251,"./es-mx":96112,"./es-mx.js":96112,"./es-us":71146,"./es-us.js":71146,"./es.js":55655,"./et":5603,"./et.js":5603,"./eu":77763,"./eu.js":77763,"./fa":76959,"./fa.js":76959,"./fi":11897,"./fi.js":11897,"./fil":42549,"./fil.js":42549,"./fo":94694,"./fo.js":94694,"./fr":94470,"./fr-ca":63049,"./fr-ca.js":63049,"./fr-ch":52330,"./fr-ch.js":52330,"./fr.js":94470,"./fy":5044,"./fy.js":5044,"./ga":29295,"./ga.js":29295,"./gd":2101,"./gd.js":2101,"./gl":38794,"./gl.js":38794,"./gom-deva":27884,"./gom-deva.js":27884,"./gom-latn":23168,"./gom-latn.js":23168,"./gu":95349,"./gu.js":95349,"./he":24206,"./he.js":24206,"./hi":30094,"./hi.js":30094,"./hr":30316,"./hr.js":30316,"./hu":22138,"./hu.js":22138,"./hy-am":11423,"./hy-am.js":11423,"./id":29218,"./id.js":29218,"./is":90135,"./is.js":90135,"./it":90626,"./it-ch":10150,"./it-ch.js":10150,"./it.js":90626,"./ja":39183,"./ja.js":39183,"./jv":24286,"./jv.js":24286,"./ka":12105,"./ka.js":12105,"./kk":47772,"./kk.js":47772,"./km":18758,"./km.js":18758,"./kn":79282,"./kn.js":79282,"./ko":33730,"./ko.js":33730,"./ku":1408,"./ku.js":1408,"./ky":33291,"./ky.js":33291,"./lb":36841,"./lb.js":36841,"./lo":55466,"./lo.js":55466,"./lt":57010,"./lt.js":57010,"./lv":37595,"./lv.js":37595,"./me":39861,"./me.js":39861,"./mi":35493,"./mi.js":35493,"./mk":95966,"./mk.js":95966,"./ml":87341,"./ml.js":87341,"./mn":5115,"./mn.js":5115,"./mr":10370,"./mr.js":10370,"./ms":9847,"./ms-my":41237,"./ms-my.js":41237,"./ms.js":9847,"./mt":72126,"./mt.js":72126,"./my":56165,"./my.js":56165,"./nb":64924,"./nb.js":64924,"./ne":16744,"./ne.js":16744,"./nl":93901,"./nl-be":59814,"./nl-be.js":59814,"./nl.js":93901,"./nn":83877,"./nn.js":83877,"./oc-lnc":92135,"./oc-lnc.js":92135,"./pa-in":15858,"./pa-in.js":15858,"./pl":64495,"./pl.js":64495,"./pt":89520,"./pt-br":57971,"./pt-br.js":57971,"./pt.js":89520,"./ro":96459,"./ro.js":96459,"./ru":21793,"./ru.js":21793,"./sd":40950,"./sd.js":40950,"./se":10490,"./se.js":10490,"./si":90124,"./si.js":90124,"./sk":64249,"./sk.js":64249,"./sl":14985,"./sl.js":14985,"./sq":51104,"./sq.js":51104,"./sr":49131,"./sr-cyrl":79915,"./sr-cyrl.js":79915,"./sr.js":49131,"./ss":85893,"./ss.js":85893,"./sv":98760,"./sv.js":98760,"./sw":91172,"./sw.js":91172,"./ta":27333,"./ta.js":27333,"./te":23110,"./te.js":23110,"./tet":52095,"./tet.js":52095,"./tg":27321,"./tg.js":27321,"./th":9041,"./th.js":9041,"./tk":19005,"./tk.js":19005,"./tl-ph":75768,"./tl-ph.js":75768,"./tlh":89444,"./tlh.js":89444,"./tr":72397,"./tr.js":72397,"./tzl":28254,"./tzl.js":28254,"./tzm":51106,"./tzm-latn":30699,"./tzm-latn.js":30699,"./tzm.js":51106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":67691,"./uk.js":67691,"./ur":13795,"./ur.js":13795,"./uz":6791,"./uz-latn":60588,"./uz-latn.js":60588,"./uz.js":6791,"./vi":65666,"./vi.js":65666,"./x-pseudo":14378,"./x-pseudo.js":14378,"./yo":75805,"./yo.js":75805,"./zh-cn":83839,"./zh-cn.js":83839,"./zh-hk":55726,"./zh-hk.js":55726,"./zh-mo":99807,"./zh-mo.js":99807,"./zh-tw":74152,"./zh-tw.js":74152};function o(e){var t=s(e);return n(t)}function s(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=s,e.exports=o,o.id=46700},69862:function(){},40964:function(){}},r={};function o(e){var t=r[e];if(void 0!==t)return t.exports;var s=r[e]={id:e,loaded:!1,exports:{}};return n[e].call(s.exports,s,s.exports,o),s.loaded=!0,s.exports}o.m=n,e=[],o.O=function(t,n,r,s){if(!n){var i=1/0;for(u=0;u<e.length;u++){n=e[u][0],r=e[u][1],s=e[u][2];for(var a=!0,l=0;l<n.length;l++)(!1&s||i>=s)&&Object.keys(o.O).every((function(e){return o.O[e](n[l])}))?n.splice(l--,1):(a=!1,s<i&&(i=s));if(a){e.splice(u--,1);var c=r();void 0!==c&&(t=c)}}return t}s=s||0;for(var u=e.length;u>0&&e[u-1][2]>s;u--)e[u]=e[u-1];e[u]=[n,r,s]},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,{a:t}),t},o.d=function(e,t){for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},o.j=1358,function(){o.b=document.baseURI||self.location.href;var e={1358:0};o.O.j=function(t){return 0===e[t]};var t=function(t,n){var r,s,i=n[0],a=n[1],l=n[2],c=0;if(i.some((function(t){return 0!==e[t]}))){for(r in a)o.o(a,r)&&(o.m[r]=a[r]);if(l)var u=l(o)}for(t&&t(n);c<i.length;c++)s=i[c],o.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return o.O(u)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}(),o.nc=void 0;var s=o.O(void 0,[7874],(function(){return o(76156)}));s=o.O(s)}();
+//# sourceMappingURL=files_versions-files_versions.js.map?v=840e016ee714f82f4a61
\ No newline at end of file
index 2124340ee777c81f492e78c706a311102d416c62..2b39ba7b994fce862e5e6e551ee8af437abf7b5b 100644 (file)
@@ -1 +1 @@
-{"version":3,"file":"files_versions-files_versions.js?v=75ca2049fe5d6d53130e","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/files_versions/src/utils/davClient.js","webpack:///nextcloud/apps/files_versions/src/utils/davRequest.js","webpack:///nextcloud/apps/files_versions/src/utils/logger.js","webpack:///nextcloud/apps/files_versions/src/utils/versions.js","webpack://nextcloud/./apps/files_versions/src/components/Version.vue?f787","webpack:///nextcloud/apps/files_versions/src/components/Version.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/files_versions/src/components/Version.vue","webpack://nextcloud/./apps/files_versions/src/components/Version.vue?5e0e","webpack:///nextcloud/apps/files_versions/src/views/VersionTab.vue","webpack:///nextcloud/apps/files_versions/src/views/VersionTab.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files_versions/src/components/Version.vue?0a31","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=5fe2c526&prod&scoped=true&lang=scss&","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","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/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(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(function(key) { return __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};","/**\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, getPatcher } from 'webdav'\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport axios from '@nextcloud/axios'\n\nconst rootPath = 'dav'\n\n// force our axios\nconst patcher = getPatcher()\npatcher.patch('request', axios)\n\n// init webdav client on default dav endpoint\nconst remote = generateRemoteUrl(rootPath)\nexport default createClient(remote)\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<nc:version-label />\n\t</d:prop>\n</d:propfind>`\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 { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files_version')\n\t.detectUser()\n\t.build()\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 { getCurrentUser } from '@nextcloud/auth'\nimport client from '../utils/davClient.js'\nimport davRequest from '../utils/davRequest.js'\nimport logger from '../utils/logger.js'\nimport { joinPaths } from '@nextcloud/paths'\nimport { generateUrl } from '@nextcloud/router'\nimport moment from '@nextcloud/moment'\n\n/**\n * @typedef {object} Version\n * @property {string} fileId - The id of the file associated to the version.\n * @property {string} label - 'Current version' or ''\n * @property {string} fileName - File name relative to the version DAV endpoint\n * @property {string} mimeType - Empty for the current version, else the actual mime type of the version\n * @property {string} size - Human readable size\n * @property {string} type - 'file'\n * @property {number} mtime - Version creation date as a timestamp\n * @property {string} preview - Preview URL of the version\n * @property {string} url - Download URL of the version\n * @property {string|null} fileVersion - The version id, null for the current version\n */\n\n/**\n * @param fileInfo\n * @return {Promise<Version[]>}\n */\nexport async function fetchVersions(fileInfo) {\n\tconst path = `/versions/${getCurrentUser()?.uid}/versions/${fileInfo.id}`\n\n\ttry {\n\t\t/** @type {import('webdav').ResponseDataDetailed<import('webdav').FileStat[]>} */\n\t\tconst response = await client.getDirectoryContents(path, {\n\t\t\tdata: davRequest,\n\t\t\tdetails: true,\n\t\t})\n\t\treturn response.data\n\t\t\t// Filter out root\n\t\t\t.filter(({ mime }) => mime !== '')\n\t\t\t.map(version => formatVersion(version, fileInfo))\n\t} catch (exception) {\n\t\tlogger.error('Could not fetch version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Restore the given version\n *\n * @param {Version} version\n */\nexport async function restoreVersion(version) {\n\ttry {\n\t\tlogger.debug('Restoring version', { url: version.url })\n\t\tawait client.moveFile(\n\t\t\t`/versions/${getCurrentUser()?.uid}/versions/${version.fileId}/${version.fileVersion}`,\n\t\t\t`/versions/${getCurrentUser()?.uid}/restore/target`\n\t\t)\n\t} catch (exception) {\n\t\tlogger.error('Could not restore version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Format version\n *\n * @param {object} version - raw version received from the versions DAV endpoint\n * @param {object} fileInfo - file properties received from the files DAV endpoint\n * @return {Version}\n */\nfunction formatVersion(version, fileInfo) {\n\treturn {\n\t\tfileId: fileInfo.id,\n\t\tlabel: version.props['version-label'],\n\t\tfileName: version.filename,\n\t\tmimeType: version.mime,\n\t\tsize: version.size,\n\t\ttype: version.type,\n\t\tmtime: moment(version.lastmod).unix() * 1000,\n\t\tpreview: generateUrl('/apps/files_versions/preview?file={file}&version={fileVersion}', {\n\t\t\tfile: joinPaths(fileInfo.path, fileInfo.name),\n\t\t\tfileVersion: version.basename,\n\t\t}),\n\t\turl: joinPaths('/remote.php/dav', version.filename),\n\t\tfileVersion: version.basename,\n\t}\n}\n\n/**\n * @param {Version} version\n * @param {string} newLabel\n */\nexport async function setVersionLabel(version, newLabel) {\n\treturn await client.customRequest(\n\t\tversion.fileName,\n\t\t{\n\t\t\tmethod: 'PROPPATCH',\n\t\t\tdata: `<?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\t\t}\n\t)\n}\n\n/**\n * @param {Version} version\n */\nexport async function deleteVersion(version) {\n\tawait client.deleteFile(version.fileName)\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('NcListItem',{staticClass:\"version\",attrs:{\"title\":_vm.versionLabel,\"force-display-actions\":true,\"data-files-versions-version\":\"\"},on:{\"click\":_vm.openVersion},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(!_vm.previewError)?_c('img',{staticClass:\"version__image\",attrs:{\"src\":_vm.previewURL,\"alt\":\"\"},on:{\"error\":function($event){_vm.previewError = true}}}):_c('div',{staticClass:\"version__image\"},[_c('ImageOffOutline',{attrs:{\"size\":20}})],1)]},proxy:true},{key:\"subtitle\",fn:function(){return [_c('div',{staticClass:\"version__info\"},[_c('span',{attrs:{\"title\":_vm.formattedDate}},[_vm._v(_vm._s(_vm._f(\"humanDateFromNow\")(_vm.version.mtime)))]),_vm._v(\" \"),_c('span',{staticClass:\"version__info__size\"},[_vm._v(\"•\")]),_vm._v(\" \"),_c('span',{staticClass:\"version__info__size\"},[_vm._v(_vm._s(_vm._f(\"humanReadableSize\")(_vm.version.size)))])])]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.capabilities.files.version_labeling === true)?_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":_vm.openVersionLabelModal},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":22}})]},proxy:true}],null,false,3072546167)},[_vm._v(\"\\n\\t\\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\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.isCurrent)?_c('NcActionButton',{attrs:{\"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\\t\"+_vm._s(_vm.t('files_versions', 'Restore version'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcActionLink',{attrs:{\"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}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Download version'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),(!_vm.isCurrent && _vm.capabilities.files.version_deletion === true)?_c('NcActionButton',{attrs:{\"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\\t\"+_vm._s(_vm.t('files_versions', 'Delete version'))+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_vm.showVersionLabelForm)?_c('NcModal',{attrs:{\"title\":_vm.t('files_versions', 'Name this version')},on:{\"close\":function($event){_vm.showVersionLabelForm = false}}},[_c('form',{staticClass:\"version-label-modal\",on:{\"submit\":function($event){$event.preventDefault();return _vm.setVersionLabel(_vm.formVersionLabelValue)}}},[_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.formVersionLabelValue,\"placeholder\":_vm.t('files_versions', 'Version name'),\"label-outside\":true},on:{\"update:value\":function($event){_vm.formVersionLabelValue=$event}}})],1),_vm._v(\" \"),_c('div',{staticClass:\"version-label-modal__info\"},[_vm._v(\"\\n\\t\\t\\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\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"version-label-modal__actions\"},[_c('NcButton',{attrs:{\"disabled\":_vm.formVersionLabelValue.trim().length === 0},on:{\"click\":function($event){return _vm.setVersionLabel('')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Remove version name'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"primary\",\"native-type\":\"submit\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Check')]},proxy:true}],null,false,2308323205)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Save version name'))+\"\\n\\t\\t\\t\\t\")])],1)])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.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!./Version.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>\n\t\t<NcListItem class=\"version\"\n\t\t\t:title=\"versionLabel\"\n\t\t\t@click=\"openVersion\"\n\t\t\t:force-display-actions=\"true\"\n\t\t\tdata-files-versions-version>\n\t\t\t<template #icon>\n\t\t\t\t<img v-if=\"!previewError\"\n\t\t\t\t\t:src=\"previewURL\"\n\t\t\t\t\talt=\"\"\n\t\t\t\t\tclass=\"version__image\"\n\t\t\t\t\t@error=\"previewError = true\">\n\t\t\t\t<div v-else\n\t\t\t\t\tclass=\"version__image\">\n\t\t\t\t\t<ImageOffOutline :size=\"20\" />\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<template #subtitle>\n\t\t\t\t<div class=\"version__info\">\n\t\t\t\t\t<span :title=\"formattedDate\">{{ version.mtime | humanDateFromNow }}</span>\n\t\t\t\t\t<!-- Separate dot to improve alignement -->\n\t\t\t\t\t<span class=\"version__info__size\">•</span>\n\t\t\t\t\t<span class=\"version__info__size\">{{ version.size | humanReadableSize }}</span>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<template #actions>\n\t\t\t\t<NcActionButton\tv-if=\"capabilities.files.version_labeling === true\"\n\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t@click=\"openVersionLabelModal\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Pencil :size=\"22\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ version.label === '' ? t('files_versions', 'Name this version') : t('files_versions', 'Edit version name') }}\n\t\t\t\t</NcActionButton>\n\t\t\t\t<NcActionButton v-if=\"!isCurrent\"\n\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t@click=\"restoreVersion\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<BackupRestore :size=\"22\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_versions', 'Restore version') }}\n\t\t\t\t</NcActionButton>\n\t\t\t\t<NcActionLink :href=\"downloadURL\"\n\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t:download=\"downloadURL\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Download :size=\"22\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_versions', 'Download version') }}\n\t\t\t\t</NcActionLink>\n\t\t\t\t<NcActionButton v-if=\"!isCurrent && capabilities.files.version_deletion === true\"\n\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t@click=\"deleteVersion\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Delete :size=\"22\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_versions', 'Delete version') }}\n\t\t\t\t</NcActionButton>\n\t\t\t</template>\n\t\t</NcListItem>\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<form class=\"version-label-modal\"\n\t\t\t\t@submit.prevent=\"setVersionLabel(formVersionLabelValue)\">\n\t\t\t\t<label>\n\t\t\t\t\t<div class=\"version-label-modal__title\">{{ t('files_versions', 'Version name') }}</div>\n\t\t\t\t\t<NcTextField ref=\"labelInput\"\n\t\t\t\t\t\t:value.sync=\"formVersionLabelValue\"\n\t\t\t\t\t\t:placeholder=\"t('files_versions', 'Version name')\"\n\t\t\t\t\t\t:label-outside=\"true\" />\n\t\t\t\t</label>\n\n\t\t\t\t<div class=\"version-label-modal__info\">\n\t\t\t\t\t{{ t('files_versions', 'Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.') }}\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"version-label-modal__actions\">\n\t\t\t\t\t<NcButton :disabled=\"formVersionLabelValue.trim().length === 0\" @click=\"setVersionLabel('')\">\n\t\t\t\t\t\t{{ t('files_versions', 'Remove version name') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton type=\"primary\" native-type=\"submit\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Check />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t{{ t('files_versions', 'Save version name') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t</NcModal>\n\t</div>\n</template>\n\n<script>\nimport BackupRestore from 'vue-material-design-icons/BackupRestore.vue'\nimport Download from 'vue-material-design-icons/Download.vue'\nimport Pencil from 'vue-material-design-icons/Pencil.vue'\nimport Check from 'vue-material-design-icons/Check.vue'\nimport Delete from 'vue-material-design-icons/Delete'\nimport ImageOffOutline from 'vue-material-design-icons/ImageOffOutline.vue'\nimport { NcActionButton, NcActionLink, NcListItem, NcModal, NcButton, NcTextField, Tooltip } from '@nextcloud/vue'\nimport moment from '@nextcloud/moment'\nimport { translate } from '@nextcloud/l10n'\nimport { joinPaths } from '@nextcloud/paths'\nimport { generateUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport { emit } from '@nextcloud/event-bus'\n\nexport default {\n\tname: 'Version',\n\tcomponents: {\n\t\tNcActionLink,\n\t\tNcActionButton,\n\t\tNcListItem,\n\t\tNcModal,\n\t\tNcButton,\n\t\tNcTextField,\n\t\tBackupRestore,\n\t\tDownload,\n\t\tPencil,\n\t\tCheck,\n\t\tDelete,\n\t\tImageOffOutline,\n\t},\n\tdirectives: {\n\t\ttooltip: Tooltip,\n\t},\n\tfilters: {\n\t\t/**\n\t\t * @param {number} bytes\n\t\t * @return {string}\n\t\t */\n\t\thumanReadableSize(bytes) {\n\t\t\treturn OC.Util.humanFileSize(bytes)\n\t\t},\n\t\t/**\n\t\t * @param {number} timestamp\n\t\t * @return {string}\n\t\t */\n\t\thumanDateFromNow(timestamp) {\n\t\t\treturn moment(timestamp).fromNow()\n\t\t},\n\t},\n\tprops: {\n\t\t/** @type {Vue.PropOptions<import('../utils/versions.js').Version>} */\n\t\tversion: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tisCurrent: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tisFirstVersion: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tshowVersionLabelForm: false,\n\t\t\tformVersionLabelValue: this.version.label,\n\t\t\tcapabilities: loadState('core', 'capabilities', { files: { version_labeling: false, version_deletion: false } }),\n\t\t\tpreviewError: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\t/**\n\t\t * @return {string}\n\t\t */\n\t\tversionLabel() {\n\t\t\tconst label = this.version.label ?? ''\n\n\t\t\tif (this.isCurrent) {\n\t\t\t\tif (label === '') {\n\t\t\t\t\treturn translate('files_versions', 'Current version')\n\t\t\t\t} else {\n\t\t\t\t\treturn `${label} (${translate('files_versions', 'Current version')})`\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.isFirstVersion && label === '') {\n\t\t\t\treturn translate('files_versions', 'Initial version')\n\t\t\t}\n\n\t\t\treturn label\n\t\t},\n\n\t\t/**\n\t\t * @return {string}\n\t\t */\n\t\tdownloadURL() {\n\t\t\tif (this.isCurrent) {\n\t\t\t\treturn joinPaths('/remote.php/webdav', this.fileInfo.path, this.fileInfo.name)\n\t\t\t} else {\n\t\t\t\treturn this.version.url\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @return {string}\n\t\t */\n\t\tpreviewURL() {\n\t\t\tif (this.isCurrent) {\n\t\t\t\treturn generateUrl('/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0', {\n\t\t\t\t\tfileId: this.fileInfo.id,\n\t\t\t\t\tfileEtag: this.fileInfo.etag,\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\treturn this.version.preview\n\t\t\t}\n\t\t},\n\n\t\t/** @return {string} */\n\t\tformattedDate() {\n\t\t\treturn moment(this.version.mtime).format('LLL')\n\t\t},\n\t},\n\tmethods: {\n\t\topenVersion(e) {\n\t\t\te.preventDefault()\n\t\t\tconst openVersionEvent = {\n\t\t\t\tpreventDefault: false,\n\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\tversion: this.version,\n\t\t\t}\n\t\t\temit('files_versions:view:open', openVersionEvent)\n\t\t\tif (openVersionEvent.preventDefault) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\twindow.location.href = this.downloadURL\n\t\t},\n\t\topenVersionLabelModal() {\n\t\t\tthis.showVersionLabelForm = true\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$refs.labelInput.$el.getElementsByTagName('input')[0].focus()\n\t\t\t})\n\t\t},\n\n\t\trestoreVersion() {\n\t\t\tthis.$emit('restore', this.version)\n\t\t},\n\n\t\tsetVersionLabel(label) {\n\t\t\tthis.formVersionLabelValue = label\n\t\t\tthis.showVersionLabelForm = false\n\t\t\tthis.$emit('label-update', this.version, label)\n\t\t},\n\n\t\tdeleteVersion() {\n\t\t\tthis.$emit('delete', this.version)\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\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\n\t\t&__size {\n\t\t\tcolor: var(--color-text-lighter);\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\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</style>\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!./Version.vue?vue&type=style&index=0&id=5fe2c526&prod&scoped=true&lang=scss&\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \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=5fe2c526&prod&scoped=true&lang=scss&\";\n       export default content && content.locals ? content.locals : undefined;\n","<!--\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<ul data-files-versions-versions-list>\n\t\t<Version v-for=\"version in orderedVersions\"\n\t\t\t:key=\"version.mtime\"\n\t\t\t:version=\"version\"\n\t\t\t:file-info=\"fileInfo\"\n\t\t\t:is-current=\"version.mtime === fileInfo.mtime\"\n\t\t\t:is-first-version=\"version.mtime === initialVersionMtime\"\n\t\t\t@restore=\"handleRestore\"\n\t\t\t@label-update=\"handleLabelUpdate\"\n\t\t\t@delete=\"handleDelete\" />\n\t</ul>\n</template>\n\n<script>\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { fetchVersions, deleteVersion, restoreVersion, setVersionLabel } from '../utils/versions.js'\nimport Version from '../components/Version.vue'\nimport { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'\n\nexport default {\n\tname: 'VersionTab',\n\tcomponents: {\n\t\tVersion,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tfileInfo: null,\n\t\t\t/** @type {import('../utils/versions.js').Version[]} */\n\t\t\tversions: [],\n\t\t\tloading: false,\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\tcomputed: {\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.js').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 * @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\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 * 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.js').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 *\n\t\t * @param {import('../utils/versions.js').Version} version\n\t\t * @param {string} newName\n\t\t */\n\t\tasync handleLabelUpdate(version, newName) {\n\t\t\tconst oldLabel = version.label\n\t\t\tversion.label = newName\n\n\t\t\ttry {\n\t\t\t\tawait setVersionLabel(version, newName)\n\t\t\t} catch (exception) {\n\t\t\t\tversion.label = oldLabel\n\t\t\t\tshowError(t('files_versions', 'Could not set version name'))\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.js').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\t},\n}\n</script>\n","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&\"","import { render, staticRenderFns } from \"./Version.vue?vue&type=template&id=5fe2c526&scoped=true&\"\nimport script from \"./Version.vue?vue&type=script&lang=js&\"\nexport * from \"./Version.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Version.vue?vue&type=style&index=0&id=5fe2c526&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  \"5fe2c526\",\n  null\n  \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./VersionTab.vue?vue&type=template&id=f6cb68d2&\"\nimport script from \"./VersionTab.vue?vue&type=script&lang=js&\"\nexport * from \"./VersionTab.vue?vue&type=script&lang=js&\"\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('ul',{attrs:{\"data-files-versions-versions-list\":\"\"}},_vm._l((_vm.orderedVersions),function(version){return _c('Version',{key:version.mtime,attrs:{\"version\":version,\"file-info\":_vm.fileInfo,\"is-current\":version.mtime === _vm.fileInfo.mtime,\"is-first-version\":version.mtime === _vm.initialVersionMtime},on:{\"restore\":_vm.handleRestore,\"label-update\":_vm.handleLabelUpdate,\"delete\":_vm.handleDelete}})}),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 node/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\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-5fe2c526]{display:flex;flex-direction:row}.version__info[data-v-5fe2c526]{display:flex;flex-direction:row;align-items:center;gap:.5rem}.version__info__size[data-v-5fe2c526]{color:var(--color-text-lighter)}.version__image[data-v-5fe2c526]{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-label-modal[data-v-5fe2c526]{display:flex;justify-content:space-between;flex-direction:column;height:250px;padding:16px}.version-label-modal__title[data-v-5fe2c526]{margin-bottom:12px;font-weight:600}.version-label-modal__info[data-v-5fe2c526]{margin-top:12px;color:var(--color-text-maxcontrast)}.version-label-modal__actions[data-v-5fe2c526]{display:flex;justify-content:space-between;margin-top:64px}\", \"\",{\"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,CAEA,sCACC,+BAAA,CAIF,iCACC,UAAA,CACA,WAAA,CACA,oCAAA,CACA,wCAAA,CAGA,YAAA,CACA,sBAAA,CACA,6BAAA,CAIF,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 {\\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\\n\\t\\t&__size {\\n\\t\\t\\tcolor: var(--color-text-lighter);\\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\\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","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","// 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 = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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__.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 = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(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 = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1358;","__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\t1358: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(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(function(id) { return 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, [7874], function() { return __webpack_require__(16457); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","getPatcher","patch","axios","remote","generateRemoteUrl","createClient","getLoggerBuilder","setApp","detectUser","build","fetchVersions","fileInfo","path","getCurrentUser","uid","id","client","data","davRequest","details","response","filter","mime","map","version","formatVersion","logger","error","exception","restoreVersion","debug","url","fileId","fileVersion","label","props","fileName","filename","mimeType","size","type","mtime","moment","lastmod","unix","preview","generateUrl","file","joinPaths","name","basename","setVersionLabel","newLabel","method","deleteVersion","components","NcActionLink","NcActionButton","NcListItem","NcModal","NcButton","NcTextField","BackupRestore","Download","Pencil","Check","Delete","ImageOffOutline","directives","tooltip","filters","humanReadableSize","humanDateFromNow","required","isCurrent","default","isFirstVersion","showVersionLabelForm","formVersionLabelValue","capabilities","files","version_labeling","version_deletion","previewError","computed","versionLabel","downloadURL","previewURL","fileEtag","formattedDate","methods","openVersion","e","preventDefault","emit","window","openVersionLabelModal","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","Version","_vm","this","_c","_self","staticClass","attrs","on","scopedSlots","_u","key","fn","$event","proxy","_v","_s","_f","t","_e","ref","trim","length","versions","loading","mounted","subscribe","beforeUnmount","unsubscribe","orderedVersions","initialVersionMtime","reduce","update","handleRestore","oldFileInfo","restoreStartedEventState","showSuccess","showError","handleLabelUpdate","oldLabel","handleDelete","index","resetState","_l","Vue","n","VTooltip","View","VersionTab","TabInstance","addEventListener","undefined","OCA","Files","Sidebar","registerTab","Tab","iconSvg","mount","el","context","$destroy","parent","$mount","destroy","enabled","isDirectory","___CSS_LOADER_EXPORT___","push","module","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","code","keys","Object","resolve","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","call","m","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","getter","__esModule","d","a","definition","defineProperty","enumerable","get","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","children","b","document","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","nc","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"files_versions-files_versions.js?v=840e016ee714f82f4a61","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/files_versions/src/utils/davClient.js","webpack:///nextcloud/apps/files_versions/src/utils/davRequest.js","webpack:///nextcloud/apps/files_versions/src/utils/logger.js","webpack:///nextcloud/apps/files_versions/src/utils/versions.js","webpack://nextcloud/./apps/files_versions/src/components/Version.vue?f787","webpack:///nextcloud/apps/files_versions/src/components/Version.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/files_versions/src/components/Version.vue","webpack://nextcloud/./apps/files_versions/src/components/Version.vue?855a","webpack:///nextcloud/apps/files_versions/src/views/VersionTab.vue","webpack:///nextcloud/apps/files_versions/src/views/VersionTab.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files_versions/src/components/Version.vue?0a31","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=06c2e1ec&prod&scoped=true&lang=scss&","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","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/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(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(function(key) { return __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};","/**\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, getPatcher } from 'webdav'\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport axios from '@nextcloud/axios'\n\nconst rootPath = 'dav'\n\n// force our axios\nconst patcher = getPatcher()\npatcher.patch('request', axios)\n\n// init webdav client on default dav endpoint\nconst remote = generateRemoteUrl(rootPath)\nexport default createClient(remote)\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<nc:version-label />\n\t</d:prop>\n</d:propfind>`\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 { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files_version')\n\t.detectUser()\n\t.build()\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 { getCurrentUser } from '@nextcloud/auth'\nimport client from '../utils/davClient.js'\nimport davRequest from '../utils/davRequest.js'\nimport logger from '../utils/logger.js'\nimport { joinPaths } from '@nextcloud/paths'\nimport { generateUrl } from '@nextcloud/router'\nimport moment from '@nextcloud/moment'\n\n/**\n * @typedef {object} Version\n * @property {string} fileId - The id of the file associated to the version.\n * @property {string} label - 'Current version' or ''\n * @property {string} fileName - File name relative to the version DAV endpoint\n * @property {string} mimeType - Empty for the current version, else the actual mime type of the version\n * @property {string} size - Human readable size\n * @property {string} type - 'file'\n * @property {number} mtime - Version creation date as a timestamp\n * @property {string} preview - Preview URL of the version\n * @property {string} url - Download URL of the version\n * @property {string|null} fileVersion - The version id, null for the current version\n */\n\n/**\n * @param fileInfo\n * @return {Promise<Version[]>}\n */\nexport async function fetchVersions(fileInfo) {\n\tconst path = `/versions/${getCurrentUser()?.uid}/versions/${fileInfo.id}`\n\n\ttry {\n\t\t/** @type {import('webdav').ResponseDataDetailed<import('webdav').FileStat[]>} */\n\t\tconst response = await client.getDirectoryContents(path, {\n\t\t\tdata: davRequest,\n\t\t\tdetails: true,\n\t\t})\n\t\treturn response.data\n\t\t\t// Filter out root\n\t\t\t.filter(({ mime }) => mime !== '')\n\t\t\t.map(version => formatVersion(version, fileInfo))\n\t} catch (exception) {\n\t\tlogger.error('Could not fetch version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Restore the given version\n *\n * @param {Version} version\n */\nexport async function restoreVersion(version) {\n\ttry {\n\t\tlogger.debug('Restoring version', { url: version.url })\n\t\tawait client.moveFile(\n\t\t\t`/versions/${getCurrentUser()?.uid}/versions/${version.fileId}/${version.fileVersion}`,\n\t\t\t`/versions/${getCurrentUser()?.uid}/restore/target`\n\t\t)\n\t} catch (exception) {\n\t\tlogger.error('Could not restore version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Format version\n *\n * @param {object} version - raw version received from the versions DAV endpoint\n * @param {object} fileInfo - file properties received from the files DAV endpoint\n * @return {Version}\n */\nfunction formatVersion(version, fileInfo) {\n\treturn {\n\t\tfileId: fileInfo.id,\n\t\tlabel: version.props['version-label'],\n\t\tfileName: version.filename,\n\t\tmimeType: version.mime,\n\t\tsize: version.size,\n\t\ttype: version.type,\n\t\tmtime: moment(version.lastmod).unix() * 1000,\n\t\tpreview: generateUrl('/apps/files_versions/preview?file={file}&version={fileVersion}', {\n\t\t\tfile: joinPaths(fileInfo.path, fileInfo.name),\n\t\t\tfileVersion: version.basename,\n\t\t}),\n\t\turl: joinPaths('/remote.php/dav', version.filename),\n\t\tfileVersion: version.basename,\n\t}\n}\n\n/**\n * @param {Version} version\n * @param {string} newLabel\n */\nexport async function setVersionLabel(version, newLabel) {\n\treturn await client.customRequest(\n\t\tversion.fileName,\n\t\t{\n\t\t\tmethod: 'PROPPATCH',\n\t\t\tdata: `<?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\t\t}\n\t)\n}\n\n/**\n * @param {Version} version\n */\nexport async function deleteVersion(version) {\n\tawait client.deleteFile(version.fileName)\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('NcListItem',{staticClass:\"version\",attrs:{\"title\":_vm.versionLabel,\"force-display-actions\":true,\"data-files-versions-version\":\"\"},on:{\"click\":_vm.openVersion},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(!_vm.previewError)?_c('img',{staticClass:\"version__image\",attrs:{\"src\":_vm.previewURL,\"alt\":\"\"},on:{\"error\":function($event){_vm.previewError = true}}}):_c('div',{staticClass:\"version__image\"},[_c('ImageOffOutline',{attrs:{\"size\":20}})],1)]},proxy:true},{key:\"subtitle\",fn:function(){return [_c('div',{staticClass:\"version__info\"},[_c('span',{attrs:{\"title\":_vm.formattedDate}},[_vm._v(_vm._s(_vm._f(\"humanDateFromNow\")(_vm.version.mtime)))]),_vm._v(\" \"),_c('span',{staticClass:\"version__info__size\"},[_vm._v(\"•\")]),_vm._v(\" \"),_c('span',{staticClass:\"version__info__size\"},[_vm._v(_vm._s(_vm._f(\"humanReadableSize\")(_vm.version.size)))])])]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.capabilities.files.version_labeling === true)?_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":_vm.openVersionLabelModal},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":22}})]},proxy:true}],null,false,3072546167)},[_vm._v(\"\\n\\t\\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\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.isCurrent)?_c('NcActionButton',{attrs:{\"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\\t\"+_vm._s(_vm.t('files_versions', 'Restore version'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcActionLink',{attrs:{\"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}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Download version'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),(!_vm.isCurrent && _vm.capabilities.files.version_deletion === true)?_c('NcActionButton',{attrs:{\"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\\t\"+_vm._s(_vm.t('files_versions', 'Delete version'))+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_vm.showVersionLabelForm)?_c('NcModal',{attrs:{\"title\":_vm.t('files_versions', 'Name this version')},on:{\"close\":function($event){_vm.showVersionLabelForm = false}}},[_c('form',{staticClass:\"version-label-modal\",on:{\"submit\":function($event){$event.preventDefault();return _vm.setVersionLabel(_vm.formVersionLabelValue)}}},[_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.formVersionLabelValue,\"placeholder\":_vm.t('files_versions', 'Version name'),\"label-outside\":true},on:{\"update:value\":function($event){_vm.formVersionLabelValue=$event}}})],1),_vm._v(\" \"),_c('div',{staticClass:\"version-label-modal__info\"},[_vm._v(\"\\n\\t\\t\\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\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"version-label-modal__actions\"},[_c('NcButton',{attrs:{\"disabled\":_vm.formVersionLabelValue.trim().length === 0},on:{\"click\":function($event){return _vm.setVersionLabel('')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Remove version name'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"primary\",\"native-type\":\"submit\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Check')]},proxy:true}],null,false,2308323205)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Save version name'))+\"\\n\\t\\t\\t\\t\")])],1)])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.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!./Version.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>\n\t\t<NcListItem class=\"version\"\n\t\t\t:title=\"versionLabel\"\n\t\t\t@click=\"openVersion\"\n\t\t\t:force-display-actions=\"true\"\n\t\t\tdata-files-versions-version>\n\t\t\t<template #icon>\n\t\t\t\t<img v-if=\"!previewError\"\n\t\t\t\t\t:src=\"previewURL\"\n\t\t\t\t\talt=\"\"\n\t\t\t\t\tclass=\"version__image\"\n\t\t\t\t\t@error=\"previewError = true\">\n\t\t\t\t<div v-else\n\t\t\t\t\tclass=\"version__image\">\n\t\t\t\t\t<ImageOffOutline :size=\"20\" />\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<template #subtitle>\n\t\t\t\t<div class=\"version__info\">\n\t\t\t\t\t<span :title=\"formattedDate\">{{ version.mtime | humanDateFromNow }}</span>\n\t\t\t\t\t<!-- Separate dot to improve alignement -->\n\t\t\t\t\t<span class=\"version__info__size\">•</span>\n\t\t\t\t\t<span class=\"version__info__size\">{{ version.size | humanReadableSize }}</span>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<template #actions>\n\t\t\t\t<NcActionButton\tv-if=\"capabilities.files.version_labeling === true\"\n\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t@click=\"openVersionLabelModal\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Pencil :size=\"22\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ version.label === '' ? t('files_versions', 'Name this version') : t('files_versions', 'Edit version name') }}\n\t\t\t\t</NcActionButton>\n\t\t\t\t<NcActionButton v-if=\"!isCurrent\"\n\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t@click=\"restoreVersion\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<BackupRestore :size=\"22\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_versions', 'Restore version') }}\n\t\t\t\t</NcActionButton>\n\t\t\t\t<NcActionLink :href=\"downloadURL\"\n\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t:download=\"downloadURL\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Download :size=\"22\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_versions', 'Download version') }}\n\t\t\t\t</NcActionLink>\n\t\t\t\t<NcActionButton v-if=\"!isCurrent && capabilities.files.version_deletion === true\"\n\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t@click=\"deleteVersion\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Delete :size=\"22\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_versions', 'Delete version') }}\n\t\t\t\t</NcActionButton>\n\t\t\t</template>\n\t\t</NcListItem>\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<form class=\"version-label-modal\"\n\t\t\t\t@submit.prevent=\"setVersionLabel(formVersionLabelValue)\">\n\t\t\t\t<label>\n\t\t\t\t\t<div class=\"version-label-modal__title\">{{ t('files_versions', 'Version name') }}</div>\n\t\t\t\t\t<NcTextField ref=\"labelInput\"\n\t\t\t\t\t\t:value.sync=\"formVersionLabelValue\"\n\t\t\t\t\t\t:placeholder=\"t('files_versions', 'Version name')\"\n\t\t\t\t\t\t:label-outside=\"true\" />\n\t\t\t\t</label>\n\n\t\t\t\t<div class=\"version-label-modal__info\">\n\t\t\t\t\t{{ t('files_versions', 'Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.') }}\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"version-label-modal__actions\">\n\t\t\t\t\t<NcButton :disabled=\"formVersionLabelValue.trim().length === 0\" @click=\"setVersionLabel('')\">\n\t\t\t\t\t\t{{ t('files_versions', 'Remove version name') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton type=\"primary\" native-type=\"submit\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Check />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t{{ t('files_versions', 'Save version name') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t</NcModal>\n\t</div>\n</template>\n\n<script>\nimport BackupRestore from 'vue-material-design-icons/BackupRestore.vue'\nimport Download from 'vue-material-design-icons/Download.vue'\nimport Pencil from 'vue-material-design-icons/Pencil.vue'\nimport Check from 'vue-material-design-icons/Check.vue'\nimport Delete from 'vue-material-design-icons/Delete'\nimport ImageOffOutline from 'vue-material-design-icons/ImageOffOutline.vue'\nimport { NcActionButton, NcActionLink, NcListItem, NcModal, NcButton, NcTextField, Tooltip } from '@nextcloud/vue'\nimport moment from '@nextcloud/moment'\nimport { translate } from '@nextcloud/l10n'\nimport { joinPaths } from '@nextcloud/paths'\nimport { generateUrl, getRootUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport { emit } from '@nextcloud/event-bus'\n\nexport default {\n\tname: 'Version',\n\tcomponents: {\n\t\tNcActionLink,\n\t\tNcActionButton,\n\t\tNcListItem,\n\t\tNcModal,\n\t\tNcButton,\n\t\tNcTextField,\n\t\tBackupRestore,\n\t\tDownload,\n\t\tPencil,\n\t\tCheck,\n\t\tDelete,\n\t\tImageOffOutline,\n\t},\n\tdirectives: {\n\t\ttooltip: Tooltip,\n\t},\n\tfilters: {\n\t\t/**\n\t\t * @param {number} bytes\n\t\t * @return {string}\n\t\t */\n\t\thumanReadableSize(bytes) {\n\t\t\treturn OC.Util.humanFileSize(bytes)\n\t\t},\n\t\t/**\n\t\t * @param {number} timestamp\n\t\t * @return {string}\n\t\t */\n\t\thumanDateFromNow(timestamp) {\n\t\t\treturn moment(timestamp).fromNow()\n\t\t},\n\t},\n\tprops: {\n\t\t/** @type {Vue.PropOptions<import('../utils/versions.js').Version>} */\n\t\tversion: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tisCurrent: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tisFirstVersion: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tshowVersionLabelForm: false,\n\t\t\tformVersionLabelValue: this.version.label,\n\t\t\tcapabilities: loadState('core', 'capabilities', { files: { version_labeling: false, version_deletion: false } }),\n\t\t\tpreviewError: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\t/**\n\t\t * @return {string}\n\t\t */\n\t\tversionLabel() {\n\t\t\tconst label = this.version.label ?? ''\n\n\t\t\tif (this.isCurrent) {\n\t\t\t\tif (label === '') {\n\t\t\t\t\treturn translate('files_versions', 'Current version')\n\t\t\t\t} else {\n\t\t\t\t\treturn `${label} (${translate('files_versions', 'Current version')})`\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.isFirstVersion && label === '') {\n\t\t\t\treturn translate('files_versions', 'Initial version')\n\t\t\t}\n\n\t\t\treturn label\n\t\t},\n\n\t\t/**\n\t\t * @return {string}\n\t\t */\n\t\tdownloadURL() {\n\t\t\tif (this.isCurrent) {\n\t\t\t\treturn getRootUrl() + joinPaths('/remote.php/webdav', this.fileInfo.path, this.fileInfo.name)\n\t\t\t} else {\n\t\t\t\treturn getRootUrl() + this.version.url\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @return {string}\n\t\t */\n\t\tpreviewURL() {\n\t\t\tif (this.isCurrent) {\n\t\t\t\treturn generateUrl('/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0', {\n\t\t\t\t\tfileId: this.fileInfo.id,\n\t\t\t\t\tfileEtag: this.fileInfo.etag,\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\treturn this.version.preview\n\t\t\t}\n\t\t},\n\n\t\t/** @return {string} */\n\t\tformattedDate() {\n\t\t\treturn moment(this.version.mtime).format('LLL')\n\t\t},\n\t},\n\tmethods: {\n\t\topenVersion(e) {\n\t\t\te.preventDefault()\n\t\t\tconst openVersionEvent = {\n\t\t\t\tpreventDefault: false,\n\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\tversion: this.version,\n\t\t\t}\n\t\t\temit('files_versions:view:open', openVersionEvent)\n\t\t\tif (openVersionEvent.preventDefault) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\twindow.location.href = this.downloadURL\n\t\t},\n\t\topenVersionLabelModal() {\n\t\t\tthis.showVersionLabelForm = true\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$refs.labelInput.$el.getElementsByTagName('input')[0].focus()\n\t\t\t})\n\t\t},\n\n\t\trestoreVersion() {\n\t\t\tthis.$emit('restore', this.version)\n\t\t},\n\n\t\tsetVersionLabel(label) {\n\t\t\tthis.formVersionLabelValue = label\n\t\t\tthis.showVersionLabelForm = false\n\t\t\tthis.$emit('label-update', this.version, label)\n\t\t},\n\n\t\tdeleteVersion() {\n\t\t\tthis.$emit('delete', this.version)\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\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\n\t\t&__size {\n\t\t\tcolor: var(--color-text-lighter);\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\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</style>\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!./Version.vue?vue&type=style&index=0&id=06c2e1ec&prod&scoped=true&lang=scss&\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \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=06c2e1ec&prod&scoped=true&lang=scss&\";\n       export default content && content.locals ? content.locals : undefined;\n","<!--\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<ul data-files-versions-versions-list>\n\t\t<Version v-for=\"version in orderedVersions\"\n\t\t\t:key=\"version.mtime\"\n\t\t\t:version=\"version\"\n\t\t\t:file-info=\"fileInfo\"\n\t\t\t:is-current=\"version.mtime === fileInfo.mtime\"\n\t\t\t:is-first-version=\"version.mtime === initialVersionMtime\"\n\t\t\t@restore=\"handleRestore\"\n\t\t\t@label-update=\"handleLabelUpdate\"\n\t\t\t@delete=\"handleDelete\" />\n\t</ul>\n</template>\n\n<script>\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { fetchVersions, deleteVersion, restoreVersion, setVersionLabel } from '../utils/versions.js'\nimport Version from '../components/Version.vue'\nimport { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'\n\nexport default {\n\tname: 'VersionTab',\n\tcomponents: {\n\t\tVersion,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tfileInfo: null,\n\t\t\t/** @type {import('../utils/versions.js').Version[]} */\n\t\t\tversions: [],\n\t\t\tloading: false,\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\tcomputed: {\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.js').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 * @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\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 * 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.js').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 *\n\t\t * @param {import('../utils/versions.js').Version} version\n\t\t * @param {string} newName\n\t\t */\n\t\tasync handleLabelUpdate(version, newName) {\n\t\t\tconst oldLabel = version.label\n\t\t\tversion.label = newName\n\n\t\t\ttry {\n\t\t\t\tawait setVersionLabel(version, newName)\n\t\t\t} catch (exception) {\n\t\t\t\tversion.label = oldLabel\n\t\t\t\tshowError(t('files_versions', 'Could not set version name'))\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.js').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\t},\n}\n</script>\n","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&\"","import { render, staticRenderFns } from \"./Version.vue?vue&type=template&id=06c2e1ec&scoped=true&\"\nimport script from \"./Version.vue?vue&type=script&lang=js&\"\nexport * from \"./Version.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Version.vue?vue&type=style&index=0&id=06c2e1ec&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  \"06c2e1ec\",\n  null\n  \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./VersionTab.vue?vue&type=template&id=f6cb68d2&\"\nimport script from \"./VersionTab.vue?vue&type=script&lang=js&\"\nexport * from \"./VersionTab.vue?vue&type=script&lang=js&\"\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('ul',{attrs:{\"data-files-versions-versions-list\":\"\"}},_vm._l((_vm.orderedVersions),function(version){return _c('Version',{key:version.mtime,attrs:{\"version\":version,\"file-info\":_vm.fileInfo,\"is-current\":version.mtime === _vm.fileInfo.mtime,\"is-first-version\":version.mtime === _vm.initialVersionMtime},on:{\"restore\":_vm.handleRestore,\"label-update\":_vm.handleLabelUpdate,\"delete\":_vm.handleDelete}})}),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 node/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\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-06c2e1ec]{display:flex;flex-direction:row}.version__info[data-v-06c2e1ec]{display:flex;flex-direction:row;align-items:center;gap:.5rem}.version__info__size[data-v-06c2e1ec]{color:var(--color-text-lighter)}.version__image[data-v-06c2e1ec]{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-label-modal[data-v-06c2e1ec]{display:flex;justify-content:space-between;flex-direction:column;height:250px;padding:16px}.version-label-modal__title[data-v-06c2e1ec]{margin-bottom:12px;font-weight:600}.version-label-modal__info[data-v-06c2e1ec]{margin-top:12px;color:var(--color-text-maxcontrast)}.version-label-modal__actions[data-v-06c2e1ec]{display:flex;justify-content:space-between;margin-top:64px}\", \"\",{\"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,CAEA,sCACC,+BAAA,CAIF,iCACC,UAAA,CACA,WAAA,CACA,oCAAA,CACA,wCAAA,CAGA,YAAA,CACA,sBAAA,CACA,6BAAA,CAIF,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 {\\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\\n\\t\\t&__size {\\n\\t\\t\\tcolor: var(--color-text-lighter);\\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\\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","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","// 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 = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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__.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 = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(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 = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1358;","__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\t1358: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(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(function(id) { return 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, [7874], function() { return __webpack_require__(76156); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","getPatcher","patch","axios","remote","generateRemoteUrl","createClient","getLoggerBuilder","setApp","detectUser","build","fetchVersions","fileInfo","path","getCurrentUser","uid","id","client","data","davRequest","details","response","filter","mime","map","version","formatVersion","logger","error","exception","restoreVersion","debug","url","fileId","fileVersion","label","props","fileName","filename","mimeType","size","type","mtime","moment","lastmod","unix","preview","generateUrl","file","joinPaths","name","basename","setVersionLabel","newLabel","method","deleteVersion","components","NcActionLink","NcActionButton","NcListItem","NcModal","NcButton","NcTextField","BackupRestore","Download","Pencil","Check","Delete","ImageOffOutline","directives","tooltip","filters","humanReadableSize","humanDateFromNow","required","isCurrent","default","isFirstVersion","showVersionLabelForm","formVersionLabelValue","capabilities","files","version_labeling","version_deletion","previewError","computed","versionLabel","downloadURL","previewURL","fileEtag","formattedDate","methods","openVersion","e","preventDefault","emit","window","openVersionLabelModal","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","Version","_vm","this","_c","_self","staticClass","attrs","on","scopedSlots","_u","key","fn","$event","proxy","_v","_s","_f","t","_e","ref","trim","length","versions","loading","mounted","subscribe","beforeUnmount","unsubscribe","orderedVersions","initialVersionMtime","reduce","update","handleRestore","oldFileInfo","restoreStartedEventState","showSuccess","showError","handleLabelUpdate","oldLabel","handleDelete","index","resetState","_l","Vue","n","VTooltip","View","VersionTab","TabInstance","addEventListener","undefined","OCA","Files","Sidebar","registerTab","Tab","iconSvg","mount","el","context","$destroy","parent","$mount","destroy","enabled","isDirectory","___CSS_LOADER_EXPORT___","push","module","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","code","keys","Object","resolve","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","call","m","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","getter","__esModule","d","a","definition","defineProperty","enumerable","get","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","children","b","document","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","nc","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file