Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Chemineau <louis@chmn.me>2022-02-23 21:03:38 +0300
committerLouis Chemineau <louis@chmn.me>2022-02-23 21:03:38 +0300
commit1ef1ec362e7942e649e928cd8323a065cb2bb90c (patch)
tree02fca9e7ae63a5f9f559b73d5f6ab947193b849c
parent078ca0c0dd9d319b953ff91840db45b412d6aee0 (diff)
fixup! Setup webworkerpreview-optimi
-rw-r--r--apps/files/src/files-preview-worker.js84
-rw-r--r--core/src/files/client.js9
-rw-r--r--dist/core-files_client.js4
-rw-r--r--dist/core-files_client.js.map2
-rw-r--r--dist/files-sidebar.js4
-rw-r--r--dist/files-sidebar.js.map2
6 files changed, 67 insertions, 38 deletions
diff --git a/apps/files/src/files-preview-worker.js b/apps/files/src/files-preview-worker.js
index b24dd645809..5d7527a9961 100644
--- a/apps/files/src/files-preview-worker.js
+++ b/apps/files/src/files-preview-worker.js
@@ -1,49 +1,69 @@
-// eslint-disable-next-line no-console
-console.log('HELLO FROM WEB WORKER!')
+self.addEventListener('install', () => console.debug('Preview worker installed'))
+self.addEventListener('activate', () => console.debug('Preview worker activated'))
+self.addEventListener('message', handleMessageEvent)
+self.addEventListener('fetch', handleFetchEvent)
-self.addEventListener('install', (event) => {
+/** @type {Object<string, string>} */
+const previewAccessTokens = {}
-})
-
-self.addEventListener('activate', (event) => {
-
-})
-
-self.addEventListener('fetch', async (event) => {
- if (!event.request.url.startsWith(`${location.origin}/core/preview`)) {
- return fetch(event.request)
+/**
+ * @param {MessageEvent} event The message event..
+ * @return {void}
+ */
+function handleMessageEvent(event) {
+ if (event.data && event.data.type === 'NEW_THUMBNAIL_ACCESS_TOKEN') {
+ // eslint-disable-next-line no-console
+ console.debug('Add new token for: ', event.data.fileId)
+ previewAccessTokens[event.data.fileId] = event.data.token
}
+}
- return event.respondWith(getPreview(event))
-})
+/**
+ * @param {FetchEvent} event The fetch event.
+ * @return {Promise<void>}
+ */
+async function handleFetchEvent(event) {
+ if (event.request.url.startsWith(`${location.origin}/core/preview`)) {
+ return event.respondWith(getPreview(event.request))
+ }
+ return event.respondWith(fetch(event.request))
+}
-async function getPreview(event) {
- const cachedPreview = await caches.match(event.request)
+/**
+ * @param {Request} request The preview request.
+ * @return {Promise<Response>}
+ */
+async function getPreview(request) {
+ const cache = await caches.open('files-preview')
+ const url = new URL(request.url)
+ const fileId = url.searchParams.get('fileId') || ''
+ const token = previewAccessTokens[fileId]
+ // Return a cached preview if available.
+ const cachedPreview = await cache.match(request.url)
if (cachedPreview !== undefined) {
// eslint-disable-next-line no-console
- console.debug('Return cache for: ', event.request.url)
+ console.debug('Return cache for: ', request.url)
return cachedPreview
}
- // eslint-disable-next-line no-console
- console.debug('Fetching resource for: ', event.request.url)
+ // Add the token to the headers if available.
+ if (token !== undefined) {
+ // Create new Request with mutable Headers.
+ // mode: 'cors' is needed, else it fails silently.
+ request = new Request(request, { mode: 'cors', headers: new Headers(request.headers) })
+ request.headers.append('X-OC-Thumbnail-Access-Token', token)
- const headers = new Headers()
- for (const key of event.request.headers.keys()) {
- headers.append(key, event.request.headers.get(key))
+ // eslint-disable-next-line no-console
+ console.debug('Fetching preview with token for: ', request.url)
+ } else {
+ // eslint-disable-next-line no-console
+ console.debug('Fetching preview for: ', request.url)
}
- headers.append('THUMBNAIL_ACCESS_TOKEN', 'random_string')
-
- const fetchedPreview = await fetch({
- url: event.request,
- headers
- })
-
- const cache = await caches.open('v1')
- cache.put(event.request, fetchedPreview.clone())
-
+ // Fetch and cache the preview with the token.
+ const fetchedPreview = await fetch(request)
+ cache.put(request.url, fetchedPreview.clone())
return fetchedPreview
} \ No newline at end of file
diff --git a/core/src/files/client.js b/core/src/files/client.js
index beffe25c4ef..77b11b9d554 100644
--- a/core/src/files/client.js
+++ b/core/src/files/client.js
@@ -419,6 +419,15 @@ import escapeHTML from 'escape-html'
const previewAccessToken = props[Client.PROPERTY_PREVIEW_ACCESS_TOKEN]
if (!_.isUndefined(previewAccessToken)) {
data.previewAccessToken = previewAccessToken
+ // Dispatch the preview token to the service worker.
+ if ('serviceWorker' in navigator && 'controller' in navigator.serviceWorker) {
+ navigator.serviceWorker.controller.postMessage({
+ type: 'NEW_THUMBNAIL_ACCESS_TOKEN',
+ fileId: data.id,
+ token: previewAccessToken,
+
+ });
+ }
}
const sharePermissionsProp = props[Client.PROPERTY_SHARE_PERMISSIONS]
diff --git a/dist/core-files_client.js b/dist/core-files_client.js
index 96ef042b7f3..d92d2a29b71 100644
--- a/dist/core-files_client.js
+++ b/dist/core-files_client.js
@@ -1,3 +1,3 @@
/*! For license information please see core-files_client.js.LICENSE.txt */
-!function(){"use strict";var e,t={7913:function(e,t,r){var s=r(95573),n=r.n(s);!function(e,t){var r=function t(r){this._root=r.root,"/"===this._root.charAt(this._root.length-1)&&(this._root=this._root.substr(0,this._root.length-1));var s=t.PROTOCOL_HTTP+"://";r.useHTTPS&&(s=t.PROTOCOL_HTTPS+"://"),s+=r.host+this._root,this._host=r.host,this._defaultHeaders=r.defaultHeaders||{"X-Requested-With":"XMLHttpRequest",requesttoken:e.requestToken},this._baseUrl=s;var n={baseUrl:this._baseUrl,xmlNamespaces:{"DAV:":"d","http://owncloud.org/ns":"oc","http://nextcloud.org/ns":"nc","http://open-collaboration-services.org/ns":"ocs"}};r.userName&&(n.userName=r.userName),r.password&&(n.password=r.password),this._client=new dav.Client(n),this._client.xhrProvider=_.bind(this._xhrProvider,this),this._fileInfoParsers=[]};r.NS_OWNCLOUD="http://owncloud.org/ns",r.NS_NEXTCLOUD="http://nextcloud.org/ns",r.NS_DAV="DAV:",r.NS_OCS="http://open-collaboration-services.org/ns",r.PROPERTY_GETLASTMODIFIED="{"+r.NS_DAV+"}getlastmodified",r.PROPERTY_GETETAG="{"+r.NS_DAV+"}getetag",r.PROPERTY_GETCONTENTTYPE="{"+r.NS_DAV+"}getcontenttype",r.PROPERTY_RESOURCETYPE="{"+r.NS_DAV+"}resourcetype",r.PROPERTY_INTERNAL_FILEID="{"+r.NS_OWNCLOUD+"}fileid",r.PROPERTY_PERMISSIONS="{"+r.NS_OWNCLOUD+"}permissions",r.PROPERTY_SIZE="{"+r.NS_OWNCLOUD+"}size",r.PROPERTY_GETCONTENTLENGTH="{"+r.NS_DAV+"}getcontentlength",r.PROPERTY_ISENCRYPTED="{"+r.NS_DAV+"}is-encrypted",r.PROPERTY_SHARE_PERMISSIONS="{"+r.NS_OCS+"}share-permissions",r.PROPERTY_QUOTA_AVAILABLE_BYTES="{"+r.NS_DAV+"}quota-available-bytes",r.PROTOCOL_HTTP="http",r.PROTOCOL_HTTPS="https",r._PROPFIND_PROPERTIES=[[r.NS_DAV,"getlastmodified"],[r.NS_DAV,"getetag"],[r.NS_DAV,"getcontenttype"],[r.NS_DAV,"resourcetype"],[r.NS_OWNCLOUD,"fileid"],[r.NS_OWNCLOUD,"permissions"],[r.NS_OWNCLOUD,"size"],[r.NS_DAV,"getcontentlength"],[r.NS_DAV,"quota-available-bytes"],[r.NS_NEXTCLOUD,"has-preview"],[r.NS_NEXTCLOUD,"mount-type"],[r.NS_NEXTCLOUD,"is-encrypted"],[r.NS_OCS,"share-permissions"]],r.prototype={_root:null,_client:null,_fileInfoParsers:[],_xhrProvider:function(){var t=this._defaultHeaders,r=new XMLHttpRequest,s=r.open;return r.open=function(){var e=s.apply(this,arguments);return _.each(t,(function(e,t){r.setRequestHeader(t,e)})),e},e.registerXHRForErrorProcessing(r),r},_buildUrl:function(){var e=this._buildPath.apply(this,arguments);return"/"===e.charAt([e.length-1])&&(e=e.substr(0,e.length-1)),"/"===e.charAt(0)&&(e=e.substr(1)),this._baseUrl+"/"+e},_buildPath:function(){var t,r=e.joinPaths.apply(this,arguments),s=r.split("/");for(t=0;t<s.length;t++)s[t]=encodeURIComponent(s[t]);return s.join("/")},_parseHeaders:function(e){for(var t=e.split("\n"),r={},s=0;s<t.length;s++){var n=t[s].indexOf(":");if(!(n<0)){var i=t[s].substr(0,n),o=t[s].substr(n+2);r[i]||(r[i]=[]),r[i].push(o)}}return r},_parseEtag:function(e){return'"'===e.charAt(0)?e.split('"')[1]:e},_parseFileInfo:function(s){var n=decodeURIComponent(s.href);if(n.substr(0,this._root.length)===this._root&&(n=n.substr(this._root.length)),"/"===n.charAt(n.length-1)&&(n=n.substr(0,n.length-1)),0===s.propStat.length||"HTTP/1.1 200 OK"!==s.propStat[0].status)return null;var i=s.propStat[0].properties,o={id:i[r.PROPERTY_INTERNAL_FILEID],path:e.dirname(n)||"/",name:e.basename(n),mtime:new Date(i[r.PROPERTY_GETLASTMODIFIED]).getTime()},a=i[r.PROPERTY_GETETAG];_.isUndefined(a)||(o.etag=this._parseEtag(a));var u=i[r.PROPERTY_GETCONTENTLENGTH];_.isUndefined(u)||(o.size=parseInt(u,10)),u=i[r.PROPERTY_SIZE],_.isUndefined(u)||(o.size=parseInt(u,10));var l=i["{"+r.NS_NEXTCLOUD+"}has-preview"];_.isUndefined(l)?o.hasPreview=!0:o.hasPreview="true"===l;var c=i["{"+r.NS_NEXTCLOUD+"}is-encrypted"];_.isUndefined(c)?o.isEncrypted=!1:o.isEncrypted="1"===c;var p=i["{"+r.NS_OWNCLOUD+"}favorite"];_.isUndefined(p)?o.isFavourited=!1:o.isFavourited="1"===p;var f=i[r.PROPERTY_GETCONTENTTYPE];_.isUndefined(f)||(o.mimetype=f);var h=i[r.PROPERTY_RESOURCETYPE];if(!o.mimetype&&h){var d=h[0];d.namespaceURI===r.NS_DAV&&"collection"===d.nodeName.split(":")[1]&&(o.mimetype="httpd/unix-directory")}o.permissions=e.PERMISSION_NONE;var S=i[r.PROPERTY_PERMISSIONS];if(!_.isUndefined(S)){var P=S||"";o.mountType=null;for(var E=0;E<P.length;E++)switch(P.charAt(E)){case"C":case"K":o.permissions|=e.PERMISSION_CREATE;break;case"G":o.permissions|=e.PERMISSION_READ;break;case"W":case"N":case"V":o.permissions|=e.PERMISSION_UPDATE;break;case"D":o.permissions|=e.PERMISSION_DELETE;break;case"R":o.permissions|=e.PERMISSION_SHARE;break;case"M":o.mountType||(o.mountType="external");break;case"S":o.mountType="shared"}}var O=i[r.PROPERTY_SHARE_PERMISSIONS];_.isUndefined(O)||(o.sharePermissions=parseInt(O));var g=i["{"+r.NS_NEXTCLOUD+"}mount-type"];_.isUndefined(g)||(o.mountType=g);var T=i["{"+r.NS_DAV+"}quota-available-bytes"];return _.isUndefined(T)||(o.quotaAvailableBytes=T),_.each(this._fileInfoParsers,(function(e){_.extend(o,e(s,o)||{})})),new t(o)},_parseResult:function(e){var t=this;return _.map(e,(function(e){return t._parseFileInfo(e)}))},_isSuccessStatus:function(e){return e>=200&&e<=299},_getSabreException:function(e){var t={},r=e.xhr.responseXML;if(null===r)return t;var s=r.getElementsByTagNameNS("http://sabredav.org/ns","message"),n=r.getElementsByTagNameNS("http://sabredav.org/ns","exception");return s.length&&(t.message=s[0].textContent),n.length&&(t.exception=n[0].textContent),t},getPropfindProperties:function(){return this._propfindProperties||(this._propfindProperties=_.map(r._PROPFIND_PROPERTIES,(function(e){return"{"+e[0]+"}"+e[1]}))),this._propfindProperties},getFolderContents:function(e,t){e||(e=""),t=t||{};var r,s=this,n=$.Deferred(),i=n.promise();return r=_.isUndefined(t.properties)?this.getPropfindProperties():t.properties,this._client.propFind(this._buildUrl(e),r,1).then((function(e){if(s._isSuccessStatus(e.status)){var r=s._parseResult(e.body);t&&t.includeParent||r.shift(),n.resolve(e.status,r)}else e=_.extend(e,s._getSabreException(e)),n.reject(e.status,e)})),i},getFilteredFiles:function(e,t){t=t||{};var r,s=this,i=$.Deferred(),o=i.promise();if(r=_.isUndefined(t.properties)?this.getPropfindProperties():t.properties,!e||!e.systemTagIds&&_.isUndefined(e.favorite)&&!e.circlesIds)throw"Missing filter argument";var a,u="<oc:filter-files ";for(a in this._client.xmlNamespaces)u+=" xmlns:"+this._client.xmlNamespaces[a]+'="'+a+'"';return u+=">\n",u+=" <"+this._client.xmlNamespaces["DAV:"]+":prop>\n",_.each(r,(function(e){var t=s._client.parseClarkNotation(e);u+=" <"+s._client.xmlNamespaces[t.namespace]+":"+t.name+" />\n"})),u+=" </"+this._client.xmlNamespaces["DAV:"]+":prop>\n",u+=" <oc:filter-rules>\n",_.each(e.systemTagIds,(function(e){u+=" <oc:systemtag>"+n()(e)+"</oc:systemtag>\n"})),_.each(e.circlesIds,(function(e){u+=" <oc:circle>"+n()(e)+"</oc:circle>\n"})),e.favorite&&(u+=" <oc:favorite>"+(e.favorite?"1":"0")+"</oc:favorite>\n"),u+=" </oc:filter-rules>\n",u+="</oc:filter-files>\n",this._client.request("REPORT",this._buildUrl(),{},u).then((function(e){if(s._isSuccessStatus(e.status)){var t=s._parseResult(e.body);i.resolve(e.status,t)}else e=_.extend(e,s._getSabreException(e)),i.reject(e.status,e)})),o},getFileInfo:function(e,t){e||(e=""),t=t||{};var r,s=this,n=$.Deferred(),i=n.promise();return r=_.isUndefined(t.properties)?this.getPropfindProperties():t.properties,this._client.propFind(this._buildUrl(e),r,0).then((function(e){s._isSuccessStatus(e.status)?n.resolve(e.status,s._parseResult([e.body])[0]):(e=_.extend(e,s._getSabreException(e)),n.reject(e.status,e))})),i},getFileContents:function(e){if(!e)throw'Missing argument "path"';var t=this,r=$.Deferred(),s=r.promise();return this._client.request("GET",this._buildUrl(e)).then((function(e){t._isSuccessStatus(e.status)?r.resolve(e.status,e.body):(e=_.extend(e,t._getSabreException(e)),r.reject(e.status,e))})),s},putFileContents:function(e,t,r){if(!e)throw'Missing argument "path"';var s=this,n=$.Deferred(),i=n.promise(),o={},a="text/plain;charset=utf-8";return(r=r||{}).contentType&&(a=r.contentType),o["Content-Type"]=a,(_.isUndefined(r.overwrite)||r.overwrite)&&(o["If-None-Match"]="*"),this._client.request("PUT",this._buildUrl(e),o,t||"").then((function(e){s._isSuccessStatus(e.status)?n.resolve(e.status):(e=_.extend(e,s._getSabreException(e)),n.reject(e.status,e))})),i},_simpleCall:function(e,t){if(!t)throw'Missing argument "path"';var r=this,s=$.Deferred(),n=s.promise();return this._client.request(e,this._buildUrl(t)).then((function(e){r._isSuccessStatus(e.status)?s.resolve(e.status):(e=_.extend(e,r._getSabreException(e)),s.reject(e.status,e))})),n},createDirectory:function(e){return this._simpleCall("MKCOL",e)},remove:function(e){return this._simpleCall("DELETE",e)},move:function(e,t,r,s){if(!e)throw'Missing argument "path"';if(!t)throw'Missing argument "destinationPath"';var n=this,i=$.Deferred(),o=i.promise();return s=_.extend({},s,{Destination:this._buildUrl(t)}),r||(s.Overwrite="F"),this._client.request("MOVE",this._buildUrl(e),s).then((function(e){n._isSuccessStatus(e.status)?i.resolve(e.status):(e=_.extend(e,n._getSabreException(e)),i.reject(e.status,e))})),o},copy:function(e,t,r){if(!e)throw'Missing argument "path"';if(!t)throw'Missing argument "destinationPath"';var s=this,n=$.Deferred(),i=n.promise(),o={Destination:this._buildUrl(t)};return r||(o.Overwrite="F"),this._client.request("COPY",this._buildUrl(e),o).then((function(e){s._isSuccessStatus(e.status)?n.resolve(e.status):n.reject(e.status)})),i},addFileInfoParser:function(e){this._fileInfoParsers.push(e)},getClient:function(){return this._client},getUserName:function(){return this._client.userName},getPassword:function(){return this._client.password},getBaseUrl:function(){return this._client.baseUrl},getHost:function(){return this._host}},e.Files||(e.Files={}),e.Files.getClient=function(){if(e.Files._defaultClient)return e.Files._defaultClient;var t=new e.Files.Client({host:e.getHost(),port:e.getPort(),root:e.linkToRemoteBase("dav")+"/files/"+e.getCurrentUser().uid,useHTTPS:"https"===e.getProtocol()});return e.Files._defaultClient=t,t},e.Files.Client=r}(OC,OC.Files.FileInfo)}},r={};function s(e){var n=r[e];if(void 0!==n)return n.exports;var i=r[e]={id:e,loaded:!1,exports:{}};return t[e].call(i.exports,i,i.exports,s),i.loaded=!0,i.exports}s.m=t,s.amdD=function(){throw new Error("define cannot be used indirect")},s.amdO={},e=[],s.O=function(t,r,n,i){if(!r){var o=1/0;for(c=0;c<e.length;c++){r=e[c][0],n=e[c][1],i=e[c][2];for(var a=!0,u=0;u<r.length;u++)(!1&i||o>=i)&&Object.keys(s.O).every((function(e){return s.O[e](r[u])}))?r.splice(u--,1):(a=!1,i<o&&(o=i));if(a){e.splice(c--,1);var l=n();void 0!==l&&(t=l)}}return t}i=i||0;for(var c=e.length;c>0&&e[c-1][2]>i;c--)e[c]=e[c-1];e[c]=[r,n,i]},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},s.d=function(e,t){for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},s.j=578,function(){var e={578:0};s.O.j=function(t){return 0===e[t]};var t=function(t,r){var n,i,o=r[0],a=r[1],u=r[2],l=0;if(o.some((function(t){return 0!==e[t]}))){for(n in a)s.o(a,n)&&(s.m[n]=a[n]);if(u)var c=u(s)}for(t&&t(r);l<o.length;l++)i=o[l],s.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return s.O(c)},r=self.webpackChunknextcloud=self.webpackChunknextcloud||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))}();var n=s.O(void 0,[874],(function(){return s(7913)}));n=s.O(n)}();
-//# sourceMappingURL=core-files_client.js.map?v=e24463ca2886859eed43 \ No newline at end of file
+!function(){"use strict";var e,t={7913:function(e,t,r){var s=r(95573),n=r.n(s);!function(e,t){var r=function t(r){this._root=r.root,"/"===this._root.charAt(this._root.length-1)&&(this._root=this._root.substr(0,this._root.length-1));var s=t.PROTOCOL_HTTP+"://";r.useHTTPS&&(s=t.PROTOCOL_HTTPS+"://"),s+=r.host+this._root,this._host=r.host,this._defaultHeaders=r.defaultHeaders||{"X-Requested-With":"XMLHttpRequest",requesttoken:e.requestToken},this._baseUrl=s;var n={baseUrl:this._baseUrl,xmlNamespaces:{"DAV:":"d","http://owncloud.org/ns":"oc","http://nextcloud.org/ns":"nc","http://open-collaboration-services.org/ns":"ocs"}};r.userName&&(n.userName=r.userName),r.password&&(n.password=r.password),this._client=new dav.Client(n),this._client.xhrProvider=_.bind(this._xhrProvider,this),this._fileInfoParsers=[]};r.NS_OWNCLOUD="http://owncloud.org/ns",r.NS_NEXTCLOUD="http://nextcloud.org/ns",r.NS_DAV="DAV:",r.NS_OCS="http://open-collaboration-services.org/ns",r.PROPERTY_GETLASTMODIFIED="{"+r.NS_DAV+"}getlastmodified",r.PROPERTY_GETETAG="{"+r.NS_DAV+"}getetag",r.PROPERTY_GETCONTENTTYPE="{"+r.NS_DAV+"}getcontenttype",r.PROPERTY_RESOURCETYPE="{"+r.NS_DAV+"}resourcetype",r.PROPERTY_INTERNAL_FILEID="{"+r.NS_OWNCLOUD+"}fileid",r.PROPERTY_PERMISSIONS="{"+r.NS_OWNCLOUD+"}permissions",r.PROPERTY_SIZE="{"+r.NS_OWNCLOUD+"}size",r.PROPERTY_GETCONTENTLENGTH="{"+r.NS_DAV+"}getcontentlength",r.PROPERTY_ISENCRYPTED="{"+r.NS_DAV+"}is-encrypted",r.PROPERTY_SHARE_PERMISSIONS="{"+r.NS_OCS+"}share-permissions",r.PROPERTY_QUOTA_AVAILABLE_BYTES="{"+r.NS_DAV+"}quota-available-bytes",r.PROPERTY_PREVIEW_ACCESS_TOKEN="{"+r.NS_NEXTCLOUD+"}preview-access-token",r.PROTOCOL_HTTP="http",r.PROTOCOL_HTTPS="https",r._PROPFIND_PROPERTIES=[[r.NS_DAV,"getlastmodified"],[r.NS_DAV,"getetag"],[r.NS_DAV,"getcontenttype"],[r.NS_DAV,"resourcetype"],[r.NS_OWNCLOUD,"fileid"],[r.NS_OWNCLOUD,"permissions"],[r.NS_OWNCLOUD,"size"],[r.NS_DAV,"getcontentlength"],[r.NS_DAV,"quota-available-bytes"],[r.NS_NEXTCLOUD,"has-preview"],[r.NS_NEXTCLOUD,"mount-type"],[r.NS_NEXTCLOUD,"is-encrypted"],[r.NS_OCS,"share-permissions"],[r.NS_NEXTCLOUD,"preview-access-token"]],r.prototype={_root:null,_client:null,_fileInfoParsers:[],_xhrProvider:function(){var t=this._defaultHeaders,r=new XMLHttpRequest,s=r.open;return r.open=function(){var e=s.apply(this,arguments);return _.each(t,(function(e,t){r.setRequestHeader(t,e)})),e},e.registerXHRForErrorProcessing(r),r},_buildUrl:function(){var e=this._buildPath.apply(this,arguments);return"/"===e.charAt([e.length-1])&&(e=e.substr(0,e.length-1)),"/"===e.charAt(0)&&(e=e.substr(1)),this._baseUrl+"/"+e},_buildPath:function(){var t,r=e.joinPaths.apply(this,arguments),s=r.split("/");for(t=0;t<s.length;t++)s[t]=encodeURIComponent(s[t]);return s.join("/")},_parseHeaders:function(e){for(var t=e.split("\n"),r={},s=0;s<t.length;s++){var n=t[s].indexOf(":");if(!(n<0)){var i=t[s].substr(0,n),o=t[s].substr(n+2);r[i]||(r[i]=[]),r[i].push(o)}}return r},_parseEtag:function(e){return'"'===e.charAt(0)?e.split('"')[1]:e},_parseFileInfo:function(s){var n=decodeURIComponent(s.href);if(n.substr(0,this._root.length)===this._root&&(n=n.substr(this._root.length)),"/"===n.charAt(n.length-1)&&(n=n.substr(0,n.length-1)),0===s.propStat.length||"HTTP/1.1 200 OK"!==s.propStat[0].status)return null;var i=s.propStat[0].properties,o={id:i[r.PROPERTY_INTERNAL_FILEID],path:e.dirname(n)||"/",name:e.basename(n),mtime:new Date(i[r.PROPERTY_GETLASTMODIFIED]).getTime()},a=i[r.PROPERTY_GETETAG];_.isUndefined(a)||(o.etag=this._parseEtag(a));var u=i[r.PROPERTY_GETCONTENTLENGTH];_.isUndefined(u)||(o.size=parseInt(u,10)),u=i[r.PROPERTY_SIZE],_.isUndefined(u)||(o.size=parseInt(u,10));var c=i["{"+r.NS_NEXTCLOUD+"}has-preview"];_.isUndefined(c)?o.hasPreview=!0:o.hasPreview="true"===c;var l=i["{"+r.NS_NEXTCLOUD+"}is-encrypted"];_.isUndefined(l)?o.isEncrypted=!1:o.isEncrypted="1"===l;var p=i["{"+r.NS_OWNCLOUD+"}favorite"];_.isUndefined(p)?o.isFavourited=!1:o.isFavourited="1"===p;var f=i[r.PROPERTY_GETCONTENTTYPE];_.isUndefined(f)||(o.mimetype=f);var h=i[r.PROPERTY_RESOURCETYPE];if(!o.mimetype&&h){var d=h[0];d.namespaceURI===r.NS_DAV&&"collection"===d.nodeName.split(":")[1]&&(o.mimetype="httpd/unix-directory")}o.permissions=e.PERMISSION_NONE;var E=i[r.PROPERTY_PERMISSIONS];if(!_.isUndefined(E)){var S=E||"";o.mountType=null;for(var P=0;P<S.length;P++)switch(S.charAt(P)){case"C":case"K":o.permissions|=e.PERMISSION_CREATE;break;case"G":o.permissions|=e.PERMISSION_READ;break;case"W":case"N":case"V":o.permissions|=e.PERMISSION_UPDATE;break;case"D":o.permissions|=e.PERMISSION_DELETE;break;case"R":o.permissions|=e.PERMISSION_SHARE;break;case"M":o.mountType||(o.mountType="external");break;case"S":o.mountType="shared"}}var O,T,v=i[r.PROPERTY_PREVIEW_ACCESS_TOKEN];_.isUndefined(v)||(o.previewAccessToken=v,null===(O=navigator.serviceWorker)||void 0===O||null===(T=O.controller)||void 0===T||T.postMessage({type:"NEW_THUMBNAIL_ACCESS_TOKEN",fileId:o.id,token:v}));var g=i[r.PROPERTY_SHARE_PERMISSIONS];_.isUndefined(g)||(o.sharePermissions=parseInt(g));var N=i["{"+r.NS_NEXTCLOUD+"}mount-type"];_.isUndefined(N)||(o.mountType=N);var m=i["{"+r.NS_DAV+"}quota-available-bytes"];return _.isUndefined(m)||(o.quotaAvailableBytes=m),_.each(this._fileInfoParsers,(function(e){_.extend(o,e(s,o)||{})})),new t(o)},_parseResult:function(e){var t=this;return _.map(e,(function(e){return t._parseFileInfo(e)}))},_isSuccessStatus:function(e){return e>=200&&e<=299},_getSabreException:function(e){var t={},r=e.xhr.responseXML;if(null===r)return t;var s=r.getElementsByTagNameNS("http://sabredav.org/ns","message"),n=r.getElementsByTagNameNS("http://sabredav.org/ns","exception");return s.length&&(t.message=s[0].textContent),n.length&&(t.exception=n[0].textContent),t},getPropfindProperties:function(){return this._propfindProperties||(this._propfindProperties=_.map(r._PROPFIND_PROPERTIES,(function(e){return"{"+e[0]+"}"+e[1]}))),this._propfindProperties},getFolderContents:function(e,t){e||(e=""),t=t||{};var r,s=this,n=$.Deferred(),i=n.promise();return r=_.isUndefined(t.properties)?this.getPropfindProperties():t.properties,this._client.propFind(this._buildUrl(e),r,1).then((function(e){if(s._isSuccessStatus(e.status)){var r=s._parseResult(e.body);t&&t.includeParent||r.shift(),n.resolve(e.status,r)}else e=_.extend(e,s._getSabreException(e)),n.reject(e.status,e)})),i},getFilteredFiles:function(e,t){t=t||{};var r,s=this,i=$.Deferred(),o=i.promise();if(r=_.isUndefined(t.properties)?this.getPropfindProperties():t.properties,!e||!e.systemTagIds&&_.isUndefined(e.favorite)&&!e.circlesIds)throw"Missing filter argument";var a,u="<oc:filter-files ";for(a in this._client.xmlNamespaces)u+=" xmlns:"+this._client.xmlNamespaces[a]+'="'+a+'"';return u+=">\n",u+=" <"+this._client.xmlNamespaces["DAV:"]+":prop>\n",_.each(r,(function(e){var t=s._client.parseClarkNotation(e);u+=" <"+s._client.xmlNamespaces[t.namespace]+":"+t.name+" />\n"})),u+=" </"+this._client.xmlNamespaces["DAV:"]+":prop>\n",u+=" <oc:filter-rules>\n",_.each(e.systemTagIds,(function(e){u+=" <oc:systemtag>"+n()(e)+"</oc:systemtag>\n"})),_.each(e.circlesIds,(function(e){u+=" <oc:circle>"+n()(e)+"</oc:circle>\n"})),e.favorite&&(u+=" <oc:favorite>"+(e.favorite?"1":"0")+"</oc:favorite>\n"),u+=" </oc:filter-rules>\n",u+="</oc:filter-files>\n",this._client.request("REPORT",this._buildUrl(),{},u).then((function(e){if(s._isSuccessStatus(e.status)){var t=s._parseResult(e.body);i.resolve(e.status,t)}else e=_.extend(e,s._getSabreException(e)),i.reject(e.status,e)})),o},getFileInfo:function(e,t){e||(e=""),t=t||{};var r,s=this,n=$.Deferred(),i=n.promise();return r=_.isUndefined(t.properties)?this.getPropfindProperties():t.properties,this._client.propFind(this._buildUrl(e),r,0).then((function(e){s._isSuccessStatus(e.status)?n.resolve(e.status,s._parseResult([e.body])[0]):(e=_.extend(e,s._getSabreException(e)),n.reject(e.status,e))})),i},getFileContents:function(e){if(!e)throw'Missing argument "path"';var t=this,r=$.Deferred(),s=r.promise();return this._client.request("GET",this._buildUrl(e)).then((function(e){t._isSuccessStatus(e.status)?r.resolve(e.status,e.body):(e=_.extend(e,t._getSabreException(e)),r.reject(e.status,e))})),s},putFileContents:function(e,t,r){if(!e)throw'Missing argument "path"';var s=this,n=$.Deferred(),i=n.promise(),o={},a="text/plain;charset=utf-8";return(r=r||{}).contentType&&(a=r.contentType),o["Content-Type"]=a,(_.isUndefined(r.overwrite)||r.overwrite)&&(o["If-None-Match"]="*"),this._client.request("PUT",this._buildUrl(e),o,t||"").then((function(e){s._isSuccessStatus(e.status)?n.resolve(e.status):(e=_.extend(e,s._getSabreException(e)),n.reject(e.status,e))})),i},_simpleCall:function(e,t){if(!t)throw'Missing argument "path"';var r=this,s=$.Deferred(),n=s.promise();return this._client.request(e,this._buildUrl(t)).then((function(e){r._isSuccessStatus(e.status)?s.resolve(e.status):(e=_.extend(e,r._getSabreException(e)),s.reject(e.status,e))})),n},createDirectory:function(e){return this._simpleCall("MKCOL",e)},remove:function(e){return this._simpleCall("DELETE",e)},move:function(e,t,r,s){if(!e)throw'Missing argument "path"';if(!t)throw'Missing argument "destinationPath"';var n=this,i=$.Deferred(),o=i.promise();return s=_.extend({},s,{Destination:this._buildUrl(t)}),r||(s.Overwrite="F"),this._client.request("MOVE",this._buildUrl(e),s).then((function(e){n._isSuccessStatus(e.status)?i.resolve(e.status):(e=_.extend(e,n._getSabreException(e)),i.reject(e.status,e))})),o},copy:function(e,t,r){if(!e)throw'Missing argument "path"';if(!t)throw'Missing argument "destinationPath"';var s=this,n=$.Deferred(),i=n.promise(),o={Destination:this._buildUrl(t)};return r||(o.Overwrite="F"),this._client.request("COPY",this._buildUrl(e),o).then((function(e){s._isSuccessStatus(e.status)?n.resolve(e.status):n.reject(e.status)})),i},addFileInfoParser:function(e){this._fileInfoParsers.push(e)},getClient:function(){return this._client},getUserName:function(){return this._client.userName},getPassword:function(){return this._client.password},getBaseUrl:function(){return this._client.baseUrl},getHost:function(){return this._host}},e.Files||(e.Files={}),e.Files.getClient=function(){if(e.Files._defaultClient)return e.Files._defaultClient;var t=new e.Files.Client({host:e.getHost(),port:e.getPort(),root:e.linkToRemoteBase("dav")+"/files/"+e.getCurrentUser().uid,useHTTPS:"https"===e.getProtocol()});return e.Files._defaultClient=t,t},e.Files.Client=r}(OC,OC.Files.FileInfo)}},r={};function s(e){var n=r[e];if(void 0!==n)return n.exports;var i=r[e]={id:e,loaded:!1,exports:{}};return t[e].call(i.exports,i,i.exports,s),i.loaded=!0,i.exports}s.m=t,s.amdD=function(){throw new Error("define cannot be used indirect")},s.amdO={},e=[],s.O=function(t,r,n,i){if(!r){var o=1/0;for(l=0;l<e.length;l++){r=e[l][0],n=e[l][1],i=e[l][2];for(var a=!0,u=0;u<r.length;u++)(!1&i||o>=i)&&Object.keys(s.O).every((function(e){return s.O[e](r[u])}))?r.splice(u--,1):(a=!1,i<o&&(o=i));if(a){e.splice(l--,1);var c=n();void 0!==c&&(t=c)}}return t}i=i||0;for(var l=e.length;l>0&&e[l-1][2]>i;l--)e[l]=e[l-1];e[l]=[r,n,i]},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},s.d=function(e,t){for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},s.j=578,function(){var e={578:0};s.O.j=function(t){return 0===e[t]};var t=function(t,r){var n,i,o=r[0],a=r[1],u=r[2],c=0;if(o.some((function(t){return 0!==e[t]}))){for(n in a)s.o(a,n)&&(s.m[n]=a[n]);if(u)var l=u(s)}for(t&&t(r);c<o.length;c++)i=o[c],s.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return s.O(l)},r=self.webpackChunknextcloud=self.webpackChunknextcloud||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))}();var n=s.O(void 0,[874],(function(){return s(7913)}));n=s.O(n)}();
+//# sourceMappingURL=core-files_client.js.map?v=62f4b8af3fcee1b9b934 \ No newline at end of file
diff --git a/dist/core-files_client.js.map b/dist/core-files_client.js.map
index c10bf40bc2a..4f15bb968a8 100644
--- a/dist/core-files_client.js.map
+++ b/dist/core-files_client.js.map
@@ -1 +1 @@
-{"version":3,"file":"core-files_client.js?v=e24463ca2886859eed43","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/core/src/files/client.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","/**\n * Copyright (c) 2015\n *\n * @author Bjoern Schiessle <bjoern@schiessle.org>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n * @author Lukas Reschke <lukas@statuscode.ch>\n * @author Michael Jobst <mjobst+github@tecratech.de>\n * @author Robin Appelman <robin@icewind.nl>\n * @author Roeland Jago Douma <roeland@famdouma.nl>\n * @author Thomas Citharel <nextcloud@tcit.fr>\n * @author Tomasz Grobelny <tomasz@grobelny.net>\n * @author Vincent Petry <vincent@nextcloud.com>\n * @author Vinicius Cubas Brand <vinicius@eita.org.br>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/* eslint-disable */\nimport escapeHTML from 'escape-html'\n\n/* global dav */\n\n(function(OC, FileInfo) {\n\t/**\n\t * @class OC.Files.Client\n\t * @classdesc Client to access files on the server\n\t *\n\t * @param {Object} options\n\t * @param {String} options.host host name\n\t * @param {number} [options.port] port\n\t * @param {boolean} [options.useHTTPS] whether to use https\n\t * @param {String} [options.root] root path\n\t * @param {String} [options.userName] user name\n\t * @param {String} [options.password] password\n\t *\n\t * @since 8.2\n\t */\n\tvar Client = function(options) {\n\t\tthis._root = options.root\n\t\tif (this._root.charAt(this._root.length - 1) === '/') {\n\t\t\tthis._root = this._root.substr(0, this._root.length - 1)\n\t\t}\n\n\t\tlet url = Client.PROTOCOL_HTTP + '://'\n\t\tif (options.useHTTPS) {\n\t\t\turl = Client.PROTOCOL_HTTPS + '://'\n\t\t}\n\n\t\turl += options.host + this._root\n\t\tthis._host = options.host\n\t\tthis._defaultHeaders = options.defaultHeaders || {\n\t\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t\t'requesttoken': OC.requestToken,\n\t\t}\n\t\tthis._baseUrl = url\n\n\t\tconst clientOptions = {\n\t\t\tbaseUrl: this._baseUrl,\n\t\t\txmlNamespaces: {\n\t\t\t\t'DAV:': 'd',\n\t\t\t\t'http://owncloud.org/ns': 'oc',\n\t\t\t\t'http://nextcloud.org/ns': 'nc',\n\t\t\t\t'http://open-collaboration-services.org/ns': 'ocs',\n\t\t\t},\n\t\t}\n\t\tif (options.userName) {\n\t\t\tclientOptions.userName = options.userName\n\t\t}\n\t\tif (options.password) {\n\t\t\tclientOptions.password = options.password\n\t\t}\n\t\tthis._client = new dav.Client(clientOptions)\n\t\tthis._client.xhrProvider = _.bind(this._xhrProvider, this)\n\t\tthis._fileInfoParsers = []\n\t}\n\n\tClient.NS_OWNCLOUD = 'http://owncloud.org/ns'\n\tClient.NS_NEXTCLOUD = 'http://nextcloud.org/ns'\n\tClient.NS_DAV = 'DAV:'\n\tClient.NS_OCS = 'http://open-collaboration-services.org/ns'\n\n\tClient.PROPERTY_GETLASTMODIFIED\t= '{' + Client.NS_DAV + '}getlastmodified'\n\tClient.PROPERTY_GETETAG\t= '{' + Client.NS_DAV + '}getetag'\n\tClient.PROPERTY_GETCONTENTTYPE\t= '{' + Client.NS_DAV + '}getcontenttype'\n\tClient.PROPERTY_RESOURCETYPE\t= '{' + Client.NS_DAV + '}resourcetype'\n\tClient.PROPERTY_INTERNAL_FILEID\t= '{' + Client.NS_OWNCLOUD + '}fileid'\n\tClient.PROPERTY_PERMISSIONS\t= '{' + Client.NS_OWNCLOUD + '}permissions'\n\tClient.PROPERTY_SIZE\t= '{' + Client.NS_OWNCLOUD + '}size'\n\tClient.PROPERTY_GETCONTENTLENGTH\t= '{' + Client.NS_DAV + '}getcontentlength'\n\tClient.PROPERTY_ISENCRYPTED\t= '{' + Client.NS_DAV + '}is-encrypted'\n\tClient.PROPERTY_SHARE_PERMISSIONS\t= '{' + Client.NS_OCS + '}share-permissions'\n\tClient.PROPERTY_QUOTA_AVAILABLE_BYTES\t= '{' + Client.NS_DAV + '}quota-available-bytes'\n\n\tClient.PROTOCOL_HTTP\t= 'http'\n\tClient.PROTOCOL_HTTPS\t= 'https'\n\n\tClient._PROPFIND_PROPERTIES = [\n\t\t/**\n\t\t * Modified time\n\t\t */\n\t\t[Client.NS_DAV, 'getlastmodified'],\n\t\t/**\n\t\t * Etag\n\t\t */\n\t\t[Client.NS_DAV, 'getetag'],\n\t\t/**\n\t\t * Mime type\n\t\t */\n\t\t[Client.NS_DAV, 'getcontenttype'],\n\t\t/**\n\t\t * Resource type \"collection\" for folders, empty otherwise\n\t\t */\n\t\t[Client.NS_DAV, 'resourcetype'],\n\t\t/**\n\t\t * File id\n\t\t */\n\t\t[Client.NS_OWNCLOUD, 'fileid'],\n\t\t/**\n\t\t * Letter-coded permissions\n\t\t */\n\t\t[Client.NS_OWNCLOUD, 'permissions'],\n\t\t// [Client.NS_OWNCLOUD, 'downloadURL'],\n\t\t/**\n\t\t * Folder sizes\n\t\t */\n\t\t[Client.NS_OWNCLOUD, 'size'],\n\t\t/**\n\t\t * File sizes\n\t\t */\n\t\t[Client.NS_DAV, 'getcontentlength'],\n\t\t[Client.NS_DAV, 'quota-available-bytes'],\n\t\t/**\n\t\t * Preview availability\n\t\t */\n\t\t[Client.NS_NEXTCLOUD, 'has-preview'],\n\t\t/**\n\t\t * Mount type\n\t\t */\n\t\t[Client.NS_NEXTCLOUD, 'mount-type'],\n\t\t/**\n\t\t * Encryption state\n\t\t */\n\t\t[Client.NS_NEXTCLOUD, 'is-encrypted'],\n\t\t/**\n\t\t * Share permissions\n\t\t */\n\t\t[Client.NS_OCS, 'share-permissions'],\n\t]\n\n\t/**\n\t * @memberof OC.Files\n\t */\n\tClient.prototype = {\n\n\t\t/**\n\t\t * Root path of the Webdav endpoint\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_root: null,\n\n\t\t/**\n\t\t * Client from the library\n\t\t *\n\t\t * @type dav.Client\n\t\t */\n\t\t_client: null,\n\n\t\t/**\n\t\t * Array of file info parsing functions.\n\t\t *\n\t\t * @type Array<OC.Files.Client~parseFileInfo>\n\t\t */\n\t\t_fileInfoParsers: [],\n\n\t\t/**\n\t\t * Returns the configured XHR provider for davclient\n\t\t * @returns {XMLHttpRequest}\n\t\t */\n\t\t_xhrProvider: function() {\n\t\t\tconst headers = this._defaultHeaders\n\t\t\tconst xhr = new XMLHttpRequest()\n\t\t\tconst oldOpen = xhr.open\n\t\t\t// override open() method to add headers\n\t\t\txhr.open = function() {\n\t\t\t\tconst result = oldOpen.apply(this, arguments)\n\t\t\t\t_.each(headers, function(value, key) {\n\t\t\t\t\txhr.setRequestHeader(key, value)\n\t\t\t\t})\n\t\t\t\treturn result\n\t\t\t}\n\n\t\t\tOC.registerXHRForErrorProcessing(xhr)\n\t\t\treturn xhr\n\t\t},\n\n\t\t/**\n\t\t * Prepends the base url to the given path sections\n\t\t *\n\t\t * @param {...String} path sections\n\t\t *\n\t\t * @returns {String} base url + joined path, any leading or trailing slash\n\t\t * will be kept\n\t\t */\n\t\t_buildUrl: function() {\n\t\t\tlet path = this._buildPath.apply(this, arguments)\n\t\t\tif (path.charAt([path.length - 1]) === '/') {\n\t\t\t\tpath = path.substr(0, path.length - 1)\n\t\t\t}\n\t\t\tif (path.charAt(0) === '/') {\n\t\t\t\tpath = path.substr(1)\n\t\t\t}\n\t\t\treturn this._baseUrl + '/' + path\n\t\t},\n\n\t\t/**\n\t\t * Append the path to the root and also encode path\n\t\t * sections\n\t\t *\n\t\t * @param {...String} path sections\n\t\t *\n\t\t * @returns {String} joined path, any leading or trailing slash\n\t\t * will be kept\n\t\t */\n\t\t_buildPath: function() {\n\t\t\tlet path = OC.joinPaths.apply(this, arguments)\n\t\t\tconst sections = path.split('/')\n\t\t\tlet i\n\t\t\tfor (i = 0; i < sections.length; i++) {\n\t\t\t\tsections[i] = encodeURIComponent(sections[i])\n\t\t\t}\n\t\t\tpath = sections.join('/')\n\t\t\treturn path\n\t\t},\n\n\t\t/**\n\t\t * Parse headers string into a map\n\t\t *\n\t\t * @param {string} headersString headers list as string\n\t\t *\n\t\t * @returns {Object.<String,Array>} map of header name to header contents\n\t\t */\n\t\t_parseHeaders: function(headersString) {\n\t\t\tconst headerRows = headersString.split('\\n')\n\t\t\tconst headers = {}\n\t\t\tfor (let i = 0; i < headerRows.length; i++) {\n\t\t\t\tconst sepPos = headerRows[i].indexOf(':')\n\t\t\t\tif (sepPos < 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tconst headerName = headerRows[i].substr(0, sepPos)\n\t\t\t\tconst headerValue = headerRows[i].substr(sepPos + 2)\n\n\t\t\t\tif (!headers[headerName]) {\n\t\t\t\t\t// make it an array\n\t\t\t\t\theaders[headerName] = []\n\t\t\t\t}\n\n\t\t\t\theaders[headerName].push(headerValue)\n\t\t\t}\n\t\t\treturn headers\n\t\t},\n\n\t\t/**\n\t\t * Parses the etag response which is in double quotes.\n\t\t *\n\t\t * @param {string} etag etag value in double quotes\n\t\t *\n\t\t * @returns {string} etag without double quotes\n\t\t */\n\t\t_parseEtag: function(etag) {\n\t\t\tif (etag.charAt(0) === '\"') {\n\t\t\t\treturn etag.split('\"')[1]\n\t\t\t}\n\t\t\treturn etag\n\t\t},\n\n\t\t/**\n\t\t * Parse Webdav result\n\t\t *\n\t\t * @param {Object} response XML object\n\t\t *\n\t\t * @returns {Array.<FileInfo>} array of file info\n\t\t */\n\t\t_parseFileInfo: function(response) {\n\t\t\tlet path = decodeURIComponent(response.href)\n\t\t\tif (path.substr(0, this._root.length) === this._root) {\n\t\t\t\tpath = path.substr(this._root.length)\n\t\t\t}\n\n\t\t\tif (path.charAt(path.length - 1) === '/') {\n\t\t\t\tpath = path.substr(0, path.length - 1)\n\t\t\t}\n\n\t\t\tif (response.propStat.length === 0 || response.propStat[0].status !== 'HTTP/1.1 200 OK') {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tconst props = response.propStat[0].properties\n\n\t\t\tconst data = {\n\t\t\t\tid: props[Client.PROPERTY_INTERNAL_FILEID],\n\t\t\t\tpath: OC.dirname(path) || '/',\n\t\t\t\tname: OC.basename(path),\n\t\t\t\tmtime: (new Date(props[Client.PROPERTY_GETLASTMODIFIED])).getTime(),\n\t\t\t}\n\n\t\t\tconst etagProp = props[Client.PROPERTY_GETETAG]\n\t\t\tif (!_.isUndefined(etagProp)) {\n\t\t\t\tdata.etag = this._parseEtag(etagProp)\n\t\t\t}\n\n\t\t\tlet sizeProp = props[Client.PROPERTY_GETCONTENTLENGTH]\n\t\t\tif (!_.isUndefined(sizeProp)) {\n\t\t\t\tdata.size = parseInt(sizeProp, 10)\n\t\t\t}\n\n\t\t\tsizeProp = props[Client.PROPERTY_SIZE]\n\t\t\tif (!_.isUndefined(sizeProp)) {\n\t\t\t\tdata.size = parseInt(sizeProp, 10)\n\t\t\t}\n\n\t\t\tconst hasPreviewProp = props['{' + Client.NS_NEXTCLOUD + '}has-preview']\n\t\t\tif (!_.isUndefined(hasPreviewProp)) {\n\t\t\t\tdata.hasPreview = hasPreviewProp === 'true'\n\t\t\t} else {\n\t\t\t\tdata.hasPreview = true\n\t\t\t}\n\n\t\t\tconst isEncryptedProp = props['{' + Client.NS_NEXTCLOUD + '}is-encrypted']\n\t\t\tif (!_.isUndefined(isEncryptedProp)) {\n\t\t\t\tdata.isEncrypted = isEncryptedProp === '1'\n\t\t\t} else {\n\t\t\t\tdata.isEncrypted = false\n\t\t\t}\n\n\t\t\tconst isFavouritedProp = props['{' + Client.NS_OWNCLOUD + '}favorite']\n\t\t\tif (!_.isUndefined(isFavouritedProp)) {\n\t\t\t\tdata.isFavourited = isFavouritedProp === '1'\n\t\t\t} else {\n\t\t\t\tdata.isFavourited = false\n\t\t\t}\n\n\t\t\tconst contentType = props[Client.PROPERTY_GETCONTENTTYPE]\n\t\t\tif (!_.isUndefined(contentType)) {\n\t\t\t\tdata.mimetype = contentType\n\t\t\t}\n\n\t\t\tconst resType = props[Client.PROPERTY_RESOURCETYPE]\n\t\t\tif (!data.mimetype && resType) {\n\t\t\t\tconst xmlvalue = resType[0]\n\t\t\t\tif (xmlvalue.namespaceURI === Client.NS_DAV && xmlvalue.nodeName.split(':')[1] === 'collection') {\n\t\t\t\t\tdata.mimetype = 'httpd/unix-directory'\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdata.permissions = OC.PERMISSION_NONE\n\t\t\tconst permissionProp = props[Client.PROPERTY_PERMISSIONS]\n\t\t\tif (!_.isUndefined(permissionProp)) {\n\t\t\t\tconst permString = permissionProp || ''\n\t\t\t\tdata.mountType = null\n\t\t\t\tfor (let i = 0; i < permString.length; i++) {\n\t\t\t\t\tconst c = permString.charAt(i)\n\t\t\t\t\tswitch (c) {\n\t\t\t\t\t// FIXME: twisted permissions\n\t\t\t\t\tcase 'C':\n\t\t\t\t\tcase 'K':\n\t\t\t\t\t\tdata.permissions |= OC.PERMISSION_CREATE\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'G':\n\t\t\t\t\t\tdata.permissions |= OC.PERMISSION_READ\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'W':\n\t\t\t\t\tcase 'N':\n\t\t\t\t\tcase 'V':\n\t\t\t\t\t\tdata.permissions |= OC.PERMISSION_UPDATE\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'D':\n\t\t\t\t\t\tdata.permissions |= OC.PERMISSION_DELETE\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'R':\n\t\t\t\t\t\tdata.permissions |= OC.PERMISSION_SHARE\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'M':\n\t\t\t\t\t\tif (!data.mountType) {\n\t\t\t\t\t\t\t// TODO: how to identify external-root ?\n\t\t\t\t\t\t\tdata.mountType = 'external'\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'S':\n\t\t\t\t\t\t// TODO: how to identify shared-root ?\n\t\t\t\t\t\tdata.mountType = 'shared'\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst sharePermissionsProp = props[Client.PROPERTY_SHARE_PERMISSIONS]\n\t\t\tif (!_.isUndefined(sharePermissionsProp)) {\n\t\t\t\tdata.sharePermissions = parseInt(sharePermissionsProp)\n\t\t\t}\n\n\t\t\tconst mounTypeProp = props['{' + Client.NS_NEXTCLOUD + '}mount-type']\n\t\t\tif (!_.isUndefined(mounTypeProp)) {\n\t\t\t\tdata.mountType = mounTypeProp\n\t\t\t}\n\n\t\t\tconst quotaAvailableBytes = props['{' + Client.NS_DAV + '}quota-available-bytes']\n\t\t\tif (!_.isUndefined(quotaAvailableBytes)) {\n\t\t\t\tdata.quotaAvailableBytes = quotaAvailableBytes\n\t\t\t}\n\n\t\t\t// extend the parsed data using the custom parsers\n\t\t\t_.each(this._fileInfoParsers, function(parserFunction) {\n\t\t\t\t_.extend(data, parserFunction(response, data) || {})\n\t\t\t})\n\n\t\t\treturn new FileInfo(data)\n\t\t},\n\n\t\t/**\n\t\t * Parse Webdav multistatus\n\t\t *\n\t\t * @param {Array} responses\n\t\t */\n\t\t_parseResult: function(responses) {\n\t\t\tconst self = this\n\t\t\treturn _.map(responses, function(response) {\n\t\t\t\treturn self._parseFileInfo(response)\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Returns whether the given status code means success\n\t\t *\n\t\t * @param {number} status status code\n\t\t *\n\t\t * @returns true if status code is between 200 and 299 included\n\t\t */\n\t\t_isSuccessStatus: function(status) {\n\t\t\treturn status >= 200 && status <= 299\n\t\t},\n\n\t\t/**\n\t\t * Parse the Sabre exception out of the given response, if any\n\t\t *\n\t\t * @param {Object} response object\n\t\t * @returns {Object} array of parsed message and exception (only the first one)\n\t\t */\n\t\t_getSabreException: function(response) {\n\t\t\tconst result = {}\n\t\t\tconst xml = response.xhr.responseXML\n\t\t\tif (xml === null) {\n\t\t\t\treturn result\n\t\t\t}\n\t\t\tconst messages = xml.getElementsByTagNameNS('http://sabredav.org/ns', 'message')\n\t\t\tconst exceptions = xml.getElementsByTagNameNS('http://sabredav.org/ns', 'exception')\n\t\t\tif (messages.length) {\n\t\t\t\tresult.message = messages[0].textContent\n\t\t\t}\n\t\t\tif (exceptions.length) {\n\t\t\t\tresult.exception = exceptions[0].textContent\n\t\t\t}\n\t\t\treturn result\n\t\t},\n\n\t\t/**\n\t\t * Returns the default PROPFIND properties to use during a call.\n\t\t *\n\t\t * @returns {Array.<Object>} array of properties\n\t\t */\n\t\tgetPropfindProperties: function() {\n\t\t\tif (!this._propfindProperties) {\n\t\t\t\tthis._propfindProperties = _.map(Client._PROPFIND_PROPERTIES, function(propDef) {\n\t\t\t\t\treturn '{' + propDef[0] + '}' + propDef[1]\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn this._propfindProperties\n\t\t},\n\n\t\t/**\n\t\t * Lists the contents of a directory\n\t\t *\n\t\t * @param {String} path path to retrieve\n\t\t * @param {Object} [options] options\n\t\t * @param {boolean} [options.includeParent=false] set to true to keep\n\t\t * the parent folder in the result list\n\t\t * @param {Array} [options.properties] list of Webdav properties to retrieve\n\t\t *\n\t\t * @returns {Promise} promise\n\t\t */\n\t\tgetFolderContents: function(path, options) {\n\t\t\tif (!path) {\n\t\t\t\tpath = ''\n\t\t\t}\n\t\t\toptions = options || {}\n\t\t\tconst self = this\n\t\t\tconst deferred = $.Deferred()\n\t\t\tconst promise = deferred.promise()\n\t\t\tlet properties\n\t\t\tif (_.isUndefined(options.properties)) {\n\t\t\t\tproperties = this.getPropfindProperties()\n\t\t\t} else {\n\t\t\t\tproperties = options.properties\n\t\t\t}\n\n\t\t\tthis._client.propFind(\n\t\t\t\tthis._buildUrl(path),\n\t\t\t\tproperties,\n\t\t\t\t1\n\t\t\t).then(function(result) {\n\t\t\t\tif (self._isSuccessStatus(result.status)) {\n\t\t\t\t\tconst results = self._parseResult(result.body)\n\t\t\t\t\tif (!options || !options.includeParent) {\n\t\t\t\t\t\t// remove root dir, the first entry\n\t\t\t\t\t\tresults.shift()\n\t\t\t\t\t}\n\t\t\t\t\tdeferred.resolve(result.status, results)\n\t\t\t\t} else {\n\t\t\t\t\tresult = _.extend(result, self._getSabreException(result))\n\t\t\t\t\tdeferred.reject(result.status, result)\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn promise\n\t\t},\n\n\t\t/**\n\t\t * Fetches a flat list of files filtered by a given filter criteria.\n\t\t * (currently system tags and circles are supported)\n\t\t *\n\t\t * @param {Object} filter filter criteria\n\t\t * @param {Object} [filter.systemTagIds] list of system tag ids to filter by\n\t\t * @param {boolean} [filter.favorite] set it to filter by favorites\n\t\t * @param {Object} [options] options\n\t\t * @param {Array} [options.properties] list of Webdav properties to retrieve\n\t\t *\n\t\t * @returns {Promise} promise\n\t\t */\n\t\tgetFilteredFiles: function(filter, options) {\n\t\t\toptions = options || {}\n\t\t\tconst self = this\n\t\t\tconst deferred = $.Deferred()\n\t\t\tconst promise = deferred.promise()\n\t\t\tlet properties\n\t\t\tif (_.isUndefined(options.properties)) {\n\t\t\t\tproperties = this.getPropfindProperties()\n\t\t\t} else {\n\t\t\t\tproperties = options.properties\n\t\t\t}\n\n\t\t\tif (!filter\n\t\t\t\t|| (!filter.systemTagIds && _.isUndefined(filter.favorite) && !filter.circlesIds)) {\n\t\t\t\tthrow 'Missing filter argument'\n\t\t\t}\n\n\t\t\t// root element with namespaces\n\t\t\tlet body = '<oc:filter-files '\n\t\t\tlet namespace\n\t\t\tfor (namespace in this._client.xmlNamespaces) {\n\t\t\t\tbody += ' xmlns:' + this._client.xmlNamespaces[namespace] + '=\"' + namespace + '\"'\n\t\t\t}\n\t\t\tbody += '>\\n'\n\n\t\t\t// properties query\n\t\t\tbody += ' <' + this._client.xmlNamespaces['DAV:'] + ':prop>\\n'\n\t\t\t_.each(properties, function(prop) {\n\t\t\t\tconst property = self._client.parseClarkNotation(prop)\n\t\t\t\tbody += ' <' + self._client.xmlNamespaces[property.namespace] + ':' + property.name + ' />\\n'\n\t\t\t})\n\n\t\t\tbody += ' </' + this._client.xmlNamespaces['DAV:'] + ':prop>\\n'\n\n\t\t\t// rules block\n\t\t\tbody +=\t' <oc:filter-rules>\\n'\n\t\t\t_.each(filter.systemTagIds, function(systemTagIds) {\n\t\t\t\tbody += ' <oc:systemtag>' + escapeHTML(systemTagIds) + '</oc:systemtag>\\n'\n\t\t\t})\n\t\t\t_.each(filter.circlesIds, function(circlesIds) {\n\t\t\t\tbody += ' <oc:circle>' + escapeHTML(circlesIds) + '</oc:circle>\\n'\n\t\t\t})\n\t\t\tif (filter.favorite) {\n\t\t\t\tbody += ' <oc:favorite>' + (filter.favorite ? '1' : '0') + '</oc:favorite>\\n'\n\t\t\t}\n\t\t\tbody += ' </oc:filter-rules>\\n'\n\n\t\t\t// end of root\n\t\t\tbody += '</oc:filter-files>\\n'\n\n\t\t\tthis._client.request(\n\t\t\t\t'REPORT',\n\t\t\t\tthis._buildUrl(),\n\t\t\t\t{},\n\t\t\t\tbody\n\t\t\t).then(function(result) {\n\t\t\t\tif (self._isSuccessStatus(result.status)) {\n\t\t\t\t\tconst results = self._parseResult(result.body)\n\t\t\t\t\tdeferred.resolve(result.status, results)\n\t\t\t\t} else {\n\t\t\t\t\tresult = _.extend(result, self._getSabreException(result))\n\t\t\t\t\tdeferred.reject(result.status, result)\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn promise\n\t\t},\n\n\t\t/**\n\t\t * Returns the file info of a given path.\n\t\t *\n\t\t * @param {String} path path\n\t\t * @param {Array} [options.properties] list of Webdav properties to retrieve\n\t\t *\n\t\t * @returns {Promise} promise\n\t\t */\n\t\tgetFileInfo: function(path, options) {\n\t\t\tif (!path) {\n\t\t\t\tpath = ''\n\t\t\t}\n\t\t\toptions = options || {}\n\t\t\tconst self = this\n\t\t\tconst deferred = $.Deferred()\n\t\t\tconst promise = deferred.promise()\n\t\t\tlet properties\n\t\t\tif (_.isUndefined(options.properties)) {\n\t\t\t\tproperties = this.getPropfindProperties()\n\t\t\t} else {\n\t\t\t\tproperties = options.properties\n\t\t\t}\n\n\t\t\t// TODO: headers\n\t\t\tthis._client.propFind(\n\t\t\t\tthis._buildUrl(path),\n\t\t\t\tproperties,\n\t\t\t\t0\n\t\t\t).then(\n\t\t\t\tfunction(result) {\n\t\t\t\t\tif (self._isSuccessStatus(result.status)) {\n\t\t\t\t\t\tdeferred.resolve(result.status, self._parseResult([result.body])[0])\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = _.extend(result, self._getSabreException(result))\n\t\t\t\t\t\tdeferred.reject(result.status, result)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\treturn promise\n\t\t},\n\n\t\t/**\n\t\t * Returns the contents of the given file.\n\t\t *\n\t\t * @param {String} path path to file\n\t\t *\n\t\t * @returns {Promise}\n\t\t */\n\t\tgetFileContents: function(path) {\n\t\t\tif (!path) {\n\t\t\t\tthrow 'Missing argument \"path\"'\n\t\t\t}\n\t\t\tconst self = this\n\t\t\tconst deferred = $.Deferred()\n\t\t\tconst promise = deferred.promise()\n\n\t\t\tthis._client.request(\n\t\t\t\t'GET',\n\t\t\t\tthis._buildUrl(path)\n\t\t\t).then(\n\t\t\t\tfunction(result) {\n\t\t\t\t\tif (self._isSuccessStatus(result.status)) {\n\t\t\t\t\t\tdeferred.resolve(result.status, result.body)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = _.extend(result, self._getSabreException(result))\n\t\t\t\t\t\tdeferred.reject(result.status, result)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\treturn promise\n\t\t},\n\n\t\t/**\n\t\t * Puts the given data into the given file.\n\t\t *\n\t\t * @param {String} path path to file\n\t\t * @param {String} body file body\n\t\t * @param {Object} [options]\n\t\t * @param {String} [options.contentType='text/plain'] content type\n\t\t * @param {boolean} [options.overwrite=true] whether to overwrite an existing file\n\t\t *\n\t\t * @returns {Promise}\n\t\t */\n\t\tputFileContents: function(path, body, options) {\n\t\t\tif (!path) {\n\t\t\t\tthrow 'Missing argument \"path\"'\n\t\t\t}\n\t\t\tconst self = this\n\t\t\tconst deferred = $.Deferred()\n\t\t\tconst promise = deferred.promise()\n\t\t\toptions = options || {}\n\t\t\tconst headers = {}\n\t\t\tlet contentType = 'text/plain;charset=utf-8'\n\t\t\tif (options.contentType) {\n\t\t\t\tcontentType = options.contentType\n\t\t\t}\n\n\t\t\theaders['Content-Type'] = contentType\n\n\t\t\tif (_.isUndefined(options.overwrite) || options.overwrite) {\n\t\t\t\t// will trigger 412 precondition failed if a file already exists\n\t\t\t\theaders['If-None-Match'] = '*'\n\t\t\t}\n\n\t\t\tthis._client.request(\n\t\t\t\t'PUT',\n\t\t\t\tthis._buildUrl(path),\n\t\t\t\theaders,\n\t\t\t\tbody || ''\n\t\t\t).then(\n\t\t\t\tfunction(result) {\n\t\t\t\t\tif (self._isSuccessStatus(result.status)) {\n\t\t\t\t\t\tdeferred.resolve(result.status)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = _.extend(result, self._getSabreException(result))\n\t\t\t\t\t\tdeferred.reject(result.status, result)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\treturn promise\n\t\t},\n\n\t\t_simpleCall: function(method, path) {\n\t\t\tif (!path) {\n\t\t\t\tthrow 'Missing argument \"path\"'\n\t\t\t}\n\n\t\t\tconst self = this\n\t\t\tconst deferred = $.Deferred()\n\t\t\tconst promise = deferred.promise()\n\n\t\t\tthis._client.request(\n\t\t\t\tmethod,\n\t\t\t\tthis._buildUrl(path)\n\t\t\t).then(\n\t\t\t\tfunction(result) {\n\t\t\t\t\tif (self._isSuccessStatus(result.status)) {\n\t\t\t\t\t\tdeferred.resolve(result.status)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = _.extend(result, self._getSabreException(result))\n\t\t\t\t\t\tdeferred.reject(result.status, result)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\treturn promise\n\t\t},\n\n\t\t/**\n\t\t * Creates a directory\n\t\t *\n\t\t * @param {String} path path to create\n\t\t *\n\t\t * @returns {Promise}\n\t\t */\n\t\tcreateDirectory: function(path) {\n\t\t\treturn this._simpleCall('MKCOL', path)\n\t\t},\n\n\t\t/**\n\t\t * Deletes a file or directory\n\t\t *\n\t\t * @param {String} path path to delete\n\t\t *\n\t\t * @returns {Promise}\n\t\t */\n\t\tremove: function(path) {\n\t\t\treturn this._simpleCall('DELETE', path)\n\t\t},\n\n\t\t/**\n\t\t * Moves path to another path\n\t\t *\n\t\t * @param {String} path path to move\n\t\t * @param {String} destinationPath destination path\n\t\t * @param {boolean} [allowOverwrite=false] true to allow overwriting,\n\t\t * false otherwise\n\t\t * @param {Object} [headers=null] additional headers\n\t\t *\n\t\t * @returns {Promise} promise\n\t\t */\n\t\tmove: function(path, destinationPath, allowOverwrite, headers) {\n\t\t\tif (!path) {\n\t\t\t\tthrow 'Missing argument \"path\"'\n\t\t\t}\n\t\t\tif (!destinationPath) {\n\t\t\t\tthrow 'Missing argument \"destinationPath\"'\n\t\t\t}\n\n\t\t\tconst self = this\n\t\t\tconst deferred = $.Deferred()\n\t\t\tconst promise = deferred.promise()\n\t\t\theaders = _.extend({}, headers, {\n\t\t\t\t'Destination': this._buildUrl(destinationPath),\n\t\t\t})\n\n\t\t\tif (!allowOverwrite) {\n\t\t\t\theaders.Overwrite = 'F'\n\t\t\t}\n\n\t\t\tthis._client.request(\n\t\t\t\t'MOVE',\n\t\t\t\tthis._buildUrl(path),\n\t\t\t\theaders\n\t\t\t).then(\n\t\t\t\tfunction(result) {\n\t\t\t\t\tif (self._isSuccessStatus(result.status)) {\n\t\t\t\t\t\tdeferred.resolve(result.status)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = _.extend(result, self._getSabreException(result))\n\t\t\t\t\t\tdeferred.reject(result.status, result)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\treturn promise\n\t\t},\n\n\t\t/**\n\t\t * Copies path to another path\n\t\t *\n\t\t * @param {String} path path to copy\n\t\t * @param {String} destinationPath destination path\n\t\t * @param {boolean} [allowOverwrite=false] true to allow overwriting,\n\t\t * false otherwise\n\t\t *\n\t\t * @returns {Promise} promise\n\t\t */\n\t\tcopy: function(path, destinationPath, allowOverwrite) {\n\t\t\tif (!path) {\n\t\t\t\tthrow 'Missing argument \"path\"'\n\t\t\t}\n\t\t\tif (!destinationPath) {\n\t\t\t\tthrow 'Missing argument \"destinationPath\"'\n\t\t\t}\n\n\t\t\tconst self = this\n\t\t\tconst deferred = $.Deferred()\n\t\t\tconst promise = deferred.promise()\n\t\t\tconst headers = {\n\t\t\t\t'Destination': this._buildUrl(destinationPath),\n\t\t\t}\n\n\t\t\tif (!allowOverwrite) {\n\t\t\t\theaders.Overwrite = 'F'\n\t\t\t}\n\n\t\t\tthis._client.request(\n\t\t\t\t'COPY',\n\t\t\t\tthis._buildUrl(path),\n\t\t\t\theaders\n\t\t\t).then(\n\t\t\t\tfunction(response) {\n\t\t\t\t\tif (self._isSuccessStatus(response.status)) {\n\t\t\t\t\t\tdeferred.resolve(response.status)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdeferred.reject(response.status)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\treturn promise\n\t\t},\n\n\t\t/**\n\t\t * Add a file info parser function\n\t\t *\n\t\t * @param {OC.Files.Client~parseFileInfo} parserFunction\n\t\t */\n\t\taddFileInfoParser: function(parserFunction) {\n\t\t\tthis._fileInfoParsers.push(parserFunction)\n\t\t},\n\n\t\t/**\n\t\t * Returns the dav.Client instance used internally\n\t\t *\n\t\t * @since 11.0.0\n\t\t * @returns {dav.Client}\n\t\t */\n\t\tgetClient: function() {\n\t\t\treturn this._client\n\t\t},\n\n\t\t/**\n\t\t * Returns the user name\n\t\t *\n\t\t * @since 11.0.0\n\t\t * @returns {String} userName\n\t\t */\n\t\tgetUserName: function() {\n\t\t\treturn this._client.userName\n\t\t},\n\n\t\t/**\n\t\t * Returns the password\n\t\t *\n\t\t * @since 11.0.0\n\t\t * @returns {String} password\n\t\t */\n\t\tgetPassword: function() {\n\t\t\treturn this._client.password\n\t\t},\n\n\t\t/**\n\t\t * Returns the base URL\n\t\t *\n\t\t * @since 11.0.0\n\t\t * @returns {String} base URL\n\t\t */\n\t\tgetBaseUrl: function() {\n\t\t\treturn this._client.baseUrl\n\t\t},\n\n\t\t/**\n\t\t * Returns the host\n\t\t *\n\t\t * @since 13.0.0\n\t\t * @returns {String} base URL\n\t\t */\n\t\tgetHost: function() {\n\t\t\treturn this._host\n\t\t},\n\t}\n\n\t/**\n\t * File info parser function\n\t *\n\t * This function receives a list of Webdav properties as input and\n\t * should return a hash array of parsed properties, if applicable.\n\t *\n\t * @callback OC.Files.Client~parseFileInfo\n\t * @param {Object} XML Webdav properties\n * @return {Array} array of parsed property values\n\t */\n\n\tif (!OC.Files) {\n\t\t/**\n\t\t * @namespace OC.Files\n\t\t *\n\t\t * @since 8.2\n\t\t */\n\t\tOC.Files = {}\n\t}\n\n\t/**\n\t * Returns the default instance of the files client\n\t *\n\t * @returns {OC.Files.Client} default client\n\t *\n\t * @since 8.2\n\t */\n\tOC.Files.getClient = function() {\n\t\tif (OC.Files._defaultClient) {\n\t\t\treturn OC.Files._defaultClient\n\t\t}\n\n\t\tconst client = new OC.Files.Client({\n\t\t\thost: OC.getHost(),\n\t\t\tport: OC.getPort(),\n\t\t\troot: OC.linkToRemoteBase('dav') + '/files/' + OC.getCurrentUser().uid,\n\t\t\tuseHTTPS: OC.getProtocol() === 'https',\n\t\t})\n\t\tOC.Files._defaultClient = client\n\t\treturn client\n\t}\n\n\tOC.Files.Client = Client\n})(OC, OC.Files.FileInfo)\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","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 578;","// no baseURI\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\t578: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// 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, [874], function() { return __webpack_require__(7913); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","OC","FileInfo","Client","options","this","_root","root","charAt","length","substr","url","PROTOCOL_HTTP","useHTTPS","PROTOCOL_HTTPS","host","_host","_defaultHeaders","defaultHeaders","requestToken","_baseUrl","clientOptions","baseUrl","xmlNamespaces","userName","password","_client","dav","xhrProvider","_","bind","_xhrProvider","_fileInfoParsers","NS_OWNCLOUD","NS_NEXTCLOUD","NS_DAV","NS_OCS","PROPERTY_GETLASTMODIFIED","PROPERTY_GETETAG","PROPERTY_GETCONTENTTYPE","PROPERTY_RESOURCETYPE","PROPERTY_INTERNAL_FILEID","PROPERTY_PERMISSIONS","PROPERTY_SIZE","PROPERTY_GETCONTENTLENGTH","PROPERTY_ISENCRYPTED","PROPERTY_SHARE_PERMISSIONS","PROPERTY_QUOTA_AVAILABLE_BYTES","_PROPFIND_PROPERTIES","prototype","headers","xhr","XMLHttpRequest","oldOpen","open","result","apply","arguments","each","value","key","setRequestHeader","registerXHRForErrorProcessing","_buildUrl","path","_buildPath","i","joinPaths","sections","split","encodeURIComponent","join","_parseHeaders","headersString","headerRows","sepPos","indexOf","headerName","headerValue","push","_parseEtag","etag","_parseFileInfo","response","decodeURIComponent","href","propStat","status","props","properties","data","id","dirname","name","basename","mtime","Date","getTime","etagProp","isUndefined","sizeProp","size","parseInt","hasPreviewProp","hasPreview","isEncryptedProp","isEncrypted","isFavouritedProp","isFavourited","contentType","mimetype","resType","xmlvalue","namespaceURI","nodeName","permissions","PERMISSION_NONE","permissionProp","permString","mountType","PERMISSION_CREATE","PERMISSION_READ","PERMISSION_UPDATE","PERMISSION_DELETE","PERMISSION_SHARE","sharePermissionsProp","sharePermissions","mounTypeProp","quotaAvailableBytes","parserFunction","extend","_parseResult","responses","self","map","_isSuccessStatus","_getSabreException","xml","responseXML","messages","getElementsByTagNameNS","exceptions","message","textContent","exception","getPropfindProperties","_propfindProperties","propDef","getFolderContents","$","Deferred","promise","propFind","then","results","body","includeParent","shift","resolve","reject","getFilteredFiles","filter","systemTagIds","favorite","circlesIds","namespace","prop","property","parseClarkNotation","escapeHTML","request","getFileInfo","getFileContents","putFileContents","overwrite","_simpleCall","method","createDirectory","remove","move","destinationPath","allowOverwrite","Overwrite","copy","addFileInfoParser","getClient","getUserName","getPassword","getBaseUrl","getHost","Files","_defaultClient","client","port","getPort","linkToRemoteBase","getCurrentUser","uid","getProtocol","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","loaded","__webpack_modules__","call","m","amdD","Error","amdO","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"core-files_client.js?v=62f4b8af3fcee1b9b934","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/core/src/files/client.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","/**\n * Copyright (c) 2015\n *\n * @author Bjoern Schiessle <bjoern@schiessle.org>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n * @author Lukas Reschke <lukas@statuscode.ch>\n * @author Michael Jobst <mjobst+github@tecratech.de>\n * @author Robin Appelman <robin@icewind.nl>\n * @author Roeland Jago Douma <roeland@famdouma.nl>\n * @author Thomas Citharel <nextcloud@tcit.fr>\n * @author Tomasz Grobelny <tomasz@grobelny.net>\n * @author Vincent Petry <vincent@nextcloud.com>\n * @author Vinicius Cubas Brand <vinicius@eita.org.br>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/* eslint-disable */\nimport escapeHTML from 'escape-html'\n\n/* global dav */\n\n(function(OC, FileInfo) {\n\t/**\n\t * @class OC.Files.Client\n\t * @classdesc Client to access files on the server\n\t *\n\t * @param {Object} options\n\t * @param {String} options.host host name\n\t * @param {number} [options.port] port\n\t * @param {boolean} [options.useHTTPS] whether to use https\n\t * @param {String} [options.root] root path\n\t * @param {String} [options.userName] user name\n\t * @param {String} [options.password] password\n\t *\n\t * @since 8.2\n\t */\n\tvar Client = function(options) {\n\t\tthis._root = options.root\n\t\tif (this._root.charAt(this._root.length - 1) === '/') {\n\t\t\tthis._root = this._root.substr(0, this._root.length - 1)\n\t\t}\n\n\t\tlet url = Client.PROTOCOL_HTTP + '://'\n\t\tif (options.useHTTPS) {\n\t\t\turl = Client.PROTOCOL_HTTPS + '://'\n\t\t}\n\n\t\turl += options.host + this._root\n\t\tthis._host = options.host\n\t\tthis._defaultHeaders = options.defaultHeaders || {\n\t\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t\t'requesttoken': OC.requestToken,\n\t\t}\n\t\tthis._baseUrl = url\n\n\t\tconst clientOptions = {\n\t\t\tbaseUrl: this._baseUrl,\n\t\t\txmlNamespaces: {\n\t\t\t\t'DAV:': 'd',\n\t\t\t\t'http://owncloud.org/ns': 'oc',\n\t\t\t\t'http://nextcloud.org/ns': 'nc',\n\t\t\t\t'http://open-collaboration-services.org/ns': 'ocs',\n\t\t\t},\n\t\t}\n\t\tif (options.userName) {\n\t\t\tclientOptions.userName = options.userName\n\t\t}\n\t\tif (options.password) {\n\t\t\tclientOptions.password = options.password\n\t\t}\n\t\tthis._client = new dav.Client(clientOptions)\n\t\tthis._client.xhrProvider = _.bind(this._xhrProvider, this)\n\t\tthis._fileInfoParsers = []\n\t}\n\n\tClient.NS_OWNCLOUD = 'http://owncloud.org/ns'\n\tClient.NS_NEXTCLOUD = 'http://nextcloud.org/ns'\n\tClient.NS_DAV = 'DAV:'\n\tClient.NS_OCS = 'http://open-collaboration-services.org/ns'\n\n\tClient.PROPERTY_GETLASTMODIFIED\t= '{' + Client.NS_DAV + '}getlastmodified'\n\tClient.PROPERTY_GETETAG\t= '{' + Client.NS_DAV + '}getetag'\n\tClient.PROPERTY_GETCONTENTTYPE\t= '{' + Client.NS_DAV + '}getcontenttype'\n\tClient.PROPERTY_RESOURCETYPE\t= '{' + Client.NS_DAV + '}resourcetype'\n\tClient.PROPERTY_INTERNAL_FILEID\t= '{' + Client.NS_OWNCLOUD + '}fileid'\n\tClient.PROPERTY_PERMISSIONS\t= '{' + Client.NS_OWNCLOUD + '}permissions'\n\tClient.PROPERTY_SIZE\t= '{' + Client.NS_OWNCLOUD + '}size'\n\tClient.PROPERTY_GETCONTENTLENGTH\t= '{' + Client.NS_DAV + '}getcontentlength'\n\tClient.PROPERTY_ISENCRYPTED\t= '{' + Client.NS_DAV + '}is-encrypted'\n\tClient.PROPERTY_SHARE_PERMISSIONS\t= '{' + Client.NS_OCS + '}share-permissions'\n\tClient.PROPERTY_QUOTA_AVAILABLE_BYTES\t= '{' + Client.NS_DAV + '}quota-available-bytes'\n\tClient.PROPERTY_PREVIEW_ACCESS_TOKEN\t= '{' + Client.NS_NEXTCLOUD + '}preview-access-token'\n\n\tClient.PROTOCOL_HTTP\t= 'http'\n\tClient.PROTOCOL_HTTPS\t= 'https'\n\n\tClient._PROPFIND_PROPERTIES = [\n\t\t/**\n\t\t * Modified time\n\t\t */\n\t\t[Client.NS_DAV, 'getlastmodified'],\n\t\t/**\n\t\t * Etag\n\t\t */\n\t\t[Client.NS_DAV, 'getetag'],\n\t\t/**\n\t\t * Mime type\n\t\t */\n\t\t[Client.NS_DAV, 'getcontenttype'],\n\t\t/**\n\t\t * Resource type \"collection\" for folders, empty otherwise\n\t\t */\n\t\t[Client.NS_DAV, 'resourcetype'],\n\t\t/**\n\t\t * File id\n\t\t */\n\t\t[Client.NS_OWNCLOUD, 'fileid'],\n\t\t/**\n\t\t * Letter-coded permissions\n\t\t */\n\t\t[Client.NS_OWNCLOUD, 'permissions'],\n\t\t// [Client.NS_OWNCLOUD, 'downloadURL'],\n\t\t/**\n\t\t * Folder sizes\n\t\t */\n\t\t[Client.NS_OWNCLOUD, 'size'],\n\t\t/**\n\t\t * File sizes\n\t\t */\n\t\t[Client.NS_DAV, 'getcontentlength'],\n\t\t[Client.NS_DAV, 'quota-available-bytes'],\n\t\t/**\n\t\t * Preview availability\n\t\t */\n\t\t[Client.NS_NEXTCLOUD, 'has-preview'],\n\t\t/**\n\t\t * Mount type\n\t\t */\n\t\t[Client.NS_NEXTCLOUD, 'mount-type'],\n\t\t/**\n\t\t * Encryption state\n\t\t */\n\t\t[Client.NS_NEXTCLOUD, 'is-encrypted'],\n\t\t/**\n\t\t * Share permissions\n\t\t */\n\t\t[Client.NS_OCS, 'share-permissions'],\n\t\t/**\n\t\t * Preview access token\n\t\t */\n\t\t[Client.NS_NEXTCLOUD, 'preview-access-token'],\n\t]\n\n\t/**\n\t * @memberof OC.Files\n\t */\n\tClient.prototype = {\n\n\t\t/**\n\t\t * Root path of the Webdav endpoint\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_root: null,\n\n\t\t/**\n\t\t * Client from the library\n\t\t *\n\t\t * @type dav.Client\n\t\t */\n\t\t_client: null,\n\n\t\t/**\n\t\t * Array of file info parsing functions.\n\t\t *\n\t\t * @type Array<OC.Files.Client~parseFileInfo>\n\t\t */\n\t\t_fileInfoParsers: [],\n\n\t\t/**\n\t\t * Returns the configured XHR provider for davclient\n\t\t * @returns {XMLHttpRequest}\n\t\t */\n\t\t_xhrProvider: function() {\n\t\t\tconst headers = this._defaultHeaders\n\t\t\tconst xhr = new XMLHttpRequest()\n\t\t\tconst oldOpen = xhr.open\n\t\t\t// override open() method to add headers\n\t\t\txhr.open = function() {\n\t\t\t\tconst result = oldOpen.apply(this, arguments)\n\t\t\t\t_.each(headers, function(value, key) {\n\t\t\t\t\txhr.setRequestHeader(key, value)\n\t\t\t\t})\n\t\t\t\treturn result\n\t\t\t}\n\n\t\t\tOC.registerXHRForErrorProcessing(xhr)\n\t\t\treturn xhr\n\t\t},\n\n\t\t/**\n\t\t * Prepends the base url to the given path sections\n\t\t *\n\t\t * @param {...String} path sections\n\t\t *\n\t\t * @returns {String} base url + joined path, any leading or trailing slash\n\t\t * will be kept\n\t\t */\n\t\t_buildUrl: function() {\n\t\t\tlet path = this._buildPath.apply(this, arguments)\n\t\t\tif (path.charAt([path.length - 1]) === '/') {\n\t\t\t\tpath = path.substr(0, path.length - 1)\n\t\t\t}\n\t\t\tif (path.charAt(0) === '/') {\n\t\t\t\tpath = path.substr(1)\n\t\t\t}\n\t\t\treturn this._baseUrl + '/' + path\n\t\t},\n\n\t\t/**\n\t\t * Append the path to the root and also encode path\n\t\t * sections\n\t\t *\n\t\t * @param {...String} path sections\n\t\t *\n\t\t * @returns {String} joined path, any leading or trailing slash\n\t\t * will be kept\n\t\t */\n\t\t_buildPath: function() {\n\t\t\tlet path = OC.joinPaths.apply(this, arguments)\n\t\t\tconst sections = path.split('/')\n\t\t\tlet i\n\t\t\tfor (i = 0; i < sections.length; i++) {\n\t\t\t\tsections[i] = encodeURIComponent(sections[i])\n\t\t\t}\n\t\t\tpath = sections.join('/')\n\t\t\treturn path\n\t\t},\n\n\t\t/**\n\t\t * Parse headers string into a map\n\t\t *\n\t\t * @param {string} headersString headers list as string\n\t\t *\n\t\t * @returns {Object.<String,Array>} map of header name to header contents\n\t\t */\n\t\t_parseHeaders: function(headersString) {\n\t\t\tconst headerRows = headersString.split('\\n')\n\t\t\tconst headers = {}\n\t\t\tfor (let i = 0; i < headerRows.length; i++) {\n\t\t\t\tconst sepPos = headerRows[i].indexOf(':')\n\t\t\t\tif (sepPos < 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tconst headerName = headerRows[i].substr(0, sepPos)\n\t\t\t\tconst headerValue = headerRows[i].substr(sepPos + 2)\n\n\t\t\t\tif (!headers[headerName]) {\n\t\t\t\t\t// make it an array\n\t\t\t\t\theaders[headerName] = []\n\t\t\t\t}\n\n\t\t\t\theaders[headerName].push(headerValue)\n\t\t\t}\n\t\t\treturn headers\n\t\t},\n\n\t\t/**\n\t\t * Parses the etag response which is in double quotes.\n\t\t *\n\t\t * @param {string} etag etag value in double quotes\n\t\t *\n\t\t * @returns {string} etag without double quotes\n\t\t */\n\t\t_parseEtag: function(etag) {\n\t\t\tif (etag.charAt(0) === '\"') {\n\t\t\t\treturn etag.split('\"')[1]\n\t\t\t}\n\t\t\treturn etag\n\t\t},\n\n\t\t/**\n\t\t * Parse Webdav result\n\t\t *\n\t\t * @param {Object} response XML object\n\t\t *\n\t\t * @returns {Array.<FileInfo>} array of file info\n\t\t */\n\t\t_parseFileInfo: function(response) {\n\t\t\tlet path = decodeURIComponent(response.href)\n\t\t\tif (path.substr(0, this._root.length) === this._root) {\n\t\t\t\tpath = path.substr(this._root.length)\n\t\t\t}\n\n\t\t\tif (path.charAt(path.length - 1) === '/') {\n\t\t\t\tpath = path.substr(0, path.length - 1)\n\t\t\t}\n\n\t\t\tif (response.propStat.length === 0 || response.propStat[0].status !== 'HTTP/1.1 200 OK') {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tconst props = response.propStat[0].properties\n\n\t\t\tconst data = {\n\t\t\t\tid: props[Client.PROPERTY_INTERNAL_FILEID],\n\t\t\t\tpath: OC.dirname(path) || '/',\n\t\t\t\tname: OC.basename(path),\n\t\t\t\tmtime: (new Date(props[Client.PROPERTY_GETLASTMODIFIED])).getTime(),\n\t\t\t}\n\n\t\t\tconst etagProp = props[Client.PROPERTY_GETETAG]\n\t\t\tif (!_.isUndefined(etagProp)) {\n\t\t\t\tdata.etag = this._parseEtag(etagProp)\n\t\t\t}\n\n\t\t\tlet sizeProp = props[Client.PROPERTY_GETCONTENTLENGTH]\n\t\t\tif (!_.isUndefined(sizeProp)) {\n\t\t\t\tdata.size = parseInt(sizeProp, 10)\n\t\t\t}\n\n\t\t\tsizeProp = props[Client.PROPERTY_SIZE]\n\t\t\tif (!_.isUndefined(sizeProp)) {\n\t\t\t\tdata.size = parseInt(sizeProp, 10)\n\t\t\t}\n\n\t\t\tconst hasPreviewProp = props['{' + Client.NS_NEXTCLOUD + '}has-preview']\n\t\t\tif (!_.isUndefined(hasPreviewProp)) {\n\t\t\t\tdata.hasPreview = hasPreviewProp === 'true'\n\t\t\t} else {\n\t\t\t\tdata.hasPreview = true\n\t\t\t}\n\n\t\t\tconst isEncryptedProp = props['{' + Client.NS_NEXTCLOUD + '}is-encrypted']\n\t\t\tif (!_.isUndefined(isEncryptedProp)) {\n\t\t\t\tdata.isEncrypted = isEncryptedProp === '1'\n\t\t\t} else {\n\t\t\t\tdata.isEncrypted = false\n\t\t\t}\n\n\t\t\tconst isFavouritedProp = props['{' + Client.NS_OWNCLOUD + '}favorite']\n\t\t\tif (!_.isUndefined(isFavouritedProp)) {\n\t\t\t\tdata.isFavourited = isFavouritedProp === '1'\n\t\t\t} else {\n\t\t\t\tdata.isFavourited = false\n\t\t\t}\n\n\t\t\tconst contentType = props[Client.PROPERTY_GETCONTENTTYPE]\n\t\t\tif (!_.isUndefined(contentType)) {\n\t\t\t\tdata.mimetype = contentType\n\t\t\t}\n\n\t\t\tconst resType = props[Client.PROPERTY_RESOURCETYPE]\n\t\t\tif (!data.mimetype && resType) {\n\t\t\t\tconst xmlvalue = resType[0]\n\t\t\t\tif (xmlvalue.namespaceURI === Client.NS_DAV && xmlvalue.nodeName.split(':')[1] === 'collection') {\n\t\t\t\t\tdata.mimetype = 'httpd/unix-directory'\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdata.permissions = OC.PERMISSION_NONE\n\t\t\tconst permissionProp = props[Client.PROPERTY_PERMISSIONS]\n\t\t\tif (!_.isUndefined(permissionProp)) {\n\t\t\t\tconst permString = permissionProp || ''\n\t\t\t\tdata.mountType = null\n\t\t\t\tfor (let i = 0; i < permString.length; i++) {\n\t\t\t\t\tconst c = permString.charAt(i)\n\t\t\t\t\tswitch (c) {\n\t\t\t\t\t// FIXME: twisted permissions\n\t\t\t\t\tcase 'C':\n\t\t\t\t\tcase 'K':\n\t\t\t\t\t\tdata.permissions |= OC.PERMISSION_CREATE\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'G':\n\t\t\t\t\t\tdata.permissions |= OC.PERMISSION_READ\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'W':\n\t\t\t\t\tcase 'N':\n\t\t\t\t\tcase 'V':\n\t\t\t\t\t\tdata.permissions |= OC.PERMISSION_UPDATE\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'D':\n\t\t\t\t\t\tdata.permissions |= OC.PERMISSION_DELETE\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'R':\n\t\t\t\t\t\tdata.permissions |= OC.PERMISSION_SHARE\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'M':\n\t\t\t\t\t\tif (!data.mountType) {\n\t\t\t\t\t\t\t// TODO: how to identify external-root ?\n\t\t\t\t\t\t\tdata.mountType = 'external'\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'S':\n\t\t\t\t\t\t// TODO: how to identify shared-root ?\n\t\t\t\t\t\tdata.mountType = 'shared'\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst previewAccessToken = props[Client.PROPERTY_PREVIEW_ACCESS_TOKEN]\n\t\t\tif (!_.isUndefined(previewAccessToken)) {\n\t\t\t\tdata.previewAccessToken = previewAccessToken\n\t\t\t\t// Dispatch the preview token to the service worker.\n\t\t\t\tnavigator.serviceWorker?.controller?.postMessage({\n\t\t\t\t\ttype: 'NEW_THUMBNAIL_ACCESS_TOKEN',\n\t\t\t\t\tfileId: data.id,\n\t\t\t\t\ttoken: previewAccessToken,\n\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst sharePermissionsProp = props[Client.PROPERTY_SHARE_PERMISSIONS]\n\t\t\tif (!_.isUndefined(sharePermissionsProp)) {\n\t\t\t\tdata.sharePermissions = parseInt(sharePermissionsProp)\n\t\t\t}\n\n\t\t\tconst mounTypeProp = props['{' + Client.NS_NEXTCLOUD + '}mount-type']\n\t\t\tif (!_.isUndefined(mounTypeProp)) {\n\t\t\t\tdata.mountType = mounTypeProp\n\t\t\t}\n\n\t\t\tconst quotaAvailableBytes = props['{' + Client.NS_DAV + '}quota-available-bytes']\n\t\t\tif (!_.isUndefined(quotaAvailableBytes)) {\n\t\t\t\tdata.quotaAvailableBytes = quotaAvailableBytes\n\t\t\t}\n\n\t\t\t// extend the parsed data using the custom parsers\n\t\t\t_.each(this._fileInfoParsers, function(parserFunction) {\n\t\t\t\t_.extend(data, parserFunction(response, data) || {})\n\t\t\t})\n\n\t\t\treturn new FileInfo(data)\n\t\t},\n\n\t\t/**\n\t\t * Parse Webdav multistatus\n\t\t *\n\t\t * @param {Array} responses\n\t\t */\n\t\t_parseResult: function(responses) {\n\t\t\tconst self = this\n\t\t\treturn _.map(responses, function(response) {\n\t\t\t\treturn self._parseFileInfo(response)\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Returns whether the given status code means success\n\t\t *\n\t\t * @param {number} status status code\n\t\t *\n\t\t * @returns true if status code is between 200 and 299 included\n\t\t */\n\t\t_isSuccessStatus: function(status) {\n\t\t\treturn status >= 200 && status <= 299\n\t\t},\n\n\t\t/**\n\t\t * Parse the Sabre exception out of the given response, if any\n\t\t *\n\t\t * @param {Object} response object\n\t\t * @returns {Object} array of parsed message and exception (only the first one)\n\t\t */\n\t\t_getSabreException: function(response) {\n\t\t\tconst result = {}\n\t\t\tconst xml = response.xhr.responseXML\n\t\t\tif (xml === null) {\n\t\t\t\treturn result\n\t\t\t}\n\t\t\tconst messages = xml.getElementsByTagNameNS('http://sabredav.org/ns', 'message')\n\t\t\tconst exceptions = xml.getElementsByTagNameNS('http://sabredav.org/ns', 'exception')\n\t\t\tif (messages.length) {\n\t\t\t\tresult.message = messages[0].textContent\n\t\t\t}\n\t\t\tif (exceptions.length) {\n\t\t\t\tresult.exception = exceptions[0].textContent\n\t\t\t}\n\t\t\treturn result\n\t\t},\n\n\t\t/**\n\t\t * Returns the default PROPFIND properties to use during a call.\n\t\t *\n\t\t * @returns {Array.<Object>} array of properties\n\t\t */\n\t\tgetPropfindProperties: function() {\n\t\t\tif (!this._propfindProperties) {\n\t\t\t\tthis._propfindProperties = _.map(Client._PROPFIND_PROPERTIES, function(propDef) {\n\t\t\t\t\treturn '{' + propDef[0] + '}' + propDef[1]\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn this._propfindProperties\n\t\t},\n\n\t\t/**\n\t\t * Lists the contents of a directory\n\t\t *\n\t\t * @param {String} path path to retrieve\n\t\t * @param {Object} [options] options\n\t\t * @param {boolean} [options.includeParent=false] set to true to keep\n\t\t * the parent folder in the result list\n\t\t * @param {Array} [options.properties] list of Webdav properties to retrieve\n\t\t *\n\t\t * @returns {Promise} promise\n\t\t */\n\t\tgetFolderContents: function(path, options) {\n\t\t\tif (!path) {\n\t\t\t\tpath = ''\n\t\t\t}\n\t\t\toptions = options || {}\n\t\t\tconst self = this\n\t\t\tconst deferred = $.Deferred()\n\t\t\tconst promise = deferred.promise()\n\t\t\tlet properties\n\t\t\tif (_.isUndefined(options.properties)) {\n\t\t\t\tproperties = this.getPropfindProperties()\n\t\t\t} else {\n\t\t\t\tproperties = options.properties\n\t\t\t}\n\n\t\t\tthis._client.propFind(\n\t\t\t\tthis._buildUrl(path),\n\t\t\t\tproperties,\n\t\t\t\t1\n\t\t\t).then(function(result) {\n\t\t\t\tif (self._isSuccessStatus(result.status)) {\n\t\t\t\t\tconst results = self._parseResult(result.body)\n\t\t\t\t\tif (!options || !options.includeParent) {\n\t\t\t\t\t\t// remove root dir, the first entry\n\t\t\t\t\t\tresults.shift()\n\t\t\t\t\t}\n\t\t\t\t\tdeferred.resolve(result.status, results)\n\t\t\t\t} else {\n\t\t\t\t\tresult = _.extend(result, self._getSabreException(result))\n\t\t\t\t\tdeferred.reject(result.status, result)\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn promise\n\t\t},\n\n\t\t/**\n\t\t * Fetches a flat list of files filtered by a given filter criteria.\n\t\t * (currently system tags and circles are supported)\n\t\t *\n\t\t * @param {Object} filter filter criteria\n\t\t * @param {Object} [filter.systemTagIds] list of system tag ids to filter by\n\t\t * @param {boolean} [filter.favorite] set it to filter by favorites\n\t\t * @param {Object} [options] options\n\t\t * @param {Array} [options.properties] list of Webdav properties to retrieve\n\t\t *\n\t\t * @returns {Promise} promise\n\t\t */\n\t\tgetFilteredFiles: function(filter, options) {\n\t\t\toptions = options || {}\n\t\t\tconst self = this\n\t\t\tconst deferred = $.Deferred()\n\t\t\tconst promise = deferred.promise()\n\t\t\tlet properties\n\t\t\tif (_.isUndefined(options.properties)) {\n\t\t\t\tproperties = this.getPropfindProperties()\n\t\t\t} else {\n\t\t\t\tproperties = options.properties\n\t\t\t}\n\n\t\t\tif (!filter\n\t\t\t\t|| (!filter.systemTagIds && _.isUndefined(filter.favorite) && !filter.circlesIds)) {\n\t\t\t\tthrow 'Missing filter argument'\n\t\t\t}\n\n\t\t\t// root element with namespaces\n\t\t\tlet body = '<oc:filter-files '\n\t\t\tlet namespace\n\t\t\tfor (namespace in this._client.xmlNamespaces) {\n\t\t\t\tbody += ' xmlns:' + this._client.xmlNamespaces[namespace] + '=\"' + namespace + '\"'\n\t\t\t}\n\t\t\tbody += '>\\n'\n\n\t\t\t// properties query\n\t\t\tbody += ' <' + this._client.xmlNamespaces['DAV:'] + ':prop>\\n'\n\t\t\t_.each(properties, function(prop) {\n\t\t\t\tconst property = self._client.parseClarkNotation(prop)\n\t\t\t\tbody += ' <' + self._client.xmlNamespaces[property.namespace] + ':' + property.name + ' />\\n'\n\t\t\t})\n\n\t\t\tbody += ' </' + this._client.xmlNamespaces['DAV:'] + ':prop>\\n'\n\n\t\t\t// rules block\n\t\t\tbody +=\t' <oc:filter-rules>\\n'\n\t\t\t_.each(filter.systemTagIds, function(systemTagIds) {\n\t\t\t\tbody += ' <oc:systemtag>' + escapeHTML(systemTagIds) + '</oc:systemtag>\\n'\n\t\t\t})\n\t\t\t_.each(filter.circlesIds, function(circlesIds) {\n\t\t\t\tbody += ' <oc:circle>' + escapeHTML(circlesIds) + '</oc:circle>\\n'\n\t\t\t})\n\t\t\tif (filter.favorite) {\n\t\t\t\tbody += ' <oc:favorite>' + (filter.favorite ? '1' : '0') + '</oc:favorite>\\n'\n\t\t\t}\n\t\t\tbody += ' </oc:filter-rules>\\n'\n\n\t\t\t// end of root\n\t\t\tbody += '</oc:filter-files>\\n'\n\n\t\t\tthis._client.request(\n\t\t\t\t'REPORT',\n\t\t\t\tthis._buildUrl(),\n\t\t\t\t{},\n\t\t\t\tbody\n\t\t\t).then(function(result) {\n\t\t\t\tif (self._isSuccessStatus(result.status)) {\n\t\t\t\t\tconst results = self._parseResult(result.body)\n\t\t\t\t\tdeferred.resolve(result.status, results)\n\t\t\t\t} else {\n\t\t\t\t\tresult = _.extend(result, self._getSabreException(result))\n\t\t\t\t\tdeferred.reject(result.status, result)\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn promise\n\t\t},\n\n\t\t/**\n\t\t * Returns the file info of a given path.\n\t\t *\n\t\t * @param {String} path path\n\t\t * @param {Array} [options.properties] list of Webdav properties to retrieve\n\t\t *\n\t\t * @returns {Promise} promise\n\t\t */\n\t\tgetFileInfo: function(path, options) {\n\t\t\tif (!path) {\n\t\t\t\tpath = ''\n\t\t\t}\n\t\t\toptions = options || {}\n\t\t\tconst self = this\n\t\t\tconst deferred = $.Deferred()\n\t\t\tconst promise = deferred.promise()\n\t\t\tlet properties\n\t\t\tif (_.isUndefined(options.properties)) {\n\t\t\t\tproperties = this.getPropfindProperties()\n\t\t\t} else {\n\t\t\t\tproperties = options.properties\n\t\t\t}\n\n\t\t\t// TODO: headers\n\t\t\tthis._client.propFind(\n\t\t\t\tthis._buildUrl(path),\n\t\t\t\tproperties,\n\t\t\t\t0\n\t\t\t).then(\n\t\t\t\tfunction(result) {\n\t\t\t\t\tif (self._isSuccessStatus(result.status)) {\n\t\t\t\t\t\tdeferred.resolve(result.status, self._parseResult([result.body])[0])\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = _.extend(result, self._getSabreException(result))\n\t\t\t\t\t\tdeferred.reject(result.status, result)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\treturn promise\n\t\t},\n\n\t\t/**\n\t\t * Returns the contents of the given file.\n\t\t *\n\t\t * @param {String} path path to file\n\t\t *\n\t\t * @returns {Promise}\n\t\t */\n\t\tgetFileContents: function(path) {\n\t\t\tif (!path) {\n\t\t\t\tthrow 'Missing argument \"path\"'\n\t\t\t}\n\t\t\tconst self = this\n\t\t\tconst deferred = $.Deferred()\n\t\t\tconst promise = deferred.promise()\n\n\t\t\tthis._client.request(\n\t\t\t\t'GET',\n\t\t\t\tthis._buildUrl(path)\n\t\t\t).then(\n\t\t\t\tfunction(result) {\n\t\t\t\t\tif (self._isSuccessStatus(result.status)) {\n\t\t\t\t\t\tdeferred.resolve(result.status, result.body)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = _.extend(result, self._getSabreException(result))\n\t\t\t\t\t\tdeferred.reject(result.status, result)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\treturn promise\n\t\t},\n\n\t\t/**\n\t\t * Puts the given data into the given file.\n\t\t *\n\t\t * @param {String} path path to file\n\t\t * @param {String} body file body\n\t\t * @param {Object} [options]\n\t\t * @param {String} [options.contentType='text/plain'] content type\n\t\t * @param {boolean} [options.overwrite=true] whether to overwrite an existing file\n\t\t *\n\t\t * @returns {Promise}\n\t\t */\n\t\tputFileContents: function(path, body, options) {\n\t\t\tif (!path) {\n\t\t\t\tthrow 'Missing argument \"path\"'\n\t\t\t}\n\t\t\tconst self = this\n\t\t\tconst deferred = $.Deferred()\n\t\t\tconst promise = deferred.promise()\n\t\t\toptions = options || {}\n\t\t\tconst headers = {}\n\t\t\tlet contentType = 'text/plain;charset=utf-8'\n\t\t\tif (options.contentType) {\n\t\t\t\tcontentType = options.contentType\n\t\t\t}\n\n\t\t\theaders['Content-Type'] = contentType\n\n\t\t\tif (_.isUndefined(options.overwrite) || options.overwrite) {\n\t\t\t\t// will trigger 412 precondition failed if a file already exists\n\t\t\t\theaders['If-None-Match'] = '*'\n\t\t\t}\n\n\t\t\tthis._client.request(\n\t\t\t\t'PUT',\n\t\t\t\tthis._buildUrl(path),\n\t\t\t\theaders,\n\t\t\t\tbody || ''\n\t\t\t).then(\n\t\t\t\tfunction(result) {\n\t\t\t\t\tif (self._isSuccessStatus(result.status)) {\n\t\t\t\t\t\tdeferred.resolve(result.status)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = _.extend(result, self._getSabreException(result))\n\t\t\t\t\t\tdeferred.reject(result.status, result)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\treturn promise\n\t\t},\n\n\t\t_simpleCall: function(method, path) {\n\t\t\tif (!path) {\n\t\t\t\tthrow 'Missing argument \"path\"'\n\t\t\t}\n\n\t\t\tconst self = this\n\t\t\tconst deferred = $.Deferred()\n\t\t\tconst promise = deferred.promise()\n\n\t\t\tthis._client.request(\n\t\t\t\tmethod,\n\t\t\t\tthis._buildUrl(path)\n\t\t\t).then(\n\t\t\t\tfunction(result) {\n\t\t\t\t\tif (self._isSuccessStatus(result.status)) {\n\t\t\t\t\t\tdeferred.resolve(result.status)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = _.extend(result, self._getSabreException(result))\n\t\t\t\t\t\tdeferred.reject(result.status, result)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\treturn promise\n\t\t},\n\n\t\t/**\n\t\t * Creates a directory\n\t\t *\n\t\t * @param {String} path path to create\n\t\t *\n\t\t * @returns {Promise}\n\t\t */\n\t\tcreateDirectory: function(path) {\n\t\t\treturn this._simpleCall('MKCOL', path)\n\t\t},\n\n\t\t/**\n\t\t * Deletes a file or directory\n\t\t *\n\t\t * @param {String} path path to delete\n\t\t *\n\t\t * @returns {Promise}\n\t\t */\n\t\tremove: function(path) {\n\t\t\treturn this._simpleCall('DELETE', path)\n\t\t},\n\n\t\t/**\n\t\t * Moves path to another path\n\t\t *\n\t\t * @param {String} path path to move\n\t\t * @param {String} destinationPath destination path\n\t\t * @param {boolean} [allowOverwrite=false] true to allow overwriting,\n\t\t * false otherwise\n\t\t * @param {Object} [headers=null] additional headers\n\t\t *\n\t\t * @returns {Promise} promise\n\t\t */\n\t\tmove: function(path, destinationPath, allowOverwrite, headers) {\n\t\t\tif (!path) {\n\t\t\t\tthrow 'Missing argument \"path\"'\n\t\t\t}\n\t\t\tif (!destinationPath) {\n\t\t\t\tthrow 'Missing argument \"destinationPath\"'\n\t\t\t}\n\n\t\t\tconst self = this\n\t\t\tconst deferred = $.Deferred()\n\t\t\tconst promise = deferred.promise()\n\t\t\theaders = _.extend({}, headers, {\n\t\t\t\t'Destination': this._buildUrl(destinationPath),\n\t\t\t})\n\n\t\t\tif (!allowOverwrite) {\n\t\t\t\theaders.Overwrite = 'F'\n\t\t\t}\n\n\t\t\tthis._client.request(\n\t\t\t\t'MOVE',\n\t\t\t\tthis._buildUrl(path),\n\t\t\t\theaders\n\t\t\t).then(\n\t\t\t\tfunction(result) {\n\t\t\t\t\tif (self._isSuccessStatus(result.status)) {\n\t\t\t\t\t\tdeferred.resolve(result.status)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = _.extend(result, self._getSabreException(result))\n\t\t\t\t\t\tdeferred.reject(result.status, result)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\treturn promise\n\t\t},\n\n\t\t/**\n\t\t * Copies path to another path\n\t\t *\n\t\t * @param {String} path path to copy\n\t\t * @param {String} destinationPath destination path\n\t\t * @param {boolean} [allowOverwrite=false] true to allow overwriting,\n\t\t * false otherwise\n\t\t *\n\t\t * @returns {Promise} promise\n\t\t */\n\t\tcopy: function(path, destinationPath, allowOverwrite) {\n\t\t\tif (!path) {\n\t\t\t\tthrow 'Missing argument \"path\"'\n\t\t\t}\n\t\t\tif (!destinationPath) {\n\t\t\t\tthrow 'Missing argument \"destinationPath\"'\n\t\t\t}\n\n\t\t\tconst self = this\n\t\t\tconst deferred = $.Deferred()\n\t\t\tconst promise = deferred.promise()\n\t\t\tconst headers = {\n\t\t\t\t'Destination': this._buildUrl(destinationPath),\n\t\t\t}\n\n\t\t\tif (!allowOverwrite) {\n\t\t\t\theaders.Overwrite = 'F'\n\t\t\t}\n\n\t\t\tthis._client.request(\n\t\t\t\t'COPY',\n\t\t\t\tthis._buildUrl(path),\n\t\t\t\theaders\n\t\t\t).then(\n\t\t\t\tfunction(response) {\n\t\t\t\t\tif (self._isSuccessStatus(response.status)) {\n\t\t\t\t\t\tdeferred.resolve(response.status)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdeferred.reject(response.status)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\treturn promise\n\t\t},\n\n\t\t/**\n\t\t * Add a file info parser function\n\t\t *\n\t\t * @param {OC.Files.Client~parseFileInfo} parserFunction\n\t\t */\n\t\taddFileInfoParser: function(parserFunction) {\n\t\t\tthis._fileInfoParsers.push(parserFunction)\n\t\t},\n\n\t\t/**\n\t\t * Returns the dav.Client instance used internally\n\t\t *\n\t\t * @since 11.0.0\n\t\t * @returns {dav.Client}\n\t\t */\n\t\tgetClient: function() {\n\t\t\treturn this._client\n\t\t},\n\n\t\t/**\n\t\t * Returns the user name\n\t\t *\n\t\t * @since 11.0.0\n\t\t * @returns {String} userName\n\t\t */\n\t\tgetUserName: function() {\n\t\t\treturn this._client.userName\n\t\t},\n\n\t\t/**\n\t\t * Returns the password\n\t\t *\n\t\t * @since 11.0.0\n\t\t * @returns {String} password\n\t\t */\n\t\tgetPassword: function() {\n\t\t\treturn this._client.password\n\t\t},\n\n\t\t/**\n\t\t * Returns the base URL\n\t\t *\n\t\t * @since 11.0.0\n\t\t * @returns {String} base URL\n\t\t */\n\t\tgetBaseUrl: function() {\n\t\t\treturn this._client.baseUrl\n\t\t},\n\n\t\t/**\n\t\t * Returns the host\n\t\t *\n\t\t * @since 13.0.0\n\t\t * @returns {String} base URL\n\t\t */\n\t\tgetHost: function() {\n\t\t\treturn this._host\n\t\t},\n\t}\n\n\t/**\n\t * File info parser function\n\t *\n\t * This function receives a list of Webdav properties as input and\n\t * should return a hash array of parsed properties, if applicable.\n\t *\n\t * @callback OC.Files.Client~parseFileInfo\n\t * @param {Object} XML Webdav properties\n * @return {Array} array of parsed property values\n\t */\n\n\tif (!OC.Files) {\n\t\t/**\n\t\t * @namespace OC.Files\n\t\t *\n\t\t * @since 8.2\n\t\t */\n\t\tOC.Files = {}\n\t}\n\n\t/**\n\t * Returns the default instance of the files client\n\t *\n\t * @returns {OC.Files.Client} default client\n\t *\n\t * @since 8.2\n\t */\n\tOC.Files.getClient = function() {\n\t\tif (OC.Files._defaultClient) {\n\t\t\treturn OC.Files._defaultClient\n\t\t}\n\n\t\tconst client = new OC.Files.Client({\n\t\t\thost: OC.getHost(),\n\t\t\tport: OC.getPort(),\n\t\t\troot: OC.linkToRemoteBase('dav') + '/files/' + OC.getCurrentUser().uid,\n\t\t\tuseHTTPS: OC.getProtocol() === 'https',\n\t\t})\n\t\tOC.Files._defaultClient = client\n\t\treturn client\n\t}\n\n\tOC.Files.Client = Client\n})(OC, OC.Files.FileInfo)\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","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 578;","// no baseURI\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\t578: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// 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, [874], function() { return __webpack_require__(7913); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","OC","FileInfo","Client","options","this","_root","root","charAt","length","substr","url","PROTOCOL_HTTP","useHTTPS","PROTOCOL_HTTPS","host","_host","_defaultHeaders","defaultHeaders","requestToken","_baseUrl","clientOptions","baseUrl","xmlNamespaces","userName","password","_client","dav","xhrProvider","_","bind","_xhrProvider","_fileInfoParsers","NS_OWNCLOUD","NS_NEXTCLOUD","NS_DAV","NS_OCS","PROPERTY_GETLASTMODIFIED","PROPERTY_GETETAG","PROPERTY_GETCONTENTTYPE","PROPERTY_RESOURCETYPE","PROPERTY_INTERNAL_FILEID","PROPERTY_PERMISSIONS","PROPERTY_SIZE","PROPERTY_GETCONTENTLENGTH","PROPERTY_ISENCRYPTED","PROPERTY_SHARE_PERMISSIONS","PROPERTY_QUOTA_AVAILABLE_BYTES","PROPERTY_PREVIEW_ACCESS_TOKEN","_PROPFIND_PROPERTIES","prototype","headers","xhr","XMLHttpRequest","oldOpen","open","result","apply","arguments","each","value","key","setRequestHeader","registerXHRForErrorProcessing","_buildUrl","path","_buildPath","i","joinPaths","sections","split","encodeURIComponent","join","_parseHeaders","headersString","headerRows","sepPos","indexOf","headerName","headerValue","push","_parseEtag","etag","_parseFileInfo","response","decodeURIComponent","href","propStat","status","props","properties","data","id","dirname","name","basename","mtime","Date","getTime","etagProp","isUndefined","sizeProp","size","parseInt","hasPreviewProp","hasPreview","isEncryptedProp","isEncrypted","isFavouritedProp","isFavourited","contentType","mimetype","resType","xmlvalue","namespaceURI","nodeName","permissions","PERMISSION_NONE","permissionProp","permString","mountType","PERMISSION_CREATE","PERMISSION_READ","PERMISSION_UPDATE","PERMISSION_DELETE","PERMISSION_SHARE","previewAccessToken","navigator","serviceWorker","controller","postMessage","type","fileId","token","sharePermissionsProp","sharePermissions","mounTypeProp","quotaAvailableBytes","parserFunction","extend","_parseResult","responses","self","map","_isSuccessStatus","_getSabreException","xml","responseXML","messages","getElementsByTagNameNS","exceptions","message","textContent","exception","getPropfindProperties","_propfindProperties","propDef","getFolderContents","$","Deferred","promise","propFind","then","results","body","includeParent","shift","resolve","reject","getFilteredFiles","filter","systemTagIds","favorite","circlesIds","namespace","prop","property","parseClarkNotation","escapeHTML","request","getFileInfo","getFileContents","putFileContents","overwrite","_simpleCall","method","createDirectory","remove","move","destinationPath","allowOverwrite","Overwrite","copy","addFileInfoParser","getClient","getUserName","getPassword","getBaseUrl","getHost","Files","_defaultClient","client","port","getPort","linkToRemoteBase","getCurrentUser","uid","getProtocol","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","loaded","__webpack_modules__","call","m","amdD","Error","amdO","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
diff --git a/dist/files-sidebar.js b/dist/files-sidebar.js
index da19d047426..1590985db64 100644
--- a/dist/files-sidebar.js
+++ b/dist/files-sidebar.js
@@ -1,3 +1,3 @@
/*! For license information please see files-sidebar.js.LICENSE.txt */
-!function(){var n,e={93365:function(n,e,t){var i={"./af":36026,"./af.js":36026,"./ar":28093,"./ar-dz":41943,"./ar-dz.js":41943,"./ar-kw":23969,"./ar-kw.js":23969,"./ar-ly":40594,"./ar-ly.js":40594,"./ar-ma":18369,"./ar-ma.js":18369,"./ar-sa":32579,"./ar-sa.js":32579,"./ar-tn":76442,"./ar-tn.js":76442,"./ar.js":28093,"./az":86425,"./az.js":86425,"./be":22004,"./be.js":22004,"./bg":42982,"./bg.js":42982,"./bm":21067,"./bm.js":21067,"./bn":8366,"./bn.js":8366,"./bo":95040,"./bo.js":95040,"./br":521,"./br.js":521,"./bs":83242,"./bs.js":83242,"./ca":73046,"./ca.js":73046,"./cs":25794,"./cs.js":25794,"./cv":28231,"./cv.js":28231,"./cy":10927,"./cy.js":10927,"./da":42832,"./da.js":42832,"./de":29415,"./de-at":3331,"./de-at.js":3331,"./de-ch":45524,"./de-ch.js":45524,"./de.js":29415,"./dv":44700,"./dv.js":44700,"./el":88752,"./el.js":88752,"./en-SG":16706,"./en-SG.js":16706,"./en-au":90444,"./en-au.js":90444,"./en-ca":65959,"./en-ca.js":65959,"./en-gb":62762,"./en-gb.js":62762,"./en-ie":40909,"./en-ie.js":40909,"./en-il":79909,"./en-il.js":79909,"./en-nz":75200,"./en-nz.js":75200,"./eo":27447,"./eo.js":27447,"./es":86756,"./es-do":47049,"./es-do.js":47049,"./es-us":57133,"./es-us.js":57133,"./es.js":86756,"./et":72182,"./et.js":72182,"./eu":14419,"./eu.js":14419,"./fa":2916,"./fa.js":2916,"./fi":49964,"./fi.js":49964,"./fo":26094,"./fo.js":26094,"./fr":35833,"./fr-ca":56994,"./fr-ca.js":56994,"./fr-ch":2740,"./fr-ch.js":2740,"./fr.js":35833,"./fy":69542,"./fy.js":69542,"./ga":93264,"./ga.js":93264,"./gd":77457,"./gd.js":77457,"./gl":83043,"./gl.js":83043,"./gom-latn":28379,"./gom-latn.js":28379,"./gu":406,"./gu.js":406,"./he":73219,"./he.js":73219,"./hi":99834,"./hi.js":99834,"./hr":28754,"./hr.js":28754,"./hu":93945,"./hu.js":93945,"./hy-am":81319,"./hy-am.js":81319,"./id":24875,"./id.js":24875,"./is":23724,"./is.js":23724,"./it":79906,"./it-ch":34303,"./it-ch.js":34303,"./it.js":79906,"./ja":77105,"./ja.js":77105,"./jv":15026,"./jv.js":15026,"./ka":67416,"./ka.js":67416,"./kk":79734,"./kk.js":79734,"./km":60757,"./km.js":60757,"./kn":58369,"./kn.js":58369,"./ko":77687,"./ko.js":77687,"./ku":95544,"./ku.js":95544,"./ky":85431,"./ky.js":85431,"./lb":13613,"./lb.js":13613,"./lo":34252,"./lo.js":34252,"./lt":84619,"./lt.js":84619,"./lv":93760,"./lv.js":93760,"./me":93393,"./me.js":93393,"./mi":12369,"./mi.js":12369,"./mk":48664,"./mk.js":48664,"./ml":23099,"./ml.js":23099,"./mn":98539,"./mn.js":98539,"./mr":778,"./mr.js":778,"./ms":39970,"./ms-my":82625,"./ms-my.js":82625,"./ms.js":39970,"./mt":15714,"./mt.js":15714,"./my":53055,"./my.js":53055,"./nb":73945,"./nb.js":73945,"./ne":63645,"./ne.js":63645,"./nl":4829,"./nl-be":12823,"./nl-be.js":12823,"./nl.js":4829,"./nn":23756,"./nn.js":23756,"./pa-in":97877,"./pa-in.js":97877,"./pl":53066,"./pl.js":53066,"./pt":28677,"./pt-br":81592,"./pt-br.js":81592,"./pt.js":28677,"./ro":32722,"./ro.js":32722,"./ru":59138,"./ru.js":59138,"./sd":32568,"./sd.js":32568,"./se":49753,"./se.js":49753,"./si":58024,"./si.js":58024,"./sk":31058,"./sk.js":31058,"./sl":43452,"./sl.js":43452,"./sq":2795,"./sq.js":2795,"./sr":26976,"./sr-cyrl":38819,"./sr-cyrl.js":38819,"./sr.js":26976,"./ss":7467,"./ss.js":7467,"./sv":42787,"./sv.js":42787,"./sw":80298,"./sw.js":80298,"./ta":57532,"./ta.js":57532,"./te":76076,"./te.js":76076,"./tet":40452,"./tet.js":40452,"./tg":64794,"./tg.js":64794,"./th":48245,"./th.js":48245,"./tl-ph":36056,"./tl-ph.js":36056,"./tlh":15249,"./tlh.js":15249,"./tr":22053,"./tr.js":22053,"./tzl":39871,"./tzl.js":39871,"./tzm":39574,"./tzm-latn":19210,"./tzm-latn.js":19210,"./tzm.js":39574,"./ug-cn":91532,"./ug-cn.js":91532,"./uk":11432,"./uk.js":11432,"./ur":88523,"./ur.js":88523,"./uz":54958,"./uz-latn":68735,"./uz-latn.js":68735,"./uz.js":54958,"./vi":83398,"./vi.js":83398,"./x-pseudo":56665,"./x-pseudo.js":56665,"./yo":11642,"./yo.js":11642,"./zh-cn":5462,"./zh-cn.js":5462,"./zh-hk":92530,"./zh-hk.js":92530,"./zh-tw":97333,"./zh-tw.js":97333};function r(n){var e=o(n);return t(e)}function o(n){if(!t.o(i,n)){var e=new Error("Cannot find module '"+n+"'");throw e.code="MODULE_NOT_FOUND",e}return i[n]}r.keys=function(){return Object.keys(i)},r.resolve=o,n.exports=r,r.id=93365},23056:function(n,e,i){"use strict";var r=i(20144),o=i(9944),s=i(76632),a=i(19755),l=i.n(a),u=i(4820),c=i(74854),d=i(80351),f=i.n(d),p=i(41922),h=i(27801),m=i.n(h),b=i(56286),v=i.n(b),g=i(97e3),y=i.n(g);function j(n,e,t,i,r,o,s){try{var a=n[o](s),l=a.value}catch(n){return void t(n)}a.done?e(l):Promise.resolve(l).then(i,r)}function w(n){return function(){var e=this,t=arguments;return new Promise((function(i,r){var o=n.apply(e,t);function s(n){j(o,i,r,s,a,"next",n)}function a(n){j(o,i,r,s,a,"throw",n)}s(void 0)}))}}function A(n){return O.apply(this,arguments)}function O(){return(O=w(regeneratorRuntime.mark((function n(e){var t,i,r;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,(0,u.default)({method:"PROPFIND",url:e,data:'<?xml version="1.0"?>\n\t\t\t<d:propfind xmlns:d="DAV:"\n\t\t\t\txmlns:oc="http://owncloud.org/ns"\n\t\t\t\txmlns:nc="http://nextcloud.org/ns"\n\t\t\t\txmlns:ocs="http://open-collaboration-services.org/ns">\n\t\t\t<d:prop>\n\t\t\t\t<d:getlastmodified />\n\t\t\t\t<d:getetag />\n\t\t\t\t<d:getcontenttype />\n\t\t\t\t<d:resourcetype />\n\t\t\t\t<oc:fileid />\n\t\t\t\t<oc:permissions />\n\t\t\t\t<oc:size />\n\t\t\t\t<d:getcontentlength />\n\t\t\t\t<nc:has-preview />\n\t\t\t\t<nc:mount-type />\n\t\t\t\t<nc:is-encrypted />\n\t\t\t\t<ocs:share-permissions />\n\t\t\t\t<oc:tags />\n\t\t\t\t<oc:favorite />\n\t\t\t\t<oc:comments-unread />\n\t\t\t\t<oc:owner-id />\n\t\t\t\t<oc:owner-display-name />\n\t\t\t\t<oc:share-types />\n\t\t\t</d:prop>\n\t\t\t</d:propfind>'});case 2:return t=n.sent,i=OCA.Files.App.fileList.filesClient._client.parseMultiStatus(t.data),(r=OCA.Files.App.fileList.filesClient._parseFileInfo(i[0])).get=function(n){return r[n]},r.isDirectory=function(){return"httpd/unix-directory"===r.mimetype},n.abrupt("return",r);case 8:case"end":return n.stop()}}),n)})))).apply(this,arguments)}var _=i(47092);function C(n,e,t,i,r,o,s){try{var a=n[o](s),l=a.value}catch(n){return void t(n)}a.done?e(l):Promise.resolve(l).then(i,r)}function k(n){return function(){var e=this,t=arguments;return new Promise((function(i,r){var o=n.apply(e,t);function s(n){C(o,i,r,s,a,"next",n)}function a(n){C(o,i,r,s,a,"throw",n)}s(void 0)}))}}var T={name:"SidebarTab",components:{AppSidebarTab:i.n(_)(),EmptyContent:y()},props:{fileInfo:{type:Object,default:function(){},required:!0},id:{type:String,required:!0},name:{type:String,required:!0},icon:{type:String,required:!0},onMount:{type:Function,required:!0},onUpdate:{type:Function,required:!0},onDestroy:{type:Function,required:!0},onScrollBottomReached:{type:Function,default:function(){}}},data:function(){return{loading:!0}},computed:{activeTab:function(){return this.$parent.activeTab}},watch:{fileInfo:function(n,e){var t=this;return k(regeneratorRuntime.mark((function i(){return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(n.id===e.id){i.next=5;break}return t.loading=!0,i.next=4,t.onUpdate(t.fileInfo);case 4:t.loading=!1;case 5:case"end":return i.stop()}}),i)})))()}},mounted:function(){var n=this;return k(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n.loading=!0,e.next=3,n.onMount(n.$refs.mount,n.fileInfo,n.$refs.tab);case 3:n.loading=!1;case 4:case"end":return e.stop()}}),e)})))()},beforeDestroy:function(){var n=this;return k(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.onDestroy();case 2:case"end":return e.stop()}}),e)})))()}},x=i(51900),I=(0,x.Z)(T,(function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("AppSidebarTab",{ref:"tab",attrs:{id:n.id,name:n.name,icon:n.icon},on:{bottomReached:n.onScrollBottomReached}},[n.loading?t("EmptyContent",{attrs:{icon:"icon-loading"}}):n._e(),n._v(" "),t("div",{ref:"mount"})],1)}),[],!1,null,null,null).exports,S={name:"LegacyView",props:{component:{type:Object,required:!0},fileInfo:{type:Object,default:function(){},required:!0}},watch:{fileInfo:function(n){this.setFileInfo(n)}},mounted:function(){this.component.$el.replaceAll(this.$el),this.setFileInfo(this.fileInfo)},methods:{setFileInfo:function(n){this.component.setFileInfo(new OCA.Files.FileInfoModel(n))}}},F=(0,x.Z)(S,(function(){var n=this.$createElement;return(this._self._c||n)("div")}),[],!1,null,null,null).exports;function E(n,e,t,i,r,o,s){try{var a=n[o](s),l=a.value}catch(n){return void t(n)}a.done?e(l):Promise.resolve(l).then(i,r)}function z(n){return function(){var e=this,t=arguments;return new Promise((function(i,r){var o=n.apply(e,t);function s(n){E(o,i,r,s,a,"next",n)}function a(n){E(o,i,r,s,a,"throw",n)}s(void 0)}))}}var P={name:"Sidebar",components:{ActionButton:v(),AppSidebar:m(),EmptyContent:y(),LegacyView:F,SidebarTab:I},data:function(){return{Sidebar:OCA.Files.Sidebar.state,error:null,loading:!0,fileInfo:null,starLoading:!1,isFullScreen:!1}},computed:{file:function(){return this.Sidebar.file},tabs:function(){return this.Sidebar.tabs},views:function(){return this.Sidebar.views},davPath:function(){var n=OC.getCurrentUser().uid;return OC.linkToRemote("dav/files/".concat(n).concat((0,s.Ec)(this.file)))},activeTab:function(){return this.Sidebar.activeTab},subtitle:function(){return"".concat(this.size,", ").concat(this.time)},time:function(){return OC.Util.relativeModifiedDate(this.fileInfo.mtime)},fullTime:function(){return f()(this.fileInfo.mtime).format("LLL")},size:function(){return OC.Util.humanFileSize(this.fileInfo.size)},background:function(){return this.getPreviewIfAny(this.fileInfo)},appSidebar:function(){return this.fileInfo?{"data-mimetype":this.fileInfo.mimetype,"star-loading":this.starLoading,active:this.activeTab,background:this.background,class:{"app-sidebar--has-preview":this.fileInfo.hasPreview,"app-sidebar--full":this.isFullScreen},compact:!this.fileInfo.hasPreview,loading:this.loading,starred:this.fileInfo.isFavourited,subtitle:this.subtitle,subtitleTooltip:this.fullTime,title:this.fileInfo.name,titleTooltip:this.fileInfo.name}:this.error?{key:"error",subtitle:"",title:""}:{loading:this.loading,subtitle:"",title:""}},defaultAction:function(){return this.fileInfo&&OCA.Files&&OCA.Files.App&&OCA.Files.App.fileList&&OCA.Files.App.fileList.fileActions&&OCA.Files.App.fileList.fileActions.getDefaultFileAction&&OCA.Files.App.fileList.fileActions.getDefaultFileAction(this.fileInfo.mimetype,this.fileInfo.type,OC.PERMISSION_READ)},defaultActionListener:function(){return this.defaultAction?"figure-click":null},isSystemTagsEnabled:function(){return OCA&&"SystemTags"in OCA}},methods:{canDisplay:function(n){return n.enabled(this.fileInfo)},resetData:function(){var n=this;this.error=null,this.fileInfo=null,this.$nextTick((function(){n.$refs.tabs&&n.$refs.tabs.updateTabs()}))},getPreviewIfAny:function(n){return n.hasPreview?OC.generateUrl("/core/preview?fileId=".concat(n.id,"&x=").concat(screen.width,"&y=").concat(screen.height,"&a=true")):this.getIconUrl(n)},getIconUrl:function(n){var e=n.mimetype||"application/octet-stream";return"httpd/unix-directory"===e?"shared"===n.mountType||"shared-root"===n.mountType?OC.MimeType.getIconUrl("dir-shared"):"external-root"===n.mountType?OC.MimeType.getIconUrl("dir-external"):void 0!==n.mountType&&""!==n.mountType?OC.MimeType.getIconUrl("dir-"+n.mountType):n.shareTypes&&(n.shareTypes.indexOf(p.D.SHARE_TYPE_LINK)>-1||n.shareTypes.indexOf(p.D.SHARE_TYPE_EMAIL)>-1)?OC.MimeType.getIconUrl("dir-public"):n.shareTypes&&n.shareTypes.length>0?OC.MimeType.getIconUrl("dir-shared"):OC.MimeType.getIconUrl("dir"):OC.MimeType.getIconUrl(e)},setActiveTab:function(n){OCA.Files.Sidebar.setActiveTab(n)},toggleStarred:function(n){var e=this;return z(regeneratorRuntime.mark((function i(){return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.prev=0,e.starLoading=!0,i.next=4,(0,u.default)({method:"PROPPATCH",url:e.davPath,data:'<?xml version="1.0"?>\n\t\t\t\t\t\t<d:propertyupdate xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns">\n\t\t\t\t\t\t'.concat(n?"<d:set>":"<d:remove>","\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t").concat(n?"</d:set>":"</d:remove>","\n\t\t\t\t\t\t</d:propertyupdate>")});case 4:OCA.Files&&OCA.Files.App&&OCA.Files.App.fileList&&OCA.Files.App.fileList.fileActions&&OCA.Files.App.fileList.fileActions.triggerAction("Favorite",OCA.Files.App.fileList.getModelForFile(e.fileInfo.name),OCA.Files.App.fileList),i.next=11;break;case 7:i.prev=7,i.t0=i.catch(0),OC.Notification.showTemporary(t("files","Unable to change the favourite state of the file")),console.error("Unable to change favourite state",i.t0);case 11:e.starLoading=!1;case 12:case"end":return i.stop()}}),i,null,[[0,7]])})))()},onDefaultAction:function(){this.defaultAction&&this.defaultAction.action(this.fileInfo.name,{fileInfo:this.fileInfo,dir:this.fileInfo.dir,fileList:OCA.Files.App.fileList,$file:l()("body")})},toggleTags:function(){OCA.SystemTags&&OCA.SystemTags.View&&OCA.SystemTags.View.toggle()},open:function(n){var e=this;return z(regeneratorRuntime.mark((function i(){return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(e.Sidebar.file=n,!n||""===n.trim()){i.next=21;break}return e.error=null,e.loading=!0,i.prev=4,i.next=7,A(e.davPath);case 7:e.fileInfo=i.sent,e.fileInfo.dir=e.file.split("/").slice(0,-1).join("/"),e.views.forEach((function(n){n.setFileInfo(e.fileInfo)})),e.$nextTick((function(){e.$refs.tabs&&e.$refs.tabs.updateTabs()})),i.next=18;break;case 13:throw i.prev=13,i.t0=i.catch(4),e.error=t("files","Error while loading the file data"),console.error("Error while loading the file data",i.t0),new Error(i.t0);case 18:return i.prev=18,e.loading=!1,i.finish(18);case 21:case"end":return i.stop()}}),i,null,[[4,13,18,21]])})))()},close:function(){this.Sidebar.file="",this.resetData()},setFullScreenMode:function(n){this.isFullScreen=n},handleOpening:function(){(0,c.emit)("files:sidebar:opening")},handleOpened:function(){(0,c.emit)("files:sidebar:opened")},handleClosing:function(){(0,c.emit)("files:sidebar:closing")},handleClosed:function(){(0,c.emit)("files:sidebar:closed")}}},R=i(93379),L=i.n(R),M=i(7795),D=i.n(M),U=i(90569),B=i.n(U),$=i(3565),q=i.n($),V=i(19216),Z=i.n(V),N=i(44589),H=i.n(N),K=i(41582),G={};G.styleTagTransform=H(),G.setAttributes=q(),G.insert=B().bind(null,"head"),G.domAPI=D(),G.insertStyleElement=Z(),L()(K.Z,G),K.Z&&K.Z.locals&&K.Z.locals;var Y=(0,x.Z)(P,(function(){var n=this,e=n.$createElement,t=n._self._c||e;return n.file?t("AppSidebar",n._b({ref:"sidebar",attrs:{"force-menu":!0},on:n._d({close:n.close,"update:active":n.setActiveTab,"update:starred":n.toggleStarred,opening:n.handleOpening,opened:n.handleOpened,closing:n.handleClosing,closed:n.handleClosed},[n.defaultActionListener,function(e){return e.stopPropagation(),e.preventDefault(),n.onDefaultAction.apply(null,arguments)}]),scopedSlots:n._u([n.fileInfo?{key:"description",fn:function(){return n._l(n.views,(function(e){return t("LegacyView",{key:e.cid,attrs:{component:e,"file-info":n.fileInfo}})}))},proxy:!0}:null,n.fileInfo?{key:"secondary-actions",fn:function(){return[n.isSystemTagsEnabled?t("ActionButton",{attrs:{"close-after-click":!0,icon:"icon-tag"},on:{click:n.toggleTags}},[n._v("\n\t\t\t"+n._s(n.t("files","Tags"))+"\n\t\t")]):n._e()]},proxy:!0}:null],null,!0)},"AppSidebar",n.appSidebar,!1),[n._v(" "),n._v(" "),n.error?t("EmptyContent",{attrs:{icon:"icon-error"}},[n._v("\n\t\t"+n._s(n.error)+"\n\t")]):n.fileInfo?n._l(n.tabs,(function(e){return[e.enabled(n.fileInfo)?t("SidebarTab",{directives:[{name:"show",rawName:"v-show",value:!n.loading,expression:"!loading"}],key:e.id,attrs:{id:e.id,name:e.name,icon:e.icon,"on-mount":e.mount,"on-update":e.update,"on-destroy":e.destroy,"on-scroll-bottom-reached":e.scrollBottomReached,"file-info":n.fileInfo}}):n._e()]})):n._e()],2):n._e()}),[],!1,null,"04f575d6",null),J=Y.exports;function Q(n,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,i.key,i)}}var W=function(){function n(){var e,t;!function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),t=void 0,(e="_state")in this?Object.defineProperty(this,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):this[e]=t,this._state={},this._state.tabs=[],this._state.views=[],this._state.file="",this._state.activeTab="",console.debug("OCA.Files.Sidebar initialized")}var e,t;return e=n,(t=[{key:"state",get:function(){return this._state}},{key:"registerTab",value:function(n){return this._state.tabs.findIndex((function(e){return e.id===n.id}))>-1?(console.error("An tab with the same id ".concat(n.id," already exists"),n),!1):(this._state.tabs.push(n),!0)}},{key:"registerSecondaryView",value:function(n){return this._state.views.findIndex((function(e){return e.id===n.id}))>-1?(console.error("A similar view already exists",n),!1):(this._state.views.push(n),!0)}},{key:"file",get:function(){return this._state.file}},{key:"setActiveTab",value:function(n){this._state.activeTab=n}}])&&Q(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),n}();function X(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}function nn(n,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,i.key,i)}}function en(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}var tn=function(){function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.id,i=e.name,r=e.icon,o=e.mount,s=e.update,a=e.destroy,l=e.enabled,u=e.scrollBottomReached;if(X(this,n),en(this,"_id",void 0),en(this,"_name",void 0),en(this,"_icon",void 0),en(this,"_mount",void 0),en(this,"_update",void 0),en(this,"_destroy",void 0),en(this,"_enabled",void 0),en(this,"_scrollBottomReached",void 0),void 0===l&&(l=function(){return!0}),void 0===u&&(u=function(){}),"string"!=typeof t||""===t.trim())throw new Error("The id argument is not a valid string");if("string"!=typeof i||""===i.trim())throw new Error("The name argument is not a valid string");if("string"!=typeof r||""===r.trim())throw new Error("The icon argument is not a valid string");if("function"!=typeof o)throw new Error("The mount argument should be a function");if("function"!=typeof s)throw new Error("The update argument should be a function");if("function"!=typeof a)throw new Error("The destroy argument should be a function");if("function"!=typeof l)throw new Error("The enabled argument should be a function");if("function"!=typeof u)throw new Error("The scrollBottomReached argument should be a function");this._id=t,this._name=i,this._icon=r,this._mount=o,this._update=s,this._destroy=a,this._enabled=l,this._scrollBottomReached=u}var e,t;return e=n,(t=[{key:"id",get:function(){return this._id}},{key:"name",get:function(){return this._name}},{key:"icon",get:function(){return this._icon}},{key:"mount",get:function(){return this._mount}},{key:"update",get:function(){return this._update}},{key:"destroy",get:function(){return this._destroy}},{key:"enabled",get:function(){return this._enabled}},{key:"scrollBottomReached",get:function(){return this._scrollBottomReached}}])&&nn(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),n}();r.default.prototype.t=o.translate,window.OCA.Files||(window.OCA.Files={}),Object.assign(window.OCA.Files,{Sidebar:new W}),Object.assign(window.OCA.Files.Sidebar,{Tab:tn}),console.debug("OCA.Files.Sidebar initialized"),window.addEventListener("DOMContentLoaded",(function(){var n=document.querySelector("body > .content")||document.querySelector("body > #content");if(n&&!document.getElementById("app-sidebar")){var e=document.createElement("div");e.id="app-sidebar",n.appendChild(e)}var t=new(r.default.extend(J))({name:"SidebarRoot"});t.$mount("#app-sidebar"),window.OCA.Files.Sidebar.open=t.open,window.OCA.Files.Sidebar.close=t.close,window.OCA.Files.Sidebar.setFullScreenMode=t.setFullScreenMode}))},41582:function(n,e,t){"use strict";var i=t(94015),r=t.n(i),o=t(23645),s=t.n(o)()(r());s.push([n.id,'.app-sidebar--has-preview[data-v-04f575d6] .app-sidebar-header__figure{background-size:cover}.app-sidebar--has-preview[data-v-04f575d6][data-mimetype="text/plain"] .app-sidebar-header__figure,.app-sidebar--has-preview[data-v-04f575d6][data-mimetype="text/markdown"] .app-sidebar-header__figure{background-size:contain}.app-sidebar--full[data-v-04f575d6]{position:fixed !important;z-index:2025 !important;top:0 !important;height:100% !important}',"",{version:3,sources:["webpack://./apps/files/src/views/Sidebar.vue"],names:[],mappings:"AAoeE,uEACC,qBAAA,CAKA,yMACC,uBAAA,CAKH,oCACC,yBAAA,CACA,uBAAA,CACA,gBAAA,CACA,sBAAA",sourcesContent:['\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.app-sidebar {\n\t&--has-preview::v-deep {\n\t\t.app-sidebar-header__figure {\n\t\t\tbackground-size: cover;\n\t\t}\n\n\t\t&[data-mimetype="text/plain"],\n\t\t&[data-mimetype="text/markdown"] {\n\t\t\t.app-sidebar-header__figure {\n\t\t\t\tbackground-size: contain;\n\t\t\t}\n\t\t}\n\t}\n\n\t&--full {\n\t\tposition: fixed !important;\n\t\tz-index: 2025 !important;\n\t\ttop: 0 !important;\n\t\theight: 100% !important;\n\t}\n}\n'],sourceRoot:""}]),e.Z=s}},i={};function r(n){var t=i[n];if(void 0!==t)return t.exports;var o=i[n]={id:n,loaded:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}r.m=e,r.amdD=function(){throw new Error("define cannot be used indirect")},r.amdO={},n=[],r.O=function(e,t,i,o){if(!t){var s=1/0;for(c=0;c<n.length;c++){t=n[c][0],i=n[c][1],o=n[c][2];for(var a=!0,l=0;l<t.length;l++)(!1&o||s>=o)&&Object.keys(r.O).every((function(n){return r.O[n](t[l])}))?t.splice(l--,1):(a=!1,o<s&&(s=o));if(a){n.splice(c--,1);var u=i();void 0!==u&&(e=u)}}return e}o=o||0;for(var c=n.length;c>0&&n[c-1][2]>o;c--)n[c]=n[c-1];n[c]=[t,i,o]},r.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(e,{a:e}),e},r.d=function(n,e){for(var t in e)r.o(e,t)&&!r.o(n,t)&&Object.defineProperty(n,t,{enumerable:!0,get:e[t]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(n){if("object"==typeof window)return window}}(),r.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},r.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r.nmd=function(n){return n.paths=[],n.children||(n.children=[]),n},r.j=92,function(){var n={92:0};r.O.j=function(e){return 0===n[e]};var e=function(e,t){var i,o,s=t[0],a=t[1],l=t[2],u=0;if(s.some((function(e){return 0!==n[e]}))){for(i in a)r.o(a,i)&&(r.m[i]=a[i]);if(l)var c=l(r)}for(e&&e(t);u<s.length;u++)o=s[u],r.o(n,o)&&n[o]&&n[o][0](),n[o]=0;return r.O(c)},t=self.webpackChunknextcloud=self.webpackChunknextcloud||[];t.forEach(e.bind(null,0)),t.push=e.bind(null,t.push.bind(t))}();var o=r.O(void 0,[874],(function(){return r(23056)}));o=r.O(o)}();
-//# sourceMappingURL=files-sidebar.js.map?v=40a917765e6656034495 \ No newline at end of file
+!function(){var n,e={93365:function(n,e,t){var i={"./af":36026,"./af.js":36026,"./ar":28093,"./ar-dz":41943,"./ar-dz.js":41943,"./ar-kw":23969,"./ar-kw.js":23969,"./ar-ly":40594,"./ar-ly.js":40594,"./ar-ma":18369,"./ar-ma.js":18369,"./ar-sa":32579,"./ar-sa.js":32579,"./ar-tn":76442,"./ar-tn.js":76442,"./ar.js":28093,"./az":86425,"./az.js":86425,"./be":22004,"./be.js":22004,"./bg":42982,"./bg.js":42982,"./bm":21067,"./bm.js":21067,"./bn":8366,"./bn.js":8366,"./bo":95040,"./bo.js":95040,"./br":521,"./br.js":521,"./bs":83242,"./bs.js":83242,"./ca":73046,"./ca.js":73046,"./cs":25794,"./cs.js":25794,"./cv":28231,"./cv.js":28231,"./cy":10927,"./cy.js":10927,"./da":42832,"./da.js":42832,"./de":29415,"./de-at":3331,"./de-at.js":3331,"./de-ch":45524,"./de-ch.js":45524,"./de.js":29415,"./dv":44700,"./dv.js":44700,"./el":88752,"./el.js":88752,"./en-SG":16706,"./en-SG.js":16706,"./en-au":90444,"./en-au.js":90444,"./en-ca":65959,"./en-ca.js":65959,"./en-gb":62762,"./en-gb.js":62762,"./en-ie":40909,"./en-ie.js":40909,"./en-il":79909,"./en-il.js":79909,"./en-nz":75200,"./en-nz.js":75200,"./eo":27447,"./eo.js":27447,"./es":86756,"./es-do":47049,"./es-do.js":47049,"./es-us":57133,"./es-us.js":57133,"./es.js":86756,"./et":72182,"./et.js":72182,"./eu":14419,"./eu.js":14419,"./fa":2916,"./fa.js":2916,"./fi":49964,"./fi.js":49964,"./fo":26094,"./fo.js":26094,"./fr":35833,"./fr-ca":56994,"./fr-ca.js":56994,"./fr-ch":2740,"./fr-ch.js":2740,"./fr.js":35833,"./fy":69542,"./fy.js":69542,"./ga":93264,"./ga.js":93264,"./gd":77457,"./gd.js":77457,"./gl":83043,"./gl.js":83043,"./gom-latn":28379,"./gom-latn.js":28379,"./gu":406,"./gu.js":406,"./he":73219,"./he.js":73219,"./hi":99834,"./hi.js":99834,"./hr":28754,"./hr.js":28754,"./hu":93945,"./hu.js":93945,"./hy-am":81319,"./hy-am.js":81319,"./id":24875,"./id.js":24875,"./is":23724,"./is.js":23724,"./it":79906,"./it-ch":34303,"./it-ch.js":34303,"./it.js":79906,"./ja":77105,"./ja.js":77105,"./jv":15026,"./jv.js":15026,"./ka":67416,"./ka.js":67416,"./kk":79734,"./kk.js":79734,"./km":60757,"./km.js":60757,"./kn":58369,"./kn.js":58369,"./ko":77687,"./ko.js":77687,"./ku":95544,"./ku.js":95544,"./ky":85431,"./ky.js":85431,"./lb":13613,"./lb.js":13613,"./lo":34252,"./lo.js":34252,"./lt":84619,"./lt.js":84619,"./lv":93760,"./lv.js":93760,"./me":93393,"./me.js":93393,"./mi":12369,"./mi.js":12369,"./mk":48664,"./mk.js":48664,"./ml":23099,"./ml.js":23099,"./mn":98539,"./mn.js":98539,"./mr":778,"./mr.js":778,"./ms":39970,"./ms-my":82625,"./ms-my.js":82625,"./ms.js":39970,"./mt":15714,"./mt.js":15714,"./my":53055,"./my.js":53055,"./nb":73945,"./nb.js":73945,"./ne":63645,"./ne.js":63645,"./nl":4829,"./nl-be":12823,"./nl-be.js":12823,"./nl.js":4829,"./nn":23756,"./nn.js":23756,"./pa-in":97877,"./pa-in.js":97877,"./pl":53066,"./pl.js":53066,"./pt":28677,"./pt-br":81592,"./pt-br.js":81592,"./pt.js":28677,"./ro":32722,"./ro.js":32722,"./ru":59138,"./ru.js":59138,"./sd":32568,"./sd.js":32568,"./se":49753,"./se.js":49753,"./si":58024,"./si.js":58024,"./sk":31058,"./sk.js":31058,"./sl":43452,"./sl.js":43452,"./sq":2795,"./sq.js":2795,"./sr":26976,"./sr-cyrl":38819,"./sr-cyrl.js":38819,"./sr.js":26976,"./ss":7467,"./ss.js":7467,"./sv":42787,"./sv.js":42787,"./sw":80298,"./sw.js":80298,"./ta":57532,"./ta.js":57532,"./te":76076,"./te.js":76076,"./tet":40452,"./tet.js":40452,"./tg":64794,"./tg.js":64794,"./th":48245,"./th.js":48245,"./tl-ph":36056,"./tl-ph.js":36056,"./tlh":15249,"./tlh.js":15249,"./tr":22053,"./tr.js":22053,"./tzl":39871,"./tzl.js":39871,"./tzm":39574,"./tzm-latn":19210,"./tzm-latn.js":19210,"./tzm.js":39574,"./ug-cn":91532,"./ug-cn.js":91532,"./uk":11432,"./uk.js":11432,"./ur":88523,"./ur.js":88523,"./uz":54958,"./uz-latn":68735,"./uz-latn.js":68735,"./uz.js":54958,"./vi":83398,"./vi.js":83398,"./x-pseudo":56665,"./x-pseudo.js":56665,"./yo":11642,"./yo.js":11642,"./zh-cn":5462,"./zh-cn.js":5462,"./zh-hk":92530,"./zh-hk.js":92530,"./zh-tw":97333,"./zh-tw.js":97333};function r(n){var e=o(n);return t(e)}function o(n){if(!t.o(i,n)){var e=new Error("Cannot find module '"+n+"'");throw e.code="MODULE_NOT_FOUND",e}return i[n]}r.keys=function(){return Object.keys(i)},r.resolve=o,n.exports=r,r.id=93365},23056:function(n,e,i){"use strict";var r=i(20144),o=i(9944),s=i(76632),a=i(19755),l=i.n(a),u=i(4820),c=i(74854),d=i(80351),f=i.n(d),p=i(41922),h=i(27801),m=i.n(h),b=i(56286),v=i.n(b),g=i(97e3),y=i.n(g);function j(n,e,t,i,r,o,s){try{var a=n[o](s),l=a.value}catch(n){return void t(n)}a.done?e(l):Promise.resolve(l).then(i,r)}function w(n){return function(){var e=this,t=arguments;return new Promise((function(i,r){var o=n.apply(e,t);function s(n){j(o,i,r,s,a,"next",n)}function a(n){j(o,i,r,s,a,"throw",n)}s(void 0)}))}}function A(n){return O.apply(this,arguments)}function O(){return(O=w(regeneratorRuntime.mark((function n(e){var t,i,r;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,(0,u.default)({method:"PROPFIND",url:e,data:'<?xml version="1.0"?>\n\t\t\t<d:propfind xmlns:d="DAV:"\n\t\t\t\txmlns:oc="http://owncloud.org/ns"\n\t\t\t\txmlns:nc="http://nextcloud.org/ns"\n\t\t\t\txmlns:ocs="http://open-collaboration-services.org/ns">\n\t\t\t<d:prop>\n\t\t\t\t<d:getlastmodified />\n\t\t\t\t<d:getetag />\n\t\t\t\t<d:getcontenttype />\n\t\t\t\t<d:resourcetype />\n\t\t\t\t<oc:fileid />\n\t\t\t\t<oc:permissions />\n\t\t\t\t<oc:size />\n\t\t\t\t<d:getcontentlength />\n\t\t\t\t<nc:has-preview />\n\t\t\t\t<nc:mount-type />\n\t\t\t\t<nc:is-encrypted />\n\t\t\t\t<ocs:share-permissions />\n\t\t\t\t<oc:tags />\n\t\t\t\t<oc:favorite />\n\t\t\t\t<oc:comments-unread />\n\t\t\t\t<oc:owner-id />\n\t\t\t\t<oc:owner-display-name />\n\t\t\t\t<oc:share-types />\n\t\t\t\t<nc:preview-access-token />\n\t\t\t</d:prop>\n\t\t\t</d:propfind>'});case 2:return t=n.sent,i=OCA.Files.App.fileList.filesClient._client.parseMultiStatus(t.data),(r=OCA.Files.App.fileList.filesClient._parseFileInfo(i[0])).get=function(n){return r[n]},r.isDirectory=function(){return"httpd/unix-directory"===r.mimetype},n.abrupt("return",r);case 8:case"end":return n.stop()}}),n)})))).apply(this,arguments)}var _=i(47092);function C(n,e,t,i,r,o,s){try{var a=n[o](s),l=a.value}catch(n){return void t(n)}a.done?e(l):Promise.resolve(l).then(i,r)}function k(n){return function(){var e=this,t=arguments;return new Promise((function(i,r){var o=n.apply(e,t);function s(n){C(o,i,r,s,a,"next",n)}function a(n){C(o,i,r,s,a,"throw",n)}s(void 0)}))}}var T={name:"SidebarTab",components:{AppSidebarTab:i.n(_)(),EmptyContent:y()},props:{fileInfo:{type:Object,default:function(){},required:!0},id:{type:String,required:!0},name:{type:String,required:!0},icon:{type:String,required:!0},onMount:{type:Function,required:!0},onUpdate:{type:Function,required:!0},onDestroy:{type:Function,required:!0},onScrollBottomReached:{type:Function,default:function(){}}},data:function(){return{loading:!0}},computed:{activeTab:function(){return this.$parent.activeTab}},watch:{fileInfo:function(n,e){var t=this;return k(regeneratorRuntime.mark((function i(){return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(n.id===e.id){i.next=5;break}return t.loading=!0,i.next=4,t.onUpdate(t.fileInfo);case 4:t.loading=!1;case 5:case"end":return i.stop()}}),i)})))()}},mounted:function(){var n=this;return k(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n.loading=!0,e.next=3,n.onMount(n.$refs.mount,n.fileInfo,n.$refs.tab);case 3:n.loading=!1;case 4:case"end":return e.stop()}}),e)})))()},beforeDestroy:function(){var n=this;return k(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.onDestroy();case 2:case"end":return e.stop()}}),e)})))()}},x=i(51900),I=(0,x.Z)(T,(function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("AppSidebarTab",{ref:"tab",attrs:{id:n.id,name:n.name,icon:n.icon},on:{bottomReached:n.onScrollBottomReached}},[n.loading?t("EmptyContent",{attrs:{icon:"icon-loading"}}):n._e(),n._v(" "),t("div",{ref:"mount"})],1)}),[],!1,null,null,null).exports,S={name:"LegacyView",props:{component:{type:Object,required:!0},fileInfo:{type:Object,default:function(){},required:!0}},watch:{fileInfo:function(n){this.setFileInfo(n)}},mounted:function(){this.component.$el.replaceAll(this.$el),this.setFileInfo(this.fileInfo)},methods:{setFileInfo:function(n){this.component.setFileInfo(new OCA.Files.FileInfoModel(n))}}},F=(0,x.Z)(S,(function(){var n=this.$createElement;return(this._self._c||n)("div")}),[],!1,null,null,null).exports;function E(n,e,t,i,r,o,s){try{var a=n[o](s),l=a.value}catch(n){return void t(n)}a.done?e(l):Promise.resolve(l).then(i,r)}function z(n){return function(){var e=this,t=arguments;return new Promise((function(i,r){var o=n.apply(e,t);function s(n){E(o,i,r,s,a,"next",n)}function a(n){E(o,i,r,s,a,"throw",n)}s(void 0)}))}}var P={name:"Sidebar",components:{ActionButton:v(),AppSidebar:m(),EmptyContent:y(),LegacyView:F,SidebarTab:I},data:function(){return{Sidebar:OCA.Files.Sidebar.state,error:null,loading:!0,fileInfo:null,starLoading:!1,isFullScreen:!1}},computed:{file:function(){return this.Sidebar.file},tabs:function(){return this.Sidebar.tabs},views:function(){return this.Sidebar.views},davPath:function(){var n=OC.getCurrentUser().uid;return OC.linkToRemote("dav/files/".concat(n).concat((0,s.Ec)(this.file)))},activeTab:function(){return this.Sidebar.activeTab},subtitle:function(){return"".concat(this.size,", ").concat(this.time)},time:function(){return OC.Util.relativeModifiedDate(this.fileInfo.mtime)},fullTime:function(){return f()(this.fileInfo.mtime).format("LLL")},size:function(){return OC.Util.humanFileSize(this.fileInfo.size)},background:function(){return this.getPreviewIfAny(this.fileInfo)},appSidebar:function(){return this.fileInfo?{"data-mimetype":this.fileInfo.mimetype,"star-loading":this.starLoading,active:this.activeTab,background:this.background,class:{"app-sidebar--has-preview":this.fileInfo.hasPreview,"app-sidebar--full":this.isFullScreen},compact:!this.fileInfo.hasPreview,loading:this.loading,starred:this.fileInfo.isFavourited,subtitle:this.subtitle,subtitleTooltip:this.fullTime,title:this.fileInfo.name,titleTooltip:this.fileInfo.name}:this.error?{key:"error",subtitle:"",title:""}:{loading:this.loading,subtitle:"",title:""}},defaultAction:function(){return this.fileInfo&&OCA.Files&&OCA.Files.App&&OCA.Files.App.fileList&&OCA.Files.App.fileList.fileActions&&OCA.Files.App.fileList.fileActions.getDefaultFileAction&&OCA.Files.App.fileList.fileActions.getDefaultFileAction(this.fileInfo.mimetype,this.fileInfo.type,OC.PERMISSION_READ)},defaultActionListener:function(){return this.defaultAction?"figure-click":null},isSystemTagsEnabled:function(){return OCA&&"SystemTags"in OCA}},methods:{canDisplay:function(n){return n.enabled(this.fileInfo)},resetData:function(){var n=this;this.error=null,this.fileInfo=null,this.$nextTick((function(){n.$refs.tabs&&n.$refs.tabs.updateTabs()}))},getPreviewIfAny:function(n){return n.hasPreview?OC.generateUrl("/core/preview?fileId=".concat(n.id,"&x=").concat(screen.width,"&y=").concat(screen.height,"&a=true")):this.getIconUrl(n)},getIconUrl:function(n){var e=n.mimetype||"application/octet-stream";return"httpd/unix-directory"===e?"shared"===n.mountType||"shared-root"===n.mountType?OC.MimeType.getIconUrl("dir-shared"):"external-root"===n.mountType?OC.MimeType.getIconUrl("dir-external"):void 0!==n.mountType&&""!==n.mountType?OC.MimeType.getIconUrl("dir-"+n.mountType):n.shareTypes&&(n.shareTypes.indexOf(p.D.SHARE_TYPE_LINK)>-1||n.shareTypes.indexOf(p.D.SHARE_TYPE_EMAIL)>-1)?OC.MimeType.getIconUrl("dir-public"):n.shareTypes&&n.shareTypes.length>0?OC.MimeType.getIconUrl("dir-shared"):OC.MimeType.getIconUrl("dir"):OC.MimeType.getIconUrl(e)},setActiveTab:function(n){OCA.Files.Sidebar.setActiveTab(n)},toggleStarred:function(n){var e=this;return z(regeneratorRuntime.mark((function i(){return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.prev=0,e.starLoading=!0,i.next=4,(0,u.default)({method:"PROPPATCH",url:e.davPath,data:'<?xml version="1.0"?>\n\t\t\t\t\t\t<d:propertyupdate xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns">\n\t\t\t\t\t\t'.concat(n?"<d:set>":"<d:remove>","\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t").concat(n?"</d:set>":"</d:remove>","\n\t\t\t\t\t\t</d:propertyupdate>")});case 4:OCA.Files&&OCA.Files.App&&OCA.Files.App.fileList&&OCA.Files.App.fileList.fileActions&&OCA.Files.App.fileList.fileActions.triggerAction("Favorite",OCA.Files.App.fileList.getModelForFile(e.fileInfo.name),OCA.Files.App.fileList),i.next=11;break;case 7:i.prev=7,i.t0=i.catch(0),OC.Notification.showTemporary(t("files","Unable to change the favourite state of the file")),console.error("Unable to change favourite state",i.t0);case 11:e.starLoading=!1;case 12:case"end":return i.stop()}}),i,null,[[0,7]])})))()},onDefaultAction:function(){this.defaultAction&&this.defaultAction.action(this.fileInfo.name,{fileInfo:this.fileInfo,dir:this.fileInfo.dir,fileList:OCA.Files.App.fileList,$file:l()("body")})},toggleTags:function(){OCA.SystemTags&&OCA.SystemTags.View&&OCA.SystemTags.View.toggle()},open:function(n){var e=this;return z(regeneratorRuntime.mark((function i(){return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(e.Sidebar.file=n,!n||""===n.trim()){i.next=21;break}return e.error=null,e.loading=!0,i.prev=4,i.next=7,A(e.davPath);case 7:e.fileInfo=i.sent,e.fileInfo.dir=e.file.split("/").slice(0,-1).join("/"),e.views.forEach((function(n){n.setFileInfo(e.fileInfo)})),e.$nextTick((function(){e.$refs.tabs&&e.$refs.tabs.updateTabs()})),i.next=18;break;case 13:throw i.prev=13,i.t0=i.catch(4),e.error=t("files","Error while loading the file data"),console.error("Error while loading the file data",i.t0),new Error(i.t0);case 18:return i.prev=18,e.loading=!1,i.finish(18);case 21:case"end":return i.stop()}}),i,null,[[4,13,18,21]])})))()},close:function(){this.Sidebar.file="",this.resetData()},setFullScreenMode:function(n){this.isFullScreen=n},handleOpening:function(){(0,c.emit)("files:sidebar:opening")},handleOpened:function(){(0,c.emit)("files:sidebar:opened")},handleClosing:function(){(0,c.emit)("files:sidebar:closing")},handleClosed:function(){(0,c.emit)("files:sidebar:closed")}}},R=i(93379),L=i.n(R),M=i(7795),D=i.n(M),U=i(90569),B=i.n(U),$=i(3565),q=i.n($),V=i(19216),Z=i.n(V),N=i(44589),H=i.n(N),K=i(41582),G={};G.styleTagTransform=H(),G.setAttributes=q(),G.insert=B().bind(null,"head"),G.domAPI=D(),G.insertStyleElement=Z(),L()(K.Z,G),K.Z&&K.Z.locals&&K.Z.locals;var Y=(0,x.Z)(P,(function(){var n=this,e=n.$createElement,t=n._self._c||e;return n.file?t("AppSidebar",n._b({ref:"sidebar",attrs:{"force-menu":!0},on:n._d({close:n.close,"update:active":n.setActiveTab,"update:starred":n.toggleStarred,opening:n.handleOpening,opened:n.handleOpened,closing:n.handleClosing,closed:n.handleClosed},[n.defaultActionListener,function(e){return e.stopPropagation(),e.preventDefault(),n.onDefaultAction.apply(null,arguments)}]),scopedSlots:n._u([n.fileInfo?{key:"description",fn:function(){return n._l(n.views,(function(e){return t("LegacyView",{key:e.cid,attrs:{component:e,"file-info":n.fileInfo}})}))},proxy:!0}:null,n.fileInfo?{key:"secondary-actions",fn:function(){return[n.isSystemTagsEnabled?t("ActionButton",{attrs:{"close-after-click":!0,icon:"icon-tag"},on:{click:n.toggleTags}},[n._v("\n\t\t\t"+n._s(n.t("files","Tags"))+"\n\t\t")]):n._e()]},proxy:!0}:null],null,!0)},"AppSidebar",n.appSidebar,!1),[n._v(" "),n._v(" "),n.error?t("EmptyContent",{attrs:{icon:"icon-error"}},[n._v("\n\t\t"+n._s(n.error)+"\n\t")]):n.fileInfo?n._l(n.tabs,(function(e){return[e.enabled(n.fileInfo)?t("SidebarTab",{directives:[{name:"show",rawName:"v-show",value:!n.loading,expression:"!loading"}],key:e.id,attrs:{id:e.id,name:e.name,icon:e.icon,"on-mount":e.mount,"on-update":e.update,"on-destroy":e.destroy,"on-scroll-bottom-reached":e.scrollBottomReached,"file-info":n.fileInfo}}):n._e()]})):n._e()],2):n._e()}),[],!1,null,"04f575d6",null),J=Y.exports;function Q(n,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,i.key,i)}}var W=function(){function n(){var e,t;!function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),t=void 0,(e="_state")in this?Object.defineProperty(this,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):this[e]=t,this._state={},this._state.tabs=[],this._state.views=[],this._state.file="",this._state.activeTab="",console.debug("OCA.Files.Sidebar initialized")}var e,t;return e=n,(t=[{key:"state",get:function(){return this._state}},{key:"registerTab",value:function(n){return this._state.tabs.findIndex((function(e){return e.id===n.id}))>-1?(console.error("An tab with the same id ".concat(n.id," already exists"),n),!1):(this._state.tabs.push(n),!0)}},{key:"registerSecondaryView",value:function(n){return this._state.views.findIndex((function(e){return e.id===n.id}))>-1?(console.error("A similar view already exists",n),!1):(this._state.views.push(n),!0)}},{key:"file",get:function(){return this._state.file}},{key:"setActiveTab",value:function(n){this._state.activeTab=n}}])&&Q(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),n}();function X(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}function nn(n,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,i.key,i)}}function en(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}var tn=function(){function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.id,i=e.name,r=e.icon,o=e.mount,s=e.update,a=e.destroy,l=e.enabled,u=e.scrollBottomReached;if(X(this,n),en(this,"_id",void 0),en(this,"_name",void 0),en(this,"_icon",void 0),en(this,"_mount",void 0),en(this,"_update",void 0),en(this,"_destroy",void 0),en(this,"_enabled",void 0),en(this,"_scrollBottomReached",void 0),void 0===l&&(l=function(){return!0}),void 0===u&&(u=function(){}),"string"!=typeof t||""===t.trim())throw new Error("The id argument is not a valid string");if("string"!=typeof i||""===i.trim())throw new Error("The name argument is not a valid string");if("string"!=typeof r||""===r.trim())throw new Error("The icon argument is not a valid string");if("function"!=typeof o)throw new Error("The mount argument should be a function");if("function"!=typeof s)throw new Error("The update argument should be a function");if("function"!=typeof a)throw new Error("The destroy argument should be a function");if("function"!=typeof l)throw new Error("The enabled argument should be a function");if("function"!=typeof u)throw new Error("The scrollBottomReached argument should be a function");this._id=t,this._name=i,this._icon=r,this._mount=o,this._update=s,this._destroy=a,this._enabled=l,this._scrollBottomReached=u}var e,t;return e=n,(t=[{key:"id",get:function(){return this._id}},{key:"name",get:function(){return this._name}},{key:"icon",get:function(){return this._icon}},{key:"mount",get:function(){return this._mount}},{key:"update",get:function(){return this._update}},{key:"destroy",get:function(){return this._destroy}},{key:"enabled",get:function(){return this._enabled}},{key:"scrollBottomReached",get:function(){return this._scrollBottomReached}}])&&nn(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),n}();r.default.prototype.t=o.translate,window.OCA.Files||(window.OCA.Files={}),Object.assign(window.OCA.Files,{Sidebar:new W}),Object.assign(window.OCA.Files.Sidebar,{Tab:tn}),console.debug("OCA.Files.Sidebar initialized"),window.addEventListener("DOMContentLoaded",(function(){var n=document.querySelector("body > .content")||document.querySelector("body > #content");if(n&&!document.getElementById("app-sidebar")){var e=document.createElement("div");e.id="app-sidebar",n.appendChild(e)}var t=new(r.default.extend(J))({name:"SidebarRoot"});t.$mount("#app-sidebar"),window.OCA.Files.Sidebar.open=t.open,window.OCA.Files.Sidebar.close=t.close,window.OCA.Files.Sidebar.setFullScreenMode=t.setFullScreenMode}))},41582:function(n,e,t){"use strict";var i=t(94015),r=t.n(i),o=t(23645),s=t.n(o)()(r());s.push([n.id,'.app-sidebar--has-preview[data-v-04f575d6] .app-sidebar-header__figure{background-size:cover}.app-sidebar--has-preview[data-v-04f575d6][data-mimetype="text/plain"] .app-sidebar-header__figure,.app-sidebar--has-preview[data-v-04f575d6][data-mimetype="text/markdown"] .app-sidebar-header__figure{background-size:contain}.app-sidebar--full[data-v-04f575d6]{position:fixed !important;z-index:2025 !important;top:0 !important;height:100% !important}',"",{version:3,sources:["webpack://./apps/files/src/views/Sidebar.vue"],names:[],mappings:"AAoeE,uEACC,qBAAA,CAKA,yMACC,uBAAA,CAKH,oCACC,yBAAA,CACA,uBAAA,CACA,gBAAA,CACA,sBAAA",sourcesContent:['\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.app-sidebar {\n\t&--has-preview::v-deep {\n\t\t.app-sidebar-header__figure {\n\t\t\tbackground-size: cover;\n\t\t}\n\n\t\t&[data-mimetype="text/plain"],\n\t\t&[data-mimetype="text/markdown"] {\n\t\t\t.app-sidebar-header__figure {\n\t\t\t\tbackground-size: contain;\n\t\t\t}\n\t\t}\n\t}\n\n\t&--full {\n\t\tposition: fixed !important;\n\t\tz-index: 2025 !important;\n\t\ttop: 0 !important;\n\t\theight: 100% !important;\n\t}\n}\n'],sourceRoot:""}]),e.Z=s}},i={};function r(n){var t=i[n];if(void 0!==t)return t.exports;var o=i[n]={id:n,loaded:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}r.m=e,r.amdD=function(){throw new Error("define cannot be used indirect")},r.amdO={},n=[],r.O=function(e,t,i,o){if(!t){var s=1/0;for(c=0;c<n.length;c++){t=n[c][0],i=n[c][1],o=n[c][2];for(var a=!0,l=0;l<t.length;l++)(!1&o||s>=o)&&Object.keys(r.O).every((function(n){return r.O[n](t[l])}))?t.splice(l--,1):(a=!1,o<s&&(s=o));if(a){n.splice(c--,1);var u=i();void 0!==u&&(e=u)}}return e}o=o||0;for(var c=n.length;c>0&&n[c-1][2]>o;c--)n[c]=n[c-1];n[c]=[t,i,o]},r.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(e,{a:e}),e},r.d=function(n,e){for(var t in e)r.o(e,t)&&!r.o(n,t)&&Object.defineProperty(n,t,{enumerable:!0,get:e[t]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(n){if("object"==typeof window)return window}}(),r.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},r.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r.nmd=function(n){return n.paths=[],n.children||(n.children=[]),n},r.j=92,function(){var n={92:0};r.O.j=function(e){return 0===n[e]};var e=function(e,t){var i,o,s=t[0],a=t[1],l=t[2],u=0;if(s.some((function(e){return 0!==n[e]}))){for(i in a)r.o(a,i)&&(r.m[i]=a[i]);if(l)var c=l(r)}for(e&&e(t);u<s.length;u++)o=s[u],r.o(n,o)&&n[o]&&n[o][0](),n[o]=0;return r.O(c)},t=self.webpackChunknextcloud=self.webpackChunknextcloud||[];t.forEach(e.bind(null,0)),t.push=e.bind(null,t.push.bind(t))}();var o=r.O(void 0,[874],(function(){return r(23056)}));o=r.O(o)}();
+//# sourceMappingURL=files-sidebar.js.map?v=db70d959033682e4f618 \ No newline at end of file
diff --git a/dist/files-sidebar.js.map b/dist/files-sidebar.js.map
index c31cd00a6e5..09d9505ab8d 100644
--- a/dist/files-sidebar.js.map
+++ b/dist/files-sidebar.js.map
@@ -1 +1 @@
-{"version":3,"file":"files-sidebar.js?v=40a917765e6656034495","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/node_modules/@nextcloud/moment/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/apps/files/src/services/FileInfo.js","webpack:///nextcloud/apps/files/src/components/SidebarTab.vue?vue&type=template&id=695d5bae&","webpack:///nextcloud/apps/files/src/components/SidebarTab.vue","webpack:///nextcloud/apps/files/src/components/SidebarTab.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/components/SidebarTab.vue?7aea","webpack:///nextcloud/apps/files/src/components/LegacyView.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/files/src/components/LegacyView.vue","webpack://nextcloud/./apps/files/src/components/LegacyView.vue?a2e2","webpack:///nextcloud/apps/files/src/components/LegacyView.vue?vue&type=template&id=2245cbe7&","webpack:///nextcloud/apps/files/src/views/Sidebar.vue","webpack:///nextcloud/apps/files/src/views/Sidebar.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/views/Sidebar.vue?c3b5","webpack://nextcloud/./apps/files/src/views/Sidebar.vue?0b21","webpack:///nextcloud/apps/files/src/views/Sidebar.vue?vue&type=template&id=04f575d6&scoped=true&","webpack:///nextcloud/apps/files/src/services/Sidebar.js","webpack:///nextcloud/apps/files/src/models/Tab.js","webpack:///nextcloud/apps/files/src/sidebar.js","webpack:///nextcloud/apps/files/src/views/Sidebar.vue?vue&type=style&index=0&id=04f575d6&lang=scss&scoped=true&","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var map = {\n\t\"./af\": 36026,\n\t\"./af.js\": 36026,\n\t\"./ar\": 28093,\n\t\"./ar-dz\": 41943,\n\t\"./ar-dz.js\": 41943,\n\t\"./ar-kw\": 23969,\n\t\"./ar-kw.js\": 23969,\n\t\"./ar-ly\": 40594,\n\t\"./ar-ly.js\": 40594,\n\t\"./ar-ma\": 18369,\n\t\"./ar-ma.js\": 18369,\n\t\"./ar-sa\": 32579,\n\t\"./ar-sa.js\": 32579,\n\t\"./ar-tn\": 76442,\n\t\"./ar-tn.js\": 76442,\n\t\"./ar.js\": 28093,\n\t\"./az\": 86425,\n\t\"./az.js\": 86425,\n\t\"./be\": 22004,\n\t\"./be.js\": 22004,\n\t\"./bg\": 42982,\n\t\"./bg.js\": 42982,\n\t\"./bm\": 21067,\n\t\"./bm.js\": 21067,\n\t\"./bn\": 8366,\n\t\"./bn.js\": 8366,\n\t\"./bo\": 95040,\n\t\"./bo.js\": 95040,\n\t\"./br\": 521,\n\t\"./br.js\": 521,\n\t\"./bs\": 83242,\n\t\"./bs.js\": 83242,\n\t\"./ca\": 73046,\n\t\"./ca.js\": 73046,\n\t\"./cs\": 25794,\n\t\"./cs.js\": 25794,\n\t\"./cv\": 28231,\n\t\"./cv.js\": 28231,\n\t\"./cy\": 10927,\n\t\"./cy.js\": 10927,\n\t\"./da\": 42832,\n\t\"./da.js\": 42832,\n\t\"./de\": 29415,\n\t\"./de-at\": 3331,\n\t\"./de-at.js\": 3331,\n\t\"./de-ch\": 45524,\n\t\"./de-ch.js\": 45524,\n\t\"./de.js\": 29415,\n\t\"./dv\": 44700,\n\t\"./dv.js\": 44700,\n\t\"./el\": 88752,\n\t\"./el.js\": 88752,\n\t\"./en-SG\": 16706,\n\t\"./en-SG.js\": 16706,\n\t\"./en-au\": 90444,\n\t\"./en-au.js\": 90444,\n\t\"./en-ca\": 65959,\n\t\"./en-ca.js\": 65959,\n\t\"./en-gb\": 62762,\n\t\"./en-gb.js\": 62762,\n\t\"./en-ie\": 40909,\n\t\"./en-ie.js\": 40909,\n\t\"./en-il\": 79909,\n\t\"./en-il.js\": 79909,\n\t\"./en-nz\": 75200,\n\t\"./en-nz.js\": 75200,\n\t\"./eo\": 27447,\n\t\"./eo.js\": 27447,\n\t\"./es\": 86756,\n\t\"./es-do\": 47049,\n\t\"./es-do.js\": 47049,\n\t\"./es-us\": 57133,\n\t\"./es-us.js\": 57133,\n\t\"./es.js\": 86756,\n\t\"./et\": 72182,\n\t\"./et.js\": 72182,\n\t\"./eu\": 14419,\n\t\"./eu.js\": 14419,\n\t\"./fa\": 2916,\n\t\"./fa.js\": 2916,\n\t\"./fi\": 49964,\n\t\"./fi.js\": 49964,\n\t\"./fo\": 26094,\n\t\"./fo.js\": 26094,\n\t\"./fr\": 35833,\n\t\"./fr-ca\": 56994,\n\t\"./fr-ca.js\": 56994,\n\t\"./fr-ch\": 2740,\n\t\"./fr-ch.js\": 2740,\n\t\"./fr.js\": 35833,\n\t\"./fy\": 69542,\n\t\"./fy.js\": 69542,\n\t\"./ga\": 93264,\n\t\"./ga.js\": 93264,\n\t\"./gd\": 77457,\n\t\"./gd.js\": 77457,\n\t\"./gl\": 83043,\n\t\"./gl.js\": 83043,\n\t\"./gom-latn\": 28379,\n\t\"./gom-latn.js\": 28379,\n\t\"./gu\": 406,\n\t\"./gu.js\": 406,\n\t\"./he\": 73219,\n\t\"./he.js\": 73219,\n\t\"./hi\": 99834,\n\t\"./hi.js\": 99834,\n\t\"./hr\": 28754,\n\t\"./hr.js\": 28754,\n\t\"./hu\": 93945,\n\t\"./hu.js\": 93945,\n\t\"./hy-am\": 81319,\n\t\"./hy-am.js\": 81319,\n\t\"./id\": 24875,\n\t\"./id.js\": 24875,\n\t\"./is\": 23724,\n\t\"./is.js\": 23724,\n\t\"./it\": 79906,\n\t\"./it-ch\": 34303,\n\t\"./it-ch.js\": 34303,\n\t\"./it.js\": 79906,\n\t\"./ja\": 77105,\n\t\"./ja.js\": 77105,\n\t\"./jv\": 15026,\n\t\"./jv.js\": 15026,\n\t\"./ka\": 67416,\n\t\"./ka.js\": 67416,\n\t\"./kk\": 79734,\n\t\"./kk.js\": 79734,\n\t\"./km\": 60757,\n\t\"./km.js\": 60757,\n\t\"./kn\": 58369,\n\t\"./kn.js\": 58369,\n\t\"./ko\": 77687,\n\t\"./ko.js\": 77687,\n\t\"./ku\": 95544,\n\t\"./ku.js\": 95544,\n\t\"./ky\": 85431,\n\t\"./ky.js\": 85431,\n\t\"./lb\": 13613,\n\t\"./lb.js\": 13613,\n\t\"./lo\": 34252,\n\t\"./lo.js\": 34252,\n\t\"./lt\": 84619,\n\t\"./lt.js\": 84619,\n\t\"./lv\": 93760,\n\t\"./lv.js\": 93760,\n\t\"./me\": 93393,\n\t\"./me.js\": 93393,\n\t\"./mi\": 12369,\n\t\"./mi.js\": 12369,\n\t\"./mk\": 48664,\n\t\"./mk.js\": 48664,\n\t\"./ml\": 23099,\n\t\"./ml.js\": 23099,\n\t\"./mn\": 98539,\n\t\"./mn.js\": 98539,\n\t\"./mr\": 778,\n\t\"./mr.js\": 778,\n\t\"./ms\": 39970,\n\t\"./ms-my\": 82625,\n\t\"./ms-my.js\": 82625,\n\t\"./ms.js\": 39970,\n\t\"./mt\": 15714,\n\t\"./mt.js\": 15714,\n\t\"./my\": 53055,\n\t\"./my.js\": 53055,\n\t\"./nb\": 73945,\n\t\"./nb.js\": 73945,\n\t\"./ne\": 63645,\n\t\"./ne.js\": 63645,\n\t\"./nl\": 4829,\n\t\"./nl-be\": 12823,\n\t\"./nl-be.js\": 12823,\n\t\"./nl.js\": 4829,\n\t\"./nn\": 23756,\n\t\"./nn.js\": 23756,\n\t\"./pa-in\": 97877,\n\t\"./pa-in.js\": 97877,\n\t\"./pl\": 53066,\n\t\"./pl.js\": 53066,\n\t\"./pt\": 28677,\n\t\"./pt-br\": 81592,\n\t\"./pt-br.js\": 81592,\n\t\"./pt.js\": 28677,\n\t\"./ro\": 32722,\n\t\"./ro.js\": 32722,\n\t\"./ru\": 59138,\n\t\"./ru.js\": 59138,\n\t\"./sd\": 32568,\n\t\"./sd.js\": 32568,\n\t\"./se\": 49753,\n\t\"./se.js\": 49753,\n\t\"./si\": 58024,\n\t\"./si.js\": 58024,\n\t\"./sk\": 31058,\n\t\"./sk.js\": 31058,\n\t\"./sl\": 43452,\n\t\"./sl.js\": 43452,\n\t\"./sq\": 2795,\n\t\"./sq.js\": 2795,\n\t\"./sr\": 26976,\n\t\"./sr-cyrl\": 38819,\n\t\"./sr-cyrl.js\": 38819,\n\t\"./sr.js\": 26976,\n\t\"./ss\": 7467,\n\t\"./ss.js\": 7467,\n\t\"./sv\": 42787,\n\t\"./sv.js\": 42787,\n\t\"./sw\": 80298,\n\t\"./sw.js\": 80298,\n\t\"./ta\": 57532,\n\t\"./ta.js\": 57532,\n\t\"./te\": 76076,\n\t\"./te.js\": 76076,\n\t\"./tet\": 40452,\n\t\"./tet.js\": 40452,\n\t\"./tg\": 64794,\n\t\"./tg.js\": 64794,\n\t\"./th\": 48245,\n\t\"./th.js\": 48245,\n\t\"./tl-ph\": 36056,\n\t\"./tl-ph.js\": 36056,\n\t\"./tlh\": 15249,\n\t\"./tlh.js\": 15249,\n\t\"./tr\": 22053,\n\t\"./tr.js\": 22053,\n\t\"./tzl\": 39871,\n\t\"./tzl.js\": 39871,\n\t\"./tzm\": 39574,\n\t\"./tzm-latn\": 19210,\n\t\"./tzm-latn.js\": 19210,\n\t\"./tzm.js\": 39574,\n\t\"./ug-cn\": 91532,\n\t\"./ug-cn.js\": 91532,\n\t\"./uk\": 11432,\n\t\"./uk.js\": 11432,\n\t\"./ur\": 88523,\n\t\"./ur.js\": 88523,\n\t\"./uz\": 54958,\n\t\"./uz-latn\": 68735,\n\t\"./uz-latn.js\": 68735,\n\t\"./uz.js\": 54958,\n\t\"./vi\": 83398,\n\t\"./vi.js\": 83398,\n\t\"./x-pseudo\": 56665,\n\t\"./x-pseudo.js\": 56665,\n\t\"./yo\": 11642,\n\t\"./yo.js\": 11642,\n\t\"./zh-cn\": 5462,\n\t\"./zh-cn.js\": 5462,\n\t\"./zh-hk\": 92530,\n\t\"./zh-hk.js\": 92530,\n\t\"./zh-tw\": 97333,\n\t\"./zh-tw.js\": 97333\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 93365;","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport axios from '@nextcloud/axios'\n\n/**\n * @param {any} url -\n */\nexport default async function(url) {\n\tconst response = await axios({\n\t\tmethod: 'PROPFIND',\n\t\turl,\n\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t<d:propfind xmlns:d=\"DAV:\"\n\t\t\t\txmlns:oc=\"http://owncloud.org/ns\"\n\t\t\t\txmlns:nc=\"http://nextcloud.org/ns\"\n\t\t\t\txmlns:ocs=\"http://open-collaboration-services.org/ns\">\n\t\t\t<d:prop>\n\t\t\t\t<d:getlastmodified />\n\t\t\t\t<d:getetag />\n\t\t\t\t<d:getcontenttype />\n\t\t\t\t<d:resourcetype />\n\t\t\t\t<oc:fileid />\n\t\t\t\t<oc:permissions />\n\t\t\t\t<oc:size />\n\t\t\t\t<d:getcontentlength />\n\t\t\t\t<nc:has-preview />\n\t\t\t\t<nc:mount-type />\n\t\t\t\t<nc:is-encrypted />\n\t\t\t\t<ocs:share-permissions />\n\t\t\t\t<oc:tags />\n\t\t\t\t<oc:favorite />\n\t\t\t\t<oc:comments-unread />\n\t\t\t\t<oc:owner-id />\n\t\t\t\t<oc:owner-display-name />\n\t\t\t\t<oc:share-types />\n\t\t\t</d:prop>\n\t\t\t</d:propfind>`,\n\t})\n\n\t// TODO: create new parser or use cdav-lib when available\n\tconst file = OCA.Files.App.fileList.filesClient._client.parseMultiStatus(response.data)\n\t// TODO: create new parser or use cdav-lib when available\n\tconst fileInfo = OCA.Files.App.fileList.filesClient._parseFileInfo(file[0])\n\n\t// TODO remove when no more legacy backbone is used\n\tfileInfo.get = (key) => fileInfo[key]\n\tfileInfo.isDirectory = () => fileInfo.mimetype === 'httpd/unix-directory'\n\n\treturn fileInfo\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppSidebarTab',{ref:\"tab\",attrs:{\"id\":_vm.id,\"name\":_vm.name,\"icon\":_vm.icon},on:{\"bottomReached\":_vm.onScrollBottomReached}},[(_vm.loading)?_c('EmptyContent',{attrs:{\"icon\":\"icon-loading\"}}):_vm._e(),_vm._v(\" \"),_c('div',{ref:\"mount\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<AppSidebarTab :id=\"id\"\n\t\tref=\"tab\"\n\t\t:name=\"name\"\n\t\t:icon=\"icon\"\n\t\t@bottomReached=\"onScrollBottomReached\">\n\t\t<!-- Fallback loading -->\n\t\t<EmptyContent v-if=\"loading\" icon=\"icon-loading\" />\n\n\t\t<!-- Using a dummy div as Vue mount replace the element directly\n\t\t\tIt does NOT append to the content -->\n\t\t<div ref=\"mount\" />\n\t</AppSidebarTab>\n</template>\n\n<script>\nimport AppSidebarTab from '@nextcloud/vue/dist/Components/AppSidebarTab'\nimport EmptyContent from '@nextcloud/vue/dist/Components/EmptyContent'\n\nexport default {\n\tname: 'SidebarTab',\n\n\tcomponents: {\n\t\tAppSidebarTab,\n\t\tEmptyContent,\n\t},\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Lifecycle methods.\n\t\t * They are prefixed with `on` to avoid conflict with Vue\n\t\t * methods like this.destroy\n\t\t */\n\t\tonMount: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t\tonUpdate: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t\tonDestroy: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t\tonScrollBottomReached: {\n\t\t\ttype: Function,\n\t\t\tdefault: () => {},\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloading: true,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t// TODO: implement a better way to force pass a prop from Sidebar\n\t\tactiveTab() {\n\t\t\treturn this.$parent.activeTab\n\t\t},\n\t},\n\n\twatch: {\n\t\tasync fileInfo(newFile, oldFile) {\n\t\t\t// Update fileInfo on change\n\t\t\tif (newFile.id !== oldFile.id) {\n\t\t\t\tthis.loading = true\n\t\t\t\tawait this.onUpdate(this.fileInfo)\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n\n\tasync mounted() {\n\t\tthis.loading = true\n\t\t// Mount the tab: mounting point, fileInfo, vue context\n\t\tawait this.onMount(this.$refs.mount, this.fileInfo, this.$refs.tab)\n\t\tthis.loading = false\n\t},\n\n\tasync beforeDestroy() {\n\t\t// unmount the tab\n\t\tawait this.onDestroy()\n\t},\n}\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTab.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!./SidebarTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SidebarTab.vue?vue&type=template&id=695d5bae&\"\nimport script from \"./SidebarTab.vue?vue&type=script&lang=js&\"\nexport * from \"./SidebarTab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyView.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!./LegacyView.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<div />\n</template>\n<script>\nexport default {\n\tname: 'LegacyView',\n\tprops: {\n\t\tcomponent: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t},\n\twatch: {\n\t\tfileInfo(fileInfo) {\n\t\t\t// update the backbone model FileInfo\n\t\t\tthis.setFileInfo(fileInfo)\n\t\t},\n\t},\n\tmounted() {\n\t\t// append the backbone element and set the FileInfo\n\t\tthis.component.$el.replaceAll(this.$el)\n\t\tthis.setFileInfo(this.fileInfo)\n\t},\n\tmethods: {\n\t\tsetFileInfo(fileInfo) {\n\t\t\tthis.component.setFileInfo(new OCA.Files.FileInfoModel(fileInfo))\n\t\t},\n\t},\n}\n</script>\n<style>\n</style>\n","import { render, staticRenderFns } from \"./LegacyView.vue?vue&type=template&id=2245cbe7&\"\nimport script from \"./LegacyView.vue?vue&type=script&lang=js&\"\nexport * from \"./LegacyView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<AppSidebar v-if=\"file\"\n\t\tref=\"sidebar\"\n\t\tv-bind=\"appSidebar\"\n\t\t:force-menu=\"true\"\n\t\t@close=\"close\"\n\t\t@update:active=\"setActiveTab\"\n\t\t@update:starred=\"toggleStarred\"\n\t\t@[defaultActionListener].stop.prevent=\"onDefaultAction\"\n\t\t@opening=\"handleOpening\"\n\t\t@opened=\"handleOpened\"\n\t\t@closing=\"handleClosing\"\n\t\t@closed=\"handleClosed\">\n\t\t<!-- TODO: create a standard to allow multiple elements here? -->\n\t\t<template v-if=\"fileInfo\" #description>\n\t\t\t<LegacyView v-for=\"view in views\"\n\t\t\t\t:key=\"view.cid\"\n\t\t\t\t:component=\"view\"\n\t\t\t\t:file-info=\"fileInfo\" />\n\t\t</template>\n\n\t\t<!-- Actions menu -->\n\t\t<template v-if=\"fileInfo\" #secondary-actions>\n\t\t\t<!-- TODO: create proper api for apps to register actions\n\t\t\tAnd inject themselves here. -->\n\t\t\t<ActionButton v-if=\"isSystemTagsEnabled\"\n\t\t\t\t:close-after-click=\"true\"\n\t\t\t\ticon=\"icon-tag\"\n\t\t\t\t@click=\"toggleTags\">\n\t\t\t\t{{ t('files', 'Tags') }}\n\t\t\t</ActionButton>\n\t\t</template>\n\n\t\t<!-- Error display -->\n\t\t<EmptyContent v-if=\"error\" icon=\"icon-error\">\n\t\t\t{{ error }}\n\t\t</EmptyContent>\n\n\t\t<!-- If fileInfo fetch is complete, render tabs -->\n\t\t<template v-for=\"tab in tabs\" v-else-if=\"fileInfo\">\n\t\t\t<!-- Hide them if we're loading another file but keep them mounted -->\n\t\t\t<SidebarTab v-if=\"tab.enabled(fileInfo)\"\n\t\t\t\tv-show=\"!loading\"\n\t\t\t\t:id=\"tab.id\"\n\t\t\t\t:key=\"tab.id\"\n\t\t\t\t:name=\"tab.name\"\n\t\t\t\t:icon=\"tab.icon\"\n\t\t\t\t:on-mount=\"tab.mount\"\n\t\t\t\t:on-update=\"tab.update\"\n\t\t\t\t:on-destroy=\"tab.destroy\"\n\t\t\t\t:on-scroll-bottom-reached=\"tab.scrollBottomReached\"\n\t\t\t\t:file-info=\"fileInfo\" />\n\t\t</template>\n\t</AppSidebar>\n</template>\n<script>\nimport { encodePath } from '@nextcloud/paths'\nimport $ from 'jquery'\nimport axios from '@nextcloud/axios'\nimport { emit } from '@nextcloud/event-bus'\nimport moment from '@nextcloud/moment'\nimport { Type as ShareTypes } from '@nextcloud/sharing'\n\nimport AppSidebar from '@nextcloud/vue/dist/Components/AppSidebar'\nimport ActionButton from '@nextcloud/vue/dist/Components/ActionButton'\nimport EmptyContent from '@nextcloud/vue/dist/Components/EmptyContent'\n\nimport FileInfo from '../services/FileInfo'\nimport SidebarTab from '../components/SidebarTab'\nimport LegacyView from '../components/LegacyView'\n\nexport default {\n\tname: 'Sidebar',\n\n\tcomponents: {\n\t\tActionButton,\n\t\tAppSidebar,\n\t\tEmptyContent,\n\t\tLegacyView,\n\t\tSidebarTab,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// reactive state\n\t\t\tSidebar: OCA.Files.Sidebar.state,\n\t\t\terror: null,\n\t\t\tloading: true,\n\t\t\tfileInfo: null,\n\t\t\tstarLoading: false,\n\t\t\tisFullScreen: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Current filename\n\t\t * This is bound to the Sidebar service and\n\t\t * is used to load a new file\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tfile() {\n\t\t\treturn this.Sidebar.file\n\t\t},\n\n\t\t/**\n\t\t * List of all the registered tabs\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\ttabs() {\n\t\t\treturn this.Sidebar.tabs\n\t\t},\n\n\t\t/**\n\t\t * List of all the registered views\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\tviews() {\n\t\t\treturn this.Sidebar.views\n\t\t},\n\n\t\t/**\n\t\t * Current user dav root path\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tdavPath() {\n\t\t\tconst user = OC.getCurrentUser().uid\n\t\t\treturn OC.linkToRemote(`dav/files/${user}${encodePath(this.file)}`)\n\t\t},\n\n\t\t/**\n\t\t * Current active tab handler\n\t\t *\n\t\t * @param {string} id the tab id to set as active\n\t\t * @return {string} the current active tab\n\t\t */\n\t\tactiveTab() {\n\t\t\treturn this.Sidebar.activeTab\n\t\t},\n\n\t\t/**\n\t\t * Sidebar subtitle\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tsubtitle() {\n\t\t\treturn `${this.size}, ${this.time}`\n\t\t},\n\n\t\t/**\n\t\t * File last modified formatted string\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\ttime() {\n\t\t\treturn OC.Util.relativeModifiedDate(this.fileInfo.mtime)\n\t\t},\n\n\t\t/**\n\t\t * File last modified full string\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tfullTime() {\n\t\t\treturn moment(this.fileInfo.mtime).format('LLL')\n\t\t},\n\n\t\t/**\n\t\t * File size formatted string\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tsize() {\n\t\t\treturn OC.Util.humanFileSize(this.fileInfo.size)\n\t\t},\n\n\t\t/**\n\t\t * File background/figure to illustrate the sidebar header\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tbackground() {\n\t\t\treturn this.getPreviewIfAny(this.fileInfo)\n\t\t},\n\n\t\t/**\n\t\t * App sidebar v-binding object\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\tappSidebar() {\n\t\t\tif (this.fileInfo) {\n\t\t\t\treturn {\n\t\t\t\t\t'data-mimetype': this.fileInfo.mimetype,\n\t\t\t\t\t'star-loading': this.starLoading,\n\t\t\t\t\tactive: this.activeTab,\n\t\t\t\t\tbackground: this.background,\n\t\t\t\t\tclass: {\n\t\t\t\t\t\t'app-sidebar--has-preview': this.fileInfo.hasPreview,\n\t\t\t\t\t\t'app-sidebar--full': this.isFullScreen,\n\t\t\t\t\t},\n\t\t\t\t\tcompact: !this.fileInfo.hasPreview,\n\t\t\t\t\tloading: this.loading,\n\t\t\t\t\tstarred: this.fileInfo.isFavourited,\n\t\t\t\t\tsubtitle: this.subtitle,\n\t\t\t\t\tsubtitleTooltip: this.fullTime,\n\t\t\t\t\ttitle: this.fileInfo.name,\n\t\t\t\t\ttitleTooltip: this.fileInfo.name,\n\t\t\t\t}\n\t\t\t} else if (this.error) {\n\t\t\t\treturn {\n\t\t\t\t\tkey: 'error', // force key to re-render\n\t\t\t\t\tsubtitle: '',\n\t\t\t\t\ttitle: '',\n\t\t\t\t}\n\t\t\t}\n\t\t\t// no fileInfo yet, showing empty data\n\t\t\treturn {\n\t\t\t\tloading: this.loading,\n\t\t\t\tsubtitle: '',\n\t\t\t\ttitle: '',\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Default action object for the current file\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\tdefaultAction() {\n\t\t\treturn this.fileInfo\n\t\t\t\t&& OCA.Files && OCA.Files.App && OCA.Files.App.fileList\n\t\t\t\t&& OCA.Files.App.fileList.fileActions\n\t\t\t\t&& OCA.Files.App.fileList.fileActions.getDefaultFileAction\n\t\t\t\t&& OCA.Files.App.fileList\n\t\t\t\t\t.fileActions.getDefaultFileAction(this.fileInfo.mimetype, this.fileInfo.type, OC.PERMISSION_READ)\n\n\t\t},\n\n\t\t/**\n\t\t * Dynamic header click listener to ensure\n\t\t * nothing is listening for a click if there\n\t\t * is no default action\n\t\t *\n\t\t * @return {string|null}\n\t\t */\n\t\tdefaultActionListener() {\n\t\t\treturn this.defaultAction ? 'figure-click' : null\n\t\t},\n\n\t\tisSystemTagsEnabled() {\n\t\t\treturn OCA && 'SystemTags' in OCA\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Can this tab be displayed ?\n\t\t *\n\t\t * @param {object} tab a registered tab\n\t\t * @return {boolean}\n\t\t */\n\t\tcanDisplay(tab) {\n\t\t\treturn tab.enabled(this.fileInfo)\n\t\t},\n\t\tresetData() {\n\t\t\tthis.error = null\n\t\t\tthis.fileInfo = null\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tif (this.$refs.tabs) {\n\t\t\t\t\tthis.$refs.tabs.updateTabs()\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\tgetPreviewIfAny(fileInfo) {\n\t\t\tif (fileInfo.hasPreview) {\n\t\t\t\treturn OC.generateUrl(`/core/preview?fileId=${fileInfo.id}&x=${screen.width}&y=${screen.height}&a=true`)\n\t\t\t}\n\t\t\treturn this.getIconUrl(fileInfo)\n\t\t},\n\n\t\t/**\n\t\t * Copied from https://github.com/nextcloud/server/blob/16e0887ec63591113ee3f476e0c5129e20180cde/apps/files/js/filelist.js#L1377\n\t\t * TODO: We also need this as a standalone library\n\t\t *\n\t\t * @param {object} fileInfo the fileinfo\n\t\t * @return {string} Url to the icon for mimeType\n\t\t */\n\t\tgetIconUrl(fileInfo) {\n\t\t\tconst mimeType = fileInfo.mimetype || 'application/octet-stream'\n\t\t\tif (mimeType === 'httpd/unix-directory') {\n\t\t\t\t// use default folder icon\n\t\t\t\tif (fileInfo.mountType === 'shared' || fileInfo.mountType === 'shared-root') {\n\t\t\t\t\treturn OC.MimeType.getIconUrl('dir-shared')\n\t\t\t\t} else if (fileInfo.mountType === 'external-root') {\n\t\t\t\t\treturn OC.MimeType.getIconUrl('dir-external')\n\t\t\t\t} else if (fileInfo.mountType !== undefined && fileInfo.mountType !== '') {\n\t\t\t\t\treturn OC.MimeType.getIconUrl('dir-' + fileInfo.mountType)\n\t\t\t\t} else if (fileInfo.shareTypes && (\n\t\t\t\t\tfileInfo.shareTypes.indexOf(ShareTypes.SHARE_TYPE_LINK) > -1\n\t\t\t\t\t|| fileInfo.shareTypes.indexOf(ShareTypes.SHARE_TYPE_EMAIL) > -1)\n\t\t\t\t) {\n\t\t\t\t\treturn OC.MimeType.getIconUrl('dir-public')\n\t\t\t\t} else if (fileInfo.shareTypes && fileInfo.shareTypes.length > 0) {\n\t\t\t\t\treturn OC.MimeType.getIconUrl('dir-shared')\n\t\t\t\t}\n\t\t\t\treturn OC.MimeType.getIconUrl('dir')\n\t\t\t}\n\t\t\treturn OC.MimeType.getIconUrl(mimeType)\n\t\t},\n\n\t\t/**\n\t\t * Set current active tab\n\t\t *\n\t\t * @param {string} id tab unique id\n\t\t */\n\t\tsetActiveTab(id) {\n\t\t\tOCA.Files.Sidebar.setActiveTab(id)\n\t\t},\n\n\t\t/**\n\t\t * Toggle favourite state\n\t\t * TODO: better implementation\n\t\t *\n\t\t * @param {boolean} state favourited or not\n\t\t */\n\t\tasync toggleStarred(state) {\n\t\t\ttry {\n\t\t\t\tthis.starLoading = true\n\t\t\t\tawait axios({\n\t\t\t\t\tmethod: 'PROPPATCH',\n\t\t\t\t\turl: this.davPath,\n\t\t\t\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t\t\t\t<d:propertyupdate xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\n\t\t\t\t\t\t${state ? '<d:set>' : '<d:remove>'}\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t${state ? '</d:set>' : '</d:remove>'}\n\t\t\t\t\t\t</d:propertyupdate>`,\n\t\t\t\t})\n\n\t\t\t\t// TODO: Obliterate as soon as possible and use events with new files app\n\t\t\t\t// Terrible fallback for legacy files: toggle filelist as well\n\t\t\t\tif (OCA.Files && OCA.Files.App && OCA.Files.App.fileList && OCA.Files.App.fileList.fileActions) {\n\t\t\t\t\tOCA.Files.App.fileList.fileActions.triggerAction('Favorite', OCA.Files.App.fileList.getModelForFile(this.fileInfo.name), OCA.Files.App.fileList)\n\t\t\t\t}\n\n\t\t\t} catch (error) {\n\t\t\t\tOC.Notification.showTemporary(t('files', 'Unable to change the favourite state of the file'))\n\t\t\t\tconsole.error('Unable to change favourite state', error)\n\t\t\t}\n\t\t\tthis.starLoading = false\n\t\t},\n\n\t\tonDefaultAction() {\n\t\t\tif (this.defaultAction) {\n\t\t\t\t// generate fake context\n\t\t\t\tthis.defaultAction.action(this.fileInfo.name, {\n\t\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\t\tdir: this.fileInfo.dir,\n\t\t\t\t\tfileList: OCA.Files.App.fileList,\n\t\t\t\t\t$file: $('body'),\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Toggle the tags selector\n\t\t */\n\t\ttoggleTags() {\n\t\t\tif (OCA.SystemTags && OCA.SystemTags.View) {\n\t\t\t\tOCA.SystemTags.View.toggle()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Open the sidebar for the given file\n\t\t *\n\t\t * @param {string} path the file path to load\n\t\t * @return {Promise}\n\t\t * @throws {Error} loading failure\n\t\t */\n\t\tasync open(path) {\n\t\t\t// update current opened file\n\t\t\tthis.Sidebar.file = path\n\n\t\t\tif (path && path.trim() !== '') {\n\t\t\t\t// reset data, keep old fileInfo to not reload all tabs and just hide them\n\t\t\t\tthis.error = null\n\t\t\t\tthis.loading = true\n\n\t\t\t\ttry {\n\t\t\t\t\tthis.fileInfo = await FileInfo(this.davPath)\n\t\t\t\t\t// adding this as fallback because other apps expect it\n\t\t\t\t\tthis.fileInfo.dir = this.file.split('/').slice(0, -1).join('/')\n\n\t\t\t\t\t// DEPRECATED legacy views\n\t\t\t\t\t// TODO: remove\n\t\t\t\t\tthis.views.forEach(view => {\n\t\t\t\t\t\tview.setFileInfo(this.fileInfo)\n\t\t\t\t\t})\n\n\t\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\t\tif (this.$refs.tabs) {\n\t\t\t\t\t\t\tthis.$refs.tabs.updateTabs()\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.error = t('files', 'Error while loading the file data')\n\t\t\t\t\tconsole.error('Error while loading the file data', error)\n\n\t\t\t\t\tthrow new Error(error)\n\t\t\t\t} finally {\n\t\t\t\t\tthis.loading = false\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Close the sidebar\n\t\t */\n\t\tclose() {\n\t\t\tthis.Sidebar.file = ''\n\t\t\tthis.resetData()\n\t\t},\n\n\t\t/**\n\t\t * Allow to set the Sidebar as fullscreen from OCA.Files.Sidebar\n\t\t *\n\t\t * @param {boolean} isFullScreen - Wether or not to render the Sidebar in fullscreen.\n\t\t */\n\t\tsetFullScreenMode(isFullScreen) {\n\t\t\tthis.isFullScreen = isFullScreen\n\t\t},\n\n\t\t/**\n\t\t * Emit SideBar events.\n\t\t */\n\t\thandleOpening() {\n\t\t\temit('files:sidebar:opening')\n\t\t},\n\t\thandleOpened() {\n\t\t\temit('files:sidebar:opened')\n\t\t},\n\t\thandleClosing() {\n\t\t\temit('files:sidebar:closing')\n\t\t},\n\t\thandleClosed() {\n\t\t\temit('files:sidebar:closed')\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n.app-sidebar {\n\t&--has-preview::v-deep {\n\t\t.app-sidebar-header__figure {\n\t\t\tbackground-size: cover;\n\t\t}\n\n\t\t&[data-mimetype=\"text/plain\"],\n\t\t&[data-mimetype=\"text/markdown\"] {\n\t\t\t.app-sidebar-header__figure {\n\t\t\t\tbackground-size: contain;\n\t\t\t}\n\t\t}\n\t}\n\n\t&--full {\n\t\tposition: fixed !important;\n\t\tz-index: 2025 !important;\n\t\ttop: 0 !important;\n\t\theight: 100% !important;\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.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!./Sidebar.vue?vue&type=script&lang=js&\"","\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!./Sidebar.vue?vue&type=style&index=0&id=04f575d6&lang=scss&scoped=true&\";\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!./Sidebar.vue?vue&type=style&index=0&id=04f575d6&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Sidebar.vue?vue&type=template&id=04f575d6&scoped=true&\"\nimport script from \"./Sidebar.vue?vue&type=script&lang=js&\"\nexport * from \"./Sidebar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Sidebar.vue?vue&type=style&index=0&id=04f575d6&lang=scss&scoped=true&\"\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 \"04f575d6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.file)?_c('AppSidebar',_vm._b({ref:\"sidebar\",attrs:{\"force-menu\":true},on:_vm._d({\"close\":_vm.close,\"update:active\":_vm.setActiveTab,\"update:starred\":_vm.toggleStarred,\"opening\":_vm.handleOpening,\"opened\":_vm.handleOpened,\"closing\":_vm.handleClosing,\"closed\":_vm.handleClosed},[_vm.defaultActionListener,function($event){$event.stopPropagation();$event.preventDefault();return _vm.onDefaultAction.apply(null, arguments)}]),scopedSlots:_vm._u([(_vm.fileInfo)?{key:\"description\",fn:function(){return _vm._l((_vm.views),function(view){return _c('LegacyView',{key:view.cid,attrs:{\"component\":view,\"file-info\":_vm.fileInfo}})})},proxy:true}:null,(_vm.fileInfo)?{key:\"secondary-actions\",fn:function(){return [(_vm.isSystemTagsEnabled)?_c('ActionButton',{attrs:{\"close-after-click\":true,\"icon\":\"icon-tag\"},on:{\"click\":_vm.toggleTags}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Tags'))+\"\\n\\t\\t\")]):_vm._e()]},proxy:true}:null],null,true)},'AppSidebar',_vm.appSidebar,false),[_vm._v(\" \"),_vm._v(\" \"),(_vm.error)?_c('EmptyContent',{attrs:{\"icon\":\"icon-error\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.error)+\"\\n\\t\")]):(_vm.fileInfo)?_vm._l((_vm.tabs),function(tab){return [(tab.enabled(_vm.fileInfo))?_c('SidebarTab',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.loading),expression:\"!loading\"}],key:tab.id,attrs:{\"id\":tab.id,\"name\":tab.name,\"icon\":tab.icon,\"on-mount\":tab.mount,\"on-update\":tab.update,\"on-destroy\":tab.destroy,\"on-scroll-bottom-reached\":tab.scrollBottomReached,\"file-info\":_vm.fileInfo}}):_vm._e()]}):_vm._e()],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default class Sidebar {\n\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.tabs = []\n\t\tthis._state.views = []\n\t\tthis._state.file = ''\n\t\tthis._state.activeTab = ''\n\t\tconsole.debug('OCA.Files.Sidebar initialized')\n\t}\n\n\t/**\n\t * Get the sidebar state\n\t *\n\t * @readonly\n\t * @memberof Sidebar\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * Register a new tab view\n\t *\n\t * @memberof Sidebar\n\t * @param {object} tab a new unregistered tab\n\t * @return {boolean}\n\t */\n\tregisterTab(tab) {\n\t\tconst hasDuplicate = this._state.tabs.findIndex(check => check.id === tab.id) > -1\n\t\tif (!hasDuplicate) {\n\t\t\tthis._state.tabs.push(tab)\n\t\t\treturn true\n\t\t}\n\t\tconsole.error(`An tab with the same id ${tab.id} already exists`, tab)\n\t\treturn false\n\t}\n\n\tregisterSecondaryView(view) {\n\t\tconst hasDuplicate = this._state.views.findIndex(check => check.id === view.id) > -1\n\t\tif (!hasDuplicate) {\n\t\t\tthis._state.views.push(view)\n\t\t\treturn true\n\t\t}\n\t\tconsole.error('A similar view already exists', view)\n\t\treturn false\n\t}\n\n\t/**\n\t * Return current opened file\n\t *\n\t * @memberof Sidebar\n\t * @return {string} the current opened file\n\t */\n\tget file() {\n\t\treturn this._state.file\n\t}\n\n\t/**\n\t * Set the current visible sidebar tab\n\t *\n\t * @memberof Sidebar\n\t * @param {string} id the tab unique id\n\t */\n\tsetActiveTab(id) {\n\t\tthis._state.activeTab = id\n\t}\n\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default class Tab {\n\n\t_id\n\t_name\n\t_icon\n\t_mount\n\t_update\n\t_destroy\n\t_enabled\n\t_scrollBottomReached\n\n\t/**\n\t * Create a new tab instance\n\t *\n\t * @param {object} options destructuring object\n\t * @param {string} options.id the unique id of this tab\n\t * @param {string} options.name the translated tab name\n\t * @param {string} options.icon the vue component\n\t * @param {Function} options.mount function to mount the tab\n\t * @param {Function} options.update function to update the tab\n\t * @param {Function} options.destroy function to destroy the tab\n\t * @param {Function} [options.enabled] define conditions whether this tab is active. Must returns a boolean\n\t * @param {Function} [options.scrollBottomReached] executed when the tab is scrolled to the bottom\n\t */\n\tconstructor({ id, name, icon, mount, update, destroy, enabled, scrollBottomReached } = {}) {\n\t\tif (enabled === undefined) {\n\t\t\tenabled = () => true\n\t\t}\n\t\tif (scrollBottomReached === undefined) {\n\t\t\tscrollBottomReached = () => {}\n\t\t}\n\n\t\t// Sanity checks\n\t\tif (typeof id !== 'string' || id.trim() === '') {\n\t\t\tthrow new Error('The id argument is not a valid string')\n\t\t}\n\t\tif (typeof name !== 'string' || name.trim() === '') {\n\t\t\tthrow new Error('The name argument is not a valid string')\n\t\t}\n\t\tif (typeof icon !== 'string' || icon.trim() === '') {\n\t\t\tthrow new Error('The icon argument is not a valid string')\n\t\t}\n\t\tif (typeof mount !== 'function') {\n\t\t\tthrow new Error('The mount argument should be a function')\n\t\t}\n\t\tif (typeof update !== 'function') {\n\t\t\tthrow new Error('The update argument should be a function')\n\t\t}\n\t\tif (typeof destroy !== 'function') {\n\t\t\tthrow new Error('The destroy argument should be a function')\n\t\t}\n\t\tif (typeof enabled !== 'function') {\n\t\t\tthrow new Error('The enabled argument should be a function')\n\t\t}\n\t\tif (typeof scrollBottomReached !== 'function') {\n\t\t\tthrow new Error('The scrollBottomReached argument should be a function')\n\t\t}\n\n\t\tthis._id = id\n\t\tthis._name = name\n\t\tthis._icon = icon\n\t\tthis._mount = mount\n\t\tthis._update = update\n\t\tthis._destroy = destroy\n\t\tthis._enabled = enabled\n\t\tthis._scrollBottomReached = scrollBottomReached\n\n\t}\n\n\tget id() {\n\t\treturn this._id\n\t}\n\n\tget name() {\n\t\treturn this._name\n\t}\n\n\tget icon() {\n\t\treturn this._icon\n\t}\n\n\tget mount() {\n\t\treturn this._mount\n\t}\n\n\tget update() {\n\t\treturn this._update\n\t}\n\n\tget destroy() {\n\t\treturn this._destroy\n\t}\n\n\tget enabled() {\n\t\treturn this._enabled\n\t}\n\n\tget scrollBottomReached() {\n\t\treturn this._scrollBottomReached\n\t}\n\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport { translate as t } from '@nextcloud/l10n'\n\nimport SidebarView from './views/Sidebar.vue'\nimport Sidebar from './services/Sidebar'\nimport Tab from './models/Tab'\n\nVue.prototype.t = t\n\n// Init Sidebar Service\nif (!window.OCA.Files) {\n\twindow.OCA.Files = {}\n}\nObject.assign(window.OCA.Files, { Sidebar: new Sidebar() })\nObject.assign(window.OCA.Files.Sidebar, { Tab })\n\nconsole.debug('OCA.Files.Sidebar initialized')\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\tconst contentElement = document.querySelector('body > .content')\n\t\t|| document.querySelector('body > #content')\n\n\t// Make sure we have a proper layout\n\tif (contentElement) {\n\t\t// Make sure we have a mountpoint\n\t\tif (!document.getElementById('app-sidebar')) {\n\t\t\tconst sidebarElement = document.createElement('div')\n\t\t\tsidebarElement.id = 'app-sidebar'\n\t\t\tcontentElement.appendChild(sidebarElement)\n\t\t}\n\t}\n\n\t// Init vue app\n\tconst View = Vue.extend(SidebarView)\n\tconst AppSidebar = new View({\n\t\tname: 'SidebarRoot',\n\t})\n\tAppSidebar.$mount('#app-sidebar')\n\twindow.OCA.Files.Sidebar.open = AppSidebar.open\n\twindow.OCA.Files.Sidebar.close = AppSidebar.close\n\twindow.OCA.Files.Sidebar.setFullScreenMode = AppSidebar.setFullScreenMode\n})\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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, \".app-sidebar--has-preview[data-v-04f575d6] .app-sidebar-header__figure{background-size:cover}.app-sidebar--has-preview[data-v-04f575d6][data-mimetype=\\\"text/plain\\\"] .app-sidebar-header__figure,.app-sidebar--has-preview[data-v-04f575d6][data-mimetype=\\\"text/markdown\\\"] .app-sidebar-header__figure{background-size:contain}.app-sidebar--full[data-v-04f575d6]{position:fixed !important;z-index:2025 !important;top:0 !important;height:100% !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Sidebar.vue\"],\"names\":[],\"mappings\":\"AAoeE,uEACC,qBAAA,CAKA,yMACC,uBAAA,CAKH,oCACC,yBAAA,CACA,uBAAA,CACA,gBAAA,CACA,sBAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.app-sidebar {\\n\\t&--has-preview::v-deep {\\n\\t\\t.app-sidebar-header__figure {\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\n\\t\\t&[data-mimetype=\\\"text/plain\\\"],\\n\\t\\t&[data-mimetype=\\\"text/markdown\\\"] {\\n\\t\\t\\t.app-sidebar-header__figure {\\n\\t\\t\\t\\tbackground-size: contain;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&--full {\\n\\t\\tposition: fixed !important;\\n\\t\\tz-index: 2025 !important;\\n\\t\\ttop: 0 !important;\\n\\t\\theight: 100% !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 92;","// no baseURI\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\t92: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// 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, [874], function() { return __webpack_require__(23056); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","url","axios","method","data","response","file","OCA","Files","App","fileList","filesClient","_client","parseMultiStatus","fileInfo","_parseFileInfo","get","key","isDirectory","mimetype","_vm","this","_h","$createElement","_c","_self","ref","attrs","name","icon","on","onScrollBottomReached","_e","_v","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_b","_d","close","setActiveTab","toggleStarred","handleOpening","handleOpened","handleClosing","handleClosed","defaultActionListener","$event","stopPropagation","preventDefault","onDefaultAction","apply","arguments","scopedSlots","_u","fn","_l","view","cid","proxy","toggleTags","_s","t","appSidebar","error","tab","enabled","directives","rawName","value","loading","expression","mount","update","destroy","scrollBottomReached","Sidebar","_state","tabs","views","activeTab","console","debug","findIndex","check","push","Tab","undefined","trim","_id","_name","_icon","_mount","_update","_destroy","_enabled","_scrollBottomReached","Vue","window","assign","addEventListener","contentElement","document","querySelector","getElementById","sidebarElement","createElement","appendChild","AppSidebar","SidebarView","$mount","open","setFullScreenMode","___CSS_LOADER_EXPORT___","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","call","m","amdD","amdO","O","result","chunkIds","priority","notFulfilled","Infinity","i","length","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","defineProperty","enumerable","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"files-sidebar.js?v=db70d959033682e4f618","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/node_modules/@nextcloud/moment/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/apps/files/src/services/FileInfo.js","webpack:///nextcloud/apps/files/src/components/SidebarTab.vue?vue&type=template&id=695d5bae&","webpack:///nextcloud/apps/files/src/components/SidebarTab.vue","webpack:///nextcloud/apps/files/src/components/SidebarTab.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/components/SidebarTab.vue?7aea","webpack:///nextcloud/apps/files/src/components/LegacyView.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/files/src/components/LegacyView.vue","webpack://nextcloud/./apps/files/src/components/LegacyView.vue?a2e2","webpack:///nextcloud/apps/files/src/components/LegacyView.vue?vue&type=template&id=2245cbe7&","webpack:///nextcloud/apps/files/src/views/Sidebar.vue","webpack:///nextcloud/apps/files/src/views/Sidebar.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/views/Sidebar.vue?c3b5","webpack://nextcloud/./apps/files/src/views/Sidebar.vue?0b21","webpack:///nextcloud/apps/files/src/views/Sidebar.vue?vue&type=template&id=04f575d6&scoped=true&","webpack:///nextcloud/apps/files/src/services/Sidebar.js","webpack:///nextcloud/apps/files/src/models/Tab.js","webpack:///nextcloud/apps/files/src/sidebar.js","webpack:///nextcloud/apps/files/src/views/Sidebar.vue?vue&type=style&index=0&id=04f575d6&lang=scss&scoped=true&","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var map = {\n\t\"./af\": 36026,\n\t\"./af.js\": 36026,\n\t\"./ar\": 28093,\n\t\"./ar-dz\": 41943,\n\t\"./ar-dz.js\": 41943,\n\t\"./ar-kw\": 23969,\n\t\"./ar-kw.js\": 23969,\n\t\"./ar-ly\": 40594,\n\t\"./ar-ly.js\": 40594,\n\t\"./ar-ma\": 18369,\n\t\"./ar-ma.js\": 18369,\n\t\"./ar-sa\": 32579,\n\t\"./ar-sa.js\": 32579,\n\t\"./ar-tn\": 76442,\n\t\"./ar-tn.js\": 76442,\n\t\"./ar.js\": 28093,\n\t\"./az\": 86425,\n\t\"./az.js\": 86425,\n\t\"./be\": 22004,\n\t\"./be.js\": 22004,\n\t\"./bg\": 42982,\n\t\"./bg.js\": 42982,\n\t\"./bm\": 21067,\n\t\"./bm.js\": 21067,\n\t\"./bn\": 8366,\n\t\"./bn.js\": 8366,\n\t\"./bo\": 95040,\n\t\"./bo.js\": 95040,\n\t\"./br\": 521,\n\t\"./br.js\": 521,\n\t\"./bs\": 83242,\n\t\"./bs.js\": 83242,\n\t\"./ca\": 73046,\n\t\"./ca.js\": 73046,\n\t\"./cs\": 25794,\n\t\"./cs.js\": 25794,\n\t\"./cv\": 28231,\n\t\"./cv.js\": 28231,\n\t\"./cy\": 10927,\n\t\"./cy.js\": 10927,\n\t\"./da\": 42832,\n\t\"./da.js\": 42832,\n\t\"./de\": 29415,\n\t\"./de-at\": 3331,\n\t\"./de-at.js\": 3331,\n\t\"./de-ch\": 45524,\n\t\"./de-ch.js\": 45524,\n\t\"./de.js\": 29415,\n\t\"./dv\": 44700,\n\t\"./dv.js\": 44700,\n\t\"./el\": 88752,\n\t\"./el.js\": 88752,\n\t\"./en-SG\": 16706,\n\t\"./en-SG.js\": 16706,\n\t\"./en-au\": 90444,\n\t\"./en-au.js\": 90444,\n\t\"./en-ca\": 65959,\n\t\"./en-ca.js\": 65959,\n\t\"./en-gb\": 62762,\n\t\"./en-gb.js\": 62762,\n\t\"./en-ie\": 40909,\n\t\"./en-ie.js\": 40909,\n\t\"./en-il\": 79909,\n\t\"./en-il.js\": 79909,\n\t\"./en-nz\": 75200,\n\t\"./en-nz.js\": 75200,\n\t\"./eo\": 27447,\n\t\"./eo.js\": 27447,\n\t\"./es\": 86756,\n\t\"./es-do\": 47049,\n\t\"./es-do.js\": 47049,\n\t\"./es-us\": 57133,\n\t\"./es-us.js\": 57133,\n\t\"./es.js\": 86756,\n\t\"./et\": 72182,\n\t\"./et.js\": 72182,\n\t\"./eu\": 14419,\n\t\"./eu.js\": 14419,\n\t\"./fa\": 2916,\n\t\"./fa.js\": 2916,\n\t\"./fi\": 49964,\n\t\"./fi.js\": 49964,\n\t\"./fo\": 26094,\n\t\"./fo.js\": 26094,\n\t\"./fr\": 35833,\n\t\"./fr-ca\": 56994,\n\t\"./fr-ca.js\": 56994,\n\t\"./fr-ch\": 2740,\n\t\"./fr-ch.js\": 2740,\n\t\"./fr.js\": 35833,\n\t\"./fy\": 69542,\n\t\"./fy.js\": 69542,\n\t\"./ga\": 93264,\n\t\"./ga.js\": 93264,\n\t\"./gd\": 77457,\n\t\"./gd.js\": 77457,\n\t\"./gl\": 83043,\n\t\"./gl.js\": 83043,\n\t\"./gom-latn\": 28379,\n\t\"./gom-latn.js\": 28379,\n\t\"./gu\": 406,\n\t\"./gu.js\": 406,\n\t\"./he\": 73219,\n\t\"./he.js\": 73219,\n\t\"./hi\": 99834,\n\t\"./hi.js\": 99834,\n\t\"./hr\": 28754,\n\t\"./hr.js\": 28754,\n\t\"./hu\": 93945,\n\t\"./hu.js\": 93945,\n\t\"./hy-am\": 81319,\n\t\"./hy-am.js\": 81319,\n\t\"./id\": 24875,\n\t\"./id.js\": 24875,\n\t\"./is\": 23724,\n\t\"./is.js\": 23724,\n\t\"./it\": 79906,\n\t\"./it-ch\": 34303,\n\t\"./it-ch.js\": 34303,\n\t\"./it.js\": 79906,\n\t\"./ja\": 77105,\n\t\"./ja.js\": 77105,\n\t\"./jv\": 15026,\n\t\"./jv.js\": 15026,\n\t\"./ka\": 67416,\n\t\"./ka.js\": 67416,\n\t\"./kk\": 79734,\n\t\"./kk.js\": 79734,\n\t\"./km\": 60757,\n\t\"./km.js\": 60757,\n\t\"./kn\": 58369,\n\t\"./kn.js\": 58369,\n\t\"./ko\": 77687,\n\t\"./ko.js\": 77687,\n\t\"./ku\": 95544,\n\t\"./ku.js\": 95544,\n\t\"./ky\": 85431,\n\t\"./ky.js\": 85431,\n\t\"./lb\": 13613,\n\t\"./lb.js\": 13613,\n\t\"./lo\": 34252,\n\t\"./lo.js\": 34252,\n\t\"./lt\": 84619,\n\t\"./lt.js\": 84619,\n\t\"./lv\": 93760,\n\t\"./lv.js\": 93760,\n\t\"./me\": 93393,\n\t\"./me.js\": 93393,\n\t\"./mi\": 12369,\n\t\"./mi.js\": 12369,\n\t\"./mk\": 48664,\n\t\"./mk.js\": 48664,\n\t\"./ml\": 23099,\n\t\"./ml.js\": 23099,\n\t\"./mn\": 98539,\n\t\"./mn.js\": 98539,\n\t\"./mr\": 778,\n\t\"./mr.js\": 778,\n\t\"./ms\": 39970,\n\t\"./ms-my\": 82625,\n\t\"./ms-my.js\": 82625,\n\t\"./ms.js\": 39970,\n\t\"./mt\": 15714,\n\t\"./mt.js\": 15714,\n\t\"./my\": 53055,\n\t\"./my.js\": 53055,\n\t\"./nb\": 73945,\n\t\"./nb.js\": 73945,\n\t\"./ne\": 63645,\n\t\"./ne.js\": 63645,\n\t\"./nl\": 4829,\n\t\"./nl-be\": 12823,\n\t\"./nl-be.js\": 12823,\n\t\"./nl.js\": 4829,\n\t\"./nn\": 23756,\n\t\"./nn.js\": 23756,\n\t\"./pa-in\": 97877,\n\t\"./pa-in.js\": 97877,\n\t\"./pl\": 53066,\n\t\"./pl.js\": 53066,\n\t\"./pt\": 28677,\n\t\"./pt-br\": 81592,\n\t\"./pt-br.js\": 81592,\n\t\"./pt.js\": 28677,\n\t\"./ro\": 32722,\n\t\"./ro.js\": 32722,\n\t\"./ru\": 59138,\n\t\"./ru.js\": 59138,\n\t\"./sd\": 32568,\n\t\"./sd.js\": 32568,\n\t\"./se\": 49753,\n\t\"./se.js\": 49753,\n\t\"./si\": 58024,\n\t\"./si.js\": 58024,\n\t\"./sk\": 31058,\n\t\"./sk.js\": 31058,\n\t\"./sl\": 43452,\n\t\"./sl.js\": 43452,\n\t\"./sq\": 2795,\n\t\"./sq.js\": 2795,\n\t\"./sr\": 26976,\n\t\"./sr-cyrl\": 38819,\n\t\"./sr-cyrl.js\": 38819,\n\t\"./sr.js\": 26976,\n\t\"./ss\": 7467,\n\t\"./ss.js\": 7467,\n\t\"./sv\": 42787,\n\t\"./sv.js\": 42787,\n\t\"./sw\": 80298,\n\t\"./sw.js\": 80298,\n\t\"./ta\": 57532,\n\t\"./ta.js\": 57532,\n\t\"./te\": 76076,\n\t\"./te.js\": 76076,\n\t\"./tet\": 40452,\n\t\"./tet.js\": 40452,\n\t\"./tg\": 64794,\n\t\"./tg.js\": 64794,\n\t\"./th\": 48245,\n\t\"./th.js\": 48245,\n\t\"./tl-ph\": 36056,\n\t\"./tl-ph.js\": 36056,\n\t\"./tlh\": 15249,\n\t\"./tlh.js\": 15249,\n\t\"./tr\": 22053,\n\t\"./tr.js\": 22053,\n\t\"./tzl\": 39871,\n\t\"./tzl.js\": 39871,\n\t\"./tzm\": 39574,\n\t\"./tzm-latn\": 19210,\n\t\"./tzm-latn.js\": 19210,\n\t\"./tzm.js\": 39574,\n\t\"./ug-cn\": 91532,\n\t\"./ug-cn.js\": 91532,\n\t\"./uk\": 11432,\n\t\"./uk.js\": 11432,\n\t\"./ur\": 88523,\n\t\"./ur.js\": 88523,\n\t\"./uz\": 54958,\n\t\"./uz-latn\": 68735,\n\t\"./uz-latn.js\": 68735,\n\t\"./uz.js\": 54958,\n\t\"./vi\": 83398,\n\t\"./vi.js\": 83398,\n\t\"./x-pseudo\": 56665,\n\t\"./x-pseudo.js\": 56665,\n\t\"./yo\": 11642,\n\t\"./yo.js\": 11642,\n\t\"./zh-cn\": 5462,\n\t\"./zh-cn.js\": 5462,\n\t\"./zh-hk\": 92530,\n\t\"./zh-hk.js\": 92530,\n\t\"./zh-tw\": 97333,\n\t\"./zh-tw.js\": 97333\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 93365;","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport axios from '@nextcloud/axios'\n\n/**\n * @param {any} url -\n */\nexport default async function(url) {\n\tconst response = await axios({\n\t\tmethod: 'PROPFIND',\n\t\turl,\n\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t<d:propfind xmlns:d=\"DAV:\"\n\t\t\t\txmlns:oc=\"http://owncloud.org/ns\"\n\t\t\t\txmlns:nc=\"http://nextcloud.org/ns\"\n\t\t\t\txmlns:ocs=\"http://open-collaboration-services.org/ns\">\n\t\t\t<d:prop>\n\t\t\t\t<d:getlastmodified />\n\t\t\t\t<d:getetag />\n\t\t\t\t<d:getcontenttype />\n\t\t\t\t<d:resourcetype />\n\t\t\t\t<oc:fileid />\n\t\t\t\t<oc:permissions />\n\t\t\t\t<oc:size />\n\t\t\t\t<d:getcontentlength />\n\t\t\t\t<nc:has-preview />\n\t\t\t\t<nc:mount-type />\n\t\t\t\t<nc:is-encrypted />\n\t\t\t\t<ocs:share-permissions />\n\t\t\t\t<oc:tags />\n\t\t\t\t<oc:favorite />\n\t\t\t\t<oc:comments-unread />\n\t\t\t\t<oc:owner-id />\n\t\t\t\t<oc:owner-display-name />\n\t\t\t\t<oc:share-types />\n\t\t\t\t<nc:preview-access-token />\n\t\t\t</d:prop>\n\t\t\t</d:propfind>`,\n\t})\n\n\t// TODO: create new parser or use cdav-lib when available\n\tconst file = OCA.Files.App.fileList.filesClient._client.parseMultiStatus(response.data)\n\t// TODO: create new parser or use cdav-lib when available\n\tconst fileInfo = OCA.Files.App.fileList.filesClient._parseFileInfo(file[0])\n\n\t// TODO remove when no more legacy backbone is used\n\tfileInfo.get = (key) => fileInfo[key]\n\tfileInfo.isDirectory = () => fileInfo.mimetype === 'httpd/unix-directory'\n\n\treturn fileInfo\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppSidebarTab',{ref:\"tab\",attrs:{\"id\":_vm.id,\"name\":_vm.name,\"icon\":_vm.icon},on:{\"bottomReached\":_vm.onScrollBottomReached}},[(_vm.loading)?_c('EmptyContent',{attrs:{\"icon\":\"icon-loading\"}}):_vm._e(),_vm._v(\" \"),_c('div',{ref:\"mount\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<AppSidebarTab :id=\"id\"\n\t\tref=\"tab\"\n\t\t:name=\"name\"\n\t\t:icon=\"icon\"\n\t\t@bottomReached=\"onScrollBottomReached\">\n\t\t<!-- Fallback loading -->\n\t\t<EmptyContent v-if=\"loading\" icon=\"icon-loading\" />\n\n\t\t<!-- Using a dummy div as Vue mount replace the element directly\n\t\t\tIt does NOT append to the content -->\n\t\t<div ref=\"mount\" />\n\t</AppSidebarTab>\n</template>\n\n<script>\nimport AppSidebarTab from '@nextcloud/vue/dist/Components/AppSidebarTab'\nimport EmptyContent from '@nextcloud/vue/dist/Components/EmptyContent'\n\nexport default {\n\tname: 'SidebarTab',\n\n\tcomponents: {\n\t\tAppSidebarTab,\n\t\tEmptyContent,\n\t},\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Lifecycle methods.\n\t\t * They are prefixed with `on` to avoid conflict with Vue\n\t\t * methods like this.destroy\n\t\t */\n\t\tonMount: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t\tonUpdate: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t\tonDestroy: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t\tonScrollBottomReached: {\n\t\t\ttype: Function,\n\t\t\tdefault: () => {},\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloading: true,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t// TODO: implement a better way to force pass a prop from Sidebar\n\t\tactiveTab() {\n\t\t\treturn this.$parent.activeTab\n\t\t},\n\t},\n\n\twatch: {\n\t\tasync fileInfo(newFile, oldFile) {\n\t\t\t// Update fileInfo on change\n\t\t\tif (newFile.id !== oldFile.id) {\n\t\t\t\tthis.loading = true\n\t\t\t\tawait this.onUpdate(this.fileInfo)\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n\n\tasync mounted() {\n\t\tthis.loading = true\n\t\t// Mount the tab: mounting point, fileInfo, vue context\n\t\tawait this.onMount(this.$refs.mount, this.fileInfo, this.$refs.tab)\n\t\tthis.loading = false\n\t},\n\n\tasync beforeDestroy() {\n\t\t// unmount the tab\n\t\tawait this.onDestroy()\n\t},\n}\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTab.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!./SidebarTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SidebarTab.vue?vue&type=template&id=695d5bae&\"\nimport script from \"./SidebarTab.vue?vue&type=script&lang=js&\"\nexport * from \"./SidebarTab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyView.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!./LegacyView.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<div />\n</template>\n<script>\nexport default {\n\tname: 'LegacyView',\n\tprops: {\n\t\tcomponent: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t},\n\twatch: {\n\t\tfileInfo(fileInfo) {\n\t\t\t// update the backbone model FileInfo\n\t\t\tthis.setFileInfo(fileInfo)\n\t\t},\n\t},\n\tmounted() {\n\t\t// append the backbone element and set the FileInfo\n\t\tthis.component.$el.replaceAll(this.$el)\n\t\tthis.setFileInfo(this.fileInfo)\n\t},\n\tmethods: {\n\t\tsetFileInfo(fileInfo) {\n\t\t\tthis.component.setFileInfo(new OCA.Files.FileInfoModel(fileInfo))\n\t\t},\n\t},\n}\n</script>\n<style>\n</style>\n","import { render, staticRenderFns } from \"./LegacyView.vue?vue&type=template&id=2245cbe7&\"\nimport script from \"./LegacyView.vue?vue&type=script&lang=js&\"\nexport * from \"./LegacyView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<AppSidebar v-if=\"file\"\n\t\tref=\"sidebar\"\n\t\tv-bind=\"appSidebar\"\n\t\t:force-menu=\"true\"\n\t\t@close=\"close\"\n\t\t@update:active=\"setActiveTab\"\n\t\t@update:starred=\"toggleStarred\"\n\t\t@[defaultActionListener].stop.prevent=\"onDefaultAction\"\n\t\t@opening=\"handleOpening\"\n\t\t@opened=\"handleOpened\"\n\t\t@closing=\"handleClosing\"\n\t\t@closed=\"handleClosed\">\n\t\t<!-- TODO: create a standard to allow multiple elements here? -->\n\t\t<template v-if=\"fileInfo\" #description>\n\t\t\t<LegacyView v-for=\"view in views\"\n\t\t\t\t:key=\"view.cid\"\n\t\t\t\t:component=\"view\"\n\t\t\t\t:file-info=\"fileInfo\" />\n\t\t</template>\n\n\t\t<!-- Actions menu -->\n\t\t<template v-if=\"fileInfo\" #secondary-actions>\n\t\t\t<!-- TODO: create proper api for apps to register actions\n\t\t\tAnd inject themselves here. -->\n\t\t\t<ActionButton v-if=\"isSystemTagsEnabled\"\n\t\t\t\t:close-after-click=\"true\"\n\t\t\t\ticon=\"icon-tag\"\n\t\t\t\t@click=\"toggleTags\">\n\t\t\t\t{{ t('files', 'Tags') }}\n\t\t\t</ActionButton>\n\t\t</template>\n\n\t\t<!-- Error display -->\n\t\t<EmptyContent v-if=\"error\" icon=\"icon-error\">\n\t\t\t{{ error }}\n\t\t</EmptyContent>\n\n\t\t<!-- If fileInfo fetch is complete, render tabs -->\n\t\t<template v-for=\"tab in tabs\" v-else-if=\"fileInfo\">\n\t\t\t<!-- Hide them if we're loading another file but keep them mounted -->\n\t\t\t<SidebarTab v-if=\"tab.enabled(fileInfo)\"\n\t\t\t\tv-show=\"!loading\"\n\t\t\t\t:id=\"tab.id\"\n\t\t\t\t:key=\"tab.id\"\n\t\t\t\t:name=\"tab.name\"\n\t\t\t\t:icon=\"tab.icon\"\n\t\t\t\t:on-mount=\"tab.mount\"\n\t\t\t\t:on-update=\"tab.update\"\n\t\t\t\t:on-destroy=\"tab.destroy\"\n\t\t\t\t:on-scroll-bottom-reached=\"tab.scrollBottomReached\"\n\t\t\t\t:file-info=\"fileInfo\" />\n\t\t</template>\n\t</AppSidebar>\n</template>\n<script>\nimport { encodePath } from '@nextcloud/paths'\nimport $ from 'jquery'\nimport axios from '@nextcloud/axios'\nimport { emit } from '@nextcloud/event-bus'\nimport moment from '@nextcloud/moment'\nimport { Type as ShareTypes } from '@nextcloud/sharing'\n\nimport AppSidebar from '@nextcloud/vue/dist/Components/AppSidebar'\nimport ActionButton from '@nextcloud/vue/dist/Components/ActionButton'\nimport EmptyContent from '@nextcloud/vue/dist/Components/EmptyContent'\n\nimport FileInfo from '../services/FileInfo'\nimport SidebarTab from '../components/SidebarTab'\nimport LegacyView from '../components/LegacyView'\n\nexport default {\n\tname: 'Sidebar',\n\n\tcomponents: {\n\t\tActionButton,\n\t\tAppSidebar,\n\t\tEmptyContent,\n\t\tLegacyView,\n\t\tSidebarTab,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// reactive state\n\t\t\tSidebar: OCA.Files.Sidebar.state,\n\t\t\terror: null,\n\t\t\tloading: true,\n\t\t\tfileInfo: null,\n\t\t\tstarLoading: false,\n\t\t\tisFullScreen: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Current filename\n\t\t * This is bound to the Sidebar service and\n\t\t * is used to load a new file\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tfile() {\n\t\t\treturn this.Sidebar.file\n\t\t},\n\n\t\t/**\n\t\t * List of all the registered tabs\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\ttabs() {\n\t\t\treturn this.Sidebar.tabs\n\t\t},\n\n\t\t/**\n\t\t * List of all the registered views\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\tviews() {\n\t\t\treturn this.Sidebar.views\n\t\t},\n\n\t\t/**\n\t\t * Current user dav root path\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tdavPath() {\n\t\t\tconst user = OC.getCurrentUser().uid\n\t\t\treturn OC.linkToRemote(`dav/files/${user}${encodePath(this.file)}`)\n\t\t},\n\n\t\t/**\n\t\t * Current active tab handler\n\t\t *\n\t\t * @param {string} id the tab id to set as active\n\t\t * @return {string} the current active tab\n\t\t */\n\t\tactiveTab() {\n\t\t\treturn this.Sidebar.activeTab\n\t\t},\n\n\t\t/**\n\t\t * Sidebar subtitle\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tsubtitle() {\n\t\t\treturn `${this.size}, ${this.time}`\n\t\t},\n\n\t\t/**\n\t\t * File last modified formatted string\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\ttime() {\n\t\t\treturn OC.Util.relativeModifiedDate(this.fileInfo.mtime)\n\t\t},\n\n\t\t/**\n\t\t * File last modified full string\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tfullTime() {\n\t\t\treturn moment(this.fileInfo.mtime).format('LLL')\n\t\t},\n\n\t\t/**\n\t\t * File size formatted string\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tsize() {\n\t\t\treturn OC.Util.humanFileSize(this.fileInfo.size)\n\t\t},\n\n\t\t/**\n\t\t * File background/figure to illustrate the sidebar header\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tbackground() {\n\t\t\treturn this.getPreviewIfAny(this.fileInfo)\n\t\t},\n\n\t\t/**\n\t\t * App sidebar v-binding object\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\tappSidebar() {\n\t\t\tif (this.fileInfo) {\n\t\t\t\treturn {\n\t\t\t\t\t'data-mimetype': this.fileInfo.mimetype,\n\t\t\t\t\t'star-loading': this.starLoading,\n\t\t\t\t\tactive: this.activeTab,\n\t\t\t\t\tbackground: this.background,\n\t\t\t\t\tclass: {\n\t\t\t\t\t\t'app-sidebar--has-preview': this.fileInfo.hasPreview,\n\t\t\t\t\t\t'app-sidebar--full': this.isFullScreen,\n\t\t\t\t\t},\n\t\t\t\t\tcompact: !this.fileInfo.hasPreview,\n\t\t\t\t\tloading: this.loading,\n\t\t\t\t\tstarred: this.fileInfo.isFavourited,\n\t\t\t\t\tsubtitle: this.subtitle,\n\t\t\t\t\tsubtitleTooltip: this.fullTime,\n\t\t\t\t\ttitle: this.fileInfo.name,\n\t\t\t\t\ttitleTooltip: this.fileInfo.name,\n\t\t\t\t}\n\t\t\t} else if (this.error) {\n\t\t\t\treturn {\n\t\t\t\t\tkey: 'error', // force key to re-render\n\t\t\t\t\tsubtitle: '',\n\t\t\t\t\ttitle: '',\n\t\t\t\t}\n\t\t\t}\n\t\t\t// no fileInfo yet, showing empty data\n\t\t\treturn {\n\t\t\t\tloading: this.loading,\n\t\t\t\tsubtitle: '',\n\t\t\t\ttitle: '',\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Default action object for the current file\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\tdefaultAction() {\n\t\t\treturn this.fileInfo\n\t\t\t\t&& OCA.Files && OCA.Files.App && OCA.Files.App.fileList\n\t\t\t\t&& OCA.Files.App.fileList.fileActions\n\t\t\t\t&& OCA.Files.App.fileList.fileActions.getDefaultFileAction\n\t\t\t\t&& OCA.Files.App.fileList\n\t\t\t\t\t.fileActions.getDefaultFileAction(this.fileInfo.mimetype, this.fileInfo.type, OC.PERMISSION_READ)\n\n\t\t},\n\n\t\t/**\n\t\t * Dynamic header click listener to ensure\n\t\t * nothing is listening for a click if there\n\t\t * is no default action\n\t\t *\n\t\t * @return {string|null}\n\t\t */\n\t\tdefaultActionListener() {\n\t\t\treturn this.defaultAction ? 'figure-click' : null\n\t\t},\n\n\t\tisSystemTagsEnabled() {\n\t\t\treturn OCA && 'SystemTags' in OCA\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Can this tab be displayed ?\n\t\t *\n\t\t * @param {object} tab a registered tab\n\t\t * @return {boolean}\n\t\t */\n\t\tcanDisplay(tab) {\n\t\t\treturn tab.enabled(this.fileInfo)\n\t\t},\n\t\tresetData() {\n\t\t\tthis.error = null\n\t\t\tthis.fileInfo = null\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tif (this.$refs.tabs) {\n\t\t\t\t\tthis.$refs.tabs.updateTabs()\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\tgetPreviewIfAny(fileInfo) {\n\t\t\tif (fileInfo.hasPreview) {\n\t\t\t\treturn OC.generateUrl(`/core/preview?fileId=${fileInfo.id}&x=${screen.width}&y=${screen.height}&a=true`)\n\t\t\t}\n\t\t\treturn this.getIconUrl(fileInfo)\n\t\t},\n\n\t\t/**\n\t\t * Copied from https://github.com/nextcloud/server/blob/16e0887ec63591113ee3f476e0c5129e20180cde/apps/files/js/filelist.js#L1377\n\t\t * TODO: We also need this as a standalone library\n\t\t *\n\t\t * @param {object} fileInfo the fileinfo\n\t\t * @return {string} Url to the icon for mimeType\n\t\t */\n\t\tgetIconUrl(fileInfo) {\n\t\t\tconst mimeType = fileInfo.mimetype || 'application/octet-stream'\n\t\t\tif (mimeType === 'httpd/unix-directory') {\n\t\t\t\t// use default folder icon\n\t\t\t\tif (fileInfo.mountType === 'shared' || fileInfo.mountType === 'shared-root') {\n\t\t\t\t\treturn OC.MimeType.getIconUrl('dir-shared')\n\t\t\t\t} else if (fileInfo.mountType === 'external-root') {\n\t\t\t\t\treturn OC.MimeType.getIconUrl('dir-external')\n\t\t\t\t} else if (fileInfo.mountType !== undefined && fileInfo.mountType !== '') {\n\t\t\t\t\treturn OC.MimeType.getIconUrl('dir-' + fileInfo.mountType)\n\t\t\t\t} else if (fileInfo.shareTypes && (\n\t\t\t\t\tfileInfo.shareTypes.indexOf(ShareTypes.SHARE_TYPE_LINK) > -1\n\t\t\t\t\t|| fileInfo.shareTypes.indexOf(ShareTypes.SHARE_TYPE_EMAIL) > -1)\n\t\t\t\t) {\n\t\t\t\t\treturn OC.MimeType.getIconUrl('dir-public')\n\t\t\t\t} else if (fileInfo.shareTypes && fileInfo.shareTypes.length > 0) {\n\t\t\t\t\treturn OC.MimeType.getIconUrl('dir-shared')\n\t\t\t\t}\n\t\t\t\treturn OC.MimeType.getIconUrl('dir')\n\t\t\t}\n\t\t\treturn OC.MimeType.getIconUrl(mimeType)\n\t\t},\n\n\t\t/**\n\t\t * Set current active tab\n\t\t *\n\t\t * @param {string} id tab unique id\n\t\t */\n\t\tsetActiveTab(id) {\n\t\t\tOCA.Files.Sidebar.setActiveTab(id)\n\t\t},\n\n\t\t/**\n\t\t * Toggle favourite state\n\t\t * TODO: better implementation\n\t\t *\n\t\t * @param {boolean} state favourited or not\n\t\t */\n\t\tasync toggleStarred(state) {\n\t\t\ttry {\n\t\t\t\tthis.starLoading = true\n\t\t\t\tawait axios({\n\t\t\t\t\tmethod: 'PROPPATCH',\n\t\t\t\t\turl: this.davPath,\n\t\t\t\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t\t\t\t<d:propertyupdate xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\n\t\t\t\t\t\t${state ? '<d:set>' : '<d:remove>'}\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t${state ? '</d:set>' : '</d:remove>'}\n\t\t\t\t\t\t</d:propertyupdate>`,\n\t\t\t\t})\n\n\t\t\t\t// TODO: Obliterate as soon as possible and use events with new files app\n\t\t\t\t// Terrible fallback for legacy files: toggle filelist as well\n\t\t\t\tif (OCA.Files && OCA.Files.App && OCA.Files.App.fileList && OCA.Files.App.fileList.fileActions) {\n\t\t\t\t\tOCA.Files.App.fileList.fileActions.triggerAction('Favorite', OCA.Files.App.fileList.getModelForFile(this.fileInfo.name), OCA.Files.App.fileList)\n\t\t\t\t}\n\n\t\t\t} catch (error) {\n\t\t\t\tOC.Notification.showTemporary(t('files', 'Unable to change the favourite state of the file'))\n\t\t\t\tconsole.error('Unable to change favourite state', error)\n\t\t\t}\n\t\t\tthis.starLoading = false\n\t\t},\n\n\t\tonDefaultAction() {\n\t\t\tif (this.defaultAction) {\n\t\t\t\t// generate fake context\n\t\t\t\tthis.defaultAction.action(this.fileInfo.name, {\n\t\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\t\tdir: this.fileInfo.dir,\n\t\t\t\t\tfileList: OCA.Files.App.fileList,\n\t\t\t\t\t$file: $('body'),\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Toggle the tags selector\n\t\t */\n\t\ttoggleTags() {\n\t\t\tif (OCA.SystemTags && OCA.SystemTags.View) {\n\t\t\t\tOCA.SystemTags.View.toggle()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Open the sidebar for the given file\n\t\t *\n\t\t * @param {string} path the file path to load\n\t\t * @return {Promise}\n\t\t * @throws {Error} loading failure\n\t\t */\n\t\tasync open(path) {\n\t\t\t// update current opened file\n\t\t\tthis.Sidebar.file = path\n\n\t\t\tif (path && path.trim() !== '') {\n\t\t\t\t// reset data, keep old fileInfo to not reload all tabs and just hide them\n\t\t\t\tthis.error = null\n\t\t\t\tthis.loading = true\n\n\t\t\t\ttry {\n\t\t\t\t\tthis.fileInfo = await FileInfo(this.davPath)\n\t\t\t\t\t// adding this as fallback because other apps expect it\n\t\t\t\t\tthis.fileInfo.dir = this.file.split('/').slice(0, -1).join('/')\n\n\t\t\t\t\t// DEPRECATED legacy views\n\t\t\t\t\t// TODO: remove\n\t\t\t\t\tthis.views.forEach(view => {\n\t\t\t\t\t\tview.setFileInfo(this.fileInfo)\n\t\t\t\t\t})\n\n\t\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\t\tif (this.$refs.tabs) {\n\t\t\t\t\t\t\tthis.$refs.tabs.updateTabs()\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.error = t('files', 'Error while loading the file data')\n\t\t\t\t\tconsole.error('Error while loading the file data', error)\n\n\t\t\t\t\tthrow new Error(error)\n\t\t\t\t} finally {\n\t\t\t\t\tthis.loading = false\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Close the sidebar\n\t\t */\n\t\tclose() {\n\t\t\tthis.Sidebar.file = ''\n\t\t\tthis.resetData()\n\t\t},\n\n\t\t/**\n\t\t * Allow to set the Sidebar as fullscreen from OCA.Files.Sidebar\n\t\t *\n\t\t * @param {boolean} isFullScreen - Wether or not to render the Sidebar in fullscreen.\n\t\t */\n\t\tsetFullScreenMode(isFullScreen) {\n\t\t\tthis.isFullScreen = isFullScreen\n\t\t},\n\n\t\t/**\n\t\t * Emit SideBar events.\n\t\t */\n\t\thandleOpening() {\n\t\t\temit('files:sidebar:opening')\n\t\t},\n\t\thandleOpened() {\n\t\t\temit('files:sidebar:opened')\n\t\t},\n\t\thandleClosing() {\n\t\t\temit('files:sidebar:closing')\n\t\t},\n\t\thandleClosed() {\n\t\t\temit('files:sidebar:closed')\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n.app-sidebar {\n\t&--has-preview::v-deep {\n\t\t.app-sidebar-header__figure {\n\t\t\tbackground-size: cover;\n\t\t}\n\n\t\t&[data-mimetype=\"text/plain\"],\n\t\t&[data-mimetype=\"text/markdown\"] {\n\t\t\t.app-sidebar-header__figure {\n\t\t\t\tbackground-size: contain;\n\t\t\t}\n\t\t}\n\t}\n\n\t&--full {\n\t\tposition: fixed !important;\n\t\tz-index: 2025 !important;\n\t\ttop: 0 !important;\n\t\theight: 100% !important;\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.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!./Sidebar.vue?vue&type=script&lang=js&\"","\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!./Sidebar.vue?vue&type=style&index=0&id=04f575d6&lang=scss&scoped=true&\";\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!./Sidebar.vue?vue&type=style&index=0&id=04f575d6&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Sidebar.vue?vue&type=template&id=04f575d6&scoped=true&\"\nimport script from \"./Sidebar.vue?vue&type=script&lang=js&\"\nexport * from \"./Sidebar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Sidebar.vue?vue&type=style&index=0&id=04f575d6&lang=scss&scoped=true&\"\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 \"04f575d6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.file)?_c('AppSidebar',_vm._b({ref:\"sidebar\",attrs:{\"force-menu\":true},on:_vm._d({\"close\":_vm.close,\"update:active\":_vm.setActiveTab,\"update:starred\":_vm.toggleStarred,\"opening\":_vm.handleOpening,\"opened\":_vm.handleOpened,\"closing\":_vm.handleClosing,\"closed\":_vm.handleClosed},[_vm.defaultActionListener,function($event){$event.stopPropagation();$event.preventDefault();return _vm.onDefaultAction.apply(null, arguments)}]),scopedSlots:_vm._u([(_vm.fileInfo)?{key:\"description\",fn:function(){return _vm._l((_vm.views),function(view){return _c('LegacyView',{key:view.cid,attrs:{\"component\":view,\"file-info\":_vm.fileInfo}})})},proxy:true}:null,(_vm.fileInfo)?{key:\"secondary-actions\",fn:function(){return [(_vm.isSystemTagsEnabled)?_c('ActionButton',{attrs:{\"close-after-click\":true,\"icon\":\"icon-tag\"},on:{\"click\":_vm.toggleTags}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Tags'))+\"\\n\\t\\t\")]):_vm._e()]},proxy:true}:null],null,true)},'AppSidebar',_vm.appSidebar,false),[_vm._v(\" \"),_vm._v(\" \"),(_vm.error)?_c('EmptyContent',{attrs:{\"icon\":\"icon-error\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.error)+\"\\n\\t\")]):(_vm.fileInfo)?_vm._l((_vm.tabs),function(tab){return [(tab.enabled(_vm.fileInfo))?_c('SidebarTab',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.loading),expression:\"!loading\"}],key:tab.id,attrs:{\"id\":tab.id,\"name\":tab.name,\"icon\":tab.icon,\"on-mount\":tab.mount,\"on-update\":tab.update,\"on-destroy\":tab.destroy,\"on-scroll-bottom-reached\":tab.scrollBottomReached,\"file-info\":_vm.fileInfo}}):_vm._e()]}):_vm._e()],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default class Sidebar {\n\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.tabs = []\n\t\tthis._state.views = []\n\t\tthis._state.file = ''\n\t\tthis._state.activeTab = ''\n\t\tconsole.debug('OCA.Files.Sidebar initialized')\n\t}\n\n\t/**\n\t * Get the sidebar state\n\t *\n\t * @readonly\n\t * @memberof Sidebar\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * Register a new tab view\n\t *\n\t * @memberof Sidebar\n\t * @param {object} tab a new unregistered tab\n\t * @return {boolean}\n\t */\n\tregisterTab(tab) {\n\t\tconst hasDuplicate = this._state.tabs.findIndex(check => check.id === tab.id) > -1\n\t\tif (!hasDuplicate) {\n\t\t\tthis._state.tabs.push(tab)\n\t\t\treturn true\n\t\t}\n\t\tconsole.error(`An tab with the same id ${tab.id} already exists`, tab)\n\t\treturn false\n\t}\n\n\tregisterSecondaryView(view) {\n\t\tconst hasDuplicate = this._state.views.findIndex(check => check.id === view.id) > -1\n\t\tif (!hasDuplicate) {\n\t\t\tthis._state.views.push(view)\n\t\t\treturn true\n\t\t}\n\t\tconsole.error('A similar view already exists', view)\n\t\treturn false\n\t}\n\n\t/**\n\t * Return current opened file\n\t *\n\t * @memberof Sidebar\n\t * @return {string} the current opened file\n\t */\n\tget file() {\n\t\treturn this._state.file\n\t}\n\n\t/**\n\t * Set the current visible sidebar tab\n\t *\n\t * @memberof Sidebar\n\t * @param {string} id the tab unique id\n\t */\n\tsetActiveTab(id) {\n\t\tthis._state.activeTab = id\n\t}\n\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default class Tab {\n\n\t_id\n\t_name\n\t_icon\n\t_mount\n\t_update\n\t_destroy\n\t_enabled\n\t_scrollBottomReached\n\n\t/**\n\t * Create a new tab instance\n\t *\n\t * @param {object} options destructuring object\n\t * @param {string} options.id the unique id of this tab\n\t * @param {string} options.name the translated tab name\n\t * @param {string} options.icon the vue component\n\t * @param {Function} options.mount function to mount the tab\n\t * @param {Function} options.update function to update the tab\n\t * @param {Function} options.destroy function to destroy the tab\n\t * @param {Function} [options.enabled] define conditions whether this tab is active. Must returns a boolean\n\t * @param {Function} [options.scrollBottomReached] executed when the tab is scrolled to the bottom\n\t */\n\tconstructor({ id, name, icon, mount, update, destroy, enabled, scrollBottomReached } = {}) {\n\t\tif (enabled === undefined) {\n\t\t\tenabled = () => true\n\t\t}\n\t\tif (scrollBottomReached === undefined) {\n\t\t\tscrollBottomReached = () => {}\n\t\t}\n\n\t\t// Sanity checks\n\t\tif (typeof id !== 'string' || id.trim() === '') {\n\t\t\tthrow new Error('The id argument is not a valid string')\n\t\t}\n\t\tif (typeof name !== 'string' || name.trim() === '') {\n\t\t\tthrow new Error('The name argument is not a valid string')\n\t\t}\n\t\tif (typeof icon !== 'string' || icon.trim() === '') {\n\t\t\tthrow new Error('The icon argument is not a valid string')\n\t\t}\n\t\tif (typeof mount !== 'function') {\n\t\t\tthrow new Error('The mount argument should be a function')\n\t\t}\n\t\tif (typeof update !== 'function') {\n\t\t\tthrow new Error('The update argument should be a function')\n\t\t}\n\t\tif (typeof destroy !== 'function') {\n\t\t\tthrow new Error('The destroy argument should be a function')\n\t\t}\n\t\tif (typeof enabled !== 'function') {\n\t\t\tthrow new Error('The enabled argument should be a function')\n\t\t}\n\t\tif (typeof scrollBottomReached !== 'function') {\n\t\t\tthrow new Error('The scrollBottomReached argument should be a function')\n\t\t}\n\n\t\tthis._id = id\n\t\tthis._name = name\n\t\tthis._icon = icon\n\t\tthis._mount = mount\n\t\tthis._update = update\n\t\tthis._destroy = destroy\n\t\tthis._enabled = enabled\n\t\tthis._scrollBottomReached = scrollBottomReached\n\n\t}\n\n\tget id() {\n\t\treturn this._id\n\t}\n\n\tget name() {\n\t\treturn this._name\n\t}\n\n\tget icon() {\n\t\treturn this._icon\n\t}\n\n\tget mount() {\n\t\treturn this._mount\n\t}\n\n\tget update() {\n\t\treturn this._update\n\t}\n\n\tget destroy() {\n\t\treturn this._destroy\n\t}\n\n\tget enabled() {\n\t\treturn this._enabled\n\t}\n\n\tget scrollBottomReached() {\n\t\treturn this._scrollBottomReached\n\t}\n\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport { translate as t } from '@nextcloud/l10n'\n\nimport SidebarView from './views/Sidebar.vue'\nimport Sidebar from './services/Sidebar'\nimport Tab from './models/Tab'\n\nVue.prototype.t = t\n\n// Init Sidebar Service\nif (!window.OCA.Files) {\n\twindow.OCA.Files = {}\n}\nObject.assign(window.OCA.Files, { Sidebar: new Sidebar() })\nObject.assign(window.OCA.Files.Sidebar, { Tab })\n\nconsole.debug('OCA.Files.Sidebar initialized')\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\tconst contentElement = document.querySelector('body > .content')\n\t\t|| document.querySelector('body > #content')\n\n\t// Make sure we have a proper layout\n\tif (contentElement) {\n\t\t// Make sure we have a mountpoint\n\t\tif (!document.getElementById('app-sidebar')) {\n\t\t\tconst sidebarElement = document.createElement('div')\n\t\t\tsidebarElement.id = 'app-sidebar'\n\t\t\tcontentElement.appendChild(sidebarElement)\n\t\t}\n\t}\n\n\t// Init vue app\n\tconst View = Vue.extend(SidebarView)\n\tconst AppSidebar = new View({\n\t\tname: 'SidebarRoot',\n\t})\n\tAppSidebar.$mount('#app-sidebar')\n\twindow.OCA.Files.Sidebar.open = AppSidebar.open\n\twindow.OCA.Files.Sidebar.close = AppSidebar.close\n\twindow.OCA.Files.Sidebar.setFullScreenMode = AppSidebar.setFullScreenMode\n})\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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, \".app-sidebar--has-preview[data-v-04f575d6] .app-sidebar-header__figure{background-size:cover}.app-sidebar--has-preview[data-v-04f575d6][data-mimetype=\\\"text/plain\\\"] .app-sidebar-header__figure,.app-sidebar--has-preview[data-v-04f575d6][data-mimetype=\\\"text/markdown\\\"] .app-sidebar-header__figure{background-size:contain}.app-sidebar--full[data-v-04f575d6]{position:fixed !important;z-index:2025 !important;top:0 !important;height:100% !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Sidebar.vue\"],\"names\":[],\"mappings\":\"AAoeE,uEACC,qBAAA,CAKA,yMACC,uBAAA,CAKH,oCACC,yBAAA,CACA,uBAAA,CACA,gBAAA,CACA,sBAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.app-sidebar {\\n\\t&--has-preview::v-deep {\\n\\t\\t.app-sidebar-header__figure {\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\n\\t\\t&[data-mimetype=\\\"text/plain\\\"],\\n\\t\\t&[data-mimetype=\\\"text/markdown\\\"] {\\n\\t\\t\\t.app-sidebar-header__figure {\\n\\t\\t\\t\\tbackground-size: contain;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&--full {\\n\\t\\tposition: fixed !important;\\n\\t\\tz-index: 2025 !important;\\n\\t\\ttop: 0 !important;\\n\\t\\theight: 100% !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 92;","// no baseURI\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\t92: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// 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, [874], function() { return __webpack_require__(23056); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","url","axios","method","data","response","file","OCA","Files","App","fileList","filesClient","_client","parseMultiStatus","fileInfo","_parseFileInfo","get","key","isDirectory","mimetype","_vm","this","_h","$createElement","_c","_self","ref","attrs","name","icon","on","onScrollBottomReached","_e","_v","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_b","_d","close","setActiveTab","toggleStarred","handleOpening","handleOpened","handleClosing","handleClosed","defaultActionListener","$event","stopPropagation","preventDefault","onDefaultAction","apply","arguments","scopedSlots","_u","fn","_l","view","cid","proxy","toggleTags","_s","t","appSidebar","error","tab","enabled","directives","rawName","value","loading","expression","mount","update","destroy","scrollBottomReached","Sidebar","_state","tabs","views","activeTab","console","debug","findIndex","check","push","Tab","undefined","trim","_id","_name","_icon","_mount","_update","_destroy","_enabled","_scrollBottomReached","Vue","window","assign","addEventListener","contentElement","document","querySelector","getElementById","sidebarElement","createElement","appendChild","AppSidebar","SidebarView","$mount","open","setFullScreenMode","___CSS_LOADER_EXPORT___","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","call","m","amdD","amdO","O","result","chunkIds","priority","notFulfilled","Infinity","i","length","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","defineProperty","enumerable","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file