From b55bc691f889d0b9ea6abd3b8b10f23027394aae Mon Sep 17 00:00:00 2001 From: skjnldsv Date: Fri, 12 Jul 2024 10:41:41 +0200 Subject: [PATCH] fix(files_sharing): adjust IAttributes API and files_versions Signed-off-by: skjnldsv --- apps/files/js/fileinfomodel.js | 2 +- apps/files/src/actions/downloadAction.ts | 2 +- .../src/actions/moveOrCopyActionUtils.ts | 4 +-- apps/files/src/views/FilesList.vue | 8 +++--- .../lib/Controller/ShareAPIController.php | 27 +++++++------------ apps/files_sharing/tests/ApiTest.php | 2 +- .../files_versions/src/components/Version.vue | 2 +- .../features/bootstrap/Sharing.php | 2 +- core/src/files/fileinfo.js | 2 +- .../e2e/files_sharing/filesSharingUtils.ts | 4 +++ .../e2e/files_versions/filesVersionsUtils.ts | 1 - dist/files_versions-files_versions.js | 4 +-- dist/files_versions-files_versions.js.map | 2 +- lib/private/Share20/ShareAttributes.php | 8 +++--- lib/public/Share/IAttributes.php | 13 ++++----- 15 files changed, 40 insertions(+), 43 deletions(-) diff --git a/apps/files/js/fileinfomodel.js b/apps/files/js/fileinfomodel.js index 9cd3660f710c9..0c0061d4d138c 100644 --- a/apps/files/js/fileinfomodel.js +++ b/apps/files/js/fileinfomodel.js @@ -128,7 +128,7 @@ for (const i in this.attributes.shareAttributes) { const attr = this.attributes.shareAttributes[i] if (attr.scope === 'permissions' && attr.key === 'download') { - return attr.enabled + return attr.value === true } } diff --git a/apps/files/src/actions/downloadAction.ts b/apps/files/src/actions/downloadAction.ts index 28a52551d22f7..a63beaca3f276 100644 --- a/apps/files/src/actions/downloadAction.ts +++ b/apps/files/src/actions/downloadAction.ts @@ -33,7 +33,7 @@ const isDownloadable = function(node: Node) { if (node.attributes['mount-type'] === 'shared') { const shareAttributes = JSON.parse(node.attributes['share-attributes'] ?? 'null') const downloadAttribute = shareAttributes?.find?.((attribute: { scope: string; key: string }) => attribute.scope === 'permissions' && attribute.key === 'download') - if (downloadAttribute !== undefined && downloadAttribute.enabled === false) { + if (downloadAttribute !== undefined && downloadAttribute.value === false) { return false } } diff --git a/apps/files/src/actions/moveOrCopyActionUtils.ts b/apps/files/src/actions/moveOrCopyActionUtils.ts index d55247c866285..2092087cd9bfb 100644 --- a/apps/files/src/actions/moveOrCopyActionUtils.ts +++ b/apps/files/src/actions/moveOrCopyActionUtils.ts @@ -24,7 +24,7 @@ export const getQueue = () => { } type ShareAttribute = { - enabled: boolean + value: any key: string scope: string } @@ -48,7 +48,7 @@ export const canMove = (nodes: Node[]) => { export const canDownload = (nodes: Node[]) => { return nodes.every(node => { const shareAttributes = JSON.parse(node.attributes?.['share-attributes'] ?? '[]') as Array - return !shareAttributes.some(attribute => attribute.scope === 'permissions' && attribute.enabled === false && attribute.key === 'download') + return !shareAttributes.some(attribute => attribute.scope === 'permissions' && attribute.value === false && attribute.key === 'download') }) } diff --git a/apps/files/src/views/FilesList.vue b/apps/files/src/views/FilesList.vue index 98a817ac06754..2f09bc73080dc 100644 --- a/apps/files/src/views/FilesList.vue +++ b/apps/files/src/views/FilesList.vue @@ -396,14 +396,14 @@ export default defineComponent({ return { ...this.$route, query: { dir } } }, - shareAttributes(): number[] | undefined { + shareTypesAttributes(): number[] | undefined { if (!this.currentFolder?.attributes?.['share-types']) { return undefined } return Object.values(this.currentFolder?.attributes?.['share-types'] || {}).flat() as number[] }, shareButtonLabel() { - if (!this.shareAttributes) { + if (!this.shareTypesAttributes) { return t('files', 'Share') } @@ -413,12 +413,12 @@ export default defineComponent({ return t('files', 'Shared') }, shareButtonType(): Type | null { - if (!this.shareAttributes) { + if (!this.shareTypesAttributes) { return null } // If all types are links, show the link icon - if (this.shareAttributes.some(type => type === Type.SHARE_TYPE_LINK)) { + if (this.shareTypesAttributes.some(type => type === Type.SHARE_TYPE_LINK)) { return Type.SHARE_TYPE_LINK } diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php index 273dd30f7ef7d..4b044450957d1 100644 --- a/apps/files_sharing/lib/Controller/ShareAPIController.php +++ b/apps/files_sharing/lib/Controller/ShareAPIController.php @@ -1055,7 +1055,7 @@ public function getInheritedShares(string $path): DataResponse { } if (!($node->getPermissions() & Constants::PERMISSION_SHARE)) { - throw new SharingRightsException('no sharing rights on this item'); + throw new SharingRightsException($this->l->t('no sharing rights on this item')); } // The current top parent we have access to @@ -1171,7 +1171,7 @@ public function updateShare( } if (!$this->canEditShare($share)) { - throw new OCSForbiddenException('You are not allowed to edit incoming shares'); + throw new OCSForbiddenException($this->l->t('You are not allowed to edit incoming shares')); } if ( @@ -1218,7 +1218,7 @@ public function updateShare( */ if ($share->getSharedBy() !== $this->currentUser) { - throw new OCSForbiddenException('You are not allowed to edit link shares that you don\'t own'); + throw new OCSForbiddenException($this->l->t('You are not allowed to edit link shares that you don\'t own')); } // Update hide download state @@ -1640,7 +1640,7 @@ private function parseDate(string $expireDate): \DateTime { // Make sure it expires at midnight in owner timezone $date->setTime(0, 0, 0); } catch (\Exception $e) { - throw new \Exception('Invalid date. Format must be YYYY-MM-DD'); + throw new \Exception($this->l->t('Invalid date. Format must be YYYY-MM-DD')); } return $date; @@ -1845,7 +1845,7 @@ private function getSharesFromNode(string $viewer, $node, bool $reShares): array */ private function confirmSharingRights(Node $node): void { if (!$this->hasResharingRights($this->currentUser, $node)) { - throw new SharingRightsException('no sharing rights on this item'); + throw new SharingRightsException($this->l->t('No sharing rights on this item')); } } @@ -2008,13 +2008,6 @@ private function setShareAttributes(IShare $share, ?string $attributesString) { $formattedShareAttributes = \json_decode($attributesString, true); if (is_array($formattedShareAttributes)) { foreach ($formattedShareAttributes as $formattedAttr) { - // Legacy handling of the 'enabled' attribute - if (array_key_exists('enabled', $formattedAttr)) { - $formattedAttr['value'] = is_string($formattedAttr['enabled']) - ? (bool) \json_decode($formattedAttr['enabled']) - : $formattedAttr['enabled']; - } - $newShareAttributes->setAttribute( $formattedAttr['scope'], $formattedAttr['key'], @@ -2022,7 +2015,7 @@ private function setShareAttributes(IShare $share, ?string $attributesString) { ); } } else { - throw new OCSBadRequestException('Invalid share attributes provided: \"' . $attributesString . '\"'); + throw new OCSBadRequestException($this->l->t('Invalid share attributes provided: "%s"', [$attributesString])); } } $share->setAttributes($newShareAttributes); @@ -2044,10 +2037,10 @@ private function checkInheritedAttributes(IShare $share): void { if ($storage instanceof Wrapper) { $storage = $storage->getInstanceOfStorage(SharedStorage::class); if ($storage === null) { - throw new \RuntimeException('Should not happen, instanceOfStorage but getInstanceOfStorage return null'); + throw new \RuntimeException($this->l->t('Should not happen, instanceOfStorage but getInstanceOfStorage return null')); } } else { - throw new \RuntimeException('Should not happen, instanceOfStorage but not a wrapper'); + throw new \RuntimeException($this->l->t('Should not happen, instanceOfStorage but not a wrapper')); } /** @var \OCA\Files_Sharing\SharedStorage $storage */ $inheritedAttributes = $storage->getShare()->getAttributes(); @@ -2085,7 +2078,7 @@ public function sendShareEmail(string $id, $password = ''): DataResponse { } if (!$this->canEditShare($share)) { - throw new OCSForbiddenException('You are not allowed to send mail notifications'); + throw new OCSForbiddenException($this->l->t('You are not allowed to send mail notifications')); } // For mail and link shares, the user must be @@ -2093,7 +2086,7 @@ public function sendShareEmail(string $id, $password = ''): DataResponse { if ($share->getShareType() === IShare::TYPE_EMAIL || $share->getShareType() === IShare::TYPE_LINK) { if ($share->getSharedBy() !== $this->currentUser) { - throw new OCSForbiddenException('You are not allowed to send mail notifications'); + throw new OCSForbiddenException($this->l->t('You are not allowed to send mail notifications')); } } diff --git a/apps/files_sharing/tests/ApiTest.php b/apps/files_sharing/tests/ApiTest.php index cb5fbd145e9db..770ebd14f1eec 100644 --- a/apps/files_sharing/tests/ApiTest.php +++ b/apps/files_sharing/tests/ApiTest.php @@ -960,7 +960,7 @@ public function testUpdateShare() { $ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1); $ocs->updateShare( $share1->getId(), 1, null, null, null, null, null, null, null, - '[{"scope": "app1", "key": "attr1", "enabled": true}]' + '[{"scope": "app1", "key": "attr1", "value": true}]' ); $ocs->cleanup(); diff --git a/apps/files_versions/src/components/Version.vue b/apps/files_versions/src/components/Version.vue index c6d44edaf06ef..7c3bb4758de34 100644 --- a/apps/files_versions/src/components/Version.vue +++ b/apps/files_versions/src/components/Version.vue @@ -259,7 +259,7 @@ export default defineComponent({ const downloadAttribute = this.fileInfo.shareAttributes .find((attribute) => attribute.scope === 'permissions' && attribute.key === 'download') || {} // If the download attribute is set to false, the file is not downloadable - if (downloadAttribute?.enabled === false) { + if (downloadAttribute?.value === false) { return false } } diff --git a/build/integration/features/bootstrap/Sharing.php b/build/integration/features/bootstrap/Sharing.php index c0affcb9cdad5..d1d89649bd63a 100644 --- a/build/integration/features/bootstrap/Sharing.php +++ b/build/integration/features/bootstrap/Sharing.php @@ -286,7 +286,7 @@ public function createShare($user, } if ($viewOnly === true) { - $body['attributes'] = json_encode([['scope' => 'permissions', 'key' => 'download', 'enabled' => false]]); + $body['attributes'] = json_encode([['scope' => 'permissions', 'key' => 'download', 'value' => false]]); } $options['form_params'] = $body; diff --git a/core/src/files/fileinfo.js b/core/src/files/fileinfo.js index 2f3bc46457de4..7ebe06a834916 100644 --- a/core/src/files/fileinfo.js +++ b/core/src/files/fileinfo.js @@ -147,7 +147,7 @@ for (const i in this.shareAttributes) { const attr = this.shareAttributes[i] if (attr.scope === 'permissions' && attr.key === 'download') { - return attr.enabled + return attr.value === true } } diff --git a/cypress/e2e/files_sharing/filesSharingUtils.ts b/cypress/e2e/files_sharing/filesSharingUtils.ts index 7bc943eea9a7e..2899bf45b14cb 100644 --- a/cypress/e2e/files_sharing/filesSharingUtils.ts +++ b/cypress/e2e/files_sharing/filesSharingUtils.ts @@ -33,6 +33,8 @@ export function createShare(fileName: string, username: string, shareSettings: P export function updateShare(fileName: string, index: number, shareSettings: Partial = {}) { openSharingPanel(fileName) + cy.intercept({ times: 1, method: 'PUT', url: '**/apps/files_sharing/api/v1/shares/*' }).as('updateShare') + cy.get('#app-sidebar-vue').within(() => { cy.get('[data-cy-files-sharing-share-actions]').eq(index).click() cy.get('[data-cy-files-sharing-share-permissions-bundle="custom"]').click() @@ -82,6 +84,8 @@ export function updateShare(fileName: string, index: number, shareSettings: Part } cy.get('[data-cy-files-sharing-share-editor-action="save"]').click({ scrollBehavior: 'nearest' }) + + cy.wait('@updateShare') }) } diff --git a/cypress/e2e/files_versions/filesVersionsUtils.ts b/cypress/e2e/files_versions/filesVersionsUtils.ts index 91c41dc19aff2..a27275e833066 100644 --- a/cypress/e2e/files_versions/filesVersionsUtils.ts +++ b/cypress/e2e/files_versions/filesVersionsUtils.ts @@ -4,7 +4,6 @@ */ /* eslint-disable jsdoc/require-jsdoc */ import type { User } from '@nextcloud/cypress' -import path from 'path' import { createShare, type ShareSetting } from '../files_sharing/filesSharingUtils' export const uploadThreeVersions = (user: User, fileName: string) => { diff --git a/dist/files_versions-files_versions.js b/dist/files_versions-files_versions.js index 01141da6588ae..b96285f8685cd 100644 --- a/dist/files_versions-files_versions.js +++ b/dist/files_versions-files_versions.js @@ -1,2 +1,2 @@ -(()=>{var e,i,n,s={14507:(e,i,n)=>{"use strict";var s=n(85471),o=n(53334),r=n(43627),l=n.n(r),a=n(85168),c=n(16406),d=n(61338),u=n(21777),v=n(84237),f=n(34499),p=n(63814),h=n(71089),m=n(19231),A=n(63623);const b=(0,p.dC)("dav"),_=(0,A.UU)(b),g=e=>{_.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:null!=e?e:""})};(0,u.zo)(g),g((0,u.do)());const C=_,w=(0,n(35947).YK)().setApp("files_version").detectUser().build();const y={name:"BackupRestoreIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var x=n(14486);const V=(0,x.A)(y,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon backup-restore-icon",attrs:{"aria-hidden":!e.title||null,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M12,3A9,9 0 0,0 3,12H0L4,16L8,12H5A7,7 0 0,1 12,5A7,7 0 0,1 19,12A7,7 0 0,1 12,19C10.5,19 9.09,18.5 7.94,17.7L6.5,19.14C8.04,20.3 9.94,21 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M14,12A2,2 0 0,0 12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var k=n(11037);const L={name:"DownloadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},S=(0,x.A)(L,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon download-icon",attrs:{"aria-hidden":!e.title||null,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,I={name:"FileCompareIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},H=(0,x.A)(I,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon file-compare-icon",attrs:{"aria-hidden":!e.title||null,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M10,18H6V16H10V18M10,14H6V12H10V14M10,1V2H6C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H10V23H12V1H10M20,8V20C20,21.11 19.11,22 18,22H14V20H18V11H14V9H18.5L14,4.5V2L20,8M16,14H14V12H16V14M16,18H14V16H16V18Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,T={name:"ImageOffOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},B=(0,x.A)(T,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon image-off-outline-icon",attrs:{"aria-hidden":!e.title||null,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M22 20.7L3.3 2L2 3.3L3 4.3V19C3 20.1 3.9 21 5 21H19.7L20.7 22L22 20.7M5 19V6.3L12.6 13.9L11.1 15.8L9 13.1L6 17H15.7L17.7 19H5M8.8 5L6.8 3H19C20.1 3 21 3.9 21 5V17.2L19 15.2V5H8.8"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var N=n(93919),z=n(89257),E=n(73267),D=n(41944),O=n(4604),P=n(80763),M=n(18300),R=n(32981),F=n(49584),$=n(65043);const U=(e,t)=>0!=(e&t),j=(0,s.pM)({name:"Version",components:{NcActionLink:E.A,NcActionButton:z.A,NcAvatar:D.A,NcDateTime:O.A,NcListItem:P.N,BackupRestore:V,Download:S,FileCompare:H,Pencil:N.A,Delete:k.A,ImageOffOutline:B},directives:{tooltip:M.A},props:{version:{type:Object,required:!0},fileInfo:{type:Object,required:!0},isCurrent:{type:Boolean,default:!1},isFirstVersion:{type:Boolean,default:!1},loadPreview:{type:Boolean,default:!1},canView:{type:Boolean,default:!1},canCompare:{type:Boolean,default:!1}},emits:["click","compare","restore","delete","label-update-request"],data:()=>({previewLoaded:!1,previewErrored:!1,capabilities:(0,R.C)("core","capabilities",{files:{version_labeling:!1,version_deletion:!1}}),versionAuthor:""}),computed:{humanReadableSize(){return(0,F.v7)(this.version.size)},versionLabel(){var e;const t=null!==(e=this.version.label)&&void 0!==e?e:"";return this.isCurrent?""===t?(0,o.Tl)("files_versions","Current version"):"".concat(t," (").concat((0,o.Tl)("files_versions","Current version"),")"):this.isFirstVersion&&""===t?(0,o.Tl)("files_versions","Initial version"):t},downloadURL(){return this.isCurrent?(0,p.aU)()+(0,h.HS)("/remote.php/webdav",this.fileInfo.path,this.fileInfo.name):(0,p.aU)()+this.version.url},enableLabeling(){return!0===this.capabilities.files.version_labeling},enableDeletion(){return!0===this.capabilities.files.version_deletion},hasDeletePermissions(){return U(this.fileInfo.permissions,F.aX.DELETE)},hasUpdatePermissions(){return U(this.fileInfo.permissions,F.aX.UPDATE)},isDownloadable(){if(0==(this.fileInfo.permissions&F.aX.READ))return!1;if("shared"===this.fileInfo.mountType){const e=this.fileInfo.shareAttributes.find((e=>"permissions"===e.scope&&"download"===e.key))||{};if(!1===(null==e?void 0:e.enabled))return!1}return!0}},created(){this.fetchDisplayName()},methods:{labelUpdate(){this.$emit("label-update-request")},restoreVersion(){this.$emit("restore",this.version)},async deleteVersion(){await this.$nextTick(),await this.$nextTick(),this.$emit("delete",this.version)},async fetchDisplayName(){if(this.version.author)try{const{data:e}=await $.Ay.get((0,p.KT)("/cloud/users/".concat(this.version.author)));this.versionAuthor=e.ocs.data.displayname}catch(e){this.versionAuthor=null}},click(){this.canView?this.$emit("click",{version:this.version}):window.location=this.downloadURL},compareVersion(){if(!this.canView)throw new Error("Cannot compare version of this file");this.$emit("compare",{version:this.version})},t:o.Tl}});var q=n(85072),W=n.n(q),K=n(97825),Y=n.n(K),G=n(77659),X=n.n(G),Z=n(55056),Q=n.n(Z),J=n(10540),ee=n.n(J),te=n(41113),ie=n.n(te),ne=n(87863),se={};se.styleTagTransform=ie(),se.setAttributes=Q(),se.insert=X().bind(null,"head"),se.domAPI=Y(),se.insertStyleElement=ee(),W()(ne.A,se),ne.A&&ne.A.locals&&ne.A.locals;const oe=(0,x.A)(j,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcListItem",{staticClass:"version",attrs:{"force-display-actions":!0,"data-files-versions-version":e.version.fileVersion},on:{click:e.click},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loadPreview||e.previewLoaded?!e.isCurrent&&!e.version.hasPreview||e.previewErrored?t("div",{staticClass:"version__image"},[t("ImageOffOutline",{attrs:{size:20}})],1):t("img",{staticClass:"version__image",attrs:{src:e.version.previewUrl,alt:"",decoding:"async",fetchpriority:"low",loading:"lazy"},on:{load:function(t){e.previewLoaded=!0},error:function(t){e.previewErrored=!0}}}):t("div",{staticClass:"version__image"})]},proxy:!0},{key:"name",fn:function(){return[t("div",{staticClass:"version__info"},[e.versionLabel?t("div",{staticClass:"version__info__label",attrs:{title:e.versionLabel}},[e._v("\n\t\t\t\t"+e._s(e.versionLabel)+"\n\t\t\t")]):e._e(),e._v(" "),e.versionAuthor?t("div",{staticClass:"version__info"},[e.versionLabel?t("span",[e._v("•")]):e._e(),e._v(" "),t("NcAvatar",{staticClass:"avatar",attrs:{user:e.version.author,size:16,"disable-menu":!0,"disable-tooltip":!0,"show-user-status":!1}}),e._v(" "),t("div",[e._v(e._s(e.versionAuthor))])],1):e._e()])]},proxy:!0},{key:"subname",fn:function(){return[t("div",{staticClass:"version__info version__info__subline"},[t("NcDateTime",{staticClass:"version__info__date",attrs:{"relative-time":"short",timestamp:e.version.mtime}}),e._v(" "),t("span",[e._v("•")]),e._v(" "),t("span",[e._v(e._s(e.humanReadableSize))])],1)]},proxy:!0},{key:"actions",fn:function(){return[e.enableLabeling&&e.hasUpdatePermissions?t("NcActionButton",{attrs:{"data-cy-files-versions-version-action":"label","close-after-click":!0},on:{click:e.labelUpdate},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Pencil",{attrs:{size:22}})]},proxy:!0}],null,!1,3072546167)},[e._v("\n\t\t\t"+e._s(""===e.version.label?e.t("files_versions","Name this version"):e.t("files_versions","Edit version name"))+"\n\t\t")]):e._e(),e._v(" "),!e.isCurrent&&e.canView&&e.canCompare?t("NcActionButton",{attrs:{"data-cy-files-versions-version-action":"compare","close-after-click":!0},on:{click:e.compareVersion},scopedSlots:e._u([{key:"icon",fn:function(){return[t("FileCompare",{attrs:{size:22}})]},proxy:!0}],null,!1,1958207595)},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Compare to current version"))+"\n\t\t")]):e._e(),e._v(" "),!e.isCurrent&&e.hasUpdatePermissions?t("NcActionButton",{attrs:{"data-cy-files-versions-version-action":"restore","close-after-click":!0},on:{click:e.restoreVersion},scopedSlots:e._u([{key:"icon",fn:function(){return[t("BackupRestore",{attrs:{size:22}})]},proxy:!0}],null,!1,2239038444)},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Restore version"))+"\n\t\t")]):e._e(),e._v(" "),e.isDownloadable?t("NcActionLink",{attrs:{"data-cy-files-versions-version-action":"download",href:e.downloadURL,"close-after-click":!0,download:e.downloadURL},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Download",{attrs:{size:22}})]},proxy:!0}],null,!1,927269758)},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Download version"))+"\n\t\t")]):e._e(),e._v(" "),!e.isCurrent&&e.enableDeletion&&e.hasDeletePermissions?t("NcActionButton",{attrs:{"data-cy-files-versions-version-action":"delete","close-after-click":!0},on:{click:e.deleteVersion},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Delete",{attrs:{size:22}})]},proxy:!0}],null,!1,2429175571)},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Delete version"))+"\n\t\t")]):e._e()]},proxy:!0}])})}),[],!1,null,"71e31498",null).exports,re=(0,s.pM)({name:"VirtualScrolling",props:{sections:{type:Array,required:!0},containerElement:{type:HTMLElement,default:null},useWindow:{type:Boolean,default:!1},headerHeight:{type:Number,default:75},renderDistance:{type:Number,default:.5},bottomBufferRatio:{type:Number,default:2},scrollToKey:{type:String,default:""}},data:()=>({scrollPosition:0,containerHeight:0,rowsContainerHeight:0,resizeObserver:null}),computed:{visibleSections(){w.debug("[VirtualScrolling] Computing visible section",{sections:this.sections});const e=this.containerHeight,t=this.scrollPosition,i=t+e;let n=0,s=0;const o=this.sections.map((o=>(s+=this.headerHeight,{...o,rows:o.rows.reduce(((o,r)=>{n=s,s+=r.height;let l=0;return si&&(l=(n-i)/e),l>this.renderDistance?o:[...o,{...r,distance:l}]}),[])}))).filter((e=>e.rows.length>0)),r=o.flatMap((e=>{let{rows:t}=e;return t})).flatMap((e=>{let{items:t}=e;return t})),l=this._rowIdToKeyMap;r.forEach((e=>e.key=l[e.id]));const a=r.map((e=>{let{key:t}=e;return t})).filter((e=>void 0!==e)),c=Object.values(l).filter((e=>!a.includes(e)));return r.filter((e=>{let{key:t}=e;return void 0===t})).forEach((e=>{var t;return e.key=null!==(t=c.pop())&&void 0!==t?t:Math.random().toString(36).substr(2)})),this._rowIdToKeyMap=r.reduce(((e,t)=>{let{id:i,key:n}=t;return{...e,["".concat(i)]:n}}),{}),o},totalHeight(){return this.sections.map((e=>this.headerHeight+e.height)).reduce(((e,t)=>e+t),0)+0},paddingTop(){if(0===this.visibleSections.length)return 0;let e=0;for(const t of this.sections)if(t.key===this.visibleSections[0].rows[0].sectionKey){for(const i of t.rows){if(i.key===this.visibleSections[0].rows[0].key)return e;e+=i.height}e+=this.headerHeight}else e+=this.headerHeight+t.height;return e},rowsContainerStyle(){return{height:"".concat(this.totalHeight,"px"),paddingTop:"".concat(this.paddingTop,"px")}},isNearBottom(){const e=this.containerHeight*this.bottomBufferRatio;return this.scrollPosition+this.containerHeight>=this.totalHeight-e},container(){return w.debug("[VirtualScrolling] Computing container"),null!==this.containerElement?this.containerElement:this.useWindow?window:this.$refs.container}},watch:{isNearBottom(e){w.debug("[VirtualScrolling] isNearBottom changed",{value:e}),e&&this.$emit("need-content")},visibleSections(){this.isNearBottom&&this.$emit("need-content")},scrollToKey(e){let t=0;for(const i of this.sections){if(i.key===e)break;t+=this.headerHeight+i.height}w.debug("[VirtualScrolling] Scrolling to",{currentRowTopDistanceFromTop:t}),this.container.scrollTo({top:t,behavior:"smooth"})}},beforeCreate(){this._rowIdToKeyMap={}},mounted(){this.resizeObserver=new ResizeObserver((e=>{for(const t of e){const e=t.contentRect;t.target===this.container&&(this.containerHeight=e.height),t.target.classList.contains("vs-rows-container")&&(this.rowsContainerHeight=e.height)}})),this.useWindow?(window.addEventListener("resize",this.updateContainerSize,{passive:!0}),this.containerHeight=window.innerHeight):this.resizeObserver.observe(this.container),this.resizeObserver.observe(this.$refs.rowsContainer),this.container.addEventListener("scroll",this.updateScrollPosition,{passive:!0})},beforeDestroy(){var e;this.useWindow&&window.removeEventListener("resize",this.updateContainerSize),null===(e=this.resizeObserver)||void 0===e||e.disconnect(),this.container.removeEventListener("scroll",this.updateScrollPosition)},methods:{updateScrollPosition(){var e;null!==(e=this._onScrollHandle)&&void 0!==e||(this._onScrollHandle=requestAnimationFrame((()=>{this._onScrollHandle=null,this.useWindow?this.scrollPosition=this.container.scrollY:this.scrollPosition=this.container.scrollTop})))},updateContainerSize(){this.containerHeight=window.innerHeight}}});var le=n(26201),ae={};ae.styleTagTransform=ie(),ae.setAttributes=Q(),ae.insert=X().bind(null,"head"),ae.domAPI=Y(),ae.insertStyleElement=ee(),W()(le.A,ae),le.A&&le.A.locals&&le.A.locals;const ce=(0,x.A)(re,(function(){var e=this,t=e._self._c;return e._self._setupProxy,e.useWindow||null!==e.containerElement?t("div",{ref:"rowsContainer",staticClass:"vs-rows-container",style:e.rowsContainerStyle},[e._t("default",null,{visibleSections:e.visibleSections}),e._v(" "),e._t("loader")],2):t("div",{ref:"container",staticClass:"vs-container"},[t("div",{ref:"rowsContainer",staticClass:"vs-rows-container",style:e.rowsContainerStyle},[e._t("default",null,{visibleSections:e.visibleSections}),e._v(" "),e._t("loader")],2)])}),[],!1,null,"49a1883f",null).exports;var de=n(85338),ue=n(54332),ve=n(82182);const fe=(0,s.pM)({name:"VersionLabelForm",components:{NcButton:ue.A,NcTextField:ve.A,Check:de.A},props:{versionLabel:{type:String,default:""}},data(){return{innerVersionLabel:this.versionLabel}},mounted(){this.$nextTick((()=>{this.$refs.labelInput.$el.getElementsByTagName("input")[0].focus()}))},methods:{setVersionLabel(e){this.$emit("label-update",e)},t:o.Tl}});var pe=n(81122),he={};he.styleTagTransform=ie(),he.setAttributes=Q(),he.insert=X().bind(null,"head"),he.domAPI=Y(),he.insertStyleElement=ee(),W()(pe.A,he),pe.A&&pe.A.locals&&pe.A.locals;const me={name:"VersionTab",components:{Version:oe,VirtualScrolling:ce,VersionLabelForm:(0,x.A)(fe,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("form",{staticClass:"version-label-modal",on:{submit:function(t){return t.preventDefault(),e.setVersionLabel(e.innerVersionLabel)}}},[t("label",[t("div",{staticClass:"version-label-modal__title"},[e._v(e._s(e.t("files_versions","Version name")))]),e._v(" "),t("NcTextField",{ref:"labelInput",attrs:{value:e.innerVersionLabel,placeholder:e.t("files_versions","Version name"),"label-outside":!0},on:{"update:value":function(t){e.innerVersionLabel=t}}})],1),e._v(" "),t("div",{staticClass:"version-label-modal__info"},[e._v("\n\t\t"+e._s(e.t("files_versions","Named versions are persisted, and excluded from automatic cleanups when your storage quota is full."))+"\n\t")]),e._v(" "),t("div",{staticClass:"version-label-modal__actions"},[t("NcButton",{attrs:{disabled:0===e.innerVersionLabel.trim().length},on:{click:function(t){return e.setVersionLabel("")}}},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Remove version name"))+"\n\t\t")]),e._v(" "),t("NcButton",{attrs:{type:"primary","native-type":"submit"},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Check")]},proxy:!0}])},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Save version name"))+"\n\t\t")])],1)])}),[],!1,null,"20b51aac",null).exports,NcLoadingIcon:v.A,NcModal:f.A},mixins:[c.A],data:()=>({fileInfo:null,isActive:!1,versions:[],loading:!1,showVersionLabelForm:!1}),computed:{sections(){return[{key:"versions",rows:this.orderedVersions.map((e=>({key:e.mtime,height:68,sectionKey:"versions",items:[e]}))),height:68*this.orderedVersions.length}]},orderedVersions(){return[...this.versions].sort(((e,t)=>e.mtime===this.fileInfo.mtime?-1:t.mtime===this.fileInfo.mtime?1:t.mtime-e.mtime))},initialVersionMtime(){return this.versions.map((e=>e.mtime)).reduce(((e,t)=>Math.min(e,t)))},viewerFileInfo(){let e="";return 1&this.fileInfo.permissions&&(e+="R"),2&this.fileInfo.permissions&&(e+="W"),8&this.fileInfo.permissions&&(e+="D"),{...this.fileInfo,mime:this.fileInfo.mimetype,basename:this.fileInfo.name,filename:this.fileInfo.path+"/"+this.fileInfo.name,permissions:e,fileid:this.fileInfo.id}},canView(){var e;return null===(e=window.OCA.Viewer)||void 0===e||null===(e=e.mimetypesCompare)||void 0===e?void 0:e.includes(this.fileInfo.mimetype)},canCompare(){return!this.isMobile}},mounted(){(0,d.B1)("files_versions:restore:restored",this.fetchVersions)},beforeUnmount(){(0,d.al)("files_versions:restore:restored",this.fetchVersions)},methods:{async update(e){this.fileInfo=e,this.resetState(),this.fetchVersions()},async setIsActive(e){this.isActive=e},async fetchVersions(){try{this.loading=!0,this.versions=await async function(e){var t;const i="/versions/".concat(null===(t=(0,u.HW)())||void 0===t?void 0:t.uid,"/versions/").concat(e.id);try{return(await C.getDirectoryContents(i,{data:'\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n',details:!0})).data.filter((e=>{let{mime:t}=e;return""!==t})).map((t=>function(e,t){var i;const n=1e3*(0,m.A)(e.lastmod).unix();let s="";return s=n===t.mtime?(0,p.Jv)("/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0",{fileId:t.id,fileEtag:t.etag}):(0,p.Jv)("/apps/files_versions/preview?file={file}&version={fileVersion}",{file:(0,h.HS)(t.path,t.name),fileVersion:e.basename}),{fileId:t.id,label:e.props["version-label"]&&String(e.props["version-label"]),author:null!==(i=e.props["version-author"])&&void 0!==i?i:null,filename:e.filename,basename:(0,m.A)(n).format("LLL"),mime:e.mime,etag:"".concat(e.props.getetag),size:e.size,type:e.type,mtime:n,permissions:"R",hasPreview:1===e.props["has-preview"],previewUrl:s,url:(0,h.HS)("/remote.php/dav",e.filename),source:(0,p.dC)("dav")+(0,h.O0)(e.filename),fileVersion:e.basename}}(t,e)))}catch(e){throw w.error("Could not fetch version",{exception:e}),e}}(this.fileInfo)}finally{this.loading=!1}},async handleRestore(e){const i=this.fileInfo;this.fileInfo={...this.fileInfo,size:e.size,mtime:e.mtime};const n={preventDefault:!1,fileInfo:this.fileInfo,version:e};if((0,d.Ic)("files_versions:restore:requested",n),!n.preventDefault)try{await async function(e){try{var t,i;w.debug("Restoring version",{url:e.url}),await C.moveFile("/versions/".concat(null===(t=(0,u.HW)())||void 0===t?void 0:t.uid,"/versions/").concat(e.fileId,"/").concat(e.fileVersion),"/versions/".concat(null===(i=(0,u.HW)())||void 0===i?void 0:i.uid,"/restore/target"))}catch(e){throw w.error("Could not restore version",{exception:e}),e}}(e),""!==e.label?(0,a.Te)(t("files_versions","".concat(e.label," restored"))):e.mtime===this.initialVersionMtime?(0,a.Te)(t("files_versions","Initial version restored")):(0,a.Te)(t("files_versions","Version restored")),(0,d.Ic)("files_versions:restore:restored",e)}catch(n){this.fileInfo=i,(0,a.Qg)(t("files_versions","Could not restore version")),(0,d.Ic)("files_versions:restore:failed",e)}},handleLabelUpdateRequest(e){this.showVersionLabelForm=!0,this.editedVersion=e},async handleLabelUpdate(e){const t=this.editedVersion.label;this.editedVersion.label=e,this.showVersionLabelForm=!1;try{await async function(e,t){return await C.customRequest(e.filename,{method:"PROPPATCH",data:'\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t'.concat(t,"\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t")})}(this.editedVersion,e),this.editedVersion=null}catch(e){this.editedVersion.label=t,(0,a.Qg)(this.t("files_versions","Could not set version label")),logger.error("Could not set version label",{exception:e})}},async handleDelete(e){const i=this.versions.indexOf(e);this.versions.splice(i,1);try{await async function(e){await C.deleteFile(e.filename)}(e)}catch(i){this.versions.push(e),(0,a.Qg)(t("files_versions","Could not delete version"))}},resetState(){this.$set(this,"versions",[])},openVersion(e){let{version:t}=e;if(t.mtime===this.fileInfo.mtime)return void OCA.Viewer.open({fileInfo:this.viewerFileInfo});const i=this.versions.map((e=>{var t,i;return{...e,filename:e.mtime===this.fileInfo.mtime?l().join("files",null!==(t=null===(i=(0,u.HW)())||void 0===i?void 0:i.uid)&&void 0!==t?t:"",this.fileInfo.path,this.fileInfo.name):e.filename,hasPreview:!1,previewUrl:void 0}}));OCA.Viewer.open({fileInfo:i.find((e=>e.source===t.source)),enableSidebar:!1})},compareVersion(e){let{version:t}=e;const i=this.versions.map((e=>({...e,hasPreview:!1,previewUrl:void 0})));OCA.Viewer.compare(this.viewerFileInfo,i.find((e=>e.source===t.source)))}}};var Ae=n(34808),be={};be.styleTagTransform=ie(),be.setAttributes=Q(),be.insert=X().bind(null,"head"),be.domAPI=Y(),be.insertStyleElement=ee(),W()(Ae.A,be),Ae.A&&Ae.A.locals&&Ae.A.locals;const _e=(0,x.A)(me,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"versions-tab__container"},[t("VirtualScrolling",{attrs:{sections:e.sections,"header-height":0},scopedSlots:e._u([{key:"default",fn:function(i){let{visibleSections:n}=i;return[t("ul",{attrs:{"data-files-versions-versions-list":""}},[1===n.length?e._l(n[0].rows,(function(i){return t("Version",{key:i.items[0].mtime,attrs:{"can-view":e.canView,"can-compare":e.canCompare,"load-preview":e.isActive,version:i.items[0],"file-info":e.fileInfo,"is-current":i.items[0].mtime===e.fileInfo.mtime,"is-first-version":i.items[0].mtime===e.initialVersionMtime},on:{click:e.openVersion,compare:e.compareVersion,restore:e.handleRestore,"label-update-request":function(t){return e.handleLabelUpdateRequest(i.items[0])},delete:e.handleDelete}})})):e._e()],2)]}}])},[e._v(" "),e.loading?t("NcLoadingIcon",{staticClass:"files-list-viewer__loader",attrs:{slot:"loader"},slot:"loader"}):e._e()],1),e._v(" "),e.showVersionLabelForm?t("NcModal",{attrs:{title:e.t("files_versions","Name this version")},on:{close:function(t){e.showVersionLabelForm=!1}}},[t("VersionLabelForm",{attrs:{"version-label":e.editedVersion.label},on:{"label-update":e.handleLabelUpdate}})],1):e._e()],1)}),[],!1,null,null,null).exports;var ge=n(80284);s.Ay.prototype.t=o.Tl,s.Ay.prototype.n=o.zw,s.Ay.use(ge.Ay);const Ce=s.Ay.extend(_e);let we=null;window.addEventListener("DOMContentLoaded",(function(){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,o.Tl)("files_versions","Versions"),iconSvg:'',async mount(e,t,i){we&&we.$destroy(),we=new Ce({parent:i}),await we.update(t),we.$mount(e)},update(e){we.update(e)},setIsActive(e){we&&we.setIsActive(e)},destroy(){we.$destroy(),we=null},enabled(e){var t;return!(null===(t=null==e?void 0:e.isDirectory())||void 0===t||t)}}))}))},87863:(e,t,i)=>{"use strict";i.d(t,{A:()=>l});var n=i(71354),s=i.n(n),o=i(76314),r=i.n(o)()(s());r.push([e.id,".version[data-v-71e31498]{display:flex;flex-direction:row}.version__info[data-v-71e31498]{display:flex;flex-direction:row;align-items:center;gap:.5rem;color:var(--color-main-text);font-weight:500}.version__info__label[data-v-71e31498]{font-weight:700;overflow:hidden;text-overflow:ellipsis}.version__info__date[data-v-71e31498]{overflow:hidden;text-overflow:ellipsis}.version__info__subline[data-v-71e31498]{color:var(--color-text-maxcontrast)}.version__image[data-v-71e31498]{width:3rem;height:3rem;border:1px solid var(--color-border);border-radius:var(--border-radius-large);display:flex;justify-content:center;color:var(--color-text-light)}","",{version:3,sources:["webpack://./apps/files_versions/src/components/Version.vue"],names:[],mappings:"AACA,0BACC,YAAA,CACA,kBAAA,CAEA,gCACC,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,SAAA,CACA,4BAAA,CACA,eAAA,CAEA,uCACC,eAAA,CAEA,eAAA,CACA,sBAAA,CAGD,sCAEC,eAAA,CACA,sBAAA,CAGD,yCACC,mCAAA,CAIF,iCACC,UAAA,CACA,WAAA,CACA,oCAAA,CACA,wCAAA,CAGA,YAAA,CACA,sBAAA,CACA,6BAAA",sourcesContent:["\n.version {\n\tdisplay: flex;\n\tflex-direction: row;\n\n\t&__info {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\talign-items: center;\n\t\tgap: 0.5rem;\n\t\tcolor: var(--color-main-text);\n\t\tfont-weight: 500;\n\n\t\t&__label {\n\t\t\tfont-weight: 700;\n\t\t\t// Fix overflow on narrow screens\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__date {\n\t\t\t// Fix overflow on narrow screens\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__subline {\n\t\t\tcolor: var(--color-text-maxcontrast)\n\t\t}\n\t}\n\n\t&__image {\n\t\twidth: 3rem;\n\t\theight: 3rem;\n\t\tborder: 1px solid var(--color-border);\n\t\tborder-radius: var(--border-radius-large);\n\n\t\t// Useful to display no preview icon.\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\tcolor: var(--color-text-light);\n\t}\n}\n"],sourceRoot:""}]);const l=r},81122:(e,t,i)=>{"use strict";i.d(t,{A:()=>l});var n=i(71354),s=i.n(n),o=i(76314),r=i.n(o)()(s());r.push([e.id,".version-label-modal[data-v-20b51aac]{display:flex;justify-content:space-between;flex-direction:column;height:250px;padding:16px}.version-label-modal__title[data-v-20b51aac]{margin-bottom:12px;font-weight:600}.version-label-modal__info[data-v-20b51aac]{margin-top:12px;color:var(--color-text-maxcontrast)}.version-label-modal__actions[data-v-20b51aac]{display:flex;justify-content:space-between;margin-top:64px}","",{version:3,sources:["webpack://./apps/files_versions/src/components/VersionLabelForm.vue"],names:[],mappings:"AACA,sCACC,YAAA,CACA,6BAAA,CACA,qBAAA,CACA,YAAA,CACA,YAAA,CAEA,6CACC,kBAAA,CACA,eAAA,CAGD,4CACC,eAAA,CACA,mCAAA,CAGD,+CACC,YAAA,CACA,6BAAA,CACA,eAAA",sourcesContent:["\n.version-label-modal {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tflex-direction: column;\n\theight: 250px;\n\tpadding: 16px;\n\n\t&__title {\n\t\tmargin-bottom: 12px;\n\t\tfont-weight: 600;\n\t}\n\n\t&__info {\n\t\tmargin-top: 12px;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__actions {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tmargin-top: 64px;\n\t}\n}\n"],sourceRoot:""}]);const l=r},26201:(e,t,i)=>{"use strict";i.d(t,{A:()=>l});var n=i(71354),s=i.n(n),o=i(76314),r=i.n(o)()(s());r.push([e.id,".vs-container[data-v-49a1883f]{overflow-y:scroll;height:100%}.vs-rows-container[data-v-49a1883f]{box-sizing:border-box;will-change:scroll-position,padding;contain:layout paint style}","",{version:3,sources:["webpack://./apps/files_versions/src/components/VirtualScrolling.vue"],names:[],mappings:"AACA,+BACC,iBAAA,CACA,WAAA,CAGD,oCACC,qBAAA,CACA,mCAAA,CACA,0BAAA",sourcesContent:["\n.vs-container {\n\toverflow-y: scroll;\n\theight: 100%;\n}\n\n.vs-rows-container {\n\tbox-sizing: border-box;\n\twill-change: scroll-position, padding;\n\tcontain: layout paint style;\n}\n"],sourceRoot:""}]);const l=r},34808:(e,t,i)=>{"use strict";i.d(t,{A:()=>l});var n=i(71354),s=i.n(n),o=i(76314),r=i.n(o)()(s());r.push([e.id,".versions-tab__container{height:100%}","",{version:3,sources:["webpack://./apps/files_versions/src/views/VersionTab.vue"],names:[],mappings:"AACA,yBACC,WAAA",sourcesContent:["\n.versions-tab__container {\n\theight: 100%;\n}\n"],sourceRoot:""}]);const l=r},42634:()=>{},15340:()=>{},79838:()=>{}},o={};function r(e){var t=o[e];if(void 0!==t)return t.exports;var i=o[e]={id:e,loaded:!1,exports:{}};return s[e].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}r.m=s,e=[],r.O=(t,i,n,s)=>{if(!i){var o=1/0;for(d=0;d=s)&&Object.keys(r.O).every((e=>r.O[e](i[a])))?i.splice(a--,1):(l=!1,s0&&e[d-1][2]>s;d--)e[d]=e[d-1];e[d]=[i,n,s]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((t,i)=>(r.f[i](e,t),t)),[])),r.u=e=>e+"-"+e+".js?v="+{4254:"5c2324570f66dff0c8a1",9480:"f3ebcf41e93bbd8cd678"}[e],r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i={},n="nextcloud:",r.l=(e,t,s,o)=>{if(i[e])i[e].push(t);else{var l,a;if(void 0!==s)for(var c=document.getElementsByTagName("script"),d=0;d{l.onerror=l.onload=null,clearTimeout(f);var s=i[e];if(delete i[e],l.parentNode&&l.parentNode.removeChild(l),s&&s.forEach((e=>e(n))),t)return t(n)},f=setTimeout(v.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=v.bind(null,l.onerror),l.onload=v.bind(null,l.onload),a&&document.head.appendChild(l)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.j=2250,(()=>{var e;r.g.importScripts&&(e=r.g.location+"");var t=r.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var i=t.getElementsByTagName("script");if(i.length)for(var n=i.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=i[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=e})(),(()=>{r.b=document.baseURI||self.location.href;var e={2250:0};r.f.j=(t,i)=>{var n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)i.push(n[2]);else{var s=new Promise(((i,s)=>n=e[t]=[i,s]));i.push(n[2]=s);var o=r.p+r.u(t),l=new Error;r.l(o,(i=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var s=i&&("load"===i.type?"missing":i.type),o=i&&i.target&&i.target.src;l.message="Loading chunk "+t+" failed.\n("+s+": "+o+")",l.name="ChunkLoadError",l.type=s,l.request=o,n[1](l)}}),"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,i)=>{var n,s,o=i[0],l=i[1],a=i[2],c=0;if(o.some((t=>0!==e[t]))){for(n in l)r.o(l,n)&&(r.m[n]=l[n]);if(a)var d=a(r)}for(t&&t(i);cr(14507)));l=r.O(l)})(); -//# sourceMappingURL=files_versions-files_versions.js.map?v=2345e349c26447bcd2aa \ No newline at end of file +(()=>{var e,i,n,s={21678:(e,i,n)=>{"use strict";var s=n(85471),o=n(53334),r=n(43627),a=n.n(r),l=n(85168),c=n(16406),d=n(61338),u=n(21777),v=n(84237),f=n(34499),p=n(63814),h=n(71089),m=n(19231),A=n(63623);const b=(0,p.dC)("dav"),_=(0,A.UU)(b),g=e=>{_.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:null!=e?e:""})};(0,u.zo)(g),g((0,u.do)());const C=_,w=(0,n(35947).YK)().setApp("files_version").detectUser().build();const y={name:"BackupRestoreIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var x=n(14486);const V=(0,x.A)(y,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon backup-restore-icon",attrs:{"aria-hidden":!e.title||null,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M12,3A9,9 0 0,0 3,12H0L4,16L8,12H5A7,7 0 0,1 12,5A7,7 0 0,1 19,12A7,7 0 0,1 12,19C10.5,19 9.09,18.5 7.94,17.7L6.5,19.14C8.04,20.3 9.94,21 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M14,12A2,2 0 0,0 12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var k=n(11037);const L={name:"DownloadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},S=(0,x.A)(L,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon download-icon",attrs:{"aria-hidden":!e.title||null,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,I={name:"FileCompareIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},H=(0,x.A)(I,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon file-compare-icon",attrs:{"aria-hidden":!e.title||null,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M10,18H6V16H10V18M10,14H6V12H10V14M10,1V2H6C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H10V23H12V1H10M20,8V20C20,21.11 19.11,22 18,22H14V20H18V11H14V9H18.5L14,4.5V2L20,8M16,14H14V12H16V14M16,18H14V16H16V18Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,T={name:"ImageOffOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},B=(0,x.A)(T,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon image-off-outline-icon",attrs:{"aria-hidden":!e.title||null,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M22 20.7L3.3 2L2 3.3L3 4.3V19C3 20.1 3.9 21 5 21H19.7L20.7 22L22 20.7M5 19V6.3L12.6 13.9L11.1 15.8L9 13.1L6 17H15.7L17.7 19H5M8.8 5L6.8 3H19C20.1 3 21 3.9 21 5V17.2L19 15.2V5H8.8"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var N=n(93919),z=n(89257),E=n(73267),D=n(41944),O=n(4604),P=n(80763),M=n(18300),R=n(32981),F=n(49584),$=n(65043);const U=(e,t)=>0!=(e&t),j=(0,s.pM)({name:"Version",components:{NcActionLink:E.A,NcActionButton:z.A,NcAvatar:D.A,NcDateTime:O.A,NcListItem:P.N,BackupRestore:V,Download:S,FileCompare:H,Pencil:N.A,Delete:k.A,ImageOffOutline:B},directives:{tooltip:M.A},props:{version:{type:Object,required:!0},fileInfo:{type:Object,required:!0},isCurrent:{type:Boolean,default:!1},isFirstVersion:{type:Boolean,default:!1},loadPreview:{type:Boolean,default:!1},canView:{type:Boolean,default:!1},canCompare:{type:Boolean,default:!1}},emits:["click","compare","restore","delete","label-update-request"],data:()=>({previewLoaded:!1,previewErrored:!1,capabilities:(0,R.C)("core","capabilities",{files:{version_labeling:!1,version_deletion:!1}}),versionAuthor:""}),computed:{humanReadableSize(){return(0,F.v7)(this.version.size)},versionLabel(){var e;const t=null!==(e=this.version.label)&&void 0!==e?e:"";return this.isCurrent?""===t?(0,o.Tl)("files_versions","Current version"):"".concat(t," (").concat((0,o.Tl)("files_versions","Current version"),")"):this.isFirstVersion&&""===t?(0,o.Tl)("files_versions","Initial version"):t},downloadURL(){return this.isCurrent?(0,p.aU)()+(0,h.HS)("/remote.php/webdav",this.fileInfo.path,this.fileInfo.name):(0,p.aU)()+this.version.url},enableLabeling(){return!0===this.capabilities.files.version_labeling},enableDeletion(){return!0===this.capabilities.files.version_deletion},hasDeletePermissions(){return U(this.fileInfo.permissions,F.aX.DELETE)},hasUpdatePermissions(){return U(this.fileInfo.permissions,F.aX.UPDATE)},isDownloadable(){if(0==(this.fileInfo.permissions&F.aX.READ))return!1;if("shared"===this.fileInfo.mountType){const e=this.fileInfo.shareAttributes.find((e=>"permissions"===e.scope&&"download"===e.key))||{};if(!1===(null==e?void 0:e.value))return!1}return!0}},created(){this.fetchDisplayName()},methods:{labelUpdate(){this.$emit("label-update-request")},restoreVersion(){this.$emit("restore",this.version)},async deleteVersion(){await this.$nextTick(),await this.$nextTick(),this.$emit("delete",this.version)},async fetchDisplayName(){if(this.version.author)try{const{data:e}=await $.Ay.get((0,p.KT)("/cloud/users/".concat(this.version.author)));this.versionAuthor=e.ocs.data.displayname}catch(e){this.versionAuthor=null}},click(){this.canView?this.$emit("click",{version:this.version}):window.location=this.downloadURL},compareVersion(){if(!this.canView)throw new Error("Cannot compare version of this file");this.$emit("compare",{version:this.version})},t:o.Tl}});var q=n(85072),W=n.n(q),K=n(97825),Y=n.n(K),G=n(77659),X=n.n(G),Z=n(55056),Q=n.n(Z),J=n(10540),ee=n.n(J),te=n(41113),ie=n.n(te),ne=n(91974),se={};se.styleTagTransform=ie(),se.setAttributes=Q(),se.insert=X().bind(null,"head"),se.domAPI=Y(),se.insertStyleElement=ee(),W()(ne.A,se),ne.A&&ne.A.locals&&ne.A.locals;const oe=(0,x.A)(j,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcListItem",{staticClass:"version",attrs:{"force-display-actions":!0,"data-files-versions-version":e.version.fileVersion},on:{click:e.click},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loadPreview||e.previewLoaded?!e.isCurrent&&!e.version.hasPreview||e.previewErrored?t("div",{staticClass:"version__image"},[t("ImageOffOutline",{attrs:{size:20}})],1):t("img",{staticClass:"version__image",attrs:{src:e.version.previewUrl,alt:"",decoding:"async",fetchpriority:"low",loading:"lazy"},on:{load:function(t){e.previewLoaded=!0},error:function(t){e.previewErrored=!0}}}):t("div",{staticClass:"version__image"})]},proxy:!0},{key:"name",fn:function(){return[t("div",{staticClass:"version__info"},[e.versionLabel?t("div",{staticClass:"version__info__label",attrs:{title:e.versionLabel}},[e._v("\n\t\t\t\t"+e._s(e.versionLabel)+"\n\t\t\t")]):e._e(),e._v(" "),e.versionAuthor?t("div",{staticClass:"version__info"},[e.versionLabel?t("span",[e._v("•")]):e._e(),e._v(" "),t("NcAvatar",{staticClass:"avatar",attrs:{user:e.version.author,size:16,"disable-menu":!0,"disable-tooltip":!0,"show-user-status":!1}}),e._v(" "),t("div",[e._v(e._s(e.versionAuthor))])],1):e._e()])]},proxy:!0},{key:"subname",fn:function(){return[t("div",{staticClass:"version__info version__info__subline"},[t("NcDateTime",{staticClass:"version__info__date",attrs:{"relative-time":"short",timestamp:e.version.mtime}}),e._v(" "),t("span",[e._v("•")]),e._v(" "),t("span",[e._v(e._s(e.humanReadableSize))])],1)]},proxy:!0},{key:"actions",fn:function(){return[e.enableLabeling&&e.hasUpdatePermissions?t("NcActionButton",{attrs:{"data-cy-files-versions-version-action":"label","close-after-click":!0},on:{click:e.labelUpdate},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Pencil",{attrs:{size:22}})]},proxy:!0}],null,!1,3072546167)},[e._v("\n\t\t\t"+e._s(""===e.version.label?e.t("files_versions","Name this version"):e.t("files_versions","Edit version name"))+"\n\t\t")]):e._e(),e._v(" "),!e.isCurrent&&e.canView&&e.canCompare?t("NcActionButton",{attrs:{"data-cy-files-versions-version-action":"compare","close-after-click":!0},on:{click:e.compareVersion},scopedSlots:e._u([{key:"icon",fn:function(){return[t("FileCompare",{attrs:{size:22}})]},proxy:!0}],null,!1,1958207595)},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Compare to current version"))+"\n\t\t")]):e._e(),e._v(" "),!e.isCurrent&&e.hasUpdatePermissions?t("NcActionButton",{attrs:{"data-cy-files-versions-version-action":"restore","close-after-click":!0},on:{click:e.restoreVersion},scopedSlots:e._u([{key:"icon",fn:function(){return[t("BackupRestore",{attrs:{size:22}})]},proxy:!0}],null,!1,2239038444)},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Restore version"))+"\n\t\t")]):e._e(),e._v(" "),e.isDownloadable?t("NcActionLink",{attrs:{"data-cy-files-versions-version-action":"download",href:e.downloadURL,"close-after-click":!0,download:e.downloadURL},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Download",{attrs:{size:22}})]},proxy:!0}],null,!1,927269758)},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Download version"))+"\n\t\t")]):e._e(),e._v(" "),!e.isCurrent&&e.enableDeletion&&e.hasDeletePermissions?t("NcActionButton",{attrs:{"data-cy-files-versions-version-action":"delete","close-after-click":!0},on:{click:e.deleteVersion},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Delete",{attrs:{size:22}})]},proxy:!0}],null,!1,2429175571)},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Delete version"))+"\n\t\t")]):e._e()]},proxy:!0}])})}),[],!1,null,"a0fb4a78",null).exports,re=(0,s.pM)({name:"VirtualScrolling",props:{sections:{type:Array,required:!0},containerElement:{type:HTMLElement,default:null},useWindow:{type:Boolean,default:!1},headerHeight:{type:Number,default:75},renderDistance:{type:Number,default:.5},bottomBufferRatio:{type:Number,default:2},scrollToKey:{type:String,default:""}},data:()=>({scrollPosition:0,containerHeight:0,rowsContainerHeight:0,resizeObserver:null}),computed:{visibleSections(){w.debug("[VirtualScrolling] Computing visible section",{sections:this.sections});const e=this.containerHeight,t=this.scrollPosition,i=t+e;let n=0,s=0;const o=this.sections.map((o=>(s+=this.headerHeight,{...o,rows:o.rows.reduce(((o,r)=>{n=s,s+=r.height;let a=0;return si&&(a=(n-i)/e),a>this.renderDistance?o:[...o,{...r,distance:a}]}),[])}))).filter((e=>e.rows.length>0)),r=o.flatMap((e=>{let{rows:t}=e;return t})).flatMap((e=>{let{items:t}=e;return t})),a=this._rowIdToKeyMap;r.forEach((e=>e.key=a[e.id]));const l=r.map((e=>{let{key:t}=e;return t})).filter((e=>void 0!==e)),c=Object.values(a).filter((e=>!l.includes(e)));return r.filter((e=>{let{key:t}=e;return void 0===t})).forEach((e=>{var t;return e.key=null!==(t=c.pop())&&void 0!==t?t:Math.random().toString(36).substr(2)})),this._rowIdToKeyMap=r.reduce(((e,t)=>{let{id:i,key:n}=t;return{...e,["".concat(i)]:n}}),{}),o},totalHeight(){return this.sections.map((e=>this.headerHeight+e.height)).reduce(((e,t)=>e+t),0)+0},paddingTop(){if(0===this.visibleSections.length)return 0;let e=0;for(const t of this.sections)if(t.key===this.visibleSections[0].rows[0].sectionKey){for(const i of t.rows){if(i.key===this.visibleSections[0].rows[0].key)return e;e+=i.height}e+=this.headerHeight}else e+=this.headerHeight+t.height;return e},rowsContainerStyle(){return{height:"".concat(this.totalHeight,"px"),paddingTop:"".concat(this.paddingTop,"px")}},isNearBottom(){const e=this.containerHeight*this.bottomBufferRatio;return this.scrollPosition+this.containerHeight>=this.totalHeight-e},container(){return w.debug("[VirtualScrolling] Computing container"),null!==this.containerElement?this.containerElement:this.useWindow?window:this.$refs.container}},watch:{isNearBottom(e){w.debug("[VirtualScrolling] isNearBottom changed",{value:e}),e&&this.$emit("need-content")},visibleSections(){this.isNearBottom&&this.$emit("need-content")},scrollToKey(e){let t=0;for(const i of this.sections){if(i.key===e)break;t+=this.headerHeight+i.height}w.debug("[VirtualScrolling] Scrolling to",{currentRowTopDistanceFromTop:t}),this.container.scrollTo({top:t,behavior:"smooth"})}},beforeCreate(){this._rowIdToKeyMap={}},mounted(){this.resizeObserver=new ResizeObserver((e=>{for(const t of e){const e=t.contentRect;t.target===this.container&&(this.containerHeight=e.height),t.target.classList.contains("vs-rows-container")&&(this.rowsContainerHeight=e.height)}})),this.useWindow?(window.addEventListener("resize",this.updateContainerSize,{passive:!0}),this.containerHeight=window.innerHeight):this.resizeObserver.observe(this.container),this.resizeObserver.observe(this.$refs.rowsContainer),this.container.addEventListener("scroll",this.updateScrollPosition,{passive:!0})},beforeDestroy(){var e;this.useWindow&&window.removeEventListener("resize",this.updateContainerSize),null===(e=this.resizeObserver)||void 0===e||e.disconnect(),this.container.removeEventListener("scroll",this.updateScrollPosition)},methods:{updateScrollPosition(){var e;null!==(e=this._onScrollHandle)&&void 0!==e||(this._onScrollHandle=requestAnimationFrame((()=>{this._onScrollHandle=null,this.useWindow?this.scrollPosition=this.container.scrollY:this.scrollPosition=this.container.scrollTop})))},updateContainerSize(){this.containerHeight=window.innerHeight}}});var ae=n(26201),le={};le.styleTagTransform=ie(),le.setAttributes=Q(),le.insert=X().bind(null,"head"),le.domAPI=Y(),le.insertStyleElement=ee(),W()(ae.A,le),ae.A&&ae.A.locals&&ae.A.locals;const ce=(0,x.A)(re,(function(){var e=this,t=e._self._c;return e._self._setupProxy,e.useWindow||null!==e.containerElement?t("div",{ref:"rowsContainer",staticClass:"vs-rows-container",style:e.rowsContainerStyle},[e._t("default",null,{visibleSections:e.visibleSections}),e._v(" "),e._t("loader")],2):t("div",{ref:"container",staticClass:"vs-container"},[t("div",{ref:"rowsContainer",staticClass:"vs-rows-container",style:e.rowsContainerStyle},[e._t("default",null,{visibleSections:e.visibleSections}),e._v(" "),e._t("loader")],2)])}),[],!1,null,"49a1883f",null).exports;var de=n(85338),ue=n(54332),ve=n(82182);const fe=(0,s.pM)({name:"VersionLabelForm",components:{NcButton:ue.A,NcTextField:ve.A,Check:de.A},props:{versionLabel:{type:String,default:""}},data(){return{innerVersionLabel:this.versionLabel}},mounted(){this.$nextTick((()=>{this.$refs.labelInput.$el.getElementsByTagName("input")[0].focus()}))},methods:{setVersionLabel(e){this.$emit("label-update",e)},t:o.Tl}});var pe=n(81122),he={};he.styleTagTransform=ie(),he.setAttributes=Q(),he.insert=X().bind(null,"head"),he.domAPI=Y(),he.insertStyleElement=ee(),W()(pe.A,he),pe.A&&pe.A.locals&&pe.A.locals;const me={name:"VersionTab",components:{Version:oe,VirtualScrolling:ce,VersionLabelForm:(0,x.A)(fe,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("form",{staticClass:"version-label-modal",on:{submit:function(t){return t.preventDefault(),e.setVersionLabel(e.innerVersionLabel)}}},[t("label",[t("div",{staticClass:"version-label-modal__title"},[e._v(e._s(e.t("files_versions","Version name")))]),e._v(" "),t("NcTextField",{ref:"labelInput",attrs:{value:e.innerVersionLabel,placeholder:e.t("files_versions","Version name"),"label-outside":!0},on:{"update:value":function(t){e.innerVersionLabel=t}}})],1),e._v(" "),t("div",{staticClass:"version-label-modal__info"},[e._v("\n\t\t"+e._s(e.t("files_versions","Named versions are persisted, and excluded from automatic cleanups when your storage quota is full."))+"\n\t")]),e._v(" "),t("div",{staticClass:"version-label-modal__actions"},[t("NcButton",{attrs:{disabled:0===e.innerVersionLabel.trim().length},on:{click:function(t){return e.setVersionLabel("")}}},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Remove version name"))+"\n\t\t")]),e._v(" "),t("NcButton",{attrs:{type:"primary","native-type":"submit"},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Check")]},proxy:!0}])},[e._v("\n\t\t\t"+e._s(e.t("files_versions","Save version name"))+"\n\t\t")])],1)])}),[],!1,null,"20b51aac",null).exports,NcLoadingIcon:v.A,NcModal:f.A},mixins:[c.A],data:()=>({fileInfo:null,isActive:!1,versions:[],loading:!1,showVersionLabelForm:!1}),computed:{sections(){return[{key:"versions",rows:this.orderedVersions.map((e=>({key:e.mtime,height:68,sectionKey:"versions",items:[e]}))),height:68*this.orderedVersions.length}]},orderedVersions(){return[...this.versions].sort(((e,t)=>e.mtime===this.fileInfo.mtime?-1:t.mtime===this.fileInfo.mtime?1:t.mtime-e.mtime))},initialVersionMtime(){return this.versions.map((e=>e.mtime)).reduce(((e,t)=>Math.min(e,t)))},viewerFileInfo(){let e="";return 1&this.fileInfo.permissions&&(e+="R"),2&this.fileInfo.permissions&&(e+="W"),8&this.fileInfo.permissions&&(e+="D"),{...this.fileInfo,mime:this.fileInfo.mimetype,basename:this.fileInfo.name,filename:this.fileInfo.path+"/"+this.fileInfo.name,permissions:e,fileid:this.fileInfo.id}},canView(){var e;return null===(e=window.OCA.Viewer)||void 0===e||null===(e=e.mimetypesCompare)||void 0===e?void 0:e.includes(this.fileInfo.mimetype)},canCompare(){return!this.isMobile}},mounted(){(0,d.B1)("files_versions:restore:restored",this.fetchVersions)},beforeUnmount(){(0,d.al)("files_versions:restore:restored",this.fetchVersions)},methods:{async update(e){this.fileInfo=e,this.resetState(),this.fetchVersions()},async setIsActive(e){this.isActive=e},async fetchVersions(){try{this.loading=!0,this.versions=await async function(e){var t;const i="/versions/".concat(null===(t=(0,u.HW)())||void 0===t?void 0:t.uid,"/versions/").concat(e.id);try{return(await C.getDirectoryContents(i,{data:'\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n',details:!0})).data.filter((e=>{let{mime:t}=e;return""!==t})).map((t=>function(e,t){var i;const n=1e3*(0,m.A)(e.lastmod).unix();let s="";return s=n===t.mtime?(0,p.Jv)("/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0",{fileId:t.id,fileEtag:t.etag}):(0,p.Jv)("/apps/files_versions/preview?file={file}&version={fileVersion}",{file:(0,h.HS)(t.path,t.name),fileVersion:e.basename}),{fileId:t.id,label:e.props["version-label"]&&String(e.props["version-label"]),author:null!==(i=e.props["version-author"])&&void 0!==i?i:null,filename:e.filename,basename:(0,m.A)(n).format("LLL"),mime:e.mime,etag:"".concat(e.props.getetag),size:e.size,type:e.type,mtime:n,permissions:"R",hasPreview:1===e.props["has-preview"],previewUrl:s,url:(0,h.HS)("/remote.php/dav",e.filename),source:(0,p.dC)("dav")+(0,h.O0)(e.filename),fileVersion:e.basename}}(t,e)))}catch(e){throw w.error("Could not fetch version",{exception:e}),e}}(this.fileInfo)}finally{this.loading=!1}},async handleRestore(e){const i=this.fileInfo;this.fileInfo={...this.fileInfo,size:e.size,mtime:e.mtime};const n={preventDefault:!1,fileInfo:this.fileInfo,version:e};if((0,d.Ic)("files_versions:restore:requested",n),!n.preventDefault)try{await async function(e){try{var t,i;w.debug("Restoring version",{url:e.url}),await C.moveFile("/versions/".concat(null===(t=(0,u.HW)())||void 0===t?void 0:t.uid,"/versions/").concat(e.fileId,"/").concat(e.fileVersion),"/versions/".concat(null===(i=(0,u.HW)())||void 0===i?void 0:i.uid,"/restore/target"))}catch(e){throw w.error("Could not restore version",{exception:e}),e}}(e),""!==e.label?(0,l.Te)(t("files_versions","".concat(e.label," restored"))):e.mtime===this.initialVersionMtime?(0,l.Te)(t("files_versions","Initial version restored")):(0,l.Te)(t("files_versions","Version restored")),(0,d.Ic)("files_versions:restore:restored",e)}catch(n){this.fileInfo=i,(0,l.Qg)(t("files_versions","Could not restore version")),(0,d.Ic)("files_versions:restore:failed",e)}},handleLabelUpdateRequest(e){this.showVersionLabelForm=!0,this.editedVersion=e},async handleLabelUpdate(e){const t=this.editedVersion.label;this.editedVersion.label=e,this.showVersionLabelForm=!1;try{await async function(e,t){return await C.customRequest(e.filename,{method:"PROPPATCH",data:'\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t'.concat(t,"\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t")})}(this.editedVersion,e),this.editedVersion=null}catch(e){this.editedVersion.label=t,(0,l.Qg)(this.t("files_versions","Could not set version label")),logger.error("Could not set version label",{exception:e})}},async handleDelete(e){const i=this.versions.indexOf(e);this.versions.splice(i,1);try{await async function(e){await C.deleteFile(e.filename)}(e)}catch(i){this.versions.push(e),(0,l.Qg)(t("files_versions","Could not delete version"))}},resetState(){this.$set(this,"versions",[])},openVersion(e){let{version:t}=e;if(t.mtime===this.fileInfo.mtime)return void OCA.Viewer.open({fileInfo:this.viewerFileInfo});const i=this.versions.map((e=>{var t,i;return{...e,filename:e.mtime===this.fileInfo.mtime?a().join("files",null!==(t=null===(i=(0,u.HW)())||void 0===i?void 0:i.uid)&&void 0!==t?t:"",this.fileInfo.path,this.fileInfo.name):e.filename,hasPreview:!1,previewUrl:void 0}}));OCA.Viewer.open({fileInfo:i.find((e=>e.source===t.source)),enableSidebar:!1})},compareVersion(e){let{version:t}=e;const i=this.versions.map((e=>({...e,hasPreview:!1,previewUrl:void 0})));OCA.Viewer.compare(this.viewerFileInfo,i.find((e=>e.source===t.source)))}}};var Ae=n(34808),be={};be.styleTagTransform=ie(),be.setAttributes=Q(),be.insert=X().bind(null,"head"),be.domAPI=Y(),be.insertStyleElement=ee(),W()(Ae.A,be),Ae.A&&Ae.A.locals&&Ae.A.locals;const _e=(0,x.A)(me,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"versions-tab__container"},[t("VirtualScrolling",{attrs:{sections:e.sections,"header-height":0},scopedSlots:e._u([{key:"default",fn:function(i){let{visibleSections:n}=i;return[t("ul",{attrs:{"data-files-versions-versions-list":""}},[1===n.length?e._l(n[0].rows,(function(i){return t("Version",{key:i.items[0].mtime,attrs:{"can-view":e.canView,"can-compare":e.canCompare,"load-preview":e.isActive,version:i.items[0],"file-info":e.fileInfo,"is-current":i.items[0].mtime===e.fileInfo.mtime,"is-first-version":i.items[0].mtime===e.initialVersionMtime},on:{click:e.openVersion,compare:e.compareVersion,restore:e.handleRestore,"label-update-request":function(t){return e.handleLabelUpdateRequest(i.items[0])},delete:e.handleDelete}})})):e._e()],2)]}}])},[e._v(" "),e.loading?t("NcLoadingIcon",{staticClass:"files-list-viewer__loader",attrs:{slot:"loader"},slot:"loader"}):e._e()],1),e._v(" "),e.showVersionLabelForm?t("NcModal",{attrs:{title:e.t("files_versions","Name this version")},on:{close:function(t){e.showVersionLabelForm=!1}}},[t("VersionLabelForm",{attrs:{"version-label":e.editedVersion.label},on:{"label-update":e.handleLabelUpdate}})],1):e._e()],1)}),[],!1,null,null,null).exports;var ge=n(80284);s.Ay.prototype.t=o.Tl,s.Ay.prototype.n=o.zw,s.Ay.use(ge.Ay);const Ce=s.Ay.extend(_e);let we=null;window.addEventListener("DOMContentLoaded",(function(){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,o.Tl)("files_versions","Versions"),iconSvg:'',async mount(e,t,i){we&&we.$destroy(),we=new Ce({parent:i}),await we.update(t),we.$mount(e)},update(e){we.update(e)},setIsActive(e){we&&we.setIsActive(e)},destroy(){we.$destroy(),we=null},enabled(e){var t;return!(null===(t=null==e?void 0:e.isDirectory())||void 0===t||t)}}))}))},91974:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var n=i(71354),s=i.n(n),o=i(76314),r=i.n(o)()(s());r.push([e.id,".version[data-v-a0fb4a78]{display:flex;flex-direction:row}.version__info[data-v-a0fb4a78]{display:flex;flex-direction:row;align-items:center;gap:.5rem;color:var(--color-main-text);font-weight:500}.version__info__label[data-v-a0fb4a78]{font-weight:700;overflow:hidden;text-overflow:ellipsis}.version__info__date[data-v-a0fb4a78]{overflow:hidden;text-overflow:ellipsis}.version__info__subline[data-v-a0fb4a78]{color:var(--color-text-maxcontrast)}.version__image[data-v-a0fb4a78]{width:3rem;height:3rem;border:1px solid var(--color-border);border-radius:var(--border-radius-large);display:flex;justify-content:center;color:var(--color-text-light)}","",{version:3,sources:["webpack://./apps/files_versions/src/components/Version.vue"],names:[],mappings:"AACA,0BACC,YAAA,CACA,kBAAA,CAEA,gCACC,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,SAAA,CACA,4BAAA,CACA,eAAA,CAEA,uCACC,eAAA,CAEA,eAAA,CACA,sBAAA,CAGD,sCAEC,eAAA,CACA,sBAAA,CAGD,yCACC,mCAAA,CAIF,iCACC,UAAA,CACA,WAAA,CACA,oCAAA,CACA,wCAAA,CAGA,YAAA,CACA,sBAAA,CACA,6BAAA",sourcesContent:["\n.version {\n\tdisplay: flex;\n\tflex-direction: row;\n\n\t&__info {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\talign-items: center;\n\t\tgap: 0.5rem;\n\t\tcolor: var(--color-main-text);\n\t\tfont-weight: 500;\n\n\t\t&__label {\n\t\t\tfont-weight: 700;\n\t\t\t// Fix overflow on narrow screens\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__date {\n\t\t\t// Fix overflow on narrow screens\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__subline {\n\t\t\tcolor: var(--color-text-maxcontrast)\n\t\t}\n\t}\n\n\t&__image {\n\t\twidth: 3rem;\n\t\theight: 3rem;\n\t\tborder: 1px solid var(--color-border);\n\t\tborder-radius: var(--border-radius-large);\n\n\t\t// Useful to display no preview icon.\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\tcolor: var(--color-text-light);\n\t}\n}\n"],sourceRoot:""}]);const a=r},81122:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var n=i(71354),s=i.n(n),o=i(76314),r=i.n(o)()(s());r.push([e.id,".version-label-modal[data-v-20b51aac]{display:flex;justify-content:space-between;flex-direction:column;height:250px;padding:16px}.version-label-modal__title[data-v-20b51aac]{margin-bottom:12px;font-weight:600}.version-label-modal__info[data-v-20b51aac]{margin-top:12px;color:var(--color-text-maxcontrast)}.version-label-modal__actions[data-v-20b51aac]{display:flex;justify-content:space-between;margin-top:64px}","",{version:3,sources:["webpack://./apps/files_versions/src/components/VersionLabelForm.vue"],names:[],mappings:"AACA,sCACC,YAAA,CACA,6BAAA,CACA,qBAAA,CACA,YAAA,CACA,YAAA,CAEA,6CACC,kBAAA,CACA,eAAA,CAGD,4CACC,eAAA,CACA,mCAAA,CAGD,+CACC,YAAA,CACA,6BAAA,CACA,eAAA",sourcesContent:["\n.version-label-modal {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tflex-direction: column;\n\theight: 250px;\n\tpadding: 16px;\n\n\t&__title {\n\t\tmargin-bottom: 12px;\n\t\tfont-weight: 600;\n\t}\n\n\t&__info {\n\t\tmargin-top: 12px;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__actions {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tmargin-top: 64px;\n\t}\n}\n"],sourceRoot:""}]);const a=r},26201:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var n=i(71354),s=i.n(n),o=i(76314),r=i.n(o)()(s());r.push([e.id,".vs-container[data-v-49a1883f]{overflow-y:scroll;height:100%}.vs-rows-container[data-v-49a1883f]{box-sizing:border-box;will-change:scroll-position,padding;contain:layout paint style}","",{version:3,sources:["webpack://./apps/files_versions/src/components/VirtualScrolling.vue"],names:[],mappings:"AACA,+BACC,iBAAA,CACA,WAAA,CAGD,oCACC,qBAAA,CACA,mCAAA,CACA,0BAAA",sourcesContent:["\n.vs-container {\n\toverflow-y: scroll;\n\theight: 100%;\n}\n\n.vs-rows-container {\n\tbox-sizing: border-box;\n\twill-change: scroll-position, padding;\n\tcontain: layout paint style;\n}\n"],sourceRoot:""}]);const a=r},34808:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var n=i(71354),s=i.n(n),o=i(76314),r=i.n(o)()(s());r.push([e.id,".versions-tab__container{height:100%}","",{version:3,sources:["webpack://./apps/files_versions/src/views/VersionTab.vue"],names:[],mappings:"AACA,yBACC,WAAA",sourcesContent:["\n.versions-tab__container {\n\theight: 100%;\n}\n"],sourceRoot:""}]);const a=r},42634:()=>{},15340:()=>{},79838:()=>{}},o={};function r(e){var t=o[e];if(void 0!==t)return t.exports;var i=o[e]={id:e,loaded:!1,exports:{}};return s[e].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}r.m=s,e=[],r.O=(t,i,n,s)=>{if(!i){var o=1/0;for(d=0;d=s)&&Object.keys(r.O).every((e=>r.O[e](i[l])))?i.splice(l--,1):(a=!1,s0&&e[d-1][2]>s;d--)e[d]=e[d-1];e[d]=[i,n,s]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((t,i)=>(r.f[i](e,t),t)),[])),r.u=e=>e+"-"+e+".js?v="+{4254:"5c2324570f66dff0c8a1",9480:"f3ebcf41e93bbd8cd678"}[e],r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i={},n="nextcloud:",r.l=(e,t,s,o)=>{if(i[e])i[e].push(t);else{var a,l;if(void 0!==s)for(var c=document.getElementsByTagName("script"),d=0;d{a.onerror=a.onload=null,clearTimeout(f);var s=i[e];if(delete i[e],a.parentNode&&a.parentNode.removeChild(a),s&&s.forEach((e=>e(n))),t)return t(n)},f=setTimeout(v.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=v.bind(null,a.onerror),a.onload=v.bind(null,a.onload),l&&document.head.appendChild(a)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.j=2250,(()=>{var e;r.g.importScripts&&(e=r.g.location+"");var t=r.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var i=t.getElementsByTagName("script");if(i.length)for(var n=i.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=i[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=e})(),(()=>{r.b=document.baseURI||self.location.href;var e={2250:0};r.f.j=(t,i)=>{var n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)i.push(n[2]);else{var s=new Promise(((i,s)=>n=e[t]=[i,s]));i.push(n[2]=s);var o=r.p+r.u(t),a=new Error;r.l(o,(i=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var s=i&&("load"===i.type?"missing":i.type),o=i&&i.target&&i.target.src;a.message="Loading chunk "+t+" failed.\n("+s+": "+o+")",a.name="ChunkLoadError",a.type=s,a.request=o,n[1](a)}}),"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,i)=>{var n,s,o=i[0],a=i[1],l=i[2],c=0;if(o.some((t=>0!==e[t]))){for(n in a)r.o(a,n)&&(r.m[n]=a[n]);if(l)var d=l(r)}for(t&&t(i);cr(21678)));a=r.O(a)})(); +//# sourceMappingURL=files_versions-files_versions.js.map?v=eeedc262beadd550fd04 \ No newline at end of file diff --git a/dist/files_versions-files_versions.js.map b/dist/files_versions-files_versions.js.map index ec6cf5974efb2..98171383693d5 100644 --- a/dist/files_versions-files_versions.js.map +++ b/dist/files_versions-files_versions.js.map @@ -1 +1 @@ -{"version":3,"file":"files_versions-files_versions.js?v=2345e349c26447bcd2aa","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files_versions/src/utils/davClient.js","webpack:///nextcloud/apps/files_versions/src/utils/logger.js","webpack:///nextcloud/node_modules/vue-material-design-icons/BackupRestore.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/BackupRestore.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/BackupRestore.vue?6cf7","webpack:///nextcloud/node_modules/vue-material-design-icons/BackupRestore.vue?vue&type=template&id=25aaea72","webpack:///nextcloud/node_modules/vue-material-design-icons/Download.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Download.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Download.vue?b226","webpack:///nextcloud/node_modules/vue-material-design-icons/Download.vue?vue&type=template&id=b0ce3ea8","webpack:///nextcloud/node_modules/vue-material-design-icons/FileCompare.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/FileCompare.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/FileCompare.vue?5fdf","webpack:///nextcloud/node_modules/vue-material-design-icons/FileCompare.vue?vue&type=template&id=2810c319","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageOffOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageOffOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ImageOffOutline.vue?e0b5","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageOffOutline.vue?vue&type=template&id=7d95c70e","webpack:///nextcloud/apps/files_versions/src/components/Version.vue","webpack:///nextcloud/apps/files_versions/src/components/Version.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files_versions/src/components/Version.vue?9e2f","webpack://nextcloud/./apps/files_versions/src/components/Version.vue?0a31","webpack:///nextcloud/apps/files_versions/src/components/VirtualScrolling.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files_versions/src/components/VirtualScrolling.vue","webpack://nextcloud/./apps/files_versions/src/components/VirtualScrolling.vue?db39","webpack://nextcloud/./apps/files_versions/src/components/VirtualScrolling.vue?fc23","webpack:///nextcloud/apps/files_versions/src/components/VersionLabelForm.vue","webpack:///nextcloud/apps/files_versions/src/components/VersionLabelForm.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files_versions/src/components/VersionLabelForm.vue?d3b7","webpack://nextcloud/./apps/files_versions/src/components/VersionLabelForm.vue?dbea","webpack:///nextcloud/apps/files_versions/src/views/VersionTab.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_versions/src/views/VersionTab.vue","webpack:///nextcloud/apps/files_versions/src/utils/versions.ts","webpack:///nextcloud/apps/files_versions/src/utils/davRequest.js","webpack://nextcloud/./apps/files_versions/src/views/VersionTab.vue?020b","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=71e31498&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files_versions/src/components/VersionLabelForm.vue?vue&type=style&index=0&id=20b51aac&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files_versions/src/components/VirtualScrolling.vue?vue&type=style&index=0&id=49a1883f&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files_versions/src/views/VersionTab.vue?vue&type=style&index=0&id=c78825f4&prod&lang=scss","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createClient } from 'webdav'\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\n\n// init webdav client\nconst rootPath = 'dav'\nconst remote = generateRemoteUrl(rootPath)\nconst client = createClient(remote)\n\n// set CSRF token header\nconst setHeaders = (token) => {\n\tclient.setHeaders({\n\t\t// Add this so the server knows it is an request from the browser\n\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t// Inject user auth\n\t\trequesttoken: token ?? '',\n\t})\n}\n\n// refresh headers when request token changes\nonRequestTokenUpdate(setHeaders)\nsetHeaders(getRequestToken())\n\nexport default client\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files_version')\n\t.detectUser()\n\t.build()\n","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./BackupRestore.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./BackupRestore.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BackupRestore.vue?vue&type=template&id=25aaea72\"\nimport script from \"./BackupRestore.vue?vue&type=script&lang=js\"\nexport * from \"./BackupRestore.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon backup-restore-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,3A9,9 0 0,0 3,12H0L4,16L8,12H5A7,7 0 0,1 12,5A7,7 0 0,1 19,12A7,7 0 0,1 12,19C10.5,19 9.09,18.5 7.94,17.7L6.5,19.14C8.04,20.3 9.94,21 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M14,12A2,2 0 0,0 12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Download.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Download.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Download.vue?vue&type=template&id=b0ce3ea8\"\nimport script from \"./Download.vue?vue&type=script&lang=js\"\nexport * from \"./Download.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon download-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileCompare.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileCompare.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./FileCompare.vue?vue&type=template&id=2810c319\"\nimport script from \"./FileCompare.vue?vue&type=script&lang=js\"\nexport * from \"./FileCompare.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon file-compare-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M10,18H6V16H10V18M10,14H6V12H10V14M10,1V2H6C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H10V23H12V1H10M20,8V20C20,21.11 19.11,22 18,22H14V20H18V11H14V9H18.5L14,4.5V2L20,8M16,14H14V12H16V14M16,18H14V16H16V18Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageOffOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageOffOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./ImageOffOutline.vue?vue&type=template&id=7d95c70e\"\nimport script from \"./ImageOffOutline.vue?vue&type=script&lang=js\"\nexport * from \"./ImageOffOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon image-off-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M22 20.7L3.3 2L2 3.3L3 4.3V19C3 20.1 3.9 21 5 21H19.7L20.7 22L22 20.7M5 19V6.3L12.6 13.9L11.1 15.8L9 13.1L6 17H15.7L17.7 19H5M8.8 5L6.8 3H19C20.1 3 21 3.9 21 5V17.2L19 15.2V5H8.8\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcListItem',{staticClass:\"version\",attrs:{\"force-display-actions\":true,\"data-files-versions-version\":_vm.version.fileVersion},on:{\"click\":_vm.click},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(!(_vm.loadPreview || _vm.previewLoaded))?_c('div',{staticClass:\"version__image\"}):((_vm.isCurrent || _vm.version.hasPreview) && !_vm.previewErrored)?_c('img',{staticClass:\"version__image\",attrs:{\"src\":_vm.version.previewUrl,\"alt\":\"\",\"decoding\":\"async\",\"fetchpriority\":\"low\",\"loading\":\"lazy\"},on:{\"load\":function($event){_vm.previewLoaded = true},\"error\":function($event){_vm.previewErrored = true}}}):_c('div',{staticClass:\"version__image\"},[_c('ImageOffOutline',{attrs:{\"size\":20}})],1)]},proxy:true},{key:\"name\",fn:function(){return [_c('div',{staticClass:\"version__info\"},[(_vm.versionLabel)?_c('div',{staticClass:\"version__info__label\",attrs:{\"title\":_vm.versionLabel}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.versionLabel)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.versionAuthor)?_c('div',{staticClass:\"version__info\"},[(_vm.versionLabel)?_c('span',[_vm._v(\"•\")]):_vm._e(),_vm._v(\" \"),_c('NcAvatar',{staticClass:\"avatar\",attrs:{\"user\":_vm.version.author,\"size\":16,\"disable-menu\":true,\"disable-tooltip\":true,\"show-user-status\":false}}),_vm._v(\" \"),_c('div',[_vm._v(_vm._s(_vm.versionAuthor))])],1):_vm._e()])]},proxy:true},{key:\"subname\",fn:function(){return [_c('div',{staticClass:\"version__info version__info__subline\"},[_c('NcDateTime',{staticClass:\"version__info__date\",attrs:{\"relative-time\":\"short\",\"timestamp\":_vm.version.mtime}}),_vm._v(\" \"),_c('span',[_vm._v(\"•\")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.humanReadableSize))])],1)]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.enableLabeling && _vm.hasUpdatePermissions)?_c('NcActionButton',{attrs:{\"data-cy-files-versions-version-action\":\"label\",\"close-after-click\":true},on:{\"click\":_vm.labelUpdate},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":22}})]},proxy:true}],null,false,3072546167)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.version.label === '' ? _vm.t('files_versions', 'Name this version') : _vm.t('files_versions', 'Edit version name'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.isCurrent && _vm.canView && _vm.canCompare)?_c('NcActionButton',{attrs:{\"data-cy-files-versions-version-action\":\"compare\",\"close-after-click\":true},on:{\"click\":_vm.compareVersion},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('FileCompare',{attrs:{\"size\":22}})]},proxy:true}],null,false,1958207595)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Compare to current version'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.isCurrent && _vm.hasUpdatePermissions)?_c('NcActionButton',{attrs:{\"data-cy-files-versions-version-action\":\"restore\",\"close-after-click\":true},on:{\"click\":_vm.restoreVersion},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('BackupRestore',{attrs:{\"size\":22}})]},proxy:true}],null,false,2239038444)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Restore version'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.isDownloadable)?_c('NcActionLink',{attrs:{\"data-cy-files-versions-version-action\":\"download\",\"href\":_vm.downloadURL,\"close-after-click\":true,\"download\":_vm.downloadURL},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Download',{attrs:{\"size\":22}})]},proxy:true}],null,false,927269758)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Download version'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.isCurrent && _vm.enableDeletion && _vm.hasDeletePermissions)?_c('NcActionButton',{attrs:{\"data-cy-files-versions-version-action\":\"delete\",\"close-after-click\":true},on:{\"click\":_vm.deleteVersion},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":22}})]},proxy:true}],null,false,2429175571)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Delete version'))+\"\\n\\t\\t\")]):_vm._e()]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=style&index=0&id=71e31498&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=71e31498&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Version.vue?vue&type=template&id=71e31498&scoped=true\"\nimport script from \"./Version.vue?vue&type=script&lang=ts\"\nexport * from \"./Version.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Version.vue?vue&type=style&index=0&id=71e31498&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 \"71e31498\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualScrolling.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualScrolling.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!_vm.useWindow && _vm.containerElement === null)?_c('div',{ref:\"container\",staticClass:\"vs-container\"},[_c('div',{ref:\"rowsContainer\",staticClass:\"vs-rows-container\",style:(_vm.rowsContainerStyle)},[_vm._t(\"default\",null,{\"visibleSections\":_vm.visibleSections}),_vm._v(\" \"),_vm._t(\"loader\")],2)]):_c('div',{ref:\"rowsContainer\",staticClass:\"vs-rows-container\",style:(_vm.rowsContainerStyle)},[_vm._t(\"default\",null,{\"visibleSections\":_vm.visibleSections}),_vm._v(\" \"),_vm._t(\"loader\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualScrolling.vue?vue&type=style&index=0&id=49a1883f&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!./VirtualScrolling.vue?vue&type=style&index=0&id=49a1883f&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VirtualScrolling.vue?vue&type=template&id=49a1883f&scoped=true\"\nimport script from \"./VirtualScrolling.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualScrolling.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VirtualScrolling.vue?vue&type=style&index=0&id=49a1883f&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 \"49a1883f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form',{staticClass:\"version-label-modal\",on:{\"submit\":function($event){$event.preventDefault();return _vm.setVersionLabel(_vm.innerVersionLabel)}}},[_c('label',[_c('div',{staticClass:\"version-label-modal__title\"},[_vm._v(_vm._s(_vm.t('files_versions', 'Version name')))]),_vm._v(\" \"),_c('NcTextField',{ref:\"labelInput\",attrs:{\"value\":_vm.innerVersionLabel,\"placeholder\":_vm.t('files_versions', 'Version name'),\"label-outside\":true},on:{\"update:value\":function($event){_vm.innerVersionLabel=$event}}})],1),_vm._v(\" \"),_c('div',{staticClass:\"version-label-modal__info\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_versions', 'Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"version-label-modal__actions\"},[_c('NcButton',{attrs:{\"disabled\":_vm.innerVersionLabel.trim().length === 0},on:{\"click\":function($event){return _vm.setVersionLabel('')}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Remove version name'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"primary\",\"native-type\":\"submit\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Check')]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Save version name'))+\"\\n\\t\\t\")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionLabelForm.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionLabelForm.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionLabelForm.vue?vue&type=style&index=0&id=20b51aac&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!./VersionLabelForm.vue?vue&type=style&index=0&id=20b51aac&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VersionLabelForm.vue?vue&type=template&id=20b51aac&scoped=true\"\nimport script from \"./VersionLabelForm.vue?vue&type=script&lang=ts\"\nexport * from \"./VersionLabelForm.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VersionLabelForm.vue?vue&type=style&index=0&id=20b51aac&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 \"20b51aac\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionTab.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { generateRemoteUrl, generateUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { joinPaths, encodePath } from '@nextcloud/paths';\nimport moment from '@nextcloud/moment';\nimport client from '../utils/davClient.js';\nimport davRequest from '../utils/davRequest.js';\nimport logger from '../utils/logger.js';\nexport async function fetchVersions(fileInfo) {\n const path = `/versions/${getCurrentUser()?.uid}/versions/${fileInfo.id}`;\n try {\n const response = await client.getDirectoryContents(path, {\n data: davRequest,\n details: true,\n });\n return response.data\n // Filter out root\n .filter(({ mime }) => mime !== '')\n .map(version => formatVersion(version, fileInfo));\n }\n catch (exception) {\n logger.error('Could not fetch version', { exception });\n throw exception;\n }\n}\n/**\n * Restore the given version\n */\nexport async function restoreVersion(version) {\n try {\n logger.debug('Restoring version', { url: version.url });\n await client.moveFile(`/versions/${getCurrentUser()?.uid}/versions/${version.fileId}/${version.fileVersion}`, `/versions/${getCurrentUser()?.uid}/restore/target`);\n }\n catch (exception) {\n logger.error('Could not restore version', { exception });\n throw exception;\n }\n}\n/**\n * Format version\n */\nfunction formatVersion(version, fileInfo) {\n const mtime = moment(version.lastmod).unix() * 1000;\n let previewUrl = '';\n if (mtime === fileInfo.mtime) { // Version is the current one\n previewUrl = generateUrl('/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0', {\n fileId: fileInfo.id,\n fileEtag: fileInfo.etag,\n });\n }\n else {\n previewUrl = generateUrl('/apps/files_versions/preview?file={file}&version={fileVersion}', {\n file: joinPaths(fileInfo.path, fileInfo.name),\n fileVersion: version.basename,\n });\n }\n return {\n fileId: fileInfo.id,\n // If version-label is defined make sure it is a string (prevent issue if the label is a number an PHP returns a number then)\n label: version.props['version-label'] && String(version.props['version-label']),\n author: version.props['version-author'] ?? null,\n filename: version.filename,\n basename: moment(mtime).format('LLL'),\n mime: version.mime,\n etag: `${version.props.getetag}`,\n size: version.size,\n type: version.type,\n mtime,\n permissions: 'R',\n hasPreview: version.props['has-preview'] === 1,\n previewUrl,\n url: joinPaths('/remote.php/dav', version.filename),\n source: generateRemoteUrl('dav') + encodePath(version.filename),\n fileVersion: version.basename,\n };\n}\nexport async function setVersionLabel(version, newLabel) {\n return await client.customRequest(version.filename, {\n method: 'PROPPATCH',\n data: `\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t${newLabel}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t`,\n });\n}\nexport async function deleteVersion(version) {\n await client.deleteFile(version.filename);\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default `\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n`\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionTab.vue?vue&type=style&index=0&id=c78825f4&prod&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!./VersionTab.vue?vue&type=style&index=0&id=c78825f4&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VersionTab.vue?vue&type=template&id=c78825f4\"\nimport script from \"./VersionTab.vue?vue&type=script&lang=js\"\nexport * from \"./VersionTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./VersionTab.vue?vue&type=style&index=0&id=c78825f4&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"versions-tab__container\"},[_c('VirtualScrolling',{attrs:{\"sections\":_vm.sections,\"header-height\":0},scopedSlots:_vm._u([{key:\"default\",fn:function({visibleSections}){return [_c('ul',{attrs:{\"data-files-versions-versions-list\":\"\"}},[(visibleSections.length === 1)?_vm._l((visibleSections[0].rows),function(row){return _c('Version',{key:row.items[0].mtime,attrs:{\"can-view\":_vm.canView,\"can-compare\":_vm.canCompare,\"load-preview\":_vm.isActive,\"version\":row.items[0],\"file-info\":_vm.fileInfo,\"is-current\":row.items[0].mtime === _vm.fileInfo.mtime,\"is-first-version\":row.items[0].mtime === _vm.initialVersionMtime},on:{\"click\":_vm.openVersion,\"compare\":_vm.compareVersion,\"restore\":_vm.handleRestore,\"label-update-request\":function($event){return _vm.handleLabelUpdateRequest(row.items[0])},\"delete\":_vm.handleDelete}})}):_vm._e()],2)]}}])},[_vm._v(\" \"),(_vm.loading)?_c('NcLoadingIcon',{staticClass:\"files-list-viewer__loader\",attrs:{\"slot\":\"loader\"},slot:\"loader\"}):_vm._e()],1),_vm._v(\" \"),(_vm.showVersionLabelForm)?_c('NcModal',{attrs:{\"title\":_vm.t('files_versions', 'Name this version')},on:{\"close\":function($event){_vm.showVersionLabelForm = false}}},[_c('VersionLabelForm',{attrs:{\"version-label\":_vm.editedVersion.label},on:{\"label-update\":_vm.handleLabelUpdate}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n'\n\nimport VersionTab from './views/VersionTab.vue'\nimport VTooltip from 'v-tooltip'\n// eslint-disable-next-line n/no-missing-import, import/no-unresolved\nimport BackupRestore from '@mdi/svg/svg/backup-restore.svg?raw'\n\nVue.prototype.t = t\nVue.prototype.n = n\n\nVue.use(VTooltip)\n\n// Init Sharing tab component\nconst View = Vue.extend(VersionTab)\nlet TabInstance = null\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\tif (OCA.Files?.Sidebar === undefined) {\n\t\treturn\n\t}\n\n\tOCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab({\n\t\tid: 'version_vue',\n\t\tname: t('files_versions', 'Versions'),\n\t\ticonSvg: BackupRestore,\n\n\t\tasync mount(el, fileInfo, context) {\n\t\t\tif (TabInstance) {\n\t\t\t\tTabInstance.$destroy()\n\t\t\t}\n\t\t\tTabInstance = new View({\n\t\t\t\t// Better integration with vue parent component\n\t\t\t\tparent: context,\n\t\t\t})\n\t\t\t// Only mount after we have all the info we need\n\t\t\tawait TabInstance.update(fileInfo)\n\t\t\tTabInstance.$mount(el)\n\t\t},\n\t\tupdate(fileInfo) {\n\t\t\tTabInstance.update(fileInfo)\n\t\t},\n\t\tsetIsActive(isActive) {\n\t\t\tif (!TabInstance) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tTabInstance.setIsActive(isActive)\n\t\t},\n\t\tdestroy() {\n\t\t\tTabInstance.$destroy()\n\t\t\tTabInstance = null\n\t\t},\n\t\tenabled(fileInfo) {\n\t\t\treturn !(fileInfo?.isDirectory() ?? true)\n\t\t},\n\t}))\n})\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.version[data-v-71e31498]{display:flex;flex-direction:row}.version__info[data-v-71e31498]{display:flex;flex-direction:row;align-items:center;gap:.5rem;color:var(--color-main-text);font-weight:500}.version__info__label[data-v-71e31498]{font-weight:700;overflow:hidden;text-overflow:ellipsis}.version__info__date[data-v-71e31498]{overflow:hidden;text-overflow:ellipsis}.version__info__subline[data-v-71e31498]{color:var(--color-text-maxcontrast)}.version__image[data-v-71e31498]{width:3rem;height:3rem;border:1px solid var(--color-border);border-radius:var(--border-radius-large);display:flex;justify-content:center;color:var(--color-text-light)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_versions/src/components/Version.vue\"],\"names\":[],\"mappings\":\"AACA,0BACC,YAAA,CACA,kBAAA,CAEA,gCACC,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,SAAA,CACA,4BAAA,CACA,eAAA,CAEA,uCACC,eAAA,CAEA,eAAA,CACA,sBAAA,CAGD,sCAEC,eAAA,CACA,sBAAA,CAGD,yCACC,mCAAA,CAIF,iCACC,UAAA,CACA,WAAA,CACA,oCAAA,CACA,wCAAA,CAGA,YAAA,CACA,sBAAA,CACA,6BAAA\",\"sourcesContent\":[\"\\n.version {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\n\\t&__info {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\talign-items: center;\\n\\t\\tgap: 0.5rem;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tfont-weight: 500;\\n\\n\\t\\t&__label {\\n\\t\\t\\tfont-weight: 700;\\n\\t\\t\\t// Fix overflow on narrow screens\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__date {\\n\\t\\t\\t// Fix overflow on narrow screens\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__subline {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast)\\n\\t\\t}\\n\\t}\\n\\n\\t&__image {\\n\\t\\twidth: 3rem;\\n\\t\\theight: 3rem;\\n\\t\\tborder: 1px solid var(--color-border);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\n\\t\\t// Useful to display no preview icon.\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\tcolor: var(--color-text-light);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.version-label-modal[data-v-20b51aac]{display:flex;justify-content:space-between;flex-direction:column;height:250px;padding:16px}.version-label-modal__title[data-v-20b51aac]{margin-bottom:12px;font-weight:600}.version-label-modal__info[data-v-20b51aac]{margin-top:12px;color:var(--color-text-maxcontrast)}.version-label-modal__actions[data-v-20b51aac]{display:flex;justify-content:space-between;margin-top:64px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_versions/src/components/VersionLabelForm.vue\"],\"names\":[],\"mappings\":\"AACA,sCACC,YAAA,CACA,6BAAA,CACA,qBAAA,CACA,YAAA,CACA,YAAA,CAEA,6CACC,kBAAA,CACA,eAAA,CAGD,4CACC,eAAA,CACA,mCAAA,CAGD,+CACC,YAAA,CACA,6BAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.version-label-modal {\\n\\tdisplay: flex;\\n\\tjustify-content: space-between;\\n\\tflex-direction: column;\\n\\theight: 250px;\\n\\tpadding: 16px;\\n\\n\\t&__title {\\n\\t\\tmargin-bottom: 12px;\\n\\t\\tfont-weight: 600;\\n\\t}\\n\\n\\t&__info {\\n\\t\\tmargin-top: 12px;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: space-between;\\n\\t\\tmargin-top: 64px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.vs-container[data-v-49a1883f]{overflow-y:scroll;height:100%}.vs-rows-container[data-v-49a1883f]{box-sizing:border-box;will-change:scroll-position,padding;contain:layout paint style}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_versions/src/components/VirtualScrolling.vue\"],\"names\":[],\"mappings\":\"AACA,+BACC,iBAAA,CACA,WAAA,CAGD,oCACC,qBAAA,CACA,mCAAA,CACA,0BAAA\",\"sourcesContent\":[\"\\n.vs-container {\\n\\toverflow-y: scroll;\\n\\theight: 100%;\\n}\\n\\n.vs-rows-container {\\n\\tbox-sizing: border-box;\\n\\twill-change: scroll-position, padding;\\n\\tcontain: layout paint style;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.versions-tab__container{height:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_versions/src/views/VersionTab.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,WAAA\",\"sourcesContent\":[\"\\n.versions-tab__container {\\n\\theight: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"4254\":\"5c2324570f66dff0c8a1\",\"9480\":\"f3ebcf41e93bbd8cd678\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2250;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2250: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(14507)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","remote","generateRemoteUrl","client","createClient","setHeaders","token","requesttoken","onRequestTokenUpdate","getRequestToken","getLoggerBuilder","setApp","detectUser","build","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","hasPermission","permissions","permission","defineComponent","components","NcActionLink","NcActionButton","NcAvatar","NcDateTime","NcListItem","BackupRestore","Download","FileCompare","Pencil","Delete","ImageOffOutline","directives","tooltip","Tooltip","version","Object","required","fileInfo","isCurrent","Boolean","isFirstVersion","loadPreview","canView","canCompare","data","previewLoaded","previewErrored","capabilities","loadState","files","version_labeling","version_deletion","versionAuthor","computed","humanReadableSize","formatFileSize","versionLabel","_this$version$label","label","t","concat","downloadURL","getRootUrl","joinPaths","path","url","enableLabeling","enableDeletion","hasDeletePermissions","Permission","DELETE","hasUpdatePermissions","UPDATE","isDownloadable","READ","mountType","downloadAttribute","shareAttributes","find","attribute","scope","key","enabled","created","fetchDisplayName","methods","labelUpdate","restoreVersion","deleteVersion","$nextTick","author","axios","get","generateOcsUrl","ocs","displayname","e","click","window","location","compareVersion","Error","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_setupProxy","fileVersion","scopedSlots","_u","fn","hasPreview","previewUrl","proxy","mtime","sections","Array","containerElement","HTMLElement","useWindow","headerHeight","renderDistance","bottomBufferRatio","scrollToKey","scrollPosition","containerHeight","rowsContainerHeight","resizeObserver","visibleSections","logger","debug","containerTop","containerBottom","currentRowTop","currentRowBottom","map","section","rows","reduce","visibleRows","row","height","distance","filter","length","visibleItems","flatMap","_ref","_ref2","items","rowIdToKeyMap","_rowIdToKeyMap","forEach","item","id","usedTokens","_ref3","undefined","unusedTokens","values","includes","_ref4","_unusedTokens$pop","pop","Math","random","toString","substr","finalMapping","_ref5","totalHeight","sectionHeight","paddingTop","sectionKey","rowsContainerStyle","isNearBottom","buffer","container","$refs","watch","value","currentRowTopDistanceFromTop","scrollTo","top","behavior","beforeCreate","mounted","ResizeObserver","entries","entry","cr","contentRect","target","classList","contains","addEventListener","updateContainerSize","passive","innerHeight","observe","rowsContainer","updateScrollPosition","beforeDestroy","_this$resizeObserver","removeEventListener","disconnect","_this$_onScrollHandle","_onScrollHandle","requestAnimationFrame","scrollY","scrollTop","ref","style","_t","NcButton","NcTextField","Check","innerVersionLabel","labelInput","$el","getElementsByTagName","focus","setVersionLabel","translate","Version","VirtualScrolling","VersionLabelForm","preventDefault","trim","NcLoadingIcon","NcModal","mixins","isMobile","isActive","versions","loading","showVersionLabelForm","orderedVersions","sort","a","b","initialVersionMtime","min","viewerFileInfo","davPermissions","mime","mimetype","basename","filename","fileid","_window$OCA$Viewer","OCA","Viewer","mimetypesCompare","subscribe","fetchVersions","beforeUnmount","unsubscribe","update","resetState","setIsActive","async","_getCurrentUser","getCurrentUser","uid","getDirectoryContents","details","_version$props$versio","moment","lastmod","unix","generateUrl","fileId","fileEtag","etag","file","format","getetag","source","encodePath","formatVersion","exception","error","handleRestore","oldFileInfo","restoreStartedEventState","emit","_getCurrentUser2","_getCurrentUser3","moveFile","showSuccess","showError","handleLabelUpdateRequest","editedVersion","handleLabelUpdate","newLabel","oldLabel","customRequest","method","handleDelete","index","indexOf","splice","deleteFile","push","$set","openVersion","open","_getCurrentUser$uid","v","enableSidebar","compare","_l","slot","Vue","prototype","n","use","VTooltip","View","extend","VersionTab","TabInstance","_OCA$Files","Files","Sidebar","registerTab","Tab","iconSvg","mount","el","context","$destroy","parent","$mount","destroy","_fileInfo$isDirectory","isDirectory","___CSS_LOADER_EXPORT___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","keys","every","r","getter","__esModule","d","definition","o","defineProperty","enumerable","f","chunkId","Promise","all","promises","u","g","globalThis","Function","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","document","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","currentScript","test","replace","p","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"files_versions-files_versions.js?v=eeedc262beadd550fd04","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files_versions/src/utils/davClient.js","webpack:///nextcloud/apps/files_versions/src/utils/logger.js","webpack:///nextcloud/node_modules/vue-material-design-icons/BackupRestore.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/BackupRestore.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/BackupRestore.vue?6cf7","webpack:///nextcloud/node_modules/vue-material-design-icons/BackupRestore.vue?vue&type=template&id=25aaea72","webpack:///nextcloud/node_modules/vue-material-design-icons/Download.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Download.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Download.vue?b226","webpack:///nextcloud/node_modules/vue-material-design-icons/Download.vue?vue&type=template&id=b0ce3ea8","webpack:///nextcloud/node_modules/vue-material-design-icons/FileCompare.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/FileCompare.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/FileCompare.vue?5fdf","webpack:///nextcloud/node_modules/vue-material-design-icons/FileCompare.vue?vue&type=template&id=2810c319","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageOffOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageOffOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ImageOffOutline.vue?e0b5","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageOffOutline.vue?vue&type=template&id=7d95c70e","webpack:///nextcloud/apps/files_versions/src/components/Version.vue","webpack:///nextcloud/apps/files_versions/src/components/Version.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files_versions/src/components/Version.vue?458f","webpack://nextcloud/./apps/files_versions/src/components/Version.vue?0a31","webpack:///nextcloud/apps/files_versions/src/components/VirtualScrolling.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files_versions/src/components/VirtualScrolling.vue","webpack://nextcloud/./apps/files_versions/src/components/VirtualScrolling.vue?db39","webpack://nextcloud/./apps/files_versions/src/components/VirtualScrolling.vue?fc23","webpack:///nextcloud/apps/files_versions/src/components/VersionLabelForm.vue","webpack:///nextcloud/apps/files_versions/src/components/VersionLabelForm.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files_versions/src/components/VersionLabelForm.vue?d3b7","webpack://nextcloud/./apps/files_versions/src/components/VersionLabelForm.vue?dbea","webpack:///nextcloud/apps/files_versions/src/views/VersionTab.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_versions/src/views/VersionTab.vue","webpack:///nextcloud/apps/files_versions/src/utils/versions.ts","webpack:///nextcloud/apps/files_versions/src/utils/davRequest.js","webpack://nextcloud/./apps/files_versions/src/views/VersionTab.vue?020b","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=a0fb4a78&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files_versions/src/components/VersionLabelForm.vue?vue&type=style&index=0&id=20b51aac&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files_versions/src/components/VirtualScrolling.vue?vue&type=style&index=0&id=49a1883f&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files_versions/src/views/VersionTab.vue?vue&type=style&index=0&id=c78825f4&prod&lang=scss","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createClient } from 'webdav'\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\n\n// init webdav client\nconst rootPath = 'dav'\nconst remote = generateRemoteUrl(rootPath)\nconst client = createClient(remote)\n\n// set CSRF token header\nconst setHeaders = (token) => {\n\tclient.setHeaders({\n\t\t// Add this so the server knows it is an request from the browser\n\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t// Inject user auth\n\t\trequesttoken: token ?? '',\n\t})\n}\n\n// refresh headers when request token changes\nonRequestTokenUpdate(setHeaders)\nsetHeaders(getRequestToken())\n\nexport default client\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files_version')\n\t.detectUser()\n\t.build()\n","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./BackupRestore.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./BackupRestore.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BackupRestore.vue?vue&type=template&id=25aaea72\"\nimport script from \"./BackupRestore.vue?vue&type=script&lang=js\"\nexport * from \"./BackupRestore.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon backup-restore-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,3A9,9 0 0,0 3,12H0L4,16L8,12H5A7,7 0 0,1 12,5A7,7 0 0,1 19,12A7,7 0 0,1 12,19C10.5,19 9.09,18.5 7.94,17.7L6.5,19.14C8.04,20.3 9.94,21 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M14,12A2,2 0 0,0 12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Download.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Download.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Download.vue?vue&type=template&id=b0ce3ea8\"\nimport script from \"./Download.vue?vue&type=script&lang=js\"\nexport * from \"./Download.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon download-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileCompare.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileCompare.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./FileCompare.vue?vue&type=template&id=2810c319\"\nimport script from \"./FileCompare.vue?vue&type=script&lang=js\"\nexport * from \"./FileCompare.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon file-compare-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M10,18H6V16H10V18M10,14H6V12H10V14M10,1V2H6C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H10V23H12V1H10M20,8V20C20,21.11 19.11,22 18,22H14V20H18V11H14V9H18.5L14,4.5V2L20,8M16,14H14V12H16V14M16,18H14V16H16V18Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageOffOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageOffOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./ImageOffOutline.vue?vue&type=template&id=7d95c70e\"\nimport script from \"./ImageOffOutline.vue?vue&type=script&lang=js\"\nexport * from \"./ImageOffOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon image-off-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M22 20.7L3.3 2L2 3.3L3 4.3V19C3 20.1 3.9 21 5 21H19.7L20.7 22L22 20.7M5 19V6.3L12.6 13.9L11.1 15.8L9 13.1L6 17H15.7L17.7 19H5M8.8 5L6.8 3H19C20.1 3 21 3.9 21 5V17.2L19 15.2V5H8.8\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcListItem',{staticClass:\"version\",attrs:{\"force-display-actions\":true,\"data-files-versions-version\":_vm.version.fileVersion},on:{\"click\":_vm.click},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(!(_vm.loadPreview || _vm.previewLoaded))?_c('div',{staticClass:\"version__image\"}):((_vm.isCurrent || _vm.version.hasPreview) && !_vm.previewErrored)?_c('img',{staticClass:\"version__image\",attrs:{\"src\":_vm.version.previewUrl,\"alt\":\"\",\"decoding\":\"async\",\"fetchpriority\":\"low\",\"loading\":\"lazy\"},on:{\"load\":function($event){_vm.previewLoaded = true},\"error\":function($event){_vm.previewErrored = true}}}):_c('div',{staticClass:\"version__image\"},[_c('ImageOffOutline',{attrs:{\"size\":20}})],1)]},proxy:true},{key:\"name\",fn:function(){return [_c('div',{staticClass:\"version__info\"},[(_vm.versionLabel)?_c('div',{staticClass:\"version__info__label\",attrs:{\"title\":_vm.versionLabel}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.versionLabel)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.versionAuthor)?_c('div',{staticClass:\"version__info\"},[(_vm.versionLabel)?_c('span',[_vm._v(\"•\")]):_vm._e(),_vm._v(\" \"),_c('NcAvatar',{staticClass:\"avatar\",attrs:{\"user\":_vm.version.author,\"size\":16,\"disable-menu\":true,\"disable-tooltip\":true,\"show-user-status\":false}}),_vm._v(\" \"),_c('div',[_vm._v(_vm._s(_vm.versionAuthor))])],1):_vm._e()])]},proxy:true},{key:\"subname\",fn:function(){return [_c('div',{staticClass:\"version__info version__info__subline\"},[_c('NcDateTime',{staticClass:\"version__info__date\",attrs:{\"relative-time\":\"short\",\"timestamp\":_vm.version.mtime}}),_vm._v(\" \"),_c('span',[_vm._v(\"•\")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.humanReadableSize))])],1)]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.enableLabeling && _vm.hasUpdatePermissions)?_c('NcActionButton',{attrs:{\"data-cy-files-versions-version-action\":\"label\",\"close-after-click\":true},on:{\"click\":_vm.labelUpdate},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":22}})]},proxy:true}],null,false,3072546167)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.version.label === '' ? _vm.t('files_versions', 'Name this version') : _vm.t('files_versions', 'Edit version name'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.isCurrent && _vm.canView && _vm.canCompare)?_c('NcActionButton',{attrs:{\"data-cy-files-versions-version-action\":\"compare\",\"close-after-click\":true},on:{\"click\":_vm.compareVersion},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('FileCompare',{attrs:{\"size\":22}})]},proxy:true}],null,false,1958207595)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Compare to current version'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.isCurrent && _vm.hasUpdatePermissions)?_c('NcActionButton',{attrs:{\"data-cy-files-versions-version-action\":\"restore\",\"close-after-click\":true},on:{\"click\":_vm.restoreVersion},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('BackupRestore',{attrs:{\"size\":22}})]},proxy:true}],null,false,2239038444)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Restore version'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.isDownloadable)?_c('NcActionLink',{attrs:{\"data-cy-files-versions-version-action\":\"download\",\"href\":_vm.downloadURL,\"close-after-click\":true,\"download\":_vm.downloadURL},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Download',{attrs:{\"size\":22}})]},proxy:true}],null,false,927269758)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Download version'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.isCurrent && _vm.enableDeletion && _vm.hasDeletePermissions)?_c('NcActionButton',{attrs:{\"data-cy-files-versions-version-action\":\"delete\",\"close-after-click\":true},on:{\"click\":_vm.deleteVersion},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":22}})]},proxy:true}],null,false,2429175571)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Delete version'))+\"\\n\\t\\t\")]):_vm._e()]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=style&index=0&id=a0fb4a78&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=a0fb4a78&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Version.vue?vue&type=template&id=a0fb4a78&scoped=true\"\nimport script from \"./Version.vue?vue&type=script&lang=ts\"\nexport * from \"./Version.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Version.vue?vue&type=style&index=0&id=a0fb4a78&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 \"a0fb4a78\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualScrolling.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualScrolling.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!_vm.useWindow && _vm.containerElement === null)?_c('div',{ref:\"container\",staticClass:\"vs-container\"},[_c('div',{ref:\"rowsContainer\",staticClass:\"vs-rows-container\",style:(_vm.rowsContainerStyle)},[_vm._t(\"default\",null,{\"visibleSections\":_vm.visibleSections}),_vm._v(\" \"),_vm._t(\"loader\")],2)]):_c('div',{ref:\"rowsContainer\",staticClass:\"vs-rows-container\",style:(_vm.rowsContainerStyle)},[_vm._t(\"default\",null,{\"visibleSections\":_vm.visibleSections}),_vm._v(\" \"),_vm._t(\"loader\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualScrolling.vue?vue&type=style&index=0&id=49a1883f&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!./VirtualScrolling.vue?vue&type=style&index=0&id=49a1883f&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VirtualScrolling.vue?vue&type=template&id=49a1883f&scoped=true\"\nimport script from \"./VirtualScrolling.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualScrolling.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VirtualScrolling.vue?vue&type=style&index=0&id=49a1883f&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 \"49a1883f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form',{staticClass:\"version-label-modal\",on:{\"submit\":function($event){$event.preventDefault();return _vm.setVersionLabel(_vm.innerVersionLabel)}}},[_c('label',[_c('div',{staticClass:\"version-label-modal__title\"},[_vm._v(_vm._s(_vm.t('files_versions', 'Version name')))]),_vm._v(\" \"),_c('NcTextField',{ref:\"labelInput\",attrs:{\"value\":_vm.innerVersionLabel,\"placeholder\":_vm.t('files_versions', 'Version name'),\"label-outside\":true},on:{\"update:value\":function($event){_vm.innerVersionLabel=$event}}})],1),_vm._v(\" \"),_c('div',{staticClass:\"version-label-modal__info\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_versions', 'Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"version-label-modal__actions\"},[_c('NcButton',{attrs:{\"disabled\":_vm.innerVersionLabel.trim().length === 0},on:{\"click\":function($event){return _vm.setVersionLabel('')}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Remove version name'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"primary\",\"native-type\":\"submit\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Check')]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_versions', 'Save version name'))+\"\\n\\t\\t\")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionLabelForm.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionLabelForm.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionLabelForm.vue?vue&type=style&index=0&id=20b51aac&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!./VersionLabelForm.vue?vue&type=style&index=0&id=20b51aac&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VersionLabelForm.vue?vue&type=template&id=20b51aac&scoped=true\"\nimport script from \"./VersionLabelForm.vue?vue&type=script&lang=ts\"\nexport * from \"./VersionLabelForm.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VersionLabelForm.vue?vue&type=style&index=0&id=20b51aac&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 \"20b51aac\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionTab.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { generateRemoteUrl, generateUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { joinPaths, encodePath } from '@nextcloud/paths';\nimport moment from '@nextcloud/moment';\nimport client from '../utils/davClient.js';\nimport davRequest from '../utils/davRequest.js';\nimport logger from '../utils/logger.js';\nexport async function fetchVersions(fileInfo) {\n const path = `/versions/${getCurrentUser()?.uid}/versions/${fileInfo.id}`;\n try {\n const response = await client.getDirectoryContents(path, {\n data: davRequest,\n details: true,\n });\n return response.data\n // Filter out root\n .filter(({ mime }) => mime !== '')\n .map(version => formatVersion(version, fileInfo));\n }\n catch (exception) {\n logger.error('Could not fetch version', { exception });\n throw exception;\n }\n}\n/**\n * Restore the given version\n */\nexport async function restoreVersion(version) {\n try {\n logger.debug('Restoring version', { url: version.url });\n await client.moveFile(`/versions/${getCurrentUser()?.uid}/versions/${version.fileId}/${version.fileVersion}`, `/versions/${getCurrentUser()?.uid}/restore/target`);\n }\n catch (exception) {\n logger.error('Could not restore version', { exception });\n throw exception;\n }\n}\n/**\n * Format version\n */\nfunction formatVersion(version, fileInfo) {\n const mtime = moment(version.lastmod).unix() * 1000;\n let previewUrl = '';\n if (mtime === fileInfo.mtime) { // Version is the current one\n previewUrl = generateUrl('/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0', {\n fileId: fileInfo.id,\n fileEtag: fileInfo.etag,\n });\n }\n else {\n previewUrl = generateUrl('/apps/files_versions/preview?file={file}&version={fileVersion}', {\n file: joinPaths(fileInfo.path, fileInfo.name),\n fileVersion: version.basename,\n });\n }\n return {\n fileId: fileInfo.id,\n // If version-label is defined make sure it is a string (prevent issue if the label is a number an PHP returns a number then)\n label: version.props['version-label'] && String(version.props['version-label']),\n author: version.props['version-author'] ?? null,\n filename: version.filename,\n basename: moment(mtime).format('LLL'),\n mime: version.mime,\n etag: `${version.props.getetag}`,\n size: version.size,\n type: version.type,\n mtime,\n permissions: 'R',\n hasPreview: version.props['has-preview'] === 1,\n previewUrl,\n url: joinPaths('/remote.php/dav', version.filename),\n source: generateRemoteUrl('dav') + encodePath(version.filename),\n fileVersion: version.basename,\n };\n}\nexport async function setVersionLabel(version, newLabel) {\n return await client.customRequest(version.filename, {\n method: 'PROPPATCH',\n data: `\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t${newLabel}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t`,\n });\n}\nexport async function deleteVersion(version) {\n await client.deleteFile(version.filename);\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default `\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n`\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionTab.vue?vue&type=style&index=0&id=c78825f4&prod&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!./VersionTab.vue?vue&type=style&index=0&id=c78825f4&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VersionTab.vue?vue&type=template&id=c78825f4\"\nimport script from \"./VersionTab.vue?vue&type=script&lang=js\"\nexport * from \"./VersionTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./VersionTab.vue?vue&type=style&index=0&id=c78825f4&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"versions-tab__container\"},[_c('VirtualScrolling',{attrs:{\"sections\":_vm.sections,\"header-height\":0},scopedSlots:_vm._u([{key:\"default\",fn:function({visibleSections}){return [_c('ul',{attrs:{\"data-files-versions-versions-list\":\"\"}},[(visibleSections.length === 1)?_vm._l((visibleSections[0].rows),function(row){return _c('Version',{key:row.items[0].mtime,attrs:{\"can-view\":_vm.canView,\"can-compare\":_vm.canCompare,\"load-preview\":_vm.isActive,\"version\":row.items[0],\"file-info\":_vm.fileInfo,\"is-current\":row.items[0].mtime === _vm.fileInfo.mtime,\"is-first-version\":row.items[0].mtime === _vm.initialVersionMtime},on:{\"click\":_vm.openVersion,\"compare\":_vm.compareVersion,\"restore\":_vm.handleRestore,\"label-update-request\":function($event){return _vm.handleLabelUpdateRequest(row.items[0])},\"delete\":_vm.handleDelete}})}):_vm._e()],2)]}}])},[_vm._v(\" \"),(_vm.loading)?_c('NcLoadingIcon',{staticClass:\"files-list-viewer__loader\",attrs:{\"slot\":\"loader\"},slot:\"loader\"}):_vm._e()],1),_vm._v(\" \"),(_vm.showVersionLabelForm)?_c('NcModal',{attrs:{\"title\":_vm.t('files_versions', 'Name this version')},on:{\"close\":function($event){_vm.showVersionLabelForm = false}}},[_c('VersionLabelForm',{attrs:{\"version-label\":_vm.editedVersion.label},on:{\"label-update\":_vm.handleLabelUpdate}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n'\n\nimport VersionTab from './views/VersionTab.vue'\nimport VTooltip from 'v-tooltip'\n// eslint-disable-next-line n/no-missing-import, import/no-unresolved\nimport BackupRestore from '@mdi/svg/svg/backup-restore.svg?raw'\n\nVue.prototype.t = t\nVue.prototype.n = n\n\nVue.use(VTooltip)\n\n// Init Sharing tab component\nconst View = Vue.extend(VersionTab)\nlet TabInstance = null\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\tif (OCA.Files?.Sidebar === undefined) {\n\t\treturn\n\t}\n\n\tOCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab({\n\t\tid: 'version_vue',\n\t\tname: t('files_versions', 'Versions'),\n\t\ticonSvg: BackupRestore,\n\n\t\tasync mount(el, fileInfo, context) {\n\t\t\tif (TabInstance) {\n\t\t\t\tTabInstance.$destroy()\n\t\t\t}\n\t\t\tTabInstance = new View({\n\t\t\t\t// Better integration with vue parent component\n\t\t\t\tparent: context,\n\t\t\t})\n\t\t\t// Only mount after we have all the info we need\n\t\t\tawait TabInstance.update(fileInfo)\n\t\t\tTabInstance.$mount(el)\n\t\t},\n\t\tupdate(fileInfo) {\n\t\t\tTabInstance.update(fileInfo)\n\t\t},\n\t\tsetIsActive(isActive) {\n\t\t\tif (!TabInstance) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tTabInstance.setIsActive(isActive)\n\t\t},\n\t\tdestroy() {\n\t\t\tTabInstance.$destroy()\n\t\t\tTabInstance = null\n\t\t},\n\t\tenabled(fileInfo) {\n\t\t\treturn !(fileInfo?.isDirectory() ?? true)\n\t\t},\n\t}))\n})\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.version[data-v-a0fb4a78]{display:flex;flex-direction:row}.version__info[data-v-a0fb4a78]{display:flex;flex-direction:row;align-items:center;gap:.5rem;color:var(--color-main-text);font-weight:500}.version__info__label[data-v-a0fb4a78]{font-weight:700;overflow:hidden;text-overflow:ellipsis}.version__info__date[data-v-a0fb4a78]{overflow:hidden;text-overflow:ellipsis}.version__info__subline[data-v-a0fb4a78]{color:var(--color-text-maxcontrast)}.version__image[data-v-a0fb4a78]{width:3rem;height:3rem;border:1px solid var(--color-border);border-radius:var(--border-radius-large);display:flex;justify-content:center;color:var(--color-text-light)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_versions/src/components/Version.vue\"],\"names\":[],\"mappings\":\"AACA,0BACC,YAAA,CACA,kBAAA,CAEA,gCACC,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,SAAA,CACA,4BAAA,CACA,eAAA,CAEA,uCACC,eAAA,CAEA,eAAA,CACA,sBAAA,CAGD,sCAEC,eAAA,CACA,sBAAA,CAGD,yCACC,mCAAA,CAIF,iCACC,UAAA,CACA,WAAA,CACA,oCAAA,CACA,wCAAA,CAGA,YAAA,CACA,sBAAA,CACA,6BAAA\",\"sourcesContent\":[\"\\n.version {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\n\\t&__info {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\talign-items: center;\\n\\t\\tgap: 0.5rem;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tfont-weight: 500;\\n\\n\\t\\t&__label {\\n\\t\\t\\tfont-weight: 700;\\n\\t\\t\\t// Fix overflow on narrow screens\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__date {\\n\\t\\t\\t// Fix overflow on narrow screens\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__subline {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast)\\n\\t\\t}\\n\\t}\\n\\n\\t&__image {\\n\\t\\twidth: 3rem;\\n\\t\\theight: 3rem;\\n\\t\\tborder: 1px solid var(--color-border);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\n\\t\\t// Useful to display no preview icon.\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\tcolor: var(--color-text-light);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.version-label-modal[data-v-20b51aac]{display:flex;justify-content:space-between;flex-direction:column;height:250px;padding:16px}.version-label-modal__title[data-v-20b51aac]{margin-bottom:12px;font-weight:600}.version-label-modal__info[data-v-20b51aac]{margin-top:12px;color:var(--color-text-maxcontrast)}.version-label-modal__actions[data-v-20b51aac]{display:flex;justify-content:space-between;margin-top:64px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_versions/src/components/VersionLabelForm.vue\"],\"names\":[],\"mappings\":\"AACA,sCACC,YAAA,CACA,6BAAA,CACA,qBAAA,CACA,YAAA,CACA,YAAA,CAEA,6CACC,kBAAA,CACA,eAAA,CAGD,4CACC,eAAA,CACA,mCAAA,CAGD,+CACC,YAAA,CACA,6BAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.version-label-modal {\\n\\tdisplay: flex;\\n\\tjustify-content: space-between;\\n\\tflex-direction: column;\\n\\theight: 250px;\\n\\tpadding: 16px;\\n\\n\\t&__title {\\n\\t\\tmargin-bottom: 12px;\\n\\t\\tfont-weight: 600;\\n\\t}\\n\\n\\t&__info {\\n\\t\\tmargin-top: 12px;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: space-between;\\n\\t\\tmargin-top: 64px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.vs-container[data-v-49a1883f]{overflow-y:scroll;height:100%}.vs-rows-container[data-v-49a1883f]{box-sizing:border-box;will-change:scroll-position,padding;contain:layout paint style}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_versions/src/components/VirtualScrolling.vue\"],\"names\":[],\"mappings\":\"AACA,+BACC,iBAAA,CACA,WAAA,CAGD,oCACC,qBAAA,CACA,mCAAA,CACA,0BAAA\",\"sourcesContent\":[\"\\n.vs-container {\\n\\toverflow-y: scroll;\\n\\theight: 100%;\\n}\\n\\n.vs-rows-container {\\n\\tbox-sizing: border-box;\\n\\twill-change: scroll-position, padding;\\n\\tcontain: layout paint style;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.versions-tab__container{height:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_versions/src/views/VersionTab.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,WAAA\",\"sourcesContent\":[\"\\n.versions-tab__container {\\n\\theight: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"4254\":\"5c2324570f66dff0c8a1\",\"9480\":\"f3ebcf41e93bbd8cd678\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2250;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2250: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(21678)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","remote","generateRemoteUrl","client","createClient","setHeaders","token","requesttoken","onRequestTokenUpdate","getRequestToken","getLoggerBuilder","setApp","detectUser","build","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","hasPermission","permissions","permission","defineComponent","components","NcActionLink","NcActionButton","NcAvatar","NcDateTime","NcListItem","BackupRestore","Download","FileCompare","Pencil","Delete","ImageOffOutline","directives","tooltip","Tooltip","version","Object","required","fileInfo","isCurrent","Boolean","isFirstVersion","loadPreview","canView","canCompare","data","previewLoaded","previewErrored","capabilities","loadState","files","version_labeling","version_deletion","versionAuthor","computed","humanReadableSize","formatFileSize","versionLabel","_this$version$label","label","t","concat","downloadURL","getRootUrl","joinPaths","path","url","enableLabeling","enableDeletion","hasDeletePermissions","Permission","DELETE","hasUpdatePermissions","UPDATE","isDownloadable","READ","mountType","downloadAttribute","shareAttributes","find","attribute","scope","key","value","created","fetchDisplayName","methods","labelUpdate","restoreVersion","deleteVersion","$nextTick","author","axios","get","generateOcsUrl","ocs","displayname","e","click","window","location","compareVersion","Error","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_setupProxy","fileVersion","scopedSlots","_u","fn","hasPreview","previewUrl","proxy","mtime","sections","Array","containerElement","HTMLElement","useWindow","headerHeight","renderDistance","bottomBufferRatio","scrollToKey","scrollPosition","containerHeight","rowsContainerHeight","resizeObserver","visibleSections","logger","debug","containerTop","containerBottom","currentRowTop","currentRowBottom","map","section","rows","reduce","visibleRows","row","height","distance","filter","length","visibleItems","flatMap","_ref","_ref2","items","rowIdToKeyMap","_rowIdToKeyMap","forEach","item","id","usedTokens","_ref3","undefined","unusedTokens","values","includes","_ref4","_unusedTokens$pop","pop","Math","random","toString","substr","finalMapping","_ref5","totalHeight","sectionHeight","paddingTop","sectionKey","rowsContainerStyle","isNearBottom","buffer","container","$refs","watch","currentRowTopDistanceFromTop","scrollTo","top","behavior","beforeCreate","mounted","ResizeObserver","entries","entry","cr","contentRect","target","classList","contains","addEventListener","updateContainerSize","passive","innerHeight","observe","rowsContainer","updateScrollPosition","beforeDestroy","_this$resizeObserver","removeEventListener","disconnect","_this$_onScrollHandle","_onScrollHandle","requestAnimationFrame","scrollY","scrollTop","ref","style","_t","NcButton","NcTextField","Check","innerVersionLabel","labelInput","$el","getElementsByTagName","focus","setVersionLabel","translate","Version","VirtualScrolling","VersionLabelForm","preventDefault","trim","NcLoadingIcon","NcModal","mixins","isMobile","isActive","versions","loading","showVersionLabelForm","orderedVersions","sort","a","b","initialVersionMtime","min","viewerFileInfo","davPermissions","mime","mimetype","basename","filename","fileid","_window$OCA$Viewer","OCA","Viewer","mimetypesCompare","subscribe","fetchVersions","beforeUnmount","unsubscribe","update","resetState","setIsActive","async","_getCurrentUser","getCurrentUser","uid","getDirectoryContents","details","_version$props$versio","moment","lastmod","unix","generateUrl","fileId","fileEtag","etag","file","format","getetag","source","encodePath","formatVersion","exception","error","handleRestore","oldFileInfo","restoreStartedEventState","emit","_getCurrentUser2","_getCurrentUser3","moveFile","showSuccess","showError","handleLabelUpdateRequest","editedVersion","handleLabelUpdate","newLabel","oldLabel","customRequest","method","handleDelete","index","indexOf","splice","deleteFile","push","$set","openVersion","open","_getCurrentUser$uid","v","enableSidebar","compare","_l","slot","Vue","prototype","n","use","VTooltip","View","extend","VersionTab","TabInstance","_OCA$Files","Files","Sidebar","registerTab","Tab","iconSvg","mount","el","context","$destroy","parent","$mount","destroy","enabled","_fileInfo$isDirectory","isDirectory","___CSS_LOADER_EXPORT___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","keys","every","r","getter","__esModule","d","definition","o","defineProperty","enumerable","f","chunkId","Promise","all","promises","u","g","globalThis","Function","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","document","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","currentScript","test","replace","p","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/private/Share20/ShareAttributes.php b/lib/private/Share20/ShareAttributes.php index 4011278bb3939..fbdcbf1ad2662 100644 --- a/lib/private/Share20/ShareAttributes.php +++ b/lib/private/Share20/ShareAttributes.php @@ -20,7 +20,7 @@ public function __construct() { /** * @inheritdoc */ - public function setAttribute($scope, $key, $value) { + public function setAttribute(string $scope, string $key, mixed $value): IAttributes { if (!\array_key_exists($scope, $this->attributes)) { $this->attributes[$scope] = []; } @@ -31,7 +31,7 @@ public function setAttribute($scope, $key, $value) { /** * @inheritdoc */ - public function getAttribute($scope, $key) { + public function getAttribute(string $scope, string $key): mixed { if (\array_key_exists($scope, $this->attributes) && \array_key_exists($key, $this->attributes[$scope])) { return $this->attributes[$scope][$key]; @@ -42,14 +42,14 @@ public function getAttribute($scope, $key) { /** * @inheritdoc */ - public function toArray() { + public function toArray(): array { $result = []; foreach ($this->attributes as $scope => $keys) { foreach ($keys as $key => $value) { $result[] = [ "scope" => $scope, "key" => $key, - "value" => $value + "value" => $value, ]; } } diff --git a/lib/public/Share/IAttributes.php b/lib/public/Share/IAttributes.php index cb68cc9ebb3f2..fad19c60aadc7 100644 --- a/lib/public/Share/IAttributes.php +++ b/lib/public/Share/IAttributes.php @@ -13,7 +13,7 @@ */ interface IAttributes { /** - * Sets an attribute enabled/disabled. If the key did not exist before it will be created. + * Sets an attribute. If the key did not exist before it will be created. * * @param string $scope scope * @param string $key key @@ -21,10 +21,10 @@ interface IAttributes { * @return IAttributes The modified object * @since 25.0.0 */ - public function setAttribute($scope, $key, $value); + public function setAttribute(string $scope, string $key, mixed $value): IAttributes; /** - * Returns if attribute is enabled/disabled for given scope id and key. + * Returns the attribute for given scope id and key. * If attribute does not exist, returns null * * @param string $scope scope @@ -32,7 +32,7 @@ public function setAttribute($scope, $key, $value); * @return bool|string|array|null * @since 25.0.0 */ - public function getAttribute($scope, $key); + public function getAttribute(string $scope, string $key): mixed; /** * Formats the IAttributes object to array with the following format: @@ -40,13 +40,14 @@ public function getAttribute($scope, $key); * 0 => [ * "scope" => , * "key" => , - * "enabled" => + * "value" => , * ], * ... * ] * * @return array formatted IAttributes * @since 25.0.0 + * @since 30.0.0, `enabled` was renamed to `value` */ - public function toArray(); + public function toArray(): array; }