]> source.dussan.org Git - nextcloud-server.git/commitdiff
sidebar: allow turning off tags view by default 40939/head
authorVarun Patil <varunpatil@ucla.edu>
Tue, 17 Oct 2023 04:04:53 +0000 (21:04 -0700)
committernextcloud-command <nextcloud-command@users.noreply.github.com>
Mon, 27 Nov 2023 18:25:09 +0000 (18:25 +0000)
With #37065, there is no way to hide the tags from the sidebar
by default when they are not relevant or redundant (e.g. the tab
may already show the file's tags). This can be annyoing especially
when the file has many tags. This patch adds an option to hide
the tags from the sidebar by default (the user can still open
the tags tab manually).

This also reduces one request when opening the sidebar when the
tags are turned off, since all tags don't need to be fetched
anymore.

Signed-off-by: Varun Patil <varunpatil@ucla.edu>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
apps/files/src/sidebar.js
apps/files/src/views/Sidebar.vue
dist/files-sidebar.js
dist/files-sidebar.js.map

index c8bfc2ca4db3c853a22e152d65ebd9170f4930c0..ceec5478466531b25b5d6195ead903f17cf2b148 100644 (file)
@@ -59,4 +59,5 @@ window.addEventListener('DOMContentLoaded', function() {
        window.OCA.Files.Sidebar.open = AppSidebar.open
        window.OCA.Files.Sidebar.close = AppSidebar.close
        window.OCA.Files.Sidebar.setFullScreenMode = AppSidebar.setFullScreenMode
+       window.OCA.Files.Sidebar.setShowTagsDefault = AppSidebar.setShowTagsDefault
 })
index d0c6b90b49d36fad2332e2f2f242749edddd9102..7b958aca312950063cd0d11b03cf297c3576d14a 100644 (file)
@@ -36,7 +36,7 @@
                <!-- TODO: create a standard to allow multiple elements here? -->
                <template v-if="fileInfo" #description>
                        <div class="sidebar__description">
-                               <SystemTags v-if="isSystemTagsEnabled"
+                               <SystemTags v-if="isSystemTagsEnabled && showTagsDefault"
                                        v-show="showTags"
                                        :file-id="fileInfo.id"
                                        @has-tags="value => showTags = value" />
@@ -138,6 +138,7 @@ export default {
                        // reactive state
                        Sidebar: OCA.Files.Sidebar.state,
                        showTags: false,
+                       showTagsDefault: true,
                        error: null,
                        loading: true,
                        fileInfo: null,
@@ -455,7 +456,7 @@ export default {
                 * Toggle the tags selector
                 */
                toggleTags() {
-                       this.showTags = !this.showTags
+                       this.showTagsDefault = this.showTags = !this.showTags
                },
 
                /**
@@ -529,6 +530,15 @@ export default {
                        }
                },
 
+               /**
+                * Allow to set whether tags should be shown by default from OCA.Files.Sidebar
+                *
+                * @param {boolean} showTagsDefault - Whether or not to show the tags by default.
+                */
+               setShowTagsDefault(showTagsDefault) {
+                       this.showTagsDefault = showTagsDefault
+               },
+
                /**
                 * Emit SideBar events.
                 */
index c1b37d98f02116d6d70617c684e35e0e4e1b9e7e..8f3370a408bd65e27df382a6a90b35d815581634 100644 (file)
@@ -1,3 +1,3 @@
 /*! For license information please see files-sidebar.js.LICENSE.txt */
-(()=>{var e,i,s,n={5119:(t,e,i)=>{"use strict";const{XMLParser:s,XMLValidator:n}=i(16932),r=t=>{if(null==t)return!1;if(0===(t=t.toString().trim()).length)return!1;if(!0!==n.validate(t))return!1;let e;const i=new s;try{e=i.parse(t)}catch(t){return!1}return!!e&&"svg"in e};t.exports=r,t.exports.default=r},93995:(e,i,s)=>{"use strict";var n=s(20144),r=s(31352),o=s(69183),a=s(65358),l=s(5656),d=s(42515),c=s(77958),u=s(41922),h=s(19755),p=s.n(h),f=s(93664),m=s(80351),g=s.n(m),y=s(66805),b=s(97021),v=s(51900);const w=(0,v.Z)(b.Z,y.s,y.x,!1,null,null,null).exports;var A=s(94277),j=s(41251);const x=(0,v.Z)(j.Z,A.s,A.x,!1,null,null,null).exports;var I=s(42899),N=s(99059),C=s(22175);const _={name:"LegacyView",props:{component:{type:Object,required:!0},fileInfo:{type:Object,default:()=>{},required:!0}},watch:{fileInfo(t){this.setFileInfo(t)}},mounted(){this.component.$el.replaceAll(this.$el),this.setFileInfo(this.fileInfo)},methods:{setFileInfo(t){this.component.setFileInfo(new OCA.Files.FileInfoModel(t))}}},T=(0,v.Z)(_,(function(){return(0,this._self._c)("div")}),[],!1,null,null,null).exports,E={name:"SidebarTab",components:{NcAppSidebarTab:s(98445).Z,NcEmptyContent:C.Z},props:{fileInfo:{type:Object,default:()=>{},required:!0},id:{type:String,required:!0},name:{type:String,required:!0},icon:{type:String,required:!1},onMount:{type:Function,required:!0},onUpdate:{type:Function,required:!0},onDestroy:{type:Function,required:!0},onScrollBottomReached:{type:Function,default:()=>{}}},data:()=>({loading:!0}),computed:{activeTab(){return this.$parent.activeTab}},watch:{async fileInfo(t,e){t.id!==e.id&&(this.loading=!0,await this.onUpdate(this.fileInfo),this.loading=!1)}},async mounted(){this.loading=!0,await this.onMount(this.$refs.mount,this.fileInfo,this.$refs.tab),this.loading=!1},async beforeDestroy(){await this.onDestroy()}},S=(0,v.Z)(E,(function(){var t=this,e=t._self._c;return e("NcAppSidebarTab",{ref:"tab",attrs:{id:t.id,name:t.name,icon:t.icon},on:{bottomReached:t.onScrollBottomReached},scopedSlots:t._u([{key:"icon",fn:function(){return[t._t("icon")]},proxy:!0}],null,!0)},[t._v(" "),t.loading?e("NcEmptyContent",{attrs:{icon:"icon-loading"}}):t._e(),t._v(" "),e("div",{ref:"mount"})],1)}),[],!1,null,null,null).exports;var O=s(20435),L=s(35380),F=s(64024),D=s(36906);const P={userVisible:!0,userAssignable:!0,canAssign:!0},M=t=>t.map((t=>{let{props:e}=t;return Object.fromEntries(Object.entries(e).map((t=>{let[e,i]=t;return[(0,D.Z)(e),"displayName"===(0,D.Z)(e)?String(i):i]})))})),k=t=>{const e={...t};return e.name&&!e.displayName||(e.name=e.displayName,delete e.displayName),e};var R=s(79753),z=s(14596);const B=(0,R.generateRemoteUrl)("dav"),Z=(0,z.eI)(B,{headers:{requesttoken:(0,c.IH)()??""}}),$=(0,s(17499).IY)().setApp("systemtags").detectUser().build(),U='<?xml version="1.0"?>\n<d:propfind  xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns">\n\t<d:prop>\n\t\t<oc:id />\n\t\t<oc:display-name />\n\t\t<oc:user-visible />\n\t\t<oc:user-assignable />\n\t\t<oc:can-assign />\n\t</d:prop>\n</d:propfind>',V=async(e,i)=>{const s="/systemtags-relations/files/"+i+"/"+e.id,n=k(e);try{await Z.customRequest(s,{method:"PUT",data:n})}catch(e){throw $.error(t("systemtags","Failed to set tag for file"),{error:e}),new Error(t("systemtags","Failed to set tag for file"))}},q=n.default.extend({name:"SystemTags",components:{NcLoadingIcon:O.Z,NcSelectTags:L.Z},props:{fileId:{type:Number,required:!0}},data:()=>({sortedTags:[],selectedTags:[],loadingTags:!1,loading:!1}),async created(){try{const t=await(async()=>{try{const{data:t}=await Z.getDirectoryContents("/systemtags",{data:U,details:!0,glob:"/systemtags/*"});return M(t)}catch(t){throw $.error((0,r.Iu)("systemtags","Failed to load tags"),{error:t}),new Error((0,r.Iu)("systemtags","Failed to load tags"))}})(),e=await(async()=>{const t=(0,R.generateUrl)("/apps/systemtags/lastused");try{const{data:e}=await f.Z.get(t);return e.map(Number)}catch(t){throw $.error((0,r.Iu)("systemtags","Failed to load last used tags"),{error:t}),new Error((0,r.Iu)("systemtags","Failed to load last used tags"))}})(),i=[],s=[];for(const n of t)e.includes(n.id)?i.push(n):s.push(n);const n=(t,i)=>e.indexOf(t.id)-e.indexOf(i.id);i.sort(n),this.sortedTags=[...i,...s]}catch(t){(0,F.x2)((0,r.Iu)("systemtags","Failed to load tags"))}},watch:{fileId:{immediate:!0,async handler(){this.loadingTags=!0;try{this.selectedTags=await(async e=>{const i="/systemtags-relations/files/"+this.fileId;try{const{data:t}=await Z.getDirectoryContents(i,{data:U,details:!0,glob:"/systemtags-relations/files/*/*"});return M(t)}catch(e){throw $.error(t("systemtags","Failed to load tags for file"),{error:e}),new Error(t("systemtags","Failed to load tags for file"))}})(),this.$emit("has-tags",this.selectedTags.length>0)}catch(t){(0,F.x2)((0,r.Iu)("systemtags","Failed to load selected tags"))}this.loadingTags=!1}}},methods:{t:r.Iu,createOption(t){for(const e of this.sortedTags){const{id:i,displayName:s,...n}=e;if(s===t&&Object.entries(n).every((t=>{let[e,i]=t;return P[e]===i})))return e}return{...P,displayName:t}},handleInput(t){this.selectedTags=t.filter((t=>Boolean(t.id)))},async handleSelect(t){const e=t[t.length-1];if(!e.id)return;const i=e;this.loading=!0;try{await V(i,this.fileId);const t=(t,e)=>t.id===i.id?-1:e.id===i.id?1:0;this.sortedTags.sort(t)}catch(t){(0,F.x2)((0,r.Iu)("systemtags","Failed to select tag"))}this.loading=!1},async handleCreate(t){this.loading=!0;try{const e=await(async(t,e)=>{const i=k(t),s=await(async t=>{const e=k(t);try{const{headers:t}=await Z.customRequest("/systemtags",{method:"POST",data:e}),i=t.get("content-location");if(i)return(t=>{const e=t.indexOf("?");e>0&&(t=t.substring(0,e));const i=t.split("/");let s;do{s=i[i.length-1],i.pop()}while(!s&&i.length>0);return Number(s)})(i);throw $.error((0,r.Iu)("systemtags",'Missing "Content-Location" header')),new Error((0,r.Iu)("systemtags",'Missing "Content-Location" header'))}catch(t){throw $.error((0,r.Iu)("systemtags","Failed to create tag"),{error:t}),new Error((0,r.Iu)("systemtags","Failed to create tag"))}})(i),n={...i,id:s};return await V(n,e),n.id})(t,this.fileId),i={...t,id:e};this.sortedTags.unshift(i),this.selectedTags.push(i)}catch(t){(0,F.x2)((0,r.Iu)("systemtags","Failed to create tag"))}this.loading=!1},async handleDeselect(e){this.loading=!0;try{await(async(e,i)=>{const s="/systemtags-relations/files/"+this.fileId+"/"+e.id;try{await Z.deleteFile(s)}catch(e){throw $.error(t("systemtags","Failed to delete tag for file"),{error:e}),new Error(t("systemtags","Failed to delete tag for file"))}})(e)}catch(t){(0,F.x2)((0,r.Iu)("systemtags","Failed to delete tag"))}this.loading=!1}}});var H=s(93379),G=s.n(H),Y=s(7795),W=s.n(Y),X=s(90569),K=s.n(X),Q=s(3565),J=s.n(Q),tt=s(19216),et=s.n(tt),it=s(44589),st=s.n(it),nt=s(32583),rt={};rt.styleTagTransform=st(),rt.setAttributes=J(),rt.insert=K().bind(null,"head"),rt.domAPI=W(),rt.insertStyleElement=et(),G()(nt.Z,rt),nt.Z&&nt.Z.locals&&nt.Z.locals;const ot=(0,v.Z)(q,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("div",{staticClass:"system-tags"},[t.loadingTags?e("NcLoadingIcon",{attrs:{name:t.t("systemtags","Loading collaborative tags …"),size:32}}):[e("label",{attrs:{for:"system-tags-input"}},[t._v(t._s(t.t("systemtags","Search or create collaborative tags")))]),t._v(" "),e("NcSelectTags",{staticClass:"system-tags__select",attrs:{"input-id":"system-tags-input",placeholder:t.t("systemtags","Collaborative tags …"),options:t.sortedTags,value:t.selectedTags,"create-option":t.createOption,taggable:!0,passthru:!0,"fetch-tags":!1,loading:t.loading},on:{input:t.handleInput,"option:selected":t.handleSelect,"option:created":t.handleCreate,"option:deselected":t.handleDeselect},scopedSlots:t._u([{key:"no-options",fn:function(){return[t._v("\n\t\t\t\t"+t._s(t.t("systemtags","No tags to select, type to create a new tag"))+"\n\t\t\t")]},proxy:!0}])})]],2)}),[],!1,null,"3ff8ae0b",null).exports;var at=s(25108);const lt={name:"Sidebar",components:{LegacyView:T,NcActionButton:N.Z,NcAppSidebar:I.Z,NcEmptyContent:C.Z,SidebarTab:S,SystemTags:ot,Star:w,StarOutline:x},data:()=>({Sidebar:OCA.Files.Sidebar.state,showTags:!1,error:null,loading:!0,fileInfo:null,starLoading:!1,isFullScreen:!1,hasLowHeight:!1}),computed:{file(){return this.Sidebar.file},tabs(){return this.Sidebar.tabs},views(){return this.Sidebar.views},davPath(){const t=OC.getCurrentUser().uid;return OC.linkToRemote(`dav/files/${t}${(0,a.Ec)(this.file)}`)},activeTab(){return this.Sidebar.activeTab},subtitle(){return`${this.fileInfo.isFavourited?"★ ":""} ${this.size}, ${this.time}`},time(){return OC.Util.relativeModifiedDate(this.fileInfo.mtime)},fullTime(){return g()(this.fileInfo.mtime).format("LLL")},size(){return OC.Util.humanFileSize(this.fileInfo.size)},background(){return this.getPreviewIfAny(this.fileInfo)},appSidebar(){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&&!this.isFullScreen,"app-sidebar--full":this.isFullScreen},compact:this.hasLowHeight||!this.fileInfo.hasPreview||this.isFullScreen,loading:this.loading,subname:this.subtitle,subtitle:this.fullTime,name:this.fileInfo.name,title:this.fileInfo.name}:this.error?{key:"error",subname:"",name:"",class:{"app-sidebar--full":this.isFullScreen}}:{loading:this.loading,subname:"",name:"",class:{"app-sidebar--full":this.isFullScreen}}},defaultAction(){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(){return this.defaultAction?"figure-click":null},isSystemTagsEnabled:()=>!0===(0,d.getCapabilities)()?.systemtags?.enabled},created(){window.addEventListener("resize",this.handleWindowResize),this.handleWindowResize()},beforeDestroy(){window.removeEventListener("resize",this.handleWindowResize)},methods:{canDisplay(t){return t.enabled(this.fileInfo)},resetData(){this.error=null,this.fileInfo=null,this.$nextTick((()=>{this.$refs.tabs&&this.$refs.tabs.updateTabs()}))},getPreviewIfAny(t){return t.hasPreview&&!this.isFullScreen?OC.generateUrl(`/core/preview?fileId=${t.id}&x=${screen.width}&y=${screen.height}&a=true`):this.getIconUrl(t)},getIconUrl(t){const e=t.mimetype||"application/octet-stream";return"httpd/unix-directory"===e?"shared"===t.mountType||"shared-root"===t.mountType?OC.MimeType.getIconUrl("dir-shared"):"external-root"===t.mountType?OC.MimeType.getIconUrl("dir-external"):void 0!==t.mountType&&""!==t.mountType?OC.MimeType.getIconUrl("dir-"+t.mountType):t.shareTypes&&(t.shareTypes.indexOf(u.D.SHARE_TYPE_LINK)>-1||t.shareTypes.indexOf(u.D.SHARE_TYPE_EMAIL)>-1)?OC.MimeType.getIconUrl("dir-public"):t.shareTypes&&t.shareTypes.length>0?OC.MimeType.getIconUrl("dir-shared"):OC.MimeType.getIconUrl("dir"):OC.MimeType.getIconUrl(e)},setActiveTab(t){OCA.Files.Sidebar.setActiveTab(t),this.tabs.forEach((e=>{try{e.setIsActive(t===e.id)}catch(t){logger.error("Error while setting tab active state",{error:t,id:e.id,tab:e})}}))},async toggleStarred(e){try{this.starLoading=!0,await(0,f.Z)({method:"PROPPATCH",url:this.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${e?"<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${e?"</d:set>":"</d:remove>"}\n\t\t\t\t\t\t</d:propertyupdate>`});const t="dir"===this.fileInfo.type,i=t?l.gt:l.$B;(0,o.j8)(e?"files:favorites:added":"files:favorites:removed",new i({fileid:this.fileInfo.id,source:this.davPath,root:`/files/${(0,c.ts)().uid}`,mime:t?void 0:this.fileInfo.mimetype}))}catch(e){OC.Notification.showTemporary(t("files","Unable to change the favourite state of the file")),at.error("Unable to change favourite state",e)}this.starLoading=!1},onDefaultAction(){this.defaultAction&&this.defaultAction.action(this.fileInfo.name,{fileInfo:this.fileInfo,dir:this.fileInfo.dir,fileList:OCA.Files.App.fileList,$file:p()("body")})},toggleTags(){this.showTags=!this.showTags},async open(e){if(!e||""===e.trim())throw new Error(`Invalid path '${e}'`);this.Sidebar.file=e,this.error=null,this.loading=!0;try{this.fileInfo=await async function(t){const e=await(0,f.Z)({method:"PROPFIND",url:t,data:(0,l.h7)()}),i=OC.Files.getClient()._client.parseMultiStatus(e.data),s=OC.Files.getClient()._parseFileInfo(i[0]);return s.get=t=>s[t],s.isDirectory=()=>"httpd/unix-directory"===s.mimetype,s}(this.davPath),this.fileInfo.dir=this.file.split("/").slice(0,-1).join("/"),this.views.forEach((t=>{t.setFileInfo(this.fileInfo)})),this.$nextTick((()=>{this.$refs.tabs&&this.$refs.tabs.updateTabs(),this.setActiveTab(this.Sidebar.activeTab||this.tabs[0].id)}))}catch(e){throw this.error=t("files","Error while loading the file data"),at.error("Error while loading the file data",e),new Error(e)}finally{this.loading=!1}},close(){this.Sidebar.file="",this.showTags=!1,this.resetData()},setFullScreenMode(t){this.isFullScreen=t,t?document.querySelector("#content")?.classList.add("with-sidebar--full")||document.querySelector("#content-vue")?.classList.add("with-sidebar--full"):document.querySelector("#content")?.classList.remove("with-sidebar--full")||document.querySelector("#content-vue")?.classList.remove("with-sidebar--full")},handleOpening(){(0,o.j8)("files:sidebar:opening")},handleOpened(){(0,o.j8)("files:sidebar:opened")},handleClosing(){(0,o.j8)("files:sidebar:closing")},handleClosed(){(0,o.j8)("files:sidebar:closed")},handleWindowResize(){this.hasLowHeight=document.documentElement.clientHeight<1024}}};var dt=s(93731),ct={};ct.styleTagTransform=st(),ct.setAttributes=J(),ct.insert=K().bind(null,"head"),ct.domAPI=W(),ct.insertStyleElement=et(),G()(dt.Z,ct),dt.Z&&dt.Z.locals&&dt.Z.locals;const ut=(0,v.Z)(lt,(function(){var t=this,e=t._self._c;return t.file?e("NcAppSidebar",t._b({ref:"sidebar",attrs:{"force-menu":!0,tabindex:"0"},on:t._d({close:t.close,"update:active":t.setActiveTab,opening:t.handleOpening,opened:t.handleOpened,closing:t.handleClosing,closed:t.handleClosed},[t.defaultActionListener,function(e){return e.stopPropagation(),e.preventDefault(),t.onDefaultAction.apply(null,arguments)}]),scopedSlots:t._u([t.fileInfo?{key:"description",fn:function(){return[e("div",{staticClass:"sidebar__description"},[t.isSystemTagsEnabled?e("SystemTags",{directives:[{name:"show",rawName:"v-show",value:t.showTags,expression:"showTags"}],attrs:{"file-id":t.fileInfo.id},on:{"has-tags":e=>t.showTags=e}}):t._e(),t._v(" "),t._l(t.views,(function(i){return e("LegacyView",{key:i.cid,attrs:{component:i,"file-info":t.fileInfo}})}))],2)]},proxy:!0}:null,t.fileInfo?{key:"secondary-actions",fn:function(){return[e("NcActionButton",{attrs:{"close-after-click":!0},on:{click:function(e){return t.toggleStarred(!t.fileInfo.isFavourited)}},scopedSlots:t._u([t.fileInfo.isFavourited?{key:"icon",fn:function(){return[e("StarOutline",{attrs:{size:20}})]},proxy:!0}:{key:"icon",fn:function(){return[e("Star",{attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v("\n\t\t\t"+t._s(t.fileInfo.isFavourited?t.t("files","Remove from favorites"):t.t("files","Add to favorites"))+"\n\t\t")]),t._v(" "),t.isSystemTagsEnabled?e("NcActionButton",{attrs:{"close-after-click":!0,icon:"icon-tag"},on:{click:t.toggleTags}},[t._v("\n\t\t\t"+t._s(t.t("files","Tags"))+"\n\t\t")]):t._e()]},proxy:!0}:null],null,!0)},"NcAppSidebar",t.appSidebar,!1),[t._v(" "),t._v(" "),t.error?e("NcEmptyContent",{attrs:{icon:"icon-error"}},[t._v("\n\t\t"+t._s(t.error)+"\n\t")]):t.fileInfo?t._l(t.tabs,(function(i){return[i.enabled(t.fileInfo)?e("SidebarTab",{directives:[{name:"show",rawName:"v-show",value:!t.loading,expression:"!loading"}],key:i.id,attrs:{id:i.id,name:i.name,icon:i.icon,"on-mount":i.mount,"on-update":i.update,"on-destroy":i.destroy,"on-scroll-bottom-reached":i.scrollBottomReached,"file-info":t.fileInfo},scopedSlots:t._u([void 0!==i.iconSvg?{key:"icon",fn:function(){return[e("span",{staticClass:"svg-icon",domProps:{innerHTML:t._s(i.iconSvg)}})]},proxy:!0}:null],null,!0)}):t._e()]})):t._e()],2):t._e()}),[],!1,null,"4e367638",null).exports;var ht=s(25108);var pt=s(48764),ft=s(5119),mt=s.n(ft);function gt(t,e,i){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var s=i.call(t,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}n.default.prototype.t=r.Iu,window.OCA.Files||(window.OCA.Files={}),Object.assign(window.OCA.Files,{Sidebar:new class{constructor(){var t,e,i;t=this,i=void 0,(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var s=i.call(t,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(e="_state"))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,this._state={},this._state.tabs=[],this._state.views=[],this._state.file="",this._state.activeTab="",ht.debug("OCA.Files.Sidebar initialized")}get state(){return this._state}registerTab(t){return this._state.tabs.findIndex((e=>e.id===t.id))>-1?(ht.error(`An tab with the same id ${t.id} already exists`,t),!1):(this._state.tabs.push(t),!0)}registerSecondaryView(t){return this._state.views.findIndex((e=>e.id===t.id))>-1?(ht.error("A similar view already exists",t),!1):(this._state.views.push(t),!0)}get file(){return this._state.file}setActiveTab(t){this._state.activeTab=t}}}),Object.assign(window.OCA.Files.Sidebar,{Tab:class{constructor(){let{id:t,name:e,icon:i,iconSvg:s,mount:n,setIsActive:r,update:o,destroy:a,enabled:l,scrollBottomReached:d}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(gt(this,"_id",void 0),gt(this,"_name",void 0),gt(this,"_icon",void 0),gt(this,"_iconSvgSanitized",void 0),gt(this,"_mount",void 0),gt(this,"_setIsActive",void 0),gt(this,"_update",void 0),gt(this,"_destroy",void 0),gt(this,"_enabled",void 0),gt(this,"_scrollBottomReached",void 0),void 0===l&&(l=()=>!0),void 0===d&&(d=()=>{}),"string"!=typeof t||""===t.trim())throw new Error("The id argument is not a valid string");if("string"!=typeof e||""===e.trim())throw new Error("The name argument is not a valid string");if(("string"!=typeof i||""===i.trim())&&"string"!=typeof s)throw new Error("Missing valid string for icon or iconSvg argument");if("function"!=typeof n)throw new Error("The mount argument should be a function");if(void 0!==r&&"function"!=typeof r)throw new Error("The setIsActive argument should be a function");if("function"!=typeof o)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 d)throw new Error("The scrollBottomReached argument should be a function");this._id=t,this._name=e,this._icon=i,this._mount=n,this._setIsActive=r,this._update=o,this._destroy=a,this._enabled=l,this._scrollBottomReached=d,"string"==typeof s&&(async t=>{if(!t)throw new Error("Not an svg");let e="";if(e=pt.Buffer.isBuffer(t)||t instanceof File?await(t=>new Promise((e=>{if(void 0!==t.size){const i=new FileReader;i.onload=()=>{e(i.result)},i.readAsText(t)}else e(t.toString("utf-8"))})))(t):t,!mt()(e))throw new Error("Not an svg");const i=document.createElement("div");i.innerHTML=e;const s=i.firstElementChild,n=!!Array.from(s.attributes).map((({name:t})=>t)).find((t=>t.startsWith("on")));return 0!==s.getElementsByTagName("script").length||n?null:t})(s).then((t=>{this._iconSvgSanitized=t}))}get id(){return this._id}get name(){return this._name}get icon(){return this._icon}get iconSvg(){return this._iconSvgSanitized}get mount(){return this._mount}get setIsActive(){return this._setIsActive||(()=>{})}get update(){return this._update}get destroy(){return this._destroy}get enabled(){return this._enabled}get scrollBottomReached(){return this._scrollBottomReached}}}),window.addEventListener("DOMContentLoaded",(function(){const t=document.querySelector("body > .content")||document.querySelector("body > #content");if(t&&!document.getElementById("app-sidebar")){const e=document.createElement("div");e.id="app-sidebar",t.appendChild(e)}const e=new(n.default.extend(ut))({name:"SidebarRoot"});e.$mount("#app-sidebar"),window.OCA.Files.Sidebar.open=e.open,window.OCA.Files.Sidebar.close=e.close,window.OCA.Files.Sidebar.setFullScreenMode=e.setFullScreenMode}))},93731:(t,e,i)=>{"use strict";i.d(e,{Z:()=>a});var s=i(87537),n=i.n(s),r=i(23645),o=i.n(r)()(n());o.push([t.id,'.app-sidebar--has-preview[data-v-4e367638] .app-sidebar-header__figure{background-size:cover}.app-sidebar--has-preview[data-v-4e367638][data-mimetype="text/plain"] .app-sidebar-header__figure,.app-sidebar--has-preview[data-v-4e367638][data-mimetype="text/markdown"] .app-sidebar-header__figure{background-size:contain}.app-sidebar--full[data-v-4e367638]{position:fixed !important;z-index:2025 !important;top:0 !important;height:100% !important}.app-sidebar[data-v-4e367638] .app-sidebar-header__description{margin:0 16px 4px 16px !important}.app-sidebar .svg-icon[data-v-4e367638] svg{width:20px;height:20px;fill:currentColor}.sidebar__description[data-v-4e367638]{display:flex;flex-direction:column;width:100%;gap:8px 0}',"",{version:3,sources:["webpack://./apps/files/src/views/Sidebar.vue"],names:[],mappings:"AAGE,uEACC,qBAAA,CAKA,yMACC,uBAAA,CAKH,oCACC,yBAAA,CACA,uBAAA,CACA,gBAAA,CACA,sBAAA,CAIA,+DACC,iCAAA,CAKD,4CACC,UAAA,CACA,WAAA,CACA,iBAAA,CAKH,uCACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,SAAA",sourcesContent:['\n.app-sidebar {\n\t&--has-preview: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\t:deep {\n\t\t.app-sidebar-header__description {\n\t\t\tmargin: 0 16px 4px 16px !important;\n\t\t}\n\t}\n\n\t.svg-icon {\n\t\t::v-deep svg {\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tfill: currentColor;\n\t\t}\n\t}\n}\n\n.sidebar__description {\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tgap: 8px 0;\n}\n'],sourceRoot:""}]);const a=o},32583:(t,e,i)=>{"use strict";i.d(e,{Z:()=>a});var s=i(87537),n=i.n(s),r=i(23645),o=i.n(r)()(n());o.push([t.id,".system-tags[data-v-3ff8ae0b]{display:flex;flex-direction:column}.system-tags label[for=system-tags-input][data-v-3ff8ae0b]{margin-bottom:2px}.system-tags__select[data-v-3ff8ae0b]{width:100%}.system-tags__select[data-v-3ff8ae0b] .vs__deselect{padding:0}","",{version:3,sources:["webpack://./apps/systemtags/src/components/SystemTags.vue"],names:[],mappings:"AACA,8BACC,YAAA,CACA,qBAAA,CAEA,2DACC,iBAAA,CAGD,sCACC,UAAA,CAEC,oDACC,SAAA",sourcesContent:['\n.system-tags {\n\tdisplay: flex;\n\tflex-direction: column;\n\n\tlabel[for="system-tags-input"] {\n\t\tmargin-bottom: 2px;\n\t}\n\n\t&__select {\n\t\twidth: 100%;\n\t\t:deep {\n\t\t\t.vs__deselect {\n\t\t\t\tpadding: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=o},16932:(t,e,i)=>{"use strict";const s=i(78501),n=i(58844),r=i(41192);t.exports={XMLParser:n,XMLValidator:s,XMLBuilder:r}},46700:(t,e,i)=>{var s={"./af":42786,"./af.js":42786,"./ar":30867,"./ar-dz":14130,"./ar-dz.js":14130,"./ar-kw":96135,"./ar-kw.js":96135,"./ar-ly":56440,"./ar-ly.js":56440,"./ar-ma":47702,"./ar-ma.js":47702,"./ar-sa":16040,"./ar-sa.js":16040,"./ar-tn":37100,"./ar-tn.js":37100,"./ar.js":30867,"./az":31083,"./az.js":31083,"./be":9808,"./be.js":9808,"./bg":68338,"./bg.js":68338,"./bm":67438,"./bm.js":67438,"./bn":8905,"./bn-bd":76225,"./bn-bd.js":76225,"./bn.js":8905,"./bo":11560,"./bo.js":11560,"./br":1278,"./br.js":1278,"./bs":80622,"./bs.js":80622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":50877,"./cv.js":50877,"./cy":47373,"./cy.js":47373,"./da":24780,"./da.js":24780,"./de":59740,"./de-at":60217,"./de-at.js":60217,"./de-ch":60894,"./de-ch.js":60894,"./de.js":59740,"./dv":5300,"./dv.js":5300,"./el":50837,"./el.js":50837,"./en-au":78348,"./en-au.js":78348,"./en-ca":77925,"./en-ca.js":77925,"./en-gb":22243,"./en-gb.js":22243,"./en-ie":46436,"./en-ie.js":46436,"./en-il":47207,"./en-il.js":47207,"./en-in":44175,"./en-in.js":44175,"./en-nz":76319,"./en-nz.js":76319,"./en-sg":31662,"./en-sg.js":31662,"./eo":92915,"./eo.js":92915,"./es":55655,"./es-do":55251,"./es-do.js":55251,"./es-mx":96112,"./es-mx.js":96112,"./es-us":71146,"./es-us.js":71146,"./es.js":55655,"./et":5603,"./et.js":5603,"./eu":77763,"./eu.js":77763,"./fa":76959,"./fa.js":76959,"./fi":11897,"./fi.js":11897,"./fil":42549,"./fil.js":42549,"./fo":94694,"./fo.js":94694,"./fr":94470,"./fr-ca":63049,"./fr-ca.js":63049,"./fr-ch":52330,"./fr-ch.js":52330,"./fr.js":94470,"./fy":5044,"./fy.js":5044,"./ga":29295,"./ga.js":29295,"./gd":2101,"./gd.js":2101,"./gl":38794,"./gl.js":38794,"./gom-deva":27884,"./gom-deva.js":27884,"./gom-latn":23168,"./gom-latn.js":23168,"./gu":95349,"./gu.js":95349,"./he":24206,"./he.js":24206,"./hi":30094,"./hi.js":30094,"./hr":30316,"./hr.js":30316,"./hu":22138,"./hu.js":22138,"./hy-am":11423,"./hy-am.js":11423,"./id":29218,"./id.js":29218,"./is":90135,"./is.js":90135,"./it":90626,"./it-ch":10150,"./it-ch.js":10150,"./it.js":90626,"./ja":39183,"./ja.js":39183,"./jv":24286,"./jv.js":24286,"./ka":12105,"./ka.js":12105,"./kk":47772,"./kk.js":47772,"./km":18758,"./km.js":18758,"./kn":79282,"./kn.js":79282,"./ko":33730,"./ko.js":33730,"./ku":1408,"./ku.js":1408,"./ky":33291,"./ky.js":33291,"./lb":36841,"./lb.js":36841,"./lo":55466,"./lo.js":55466,"./lt":57010,"./lt.js":57010,"./lv":37595,"./lv.js":37595,"./me":39861,"./me.js":39861,"./mi":35493,"./mi.js":35493,"./mk":95966,"./mk.js":95966,"./ml":87341,"./ml.js":87341,"./mn":5115,"./mn.js":5115,"./mr":10370,"./mr.js":10370,"./ms":9847,"./ms-my":41237,"./ms-my.js":41237,"./ms.js":9847,"./mt":72126,"./mt.js":72126,"./my":56165,"./my.js":56165,"./nb":64924,"./nb.js":64924,"./ne":16744,"./ne.js":16744,"./nl":93901,"./nl-be":59814,"./nl-be.js":59814,"./nl.js":93901,"./nn":83877,"./nn.js":83877,"./oc-lnc":92135,"./oc-lnc.js":92135,"./pa-in":15858,"./pa-in.js":15858,"./pl":64495,"./pl.js":64495,"./pt":89520,"./pt-br":57971,"./pt-br.js":57971,"./pt.js":89520,"./ro":96459,"./ro.js":96459,"./ru":21793,"./ru.js":21793,"./sd":40950,"./sd.js":40950,"./se":10490,"./se.js":10490,"./si":90124,"./si.js":90124,"./sk":64249,"./sk.js":64249,"./sl":14985,"./sl.js":14985,"./sq":51104,"./sq.js":51104,"./sr":49131,"./sr-cyrl":79915,"./sr-cyrl.js":79915,"./sr.js":49131,"./ss":85893,"./ss.js":85893,"./sv":98760,"./sv.js":98760,"./sw":91172,"./sw.js":91172,"./ta":27333,"./ta.js":27333,"./te":23110,"./te.js":23110,"./tet":52095,"./tet.js":52095,"./tg":27321,"./tg.js":27321,"./th":9041,"./th.js":9041,"./tk":19005,"./tk.js":19005,"./tl-ph":75768,"./tl-ph.js":75768,"./tlh":89444,"./tlh.js":89444,"./tr":72397,"./tr.js":72397,"./tzl":28254,"./tzl.js":28254,"./tzm":51106,"./tzm-latn":30699,"./tzm-latn.js":30699,"./tzm.js":51106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":67691,"./uk.js":67691,"./ur":13795,"./ur.js":13795,"./uz":6791,"./uz-latn":60588,"./uz-latn.js":60588,"./uz.js":6791,"./vi":65666,"./vi.js":65666,"./x-pseudo":14378,"./x-pseudo.js":14378,"./yo":75805,"./yo.js":75805,"./zh-cn":83839,"./zh-cn.js":83839,"./zh-hk":55726,"./zh-hk.js":55726,"./zh-mo":99807,"./zh-mo.js":99807,"./zh-tw":74152,"./zh-tw.js":74152};function n(t){var e=r(t);return i(e)}function r(t){if(!i.o(s,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return s[t]}n.keys=function(){return Object.keys(s)},n.resolve=r,t.exports=n,n.id=46700},42761:t=>{"use strict";t.exports="data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTS00LTRoMjR2MjRILTRWLTR6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTggMEMzLjYgMCAwIDMuNiAwIDhzMy42IDggOCA4IDgtMy42IDgtOC0zLjYtOC04LTh6IiBmaWxsPSIjZWQ0ODRjIi8+PHBhdGggZD0iTTUgNi41aDZjLjggMCAxLjUuNyAxLjUgMS41cy0uNyAxLjUtMS41IDEuNUg1Yy0uOCAwLTEuNS0uNy0xLjUtMS41UzQuMiA2LjUgNSA2LjV6IiBmaWxsPSIjZmRmZmZmIi8+PC9zdmc+Cg=="},87210:t=>{"use strict";t.exports="data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTQuOCAxMS4yaDYuNFY0LjhINC44djYuNHpNOCAwQzMuNiAwIDAgMy42IDAgOHMzLjYgOCA4IDggOC0zLjYgOC04LTMuNi04LTgtOHoiIGZpbGw9IiM0OWIzODIiLz48L3N2Zz4K"},94659:t=>{"use strict";t.exports="data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTS00LTRoMjR2MjRILTR6Ii8+PHBhdGggZD0iTTYuOS4xQzMgLjYtLjEgNC0uMSA4YzAgNC40IDMuNiA4IDggOCA0IDAgNy40LTMgOC02LjktMS4yIDEuMy0yLjkgMi4xLTQuNyAyLjEtMy41IDAtNi40LTIuOS02LjQtNi40IDAtMS45LjgtMy42IDIuMS00Ljd6IiBmaWxsPSIjZjRhMzMxIi8+PC9zdmc+Cg=="},5656:(t,e,i)=>{"use strict";i.d(e,{$B:()=>C,RL:()=>L,Tv:()=>A,_o:()=>T,gt:()=>_,h7:()=>v,pC:()=>O,rp:()=>S,sS:()=>p,tB:()=>w});var s,n=i(77958),r=i(17499),o=i(31352),a=i(62520),l=i(65358),d=i(79753),c=i(14596);null===(s=(0,n.ts)())?(0,r.IY)().setApp("files").build():(0,r.IY)().setApp("files").setUid(s.uid).build();const u=["B","KB","MB","GB","TB","PB"],h=["B","KiB","MiB","GiB","TiB","PiB"];function p(t,e=!1,i=!1,s=!1){i=i&&!s,"string"==typeof t&&(t=Number(t));let n=t>0?Math.floor(Math.log(t)/Math.log(s?1e3:1024)):0;n=Math.min((i?h.length:u.length)-1,n);const r=i?h[n]:u[n];let a=(t/Math.pow(s?1e3:1024,n)).toFixed(1);return!0===e&&0===n?("0.0"!==a?"< 1 ":"0 ")+(i?h[1]:u[1]):(a=n<2?parseFloat(a).toFixed(0):parseFloat(a).toLocaleString((0,o.aj)()),a+" "+r)}var f=(t=>(t[t.NONE=0]="NONE",t[t.CREATE=4]="CREATE",t[t.READ=1]="READ",t[t.UPDATE=2]="UPDATE",t[t.DELETE=8]="DELETE",t[t.SHARE=16]="SHARE",t[t.ALL=31]="ALL",t))(f||{});const m=["d:getcontentlength","d:getcontenttype","d:getetag","d:getlastmodified","d:quota-available-bytes","d:resourcetype","nc:has-preview","nc:is-encrypted","nc:mount-type","nc:share-attributes","oc:comments-unread","oc:favorite","oc:fileid","oc:owner-display-name","oc:owner-id","oc:permissions","oc:share-types","oc:size","ocs:share-permissions"],g={d:"DAV:",nc:"http://nextcloud.org/ns",oc:"http://owncloud.org/ns",ocs:"http://open-collaboration-services.org/ns"},y=function(){return typeof window._nc_dav_properties>"u"&&(window._nc_dav_properties=[...m]),window._nc_dav_properties.map((t=>`<${t} />`)).join(" ")},b=function(){return typeof window._nc_dav_namespaces>"u"&&(window._nc_dav_namespaces={...g}),Object.keys(window._nc_dav_namespaces).map((t=>`xmlns:${t}="${window._nc_dav_namespaces?.[t]}"`)).join(" ")},v=function(){return`<?xml version="1.0"?>\n\t\t<d:propfind ${b()}>\n\t\t\t<d:prop>\n\t\t\t\t${y()}\n\t\t\t</d:prop>\n\t\t</d:propfind>`},w=function(t){return`<?xml version="1.0" encoding="UTF-8"?>\n<d:searchrequest ${b()}\n\txmlns:ns="https://github.com/icewind1991/SearchDAV/ns">\n\t<d:basicsearch>\n\t\t<d:select>\n\t\t\t<d:prop>\n\t\t\t\t${y()}\n\t\t\t</d:prop>\n\t\t</d:select>\n\t\t<d:from>\n\t\t\t<d:scope>\n\t\t\t\t<d:href>/files/${(0,n.ts)()?.uid}/</d:href>\n\t\t\t\t<d:depth>infinity</d:depth>\n\t\t\t</d:scope>\n\t\t</d:from>\n\t\t<d:where>\n\t\t\t<d:and>\n\t\t\t\t<d:or>\n\t\t\t\t\t<d:not>\n\t\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<d:getcontenttype/>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t\t<d:literal>httpd/unix-directory</d:literal>\n\t\t\t\t\t\t</d:eq>\n\t\t\t\t\t</d:not>\n\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<oc:size/>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t<d:literal>0</d:literal>\n\t\t\t\t\t</d:eq>\n\t\t\t\t</d:or>\n\t\t\t\t<d:gt>\n\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t\t</d:prop>\n\t\t\t\t\t<d:literal>${t}</d:literal>\n\t\t\t\t</d:gt>\n\t\t\t</d:and>\n\t\t</d:where>\n\t\t<d:orderby>\n\t\t\t<d:order>\n\t\t\t\t<d:prop>\n\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t</d:prop>\n\t\t\t\t<d:descending/>\n\t\t\t</d:order>\n\t\t</d:orderby>\n\t\t<d:limit>\n\t\t\t<d:nresults>100</d:nresults>\n\t\t\t<ns:firstresult>0</ns:firstresult>\n\t\t</d:limit>\n\t</d:basicsearch>\n</d:searchrequest>`};var A=(t=>(t.Folder="folder",t.File="file",t))(A||{});const j=function(t,e){return null!==t.match(e)},x=(t,e)=>{if(t.id&&"number"!=typeof t.id)throw new Error("Invalid id type of value");if(!t.source)throw new Error("Missing mandatory source");try{new URL(t.source)}catch{throw new Error("Invalid source format, source must be a valid URL")}if(!t.source.startsWith("http"))throw new Error("Invalid source format, only http(s) is supported");if(t.mtime&&!(t.mtime instanceof Date))throw new Error("Invalid mtime type");if(t.crtime&&!(t.crtime instanceof Date))throw new Error("Invalid crtime type");if(!t.mime||"string"!=typeof t.mime||!t.mime.match(/^[-\w.]+\/[-+\w.]+$/gi))throw new Error("Missing or invalid mandatory mime");if("size"in t&&"number"!=typeof t.size&&void 0!==t.size)throw new Error("Invalid size type");if("permissions"in t&&void 0!==t.permissions&&!("number"==typeof t.permissions&&t.permissions>=f.NONE&&t.permissions<=f.ALL))throw new Error("Invalid permissions");if(t.owner&&null!==t.owner&&"string"!=typeof t.owner)throw new Error("Invalid owner type");if(t.attributes&&"object"!=typeof t.attributes)throw new Error("Invalid attributes type");if(t.root&&"string"!=typeof t.root)throw new Error("Invalid root type");if(t.root&&!t.root.startsWith("/"))throw new Error("Root must start with a leading slash");if(t.root&&!t.source.includes(t.root))throw new Error("Root must be part of the source");if(t.root&&j(t.source,e)){const i=t.source.match(e)[0];if(!t.source.includes((0,a.join)(i,t.root)))throw new Error("The root must be relative to the service. e.g /files/emma")}if(t.status&&!Object.values(I).includes(t.status))throw new Error("Status must be a valid NodeStatus")};var I=(t=>(t.NEW="new",t.FAILED="failed",t.LOADING="loading",t.LOCKED="locked",t))(I||{});class N{_data;_attributes;_knownDavService=/(remote|public)\.php\/(web)?dav/i;constructor(t,e){x(t,e||this._knownDavService),this._data=t;const i={set:(t,e,i)=>(this.updateMtime(),Reflect.set(t,e,i)),deleteProperty:(t,e)=>(this.updateMtime(),Reflect.deleteProperty(t,e))};this._attributes=new Proxy(t.attributes||{},i),delete this._data.attributes,e&&(this._knownDavService=e)}get source(){return this._data.source.replace(/\/$/i,"")}get encodedSource(){const{origin:t}=new URL(this.source);return t+(0,l.Ec)(this.source.slice(t.length))}get basename(){return(0,a.basename)(this.source)}get extension(){return(0,a.extname)(this.source)}get dirname(){if(this.root){const t=this.source.indexOf(this.root);return(0,a.dirname)(this.source.slice(t+this.root.length)||"/")}const t=new URL(this.source);return(0,a.dirname)(t.pathname)}get mime(){return this._data.mime}get mtime(){return this._data.mtime}get crtime(){return this._data.crtime}get size(){return this._data.size}get attributes(){return this._attributes}get permissions(){return null!==this.owner||this.isDavRessource?void 0!==this._data.permissions?this._data.permissions:f.NONE:f.READ}get owner(){return this.isDavRessource?this._data.owner:null}get isDavRessource(){return j(this.source,this._knownDavService)}get root(){return this._data.root?this._data.root.replace(/^(.+)\/$/,"$1"):this.isDavRessource&&(0,a.dirname)(this.source).split(this._knownDavService).pop()||null}get path(){if(this.root){const t=this.source.indexOf(this.root);return this.source.slice(t+this.root.length)||"/"}return(this.dirname+"/"+this.basename).replace(/\/\//g,"/")}get fileid(){return this._data?.id||this.attributes?.fileid}get status(){return this._data?.status}set status(t){this._data.status=t}move(t){x({...this._data,source:t},this._knownDavService),this._data.source=t,this.updateMtime()}rename(t){if(t.includes("/"))throw new Error("Invalid basename");this.move((0,a.dirname)(this.source)+"/"+t)}updateMtime(){this._data.mtime&&(this._data.mtime=new Date)}}class C extends N{get type(){return A.File}}class _ extends N{constructor(t){super({...t,mime:"httpd/unix-directory"})}get type(){return A.Folder}get extension(){return null}get mime(){return"httpd/unix-directory"}}const T=`/files/${(0,n.ts)()?.uid}`,E=(0,d.generateRemoteUrl)("dav"),S=function(t=E){const e=(0,c.eI)(t);function i(t){e.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:t??""})}return(0,n._S)(i),i((0,n.IH)()),(0,c.lD)().patch("fetch",((t,e)=>{const i=e.headers;return i?.method&&(e.method=i.method,delete i.method),fetch(t,e)})),e},O=async(t,e="/",i=T)=>(await t.getDirectoryContents(`${i}${e}`,{details:!0,data:`<?xml version="1.0"?>\n\t\t<oc:filter-files ${b()}>\n\t\t\t<d:prop>\n\t\t\t\t${y()}\n\t\t\t</d:prop>\n\t\t\t<oc:filter-rules>\n\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t</oc:filter-rules>\n\t\t</oc:filter-files>`,headers:{method:"REPORT"},includeSelf:!0})).data.filter((t=>t.filename!==e)).map((t=>L(t,i))),L=function(t,e=T,i=E){const s=t.props,r=function(t=""){let e=f.NONE;return t&&((t.includes("C")||t.includes("K"))&&(e|=f.CREATE),t.includes("G")&&(e|=f.READ),(t.includes("W")||t.includes("N")||t.includes("V"))&&(e|=f.UPDATE),t.includes("D")&&(e|=f.DELETE),t.includes("R")&&(e|=f.SHARE)),e}(s?.permissions),o=(0,n.ts)()?.uid,a={id:s?.fileid||0,source:`${i}${t.filename}`,mtime:new Date(Date.parse(t.lastmod)),mime:t.mime,size:s?.size||Number.parseInt(s.getcontentlength||"0"),permissions:r,owner:o,root:e,attributes:{...t,...s,hasPreview:s?.["has-preview"]}};return delete a.attributes?.props,"file"===t.type?new C(a):new _(a)};var F={};!function(t){const e=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",i="["+e+"]["+e+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",s=new RegExp("^"+i+"$");t.isExist=function(t){return typeof t<"u"},t.isEmptyObject=function(t){return 0===Object.keys(t).length},t.merge=function(t,e,i){if(e){const s=Object.keys(e),n=s.length;for(let r=0;r<n;r++)t[s[r]]="strict"===i?[e[s[r]]]:e[s[r]]}},t.getValue=function(e){return t.isExist(e)?e:""},t.isName=function(t){const e=s.exec(t);return!(null===e||typeof e>"u")},t.getAllMatches=function(t,e){const i=[];let s=e.exec(t);for(;s;){const n=[];n.startIndex=e.lastIndex-s[0].length;const r=s.length;for(let t=0;t<r;t++)n.push(s[t]);i.push(n),s=e.exec(t)}return i},t.nameRegexp=i}(F);new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");var D={};const P={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,i){return t}};D.buildOptions=function(t){return Object.assign({},P,t)},D.defaultOptions=P,!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);"<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)".replace(/NAME/g,F.nameRegexp),new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");var M={};function k(t,e,i){let s;const n={};for(let r=0;r<t.length;r++){const o=t[r],a=R(o);let l="";if(l=void 0===i?a:i+"."+a,a===e.textNodeName)void 0===s?s=o[a]:s+=""+o[a];else{if(void 0===a)continue;if(o[a]){let t=k(o[a],e,l);const i=B(t,e);o[":@"]?z(t,o[":@"],l,e):1!==Object.keys(t).length||void 0===t[e.textNodeName]||e.alwaysCreateTextNode?0===Object.keys(t).length&&(e.alwaysCreateTextNode?t[e.textNodeName]="":t=""):t=t[e.textNodeName],void 0!==n[a]&&n.hasOwnProperty(a)?(Array.isArray(n[a])||(n[a]=[n[a]]),n[a].push(t)):e.isArray(a,l,i)?n[a]=[t]:n[a]=t}}}return"string"==typeof s?s.length>0&&(n[e.textNodeName]=s):void 0!==s&&(n[e.textNodeName]=s),n}function R(t){const e=Object.keys(t);for(let t=0;t<e.length;t++){const i=e[t];if(":@"!==i)return i}}function z(t,e,i,s){if(e){const n=Object.keys(e),r=n.length;for(let o=0;o<r;o++){const r=n[o];s.isArray(r,i+"."+r,!0,!0)?t[r]=[e[r]]:t[r]=e[r]}}}function B(t,e){const{textNodeName:i}=e,s=Object.keys(t).length;return!(0!==s&&(1!==s||!t[i]&&"boolean"!=typeof t[i]&&0!==t[i]))}M.prettify=function(t,e){return k(t,e)};const{buildOptions:Z}=D,{prettify:$}=M;function U(t,e,i,s){let n="",r=!1;for(let o=0;o<t.length;o++){const a=t[o],l=V(a);if(void 0===l)continue;let d="";if(d=0===i.length?l:`${i}.${l}`,l===e.textNodeName){let t=a[l];H(d,e)||(t=e.tagValueProcessor(l,t),t=G(t,e)),r&&(n+=s),n+=t,r=!1;continue}if(l===e.cdataPropName){r&&(n+=s),n+=`<![CDATA[${a[l][0][e.textNodeName]}]]>`,r=!1;continue}if(l===e.commentPropName){n+=s+`\x3c!--${a[l][0][e.textNodeName]}--\x3e`,r=!0;continue}if("?"===l[0]){const t=q(a[":@"],e),i="?xml"===l?"":s;let o=a[l][0][e.textNodeName];o=0!==o.length?" "+o:"",n+=i+`<${l}${o}${t}?>`,r=!0;continue}let c=s;""!==c&&(c+=e.indentBy);const u=s+`<${l}${q(a[":@"],e)}`,h=U(a[l],e,d,c);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?n+=u+">":n+=u+"/>":h&&0!==h.length||!e.suppressEmptyNode?h&&h.endsWith(">")?n+=u+`>${h}${s}</${l}>`:(n+=u+">",h&&""!==s&&(h.includes("/>")||h.includes("</"))?n+=s+e.indentBy+h+s:n+=h,n+=`</${l}>`):n+=u+"/>",r=!0}return n}function V(t){const e=Object.keys(t);for(let i=0;i<e.length;i++){const s=e[i];if(t.hasOwnProperty(s)&&":@"!==s)return s}}function q(t,e){let i="";if(t&&!e.ignoreAttributes)for(let s in t){if(!t.hasOwnProperty(s))continue;let n=e.attributeValueProcessor(s,t[s]);n=G(n,e),!0===n&&e.suppressBooleanAttributes?i+=` ${s.substr(e.attributeNamePrefix.length)}`:i+=` ${s.substr(e.attributeNamePrefix.length)}="${n}"`}return i}function H(t,e){let i=(t=t.substr(0,t.length-e.textNodeName.length-1)).substr(t.lastIndexOf(".")+1);for(let s in e.stopNodes)if(e.stopNodes[s]===t||e.stopNodes[s]==="*."+i)return!0;return!1}function G(t,e){if(t&&t.length>0&&e.processEntities)for(let i=0;i<e.entities.length;i++){const s=e.entities[i];t=t.replace(s.regex,s.val)}return t}const Y=function(t,e){let i="";return e.format&&e.indentBy.length>0&&(i="\n"),U(t,e,"",i)},W={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:"  ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&amp;"},{regex:new RegExp(">","g"),val:"&gt;"},{regex:new RegExp("<","g"),val:"&lt;"},{regex:new RegExp("'","g"),val:"&apos;"},{regex:new RegExp('"',"g"),val:"&quot;"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function X(t){this.options=Object.assign({},W,t),this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=J),this.processTextOrObjNode=K,this.options.format?(this.indentate=Q,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function K(t,e,i){const s=this.j2x(t,i+1);return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,s.attrStr,i):this.buildObjectNode(s.val,e,s.attrStr,i)}function Q(t){return this.options.indentBy.repeat(t)}function J(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}X.prototype.build=function(t){return this.options.preserveOrder?Y(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0).val)},X.prototype.j2x=function(t,e){let i="",s="";for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n))if(typeof t[n]>"u")this.isAttribute(n)&&(s+="");else if(null===t[n])this.isAttribute(n)?s+="":"?"===n[0]?s+=this.indentate(e)+"<"+n+"?"+this.tagEndChar:s+=this.indentate(e)+"<"+n+"/"+this.tagEndChar;else if(t[n]instanceof Date)s+=this.buildTextValNode(t[n],n,"",e);else if("object"!=typeof t[n]){const r=this.isAttribute(n);if(r)i+=this.buildAttrPairStr(r,""+t[n]);else if(n===this.options.textNodeName){let e=this.options.tagValueProcessor(n,""+t[n]);s+=this.replaceEntitiesValue(e)}else s+=this.buildTextValNode(t[n],n,"",e)}else if(Array.isArray(t[n])){const i=t[n].length;let r="";for(let o=0;o<i;o++){const i=t[n][o];typeof i>"u"||(null===i?"?"===n[0]?s+=this.indentate(e)+"<"+n+"?"+this.tagEndChar:s+=this.indentate(e)+"<"+n+"/"+this.tagEndChar:"object"==typeof i?this.options.oneListGroup?r+=this.j2x(i,e+1).val:r+=this.processTextOrObjNode(i,n,e):r+=this.buildTextValNode(i,n,"",e))}this.options.oneListGroup&&(r=this.buildObjectNode(r,n,"",e)),s+=r}else if(this.options.attributesGroupName&&n===this.options.attributesGroupName){const e=Object.keys(t[n]),s=e.length;for(let r=0;r<s;r++)i+=this.buildAttrPairStr(e[r],""+t[n][e[r]])}else s+=this.processTextOrObjNode(t[n],n,e);return{attrStr:i,val:s}},X.prototype.buildAttrPairStr=function(t,e){return e=this.options.attributeValueProcessor(t,""+e),e=this.replaceEntitiesValue(e),this.options.suppressBooleanAttributes&&"true"===e?" "+t:" "+t+'="'+e+'"'},X.prototype.buildObjectNode=function(t,e,i,s){if(""===t)return"?"===e[0]?this.indentate(s)+"<"+e+i+"?"+this.tagEndChar:this.indentate(s)+"<"+e+i+this.closeTag(e)+this.tagEndChar;{let n="</"+e+this.tagEndChar,r="";return"?"===e[0]&&(r="?",n=""),!i&&""!==i||-1!==t.indexOf("<")?!1!==this.options.commentPropName&&e===this.options.commentPropName&&0===r.length?this.indentate(s)+`\x3c!--${t}--\x3e`+this.newLine:this.indentate(s)+"<"+e+i+r+this.tagEndChar+t+this.indentate(s)+n:this.indentate(s)+"<"+e+i+r+">"+t+n}},X.prototype.closeTag=function(t){let e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":`></${t}`,e},X.prototype.buildTextValNode=function(t,e,i,s){if(!1!==this.options.cdataPropName&&e===this.options.cdataPropName)return this.indentate(s)+`<![CDATA[${t}]]>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(s)+`\x3c!--${t}--\x3e`+this.newLine;if("?"===e[0])return this.indentate(s)+"<"+e+i+"?"+this.tagEndChar;{let n=this.options.tagValueProcessor(e,t);return n=this.replaceEntitiesValue(n),""===n?this.indentate(s)+"<"+e+i+this.closeTag(e)+this.tagEndChar:this.indentate(s)+"<"+e+i+">"+n+"</"+e+this.tagEndChar}},X.prototype.replaceEntitiesValue=function(t){if(t&&t.length>0&&this.options.processEntities)for(let e=0;e<this.options.entities.length;e++){const i=this.options.entities[e];t=t.replace(i.regex,i.val)}return t}}},r={};function o(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={id:t,loaded:!1,exports:{}};return n[t].call(i.exports,i,i.exports,o),i.loaded=!0,i.exports}o.m=n,e=[],o.O=(t,i,s,n)=>{if(!i){var r=1/0;for(c=0;c<e.length;c++){i=e[c][0],s=e[c][1],n=e[c][2];for(var a=!0,l=0;l<i.length;l++)(!1&n||r>=n)&&Object.keys(o.O).every((t=>o.O[t](i[l])))?i.splice(l--,1):(a=!1,n<r&&(r=n));if(a){e.splice(c--,1);var d=s();void 0!==d&&(t=d)}}return t}n=n||0;for(var c=e.length;c>0&&e[c-1][2]>n;c--)e[c]=e[c-1];e[c]=[i,s,n]},o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var i in e)o.o(e,i)&&!o.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},o.f={},o.e=t=>Promise.all(Object.keys(o.f).reduce(((e,i)=>(o.f[i](t,e),e)),[])),o.u=t=>t+"-"+t+".js?v="+{2048:"78a82614529a3cefcde7",4180:"fe82f3a2dac70d6b82bc"}[t],o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i={},s="nextcloud:",o.l=(t,e,n,r)=>{if(i[t])i[t].push(e);else{var a,l;if(void 0!==n)for(var d=document.getElementsByTagName("script"),c=0;c<d.length;c++){var u=d[c];if(u.getAttribute("src")==t||u.getAttribute("data-webpack")==s+n){a=u;break}}a||(l=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,o.nc&&a.setAttribute("nonce",o.nc),a.setAttribute("data-webpack",s+n),a.src=t),i[t]=[e];var h=(e,s)=>{a.onerror=a.onload=null,clearTimeout(p);var n=i[t];if(delete i[t],a.parentNode&&a.parentNode.removeChild(a),n&&n.forEach((t=>t(s))),e)return e(s)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=h.bind(null,a.onerror),a.onload=h.bind(null,a.onload),l&&document.head.appendChild(a)}},o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),o.j=4092,(()=>{var t;o.g.importScripts&&(t=o.g.location+"");var e=o.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var i=e.getElementsByTagName("script");if(i.length)for(var s=i.length-1;s>-1&&!t;)t=i[s--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=t})(),(()=>{o.b=document.baseURI||self.location.href;var t={4092:0};o.f.j=(e,i)=>{var s=o.o(t,e)?t[e]:void 0;if(0!==s)if(s)i.push(s[2]);else{var n=new Promise(((i,n)=>s=t[e]=[i,n]));i.push(s[2]=n);var r=o.p+o.u(e),a=new Error;o.l(r,(i=>{if(o.o(t,e)&&(0!==(s=t[e])&&(t[e]=void 0),s)){var n=i&&("load"===i.type?"missing":i.type),r=i&&i.target&&i.target.src;a.message="Loading chunk "+e+" failed.\n("+n+": "+r+")",a.name="ChunkLoadError",a.type=n,a.request=r,s[1](a)}}),"chunk-"+e,e)}},o.O.j=e=>0===t[e];var e=(e,i)=>{var s,n,r=i[0],a=i[1],l=i[2],d=0;if(r.some((e=>0!==t[e]))){for(s in a)o.o(a,s)&&(o.m[s]=a[s]);if(l)var c=l(o)}for(e&&e(i);d<r.length;d++)n=r[d],o.o(t,n)&&t[n]&&t[n][0](),t[n]=0;return o.O(c)},i=self.webpackChunknextcloud=self.webpackChunknextcloud||[];i.forEach(e.bind(null,0)),i.push=e.bind(null,i.push.bind(i))})(),o.nc=void 0;var a=o.O(void 0,[7874],(()=>o(93995)));a=o.O(a)})();
-//# sourceMappingURL=files-sidebar.js.map?v=2281f419dcc78bed8536
\ No newline at end of file
+(()=>{var e,s,i,n={5119:(t,e,s)=>{"use strict";const{XMLParser:i,XMLValidator:n}=s(16932),r=t=>{if(null==t)return!1;if(0===(t=t.toString().trim()).length)return!1;if(!0!==n.validate(t))return!1;let e;const s=new i;try{e=s.parse(t)}catch(t){return!1}return!!e&&"svg"in e};t.exports=r,t.exports.default=r},17932:(e,s,i)=>{"use strict";var n=i(20144),r=i(31352),o=i(69183),a=i(65358),l=i(5656),d=i(42515),c=i(77958),u=i(41922),h=i(19755),p=i.n(h),f=i(93664),g=i(80351),m=i.n(g),y=i(66805),b=i(97021),v=i(51900);const w=(0,v.Z)(b.Z,y.s,y.x,!1,null,null,null).exports;var A=i(94277),j=i(41251);const x=(0,v.Z)(j.Z,A.s,A.x,!1,null,null,null).exports;var I=i(42899),N=i(99059),C=i(22175);const T={name:"LegacyView",props:{component:{type:Object,required:!0},fileInfo:{type:Object,default:()=>{},required:!0}},watch:{fileInfo(t){this.setFileInfo(t)}},mounted(){this.component.$el.replaceAll(this.$el),this.setFileInfo(this.fileInfo)},methods:{setFileInfo(t){this.component.setFileInfo(new OCA.Files.FileInfoModel(t))}}},_=(0,v.Z)(T,(function(){return(0,this._self._c)("div")}),[],!1,null,null,null).exports,S={name:"SidebarTab",components:{NcAppSidebarTab:i(98445).Z,NcEmptyContent:C.Z},props:{fileInfo:{type:Object,default:()=>{},required:!0},id:{type:String,required:!0},name:{type:String,required:!0},icon:{type:String,required:!1},onMount:{type:Function,required:!0},onUpdate:{type:Function,required:!0},onDestroy:{type:Function,required:!0},onScrollBottomReached:{type:Function,default:()=>{}}},data:()=>({loading:!0}),computed:{activeTab(){return this.$parent.activeTab}},watch:{async fileInfo(t,e){t.id!==e.id&&(this.loading=!0,await this.onUpdate(this.fileInfo),this.loading=!1)}},async mounted(){this.loading=!0,await this.onMount(this.$refs.mount,this.fileInfo,this.$refs.tab),this.loading=!1},async beforeDestroy(){await this.onDestroy()}},E=(0,v.Z)(S,(function(){var t=this,e=t._self._c;return e("NcAppSidebarTab",{ref:"tab",attrs:{id:t.id,name:t.name,icon:t.icon},on:{bottomReached:t.onScrollBottomReached},scopedSlots:t._u([{key:"icon",fn:function(){return[t._t("icon")]},proxy:!0}],null,!0)},[t._v(" "),t.loading?e("NcEmptyContent",{attrs:{icon:"icon-loading"}}):t._e(),t._v(" "),e("div",{ref:"mount"})],1)}),[],!1,null,null,null).exports;var O=i(20435),L=i(35380),D=i(64024),F=i(36906);const P={userVisible:!0,userAssignable:!0,canAssign:!0},M=t=>t.map((t=>{let{props:e}=t;return Object.fromEntries(Object.entries(e).map((t=>{let[e,s]=t;return[(0,F.Z)(e),"displayName"===(0,F.Z)(e)?String(s):s]})))})),k=t=>{const e={...t};return e.name&&!e.displayName||(e.name=e.displayName,delete e.displayName),e};var R=i(79753),z=i(14596);const B=(0,R.generateRemoteUrl)("dav"),Z=(0,z.eI)(B,{headers:{requesttoken:(0,c.IH)()??""}}),$=(0,i(17499).IY)().setApp("systemtags").detectUser().build(),U='<?xml version="1.0"?>\n<d:propfind  xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns">\n\t<d:prop>\n\t\t<oc:id />\n\t\t<oc:display-name />\n\t\t<oc:user-visible />\n\t\t<oc:user-assignable />\n\t\t<oc:can-assign />\n\t</d:prop>\n</d:propfind>',V=async(e,s)=>{const i="/systemtags-relations/files/"+s+"/"+e.id,n=k(e);try{await Z.customRequest(i,{method:"PUT",data:n})}catch(e){throw $.error(t("systemtags","Failed to set tag for file"),{error:e}),new Error(t("systemtags","Failed to set tag for file"))}},q=n.default.extend({name:"SystemTags",components:{NcLoadingIcon:O.Z,NcSelectTags:L.Z},props:{fileId:{type:Number,required:!0}},data:()=>({sortedTags:[],selectedTags:[],loadingTags:!1,loading:!1}),async created(){try{const t=await(async()=>{try{const{data:t}=await Z.getDirectoryContents("/systemtags",{data:U,details:!0,glob:"/systemtags/*"});return M(t)}catch(t){throw $.error((0,r.Iu)("systemtags","Failed to load tags"),{error:t}),new Error((0,r.Iu)("systemtags","Failed to load tags"))}})(),e=await(async()=>{const t=(0,R.generateUrl)("/apps/systemtags/lastused");try{const{data:e}=await f.Z.get(t);return e.map(Number)}catch(t){throw $.error((0,r.Iu)("systemtags","Failed to load last used tags"),{error:t}),new Error((0,r.Iu)("systemtags","Failed to load last used tags"))}})(),s=[],i=[];for(const n of t)e.includes(n.id)?s.push(n):i.push(n);const n=(t,s)=>e.indexOf(t.id)-e.indexOf(s.id);s.sort(n),this.sortedTags=[...s,...i]}catch(t){(0,D.x2)((0,r.Iu)("systemtags","Failed to load tags"))}},watch:{fileId:{immediate:!0,async handler(){this.loadingTags=!0;try{this.selectedTags=await(async e=>{const s="/systemtags-relations/files/"+this.fileId;try{const{data:t}=await Z.getDirectoryContents(s,{data:U,details:!0,glob:"/systemtags-relations/files/*/*"});return M(t)}catch(e){throw $.error(t("systemtags","Failed to load tags for file"),{error:e}),new Error(t("systemtags","Failed to load tags for file"))}})(),this.$emit("has-tags",this.selectedTags.length>0)}catch(t){(0,D.x2)((0,r.Iu)("systemtags","Failed to load selected tags"))}this.loadingTags=!1}}},methods:{t:r.Iu,createOption(t){for(const e of this.sortedTags){const{id:s,displayName:i,...n}=e;if(i===t&&Object.entries(n).every((t=>{let[e,s]=t;return P[e]===s})))return e}return{...P,displayName:t}},handleInput(t){this.selectedTags=t.filter((t=>Boolean(t.id)))},async handleSelect(t){const e=t[t.length-1];if(!e.id)return;const s=e;this.loading=!0;try{await V(s,this.fileId);const t=(t,e)=>t.id===s.id?-1:e.id===s.id?1:0;this.sortedTags.sort(t)}catch(t){(0,D.x2)((0,r.Iu)("systemtags","Failed to select tag"))}this.loading=!1},async handleCreate(t){this.loading=!0;try{const e=await(async(t,e)=>{const s=k(t),i=await(async t=>{const e=k(t);try{const{headers:t}=await Z.customRequest("/systemtags",{method:"POST",data:e}),s=t.get("content-location");if(s)return(t=>{const e=t.indexOf("?");e>0&&(t=t.substring(0,e));const s=t.split("/");let i;do{i=s[s.length-1],s.pop()}while(!i&&s.length>0);return Number(i)})(s);throw $.error((0,r.Iu)("systemtags",'Missing "Content-Location" header')),new Error((0,r.Iu)("systemtags",'Missing "Content-Location" header'))}catch(t){throw $.error((0,r.Iu)("systemtags","Failed to create tag"),{error:t}),new Error((0,r.Iu)("systemtags","Failed to create tag"))}})(s),n={...s,id:i};return await V(n,e),n.id})(t,this.fileId),s={...t,id:e};this.sortedTags.unshift(s),this.selectedTags.push(s)}catch(t){(0,D.x2)((0,r.Iu)("systemtags","Failed to create tag"))}this.loading=!1},async handleDeselect(e){this.loading=!0;try{await(async(e,s)=>{const i="/systemtags-relations/files/"+this.fileId+"/"+e.id;try{await Z.deleteFile(i)}catch(e){throw $.error(t("systemtags","Failed to delete tag for file"),{error:e}),new Error(t("systemtags","Failed to delete tag for file"))}})(e)}catch(t){(0,D.x2)((0,r.Iu)("systemtags","Failed to delete tag"))}this.loading=!1}}});var H=i(93379),G=i.n(H),Y=i(7795),W=i.n(Y),X=i(90569),K=i.n(X),Q=i(3565),J=i.n(Q),tt=i(19216),et=i.n(tt),st=i(44589),it=i.n(st),nt=i(32583),rt={};rt.styleTagTransform=it(),rt.setAttributes=J(),rt.insert=K().bind(null,"head"),rt.domAPI=W(),rt.insertStyleElement=et(),G()(nt.Z,rt),nt.Z&&nt.Z.locals&&nt.Z.locals;const ot=(0,v.Z)(q,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("div",{staticClass:"system-tags"},[t.loadingTags?e("NcLoadingIcon",{attrs:{name:t.t("systemtags","Loading collaborative tags …"),size:32}}):[e("label",{attrs:{for:"system-tags-input"}},[t._v(t._s(t.t("systemtags","Search or create collaborative tags")))]),t._v(" "),e("NcSelectTags",{staticClass:"system-tags__select",attrs:{"input-id":"system-tags-input",placeholder:t.t("systemtags","Collaborative tags …"),options:t.sortedTags,value:t.selectedTags,"create-option":t.createOption,taggable:!0,passthru:!0,"fetch-tags":!1,loading:t.loading},on:{input:t.handleInput,"option:selected":t.handleSelect,"option:created":t.handleCreate,"option:deselected":t.handleDeselect},scopedSlots:t._u([{key:"no-options",fn:function(){return[t._v("\n\t\t\t\t"+t._s(t.t("systemtags","No tags to select, type to create a new tag"))+"\n\t\t\t")]},proxy:!0}])})]],2)}),[],!1,null,"3ff8ae0b",null).exports;var at=i(25108);const lt={name:"Sidebar",components:{LegacyView:_,NcActionButton:N.Z,NcAppSidebar:I.Z,NcEmptyContent:C.Z,SidebarTab:E,SystemTags:ot,Star:w,StarOutline:x},data:()=>({Sidebar:OCA.Files.Sidebar.state,showTags:!1,showTagsDefault:!0,error:null,loading:!0,fileInfo:null,starLoading:!1,isFullScreen:!1,hasLowHeight:!1}),computed:{file(){return this.Sidebar.file},tabs(){return this.Sidebar.tabs},views(){return this.Sidebar.views},davPath(){const t=OC.getCurrentUser().uid;return OC.linkToRemote(`dav/files/${t}${(0,a.Ec)(this.file)}`)},activeTab(){return this.Sidebar.activeTab},subtitle(){return`${this.fileInfo.isFavourited?"★ ":""} ${this.size}, ${this.time}`},time(){return OC.Util.relativeModifiedDate(this.fileInfo.mtime)},fullTime(){return m()(this.fileInfo.mtime).format("LLL")},size(){return OC.Util.humanFileSize(this.fileInfo.size)},background(){return this.getPreviewIfAny(this.fileInfo)},appSidebar(){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&&!this.isFullScreen,"app-sidebar--full":this.isFullScreen},compact:this.hasLowHeight||!this.fileInfo.hasPreview||this.isFullScreen,loading:this.loading,subname:this.subtitle,subtitle:this.fullTime,name:this.fileInfo.name,title:this.fileInfo.name}:this.error?{key:"error",subname:"",name:"",class:{"app-sidebar--full":this.isFullScreen}}:{loading:this.loading,subname:"",name:"",class:{"app-sidebar--full":this.isFullScreen}}},defaultAction(){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(){return this.defaultAction?"figure-click":null},isSystemTagsEnabled:()=>!0===(0,d.getCapabilities)()?.systemtags?.enabled},created(){window.addEventListener("resize",this.handleWindowResize),this.handleWindowResize()},beforeDestroy(){window.removeEventListener("resize",this.handleWindowResize)},methods:{canDisplay(t){return t.enabled(this.fileInfo)},resetData(){this.error=null,this.fileInfo=null,this.$nextTick((()=>{this.$refs.tabs&&this.$refs.tabs.updateTabs()}))},getPreviewIfAny(t){return t.hasPreview&&!this.isFullScreen?OC.generateUrl(`/core/preview?fileId=${t.id}&x=${screen.width}&y=${screen.height}&a=true`):this.getIconUrl(t)},getIconUrl(t){const e=t.mimetype||"application/octet-stream";return"httpd/unix-directory"===e?"shared"===t.mountType||"shared-root"===t.mountType?OC.MimeType.getIconUrl("dir-shared"):"external-root"===t.mountType?OC.MimeType.getIconUrl("dir-external"):void 0!==t.mountType&&""!==t.mountType?OC.MimeType.getIconUrl("dir-"+t.mountType):t.shareTypes&&(t.shareTypes.indexOf(u.D.SHARE_TYPE_LINK)>-1||t.shareTypes.indexOf(u.D.SHARE_TYPE_EMAIL)>-1)?OC.MimeType.getIconUrl("dir-public"):t.shareTypes&&t.shareTypes.length>0?OC.MimeType.getIconUrl("dir-shared"):OC.MimeType.getIconUrl("dir"):OC.MimeType.getIconUrl(e)},setActiveTab(t){OCA.Files.Sidebar.setActiveTab(t),this.tabs.forEach((e=>{try{e.setIsActive(t===e.id)}catch(t){logger.error("Error while setting tab active state",{error:t,id:e.id,tab:e})}}))},async toggleStarred(e){try{this.starLoading=!0,await(0,f.Z)({method:"PROPPATCH",url:this.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${e?"<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${e?"</d:set>":"</d:remove>"}\n\t\t\t\t\t\t</d:propertyupdate>`});const t="dir"===this.fileInfo.type,s=t?l.gt:l.$B;(0,o.j8)(e?"files:favorites:added":"files:favorites:removed",new s({fileid:this.fileInfo.id,source:this.davPath,root:`/files/${(0,c.ts)().uid}`,mime:t?void 0:this.fileInfo.mimetype}))}catch(e){OC.Notification.showTemporary(t("files","Unable to change the favourite state of the file")),at.error("Unable to change favourite state",e)}this.starLoading=!1},onDefaultAction(){this.defaultAction&&this.defaultAction.action(this.fileInfo.name,{fileInfo:this.fileInfo,dir:this.fileInfo.dir,fileList:OCA.Files.App.fileList,$file:p()("body")})},toggleTags(){this.showTagsDefault=this.showTags=!this.showTags},async open(e){if(!e||""===e.trim())throw new Error(`Invalid path '${e}'`);this.Sidebar.file=e,this.error=null,this.loading=!0;try{this.fileInfo=await async function(t){const e=await(0,f.Z)({method:"PROPFIND",url:t,data:(0,l.h7)()}),s=OC.Files.getClient()._client.parseMultiStatus(e.data),i=OC.Files.getClient()._parseFileInfo(s[0]);return i.get=t=>i[t],i.isDirectory=()=>"httpd/unix-directory"===i.mimetype,i}(this.davPath),this.fileInfo.dir=this.file.split("/").slice(0,-1).join("/"),this.views.forEach((t=>{t.setFileInfo(this.fileInfo)})),this.$nextTick((()=>{this.$refs.tabs&&this.$refs.tabs.updateTabs(),this.setActiveTab(this.Sidebar.activeTab||this.tabs[0].id)}))}catch(e){throw this.error=t("files","Error while loading the file data"),at.error("Error while loading the file data",e),new Error(e)}finally{this.loading=!1}},close(){this.Sidebar.file="",this.showTags=!1,this.resetData()},setFullScreenMode(t){this.isFullScreen=t,t?document.querySelector("#content")?.classList.add("with-sidebar--full")||document.querySelector("#content-vue")?.classList.add("with-sidebar--full"):document.querySelector("#content")?.classList.remove("with-sidebar--full")||document.querySelector("#content-vue")?.classList.remove("with-sidebar--full")},setShowTagsDefault(t){this.showTagsDefault=t},handleOpening(){(0,o.j8)("files:sidebar:opening")},handleOpened(){(0,o.j8)("files:sidebar:opened")},handleClosing(){(0,o.j8)("files:sidebar:closing")},handleClosed(){(0,o.j8)("files:sidebar:closed")},handleWindowResize(){this.hasLowHeight=document.documentElement.clientHeight<1024}}};var dt=i(12060),ct={};ct.styleTagTransform=it(),ct.setAttributes=J(),ct.insert=K().bind(null,"head"),ct.domAPI=W(),ct.insertStyleElement=et(),G()(dt.Z,ct),dt.Z&&dt.Z.locals&&dt.Z.locals;const ut=(0,v.Z)(lt,(function(){var t=this,e=t._self._c;return t.file?e("NcAppSidebar",t._b({ref:"sidebar",attrs:{"force-menu":!0,tabindex:"0"},on:t._d({close:t.close,"update:active":t.setActiveTab,opening:t.handleOpening,opened:t.handleOpened,closing:t.handleClosing,closed:t.handleClosed},[t.defaultActionListener,function(e){return e.stopPropagation(),e.preventDefault(),t.onDefaultAction.apply(null,arguments)}]),scopedSlots:t._u([t.fileInfo?{key:"description",fn:function(){return[e("div",{staticClass:"sidebar__description"},[t.isSystemTagsEnabled&&t.showTagsDefault?e("SystemTags",{directives:[{name:"show",rawName:"v-show",value:t.showTags,expression:"showTags"}],attrs:{"file-id":t.fileInfo.id},on:{"has-tags":e=>t.showTags=e}}):t._e(),t._v(" "),t._l(t.views,(function(s){return e("LegacyView",{key:s.cid,attrs:{component:s,"file-info":t.fileInfo}})}))],2)]},proxy:!0}:null,t.fileInfo?{key:"secondary-actions",fn:function(){return[e("NcActionButton",{attrs:{"close-after-click":!0},on:{click:function(e){return t.toggleStarred(!t.fileInfo.isFavourited)}},scopedSlots:t._u([t.fileInfo.isFavourited?{key:"icon",fn:function(){return[e("StarOutline",{attrs:{size:20}})]},proxy:!0}:{key:"icon",fn:function(){return[e("Star",{attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v("\n\t\t\t"+t._s(t.fileInfo.isFavourited?t.t("files","Remove from favorites"):t.t("files","Add to favorites"))+"\n\t\t")]),t._v(" "),t.isSystemTagsEnabled?e("NcActionButton",{attrs:{"close-after-click":!0,icon:"icon-tag"},on:{click:t.toggleTags}},[t._v("\n\t\t\t"+t._s(t.t("files","Tags"))+"\n\t\t")]):t._e()]},proxy:!0}:null],null,!0)},"NcAppSidebar",t.appSidebar,!1),[t._v(" "),t._v(" "),t.error?e("NcEmptyContent",{attrs:{icon:"icon-error"}},[t._v("\n\t\t"+t._s(t.error)+"\n\t")]):t.fileInfo?t._l(t.tabs,(function(s){return[s.enabled(t.fileInfo)?e("SidebarTab",{directives:[{name:"show",rawName:"v-show",value:!t.loading,expression:"!loading"}],key:s.id,attrs:{id:s.id,name:s.name,icon:s.icon,"on-mount":s.mount,"on-update":s.update,"on-destroy":s.destroy,"on-scroll-bottom-reached":s.scrollBottomReached,"file-info":t.fileInfo},scopedSlots:t._u([void 0!==s.iconSvg?{key:"icon",fn:function(){return[e("span",{staticClass:"svg-icon",domProps:{innerHTML:t._s(s.iconSvg)}})]},proxy:!0}:null],null,!0)}):t._e()]})):t._e()],2):t._e()}),[],!1,null,"f1de5f1a",null).exports;var ht=i(25108);var pt=i(48764),ft=i(5119),gt=i.n(ft);function mt(t,e,s){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var s=t[Symbol.toPrimitive];if(void 0!==s){var i=s.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[e]=s,t}n.default.prototype.t=r.Iu,window.OCA.Files||(window.OCA.Files={}),Object.assign(window.OCA.Files,{Sidebar:new class{constructor(){var t,e,s;t=this,s=void 0,(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var s=t[Symbol.toPrimitive];if(void 0!==s){var i=s.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(e="_state"))in t?Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[e]=s,this._state={},this._state.tabs=[],this._state.views=[],this._state.file="",this._state.activeTab="",ht.debug("OCA.Files.Sidebar initialized")}get state(){return this._state}registerTab(t){return this._state.tabs.findIndex((e=>e.id===t.id))>-1?(ht.error(`An tab with the same id ${t.id} already exists`,t),!1):(this._state.tabs.push(t),!0)}registerSecondaryView(t){return this._state.views.findIndex((e=>e.id===t.id))>-1?(ht.error("A similar view already exists",t),!1):(this._state.views.push(t),!0)}get file(){return this._state.file}setActiveTab(t){this._state.activeTab=t}}}),Object.assign(window.OCA.Files.Sidebar,{Tab:class{constructor(){let{id:t,name:e,icon:s,iconSvg:i,mount:n,setIsActive:r,update:o,destroy:a,enabled:l,scrollBottomReached:d}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(mt(this,"_id",void 0),mt(this,"_name",void 0),mt(this,"_icon",void 0),mt(this,"_iconSvgSanitized",void 0),mt(this,"_mount",void 0),mt(this,"_setIsActive",void 0),mt(this,"_update",void 0),mt(this,"_destroy",void 0),mt(this,"_enabled",void 0),mt(this,"_scrollBottomReached",void 0),void 0===l&&(l=()=>!0),void 0===d&&(d=()=>{}),"string"!=typeof t||""===t.trim())throw new Error("The id argument is not a valid string");if("string"!=typeof e||""===e.trim())throw new Error("The name argument is not a valid string");if(("string"!=typeof s||""===s.trim())&&"string"!=typeof i)throw new Error("Missing valid string for icon or iconSvg argument");if("function"!=typeof n)throw new Error("The mount argument should be a function");if(void 0!==r&&"function"!=typeof r)throw new Error("The setIsActive argument should be a function");if("function"!=typeof o)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 d)throw new Error("The scrollBottomReached argument should be a function");this._id=t,this._name=e,this._icon=s,this._mount=n,this._setIsActive=r,this._update=o,this._destroy=a,this._enabled=l,this._scrollBottomReached=d,"string"==typeof i&&(async t=>{if(!t)throw new Error("Not an svg");let e="";if(e=pt.Buffer.isBuffer(t)||t instanceof File?await(t=>new Promise((e=>{if(void 0!==t.size){const s=new FileReader;s.onload=()=>{e(s.result)},s.readAsText(t)}else e(t.toString("utf-8"))})))(t):t,!gt()(e))throw new Error("Not an svg");const s=document.createElement("div");s.innerHTML=e;const i=s.firstElementChild,n=!!Array.from(i.attributes).map((({name:t})=>t)).find((t=>t.startsWith("on")));return 0!==i.getElementsByTagName("script").length||n?null:t})(i).then((t=>{this._iconSvgSanitized=t}))}get id(){return this._id}get name(){return this._name}get icon(){return this._icon}get iconSvg(){return this._iconSvgSanitized}get mount(){return this._mount}get setIsActive(){return this._setIsActive||(()=>{})}get update(){return this._update}get destroy(){return this._destroy}get enabled(){return this._enabled}get scrollBottomReached(){return this._scrollBottomReached}}}),window.addEventListener("DOMContentLoaded",(function(){const t=document.querySelector("body > .content")||document.querySelector("body > #content");if(t&&!document.getElementById("app-sidebar")){const e=document.createElement("div");e.id="app-sidebar",t.appendChild(e)}const e=new(n.default.extend(ut))({name:"SidebarRoot"});e.$mount("#app-sidebar"),window.OCA.Files.Sidebar.open=e.open,window.OCA.Files.Sidebar.close=e.close,window.OCA.Files.Sidebar.setFullScreenMode=e.setFullScreenMode,window.OCA.Files.Sidebar.setShowTagsDefault=e.setShowTagsDefault}))},12060:(t,e,s)=>{"use strict";s.d(e,{Z:()=>a});var i=s(87537),n=s.n(i),r=s(23645),o=s.n(r)()(n());o.push([t.id,'.app-sidebar--has-preview[data-v-f1de5f1a] .app-sidebar-header__figure{background-size:cover}.app-sidebar--has-preview[data-v-f1de5f1a][data-mimetype="text/plain"] .app-sidebar-header__figure,.app-sidebar--has-preview[data-v-f1de5f1a][data-mimetype="text/markdown"] .app-sidebar-header__figure{background-size:contain}.app-sidebar--full[data-v-f1de5f1a]{position:fixed !important;z-index:2025 !important;top:0 !important;height:100% !important}.app-sidebar[data-v-f1de5f1a] .app-sidebar-header__description{margin:0 16px 4px 16px !important}.app-sidebar .svg-icon[data-v-f1de5f1a] svg{width:20px;height:20px;fill:currentColor}.sidebar__description[data-v-f1de5f1a]{display:flex;flex-direction:column;width:100%;gap:8px 0}',"",{version:3,sources:["webpack://./apps/files/src/views/Sidebar.vue"],names:[],mappings:"AAGE,uEACC,qBAAA,CAKA,yMACC,uBAAA,CAKH,oCACC,yBAAA,CACA,uBAAA,CACA,gBAAA,CACA,sBAAA,CAIA,+DACC,iCAAA,CAKD,4CACC,UAAA,CACA,WAAA,CACA,iBAAA,CAKH,uCACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,SAAA",sourcesContent:['\n.app-sidebar {\n\t&--has-preview: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\t:deep {\n\t\t.app-sidebar-header__description {\n\t\t\tmargin: 0 16px 4px 16px !important;\n\t\t}\n\t}\n\n\t.svg-icon {\n\t\t::v-deep svg {\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tfill: currentColor;\n\t\t}\n\t}\n}\n\n.sidebar__description {\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tgap: 8px 0;\n}\n'],sourceRoot:""}]);const a=o},32583:(t,e,s)=>{"use strict";s.d(e,{Z:()=>a});var i=s(87537),n=s.n(i),r=s(23645),o=s.n(r)()(n());o.push([t.id,".system-tags[data-v-3ff8ae0b]{display:flex;flex-direction:column}.system-tags label[for=system-tags-input][data-v-3ff8ae0b]{margin-bottom:2px}.system-tags__select[data-v-3ff8ae0b]{width:100%}.system-tags__select[data-v-3ff8ae0b] .vs__deselect{padding:0}","",{version:3,sources:["webpack://./apps/systemtags/src/components/SystemTags.vue"],names:[],mappings:"AACA,8BACC,YAAA,CACA,qBAAA,CAEA,2DACC,iBAAA,CAGD,sCACC,UAAA,CAEC,oDACC,SAAA",sourcesContent:['\n.system-tags {\n\tdisplay: flex;\n\tflex-direction: column;\n\n\tlabel[for="system-tags-input"] {\n\t\tmargin-bottom: 2px;\n\t}\n\n\t&__select {\n\t\twidth: 100%;\n\t\t:deep {\n\t\t\t.vs__deselect {\n\t\t\t\tpadding: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=o},16932:(t,e,s)=>{"use strict";const i=s(78501),n=s(58844),r=s(41192);t.exports={XMLParser:n,XMLValidator:i,XMLBuilder:r}},46700:(t,e,s)=>{var i={"./af":42786,"./af.js":42786,"./ar":30867,"./ar-dz":14130,"./ar-dz.js":14130,"./ar-kw":96135,"./ar-kw.js":96135,"./ar-ly":56440,"./ar-ly.js":56440,"./ar-ma":47702,"./ar-ma.js":47702,"./ar-sa":16040,"./ar-sa.js":16040,"./ar-tn":37100,"./ar-tn.js":37100,"./ar.js":30867,"./az":31083,"./az.js":31083,"./be":9808,"./be.js":9808,"./bg":68338,"./bg.js":68338,"./bm":67438,"./bm.js":67438,"./bn":8905,"./bn-bd":76225,"./bn-bd.js":76225,"./bn.js":8905,"./bo":11560,"./bo.js":11560,"./br":1278,"./br.js":1278,"./bs":80622,"./bs.js":80622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":50877,"./cv.js":50877,"./cy":47373,"./cy.js":47373,"./da":24780,"./da.js":24780,"./de":59740,"./de-at":60217,"./de-at.js":60217,"./de-ch":60894,"./de-ch.js":60894,"./de.js":59740,"./dv":5300,"./dv.js":5300,"./el":50837,"./el.js":50837,"./en-au":78348,"./en-au.js":78348,"./en-ca":77925,"./en-ca.js":77925,"./en-gb":22243,"./en-gb.js":22243,"./en-ie":46436,"./en-ie.js":46436,"./en-il":47207,"./en-il.js":47207,"./en-in":44175,"./en-in.js":44175,"./en-nz":76319,"./en-nz.js":76319,"./en-sg":31662,"./en-sg.js":31662,"./eo":92915,"./eo.js":92915,"./es":55655,"./es-do":55251,"./es-do.js":55251,"./es-mx":96112,"./es-mx.js":96112,"./es-us":71146,"./es-us.js":71146,"./es.js":55655,"./et":5603,"./et.js":5603,"./eu":77763,"./eu.js":77763,"./fa":76959,"./fa.js":76959,"./fi":11897,"./fi.js":11897,"./fil":42549,"./fil.js":42549,"./fo":94694,"./fo.js":94694,"./fr":94470,"./fr-ca":63049,"./fr-ca.js":63049,"./fr-ch":52330,"./fr-ch.js":52330,"./fr.js":94470,"./fy":5044,"./fy.js":5044,"./ga":29295,"./ga.js":29295,"./gd":2101,"./gd.js":2101,"./gl":38794,"./gl.js":38794,"./gom-deva":27884,"./gom-deva.js":27884,"./gom-latn":23168,"./gom-latn.js":23168,"./gu":95349,"./gu.js":95349,"./he":24206,"./he.js":24206,"./hi":30094,"./hi.js":30094,"./hr":30316,"./hr.js":30316,"./hu":22138,"./hu.js":22138,"./hy-am":11423,"./hy-am.js":11423,"./id":29218,"./id.js":29218,"./is":90135,"./is.js":90135,"./it":90626,"./it-ch":10150,"./it-ch.js":10150,"./it.js":90626,"./ja":39183,"./ja.js":39183,"./jv":24286,"./jv.js":24286,"./ka":12105,"./ka.js":12105,"./kk":47772,"./kk.js":47772,"./km":18758,"./km.js":18758,"./kn":79282,"./kn.js":79282,"./ko":33730,"./ko.js":33730,"./ku":1408,"./ku.js":1408,"./ky":33291,"./ky.js":33291,"./lb":36841,"./lb.js":36841,"./lo":55466,"./lo.js":55466,"./lt":57010,"./lt.js":57010,"./lv":37595,"./lv.js":37595,"./me":39861,"./me.js":39861,"./mi":35493,"./mi.js":35493,"./mk":95966,"./mk.js":95966,"./ml":87341,"./ml.js":87341,"./mn":5115,"./mn.js":5115,"./mr":10370,"./mr.js":10370,"./ms":9847,"./ms-my":41237,"./ms-my.js":41237,"./ms.js":9847,"./mt":72126,"./mt.js":72126,"./my":56165,"./my.js":56165,"./nb":64924,"./nb.js":64924,"./ne":16744,"./ne.js":16744,"./nl":93901,"./nl-be":59814,"./nl-be.js":59814,"./nl.js":93901,"./nn":83877,"./nn.js":83877,"./oc-lnc":92135,"./oc-lnc.js":92135,"./pa-in":15858,"./pa-in.js":15858,"./pl":64495,"./pl.js":64495,"./pt":89520,"./pt-br":57971,"./pt-br.js":57971,"./pt.js":89520,"./ro":96459,"./ro.js":96459,"./ru":21793,"./ru.js":21793,"./sd":40950,"./sd.js":40950,"./se":10490,"./se.js":10490,"./si":90124,"./si.js":90124,"./sk":64249,"./sk.js":64249,"./sl":14985,"./sl.js":14985,"./sq":51104,"./sq.js":51104,"./sr":49131,"./sr-cyrl":79915,"./sr-cyrl.js":79915,"./sr.js":49131,"./ss":85893,"./ss.js":85893,"./sv":98760,"./sv.js":98760,"./sw":91172,"./sw.js":91172,"./ta":27333,"./ta.js":27333,"./te":23110,"./te.js":23110,"./tet":52095,"./tet.js":52095,"./tg":27321,"./tg.js":27321,"./th":9041,"./th.js":9041,"./tk":19005,"./tk.js":19005,"./tl-ph":75768,"./tl-ph.js":75768,"./tlh":89444,"./tlh.js":89444,"./tr":72397,"./tr.js":72397,"./tzl":28254,"./tzl.js":28254,"./tzm":51106,"./tzm-latn":30699,"./tzm-latn.js":30699,"./tzm.js":51106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":67691,"./uk.js":67691,"./ur":13795,"./ur.js":13795,"./uz":6791,"./uz-latn":60588,"./uz-latn.js":60588,"./uz.js":6791,"./vi":65666,"./vi.js":65666,"./x-pseudo":14378,"./x-pseudo.js":14378,"./yo":75805,"./yo.js":75805,"./zh-cn":83839,"./zh-cn.js":83839,"./zh-hk":55726,"./zh-hk.js":55726,"./zh-mo":99807,"./zh-mo.js":99807,"./zh-tw":74152,"./zh-tw.js":74152};function n(t){var e=r(t);return s(e)}function r(t){if(!s.o(i,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return i[t]}n.keys=function(){return Object.keys(i)},n.resolve=r,t.exports=n,n.id=46700},42761:t=>{"use strict";t.exports="data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTS00LTRoMjR2MjRILTRWLTR6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTggMEMzLjYgMCAwIDMuNiAwIDhzMy42IDggOCA4IDgtMy42IDgtOC0zLjYtOC04LTh6IiBmaWxsPSIjZWQ0ODRjIi8+PHBhdGggZD0iTTUgNi41aDZjLjggMCAxLjUuNyAxLjUgMS41cy0uNyAxLjUtMS41IDEuNUg1Yy0uOCAwLTEuNS0uNy0xLjUtMS41UzQuMiA2LjUgNSA2LjV6IiBmaWxsPSIjZmRmZmZmIi8+PC9zdmc+Cg=="},87210:t=>{"use strict";t.exports="data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTQuOCAxMS4yaDYuNFY0LjhINC44djYuNHpNOCAwQzMuNiAwIDAgMy42IDAgOHMzLjYgOCA4IDggOC0zLjYgOC04LTMuNi04LTgtOHoiIGZpbGw9IiM0OWIzODIiLz48L3N2Zz4K"},94659:t=>{"use strict";t.exports="data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTS00LTRoMjR2MjRILTR6Ii8+PHBhdGggZD0iTTYuOS4xQzMgLjYtLjEgNC0uMSA4YzAgNC40IDMuNiA4IDggOCA0IDAgNy40LTMgOC02LjktMS4yIDEuMy0yLjkgMi4xLTQuNyAyLjEtMy41IDAtNi40LTIuOS02LjQtNi40IDAtMS45LjgtMy42IDIuMS00Ljd6IiBmaWxsPSIjZjRhMzMxIi8+PC9zdmc+Cg=="},5656:(t,e,s)=>{"use strict";s.d(e,{$B:()=>C,RL:()=>L,Tv:()=>A,_o:()=>_,gt:()=>T,h7:()=>v,pC:()=>O,rp:()=>E,sS:()=>p,tB:()=>w});var i,n=s(77958),r=s(17499),o=s(31352),a=s(62520),l=s(65358),d=s(79753),c=s(14596);null===(i=(0,n.ts)())?(0,r.IY)().setApp("files").build():(0,r.IY)().setApp("files").setUid(i.uid).build();const u=["B","KB","MB","GB","TB","PB"],h=["B","KiB","MiB","GiB","TiB","PiB"];function p(t,e=!1,s=!1,i=!1){s=s&&!i,"string"==typeof t&&(t=Number(t));let n=t>0?Math.floor(Math.log(t)/Math.log(i?1e3:1024)):0;n=Math.min((s?h.length:u.length)-1,n);const r=s?h[n]:u[n];let a=(t/Math.pow(i?1e3:1024,n)).toFixed(1);return!0===e&&0===n?("0.0"!==a?"< 1 ":"0 ")+(s?h[1]:u[1]):(a=n<2?parseFloat(a).toFixed(0):parseFloat(a).toLocaleString((0,o.aj)()),a+" "+r)}var f=(t=>(t[t.NONE=0]="NONE",t[t.CREATE=4]="CREATE",t[t.READ=1]="READ",t[t.UPDATE=2]="UPDATE",t[t.DELETE=8]="DELETE",t[t.SHARE=16]="SHARE",t[t.ALL=31]="ALL",t))(f||{});const g=["d:getcontentlength","d:getcontenttype","d:getetag","d:getlastmodified","d:quota-available-bytes","d:resourcetype","nc:has-preview","nc:is-encrypted","nc:mount-type","nc:share-attributes","oc:comments-unread","oc:favorite","oc:fileid","oc:owner-display-name","oc:owner-id","oc:permissions","oc:share-types","oc:size","ocs:share-permissions"],m={d:"DAV:",nc:"http://nextcloud.org/ns",oc:"http://owncloud.org/ns",ocs:"http://open-collaboration-services.org/ns"},y=function(){return typeof window._nc_dav_properties>"u"&&(window._nc_dav_properties=[...g]),window._nc_dav_properties.map((t=>`<${t} />`)).join(" ")},b=function(){return typeof window._nc_dav_namespaces>"u"&&(window._nc_dav_namespaces={...m}),Object.keys(window._nc_dav_namespaces).map((t=>`xmlns:${t}="${window._nc_dav_namespaces?.[t]}"`)).join(" ")},v=function(){return`<?xml version="1.0"?>\n\t\t<d:propfind ${b()}>\n\t\t\t<d:prop>\n\t\t\t\t${y()}\n\t\t\t</d:prop>\n\t\t</d:propfind>`},w=function(t){return`<?xml version="1.0" encoding="UTF-8"?>\n<d:searchrequest ${b()}\n\txmlns:ns="https://github.com/icewind1991/SearchDAV/ns">\n\t<d:basicsearch>\n\t\t<d:select>\n\t\t\t<d:prop>\n\t\t\t\t${y()}\n\t\t\t</d:prop>\n\t\t</d:select>\n\t\t<d:from>\n\t\t\t<d:scope>\n\t\t\t\t<d:href>/files/${(0,n.ts)()?.uid}/</d:href>\n\t\t\t\t<d:depth>infinity</d:depth>\n\t\t\t</d:scope>\n\t\t</d:from>\n\t\t<d:where>\n\t\t\t<d:and>\n\t\t\t\t<d:or>\n\t\t\t\t\t<d:not>\n\t\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<d:getcontenttype/>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t\t<d:literal>httpd/unix-directory</d:literal>\n\t\t\t\t\t\t</d:eq>\n\t\t\t\t\t</d:not>\n\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<oc:size/>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t<d:literal>0</d:literal>\n\t\t\t\t\t</d:eq>\n\t\t\t\t</d:or>\n\t\t\t\t<d:gt>\n\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t\t</d:prop>\n\t\t\t\t\t<d:literal>${t}</d:literal>\n\t\t\t\t</d:gt>\n\t\t\t</d:and>\n\t\t</d:where>\n\t\t<d:orderby>\n\t\t\t<d:order>\n\t\t\t\t<d:prop>\n\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t</d:prop>\n\t\t\t\t<d:descending/>\n\t\t\t</d:order>\n\t\t</d:orderby>\n\t\t<d:limit>\n\t\t\t<d:nresults>100</d:nresults>\n\t\t\t<ns:firstresult>0</ns:firstresult>\n\t\t</d:limit>\n\t</d:basicsearch>\n</d:searchrequest>`};var A=(t=>(t.Folder="folder",t.File="file",t))(A||{});const j=function(t,e){return null!==t.match(e)},x=(t,e)=>{if(t.id&&"number"!=typeof t.id)throw new Error("Invalid id type of value");if(!t.source)throw new Error("Missing mandatory source");try{new URL(t.source)}catch{throw new Error("Invalid source format, source must be a valid URL")}if(!t.source.startsWith("http"))throw new Error("Invalid source format, only http(s) is supported");if(t.mtime&&!(t.mtime instanceof Date))throw new Error("Invalid mtime type");if(t.crtime&&!(t.crtime instanceof Date))throw new Error("Invalid crtime type");if(!t.mime||"string"!=typeof t.mime||!t.mime.match(/^[-\w.]+\/[-+\w.]+$/gi))throw new Error("Missing or invalid mandatory mime");if("size"in t&&"number"!=typeof t.size&&void 0!==t.size)throw new Error("Invalid size type");if("permissions"in t&&void 0!==t.permissions&&!("number"==typeof t.permissions&&t.permissions>=f.NONE&&t.permissions<=f.ALL))throw new Error("Invalid permissions");if(t.owner&&null!==t.owner&&"string"!=typeof t.owner)throw new Error("Invalid owner type");if(t.attributes&&"object"!=typeof t.attributes)throw new Error("Invalid attributes type");if(t.root&&"string"!=typeof t.root)throw new Error("Invalid root type");if(t.root&&!t.root.startsWith("/"))throw new Error("Root must start with a leading slash");if(t.root&&!t.source.includes(t.root))throw new Error("Root must be part of the source");if(t.root&&j(t.source,e)){const s=t.source.match(e)[0];if(!t.source.includes((0,a.join)(s,t.root)))throw new Error("The root must be relative to the service. e.g /files/emma")}if(t.status&&!Object.values(I).includes(t.status))throw new Error("Status must be a valid NodeStatus")};var I=(t=>(t.NEW="new",t.FAILED="failed",t.LOADING="loading",t.LOCKED="locked",t))(I||{});class N{_data;_attributes;_knownDavService=/(remote|public)\.php\/(web)?dav/i;constructor(t,e){x(t,e||this._knownDavService),this._data=t;const s={set:(t,e,s)=>(this.updateMtime(),Reflect.set(t,e,s)),deleteProperty:(t,e)=>(this.updateMtime(),Reflect.deleteProperty(t,e))};this._attributes=new Proxy(t.attributes||{},s),delete this._data.attributes,e&&(this._knownDavService=e)}get source(){return this._data.source.replace(/\/$/i,"")}get encodedSource(){const{origin:t}=new URL(this.source);return t+(0,l.Ec)(this.source.slice(t.length))}get basename(){return(0,a.basename)(this.source)}get extension(){return(0,a.extname)(this.source)}get dirname(){if(this.root){const t=this.source.indexOf(this.root);return(0,a.dirname)(this.source.slice(t+this.root.length)||"/")}const t=new URL(this.source);return(0,a.dirname)(t.pathname)}get mime(){return this._data.mime}get mtime(){return this._data.mtime}get crtime(){return this._data.crtime}get size(){return this._data.size}get attributes(){return this._attributes}get permissions(){return null!==this.owner||this.isDavRessource?void 0!==this._data.permissions?this._data.permissions:f.NONE:f.READ}get owner(){return this.isDavRessource?this._data.owner:null}get isDavRessource(){return j(this.source,this._knownDavService)}get root(){return this._data.root?this._data.root.replace(/^(.+)\/$/,"$1"):this.isDavRessource&&(0,a.dirname)(this.source).split(this._knownDavService).pop()||null}get path(){if(this.root){const t=this.source.indexOf(this.root);return this.source.slice(t+this.root.length)||"/"}return(this.dirname+"/"+this.basename).replace(/\/\//g,"/")}get fileid(){return this._data?.id||this.attributes?.fileid}get status(){return this._data?.status}set status(t){this._data.status=t}move(t){x({...this._data,source:t},this._knownDavService),this._data.source=t,this.updateMtime()}rename(t){if(t.includes("/"))throw new Error("Invalid basename");this.move((0,a.dirname)(this.source)+"/"+t)}updateMtime(){this._data.mtime&&(this._data.mtime=new Date)}}class C extends N{get type(){return A.File}}class T extends N{constructor(t){super({...t,mime:"httpd/unix-directory"})}get type(){return A.Folder}get extension(){return null}get mime(){return"httpd/unix-directory"}}const _=`/files/${(0,n.ts)()?.uid}`,S=(0,d.generateRemoteUrl)("dav"),E=function(t=S){const e=(0,c.eI)(t);function s(t){e.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:t??""})}return(0,n._S)(s),s((0,n.IH)()),(0,c.lD)().patch("fetch",((t,e)=>{const s=e.headers;return s?.method&&(e.method=s.method,delete s.method),fetch(t,e)})),e},O=async(t,e="/",s=_)=>(await t.getDirectoryContents(`${s}${e}`,{details:!0,data:`<?xml version="1.0"?>\n\t\t<oc:filter-files ${b()}>\n\t\t\t<d:prop>\n\t\t\t\t${y()}\n\t\t\t</d:prop>\n\t\t\t<oc:filter-rules>\n\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t</oc:filter-rules>\n\t\t</oc:filter-files>`,headers:{method:"REPORT"},includeSelf:!0})).data.filter((t=>t.filename!==e)).map((t=>L(t,s))),L=function(t,e=_,s=S){const i=t.props,r=function(t=""){let e=f.NONE;return t&&((t.includes("C")||t.includes("K"))&&(e|=f.CREATE),t.includes("G")&&(e|=f.READ),(t.includes("W")||t.includes("N")||t.includes("V"))&&(e|=f.UPDATE),t.includes("D")&&(e|=f.DELETE),t.includes("R")&&(e|=f.SHARE)),e}(i?.permissions),o=(0,n.ts)()?.uid,a={id:i?.fileid||0,source:`${s}${t.filename}`,mtime:new Date(Date.parse(t.lastmod)),mime:t.mime,size:i?.size||Number.parseInt(i.getcontentlength||"0"),permissions:r,owner:o,root:e,attributes:{...t,...i,hasPreview:i?.["has-preview"]}};return delete a.attributes?.props,"file"===t.type?new C(a):new T(a)};var D={};!function(t){const e=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",s="["+e+"]["+e+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",i=new RegExp("^"+s+"$");t.isExist=function(t){return typeof t<"u"},t.isEmptyObject=function(t){return 0===Object.keys(t).length},t.merge=function(t,e,s){if(e){const i=Object.keys(e),n=i.length;for(let r=0;r<n;r++)t[i[r]]="strict"===s?[e[i[r]]]:e[i[r]]}},t.getValue=function(e){return t.isExist(e)?e:""},t.isName=function(t){const e=i.exec(t);return!(null===e||typeof e>"u")},t.getAllMatches=function(t,e){const s=[];let i=e.exec(t);for(;i;){const n=[];n.startIndex=e.lastIndex-i[0].length;const r=i.length;for(let t=0;t<r;t++)n.push(i[t]);s.push(n),i=e.exec(t)}return s},t.nameRegexp=s}(D);new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");var F={};const P={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,s){return t}};F.buildOptions=function(t){return Object.assign({},P,t)},F.defaultOptions=P,!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);"<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)".replace(/NAME/g,D.nameRegexp),new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");var M={};function k(t,e,s){let i;const n={};for(let r=0;r<t.length;r++){const o=t[r],a=R(o);let l="";if(l=void 0===s?a:s+"."+a,a===e.textNodeName)void 0===i?i=o[a]:i+=""+o[a];else{if(void 0===a)continue;if(o[a]){let t=k(o[a],e,l);const s=B(t,e);o[":@"]?z(t,o[":@"],l,e):1!==Object.keys(t).length||void 0===t[e.textNodeName]||e.alwaysCreateTextNode?0===Object.keys(t).length&&(e.alwaysCreateTextNode?t[e.textNodeName]="":t=""):t=t[e.textNodeName],void 0!==n[a]&&n.hasOwnProperty(a)?(Array.isArray(n[a])||(n[a]=[n[a]]),n[a].push(t)):e.isArray(a,l,s)?n[a]=[t]:n[a]=t}}}return"string"==typeof i?i.length>0&&(n[e.textNodeName]=i):void 0!==i&&(n[e.textNodeName]=i),n}function R(t){const e=Object.keys(t);for(let t=0;t<e.length;t++){const s=e[t];if(":@"!==s)return s}}function z(t,e,s,i){if(e){const n=Object.keys(e),r=n.length;for(let o=0;o<r;o++){const r=n[o];i.isArray(r,s+"."+r,!0,!0)?t[r]=[e[r]]:t[r]=e[r]}}}function B(t,e){const{textNodeName:s}=e,i=Object.keys(t).length;return!(0!==i&&(1!==i||!t[s]&&"boolean"!=typeof t[s]&&0!==t[s]))}M.prettify=function(t,e){return k(t,e)};const{buildOptions:Z}=F,{prettify:$}=M;function U(t,e,s,i){let n="",r=!1;for(let o=0;o<t.length;o++){const a=t[o],l=V(a);if(void 0===l)continue;let d="";if(d=0===s.length?l:`${s}.${l}`,l===e.textNodeName){let t=a[l];H(d,e)||(t=e.tagValueProcessor(l,t),t=G(t,e)),r&&(n+=i),n+=t,r=!1;continue}if(l===e.cdataPropName){r&&(n+=i),n+=`<![CDATA[${a[l][0][e.textNodeName]}]]>`,r=!1;continue}if(l===e.commentPropName){n+=i+`\x3c!--${a[l][0][e.textNodeName]}--\x3e`,r=!0;continue}if("?"===l[0]){const t=q(a[":@"],e),s="?xml"===l?"":i;let o=a[l][0][e.textNodeName];o=0!==o.length?" "+o:"",n+=s+`<${l}${o}${t}?>`,r=!0;continue}let c=i;""!==c&&(c+=e.indentBy);const u=i+`<${l}${q(a[":@"],e)}`,h=U(a[l],e,d,c);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?n+=u+">":n+=u+"/>":h&&0!==h.length||!e.suppressEmptyNode?h&&h.endsWith(">")?n+=u+`>${h}${i}</${l}>`:(n+=u+">",h&&""!==i&&(h.includes("/>")||h.includes("</"))?n+=i+e.indentBy+h+i:n+=h,n+=`</${l}>`):n+=u+"/>",r=!0}return n}function V(t){const e=Object.keys(t);for(let s=0;s<e.length;s++){const i=e[s];if(t.hasOwnProperty(i)&&":@"!==i)return i}}function q(t,e){let s="";if(t&&!e.ignoreAttributes)for(let i in t){if(!t.hasOwnProperty(i))continue;let n=e.attributeValueProcessor(i,t[i]);n=G(n,e),!0===n&&e.suppressBooleanAttributes?s+=` ${i.substr(e.attributeNamePrefix.length)}`:s+=` ${i.substr(e.attributeNamePrefix.length)}="${n}"`}return s}function H(t,e){let s=(t=t.substr(0,t.length-e.textNodeName.length-1)).substr(t.lastIndexOf(".")+1);for(let i in e.stopNodes)if(e.stopNodes[i]===t||e.stopNodes[i]==="*."+s)return!0;return!1}function G(t,e){if(t&&t.length>0&&e.processEntities)for(let s=0;s<e.entities.length;s++){const i=e.entities[s];t=t.replace(i.regex,i.val)}return t}const Y=function(t,e){let s="";return e.format&&e.indentBy.length>0&&(s="\n"),U(t,e,"",s)},W={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:"  ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&amp;"},{regex:new RegExp(">","g"),val:"&gt;"},{regex:new RegExp("<","g"),val:"&lt;"},{regex:new RegExp("'","g"),val:"&apos;"},{regex:new RegExp('"',"g"),val:"&quot;"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function X(t){this.options=Object.assign({},W,t),this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=J),this.processTextOrObjNode=K,this.options.format?(this.indentate=Q,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function K(t,e,s){const i=this.j2x(t,s+1);return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,i.attrStr,s):this.buildObjectNode(i.val,e,i.attrStr,s)}function Q(t){return this.options.indentBy.repeat(t)}function J(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}X.prototype.build=function(t){return this.options.preserveOrder?Y(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0).val)},X.prototype.j2x=function(t,e){let s="",i="";for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n))if(typeof t[n]>"u")this.isAttribute(n)&&(i+="");else if(null===t[n])this.isAttribute(n)?i+="":"?"===n[0]?i+=this.indentate(e)+"<"+n+"?"+this.tagEndChar:i+=this.indentate(e)+"<"+n+"/"+this.tagEndChar;else if(t[n]instanceof Date)i+=this.buildTextValNode(t[n],n,"",e);else if("object"!=typeof t[n]){const r=this.isAttribute(n);if(r)s+=this.buildAttrPairStr(r,""+t[n]);else if(n===this.options.textNodeName){let e=this.options.tagValueProcessor(n,""+t[n]);i+=this.replaceEntitiesValue(e)}else i+=this.buildTextValNode(t[n],n,"",e)}else if(Array.isArray(t[n])){const s=t[n].length;let r="";for(let o=0;o<s;o++){const s=t[n][o];typeof s>"u"||(null===s?"?"===n[0]?i+=this.indentate(e)+"<"+n+"?"+this.tagEndChar:i+=this.indentate(e)+"<"+n+"/"+this.tagEndChar:"object"==typeof s?this.options.oneListGroup?r+=this.j2x(s,e+1).val:r+=this.processTextOrObjNode(s,n,e):r+=this.buildTextValNode(s,n,"",e))}this.options.oneListGroup&&(r=this.buildObjectNode(r,n,"",e)),i+=r}else if(this.options.attributesGroupName&&n===this.options.attributesGroupName){const e=Object.keys(t[n]),i=e.length;for(let r=0;r<i;r++)s+=this.buildAttrPairStr(e[r],""+t[n][e[r]])}else i+=this.processTextOrObjNode(t[n],n,e);return{attrStr:s,val:i}},X.prototype.buildAttrPairStr=function(t,e){return e=this.options.attributeValueProcessor(t,""+e),e=this.replaceEntitiesValue(e),this.options.suppressBooleanAttributes&&"true"===e?" "+t:" "+t+'="'+e+'"'},X.prototype.buildObjectNode=function(t,e,s,i){if(""===t)return"?"===e[0]?this.indentate(i)+"<"+e+s+"?"+this.tagEndChar:this.indentate(i)+"<"+e+s+this.closeTag(e)+this.tagEndChar;{let n="</"+e+this.tagEndChar,r="";return"?"===e[0]&&(r="?",n=""),!s&&""!==s||-1!==t.indexOf("<")?!1!==this.options.commentPropName&&e===this.options.commentPropName&&0===r.length?this.indentate(i)+`\x3c!--${t}--\x3e`+this.newLine:this.indentate(i)+"<"+e+s+r+this.tagEndChar+t+this.indentate(i)+n:this.indentate(i)+"<"+e+s+r+">"+t+n}},X.prototype.closeTag=function(t){let e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":`></${t}`,e},X.prototype.buildTextValNode=function(t,e,s,i){if(!1!==this.options.cdataPropName&&e===this.options.cdataPropName)return this.indentate(i)+`<![CDATA[${t}]]>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+`\x3c!--${t}--\x3e`+this.newLine;if("?"===e[0])return this.indentate(i)+"<"+e+s+"?"+this.tagEndChar;{let n=this.options.tagValueProcessor(e,t);return n=this.replaceEntitiesValue(n),""===n?this.indentate(i)+"<"+e+s+this.closeTag(e)+this.tagEndChar:this.indentate(i)+"<"+e+s+">"+n+"</"+e+this.tagEndChar}},X.prototype.replaceEntitiesValue=function(t){if(t&&t.length>0&&this.options.processEntities)for(let e=0;e<this.options.entities.length;e++){const s=this.options.entities[e];t=t.replace(s.regex,s.val)}return t}}},r={};function o(t){var e=r[t];if(void 0!==e)return e.exports;var s=r[t]={id:t,loaded:!1,exports:{}};return n[t].call(s.exports,s,s.exports,o),s.loaded=!0,s.exports}o.m=n,e=[],o.O=(t,s,i,n)=>{if(!s){var r=1/0;for(c=0;c<e.length;c++){s=e[c][0],i=e[c][1],n=e[c][2];for(var a=!0,l=0;l<s.length;l++)(!1&n||r>=n)&&Object.keys(o.O).every((t=>o.O[t](s[l])))?s.splice(l--,1):(a=!1,n<r&&(r=n));if(a){e.splice(c--,1);var d=i();void 0!==d&&(t=d)}}return t}n=n||0;for(var c=e.length;c>0&&e[c-1][2]>n;c--)e[c]=e[c-1];e[c]=[s,i,n]},o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var s in e)o.o(e,s)&&!o.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},o.f={},o.e=t=>Promise.all(Object.keys(o.f).reduce(((e,s)=>(o.f[s](t,e),e)),[])),o.u=t=>t+"-"+t+".js?v="+{2048:"78a82614529a3cefcde7",4180:"fe82f3a2dac70d6b82bc"}[t],o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),s={},i="nextcloud:",o.l=(t,e,n,r)=>{if(s[t])s[t].push(e);else{var a,l;if(void 0!==n)for(var d=document.getElementsByTagName("script"),c=0;c<d.length;c++){var u=d[c];if(u.getAttribute("src")==t||u.getAttribute("data-webpack")==i+n){a=u;break}}a||(l=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,o.nc&&a.setAttribute("nonce",o.nc),a.setAttribute("data-webpack",i+n),a.src=t),s[t]=[e];var h=(e,i)=>{a.onerror=a.onload=null,clearTimeout(p);var n=s[t];if(delete s[t],a.parentNode&&a.parentNode.removeChild(a),n&&n.forEach((t=>t(i))),e)return e(i)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=h.bind(null,a.onerror),a.onload=h.bind(null,a.onload),l&&document.head.appendChild(a)}},o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),o.j=4092,(()=>{var t;o.g.importScripts&&(t=o.g.location+"");var e=o.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var s=e.getElementsByTagName("script");if(s.length)for(var i=s.length-1;i>-1&&!t;)t=s[i--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=t})(),(()=>{o.b=document.baseURI||self.location.href;var t={4092:0};o.f.j=(e,s)=>{var i=o.o(t,e)?t[e]:void 0;if(0!==i)if(i)s.push(i[2]);else{var n=new Promise(((s,n)=>i=t[e]=[s,n]));s.push(i[2]=n);var r=o.p+o.u(e),a=new Error;o.l(r,(s=>{if(o.o(t,e)&&(0!==(i=t[e])&&(t[e]=void 0),i)){var n=s&&("load"===s.type?"missing":s.type),r=s&&s.target&&s.target.src;a.message="Loading chunk "+e+" failed.\n("+n+": "+r+")",a.name="ChunkLoadError",a.type=n,a.request=r,i[1](a)}}),"chunk-"+e,e)}},o.O.j=e=>0===t[e];var e=(e,s)=>{var i,n,r=s[0],a=s[1],l=s[2],d=0;if(r.some((e=>0!==t[e]))){for(i in a)o.o(a,i)&&(o.m[i]=a[i]);if(l)var c=l(o)}for(e&&e(s);d<r.length;d++)n=r[d],o.o(t,n)&&t[n]&&t[n][0](),t[n]=0;return o.O(c)},s=self.webpackChunknextcloud=self.webpackChunknextcloud||[];s.forEach(e.bind(null,0)),s.push=e.bind(null,s.push.bind(s))})(),o.nc=void 0;var a=o.O(void 0,[7874],(()=>o(17932)));a=o.O(a)})();
+//# sourceMappingURL=files-sidebar.js.map?v=fd63c521d0a352f1c0c6
\ No newline at end of file
index 67227012c9e89d63518cca6da442fa1e631e3f2a..8bb969efa4e43a8440c5d84daa3dd4b32e89c253 100644 (file)
@@ -1 +1 @@
-{"version":3,"file":"files-sidebar.js?v=2281f419dcc78bed8536","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/@skjnldsv/sanitize-svg/node_modules/is-svg/index.js","webpack://nextcloud/./node_modules/vue-material-design-icons/Star.vue?35ed","webpack://nextcloud/./node_modules/vue-material-design-icons/StarOutline.vue?9e0e","webpack:///nextcloud/apps/files/src/components/LegacyView.vue","webpack:///nextcloud/apps/files/src/components/LegacyView.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files/src/components/LegacyView.vue?a2e2","webpack://nextcloud/./apps/files/src/components/LegacyView.vue?fb5f","webpack:///nextcloud/apps/files/src/components/SidebarTab.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/components/SidebarTab.vue","webpack://nextcloud/./apps/files/src/components/SidebarTab.vue?7aea","webpack://nextcloud/./apps/files/src/components/SidebarTab.vue?eddf","webpack:///nextcloud/apps/systemtags/src/components/SystemTags.vue","webpack:///nextcloud/apps/systemtags/src/utils.ts","webpack:///nextcloud/apps/systemtags/src/services/davClient.ts","webpack:///nextcloud/apps/systemtags/src/logger.ts","webpack:///nextcloud/apps/systemtags/src/services/api.ts","webpack:///nextcloud/apps/systemtags/src/services/files.ts","webpack:///nextcloud/apps/systemtags/src/components/SystemTags.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/systemtags/src/components/SystemTags.vue?e0af","webpack://nextcloud/./apps/systemtags/src/components/SystemTags.vue?d721","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/services/FileInfo.js","webpack://nextcloud/./apps/files/src/views/Sidebar.vue?f10d","webpack://nextcloud/./apps/files/src/views/Sidebar.vue?0b21","webpack://nextcloud/./apps/files/src/views/Sidebar.vue?589a","webpack:///nextcloud/apps/files/src/sidebar.js","webpack:///nextcloud/apps/files/src/services/Sidebar.js","webpack:///nextcloud/apps/files/src/models/Tab.js","webpack:///nextcloud/node_modules/@skjnldsv/sanitize-svg/dist/index.esm.js","webpack:///nextcloud/apps/files/src/views/Sidebar.vue?vue&type=style&index=0&id=4e367638&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/systemtags/src/components/SystemTags.vue?vue&type=style&index=0&id=3ff8ae0b&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/fast-xml-parser/src/fxp.js","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","'use strict';\nconst {XMLParser, XMLValidator} = require('fast-xml-parser');\n\nconst isSvg = input => {\n\tif (input === undefined || input === null) {\n\t\treturn false;\n\t}\n\n\tinput = input.toString().trim();\n\n\tif (input.length === 0) {\n\t\treturn false;\n\t}\n\n\t// Has to be `!==` as it can also return an object with error info.\n\tif (XMLValidator.validate(input) !== true) {\n\t\treturn false;\n\t}\n\n\tlet jsonObject;\n\tconst parser = new XMLParser();\n\n\ttry {\n\t\tjsonObject = parser.parse(input);\n\t} catch (_) {\n\t\treturn false;\n\t}\n\n\tif (!jsonObject) {\n\t\treturn false;\n\t}\n\n\tif (!('svg' in jsonObject)) {\n\t\treturn false;\n\t}\n\n\treturn true;\n};\n\nmodule.exports = isSvg;\n// TODO: Remove this for the next major release\nmodule.exports.default = isSvg;\n","import { render, staticRenderFns } from \"./Star.vue?vue&type=template&id=22339b94\"\nimport script from \"./Star.vue?vue&type=script&lang=js\"\nexport * from \"./Star.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./StarOutline.vue?vue&type=template&id=3a0ad9db\"\nimport script from \"./StarOutline.vue?vue&type=script&lang=js\"\nexport * from \"./StarOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","<!--\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 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\"","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 render(){var _vm=this,_c=_vm._self._c;return _c('div')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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\"","<!--\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<NcAppSidebarTab :id=\"id\"\n\t\tref=\"tab\"\n\t\t:name=\"name\"\n\t\t:icon=\"icon\"\n\t\t@bottomReached=\"onScrollBottomReached\">\n\t\t<template #icon>\n\t\t\t<slot name=\"icon\" />\n\t\t</template>\n\t\t<!-- Fallback loading -->\n\t\t<NcEmptyContent 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</NcAppSidebarTab>\n</template>\n\n<script>\nimport NcAppSidebarTab from '@nextcloud/vue/dist/Components/NcAppSidebarTab.js'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\n\nexport default {\n\tname: 'SidebarTab',\n\n\tcomponents: {\n\t\tNcAppSidebarTab,\n\t\tNcEmptyContent,\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: false,\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 { render, staticRenderFns } from \"./SidebarTab.vue?vue&type=template&id=164a4bde\"\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSidebarTab',{ref:\"tab\",attrs:{\"id\":_vm.id,\"name\":_vm.name,\"icon\":_vm.icon},on:{\"bottomReached\":_vm.onScrollBottomReached},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_vm._t(\"icon\")]},proxy:true}],null,true)},[_vm._v(\" \"),(_vm.loading)?_c('NcEmptyContent',{attrs:{\"icon\":\"icon-loading\"}}):_vm._e(),_vm._v(\" \"),_c('div',{ref:\"mount\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"system-tags\"},[(_vm.loadingTags)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('systemtags', 'Loading collaborative tags …'),\"size\":32}}):[_c('label',{attrs:{\"for\":\"system-tags-input\"}},[_vm._v(_vm._s(_vm.t('systemtags', 'Search or create collaborative tags')))]),_vm._v(\" \"),_c('NcSelectTags',{staticClass:\"system-tags__select\",attrs:{\"input-id\":\"system-tags-input\",\"placeholder\":_vm.t('systemtags', 'Collaborative tags …'),\"options\":_vm.sortedTags,\"value\":_vm.selectedTags,\"create-option\":_vm.createOption,\"taggable\":true,\"passthru\":true,\"fetch-tags\":false,\"loading\":_vm.loading},on:{\"input\":_vm.handleInput,\"option:selected\":_vm.handleSelect,\"option:created\":_vm.handleCreate,\"option:deselected\":_vm.handleDeselect},scopedSlots:_vm._u([{key:\"no-options\",fn:function(){return [_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('systemtags', 'No tags to select, type to create a new tag'))+\"\\n\\t\\t\\t\")]},proxy:true}])})]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.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 */\nimport camelCase from 'camelcase';\nexport const defaultBaseTag = {\n    userVisible: true,\n    userAssignable: true,\n    canAssign: true,\n};\nexport const parseTags = (tags) => {\n    return tags.map(({ props }) => Object.fromEntries(Object.entries(props)\n        .map(([key, value]) => [camelCase(key), camelCase(key) === 'displayName' ? String(value) : value])));\n};\n/**\n * Parse id from `Content-Location` header\n * @param url URL to parse\n */\nexport const parseIdFromLocation = (url) => {\n    const queryPos = url.indexOf('?');\n    if (queryPos > 0) {\n        url = url.substring(0, queryPos);\n    }\n    const parts = url.split('/');\n    let result;\n    do {\n        result = parts[parts.length - 1];\n        parts.pop();\n        // note: first result can be empty when there is a trailing slash,\n        // so we take the part before that\n    } while (!result && parts.length > 0);\n    return Number(result);\n};\nexport const formatTag = (initialTag) => {\n    const tag = { ...initialTag };\n    if (tag.name && !tag.displayName) {\n        return tag;\n    }\n    tag.name = tag.displayName;\n    delete tag.displayName;\n    return tag;\n};\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.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 */\nimport { createClient } from 'webdav';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getRequestToken } from '@nextcloud/auth';\nconst rootUrl = generateRemoteUrl('dav');\nexport const davClient = createClient(rootUrl, {\n    headers: {\n        requesttoken: getRequestToken() ?? '',\n    },\n});\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.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 */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport const logger = getLoggerBuilder()\n    .setApp('systemtags')\n    .detectUser()\n    .build();\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.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 */\nimport axios from '@nextcloud/axios';\nimport { generateUrl } from '@nextcloud/router';\nimport { translate as t } from '@nextcloud/l10n';\nimport { davClient } from './davClient.js';\nimport { formatTag, parseIdFromLocation, parseTags } from '../utils';\nimport { logger } from '../logger.js';\nexport const fetchTagsPayload = `<?xml version=\"1.0\"?>\n<d:propfind  xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\n\t<d:prop>\n\t\t<oc:id />\n\t\t<oc:display-name />\n\t\t<oc:user-visible />\n\t\t<oc:user-assignable />\n\t\t<oc:can-assign />\n\t</d:prop>\n</d:propfind>`;\nexport const fetchTags = async () => {\n    const path = '/systemtags';\n    try {\n        const { data: tags } = await davClient.getDirectoryContents(path, {\n            data: fetchTagsPayload,\n            details: true,\n            glob: '/systemtags/*', // Filter out first empty tag\n        });\n        return parseTags(tags);\n    }\n    catch (error) {\n        logger.error(t('systemtags', 'Failed to load tags'), { error });\n        throw new Error(t('systemtags', 'Failed to load tags'));\n    }\n};\nexport const fetchLastUsedTagIds = async () => {\n    const url = generateUrl('/apps/systemtags/lastused');\n    try {\n        const { data: lastUsedTagIds } = await axios.get(url);\n        return lastUsedTagIds.map(Number);\n    }\n    catch (error) {\n        logger.error(t('systemtags', 'Failed to load last used tags'), { error });\n        throw new Error(t('systemtags', 'Failed to load last used tags'));\n    }\n};\n/**\n * @return created tag id\n */\nexport const createTag = async (tag) => {\n    const path = '/systemtags';\n    const tagToPost = formatTag(tag);\n    try {\n        const { headers } = await davClient.customRequest(path, {\n            method: 'POST',\n            data: tagToPost,\n        });\n        const contentLocation = headers.get('content-location');\n        if (contentLocation) {\n            return parseIdFromLocation(contentLocation);\n        }\n        logger.error(t('systemtags', 'Missing \"Content-Location\" header'));\n        throw new Error(t('systemtags', 'Missing \"Content-Location\" header'));\n    }\n    catch (error) {\n        logger.error(t('systemtags', 'Failed to create tag'), { error });\n        throw new Error(t('systemtags', 'Failed to create tag'));\n    }\n};\nexport const updateTag = async (tag) => {\n    const path = '/systemtags/' + tag.id;\n    const data = `<?xml version=\"1.0\"?>\n\t<d:propertyupdate  xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\n\t\t<d:set>\n\t\t\t<d:prop>\n\t\t\t\t<oc:display-name>${tag.displayName}</oc:display-name>\n\t\t\t\t<oc:user-visible>${tag.userVisible}</oc:user-visible>\n\t\t\t\t<oc:user-assignable>${tag.userAssignable}</oc:user-assignable>\n\t\t\t</d:prop>\n\t\t</d:set>\n\t</d:propertyupdate>`;\n    try {\n        await davClient.customRequest(path, {\n            method: 'PROPPATCH',\n            data,\n        });\n    }\n    catch (error) {\n        logger.error(t('systemtags', 'Failed to update tag'), { error });\n        throw new Error(t('systemtags', 'Failed to update tag'));\n    }\n};\nexport const deleteTag = async (tag) => {\n    const path = '/systemtags/' + tag.id;\n    try {\n        await davClient.deleteFile(path);\n    }\n    catch (error) {\n        logger.error(t('systemtags', 'Failed to delete tag'), { error });\n        throw new Error(t('systemtags', 'Failed to delete tag'));\n    }\n};\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.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 */\nimport { davClient } from './davClient.js';\nimport { createTag, fetchTagsPayload } from './api.js';\nimport { formatTag, parseTags } from '../utils.js';\nimport { logger } from '../logger.js';\nexport const fetchTagsForFile = async (fileId) => {\n    const path = '/systemtags-relations/files/' + fileId;\n    try {\n        const { data: tags } = await davClient.getDirectoryContents(path, {\n            data: fetchTagsPayload,\n            details: true,\n            glob: '/systemtags-relations/files/*/*', // Filter out first empty tag\n        });\n        return parseTags(tags);\n    }\n    catch (error) {\n        logger.error(t('systemtags', 'Failed to load tags for file'), { error });\n        throw new Error(t('systemtags', 'Failed to load tags for file'));\n    }\n};\n/**\n * @return created tag id\n */\nexport const createTagForFile = async (tag, fileId) => {\n    const tagToCreate = formatTag(tag);\n    const tagId = await createTag(tagToCreate);\n    const tagToSet = {\n        ...tagToCreate,\n        id: tagId,\n    };\n    await setTagForFile(tagToSet, fileId);\n    return tagToSet.id;\n};\nexport const setTagForFile = async (tag, fileId) => {\n    const path = '/systemtags-relations/files/' + fileId + '/' + tag.id;\n    const tagToPut = formatTag(tag);\n    try {\n        await davClient.customRequest(path, {\n            method: 'PUT',\n            data: tagToPut,\n        });\n    }\n    catch (error) {\n        logger.error(t('systemtags', 'Failed to set tag for file'), { error });\n        throw new Error(t('systemtags', 'Failed to set tag for file'));\n    }\n};\nexport const deleteTagForFile = async (tag, fileId) => {\n    const path = '/systemtags-relations/files/' + fileId + '/' + tag.id;\n    try {\n        await davClient.deleteFile(path);\n    }\n    catch (error) {\n        logger.error(t('systemtags', 'Failed to delete tag for file'), { error });\n        throw new Error(t('systemtags', 'Failed to delete tag for file'));\n    }\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemTags.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemTags.vue?vue&type=script&lang=ts\"","\n      import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemTags.vue?vue&type=style&index=0&id=3ff8ae0b&prod&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!./SystemTags.vue?vue&type=style&index=0&id=3ff8ae0b&prod&lang=scss&scoped=true\";\n       export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SystemTags.vue?vue&type=template&id=3ff8ae0b&scoped=true\"\nimport script from \"./SystemTags.vue?vue&type=script&lang=ts\"\nexport * from \"./SystemTags.vue?vue&type=script&lang=ts\"\nimport style0 from \"./SystemTags.vue?vue&type=style&index=0&id=3ff8ae0b&prod&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  \"3ff8ae0b\",\n  null\n  \n)\n\nexport default component.exports","<!--\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<NcAppSidebar v-if=\"file\"\n\t\tref=\"sidebar\"\n\t\tv-bind=\"appSidebar\"\n\t\t:force-menu=\"true\"\n\t\ttabindex=\"0\"\n\t\t@close=\"close\"\n\t\t@update:active=\"setActiveTab\"\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<div class=\"sidebar__description\">\n\t\t\t\t<SystemTags v-if=\"isSystemTagsEnabled\"\n\t\t\t\t\tv-show=\"showTags\"\n\t\t\t\t\t:file-id=\"fileInfo.id\"\n\t\t\t\t\t@has-tags=\"value => showTags = value\" />\n\t\t\t\t<LegacyView v-for=\"view in views\"\n\t\t\t\t\t:key=\"view.cid\"\n\t\t\t\t\t:component=\"view\"\n\t\t\t\t\t:file-info=\"fileInfo\" />\n\t\t\t</div>\n\t\t</template>\n\n\t\t<!-- Actions menu -->\n\t\t<template v-if=\"fileInfo\" #secondary-actions>\n\t\t\t<NcActionButton :close-after-click=\"true\"\n\t\t\t\t@click=\"toggleStarred(!fileInfo.isFavourited)\">\n\t\t\t\t<template v-if=\"fileInfo.isFavourited\" #icon>\n\t\t\t\t\t<StarOutline :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<template v-else #icon>\n\t\t\t\t\t<Star :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ fileInfo.isFavourited ? t('files', 'Remove from favorites') : t('files', 'Add to favorites') }}\n\t\t\t</NcActionButton>\n\t\t\t<!-- TODO: create proper api for apps to register actions\n\t\t\tAnd inject themselves here. -->\n\t\t\t<NcActionButton 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</NcActionButton>\n\t\t</template>\n\n\t\t<!-- Error display -->\n\t\t<NcEmptyContent v-if=\"error\" icon=\"icon-error\">\n\t\t\t{{ error }}\n\t\t</NcEmptyContent>\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\t\t<template v-if=\"tab.iconSvg !== undefined\" #icon>\n\t\t\t\t\t<!-- eslint-disable-next-line vue/no-v-html -->\n\t\t\t\t\t<span class=\"svg-icon\" v-html=\"tab.iconSvg\" />\n\t\t\t\t</template>\n\t\t\t</SidebarTab>\n\t\t</template>\n\t</NcAppSidebar>\n</template>\n<script>\nimport { emit } from '@nextcloud/event-bus'\nimport { encodePath } from '@nextcloud/paths'\nimport { File, Folder } from '@nextcloud/files'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { Type as ShareTypes } from '@nextcloud/sharing'\nimport $ from 'jquery'\nimport axios from '@nextcloud/axios'\nimport moment from '@nextcloud/moment'\n\nimport Star from 'vue-material-design-icons/Star.vue'\nimport StarOutline from 'vue-material-design-icons/StarOutline.vue'\n\nimport NcAppSidebar from '@nextcloud/vue/dist/Components/NcAppSidebar.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\n\nimport FileInfo from '../services/FileInfo.js'\nimport LegacyView from '../components/LegacyView.vue'\nimport SidebarTab from '../components/SidebarTab.vue'\nimport SystemTags from '../../../systemtags/src/components/SystemTags.vue'\n\nexport default {\n\tname: 'Sidebar',\n\n\tcomponents: {\n\t\tLegacyView,\n\t\tNcActionButton,\n\t\tNcAppSidebar,\n\t\tNcEmptyContent,\n\t\tSidebarTab,\n\t\tSystemTags,\n\t\tStar,\n\t\tStarOutline,\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\tshowTags: false,\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\thasLowHeight: 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\tconst starredIndicator = this.fileInfo.isFavourited ? '★ ' : ''\n\t\t\treturn `${starredIndicator} ${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 && !this.isFullScreen,\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.hasLowHeight || !this.fileInfo.hasPreview || this.isFullScreen,\n\t\t\t\t\tloading: this.loading,\n\t\t\t\t\tsubname: this.subtitle,\n\t\t\t\t\tsubtitle: this.fullTime,\n\t\t\t\t\tname: this.fileInfo.name,\n\t\t\t\t\ttitle: 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\tsubname: '',\n\t\t\t\t\tname: '',\n\t\t\t\t\tclass: {\n\t\t\t\t\t\t'app-sidebar--full': this.isFullScreen,\n\t\t\t\t\t},\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\tsubname: '',\n\t\t\t\tname: '',\n\t\t\t\tclass: {\n\t\t\t\t\t'app-sidebar--full': this.isFullScreen,\n\t\t\t\t},\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 getCapabilities()?.systemtags?.enabled === true\n\t\t},\n\t},\n\tcreated() {\n\t\twindow.addEventListener('resize', this.handleWindowResize)\n\t\tthis.handleWindowResize()\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this.handleWindowResize)\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 && !this.isFullScreen) {\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\tthis.tabs.forEach(tab => {\n\t\t\t\ttry {\n\t\t\t\t\ttab.setIsActive(id === tab.id)\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlogger.error('Error while setting tab active state', { error, id: tab.id, tab })\n\t\t\t\t}\n\t\t\t})\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/**\n\t\t\t\t * TODO: adjust this when the Sidebar is finally using File/Folder classes\n\t\t\t\t * @see https://github.com/nextcloud/server/blob/8a75cb6e72acd42712ab9fea22296aa1af863ef5/apps/files/src/views/favorites.ts#L83-L115\n\t\t\t\t */\n\t\t\t\tconst isDir = this.fileInfo.type === 'dir'\n\t\t\t\tconst Node = isDir ? Folder : File\n\t\t\t\temit(state ? 'files:favorites:added' : 'files:favorites:removed', new Node({\n\t\t\t\t\tfileid: this.fileInfo.id,\n\t\t\t\t\tsource: this.davPath,\n\t\t\t\t\troot: `/files/${getCurrentUser().uid}`,\n\t\t\t\t\tmime: isDir ? undefined : this.fileInfo.mimetype,\n\t\t\t\t}))\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\tthis.showTags = !this.showTags\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\tif (!path || path.trim() === '') {\n\t\t\t\tthrow new Error(`Invalid path '${path}'`)\n\t\t\t}\n\n\t\t\t// update current opened file\n\t\t\tthis.Sidebar.file = path\n\n\t\t\t// reset data, keep old fileInfo to not reload all tabs and just hide them\n\t\t\tthis.error = null\n\t\t\tthis.loading = true\n\n\t\t\ttry {\n\t\t\t\tthis.fileInfo = await FileInfo(this.davPath)\n\t\t\t\t// adding this as fallback because other apps expect it\n\t\t\t\tthis.fileInfo.dir = this.file.split('/').slice(0, -1).join('/')\n\n\t\t\t\t// DEPRECATED legacy views\n\t\t\t\t// TODO: remove\n\t\t\t\tthis.views.forEach(view => {\n\t\t\t\t\tview.setFileInfo(this.fileInfo)\n\t\t\t\t})\n\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tif (this.$refs.tabs) {\n\t\t\t\t\t\tthis.$refs.tabs.updateTabs()\n\t\t\t\t\t}\n\t\t\t\t\tthis.setActiveTab(this.Sidebar.activeTab || this.tabs[0].id)\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tthis.error = t('files', 'Error while loading the file data')\n\t\t\t\tconsole.error('Error while loading the file data', error)\n\n\t\t\t\tthrow new Error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Close the sidebar\n\t\t */\n\t\tclose() {\n\t\t\tthis.Sidebar.file = ''\n\t\t\tthis.showTags = false\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 - Whether or not to render the Sidebar in fullscreen.\n\t\t */\n\t\tsetFullScreenMode(isFullScreen) {\n\t\t\tthis.isFullScreen = isFullScreen\n\t\t\tif (isFullScreen) {\n\t\t\t\tdocument.querySelector('#content')?.classList.add('with-sidebar--full')\n\t\t\t\t\t|| document.querySelector('#content-vue')?.classList.add('with-sidebar--full')\n\t\t\t} else {\n\t\t\t\tdocument.querySelector('#content')?.classList.remove('with-sidebar--full')\n\t\t\t\t\t|| document.querySelector('#content-vue')?.classList.remove('with-sidebar--full')\n\t\t\t}\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\thandleWindowResize() {\n\t\t\tthis.hasLowHeight = document.documentElement.clientHeight < 1024\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n.app-sidebar {\n\t&--has-preview: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\t:deep {\n\t\t.app-sidebar-header__description {\n\t\t\tmargin: 0 16px 4px 16px !important;\n\t\t}\n\t}\n\n\t.svg-icon {\n\t\t::v-deep svg {\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tfill: currentColor;\n\t\t}\n\t}\n}\n\n.sidebar__description {\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tgap: 8px 0;\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 * @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'\nimport { davGetDefaultPropfind } from '@nextcloud/files'\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: davGetDefaultPropfind(),\n\t})\n\n\t// TODO: create new parser or use cdav-lib when available\n\tconst file = OC.Files.getClient()._client.parseMultiStatus(response.data)\n\t// TODO: create new parser or use cdav-lib when available\n\tconst fileInfo = OC.Files.getClient()._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","\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=4e367638&prod&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=4e367638&prod&lang=scss&scoped=true\";\n       export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Sidebar.vue?vue&type=template&id=4e367638&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=4e367638&prod&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  \"4e367638\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.file)?_c('NcAppSidebar',_vm._b({ref:\"sidebar\",attrs:{\"force-menu\":true,\"tabindex\":\"0\"},on:_vm._d({\"close\":_vm.close,\"update:active\":_vm.setActiveTab,\"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 [_c('div',{staticClass:\"sidebar__description\"},[(_vm.isSystemTagsEnabled)?_c('SystemTags',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showTags),expression:\"showTags\"}],attrs:{\"file-id\":_vm.fileInfo.id},on:{\"has-tags\":value => _vm.showTags = value}}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.views),function(view){return _c('LegacyView',{key:view.cid,attrs:{\"component\":view,\"file-info\":_vm.fileInfo}})})],2)]},proxy:true}:null,(_vm.fileInfo)?{key:\"secondary-actions\",fn:function(){return [_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){return _vm.toggleStarred(!_vm.fileInfo.isFavourited)}},scopedSlots:_vm._u([(_vm.fileInfo.isFavourited)?{key:\"icon\",fn:function(){return [_c('StarOutline',{attrs:{\"size\":20}})]},proxy:true}:{key:\"icon\",fn:function(){return [_c('Star',{attrs:{\"size\":20}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.fileInfo.isFavourited ? _vm.t('files', 'Remove from favorites') : _vm.t('files', 'Add to favorites'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.isSystemTagsEnabled)?_c('NcActionButton',{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)},'NcAppSidebar',_vm.appSidebar,false),[_vm._v(\" \"),_vm._v(\" \"),(_vm.error)?_c('NcEmptyContent',{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},scopedSlots:_vm._u([(tab.iconSvg !== undefined)?{key:\"icon\",fn:function(){return [_c('span',{staticClass:\"svg-icon\",domProps:{\"innerHTML\":_vm._s(tab.iconSvg)}})]},proxy:true}:null],null,true)}):_vm._e()]}):_vm._e()],2):_vm._e()\n}\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\nimport Vue from 'vue'\nimport { translate as t } from '@nextcloud/l10n'\n\nimport SidebarView from './views/Sidebar.vue'\nimport Sidebar from './services/Sidebar.js'\nimport Tab from './models/Tab.js'\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\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","/**\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 */\nimport { sanitizeSVG } from '@skjnldsv/sanitize-svg'\n\nexport default class Tab {\n\n\t_id\n\t_name\n\t_icon\n\t_iconSvgSanitized\n\t_mount\n\t_setIsActive\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 icon css class\n\t * @param {?string} options.iconSvg the icon in svg format\n\t * @param {Function} options.mount function to mount the tab\n\t * @param {Function} [options.setIsActive] function to forward the active state of 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, iconSvg, mount, setIsActive, 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() === '') && typeof iconSvg !== 'string') {\n\t\t\tthrow new Error('Missing valid string for icon or iconSvg argument')\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 (setIsActive !== undefined && typeof setIsActive !== 'function') {\n\t\t\tthrow new Error('The setIsActive 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._setIsActive = setIsActive\n\t\tthis._update = update\n\t\tthis._destroy = destroy\n\t\tthis._enabled = enabled\n\t\tthis._scrollBottomReached = scrollBottomReached\n\n\t\tif (typeof iconSvg === 'string') {\n\t\t\tsanitizeSVG(iconSvg)\n\t\t\t\t.then(sanitizedSvg => {\n\t\t\t\t\tthis._iconSvgSanitized = sanitizedSvg\n\t\t\t\t})\n\t\t}\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 iconSvg() {\n\t\treturn this._iconSvgSanitized\n\t}\n\n\tget mount() {\n\t\treturn this._mount\n\t}\n\n\tget setIsActive() {\n\t\treturn this._setIsActive || (() => undefined)\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","import { Buffer } from 'buffer';\nimport isSvg from 'is-svg';\n\nconst readAsText = (svg) => new Promise((resolve) => {\n    if (!isFile(svg)) {\n        resolve(svg.toString('utf-8'));\n    }\n    else {\n        const fileReader = new FileReader();\n        fileReader.onload = () => {\n            resolve(fileReader.result);\n        };\n        fileReader.readAsText(svg);\n    }\n});\nconst isFile = (obj) => {\n    return obj.size !== undefined;\n};\nconst sanitizeSVG = async (svg) => {\n    if (!svg) {\n        throw new Error('Not an svg');\n    }\n    let svgText = '';\n    if (Buffer.isBuffer(svg) || svg instanceof File) {\n        svgText = await readAsText(svg);\n    }\n    else {\n        svgText = svg;\n    }\n    if (!isSvg(svgText)) {\n        throw new Error('Not an svg');\n    }\n    const div = document.createElement('div');\n    div.innerHTML = svgText;\n    const svgEl = div.firstElementChild;\n    const attributes = Array.from(svgEl.attributes).map(({ name }) => name);\n    const hasScriptAttr = !!attributes.find((attr) => attr.startsWith('on'));\n    const scripts = svgEl.getElementsByTagName('script');\n    return scripts.length === 0 && !hasScriptAttr ? svg : null;\n};\n\nexport { sanitizeSVG };\n//# sourceMappingURL=index.esm.js.map\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-sidebar--has-preview[data-v-4e367638] .app-sidebar-header__figure{background-size:cover}.app-sidebar--has-preview[data-v-4e367638][data-mimetype=\"text/plain\"] .app-sidebar-header__figure,.app-sidebar--has-preview[data-v-4e367638][data-mimetype=\"text/markdown\"] .app-sidebar-header__figure{background-size:contain}.app-sidebar--full[data-v-4e367638]{position:fixed !important;z-index:2025 !important;top:0 !important;height:100% !important}.app-sidebar[data-v-4e367638] .app-sidebar-header__description{margin:0 16px 4px 16px !important}.app-sidebar .svg-icon[data-v-4e367638] svg{width:20px;height:20px;fill:currentColor}.sidebar__description[data-v-4e367638]{display:flex;flex-direction:column;width:100%;gap:8px 0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Sidebar.vue\"],\"names\":[],\"mappings\":\"AAGE,uEACC,qBAAA,CAKA,yMACC,uBAAA,CAKH,oCACC,yBAAA,CACA,uBAAA,CACA,gBAAA,CACA,sBAAA,CAIA,+DACC,iCAAA,CAKD,4CACC,UAAA,CACA,WAAA,CACA,iBAAA,CAKH,uCACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,SAAA\",\"sourcesContent\":[\"\\n.app-sidebar {\\n\\t&--has-preview: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\\t:deep {\\n\\t\\t.app-sidebar-header__description {\\n\\t\\t\\tmargin: 0 16px 4px 16px !important;\\n\\t\\t}\\n\\t}\\n\\n\\t.svg-icon {\\n\\t\\t::v-deep svg {\\n\\t\\t\\twidth: 20px;\\n\\t\\t\\theight: 20px;\\n\\t\\t\\tfill: currentColor;\\n\\t\\t}\\n\\t}\\n}\\n\\n.sidebar__description {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\twidth: 100%;\\n\\tgap: 8px 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.system-tags[data-v-3ff8ae0b]{display:flex;flex-direction:column}.system-tags label[for=system-tags-input][data-v-3ff8ae0b]{margin-bottom:2px}.system-tags__select[data-v-3ff8ae0b]{width:100%}.system-tags__select[data-v-3ff8ae0b] .vs__deselect{padding:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/systemtags/src/components/SystemTags.vue\"],\"names\":[],\"mappings\":\"AACA,8BACC,YAAA,CACA,qBAAA,CAEA,2DACC,iBAAA,CAGD,sCACC,UAAA,CAEC,oDACC,SAAA\",\"sourcesContent\":[\"\\n.system-tags {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\tlabel[for=\\\"system-tags-input\\\"] {\\n\\t\\tmargin-bottom: 2px;\\n\\t}\\n\\n\\t&__select {\\n\\t\\twidth: 100%;\\n\\t\\t:deep {\\n\\t\\t\\t.vs__deselect {\\n\\t\\t\\t\\tpadding: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\nconst validator = require('./validator');\nconst XMLParser = require('./xmlparser/XMLParser');\nconst XMLBuilder = require('./xmlbuilder/json2xml');\n\nmodule.exports = {\n  XMLParser: XMLParser,\n  XMLValidator: validator,\n  XMLBuilder: XMLBuilder\n}","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","import { getCurrentUser as A, onRequestTokenUpdate as ue, getRequestToken as de } from \"@nextcloud/auth\";\nimport { getLoggerBuilder as q } from \"@nextcloud/logger\";\nimport { getCanonicalLocale as ae } from \"@nextcloud/l10n\";\nimport { join as le, basename as fe, extname as ce, dirname as I } from \"path\";\nimport { encodePath as he } from \"@nextcloud/paths\";\nimport { generateRemoteUrl as pe } from \"@nextcloud/router\";\nimport { createClient as ge, getPatcher as we } from \"webdav\";\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\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 */\nconst me = (e) => e === null ? q().setApp(\"files\").build() : q().setApp(\"files\").setUid(e.uid).build(), m = me(A());\n/**\n * @copyright Copyright (c) 2021 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 */\nclass Ne {\n  _entries = [];\n  registerEntry(t) {\n    this.validateEntry(t), this._entries.push(t);\n  }\n  unregisterEntry(t) {\n    const r = typeof t == \"string\" ? this.getEntryIndex(t) : this.getEntryIndex(t.id);\n    if (r === -1) {\n      m.warn(\"Entry not found, nothing removed\", { entry: t, entries: this.getEntries() });\n      return;\n    }\n    this._entries.splice(r, 1);\n  }\n  /**\n   * Get the list of registered entries\n   *\n   * @param {Folder} context the creation context. Usually the current folder\n   */\n  getEntries(t) {\n    return t ? this._entries.filter((r) => typeof r.enabled == \"function\" ? r.enabled(t) : !0) : this._entries;\n  }\n  getEntryIndex(t) {\n    return this._entries.findIndex((r) => r.id === t);\n  }\n  validateEntry(t) {\n    if (!t.id || !t.displayName || !(t.iconSvgInline || t.iconClass) || !t.handler)\n      throw new Error(\"Invalid entry\");\n    if (typeof t.id != \"string\" || typeof t.displayName != \"string\")\n      throw new Error(\"Invalid id or displayName property\");\n    if (t.iconClass && typeof t.iconClass != \"string\" || t.iconSvgInline && typeof t.iconSvgInline != \"string\")\n      throw new Error(\"Invalid icon provided\");\n    if (t.enabled !== void 0 && typeof t.enabled != \"function\")\n      throw new Error(\"Invalid enabled property\");\n    if (typeof t.handler != \"function\")\n      throw new Error(\"Invalid handler property\");\n    if (\"order\" in t && typeof t.order != \"number\")\n      throw new Error(\"Invalid order property\");\n    if (this.getEntryIndex(t.id) !== -1)\n      throw new Error(\"Duplicate entry\");\n  }\n}\nconst F = function() {\n  return typeof window._nc_newfilemenu > \"u\" && (window._nc_newfilemenu = new Ne(), m.debug(\"NewFileMenu initialized\")), window._nc_newfilemenu;\n};\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\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 */\nconst C = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"], P = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction Yt(e, t = !1, r = !1, s = !1) {\n  r = r && !s, typeof e == \"string\" && (e = Number(e));\n  let n = e > 0 ? Math.floor(Math.log(e) / Math.log(s ? 1e3 : 1024)) : 0;\n  n = Math.min((r ? P.length : C.length) - 1, n);\n  const i = r ? P[n] : C[n];\n  let d = (e / Math.pow(s ? 1e3 : 1024, n)).toFixed(1);\n  return t === !0 && n === 0 ? (d !== \"0.0\" ? \"< 1 \" : \"0 \") + (r ? P[1] : C[1]) : (n < 2 ? d = parseFloat(d).toFixed(0) : d = parseFloat(d).toLocaleString(ae()), d + \" \" + i);\n}\nfunction Jt(e, t = !1) {\n  try {\n    e = `${e}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n  } catch {\n    return null;\n  }\n  const r = e.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n  if (r === null || r[1] === \".\" || r[1] === \"\")\n    return null;\n  const s = {\n    \"\": 0,\n    k: 1,\n    m: 2,\n    g: 3,\n    t: 4,\n    p: 5,\n    e: 6\n  }, n = `${r[1]}`, i = r[4] === \"i\" || t ? 1024 : 1e3;\n  return Math.round(Number.parseFloat(n) * i ** s[r[3]]);\n}\n/**\n * @copyright Copyright (c) 2023 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 */\nvar Z = /* @__PURE__ */ ((e) => (e.DEFAULT = \"default\", e.HIDDEN = \"hidden\", e))(Z || {});\nclass Qt {\n  _action;\n  constructor(t) {\n    this.validateAction(t), this._action = t;\n  }\n  get id() {\n    return this._action.id;\n  }\n  get displayName() {\n    return this._action.displayName;\n  }\n  get title() {\n    return this._action.title;\n  }\n  get iconSvgInline() {\n    return this._action.iconSvgInline;\n  }\n  get enabled() {\n    return this._action.enabled;\n  }\n  get exec() {\n    return this._action.exec;\n  }\n  get execBatch() {\n    return this._action.execBatch;\n  }\n  get order() {\n    return this._action.order;\n  }\n  get parent() {\n    return this._action.parent;\n  }\n  get default() {\n    return this._action.default;\n  }\n  get inline() {\n    return this._action.inline;\n  }\n  get renderInline() {\n    return this._action.renderInline;\n  }\n  validateAction(t) {\n    if (!t.id || typeof t.id != \"string\")\n      throw new Error(\"Invalid id\");\n    if (!t.displayName || typeof t.displayName != \"function\")\n      throw new Error(\"Invalid displayName function\");\n    if (\"title\" in t && typeof t.title != \"function\")\n      throw new Error(\"Invalid title function\");\n    if (!t.iconSvgInline || typeof t.iconSvgInline != \"function\")\n      throw new Error(\"Invalid iconSvgInline function\");\n    if (!t.exec || typeof t.exec != \"function\")\n      throw new Error(\"Invalid exec function\");\n    if (\"enabled\" in t && typeof t.enabled != \"function\")\n      throw new Error(\"Invalid enabled function\");\n    if (\"execBatch\" in t && typeof t.execBatch != \"function\")\n      throw new Error(\"Invalid execBatch function\");\n    if (\"order\" in t && typeof t.order != \"number\")\n      throw new Error(\"Invalid order\");\n    if (\"parent\" in t && typeof t.parent != \"string\")\n      throw new Error(\"Invalid parent\");\n    if (t.default && !Object.values(Z).includes(t.default))\n      throw new Error(\"Invalid default\");\n    if (\"inline\" in t && typeof t.inline != \"function\")\n      throw new Error(\"Invalid inline function\");\n    if (\"renderInline\" in t && typeof t.renderInline != \"function\")\n      throw new Error(\"Invalid renderInline function\");\n  }\n}\nconst Dt = function(e) {\n  if (typeof window._nc_fileactions > \"u\" && (window._nc_fileactions = [], m.debug(\"FileActions initialized\")), window._nc_fileactions.find((t) => t.id === e.id)) {\n    m.error(`FileAction ${e.id} already registered`, { action: e });\n    return;\n  }\n  window._nc_fileactions.push(e);\n}, er = function() {\n  return typeof window._nc_fileactions > \"u\" && (window._nc_fileactions = [], m.debug(\"FileActions initialized\")), window._nc_fileactions;\n};\n/**\n * @copyright Copyright (c) 2023 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 */\nclass tr {\n  _header;\n  constructor(t) {\n    this.validateHeader(t), this._header = t;\n  }\n  get id() {\n    return this._header.id;\n  }\n  get order() {\n    return this._header.order;\n  }\n  get enabled() {\n    return this._header.enabled;\n  }\n  get render() {\n    return this._header.render;\n  }\n  get updated() {\n    return this._header.updated;\n  }\n  validateHeader(t) {\n    if (!t.id || !t.render || !t.updated)\n      throw new Error(\"Invalid header: id, render and updated are required\");\n    if (typeof t.id != \"string\")\n      throw new Error(\"Invalid id property\");\n    if (t.enabled !== void 0 && typeof t.enabled != \"function\")\n      throw new Error(\"Invalid enabled property\");\n    if (t.render && typeof t.render != \"function\")\n      throw new Error(\"Invalid render property\");\n    if (t.updated && typeof t.updated != \"function\")\n      throw new Error(\"Invalid updated property\");\n  }\n}\nconst rr = function(e) {\n  if (typeof window._nc_filelistheader > \"u\" && (window._nc_filelistheader = [], m.debug(\"FileListHeaders initialized\")), window._nc_filelistheader.find((t) => t.id === e.id)) {\n    m.error(`Header ${e.id} already registered`, { header: e });\n    return;\n  }\n  window._nc_filelistheader.push(e);\n}, nr = function() {\n  return typeof window._nc_filelistheader > \"u\" && (window._nc_filelistheader = [], m.debug(\"FileListHeaders initialized\")), window._nc_filelistheader;\n};\n/**\n * @copyright Copyright (c) 2022 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 */\nvar N = /* @__PURE__ */ ((e) => (e[e.NONE = 0] = \"NONE\", e[e.CREATE = 4] = \"CREATE\", e[e.READ = 1] = \"READ\", e[e.UPDATE = 2] = \"UPDATE\", e[e.DELETE = 8] = \"DELETE\", e[e.SHARE = 16] = \"SHARE\", e[e.ALL = 31] = \"ALL\", e))(N || {});\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 */\nconst j = [\n  \"d:getcontentlength\",\n  \"d:getcontenttype\",\n  \"d:getetag\",\n  \"d:getlastmodified\",\n  \"d:quota-available-bytes\",\n  \"d:resourcetype\",\n  \"nc:has-preview\",\n  \"nc:is-encrypted\",\n  \"nc:mount-type\",\n  \"nc:share-attributes\",\n  \"oc:comments-unread\",\n  \"oc:favorite\",\n  \"oc:fileid\",\n  \"oc:owner-display-name\",\n  \"oc:owner-id\",\n  \"oc:permissions\",\n  \"oc:share-types\",\n  \"oc:size\",\n  \"ocs:share-permissions\"\n], Y = {\n  d: \"DAV:\",\n  nc: \"http://nextcloud.org/ns\",\n  oc: \"http://owncloud.org/ns\",\n  ocs: \"http://open-collaboration-services.org/ns\"\n}, ir = function(e, t = { nc: \"http://nextcloud.org/ns\" }) {\n  typeof window._nc_dav_properties > \"u\" && (window._nc_dav_properties = [...j], window._nc_dav_namespaces = { ...Y });\n  const r = { ...window._nc_dav_namespaces, ...t };\n  if (window._nc_dav_properties.find((n) => n === e))\n    return m.error(`${e} already registered`, { prop: e }), !1;\n  if (e.startsWith(\"<\") || e.split(\":\").length !== 2)\n    return m.error(`${e} is not valid. See example: 'oc:fileid'`, { prop: e }), !1;\n  const s = e.split(\":\")[0];\n  return r[s] ? (window._nc_dav_properties.push(e), window._nc_dav_namespaces = r, !0) : (m.error(`${e} namespace unknown`, { prop: e, namespaces: r }), !1);\n}, V = function() {\n  return typeof window._nc_dav_properties > \"u\" && (window._nc_dav_properties = [...j]), window._nc_dav_properties.map((e) => `<${e} />`).join(\" \");\n}, L = function() {\n  return typeof window._nc_dav_namespaces > \"u\" && (window._nc_dav_namespaces = { ...Y }), Object.keys(window._nc_dav_namespaces).map((e) => `xmlns:${e}=\"${window._nc_dav_namespaces?.[e]}\"`).join(\" \");\n}, sr = function() {\n  return `<?xml version=\"1.0\"?>\n\t\t<d:propfind ${L()}>\n\t\t\t<d:prop>\n\t\t\t\t${V()}\n\t\t\t</d:prop>\n\t\t</d:propfind>`;\n}, Ee = function() {\n  return `<?xml version=\"1.0\"?>\n\t\t<oc:filter-files ${L()}>\n\t\t\t<d:prop>\n\t\t\t\t${V()}\n\t\t\t</d:prop>\n\t\t\t<oc:filter-rules>\n\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t</oc:filter-rules>\n\t\t</oc:filter-files>`;\n}, or = function(e) {\n  return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<d:searchrequest ${L()}\n\txmlns:ns=\"https://github.com/icewind1991/SearchDAV/ns\">\n\t<d:basicsearch>\n\t\t<d:select>\n\t\t\t<d:prop>\n\t\t\t\t${V()}\n\t\t\t</d:prop>\n\t\t</d:select>\n\t\t<d:from>\n\t\t\t<d:scope>\n\t\t\t\t<d:href>/files/${A()?.uid}/</d:href>\n\t\t\t\t<d:depth>infinity</d:depth>\n\t\t\t</d:scope>\n\t\t</d:from>\n\t\t<d:where>\n\t\t\t<d:and>\n\t\t\t\t<d:or>\n\t\t\t\t\t<d:not>\n\t\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<d:getcontenttype/>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t\t<d:literal>httpd/unix-directory</d:literal>\n\t\t\t\t\t\t</d:eq>\n\t\t\t\t\t</d:not>\n\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<oc:size/>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t<d:literal>0</d:literal>\n\t\t\t\t\t</d:eq>\n\t\t\t\t</d:or>\n\t\t\t\t<d:gt>\n\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t\t</d:prop>\n\t\t\t\t\t<d:literal>${e}</d:literal>\n\t\t\t\t</d:gt>\n\t\t\t</d:and>\n\t\t</d:where>\n\t\t<d:orderby>\n\t\t\t<d:order>\n\t\t\t\t<d:prop>\n\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t</d:prop>\n\t\t\t\t<d:descending/>\n\t\t\t</d:order>\n\t\t</d:orderby>\n\t\t<d:limit>\n\t\t\t<d:nresults>100</d:nresults>\n\t\t\t<ns:firstresult>0</ns:firstresult>\n\t\t</d:limit>\n\t</d:basicsearch>\n</d:searchrequest>`;\n};\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 */\nconst be = function(e = \"\") {\n  let t = N.NONE;\n  return e && ((e.includes(\"C\") || e.includes(\"K\")) && (t |= N.CREATE), e.includes(\"G\") && (t |= N.READ), (e.includes(\"W\") || e.includes(\"N\") || e.includes(\"V\")) && (t |= N.UPDATE), e.includes(\"D\") && (t |= N.DELETE), e.includes(\"R\") && (t |= N.SHARE)), t;\n};\n/**\n * @copyright Copyright (c) 2022 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 */\nvar R = /* @__PURE__ */ ((e) => (e.Folder = \"folder\", e.File = \"file\", e))(R || {});\n/**\n * @copyright Copyright (c) 2022 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 */\nconst J = function(e, t) {\n  return e.match(t) !== null;\n}, X = (e, t) => {\n  if (e.id && typeof e.id != \"number\")\n    throw new Error(\"Invalid id type of value\");\n  if (!e.source)\n    throw new Error(\"Missing mandatory source\");\n  try {\n    new URL(e.source);\n  } catch {\n    throw new Error(\"Invalid source format, source must be a valid URL\");\n  }\n  if (!e.source.startsWith(\"http\"))\n    throw new Error(\"Invalid source format, only http(s) is supported\");\n  if (e.mtime && !(e.mtime instanceof Date))\n    throw new Error(\"Invalid mtime type\");\n  if (e.crtime && !(e.crtime instanceof Date))\n    throw new Error(\"Invalid crtime type\");\n  if (!e.mime || typeof e.mime != \"string\" || !e.mime.match(/^[-\\w.]+\\/[-+\\w.]+$/gi))\n    throw new Error(\"Missing or invalid mandatory mime\");\n  if (\"size\" in e && typeof e.size != \"number\" && e.size !== void 0)\n    throw new Error(\"Invalid size type\");\n  if (\"permissions\" in e && e.permissions !== void 0 && !(typeof e.permissions == \"number\" && e.permissions >= N.NONE && e.permissions <= N.ALL))\n    throw new Error(\"Invalid permissions\");\n  if (e.owner && e.owner !== null && typeof e.owner != \"string\")\n    throw new Error(\"Invalid owner type\");\n  if (e.attributes && typeof e.attributes != \"object\")\n    throw new Error(\"Invalid attributes type\");\n  if (e.root && typeof e.root != \"string\")\n    throw new Error(\"Invalid root type\");\n  if (e.root && !e.root.startsWith(\"/\"))\n    throw new Error(\"Root must start with a leading slash\");\n  if (e.root && !e.source.includes(e.root))\n    throw new Error(\"Root must be part of the source\");\n  if (e.root && J(e.source, t)) {\n    const r = e.source.match(t)[0];\n    if (!e.source.includes(le(r, e.root)))\n      throw new Error(\"The root must be relative to the service. e.g /files/emma\");\n  }\n  if (e.status && !Object.values(Q).includes(e.status))\n    throw new Error(\"Status must be a valid NodeStatus\");\n};\n/**\n * @copyright Copyright (c) 2022 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 */\nvar Q = /* @__PURE__ */ ((e) => (e.NEW = \"new\", e.FAILED = \"failed\", e.LOADING = \"loading\", e.LOCKED = \"locked\", e))(Q || {});\nclass D {\n  _data;\n  _attributes;\n  _knownDavService = /(remote|public)\\.php\\/(web)?dav/i;\n  constructor(t, r) {\n    X(t, r || this._knownDavService), this._data = t;\n    const s = {\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      set: (n, i, d) => (this.updateMtime(), Reflect.set(n, i, d)),\n      deleteProperty: (n, i) => (this.updateMtime(), Reflect.deleteProperty(n, i))\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    };\n    this._attributes = new Proxy(t.attributes || {}, s), delete this._data.attributes, r && (this._knownDavService = r);\n  }\n  /**\n   * Get the source url to this object\n   */\n  get source() {\n    return this._data.source.replace(/\\/$/i, \"\");\n  }\n  /**\n   * Get the encoded source url to this object for requests purposes\n   */\n  get encodedSource() {\n    const { origin: t } = new URL(this.source);\n    return t + he(this.source.slice(t.length));\n  }\n  /**\n   * Get this object name\n   */\n  get basename() {\n    return fe(this.source);\n  }\n  /**\n   * Get this object's extension\n   */\n  get extension() {\n    return ce(this.source);\n  }\n  /**\n   * Get the directory path leading to this object\n   * Will use the relative path to root if available\n   */\n  get dirname() {\n    if (this.root) {\n      const r = this.source.indexOf(this.root);\n      return I(this.source.slice(r + this.root.length) || \"/\");\n    }\n    const t = new URL(this.source);\n    return I(t.pathname);\n  }\n  /**\n   * Get the file mime\n   */\n  get mime() {\n    return this._data.mime;\n  }\n  /**\n   * Get the file modification time\n   */\n  get mtime() {\n    return this._data.mtime;\n  }\n  /**\n   * Get the file creation time\n   */\n  get crtime() {\n    return this._data.crtime;\n  }\n  /**\n   * Get the file size\n   */\n  get size() {\n    return this._data.size;\n  }\n  /**\n   * Get the file attribute\n   */\n  get attributes() {\n    return this._attributes;\n  }\n  /**\n   * Get the file permissions\n   */\n  get permissions() {\n    return this.owner === null && !this.isDavRessource ? N.READ : this._data.permissions !== void 0 ? this._data.permissions : N.NONE;\n  }\n  /**\n   * Get the file owner\n   */\n  get owner() {\n    return this.isDavRessource ? this._data.owner : null;\n  }\n  /**\n   * Is this a dav-related ressource ?\n   */\n  get isDavRessource() {\n    return J(this.source, this._knownDavService);\n  }\n  /**\n   * Get the dav root of this object\n   */\n  get root() {\n    return this._data.root ? this._data.root.replace(/^(.+)\\/$/, \"$1\") : this.isDavRessource && I(this.source).split(this._knownDavService).pop() || null;\n  }\n  /**\n   * Get the absolute path of this object relative to the root\n   */\n  get path() {\n    if (this.root) {\n      const t = this.source.indexOf(this.root);\n      return this.source.slice(t + this.root.length) || \"/\";\n    }\n    return (this.dirname + \"/\" + this.basename).replace(/\\/\\//g, \"/\");\n  }\n  /**\n   * Get the node id if defined.\n   * Will look for the fileid in attributes if undefined.\n   */\n  get fileid() {\n    return this._data?.id || this.attributes?.fileid;\n  }\n  /**\n   * Get the node status.\n   */\n  get status() {\n    return this._data?.status;\n  }\n  /**\n   * Set the node status.\n   */\n  set status(t) {\n    this._data.status = t;\n  }\n  /**\n   * Move the node to a new destination\n   *\n   * @param {string} destination the new source.\n   * e.g. https://cloud.domain.com/remote.php/dav/files/emma/Photos/picture.jpg\n   */\n  move(t) {\n    X({ ...this._data, source: t }, this._knownDavService), this._data.source = t, this.updateMtime();\n  }\n  /**\n   * Rename the node\n   * This aliases the move method for easier usage\n   *\n   * @param basename The new name of the node\n   */\n  rename(t) {\n    if (t.includes(\"/\"))\n      throw new Error(\"Invalid basename\");\n    this.move(I(this.source) + \"/\" + t);\n  }\n  /**\n   * Update the mtime if exists.\n   */\n  updateMtime() {\n    this._data.mtime && (this._data.mtime = /* @__PURE__ */ new Date());\n  }\n}\n/**\n * @copyright Copyright (c) 2022 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 */\nclass ye extends D {\n  get type() {\n    return R.File;\n  }\n}\n/**\n * @copyright Copyright (c) 2022 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 */\nclass _e extends D {\n  constructor(t) {\n    super({\n      ...t,\n      mime: \"httpd/unix-directory\"\n    });\n  }\n  get type() {\n    return R.Folder;\n  }\n  get extension() {\n    return null;\n  }\n  get mime() {\n    return \"httpd/unix-directory\";\n  }\n}\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 */\nconst ee = `/files/${A()?.uid}`, te = pe(\"dav\"), ur = function(e = te) {\n  const t = ge(e);\n  function r(n) {\n    t.setHeaders({\n      // Add this so the server knows it is an request from the browser\n      \"X-Requested-With\": \"XMLHttpRequest\",\n      // Inject user auth\n      requesttoken: n ?? \"\"\n    });\n  }\n  return ue(r), r(de()), we().patch(\"fetch\", (n, i) => {\n    const d = i.headers;\n    return d?.method && (i.method = d.method, delete d.method), fetch(n, i);\n  }), t;\n}, dr = async (e, t = \"/\", r = ee) => (await e.getDirectoryContents(`${r}${t}`, {\n  details: !0,\n  data: Ee(),\n  headers: {\n    // see davGetClient for patched webdav client\n    method: \"REPORT\"\n  },\n  includeSelf: !0\n})).data.filter((n) => n.filename !== t).map((n) => ve(n, r)), ve = function(e, t = ee, r = te) {\n  const s = e.props, n = be(s?.permissions), i = A()?.uid, d = {\n    id: s?.fileid || 0,\n    source: `${r}${e.filename}`,\n    mtime: new Date(Date.parse(e.lastmod)),\n    mime: e.mime,\n    size: s?.size || Number.parseInt(s.getcontentlength || \"0\"),\n    permissions: n,\n    owner: i,\n    root: t,\n    attributes: {\n      ...e,\n      ...s,\n      hasPreview: s?.[\"has-preview\"]\n    }\n  };\n  return delete d.attributes?.props, e.type === \"file\" ? new ye(d) : new _e(d);\n};\n/**\n * @copyright Copyright (c) 2022 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 */\nclass Te {\n  _views = [];\n  _currentView = null;\n  register(t) {\n    if (this._views.find((r) => r.id === t.id))\n      throw new Error(`View id ${t.id} is already registered`);\n    this._views.push(t);\n  }\n  remove(t) {\n    const r = this._views.findIndex((s) => s.id === t);\n    r !== -1 && this._views.splice(r, 1);\n  }\n  get views() {\n    return this._views;\n  }\n  setActive(t) {\n    this._currentView = t;\n  }\n  get active() {\n    return this._currentView;\n  }\n}\nconst ar = function() {\n  return typeof window._nc_navigation > \"u\" && (window._nc_navigation = new Te(), m.debug(\"Navigation service initialized\")), window._nc_navigation;\n};\n/**\n * @copyright Copyright (c) 2022 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 */\nclass Ie {\n  _column;\n  constructor(t) {\n    Ae(t), this._column = t;\n  }\n  get id() {\n    return this._column.id;\n  }\n  get title() {\n    return this._column.title;\n  }\n  get render() {\n    return this._column.render;\n  }\n  get sort() {\n    return this._column.sort;\n  }\n  get summary() {\n    return this._column.summary;\n  }\n}\nconst Ae = function(e) {\n  if (!e.id || typeof e.id != \"string\")\n    throw new Error(\"A column id is required\");\n  if (!e.title || typeof e.title != \"string\")\n    throw new Error(\"A column title is required\");\n  if (!e.render || typeof e.render != \"function\")\n    throw new Error(\"A render function is required\");\n  if (e.sort && typeof e.sort != \"function\")\n    throw new Error(\"Column sortFunction must be a function\");\n  if (e.summary && typeof e.summary != \"function\")\n    throw new Error(\"Column summary must be a function\");\n  return !0;\n};\nvar S = {}, O = {};\n(function(e) {\n  const t = \":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\", r = t + \"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\", s = \"[\" + t + \"][\" + r + \"]*\", n = new RegExp(\"^\" + s + \"$\"), i = function(u, o) {\n    const a = [];\n    let l = o.exec(u);\n    for (; l; ) {\n      const f = [];\n      f.startIndex = o.lastIndex - l[0].length;\n      const c = l.length;\n      for (let g = 0; g < c; g++)\n        f.push(l[g]);\n      a.push(f), l = o.exec(u);\n    }\n    return a;\n  }, d = function(u) {\n    const o = n.exec(u);\n    return !(o === null || typeof o > \"u\");\n  };\n  e.isExist = function(u) {\n    return typeof u < \"u\";\n  }, e.isEmptyObject = function(u) {\n    return Object.keys(u).length === 0;\n  }, e.merge = function(u, o, a) {\n    if (o) {\n      const l = Object.keys(o), f = l.length;\n      for (let c = 0; c < f; c++)\n        a === \"strict\" ? u[l[c]] = [o[l[c]]] : u[l[c]] = o[l[c]];\n    }\n  }, e.getValue = function(u) {\n    return e.isExist(u) ? u : \"\";\n  }, e.isName = d, e.getAllMatches = i, e.nameRegexp = s;\n})(O);\nconst M = O, Oe = {\n  allowBooleanAttributes: !1,\n  //A tag can have attributes without any value\n  unpairedTags: []\n};\nS.validate = function(e, t) {\n  t = Object.assign({}, Oe, t);\n  const r = [];\n  let s = !1, n = !1;\n  e[0] === \"\\uFEFF\" && (e = e.substr(1));\n  for (let i = 0; i < e.length; i++)\n    if (e[i] === \"<\" && e[i + 1] === \"?\") {\n      if (i += 2, i = G(e, i), i.err)\n        return i;\n    } else if (e[i] === \"<\") {\n      let d = i;\n      if (i++, e[i] === \"!\") {\n        i = z(e, i);\n        continue;\n      } else {\n        let u = !1;\n        e[i] === \"/\" && (u = !0, i++);\n        let o = \"\";\n        for (; i < e.length && e[i] !== \">\" && e[i] !== \" \" && e[i] !== \"\t\" && e[i] !== `\n` && e[i] !== \"\\r\"; i++)\n          o += e[i];\n        if (o = o.trim(), o[o.length - 1] === \"/\" && (o = o.substring(0, o.length - 1), i--), !Re(o)) {\n          let f;\n          return o.trim().length === 0 ? f = \"Invalid space after '<'.\" : f = \"Tag '\" + o + \"' is an invalid name.\", p(\"InvalidTag\", f, w(e, i));\n        }\n        const a = xe(e, i);\n        if (a === !1)\n          return p(\"InvalidAttr\", \"Attributes for '\" + o + \"' have open quote.\", w(e, i));\n        let l = a.value;\n        if (i = a.index, l[l.length - 1] === \"/\") {\n          const f = i - l.length;\n          l = l.substring(0, l.length - 1);\n          const c = H(l, t);\n          if (c === !0)\n            s = !0;\n          else\n            return p(c.err.code, c.err.msg, w(e, f + c.err.line));\n        } else if (u)\n          if (a.tagClosed) {\n            if (l.trim().length > 0)\n              return p(\"InvalidTag\", \"Closing tag '\" + o + \"' can't have attributes or invalid starting.\", w(e, d));\n            {\n              const f = r.pop();\n              if (o !== f.tagName) {\n                let c = w(e, f.tagStartPos);\n                return p(\n                  \"InvalidTag\",\n                  \"Expected closing tag '\" + f.tagName + \"' (opened in line \" + c.line + \", col \" + c.col + \") instead of closing tag '\" + o + \"'.\",\n                  w(e, d)\n                );\n              }\n              r.length == 0 && (n = !0);\n            }\n          } else\n            return p(\"InvalidTag\", \"Closing tag '\" + o + \"' doesn't have proper closing.\", w(e, i));\n        else {\n          const f = H(l, t);\n          if (f !== !0)\n            return p(f.err.code, f.err.msg, w(e, i - l.length + f.err.line));\n          if (n === !0)\n            return p(\"InvalidXml\", \"Multiple possible root nodes found.\", w(e, i));\n          t.unpairedTags.indexOf(o) !== -1 || r.push({ tagName: o, tagStartPos: d }), s = !0;\n        }\n        for (i++; i < e.length; i++)\n          if (e[i] === \"<\")\n            if (e[i + 1] === \"!\") {\n              i++, i = z(e, i);\n              continue;\n            } else if (e[i + 1] === \"?\") {\n              if (i = G(e, ++i), i.err)\n                return i;\n            } else\n              break;\n          else if (e[i] === \"&\") {\n            const f = Ve(e, i);\n            if (f == -1)\n              return p(\"InvalidChar\", \"char '&' is not expected.\", w(e, i));\n            i = f;\n          } else if (n === !0 && !U(e[i]))\n            return p(\"InvalidXml\", \"Extra text at the end\", w(e, i));\n        e[i] === \"<\" && i--;\n      }\n    } else {\n      if (U(e[i]))\n        continue;\n      return p(\"InvalidChar\", \"char '\" + e[i] + \"' is not expected.\", w(e, i));\n    }\n  if (s) {\n    if (r.length == 1)\n      return p(\"InvalidTag\", \"Unclosed tag '\" + r[0].tagName + \"'.\", w(e, r[0].tagStartPos));\n    if (r.length > 0)\n      return p(\"InvalidXml\", \"Invalid '\" + JSON.stringify(r.map((i) => i.tagName), null, 4).replace(/\\r?\\n/g, \"\") + \"' found.\", { line: 1, col: 1 });\n  } else\n    return p(\"InvalidXml\", \"Start tag expected.\", 1);\n  return !0;\n};\nfunction U(e) {\n  return e === \" \" || e === \"\t\" || e === `\n` || e === \"\\r\";\n}\nfunction G(e, t) {\n  const r = t;\n  for (; t < e.length; t++)\n    if (e[t] == \"?\" || e[t] == \" \") {\n      const s = e.substr(r, t - r);\n      if (t > 5 && s === \"xml\")\n        return p(\"InvalidXml\", \"XML declaration allowed only at the start of the document.\", w(e, t));\n      if (e[t] == \"?\" && e[t + 1] == \">\") {\n        t++;\n        break;\n      } else\n        continue;\n    }\n  return t;\n}\nfunction z(e, t) {\n  if (e.length > t + 5 && e[t + 1] === \"-\" && e[t + 2] === \"-\") {\n    for (t += 3; t < e.length; t++)\n      if (e[t] === \"-\" && e[t + 1] === \"-\" && e[t + 2] === \">\") {\n        t += 2;\n        break;\n      }\n  } else if (e.length > t + 8 && e[t + 1] === \"D\" && e[t + 2] === \"O\" && e[t + 3] === \"C\" && e[t + 4] === \"T\" && e[t + 5] === \"Y\" && e[t + 6] === \"P\" && e[t + 7] === \"E\") {\n    let r = 1;\n    for (t += 8; t < e.length; t++)\n      if (e[t] === \"<\")\n        r++;\n      else if (e[t] === \">\" && (r--, r === 0))\n        break;\n  } else if (e.length > t + 9 && e[t + 1] === \"[\" && e[t + 2] === \"C\" && e[t + 3] === \"D\" && e[t + 4] === \"A\" && e[t + 5] === \"T\" && e[t + 6] === \"A\" && e[t + 7] === \"[\") {\n    for (t += 8; t < e.length; t++)\n      if (e[t] === \"]\" && e[t + 1] === \"]\" && e[t + 2] === \">\") {\n        t += 2;\n        break;\n      }\n  }\n  return t;\n}\nconst Ce = '\"', Pe = \"'\";\nfunction xe(e, t) {\n  let r = \"\", s = \"\", n = !1;\n  for (; t < e.length; t++) {\n    if (e[t] === Ce || e[t] === Pe)\n      s === \"\" ? s = e[t] : s !== e[t] || (s = \"\");\n    else if (e[t] === \">\" && s === \"\") {\n      n = !0;\n      break;\n    }\n    r += e[t];\n  }\n  return s !== \"\" ? !1 : {\n    value: r,\n    index: t,\n    tagClosed: n\n  };\n}\nconst $e = new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\"])(([\\\\s\\\\S])*?)\\\\5)?`, \"g\");\nfunction H(e, t) {\n  const r = M.getAllMatches(e, $e), s = {};\n  for (let n = 0; n < r.length; n++) {\n    if (r[n][1].length === 0)\n      return p(\"InvalidAttr\", \"Attribute '\" + r[n][2] + \"' has no space in starting.\", v(r[n]));\n    if (r[n][3] !== void 0 && r[n][4] === void 0)\n      return p(\"InvalidAttr\", \"Attribute '\" + r[n][2] + \"' is without value.\", v(r[n]));\n    if (r[n][3] === void 0 && !t.allowBooleanAttributes)\n      return p(\"InvalidAttr\", \"boolean attribute '\" + r[n][2] + \"' is not allowed.\", v(r[n]));\n    const i = r[n][2];\n    if (!Le(i))\n      return p(\"InvalidAttr\", \"Attribute '\" + i + \"' is an invalid name.\", v(r[n]));\n    if (!s.hasOwnProperty(i))\n      s[i] = 1;\n    else\n      return p(\"InvalidAttr\", \"Attribute '\" + i + \"' is repeated.\", v(r[n]));\n  }\n  return !0;\n}\nfunction Fe(e, t) {\n  let r = /\\d/;\n  for (e[t] === \"x\" && (t++, r = /[\\da-fA-F]/); t < e.length; t++) {\n    if (e[t] === \";\")\n      return t;\n    if (!e[t].match(r))\n      break;\n  }\n  return -1;\n}\nfunction Ve(e, t) {\n  if (t++, e[t] === \";\")\n    return -1;\n  if (e[t] === \"#\")\n    return t++, Fe(e, t);\n  let r = 0;\n  for (; t < e.length; t++, r++)\n    if (!(e[t].match(/\\w/) && r < 20)) {\n      if (e[t] === \";\")\n        break;\n      return -1;\n    }\n  return t;\n}\nfunction p(e, t, r) {\n  return {\n    err: {\n      code: e,\n      msg: t,\n      line: r.line || r,\n      col: r.col\n    }\n  };\n}\nfunction Le(e) {\n  return M.isName(e);\n}\nfunction Re(e) {\n  return M.isName(e);\n}\nfunction w(e, t) {\n  const r = e.substring(0, t).split(/\\r?\\n/);\n  return {\n    line: r.length,\n    // column number is last line's length + 1, because column numbering starts at 1:\n    col: r[r.length - 1].length + 1\n  };\n}\nfunction v(e) {\n  return e.startIndex + e[1].length;\n}\nvar B = {};\nconst re = {\n  preserveOrder: !1,\n  attributeNamePrefix: \"@_\",\n  attributesGroupName: !1,\n  textNodeName: \"#text\",\n  ignoreAttributes: !0,\n  removeNSPrefix: !1,\n  // remove NS from tag name or attribute name if true\n  allowBooleanAttributes: !1,\n  //a tag can have attributes without any value\n  //ignoreRootElement : false,\n  parseTagValue: !0,\n  parseAttributeValue: !1,\n  trimValues: !0,\n  //Trim string values of tag and attributes\n  cdataPropName: !1,\n  numberParseOptions: {\n    hex: !0,\n    leadingZeros: !0,\n    eNotation: !0\n  },\n  tagValueProcessor: function(e, t) {\n    return t;\n  },\n  attributeValueProcessor: function(e, t) {\n    return t;\n  },\n  stopNodes: [],\n  //nested tags will not be parsed even for errors\n  alwaysCreateTextNode: !1,\n  isArray: () => !1,\n  commentPropName: !1,\n  unpairedTags: [],\n  processEntities: !0,\n  htmlEntities: !1,\n  ignoreDeclaration: !1,\n  ignorePiTags: !1,\n  transformTagName: !1,\n  transformAttributeName: !1,\n  updateTag: function(e, t, r) {\n    return e;\n  }\n  // skipEmptyListItem: false\n}, Se = function(e) {\n  return Object.assign({}, re, e);\n};\nB.buildOptions = Se;\nB.defaultOptions = re;\nclass Me {\n  constructor(t) {\n    this.tagname = t, this.child = [], this[\":@\"] = {};\n  }\n  add(t, r) {\n    t === \"__proto__\" && (t = \"#__proto__\"), this.child.push({ [t]: r });\n  }\n  addChild(t) {\n    t.tagname === \"__proto__\" && (t.tagname = \"#__proto__\"), t[\":@\"] && Object.keys(t[\":@\"]).length > 0 ? this.child.push({ [t.tagname]: t.child, \":@\": t[\":@\"] }) : this.child.push({ [t.tagname]: t.child });\n  }\n}\nvar Be = Me;\nconst ke = O;\nfunction qe(e, t) {\n  const r = {};\n  if (e[t + 3] === \"O\" && e[t + 4] === \"C\" && e[t + 5] === \"T\" && e[t + 6] === \"Y\" && e[t + 7] === \"P\" && e[t + 8] === \"E\") {\n    t = t + 9;\n    let s = 1, n = !1, i = !1, d = \"\";\n    for (; t < e.length; t++)\n      if (e[t] === \"<\" && !i) {\n        if (n && Ge(e, t))\n          t += 7, [entityName, val, t] = Xe(e, t + 1), val.indexOf(\"&\") === -1 && (r[We(entityName)] = {\n            regx: RegExp(`&${entityName};`, \"g\"),\n            val\n          });\n        else if (n && ze(e, t))\n          t += 8;\n        else if (n && He(e, t))\n          t += 8;\n        else if (n && Ke(e, t))\n          t += 9;\n        else if (Ue)\n          i = !0;\n        else\n          throw new Error(\"Invalid DOCTYPE\");\n        s++, d = \"\";\n      } else if (e[t] === \">\") {\n        if (i ? e[t - 1] === \"-\" && e[t - 2] === \"-\" && (i = !1, s--) : s--, s === 0)\n          break;\n      } else\n        e[t] === \"[\" ? n = !0 : d += e[t];\n    if (s !== 0)\n      throw new Error(\"Unclosed DOCTYPE\");\n  } else\n    throw new Error(\"Invalid Tag instead of DOCTYPE\");\n  return { entities: r, i: t };\n}\nfunction Xe(e, t) {\n  let r = \"\";\n  for (; t < e.length && e[t] !== \"'\" && e[t] !== '\"'; t++)\n    r += e[t];\n  if (r = r.trim(), r.indexOf(\" \") !== -1)\n    throw new Error(\"External entites are not supported\");\n  const s = e[t++];\n  let n = \"\";\n  for (; t < e.length && e[t] !== s; t++)\n    n += e[t];\n  return [r, n, t];\n}\nfunction Ue(e, t) {\n  return e[t + 1] === \"!\" && e[t + 2] === \"-\" && e[t + 3] === \"-\";\n}\nfunction Ge(e, t) {\n  return e[t + 1] === \"!\" && e[t + 2] === \"E\" && e[t + 3] === \"N\" && e[t + 4] === \"T\" && e[t + 5] === \"I\" && e[t + 6] === \"T\" && e[t + 7] === \"Y\";\n}\nfunction ze(e, t) {\n  return e[t + 1] === \"!\" && e[t + 2] === \"E\" && e[t + 3] === \"L\" && e[t + 4] === \"E\" && e[t + 5] === \"M\" && e[t + 6] === \"E\" && e[t + 7] === \"N\" && e[t + 8] === \"T\";\n}\nfunction He(e, t) {\n  return e[t + 1] === \"!\" && e[t + 2] === \"A\" && e[t + 3] === \"T\" && e[t + 4] === \"T\" && e[t + 5] === \"L\" && e[t + 6] === \"I\" && e[t + 7] === \"S\" && e[t + 8] === \"T\";\n}\nfunction Ke(e, t) {\n  return e[t + 1] === \"!\" && e[t + 2] === \"N\" && e[t + 3] === \"O\" && e[t + 4] === \"T\" && e[t + 5] === \"A\" && e[t + 6] === \"T\" && e[t + 7] === \"I\" && e[t + 8] === \"O\" && e[t + 9] === \"N\";\n}\nfunction We(e) {\n  if (ke.isName(e))\n    return e;\n  throw new Error(`Invalid entity name ${e}`);\n}\nvar Ze = qe;\nconst je = /^[-+]?0x[a-fA-F0-9]+$/, Ye = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n!Number.parseInt && window.parseInt && (Number.parseInt = window.parseInt);\n!Number.parseFloat && window.parseFloat && (Number.parseFloat = window.parseFloat);\nconst Je = {\n  hex: !0,\n  leadingZeros: !0,\n  decimalPoint: \".\",\n  eNotation: !0\n  //skipLike: /regex/\n};\nfunction Qe(e, t = {}) {\n  if (t = Object.assign({}, Je, t), !e || typeof e != \"string\")\n    return e;\n  let r = e.trim();\n  if (t.skipLike !== void 0 && t.skipLike.test(r))\n    return e;\n  if (t.hex && je.test(r))\n    return Number.parseInt(r, 16);\n  {\n    const s = Ye.exec(r);\n    if (s) {\n      const n = s[1], i = s[2];\n      let d = De(s[3]);\n      const u = s[4] || s[6];\n      if (!t.leadingZeros && i.length > 0 && n && r[2] !== \".\")\n        return e;\n      if (!t.leadingZeros && i.length > 0 && !n && r[1] !== \".\")\n        return e;\n      {\n        const o = Number(r), a = \"\" + o;\n        return a.search(/[eE]/) !== -1 || u ? t.eNotation ? o : e : r.indexOf(\".\") !== -1 ? a === \"0\" && d === \"\" || a === d || n && a === \"-\" + d ? o : e : i ? d === a || n + d === a ? o : e : r === a || r === n + a ? o : e;\n      }\n    } else\n      return e;\n  }\n}\nfunction De(e) {\n  return e && e.indexOf(\".\") !== -1 && (e = e.replace(/0+$/, \"\"), e === \".\" ? e = \"0\" : e[0] === \".\" ? e = \"0\" + e : e[e.length - 1] === \".\" && (e = e.substr(0, e.length - 1))), e;\n}\nvar et = Qe;\nconst k = O, T = Be, tt = Ze, rt = et;\n\"<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)\".replace(/NAME/g, k.nameRegexp);\nlet nt = class {\n  constructor(t) {\n    this.options = t, this.currentNode = null, this.tagsNodeStack = [], this.docTypeEntities = {}, this.lastEntities = {\n      apos: { regex: /&(apos|#39|#x27);/g, val: \"'\" },\n      gt: { regex: /&(gt|#62|#x3E);/g, val: \">\" },\n      lt: { regex: /&(lt|#60|#x3C);/g, val: \"<\" },\n      quot: { regex: /&(quot|#34|#x22);/g, val: '\"' }\n    }, this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" }, this.htmlEntities = {\n      space: { regex: /&(nbsp|#160);/g, val: \" \" },\n      // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n      // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n      // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n      // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n      // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n      cent: { regex: /&(cent|#162);/g, val: \"¢\" },\n      pound: { regex: /&(pound|#163);/g, val: \"£\" },\n      yen: { regex: /&(yen|#165);/g, val: \"¥\" },\n      euro: { regex: /&(euro|#8364);/g, val: \"€\" },\n      copyright: { regex: /&(copy|#169);/g, val: \"©\" },\n      reg: { regex: /&(reg|#174);/g, val: \"®\" },\n      inr: { regex: /&(inr|#8377);/g, val: \"₹\" }\n    }, this.addExternalEntities = it, this.parseXml = at, this.parseTextData = st, this.resolveNameSpace = ot, this.buildAttributesMap = dt, this.isItStopNode = ht, this.replaceEntitiesValue = ft, this.readStopNodeData = gt, this.saveTextToParentTag = ct, this.addChild = lt;\n  }\n};\nfunction it(e) {\n  const t = Object.keys(e);\n  for (let r = 0; r < t.length; r++) {\n    const s = t[r];\n    this.lastEntities[s] = {\n      regex: new RegExp(\"&\" + s + \";\", \"g\"),\n      val: e[s]\n    };\n  }\n}\nfunction st(e, t, r, s, n, i, d) {\n  if (e !== void 0 && (this.options.trimValues && !s && (e = e.trim()), e.length > 0)) {\n    d || (e = this.replaceEntitiesValue(e));\n    const u = this.options.tagValueProcessor(t, e, r, n, i);\n    return u == null ? e : typeof u != typeof e || u !== e ? u : this.options.trimValues ? $(e, this.options.parseTagValue, this.options.numberParseOptions) : e.trim() === e ? $(e, this.options.parseTagValue, this.options.numberParseOptions) : e;\n  }\n}\nfunction ot(e) {\n  if (this.options.removeNSPrefix) {\n    const t = e.split(\":\"), r = e.charAt(0) === \"/\" ? \"/\" : \"\";\n    if (t[0] === \"xmlns\")\n      return \"\";\n    t.length === 2 && (e = r + t[1]);\n  }\n  return e;\n}\nconst ut = new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*(['\"])([\\\\s\\\\S]*?)\\\\3)?`, \"gm\");\nfunction dt(e, t, r) {\n  if (!this.options.ignoreAttributes && typeof e == \"string\") {\n    const s = k.getAllMatches(e, ut), n = s.length, i = {};\n    for (let d = 0; d < n; d++) {\n      const u = this.resolveNameSpace(s[d][1]);\n      let o = s[d][4], a = this.options.attributeNamePrefix + u;\n      if (u.length)\n        if (this.options.transformAttributeName && (a = this.options.transformAttributeName(a)), a === \"__proto__\" && (a = \"#__proto__\"), o !== void 0) {\n          this.options.trimValues && (o = o.trim()), o = this.replaceEntitiesValue(o);\n          const l = this.options.attributeValueProcessor(u, o, t);\n          l == null ? i[a] = o : typeof l != typeof o || l !== o ? i[a] = l : i[a] = $(\n            o,\n            this.options.parseAttributeValue,\n            this.options.numberParseOptions\n          );\n        } else\n          this.options.allowBooleanAttributes && (i[a] = !0);\n    }\n    if (!Object.keys(i).length)\n      return;\n    if (this.options.attributesGroupName) {\n      const d = {};\n      return d[this.options.attributesGroupName] = i, d;\n    }\n    return i;\n  }\n}\nconst at = function(e) {\n  e = e.replace(/\\r\\n?/g, `\n`);\n  const t = new T(\"!xml\");\n  let r = t, s = \"\", n = \"\";\n  for (let i = 0; i < e.length; i++)\n    if (e[i] === \"<\")\n      if (e[i + 1] === \"/\") {\n        const u = y(e, \">\", i, \"Closing Tag is not closed.\");\n        let o = e.substring(i + 2, u).trim();\n        if (this.options.removeNSPrefix) {\n          const f = o.indexOf(\":\");\n          f !== -1 && (o = o.substr(f + 1));\n        }\n        this.options.transformTagName && (o = this.options.transformTagName(o)), r && (s = this.saveTextToParentTag(s, r, n));\n        const a = n.substring(n.lastIndexOf(\".\") + 1);\n        if (o && this.options.unpairedTags.indexOf(o) !== -1)\n          throw new Error(`Unpaired tag can not be used as closing tag: </${o}>`);\n        let l = 0;\n        a && this.options.unpairedTags.indexOf(a) !== -1 ? (l = n.lastIndexOf(\".\", n.lastIndexOf(\".\") - 1), this.tagsNodeStack.pop()) : l = n.lastIndexOf(\".\"), n = n.substring(0, l), r = this.tagsNodeStack.pop(), s = \"\", i = u;\n      } else if (e[i + 1] === \"?\") {\n        let u = x(e, i, !1, \"?>\");\n        if (!u)\n          throw new Error(\"Pi Tag is not closed.\");\n        if (s = this.saveTextToParentTag(s, r, n), !(this.options.ignoreDeclaration && u.tagName === \"?xml\" || this.options.ignorePiTags)) {\n          const o = new T(u.tagName);\n          o.add(this.options.textNodeName, \"\"), u.tagName !== u.tagExp && u.attrExpPresent && (o[\":@\"] = this.buildAttributesMap(u.tagExp, n, u.tagName)), this.addChild(r, o, n);\n        }\n        i = u.closeIndex + 1;\n      } else if (e.substr(i + 1, 3) === \"!--\") {\n        const u = y(e, \"-->\", i + 4, \"Comment is not closed.\");\n        if (this.options.commentPropName) {\n          const o = e.substring(i + 4, u - 2);\n          s = this.saveTextToParentTag(s, r, n), r.add(this.options.commentPropName, [{ [this.options.textNodeName]: o }]);\n        }\n        i = u;\n      } else if (e.substr(i + 1, 2) === \"!D\") {\n        const u = tt(e, i);\n        this.docTypeEntities = u.entities, i = u.i;\n      } else if (e.substr(i + 1, 2) === \"![\") {\n        const u = y(e, \"]]>\", i, \"CDATA is not closed.\") - 2, o = e.substring(i + 9, u);\n        if (s = this.saveTextToParentTag(s, r, n), this.options.cdataPropName)\n          r.add(this.options.cdataPropName, [{ [this.options.textNodeName]: o }]);\n        else {\n          let a = this.parseTextData(o, r.tagname, n, !0, !1, !0);\n          a == null && (a = \"\"), r.add(this.options.textNodeName, a);\n        }\n        i = u + 2;\n      } else {\n        let u = x(e, i, this.options.removeNSPrefix), o = u.tagName;\n        const a = u.rawTagName;\n        let l = u.tagExp, f = u.attrExpPresent, c = u.closeIndex;\n        this.options.transformTagName && (o = this.options.transformTagName(o)), r && s && r.tagname !== \"!xml\" && (s = this.saveTextToParentTag(s, r, n, !1));\n        const g = r;\n        if (g && this.options.unpairedTags.indexOf(g.tagname) !== -1 && (r = this.tagsNodeStack.pop(), n = n.substring(0, n.lastIndexOf(\".\"))), o !== t.tagname && (n += n ? \".\" + o : o), this.isItStopNode(this.options.stopNodes, n, o)) {\n          let h = \"\";\n          if (l.length > 0 && l.lastIndexOf(\"/\") === l.length - 1)\n            i = u.closeIndex;\n          else if (this.options.unpairedTags.indexOf(o) !== -1)\n            i = u.closeIndex;\n          else {\n            const E = this.readStopNodeData(e, a, c + 1);\n            if (!E)\n              throw new Error(`Unexpected end of ${a}`);\n            i = E.i, h = E.tagContent;\n          }\n          const _ = new T(o);\n          o !== l && f && (_[\":@\"] = this.buildAttributesMap(l, n, o)), h && (h = this.parseTextData(h, o, n, !0, f, !0, !0)), n = n.substr(0, n.lastIndexOf(\".\")), _.add(this.options.textNodeName, h), this.addChild(r, _, n);\n        } else {\n          if (l.length > 0 && l.lastIndexOf(\"/\") === l.length - 1) {\n            o[o.length - 1] === \"/\" ? (o = o.substr(0, o.length - 1), n = n.substr(0, n.length - 1), l = o) : l = l.substr(0, l.length - 1), this.options.transformTagName && (o = this.options.transformTagName(o));\n            const h = new T(o);\n            o !== l && f && (h[\":@\"] = this.buildAttributesMap(l, n, o)), this.addChild(r, h, n), n = n.substr(0, n.lastIndexOf(\".\"));\n          } else {\n            const h = new T(o);\n            this.tagsNodeStack.push(r), o !== l && f && (h[\":@\"] = this.buildAttributesMap(l, n, o)), this.addChild(r, h, n), r = h;\n          }\n          s = \"\", i = c;\n        }\n      }\n    else\n      s += e[i];\n  return t.child;\n};\nfunction lt(e, t, r) {\n  const s = this.options.updateTag(t.tagname, r, t[\":@\"]);\n  s === !1 || (typeof s == \"string\" && (t.tagname = s), e.addChild(t));\n}\nconst ft = function(e) {\n  if (this.options.processEntities) {\n    for (let t in this.docTypeEntities) {\n      const r = this.docTypeEntities[t];\n      e = e.replace(r.regx, r.val);\n    }\n    for (let t in this.lastEntities) {\n      const r = this.lastEntities[t];\n      e = e.replace(r.regex, r.val);\n    }\n    if (this.options.htmlEntities)\n      for (let t in this.htmlEntities) {\n        const r = this.htmlEntities[t];\n        e = e.replace(r.regex, r.val);\n      }\n    e = e.replace(this.ampEntity.regex, this.ampEntity.val);\n  }\n  return e;\n};\nfunction ct(e, t, r, s) {\n  return e && (s === void 0 && (s = Object.keys(t.child).length === 0), e = this.parseTextData(\n    e,\n    t.tagname,\n    r,\n    !1,\n    t[\":@\"] ? Object.keys(t[\":@\"]).length !== 0 : !1,\n    s\n  ), e !== void 0 && e !== \"\" && t.add(this.options.textNodeName, e), e = \"\"), e;\n}\nfunction ht(e, t, r) {\n  const s = \"*.\" + r;\n  for (const n in e) {\n    const i = e[n];\n    if (s === i || t === i)\n      return !0;\n  }\n  return !1;\n}\nfunction pt(e, t, r = \">\") {\n  let s, n = \"\";\n  for (let i = t; i < e.length; i++) {\n    let d = e[i];\n    if (s)\n      d === s && (s = \"\");\n    else if (d === '\"' || d === \"'\")\n      s = d;\n    else if (d === r[0])\n      if (r[1]) {\n        if (e[i + 1] === r[1])\n          return {\n            data: n,\n            index: i\n          };\n      } else\n        return {\n          data: n,\n          index: i\n        };\n    else\n      d === \"\t\" && (d = \" \");\n    n += d;\n  }\n}\nfunction y(e, t, r, s) {\n  const n = e.indexOf(t, r);\n  if (n === -1)\n    throw new Error(s);\n  return n + t.length - 1;\n}\nfunction x(e, t, r, s = \">\") {\n  const n = pt(e, t + 1, s);\n  if (!n)\n    return;\n  let i = n.data;\n  const d = n.index, u = i.search(/\\s/);\n  let o = i, a = !0;\n  u !== -1 && (o = i.substr(0, u).replace(/\\s\\s*$/, \"\"), i = i.substr(u + 1));\n  const l = o;\n  if (r) {\n    const f = o.indexOf(\":\");\n    f !== -1 && (o = o.substr(f + 1), a = o !== n.data.substr(f + 1));\n  }\n  return {\n    tagName: o,\n    tagExp: i,\n    closeIndex: d,\n    attrExpPresent: a,\n    rawTagName: l\n  };\n}\nfunction gt(e, t, r) {\n  const s = r;\n  let n = 1;\n  for (; r < e.length; r++)\n    if (e[r] === \"<\")\n      if (e[r + 1] === \"/\") {\n        const i = y(e, \">\", r, `${t} is not closed`);\n        if (e.substring(r + 2, i).trim() === t && (n--, n === 0))\n          return {\n            tagContent: e.substring(s, r),\n            i\n          };\n        r = i;\n      } else if (e[r + 1] === \"?\")\n        r = y(e, \"?>\", r + 1, \"StopNode is not closed.\");\n      else if (e.substr(r + 1, 3) === \"!--\")\n        r = y(e, \"-->\", r + 3, \"StopNode is not closed.\");\n      else if (e.substr(r + 1, 2) === \"![\")\n        r = y(e, \"]]>\", r, \"StopNode is not closed.\") - 2;\n      else {\n        const i = x(e, r, \">\");\n        i && ((i && i.tagName) === t && i.tagExp[i.tagExp.length - 1] !== \"/\" && n++, r = i.closeIndex);\n      }\n}\nfunction $(e, t, r) {\n  if (t && typeof e == \"string\") {\n    const s = e.trim();\n    return s === \"true\" ? !0 : s === \"false\" ? !1 : rt(e, r);\n  } else\n    return k.isExist(e) ? e : \"\";\n}\nvar wt = nt, ne = {};\nfunction mt(e, t) {\n  return ie(e, t);\n}\nfunction ie(e, t, r) {\n  let s;\n  const n = {};\n  for (let i = 0; i < e.length; i++) {\n    const d = e[i], u = Nt(d);\n    let o = \"\";\n    if (r === void 0 ? o = u : o = r + \".\" + u, u === t.textNodeName)\n      s === void 0 ? s = d[u] : s += \"\" + d[u];\n    else {\n      if (u === void 0)\n        continue;\n      if (d[u]) {\n        let a = ie(d[u], t, o);\n        const l = bt(a, t);\n        d[\":@\"] ? Et(a, d[\":@\"], o, t) : Object.keys(a).length === 1 && a[t.textNodeName] !== void 0 && !t.alwaysCreateTextNode ? a = a[t.textNodeName] : Object.keys(a).length === 0 && (t.alwaysCreateTextNode ? a[t.textNodeName] = \"\" : a = \"\"), n[u] !== void 0 && n.hasOwnProperty(u) ? (Array.isArray(n[u]) || (n[u] = [n[u]]), n[u].push(a)) : t.isArray(u, o, l) ? n[u] = [a] : n[u] = a;\n      }\n    }\n  }\n  return typeof s == \"string\" ? s.length > 0 && (n[t.textNodeName] = s) : s !== void 0 && (n[t.textNodeName] = s), n;\n}\nfunction Nt(e) {\n  const t = Object.keys(e);\n  for (let r = 0; r < t.length; r++) {\n    const s = t[r];\n    if (s !== \":@\")\n      return s;\n  }\n}\nfunction Et(e, t, r, s) {\n  if (t) {\n    const n = Object.keys(t), i = n.length;\n    for (let d = 0; d < i; d++) {\n      const u = n[d];\n      s.isArray(u, r + \".\" + u, !0, !0) ? e[u] = [t[u]] : e[u] = t[u];\n    }\n  }\n}\nfunction bt(e, t) {\n  const { textNodeName: r } = t, s = Object.keys(e).length;\n  return !!(s === 0 || s === 1 && (e[r] || typeof e[r] == \"boolean\" || e[r] === 0));\n}\nne.prettify = mt;\nconst { buildOptions: yt } = B, _t = wt, { prettify: vt } = ne, Tt = S;\nlet It = class {\n  constructor(t) {\n    this.externalEntities = {}, this.options = yt(t);\n  }\n  /**\n   * Parse XML dats to JS object \n   * @param {string|Buffer} xmlData \n   * @param {boolean|Object} validationOption \n   */\n  parse(t, r) {\n    if (typeof t != \"string\")\n      if (t.toString)\n        t = t.toString();\n      else\n        throw new Error(\"XML data is accepted in String or Bytes[] form.\");\n    if (r) {\n      r === !0 && (r = {});\n      const i = Tt.validate(t, r);\n      if (i !== !0)\n        throw Error(`${i.err.msg}:${i.err.line}:${i.err.col}`);\n    }\n    const s = new _t(this.options);\n    s.addExternalEntities(this.externalEntities);\n    const n = s.parseXml(t);\n    return this.options.preserveOrder || n === void 0 ? n : vt(n, this.options);\n  }\n  /**\n   * Add Entity which is not by default supported by this library\n   * @param {string} key \n   * @param {string} value \n   */\n  addEntity(t, r) {\n    if (r.indexOf(\"&\") !== -1)\n      throw new Error(\"Entity value can't have '&'\");\n    if (t.indexOf(\"&\") !== -1 || t.indexOf(\";\") !== -1)\n      throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'\");\n    if (r === \"&\")\n      throw new Error(\"An entity with value '&' is not permitted\");\n    this.externalEntities[t] = r;\n  }\n};\nvar At = It;\nconst Ot = `\n`;\nfunction Ct(e, t) {\n  let r = \"\";\n  return t.format && t.indentBy.length > 0 && (r = Ot), se(e, t, \"\", r);\n}\nfunction se(e, t, r, s) {\n  let n = \"\", i = !1;\n  for (let d = 0; d < e.length; d++) {\n    const u = e[d], o = Pt(u);\n    if (o === void 0)\n      continue;\n    let a = \"\";\n    if (r.length === 0 ? a = o : a = `${r}.${o}`, o === t.textNodeName) {\n      let h = u[o];\n      xt(a, t) || (h = t.tagValueProcessor(o, h), h = oe(h, t)), i && (n += s), n += h, i = !1;\n      continue;\n    } else if (o === t.cdataPropName) {\n      i && (n += s), n += `<![CDATA[${u[o][0][t.textNodeName]}]]>`, i = !1;\n      continue;\n    } else if (o === t.commentPropName) {\n      n += s + `<!--${u[o][0][t.textNodeName]}-->`, i = !0;\n      continue;\n    } else if (o[0] === \"?\") {\n      const h = K(u[\":@\"], t), _ = o === \"?xml\" ? \"\" : s;\n      let E = u[o][0][t.textNodeName];\n      E = E.length !== 0 ? \" \" + E : \"\", n += _ + `<${o}${E}${h}?>`, i = !0;\n      continue;\n    }\n    let l = s;\n    l !== \"\" && (l += t.indentBy);\n    const f = K(u[\":@\"], t), c = s + `<${o}${f}`, g = se(u[o], t, a, l);\n    t.unpairedTags.indexOf(o) !== -1 ? t.suppressUnpairedNode ? n += c + \">\" : n += c + \"/>\" : (!g || g.length === 0) && t.suppressEmptyNode ? n += c + \"/>\" : g && g.endsWith(\">\") ? n += c + `>${g}${s}</${o}>` : (n += c + \">\", g && s !== \"\" && (g.includes(\"/>\") || g.includes(\"</\")) ? n += s + t.indentBy + g + s : n += g, n += `</${o}>`), i = !0;\n  }\n  return n;\n}\nfunction Pt(e) {\n  const t = Object.keys(e);\n  for (let r = 0; r < t.length; r++) {\n    const s = t[r];\n    if (e.hasOwnProperty(s) && s !== \":@\")\n      return s;\n  }\n}\nfunction K(e, t) {\n  let r = \"\";\n  if (e && !t.ignoreAttributes)\n    for (let s in e) {\n      if (!e.hasOwnProperty(s))\n        continue;\n      let n = t.attributeValueProcessor(s, e[s]);\n      n = oe(n, t), n === !0 && t.suppressBooleanAttributes ? r += ` ${s.substr(t.attributeNamePrefix.length)}` : r += ` ${s.substr(t.attributeNamePrefix.length)}=\"${n}\"`;\n    }\n  return r;\n}\nfunction xt(e, t) {\n  e = e.substr(0, e.length - t.textNodeName.length - 1);\n  let r = e.substr(e.lastIndexOf(\".\") + 1);\n  for (let s in t.stopNodes)\n    if (t.stopNodes[s] === e || t.stopNodes[s] === \"*.\" + r)\n      return !0;\n  return !1;\n}\nfunction oe(e, t) {\n  if (e && e.length > 0 && t.processEntities)\n    for (let r = 0; r < t.entities.length; r++) {\n      const s = t.entities[r];\n      e = e.replace(s.regex, s.val);\n    }\n  return e;\n}\nvar $t = Ct;\nconst Ft = $t, Vt = {\n  attributeNamePrefix: \"@_\",\n  attributesGroupName: !1,\n  textNodeName: \"#text\",\n  ignoreAttributes: !0,\n  cdataPropName: !1,\n  format: !1,\n  indentBy: \"  \",\n  suppressEmptyNode: !1,\n  suppressUnpairedNode: !0,\n  suppressBooleanAttributes: !0,\n  tagValueProcessor: function(e, t) {\n    return t;\n  },\n  attributeValueProcessor: function(e, t) {\n    return t;\n  },\n  preserveOrder: !1,\n  commentPropName: !1,\n  unpairedTags: [],\n  entities: [\n    { regex: new RegExp(\"&\", \"g\"), val: \"&amp;\" },\n    //it must be on top\n    { regex: new RegExp(\">\", \"g\"), val: \"&gt;\" },\n    { regex: new RegExp(\"<\", \"g\"), val: \"&lt;\" },\n    { regex: new RegExp(\"'\", \"g\"), val: \"&apos;\" },\n    { regex: new RegExp('\"', \"g\"), val: \"&quot;\" }\n  ],\n  processEntities: !0,\n  stopNodes: [],\n  // transformTagName: false,\n  // transformAttributeName: false,\n  oneListGroup: !1\n};\nfunction b(e) {\n  this.options = Object.assign({}, Vt, e), this.options.ignoreAttributes || this.options.attributesGroupName ? this.isAttribute = function() {\n    return !1;\n  } : (this.attrPrefixLen = this.options.attributeNamePrefix.length, this.isAttribute = St), this.processTextOrObjNode = Lt, this.options.format ? (this.indentate = Rt, this.tagEndChar = `>\n`, this.newLine = `\n`) : (this.indentate = function() {\n    return \"\";\n  }, this.tagEndChar = \">\", this.newLine = \"\");\n}\nb.prototype.build = function(e) {\n  return this.options.preserveOrder ? Ft(e, this.options) : (Array.isArray(e) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1 && (e = {\n    [this.options.arrayNodeName]: e\n  }), this.j2x(e, 0).val);\n};\nb.prototype.j2x = function(e, t) {\n  let r = \"\", s = \"\";\n  for (let n in e)\n    if (Object.prototype.hasOwnProperty.call(e, n))\n      if (typeof e[n] > \"u\")\n        this.isAttribute(n) && (s += \"\");\n      else if (e[n] === null)\n        this.isAttribute(n) ? s += \"\" : n[0] === \"?\" ? s += this.indentate(t) + \"<\" + n + \"?\" + this.tagEndChar : s += this.indentate(t) + \"<\" + n + \"/\" + this.tagEndChar;\n      else if (e[n] instanceof Date)\n        s += this.buildTextValNode(e[n], n, \"\", t);\n      else if (typeof e[n] != \"object\") {\n        const i = this.isAttribute(n);\n        if (i)\n          r += this.buildAttrPairStr(i, \"\" + e[n]);\n        else if (n === this.options.textNodeName) {\n          let d = this.options.tagValueProcessor(n, \"\" + e[n]);\n          s += this.replaceEntitiesValue(d);\n        } else\n          s += this.buildTextValNode(e[n], n, \"\", t);\n      } else if (Array.isArray(e[n])) {\n        const i = e[n].length;\n        let d = \"\";\n        for (let u = 0; u < i; u++) {\n          const o = e[n][u];\n          typeof o > \"u\" || (o === null ? n[0] === \"?\" ? s += this.indentate(t) + \"<\" + n + \"?\" + this.tagEndChar : s += this.indentate(t) + \"<\" + n + \"/\" + this.tagEndChar : typeof o == \"object\" ? this.options.oneListGroup ? d += this.j2x(o, t + 1).val : d += this.processTextOrObjNode(o, n, t) : d += this.buildTextValNode(o, n, \"\", t));\n        }\n        this.options.oneListGroup && (d = this.buildObjectNode(d, n, \"\", t)), s += d;\n      } else if (this.options.attributesGroupName && n === this.options.attributesGroupName) {\n        const i = Object.keys(e[n]), d = i.length;\n        for (let u = 0; u < d; u++)\n          r += this.buildAttrPairStr(i[u], \"\" + e[n][i[u]]);\n      } else\n        s += this.processTextOrObjNode(e[n], n, t);\n  return { attrStr: r, val: s };\n};\nb.prototype.buildAttrPairStr = function(e, t) {\n  return t = this.options.attributeValueProcessor(e, \"\" + t), t = this.replaceEntitiesValue(t), this.options.suppressBooleanAttributes && t === \"true\" ? \" \" + e : \" \" + e + '=\"' + t + '\"';\n};\nfunction Lt(e, t, r) {\n  const s = this.j2x(e, r + 1);\n  return e[this.options.textNodeName] !== void 0 && Object.keys(e).length === 1 ? this.buildTextValNode(e[this.options.textNodeName], t, s.attrStr, r) : this.buildObjectNode(s.val, t, s.attrStr, r);\n}\nb.prototype.buildObjectNode = function(e, t, r, s) {\n  if (e === \"\")\n    return t[0] === \"?\" ? this.indentate(s) + \"<\" + t + r + \"?\" + this.tagEndChar : this.indentate(s) + \"<\" + t + r + this.closeTag(t) + this.tagEndChar;\n  {\n    let n = \"</\" + t + this.tagEndChar, i = \"\";\n    return t[0] === \"?\" && (i = \"?\", n = \"\"), (r || r === \"\") && e.indexOf(\"<\") === -1 ? this.indentate(s) + \"<\" + t + r + i + \">\" + e + n : this.options.commentPropName !== !1 && t === this.options.commentPropName && i.length === 0 ? this.indentate(s) + `<!--${e}-->` + this.newLine : this.indentate(s) + \"<\" + t + r + i + this.tagEndChar + e + this.indentate(s) + n;\n  }\n};\nb.prototype.closeTag = function(e) {\n  let t = \"\";\n  return this.options.unpairedTags.indexOf(e) !== -1 ? this.options.suppressUnpairedNode || (t = \"/\") : this.options.suppressEmptyNode ? t = \"/\" : t = `></${e}`, t;\n};\nb.prototype.buildTextValNode = function(e, t, r, s) {\n  if (this.options.cdataPropName !== !1 && t === this.options.cdataPropName)\n    return this.indentate(s) + `<![CDATA[${e}]]>` + this.newLine;\n  if (this.options.commentPropName !== !1 && t === this.options.commentPropName)\n    return this.indentate(s) + `<!--${e}-->` + this.newLine;\n  if (t[0] === \"?\")\n    return this.indentate(s) + \"<\" + t + r + \"?\" + this.tagEndChar;\n  {\n    let n = this.options.tagValueProcessor(t, e);\n    return n = this.replaceEntitiesValue(n), n === \"\" ? this.indentate(s) + \"<\" + t + r + this.closeTag(t) + this.tagEndChar : this.indentate(s) + \"<\" + t + r + \">\" + n + \"</\" + t + this.tagEndChar;\n  }\n};\nb.prototype.replaceEntitiesValue = function(e) {\n  if (e && e.length > 0 && this.options.processEntities)\n    for (let t = 0; t < this.options.entities.length; t++) {\n      const r = this.options.entities[t];\n      e = e.replace(r.regex, r.val);\n    }\n  return e;\n};\nfunction Rt(e) {\n  return this.options.indentBy.repeat(e);\n}\nfunction St(e) {\n  return e.startsWith(this.options.attributeNamePrefix) && e !== this.options.textNodeName ? e.substr(this.attrPrefixLen) : !1;\n}\nvar Mt = b;\nconst Bt = S, kt = At, qt = Mt;\nvar W = {\n  XMLParser: kt,\n  XMLValidator: Bt,\n  XMLBuilder: qt\n};\nfunction Xt(e) {\n  if (typeof e != \"string\")\n    throw new TypeError(`Expected a \\`string\\`, got \\`${typeof e}\\``);\n  if (e = e.trim(), e.length === 0 || W.XMLValidator.validate(e) !== !0)\n    return !1;\n  let t;\n  const r = new W.XMLParser();\n  try {\n    t = r.parse(e);\n  } catch {\n    return !1;\n  }\n  return !(!t || !(\"svg\" in t));\n}\n/**\n * @copyright Copyright (c) 2022 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 */\nclass cr {\n  _view;\n  constructor(t) {\n    Ut(t), this._view = t;\n  }\n  get id() {\n    return this._view.id;\n  }\n  get name() {\n    return this._view.name;\n  }\n  get caption() {\n    return this._view.caption;\n  }\n  get emptyTitle() {\n    return this._view.emptyTitle;\n  }\n  get emptyCaption() {\n    return this._view.emptyCaption;\n  }\n  get getContents() {\n    return this._view.getContents;\n  }\n  get icon() {\n    return this._view.icon;\n  }\n  set icon(t) {\n    this._view.icon = t;\n  }\n  get order() {\n    return this._view.order;\n  }\n  set order(t) {\n    this._view.order = t;\n  }\n  get params() {\n    return this._view.params;\n  }\n  set params(t) {\n    this._view.params = t;\n  }\n  get columns() {\n    return this._view.columns;\n  }\n  get emptyView() {\n    return this._view.emptyView;\n  }\n  get parent() {\n    return this._view.parent;\n  }\n  get sticky() {\n    return this._view.sticky;\n  }\n  get expanded() {\n    return this._view.expanded;\n  }\n  set expanded(t) {\n    this._view.expanded = t;\n  }\n  get defaultSortKey() {\n    return this._view.defaultSortKey;\n  }\n}\nconst Ut = function(e) {\n  if (!e.id || typeof e.id != \"string\")\n    throw new Error(\"View id is required and must be a string\");\n  if (!e.name || typeof e.name != \"string\")\n    throw new Error(\"View name is required and must be a string\");\n  if (e.columns && e.columns.length > 0 && (!e.caption || typeof e.caption != \"string\"))\n    throw new Error(\"View caption is required for top-level views and must be a string\");\n  if (!e.getContents || typeof e.getContents != \"function\")\n    throw new Error(\"View getContents is required and must be a function\");\n  if (!e.icon || typeof e.icon != \"string\" || !Xt(e.icon))\n    throw new Error(\"View icon is required and must be a valid svg string\");\n  if (!(\"order\" in e) || typeof e.order != \"number\")\n    throw new Error(\"View order is required and must be a number\");\n  if (e.columns && e.columns.forEach((t) => {\n    if (!(t instanceof Ie))\n      throw new Error(\"View columns must be an array of Column. Invalid column found\");\n  }), e.emptyView && typeof e.emptyView != \"function\")\n    throw new Error(\"View emptyView must be a function\");\n  if (e.parent && typeof e.parent != \"string\")\n    throw new Error(\"View parent must be a string\");\n  if (\"sticky\" in e && typeof e.sticky != \"boolean\")\n    throw new Error(\"View sticky must be a boolean\");\n  if (\"expanded\" in e && typeof e.expanded != \"boolean\")\n    throw new Error(\"View expanded must be a boolean\");\n  if (e.defaultSortKey && typeof e.defaultSortKey != \"string\")\n    throw new Error(\"View defaultSortKey must be a string\");\n  return !0;\n};\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\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 */\nconst hr = function(e) {\n  return F().registerEntry(e);\n}, pr = function(e) {\n  return F().unregisterEntry(e);\n}, gr = function(e) {\n  return F().getEntries(e).sort((r, s) => r.order !== void 0 && s.order !== void 0 && r.order !== s.order ? r.order - s.order : r.displayName.localeCompare(s.displayName, void 0, { numeric: !0, sensitivity: \"base\" }));\n};\nexport {\n  Ie as Column,\n  Z as DefaultType,\n  ye as File,\n  Qt as FileAction,\n  R as FileType,\n  _e as Folder,\n  tr as Header,\n  Te as Navigation,\n  D as Node,\n  Q as NodeStatus,\n  N as Permission,\n  cr as View,\n  hr as addNewFileMenuEntry,\n  ur as davGetClient,\n  sr as davGetDefaultPropfind,\n  Ee as davGetFavoritesReport,\n  or as davGetRecentSearch,\n  be as davParsePermissions,\n  te as davRemoteURL,\n  ve as davResultToNode,\n  ee as davRootPath,\n  Y as defaultDavNamespaces,\n  j as defaultDavProperties,\n  Yt as formatFileSize,\n  L as getDavNameSpaces,\n  V as getDavProperties,\n  dr as getFavoriteNodes,\n  er as getFileActions,\n  nr as getFileListHeaders,\n  ar as getNavigation,\n  gr as getNewFileMenuEntries,\n  Jt as parseFileSize,\n  ir as registerDavProperty,\n  Dt as registerFileAction,\n  rr as registerFileListHeaders,\n  pr as removeNewFileMenuEntry\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"2048\":\"78a82614529a3cefcde7\",\"4180\":\"fe82f3a2dac70d6b82bc\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 4092;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t4092: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], () => (__webpack_require__(93995)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","XMLParser","XMLValidator","isSvg","input","toString","trim","length","validate","jsonObject","parser","parse","_","module","exports","name","props","component","type","Object","required","fileInfo","default","watch","setFileInfo","mounted","$el","replaceAll","methods","OCA","Files","FileInfoModel","_c","this","_self","components","NcAppSidebarTab","NcEmptyContent","id","String","icon","onMount","Function","onUpdate","onDestroy","onScrollBottomReached","data","loading","computed","activeTab","$parent","newFile","oldFile","$refs","mount","tab","beforeDestroy","_vm","ref","attrs","on","scopedSlots","_u","key","fn","_t","proxy","_v","_e","defaultBaseTag","userVisible","userAssignable","canAssign","parseTags","tags","map","_ref","fromEntries","entries","_ref2","value","camelCase","formatTag","initialTag","tag","displayName","rootUrl","generateRemoteUrl","davClient","createClient","headers","requesttoken","getRequestToken","logger","getLoggerBuilder","setApp","detectUser","build","fetchTagsPayload","setTagForFile","async","fileId","path","tagToPut","customRequest","method","error","t","Error","Vue","extend","NcLoadingIcon","NcSelectTags","Number","sortedTags","selectedTags","loadingTags","created","getDirectoryContents","details","glob","fetchTags","lastUsedOrder","url","generateUrl","lastUsedTagIds","axios","get","fetchLastUsedTagIds","lastUsedTags","remainingTags","includes","push","sortByLastUsed","a","b","indexOf","sort","showError","immediate","handler","fetchTagsForFile","$emit","createOption","newDisplayName","baseTag","every","handleInput","filter","selectedTag","Boolean","handleSelect","lastTag","sortToFront","handleCreate","tagToCreate","tagId","tagToPost","contentLocation","queryPos","substring","parts","split","result","pop","parseIdFromLocation","createTag","tagToSet","createTagForFile","createdTag","unshift","handleDeselect","deleteFile","deleteTagForFile","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_setupProxy","staticClass","_s","LegacyView","NcActionButton","NcAppSidebar","SidebarTab","SystemTags","Star","StarOutline","Sidebar","state","showTags","starLoading","isFullScreen","hasLowHeight","file","tabs","views","davPath","user","OC","getCurrentUser","uid","linkToRemote","encodePath","subtitle","isFavourited","size","time","Util","relativeModifiedDate","mtime","fullTime","moment","format","humanFileSize","background","getPreviewIfAny","appSidebar","mimetype","active","class","hasPreview","compact","subname","title","defaultAction","App","fileList","fileActions","getDefaultFileAction","PERMISSION_READ","defaultActionListener","isSystemTagsEnabled","getCapabilities","systemtags","enabled","window","addEventListener","handleWindowResize","removeEventListener","canDisplay","resetData","$nextTick","updateTabs","screen","width","height","getIconUrl","mimeType","mountType","MimeType","undefined","shareTypes","ShareTypes","SHARE_TYPE_LINK","SHARE_TYPE_EMAIL","setActiveTab","forEach","setIsActive","toggleStarred","isDir","Node","Folder","File","emit","fileid","source","root","mime","Notification","showTemporary","console","onDefaultAction","action","dir","$file","$","toggleTags","open","response","davGetDefaultPropfind","getClient","_client","parseMultiStatus","_parseFileInfo","isDirectory","FileInfo","slice","join","view","close","setFullScreenMode","document","querySelector","classList","add","remove","handleOpening","handleOpened","handleClosing","handleClosed","documentElement","clientHeight","_b","_d","$event","stopPropagation","preventDefault","apply","arguments","directives","rawName","expression","_l","cid","update","destroy","scrollBottomReached","iconSvg","domProps","prototype","assign","constructor","_state","debug","registerTab","findIndex","check","registerSecondaryView","Tab","_defineProperty","_id","_name","_icon","_mount","_setIsActive","_update","_destroy","_enabled","_scrollBottomReached","svg","svgText","Buffer","isBuffer","Promise","resolve","fileReader","FileReader","onload","readAsText","div","createElement","innerHTML","svgEl","firstElementChild","hasScriptAttr","Array","from","attributes","find","attr","startsWith","getElementsByTagName","sanitizeSVG","then","sanitizedSvg","_iconSvgSanitized","contentElement","getElementById","sidebarElement","appendChild","AppSidebar","SidebarView","$mount","___CSS_LOADER_EXPORT___","validator","XMLBuilder","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","code","keys","setUid","C","P","Yt","r","s","n","Math","floor","log","min","i","d","pow","toFixed","parseFloat","toLocaleString","N","NONE","CREATE","READ","UPDATE","DELETE","SHARE","ALL","j","Y","nc","oc","ocs","V","_nc_dav_properties","L","_nc_dav_namespaces","sr","or","R","J","match","X","URL","Date","crtime","permissions","owner","status","values","Q","NEW","FAILED","LOADING","LOCKED","D","_data","_attributes","_knownDavService","set","updateMtime","Reflect","deleteProperty","Proxy","replace","encodedSource","origin","basename","extension","dirname","pathname","isDavRessource","move","rename","ye","super","ee","te","ur","setHeaders","patch","fetch","dr","includeSelf","filename","ve","be","lastmod","parseInt","getcontentlength","O","RegExp","isExist","u","isEmptyObject","merge","l","f","c","getValue","isName","exec","getAllMatches","startIndex","lastIndex","g","nameRegexp","B","re","preserveOrder","attributeNamePrefix","attributesGroupName","textNodeName","ignoreAttributes","removeNSPrefix","allowBooleanAttributes","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","hex","leadingZeros","eNotation","tagValueProcessor","attributeValueProcessor","stopNodes","alwaysCreateTextNode","isArray","commentPropName","unpairedTags","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","buildOptions","defaultOptions","ne","ie","Nt","bt","Et","hasOwnProperty","prettify","yt","vt","se","Pt","h","xt","oe","K","E","indentBy","suppressUnpairedNode","suppressEmptyNode","endsWith","suppressBooleanAttributes","substr","lastIndexOf","entities","regex","val","Ft","Vt","oneListGroup","isAttribute","attrPrefixLen","St","processTextOrObjNode","Lt","indentate","Rt","tagEndChar","newLine","j2x","buildTextValNode","attrStr","buildObjectNode","repeat","arrayNodeName","call","buildAttrPairStr","replaceEntitiesValue","closeTag","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","m","chunkIds","priority","notFulfilled","Infinity","fulfilled","splice","getter","__esModule","definition","defineProperty","enumerable","chunkId","all","reduce","promises","globalThis","obj","prop","done","script","needAttach","scripts","getAttribute","charset","timeout","setAttribute","src","onScriptComplete","prev","event","onerror","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","target","head","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","location","currentScript","p","baseURI","self","href","installedChunks","installedChunkData","promise","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"files-sidebar.js?v=fd63c521d0a352f1c0c6","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/@skjnldsv/sanitize-svg/node_modules/is-svg/index.js","webpack://nextcloud/./node_modules/vue-material-design-icons/Star.vue?35ed","webpack://nextcloud/./node_modules/vue-material-design-icons/StarOutline.vue?9e0e","webpack:///nextcloud/apps/files/src/components/LegacyView.vue","webpack:///nextcloud/apps/files/src/components/LegacyView.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files/src/components/LegacyView.vue?a2e2","webpack://nextcloud/./apps/files/src/components/LegacyView.vue?fb5f","webpack:///nextcloud/apps/files/src/components/SidebarTab.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/components/SidebarTab.vue","webpack://nextcloud/./apps/files/src/components/SidebarTab.vue?7aea","webpack://nextcloud/./apps/files/src/components/SidebarTab.vue?eddf","webpack:///nextcloud/apps/systemtags/src/components/SystemTags.vue","webpack:///nextcloud/apps/systemtags/src/utils.ts","webpack:///nextcloud/apps/systemtags/src/services/davClient.ts","webpack:///nextcloud/apps/systemtags/src/logger.ts","webpack:///nextcloud/apps/systemtags/src/services/api.ts","webpack:///nextcloud/apps/systemtags/src/services/files.ts","webpack:///nextcloud/apps/systemtags/src/components/SystemTags.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/systemtags/src/components/SystemTags.vue?e0af","webpack://nextcloud/./apps/systemtags/src/components/SystemTags.vue?d721","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/services/FileInfo.js","webpack://nextcloud/./apps/files/src/views/Sidebar.vue?7574","webpack://nextcloud/./apps/files/src/views/Sidebar.vue?0b21","webpack://nextcloud/./apps/files/src/views/Sidebar.vue?589a","webpack:///nextcloud/apps/files/src/sidebar.js","webpack:///nextcloud/apps/files/src/services/Sidebar.js","webpack:///nextcloud/apps/files/src/models/Tab.js","webpack:///nextcloud/node_modules/@skjnldsv/sanitize-svg/dist/index.esm.js","webpack:///nextcloud/apps/files/src/views/Sidebar.vue?vue&type=style&index=0&id=f1de5f1a&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/systemtags/src/components/SystemTags.vue?vue&type=style&index=0&id=3ff8ae0b&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/fast-xml-parser/src/fxp.js","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","'use strict';\nconst {XMLParser, XMLValidator} = require('fast-xml-parser');\n\nconst isSvg = input => {\n\tif (input === undefined || input === null) {\n\t\treturn false;\n\t}\n\n\tinput = input.toString().trim();\n\n\tif (input.length === 0) {\n\t\treturn false;\n\t}\n\n\t// Has to be `!==` as it can also return an object with error info.\n\tif (XMLValidator.validate(input) !== true) {\n\t\treturn false;\n\t}\n\n\tlet jsonObject;\n\tconst parser = new XMLParser();\n\n\ttry {\n\t\tjsonObject = parser.parse(input);\n\t} catch (_) {\n\t\treturn false;\n\t}\n\n\tif (!jsonObject) {\n\t\treturn false;\n\t}\n\n\tif (!('svg' in jsonObject)) {\n\t\treturn false;\n\t}\n\n\treturn true;\n};\n\nmodule.exports = isSvg;\n// TODO: Remove this for the next major release\nmodule.exports.default = isSvg;\n","import { render, staticRenderFns } from \"./Star.vue?vue&type=template&id=22339b94\"\nimport script from \"./Star.vue?vue&type=script&lang=js\"\nexport * from \"./Star.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./StarOutline.vue?vue&type=template&id=3a0ad9db\"\nimport script from \"./StarOutline.vue?vue&type=script&lang=js\"\nexport * from \"./StarOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","<!--\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 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\"","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 render(){var _vm=this,_c=_vm._self._c;return _c('div')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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\"","<!--\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<NcAppSidebarTab :id=\"id\"\n\t\tref=\"tab\"\n\t\t:name=\"name\"\n\t\t:icon=\"icon\"\n\t\t@bottomReached=\"onScrollBottomReached\">\n\t\t<template #icon>\n\t\t\t<slot name=\"icon\" />\n\t\t</template>\n\t\t<!-- Fallback loading -->\n\t\t<NcEmptyContent 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</NcAppSidebarTab>\n</template>\n\n<script>\nimport NcAppSidebarTab from '@nextcloud/vue/dist/Components/NcAppSidebarTab.js'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\n\nexport default {\n\tname: 'SidebarTab',\n\n\tcomponents: {\n\t\tNcAppSidebarTab,\n\t\tNcEmptyContent,\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: false,\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 { render, staticRenderFns } from \"./SidebarTab.vue?vue&type=template&id=164a4bde\"\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSidebarTab',{ref:\"tab\",attrs:{\"id\":_vm.id,\"name\":_vm.name,\"icon\":_vm.icon},on:{\"bottomReached\":_vm.onScrollBottomReached},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_vm._t(\"icon\")]},proxy:true}],null,true)},[_vm._v(\" \"),(_vm.loading)?_c('NcEmptyContent',{attrs:{\"icon\":\"icon-loading\"}}):_vm._e(),_vm._v(\" \"),_c('div',{ref:\"mount\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"system-tags\"},[(_vm.loadingTags)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('systemtags', 'Loading collaborative tags …'),\"size\":32}}):[_c('label',{attrs:{\"for\":\"system-tags-input\"}},[_vm._v(_vm._s(_vm.t('systemtags', 'Search or create collaborative tags')))]),_vm._v(\" \"),_c('NcSelectTags',{staticClass:\"system-tags__select\",attrs:{\"input-id\":\"system-tags-input\",\"placeholder\":_vm.t('systemtags', 'Collaborative tags …'),\"options\":_vm.sortedTags,\"value\":_vm.selectedTags,\"create-option\":_vm.createOption,\"taggable\":true,\"passthru\":true,\"fetch-tags\":false,\"loading\":_vm.loading},on:{\"input\":_vm.handleInput,\"option:selected\":_vm.handleSelect,\"option:created\":_vm.handleCreate,\"option:deselected\":_vm.handleDeselect},scopedSlots:_vm._u([{key:\"no-options\",fn:function(){return [_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('systemtags', 'No tags to select, type to create a new tag'))+\"\\n\\t\\t\\t\")]},proxy:true}])})]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.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 */\nimport camelCase from 'camelcase';\nexport const defaultBaseTag = {\n    userVisible: true,\n    userAssignable: true,\n    canAssign: true,\n};\nexport const parseTags = (tags) => {\n    return tags.map(({ props }) => Object.fromEntries(Object.entries(props)\n        .map(([key, value]) => [camelCase(key), camelCase(key) === 'displayName' ? String(value) : value])));\n};\n/**\n * Parse id from `Content-Location` header\n * @param url URL to parse\n */\nexport const parseIdFromLocation = (url) => {\n    const queryPos = url.indexOf('?');\n    if (queryPos > 0) {\n        url = url.substring(0, queryPos);\n    }\n    const parts = url.split('/');\n    let result;\n    do {\n        result = parts[parts.length - 1];\n        parts.pop();\n        // note: first result can be empty when there is a trailing slash,\n        // so we take the part before that\n    } while (!result && parts.length > 0);\n    return Number(result);\n};\nexport const formatTag = (initialTag) => {\n    const tag = { ...initialTag };\n    if (tag.name && !tag.displayName) {\n        return tag;\n    }\n    tag.name = tag.displayName;\n    delete tag.displayName;\n    return tag;\n};\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.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 */\nimport { createClient } from 'webdav';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getRequestToken } from '@nextcloud/auth';\nconst rootUrl = generateRemoteUrl('dav');\nexport const davClient = createClient(rootUrl, {\n    headers: {\n        requesttoken: getRequestToken() ?? '',\n    },\n});\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.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 */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport const logger = getLoggerBuilder()\n    .setApp('systemtags')\n    .detectUser()\n    .build();\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.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 */\nimport axios from '@nextcloud/axios';\nimport { generateUrl } from '@nextcloud/router';\nimport { translate as t } from '@nextcloud/l10n';\nimport { davClient } from './davClient.js';\nimport { formatTag, parseIdFromLocation, parseTags } from '../utils';\nimport { logger } from '../logger.js';\nexport const fetchTagsPayload = `<?xml version=\"1.0\"?>\n<d:propfind  xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\n\t<d:prop>\n\t\t<oc:id />\n\t\t<oc:display-name />\n\t\t<oc:user-visible />\n\t\t<oc:user-assignable />\n\t\t<oc:can-assign />\n\t</d:prop>\n</d:propfind>`;\nexport const fetchTags = async () => {\n    const path = '/systemtags';\n    try {\n        const { data: tags } = await davClient.getDirectoryContents(path, {\n            data: fetchTagsPayload,\n            details: true,\n            glob: '/systemtags/*', // Filter out first empty tag\n        });\n        return parseTags(tags);\n    }\n    catch (error) {\n        logger.error(t('systemtags', 'Failed to load tags'), { error });\n        throw new Error(t('systemtags', 'Failed to load tags'));\n    }\n};\nexport const fetchLastUsedTagIds = async () => {\n    const url = generateUrl('/apps/systemtags/lastused');\n    try {\n        const { data: lastUsedTagIds } = await axios.get(url);\n        return lastUsedTagIds.map(Number);\n    }\n    catch (error) {\n        logger.error(t('systemtags', 'Failed to load last used tags'), { error });\n        throw new Error(t('systemtags', 'Failed to load last used tags'));\n    }\n};\n/**\n * @return created tag id\n */\nexport const createTag = async (tag) => {\n    const path = '/systemtags';\n    const tagToPost = formatTag(tag);\n    try {\n        const { headers } = await davClient.customRequest(path, {\n            method: 'POST',\n            data: tagToPost,\n        });\n        const contentLocation = headers.get('content-location');\n        if (contentLocation) {\n            return parseIdFromLocation(contentLocation);\n        }\n        logger.error(t('systemtags', 'Missing \"Content-Location\" header'));\n        throw new Error(t('systemtags', 'Missing \"Content-Location\" header'));\n    }\n    catch (error) {\n        logger.error(t('systemtags', 'Failed to create tag'), { error });\n        throw new Error(t('systemtags', 'Failed to create tag'));\n    }\n};\nexport const updateTag = async (tag) => {\n    const path = '/systemtags/' + tag.id;\n    const data = `<?xml version=\"1.0\"?>\n\t<d:propertyupdate  xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\n\t\t<d:set>\n\t\t\t<d:prop>\n\t\t\t\t<oc:display-name>${tag.displayName}</oc:display-name>\n\t\t\t\t<oc:user-visible>${tag.userVisible}</oc:user-visible>\n\t\t\t\t<oc:user-assignable>${tag.userAssignable}</oc:user-assignable>\n\t\t\t</d:prop>\n\t\t</d:set>\n\t</d:propertyupdate>`;\n    try {\n        await davClient.customRequest(path, {\n            method: 'PROPPATCH',\n            data,\n        });\n    }\n    catch (error) {\n        logger.error(t('systemtags', 'Failed to update tag'), { error });\n        throw new Error(t('systemtags', 'Failed to update tag'));\n    }\n};\nexport const deleteTag = async (tag) => {\n    const path = '/systemtags/' + tag.id;\n    try {\n        await davClient.deleteFile(path);\n    }\n    catch (error) {\n        logger.error(t('systemtags', 'Failed to delete tag'), { error });\n        throw new Error(t('systemtags', 'Failed to delete tag'));\n    }\n};\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.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 */\nimport { davClient } from './davClient.js';\nimport { createTag, fetchTagsPayload } from './api.js';\nimport { formatTag, parseTags } from '../utils.js';\nimport { logger } from '../logger.js';\nexport const fetchTagsForFile = async (fileId) => {\n    const path = '/systemtags-relations/files/' + fileId;\n    try {\n        const { data: tags } = await davClient.getDirectoryContents(path, {\n            data: fetchTagsPayload,\n            details: true,\n            glob: '/systemtags-relations/files/*/*', // Filter out first empty tag\n        });\n        return parseTags(tags);\n    }\n    catch (error) {\n        logger.error(t('systemtags', 'Failed to load tags for file'), { error });\n        throw new Error(t('systemtags', 'Failed to load tags for file'));\n    }\n};\n/**\n * @return created tag id\n */\nexport const createTagForFile = async (tag, fileId) => {\n    const tagToCreate = formatTag(tag);\n    const tagId = await createTag(tagToCreate);\n    const tagToSet = {\n        ...tagToCreate,\n        id: tagId,\n    };\n    await setTagForFile(tagToSet, fileId);\n    return tagToSet.id;\n};\nexport const setTagForFile = async (tag, fileId) => {\n    const path = '/systemtags-relations/files/' + fileId + '/' + tag.id;\n    const tagToPut = formatTag(tag);\n    try {\n        await davClient.customRequest(path, {\n            method: 'PUT',\n            data: tagToPut,\n        });\n    }\n    catch (error) {\n        logger.error(t('systemtags', 'Failed to set tag for file'), { error });\n        throw new Error(t('systemtags', 'Failed to set tag for file'));\n    }\n};\nexport const deleteTagForFile = async (tag, fileId) => {\n    const path = '/systemtags-relations/files/' + fileId + '/' + tag.id;\n    try {\n        await davClient.deleteFile(path);\n    }\n    catch (error) {\n        logger.error(t('systemtags', 'Failed to delete tag for file'), { error });\n        throw new Error(t('systemtags', 'Failed to delete tag for file'));\n    }\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemTags.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemTags.vue?vue&type=script&lang=ts\"","\n      import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemTags.vue?vue&type=style&index=0&id=3ff8ae0b&prod&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!./SystemTags.vue?vue&type=style&index=0&id=3ff8ae0b&prod&lang=scss&scoped=true\";\n       export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SystemTags.vue?vue&type=template&id=3ff8ae0b&scoped=true\"\nimport script from \"./SystemTags.vue?vue&type=script&lang=ts\"\nexport * from \"./SystemTags.vue?vue&type=script&lang=ts\"\nimport style0 from \"./SystemTags.vue?vue&type=style&index=0&id=3ff8ae0b&prod&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  \"3ff8ae0b\",\n  null\n  \n)\n\nexport default component.exports","<!--\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<NcAppSidebar v-if=\"file\"\n\t\tref=\"sidebar\"\n\t\tv-bind=\"appSidebar\"\n\t\t:force-menu=\"true\"\n\t\ttabindex=\"0\"\n\t\t@close=\"close\"\n\t\t@update:active=\"setActiveTab\"\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<div class=\"sidebar__description\">\n\t\t\t\t<SystemTags v-if=\"isSystemTagsEnabled && showTagsDefault\"\n\t\t\t\t\tv-show=\"showTags\"\n\t\t\t\t\t:file-id=\"fileInfo.id\"\n\t\t\t\t\t@has-tags=\"value => showTags = value\" />\n\t\t\t\t<LegacyView v-for=\"view in views\"\n\t\t\t\t\t:key=\"view.cid\"\n\t\t\t\t\t:component=\"view\"\n\t\t\t\t\t:file-info=\"fileInfo\" />\n\t\t\t</div>\n\t\t</template>\n\n\t\t<!-- Actions menu -->\n\t\t<template v-if=\"fileInfo\" #secondary-actions>\n\t\t\t<NcActionButton :close-after-click=\"true\"\n\t\t\t\t@click=\"toggleStarred(!fileInfo.isFavourited)\">\n\t\t\t\t<template v-if=\"fileInfo.isFavourited\" #icon>\n\t\t\t\t\t<StarOutline :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<template v-else #icon>\n\t\t\t\t\t<Star :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ fileInfo.isFavourited ? t('files', 'Remove from favorites') : t('files', 'Add to favorites') }}\n\t\t\t</NcActionButton>\n\t\t\t<!-- TODO: create proper api for apps to register actions\n\t\t\tAnd inject themselves here. -->\n\t\t\t<NcActionButton 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</NcActionButton>\n\t\t</template>\n\n\t\t<!-- Error display -->\n\t\t<NcEmptyContent v-if=\"error\" icon=\"icon-error\">\n\t\t\t{{ error }}\n\t\t</NcEmptyContent>\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\t\t<template v-if=\"tab.iconSvg !== undefined\" #icon>\n\t\t\t\t\t<!-- eslint-disable-next-line vue/no-v-html -->\n\t\t\t\t\t<span class=\"svg-icon\" v-html=\"tab.iconSvg\" />\n\t\t\t\t</template>\n\t\t\t</SidebarTab>\n\t\t</template>\n\t</NcAppSidebar>\n</template>\n<script>\nimport { emit } from '@nextcloud/event-bus'\nimport { encodePath } from '@nextcloud/paths'\nimport { File, Folder } from '@nextcloud/files'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { Type as ShareTypes } from '@nextcloud/sharing'\nimport $ from 'jquery'\nimport axios from '@nextcloud/axios'\nimport moment from '@nextcloud/moment'\n\nimport Star from 'vue-material-design-icons/Star.vue'\nimport StarOutline from 'vue-material-design-icons/StarOutline.vue'\n\nimport NcAppSidebar from '@nextcloud/vue/dist/Components/NcAppSidebar.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\n\nimport FileInfo from '../services/FileInfo.js'\nimport LegacyView from '../components/LegacyView.vue'\nimport SidebarTab from '../components/SidebarTab.vue'\nimport SystemTags from '../../../systemtags/src/components/SystemTags.vue'\n\nexport default {\n\tname: 'Sidebar',\n\n\tcomponents: {\n\t\tLegacyView,\n\t\tNcActionButton,\n\t\tNcAppSidebar,\n\t\tNcEmptyContent,\n\t\tSidebarTab,\n\t\tSystemTags,\n\t\tStar,\n\t\tStarOutline,\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\tshowTags: false,\n\t\t\tshowTagsDefault: true,\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\thasLowHeight: 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\tconst starredIndicator = this.fileInfo.isFavourited ? '★ ' : ''\n\t\t\treturn `${starredIndicator} ${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 && !this.isFullScreen,\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.hasLowHeight || !this.fileInfo.hasPreview || this.isFullScreen,\n\t\t\t\t\tloading: this.loading,\n\t\t\t\t\tsubname: this.subtitle,\n\t\t\t\t\tsubtitle: this.fullTime,\n\t\t\t\t\tname: this.fileInfo.name,\n\t\t\t\t\ttitle: 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\tsubname: '',\n\t\t\t\t\tname: '',\n\t\t\t\t\tclass: {\n\t\t\t\t\t\t'app-sidebar--full': this.isFullScreen,\n\t\t\t\t\t},\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\tsubname: '',\n\t\t\t\tname: '',\n\t\t\t\tclass: {\n\t\t\t\t\t'app-sidebar--full': this.isFullScreen,\n\t\t\t\t},\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 getCapabilities()?.systemtags?.enabled === true\n\t\t},\n\t},\n\tcreated() {\n\t\twindow.addEventListener('resize', this.handleWindowResize)\n\t\tthis.handleWindowResize()\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this.handleWindowResize)\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 && !this.isFullScreen) {\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\tthis.tabs.forEach(tab => {\n\t\t\t\ttry {\n\t\t\t\t\ttab.setIsActive(id === tab.id)\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlogger.error('Error while setting tab active state', { error, id: tab.id, tab })\n\t\t\t\t}\n\t\t\t})\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/**\n\t\t\t\t * TODO: adjust this when the Sidebar is finally using File/Folder classes\n\t\t\t\t * @see https://github.com/nextcloud/server/blob/8a75cb6e72acd42712ab9fea22296aa1af863ef5/apps/files/src/views/favorites.ts#L83-L115\n\t\t\t\t */\n\t\t\t\tconst isDir = this.fileInfo.type === 'dir'\n\t\t\t\tconst Node = isDir ? Folder : File\n\t\t\t\temit(state ? 'files:favorites:added' : 'files:favorites:removed', new Node({\n\t\t\t\t\tfileid: this.fileInfo.id,\n\t\t\t\t\tsource: this.davPath,\n\t\t\t\t\troot: `/files/${getCurrentUser().uid}`,\n\t\t\t\t\tmime: isDir ? undefined : this.fileInfo.mimetype,\n\t\t\t\t}))\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\tthis.showTagsDefault = this.showTags = !this.showTags\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\tif (!path || path.trim() === '') {\n\t\t\t\tthrow new Error(`Invalid path '${path}'`)\n\t\t\t}\n\n\t\t\t// update current opened file\n\t\t\tthis.Sidebar.file = path\n\n\t\t\t// reset data, keep old fileInfo to not reload all tabs and just hide them\n\t\t\tthis.error = null\n\t\t\tthis.loading = true\n\n\t\t\ttry {\n\t\t\t\tthis.fileInfo = await FileInfo(this.davPath)\n\t\t\t\t// adding this as fallback because other apps expect it\n\t\t\t\tthis.fileInfo.dir = this.file.split('/').slice(0, -1).join('/')\n\n\t\t\t\t// DEPRECATED legacy views\n\t\t\t\t// TODO: remove\n\t\t\t\tthis.views.forEach(view => {\n\t\t\t\t\tview.setFileInfo(this.fileInfo)\n\t\t\t\t})\n\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tif (this.$refs.tabs) {\n\t\t\t\t\t\tthis.$refs.tabs.updateTabs()\n\t\t\t\t\t}\n\t\t\t\t\tthis.setActiveTab(this.Sidebar.activeTab || this.tabs[0].id)\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tthis.error = t('files', 'Error while loading the file data')\n\t\t\t\tconsole.error('Error while loading the file data', error)\n\n\t\t\t\tthrow new Error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Close the sidebar\n\t\t */\n\t\tclose() {\n\t\t\tthis.Sidebar.file = ''\n\t\t\tthis.showTags = false\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 - Whether or not to render the Sidebar in fullscreen.\n\t\t */\n\t\tsetFullScreenMode(isFullScreen) {\n\t\t\tthis.isFullScreen = isFullScreen\n\t\t\tif (isFullScreen) {\n\t\t\t\tdocument.querySelector('#content')?.classList.add('with-sidebar--full')\n\t\t\t\t\t|| document.querySelector('#content-vue')?.classList.add('with-sidebar--full')\n\t\t\t} else {\n\t\t\t\tdocument.querySelector('#content')?.classList.remove('with-sidebar--full')\n\t\t\t\t\t|| document.querySelector('#content-vue')?.classList.remove('with-sidebar--full')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Allow to set whether tags should be shown by default from OCA.Files.Sidebar\n\t\t *\n\t\t * @param {boolean} showTagsDefault - Whether or not to show the tags by default.\n\t\t */\n\t\tsetShowTagsDefault(showTagsDefault) {\n\t\t\tthis.showTagsDefault = showTagsDefault\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\thandleWindowResize() {\n\t\t\tthis.hasLowHeight = document.documentElement.clientHeight < 1024\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n.app-sidebar {\n\t&--has-preview: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\t:deep {\n\t\t.app-sidebar-header__description {\n\t\t\tmargin: 0 16px 4px 16px !important;\n\t\t}\n\t}\n\n\t.svg-icon {\n\t\t::v-deep svg {\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tfill: currentColor;\n\t\t}\n\t}\n}\n\n.sidebar__description {\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tgap: 8px 0;\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 * @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'\nimport { davGetDefaultPropfind } from '@nextcloud/files'\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: davGetDefaultPropfind(),\n\t})\n\n\t// TODO: create new parser or use cdav-lib when available\n\tconst file = OC.Files.getClient()._client.parseMultiStatus(response.data)\n\t// TODO: create new parser or use cdav-lib when available\n\tconst fileInfo = OC.Files.getClient()._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","\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=f1de5f1a&prod&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=f1de5f1a&prod&lang=scss&scoped=true\";\n       export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Sidebar.vue?vue&type=template&id=f1de5f1a&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=f1de5f1a&prod&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  \"f1de5f1a\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.file)?_c('NcAppSidebar',_vm._b({ref:\"sidebar\",attrs:{\"force-menu\":true,\"tabindex\":\"0\"},on:_vm._d({\"close\":_vm.close,\"update:active\":_vm.setActiveTab,\"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 [_c('div',{staticClass:\"sidebar__description\"},[(_vm.isSystemTagsEnabled && _vm.showTagsDefault)?_c('SystemTags',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showTags),expression:\"showTags\"}],attrs:{\"file-id\":_vm.fileInfo.id},on:{\"has-tags\":value => _vm.showTags = value}}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.views),function(view){return _c('LegacyView',{key:view.cid,attrs:{\"component\":view,\"file-info\":_vm.fileInfo}})})],2)]},proxy:true}:null,(_vm.fileInfo)?{key:\"secondary-actions\",fn:function(){return [_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){return _vm.toggleStarred(!_vm.fileInfo.isFavourited)}},scopedSlots:_vm._u([(_vm.fileInfo.isFavourited)?{key:\"icon\",fn:function(){return [_c('StarOutline',{attrs:{\"size\":20}})]},proxy:true}:{key:\"icon\",fn:function(){return [_c('Star',{attrs:{\"size\":20}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.fileInfo.isFavourited ? _vm.t('files', 'Remove from favorites') : _vm.t('files', 'Add to favorites'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.isSystemTagsEnabled)?_c('NcActionButton',{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)},'NcAppSidebar',_vm.appSidebar,false),[_vm._v(\" \"),_vm._v(\" \"),(_vm.error)?_c('NcEmptyContent',{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},scopedSlots:_vm._u([(tab.iconSvg !== undefined)?{key:\"icon\",fn:function(){return [_c('span',{staticClass:\"svg-icon\",domProps:{\"innerHTML\":_vm._s(tab.iconSvg)}})]},proxy:true}:null],null,true)}):_vm._e()]}):_vm._e()],2):_vm._e()\n}\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\nimport Vue from 'vue'\nimport { translate as t } from '@nextcloud/l10n'\n\nimport SidebarView from './views/Sidebar.vue'\nimport Sidebar from './services/Sidebar.js'\nimport Tab from './models/Tab.js'\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\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\twindow.OCA.Files.Sidebar.setShowTagsDefault = AppSidebar.setShowTagsDefault\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 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 */\nimport { sanitizeSVG } from '@skjnldsv/sanitize-svg'\n\nexport default class Tab {\n\n\t_id\n\t_name\n\t_icon\n\t_iconSvgSanitized\n\t_mount\n\t_setIsActive\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 icon css class\n\t * @param {?string} options.iconSvg the icon in svg format\n\t * @param {Function} options.mount function to mount the tab\n\t * @param {Function} [options.setIsActive] function to forward the active state of 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, iconSvg, mount, setIsActive, 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() === '') && typeof iconSvg !== 'string') {\n\t\t\tthrow new Error('Missing valid string for icon or iconSvg argument')\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 (setIsActive !== undefined && typeof setIsActive !== 'function') {\n\t\t\tthrow new Error('The setIsActive 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._setIsActive = setIsActive\n\t\tthis._update = update\n\t\tthis._destroy = destroy\n\t\tthis._enabled = enabled\n\t\tthis._scrollBottomReached = scrollBottomReached\n\n\t\tif (typeof iconSvg === 'string') {\n\t\t\tsanitizeSVG(iconSvg)\n\t\t\t\t.then(sanitizedSvg => {\n\t\t\t\t\tthis._iconSvgSanitized = sanitizedSvg\n\t\t\t\t})\n\t\t}\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 iconSvg() {\n\t\treturn this._iconSvgSanitized\n\t}\n\n\tget mount() {\n\t\treturn this._mount\n\t}\n\n\tget setIsActive() {\n\t\treturn this._setIsActive || (() => undefined)\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","import { Buffer } from 'buffer';\nimport isSvg from 'is-svg';\n\nconst readAsText = (svg) => new Promise((resolve) => {\n    if (!isFile(svg)) {\n        resolve(svg.toString('utf-8'));\n    }\n    else {\n        const fileReader = new FileReader();\n        fileReader.onload = () => {\n            resolve(fileReader.result);\n        };\n        fileReader.readAsText(svg);\n    }\n});\nconst isFile = (obj) => {\n    return obj.size !== undefined;\n};\nconst sanitizeSVG = async (svg) => {\n    if (!svg) {\n        throw new Error('Not an svg');\n    }\n    let svgText = '';\n    if (Buffer.isBuffer(svg) || svg instanceof File) {\n        svgText = await readAsText(svg);\n    }\n    else {\n        svgText = svg;\n    }\n    if (!isSvg(svgText)) {\n        throw new Error('Not an svg');\n    }\n    const div = document.createElement('div');\n    div.innerHTML = svgText;\n    const svgEl = div.firstElementChild;\n    const attributes = Array.from(svgEl.attributes).map(({ name }) => name);\n    const hasScriptAttr = !!attributes.find((attr) => attr.startsWith('on'));\n    const scripts = svgEl.getElementsByTagName('script');\n    return scripts.length === 0 && !hasScriptAttr ? svg : null;\n};\n\nexport { sanitizeSVG };\n//# sourceMappingURL=index.esm.js.map\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-sidebar--has-preview[data-v-f1de5f1a] .app-sidebar-header__figure{background-size:cover}.app-sidebar--has-preview[data-v-f1de5f1a][data-mimetype=\"text/plain\"] .app-sidebar-header__figure,.app-sidebar--has-preview[data-v-f1de5f1a][data-mimetype=\"text/markdown\"] .app-sidebar-header__figure{background-size:contain}.app-sidebar--full[data-v-f1de5f1a]{position:fixed !important;z-index:2025 !important;top:0 !important;height:100% !important}.app-sidebar[data-v-f1de5f1a] .app-sidebar-header__description{margin:0 16px 4px 16px !important}.app-sidebar .svg-icon[data-v-f1de5f1a] svg{width:20px;height:20px;fill:currentColor}.sidebar__description[data-v-f1de5f1a]{display:flex;flex-direction:column;width:100%;gap:8px 0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Sidebar.vue\"],\"names\":[],\"mappings\":\"AAGE,uEACC,qBAAA,CAKA,yMACC,uBAAA,CAKH,oCACC,yBAAA,CACA,uBAAA,CACA,gBAAA,CACA,sBAAA,CAIA,+DACC,iCAAA,CAKD,4CACC,UAAA,CACA,WAAA,CACA,iBAAA,CAKH,uCACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,SAAA\",\"sourcesContent\":[\"\\n.app-sidebar {\\n\\t&--has-preview: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\\t:deep {\\n\\t\\t.app-sidebar-header__description {\\n\\t\\t\\tmargin: 0 16px 4px 16px !important;\\n\\t\\t}\\n\\t}\\n\\n\\t.svg-icon {\\n\\t\\t::v-deep svg {\\n\\t\\t\\twidth: 20px;\\n\\t\\t\\theight: 20px;\\n\\t\\t\\tfill: currentColor;\\n\\t\\t}\\n\\t}\\n}\\n\\n.sidebar__description {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\twidth: 100%;\\n\\tgap: 8px 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.system-tags[data-v-3ff8ae0b]{display:flex;flex-direction:column}.system-tags label[for=system-tags-input][data-v-3ff8ae0b]{margin-bottom:2px}.system-tags__select[data-v-3ff8ae0b]{width:100%}.system-tags__select[data-v-3ff8ae0b] .vs__deselect{padding:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/systemtags/src/components/SystemTags.vue\"],\"names\":[],\"mappings\":\"AACA,8BACC,YAAA,CACA,qBAAA,CAEA,2DACC,iBAAA,CAGD,sCACC,UAAA,CAEC,oDACC,SAAA\",\"sourcesContent\":[\"\\n.system-tags {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\tlabel[for=\\\"system-tags-input\\\"] {\\n\\t\\tmargin-bottom: 2px;\\n\\t}\\n\\n\\t&__select {\\n\\t\\twidth: 100%;\\n\\t\\t:deep {\\n\\t\\t\\t.vs__deselect {\\n\\t\\t\\t\\tpadding: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\nconst validator = require('./validator');\nconst XMLParser = require('./xmlparser/XMLParser');\nconst XMLBuilder = require('./xmlbuilder/json2xml');\n\nmodule.exports = {\n  XMLParser: XMLParser,\n  XMLValidator: validator,\n  XMLBuilder: XMLBuilder\n}","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","import { getCurrentUser as A, onRequestTokenUpdate as ue, getRequestToken as de } from \"@nextcloud/auth\";\nimport { getLoggerBuilder as q } from \"@nextcloud/logger\";\nimport { getCanonicalLocale as ae } from \"@nextcloud/l10n\";\nimport { join as le, basename as fe, extname as ce, dirname as I } from \"path\";\nimport { encodePath as he } from \"@nextcloud/paths\";\nimport { generateRemoteUrl as pe } from \"@nextcloud/router\";\nimport { createClient as ge, getPatcher as we } from \"webdav\";\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\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 */\nconst me = (e) => e === null ? q().setApp(\"files\").build() : q().setApp(\"files\").setUid(e.uid).build(), m = me(A());\n/**\n * @copyright Copyright (c) 2021 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 */\nclass Ne {\n  _entries = [];\n  registerEntry(t) {\n    this.validateEntry(t), this._entries.push(t);\n  }\n  unregisterEntry(t) {\n    const r = typeof t == \"string\" ? this.getEntryIndex(t) : this.getEntryIndex(t.id);\n    if (r === -1) {\n      m.warn(\"Entry not found, nothing removed\", { entry: t, entries: this.getEntries() });\n      return;\n    }\n    this._entries.splice(r, 1);\n  }\n  /**\n   * Get the list of registered entries\n   *\n   * @param {Folder} context the creation context. Usually the current folder\n   */\n  getEntries(t) {\n    return t ? this._entries.filter((r) => typeof r.enabled == \"function\" ? r.enabled(t) : !0) : this._entries;\n  }\n  getEntryIndex(t) {\n    return this._entries.findIndex((r) => r.id === t);\n  }\n  validateEntry(t) {\n    if (!t.id || !t.displayName || !(t.iconSvgInline || t.iconClass) || !t.handler)\n      throw new Error(\"Invalid entry\");\n    if (typeof t.id != \"string\" || typeof t.displayName != \"string\")\n      throw new Error(\"Invalid id or displayName property\");\n    if (t.iconClass && typeof t.iconClass != \"string\" || t.iconSvgInline && typeof t.iconSvgInline != \"string\")\n      throw new Error(\"Invalid icon provided\");\n    if (t.enabled !== void 0 && typeof t.enabled != \"function\")\n      throw new Error(\"Invalid enabled property\");\n    if (typeof t.handler != \"function\")\n      throw new Error(\"Invalid handler property\");\n    if (\"order\" in t && typeof t.order != \"number\")\n      throw new Error(\"Invalid order property\");\n    if (this.getEntryIndex(t.id) !== -1)\n      throw new Error(\"Duplicate entry\");\n  }\n}\nconst F = function() {\n  return typeof window._nc_newfilemenu > \"u\" && (window._nc_newfilemenu = new Ne(), m.debug(\"NewFileMenu initialized\")), window._nc_newfilemenu;\n};\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\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 */\nconst C = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"], P = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction Yt(e, t = !1, r = !1, s = !1) {\n  r = r && !s, typeof e == \"string\" && (e = Number(e));\n  let n = e > 0 ? Math.floor(Math.log(e) / Math.log(s ? 1e3 : 1024)) : 0;\n  n = Math.min((r ? P.length : C.length) - 1, n);\n  const i = r ? P[n] : C[n];\n  let d = (e / Math.pow(s ? 1e3 : 1024, n)).toFixed(1);\n  return t === !0 && n === 0 ? (d !== \"0.0\" ? \"< 1 \" : \"0 \") + (r ? P[1] : C[1]) : (n < 2 ? d = parseFloat(d).toFixed(0) : d = parseFloat(d).toLocaleString(ae()), d + \" \" + i);\n}\nfunction Jt(e, t = !1) {\n  try {\n    e = `${e}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n  } catch {\n    return null;\n  }\n  const r = e.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n  if (r === null || r[1] === \".\" || r[1] === \"\")\n    return null;\n  const s = {\n    \"\": 0,\n    k: 1,\n    m: 2,\n    g: 3,\n    t: 4,\n    p: 5,\n    e: 6\n  }, n = `${r[1]}`, i = r[4] === \"i\" || t ? 1024 : 1e3;\n  return Math.round(Number.parseFloat(n) * i ** s[r[3]]);\n}\n/**\n * @copyright Copyright (c) 2023 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 */\nvar Z = /* @__PURE__ */ ((e) => (e.DEFAULT = \"default\", e.HIDDEN = \"hidden\", e))(Z || {});\nclass Qt {\n  _action;\n  constructor(t) {\n    this.validateAction(t), this._action = t;\n  }\n  get id() {\n    return this._action.id;\n  }\n  get displayName() {\n    return this._action.displayName;\n  }\n  get title() {\n    return this._action.title;\n  }\n  get iconSvgInline() {\n    return this._action.iconSvgInline;\n  }\n  get enabled() {\n    return this._action.enabled;\n  }\n  get exec() {\n    return this._action.exec;\n  }\n  get execBatch() {\n    return this._action.execBatch;\n  }\n  get order() {\n    return this._action.order;\n  }\n  get parent() {\n    return this._action.parent;\n  }\n  get default() {\n    return this._action.default;\n  }\n  get inline() {\n    return this._action.inline;\n  }\n  get renderInline() {\n    return this._action.renderInline;\n  }\n  validateAction(t) {\n    if (!t.id || typeof t.id != \"string\")\n      throw new Error(\"Invalid id\");\n    if (!t.displayName || typeof t.displayName != \"function\")\n      throw new Error(\"Invalid displayName function\");\n    if (\"title\" in t && typeof t.title != \"function\")\n      throw new Error(\"Invalid title function\");\n    if (!t.iconSvgInline || typeof t.iconSvgInline != \"function\")\n      throw new Error(\"Invalid iconSvgInline function\");\n    if (!t.exec || typeof t.exec != \"function\")\n      throw new Error(\"Invalid exec function\");\n    if (\"enabled\" in t && typeof t.enabled != \"function\")\n      throw new Error(\"Invalid enabled function\");\n    if (\"execBatch\" in t && typeof t.execBatch != \"function\")\n      throw new Error(\"Invalid execBatch function\");\n    if (\"order\" in t && typeof t.order != \"number\")\n      throw new Error(\"Invalid order\");\n    if (\"parent\" in t && typeof t.parent != \"string\")\n      throw new Error(\"Invalid parent\");\n    if (t.default && !Object.values(Z).includes(t.default))\n      throw new Error(\"Invalid default\");\n    if (\"inline\" in t && typeof t.inline != \"function\")\n      throw new Error(\"Invalid inline function\");\n    if (\"renderInline\" in t && typeof t.renderInline != \"function\")\n      throw new Error(\"Invalid renderInline function\");\n  }\n}\nconst Dt = function(e) {\n  if (typeof window._nc_fileactions > \"u\" && (window._nc_fileactions = [], m.debug(\"FileActions initialized\")), window._nc_fileactions.find((t) => t.id === e.id)) {\n    m.error(`FileAction ${e.id} already registered`, { action: e });\n    return;\n  }\n  window._nc_fileactions.push(e);\n}, er = function() {\n  return typeof window._nc_fileactions > \"u\" && (window._nc_fileactions = [], m.debug(\"FileActions initialized\")), window._nc_fileactions;\n};\n/**\n * @copyright Copyright (c) 2023 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 */\nclass tr {\n  _header;\n  constructor(t) {\n    this.validateHeader(t), this._header = t;\n  }\n  get id() {\n    return this._header.id;\n  }\n  get order() {\n    return this._header.order;\n  }\n  get enabled() {\n    return this._header.enabled;\n  }\n  get render() {\n    return this._header.render;\n  }\n  get updated() {\n    return this._header.updated;\n  }\n  validateHeader(t) {\n    if (!t.id || !t.render || !t.updated)\n      throw new Error(\"Invalid header: id, render and updated are required\");\n    if (typeof t.id != \"string\")\n      throw new Error(\"Invalid id property\");\n    if (t.enabled !== void 0 && typeof t.enabled != \"function\")\n      throw new Error(\"Invalid enabled property\");\n    if (t.render && typeof t.render != \"function\")\n      throw new Error(\"Invalid render property\");\n    if (t.updated && typeof t.updated != \"function\")\n      throw new Error(\"Invalid updated property\");\n  }\n}\nconst rr = function(e) {\n  if (typeof window._nc_filelistheader > \"u\" && (window._nc_filelistheader = [], m.debug(\"FileListHeaders initialized\")), window._nc_filelistheader.find((t) => t.id === e.id)) {\n    m.error(`Header ${e.id} already registered`, { header: e });\n    return;\n  }\n  window._nc_filelistheader.push(e);\n}, nr = function() {\n  return typeof window._nc_filelistheader > \"u\" && (window._nc_filelistheader = [], m.debug(\"FileListHeaders initialized\")), window._nc_filelistheader;\n};\n/**\n * @copyright Copyright (c) 2022 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 */\nvar N = /* @__PURE__ */ ((e) => (e[e.NONE = 0] = \"NONE\", e[e.CREATE = 4] = \"CREATE\", e[e.READ = 1] = \"READ\", e[e.UPDATE = 2] = \"UPDATE\", e[e.DELETE = 8] = \"DELETE\", e[e.SHARE = 16] = \"SHARE\", e[e.ALL = 31] = \"ALL\", e))(N || {});\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 */\nconst j = [\n  \"d:getcontentlength\",\n  \"d:getcontenttype\",\n  \"d:getetag\",\n  \"d:getlastmodified\",\n  \"d:quota-available-bytes\",\n  \"d:resourcetype\",\n  \"nc:has-preview\",\n  \"nc:is-encrypted\",\n  \"nc:mount-type\",\n  \"nc:share-attributes\",\n  \"oc:comments-unread\",\n  \"oc:favorite\",\n  \"oc:fileid\",\n  \"oc:owner-display-name\",\n  \"oc:owner-id\",\n  \"oc:permissions\",\n  \"oc:share-types\",\n  \"oc:size\",\n  \"ocs:share-permissions\"\n], Y = {\n  d: \"DAV:\",\n  nc: \"http://nextcloud.org/ns\",\n  oc: \"http://owncloud.org/ns\",\n  ocs: \"http://open-collaboration-services.org/ns\"\n}, ir = function(e, t = { nc: \"http://nextcloud.org/ns\" }) {\n  typeof window._nc_dav_properties > \"u\" && (window._nc_dav_properties = [...j], window._nc_dav_namespaces = { ...Y });\n  const r = { ...window._nc_dav_namespaces, ...t };\n  if (window._nc_dav_properties.find((n) => n === e))\n    return m.error(`${e} already registered`, { prop: e }), !1;\n  if (e.startsWith(\"<\") || e.split(\":\").length !== 2)\n    return m.error(`${e} is not valid. See example: 'oc:fileid'`, { prop: e }), !1;\n  const s = e.split(\":\")[0];\n  return r[s] ? (window._nc_dav_properties.push(e), window._nc_dav_namespaces = r, !0) : (m.error(`${e} namespace unknown`, { prop: e, namespaces: r }), !1);\n}, V = function() {\n  return typeof window._nc_dav_properties > \"u\" && (window._nc_dav_properties = [...j]), window._nc_dav_properties.map((e) => `<${e} />`).join(\" \");\n}, L = function() {\n  return typeof window._nc_dav_namespaces > \"u\" && (window._nc_dav_namespaces = { ...Y }), Object.keys(window._nc_dav_namespaces).map((e) => `xmlns:${e}=\"${window._nc_dav_namespaces?.[e]}\"`).join(\" \");\n}, sr = function() {\n  return `<?xml version=\"1.0\"?>\n\t\t<d:propfind ${L()}>\n\t\t\t<d:prop>\n\t\t\t\t${V()}\n\t\t\t</d:prop>\n\t\t</d:propfind>`;\n}, Ee = function() {\n  return `<?xml version=\"1.0\"?>\n\t\t<oc:filter-files ${L()}>\n\t\t\t<d:prop>\n\t\t\t\t${V()}\n\t\t\t</d:prop>\n\t\t\t<oc:filter-rules>\n\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t</oc:filter-rules>\n\t\t</oc:filter-files>`;\n}, or = function(e) {\n  return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<d:searchrequest ${L()}\n\txmlns:ns=\"https://github.com/icewind1991/SearchDAV/ns\">\n\t<d:basicsearch>\n\t\t<d:select>\n\t\t\t<d:prop>\n\t\t\t\t${V()}\n\t\t\t</d:prop>\n\t\t</d:select>\n\t\t<d:from>\n\t\t\t<d:scope>\n\t\t\t\t<d:href>/files/${A()?.uid}/</d:href>\n\t\t\t\t<d:depth>infinity</d:depth>\n\t\t\t</d:scope>\n\t\t</d:from>\n\t\t<d:where>\n\t\t\t<d:and>\n\t\t\t\t<d:or>\n\t\t\t\t\t<d:not>\n\t\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<d:getcontenttype/>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t\t<d:literal>httpd/unix-directory</d:literal>\n\t\t\t\t\t\t</d:eq>\n\t\t\t\t\t</d:not>\n\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<oc:size/>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t<d:literal>0</d:literal>\n\t\t\t\t\t</d:eq>\n\t\t\t\t</d:or>\n\t\t\t\t<d:gt>\n\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t\t</d:prop>\n\t\t\t\t\t<d:literal>${e}</d:literal>\n\t\t\t\t</d:gt>\n\t\t\t</d:and>\n\t\t</d:where>\n\t\t<d:orderby>\n\t\t\t<d:order>\n\t\t\t\t<d:prop>\n\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t</d:prop>\n\t\t\t\t<d:descending/>\n\t\t\t</d:order>\n\t\t</d:orderby>\n\t\t<d:limit>\n\t\t\t<d:nresults>100</d:nresults>\n\t\t\t<ns:firstresult>0</ns:firstresult>\n\t\t</d:limit>\n\t</d:basicsearch>\n</d:searchrequest>`;\n};\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 */\nconst be = function(e = \"\") {\n  let t = N.NONE;\n  return e && ((e.includes(\"C\") || e.includes(\"K\")) && (t |= N.CREATE), e.includes(\"G\") && (t |= N.READ), (e.includes(\"W\") || e.includes(\"N\") || e.includes(\"V\")) && (t |= N.UPDATE), e.includes(\"D\") && (t |= N.DELETE), e.includes(\"R\") && (t |= N.SHARE)), t;\n};\n/**\n * @copyright Copyright (c) 2022 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 */\nvar R = /* @__PURE__ */ ((e) => (e.Folder = \"folder\", e.File = \"file\", e))(R || {});\n/**\n * @copyright Copyright (c) 2022 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 */\nconst J = function(e, t) {\n  return e.match(t) !== null;\n}, X = (e, t) => {\n  if (e.id && typeof e.id != \"number\")\n    throw new Error(\"Invalid id type of value\");\n  if (!e.source)\n    throw new Error(\"Missing mandatory source\");\n  try {\n    new URL(e.source);\n  } catch {\n    throw new Error(\"Invalid source format, source must be a valid URL\");\n  }\n  if (!e.source.startsWith(\"http\"))\n    throw new Error(\"Invalid source format, only http(s) is supported\");\n  if (e.mtime && !(e.mtime instanceof Date))\n    throw new Error(\"Invalid mtime type\");\n  if (e.crtime && !(e.crtime instanceof Date))\n    throw new Error(\"Invalid crtime type\");\n  if (!e.mime || typeof e.mime != \"string\" || !e.mime.match(/^[-\\w.]+\\/[-+\\w.]+$/gi))\n    throw new Error(\"Missing or invalid mandatory mime\");\n  if (\"size\" in e && typeof e.size != \"number\" && e.size !== void 0)\n    throw new Error(\"Invalid size type\");\n  if (\"permissions\" in e && e.permissions !== void 0 && !(typeof e.permissions == \"number\" && e.permissions >= N.NONE && e.permissions <= N.ALL))\n    throw new Error(\"Invalid permissions\");\n  if (e.owner && e.owner !== null && typeof e.owner != \"string\")\n    throw new Error(\"Invalid owner type\");\n  if (e.attributes && typeof e.attributes != \"object\")\n    throw new Error(\"Invalid attributes type\");\n  if (e.root && typeof e.root != \"string\")\n    throw new Error(\"Invalid root type\");\n  if (e.root && !e.root.startsWith(\"/\"))\n    throw new Error(\"Root must start with a leading slash\");\n  if (e.root && !e.source.includes(e.root))\n    throw new Error(\"Root must be part of the source\");\n  if (e.root && J(e.source, t)) {\n    const r = e.source.match(t)[0];\n    if (!e.source.includes(le(r, e.root)))\n      throw new Error(\"The root must be relative to the service. e.g /files/emma\");\n  }\n  if (e.status && !Object.values(Q).includes(e.status))\n    throw new Error(\"Status must be a valid NodeStatus\");\n};\n/**\n * @copyright Copyright (c) 2022 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 */\nvar Q = /* @__PURE__ */ ((e) => (e.NEW = \"new\", e.FAILED = \"failed\", e.LOADING = \"loading\", e.LOCKED = \"locked\", e))(Q || {});\nclass D {\n  _data;\n  _attributes;\n  _knownDavService = /(remote|public)\\.php\\/(web)?dav/i;\n  constructor(t, r) {\n    X(t, r || this._knownDavService), this._data = t;\n    const s = {\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      set: (n, i, d) => (this.updateMtime(), Reflect.set(n, i, d)),\n      deleteProperty: (n, i) => (this.updateMtime(), Reflect.deleteProperty(n, i))\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    };\n    this._attributes = new Proxy(t.attributes || {}, s), delete this._data.attributes, r && (this._knownDavService = r);\n  }\n  /**\n   * Get the source url to this object\n   */\n  get source() {\n    return this._data.source.replace(/\\/$/i, \"\");\n  }\n  /**\n   * Get the encoded source url to this object for requests purposes\n   */\n  get encodedSource() {\n    const { origin: t } = new URL(this.source);\n    return t + he(this.source.slice(t.length));\n  }\n  /**\n   * Get this object name\n   */\n  get basename() {\n    return fe(this.source);\n  }\n  /**\n   * Get this object's extension\n   */\n  get extension() {\n    return ce(this.source);\n  }\n  /**\n   * Get the directory path leading to this object\n   * Will use the relative path to root if available\n   */\n  get dirname() {\n    if (this.root) {\n      const r = this.source.indexOf(this.root);\n      return I(this.source.slice(r + this.root.length) || \"/\");\n    }\n    const t = new URL(this.source);\n    return I(t.pathname);\n  }\n  /**\n   * Get the file mime\n   */\n  get mime() {\n    return this._data.mime;\n  }\n  /**\n   * Get the file modification time\n   */\n  get mtime() {\n    return this._data.mtime;\n  }\n  /**\n   * Get the file creation time\n   */\n  get crtime() {\n    return this._data.crtime;\n  }\n  /**\n   * Get the file size\n   */\n  get size() {\n    return this._data.size;\n  }\n  /**\n   * Get the file attribute\n   */\n  get attributes() {\n    return this._attributes;\n  }\n  /**\n   * Get the file permissions\n   */\n  get permissions() {\n    return this.owner === null && !this.isDavRessource ? N.READ : this._data.permissions !== void 0 ? this._data.permissions : N.NONE;\n  }\n  /**\n   * Get the file owner\n   */\n  get owner() {\n    return this.isDavRessource ? this._data.owner : null;\n  }\n  /**\n   * Is this a dav-related ressource ?\n   */\n  get isDavRessource() {\n    return J(this.source, this._knownDavService);\n  }\n  /**\n   * Get the dav root of this object\n   */\n  get root() {\n    return this._data.root ? this._data.root.replace(/^(.+)\\/$/, \"$1\") : this.isDavRessource && I(this.source).split(this._knownDavService).pop() || null;\n  }\n  /**\n   * Get the absolute path of this object relative to the root\n   */\n  get path() {\n    if (this.root) {\n      const t = this.source.indexOf(this.root);\n      return this.source.slice(t + this.root.length) || \"/\";\n    }\n    return (this.dirname + \"/\" + this.basename).replace(/\\/\\//g, \"/\");\n  }\n  /**\n   * Get the node id if defined.\n   * Will look for the fileid in attributes if undefined.\n   */\n  get fileid() {\n    return this._data?.id || this.attributes?.fileid;\n  }\n  /**\n   * Get the node status.\n   */\n  get status() {\n    return this._data?.status;\n  }\n  /**\n   * Set the node status.\n   */\n  set status(t) {\n    this._data.status = t;\n  }\n  /**\n   * Move the node to a new destination\n   *\n   * @param {string} destination the new source.\n   * e.g. https://cloud.domain.com/remote.php/dav/files/emma/Photos/picture.jpg\n   */\n  move(t) {\n    X({ ...this._data, source: t }, this._knownDavService), this._data.source = t, this.updateMtime();\n  }\n  /**\n   * Rename the node\n   * This aliases the move method for easier usage\n   *\n   * @param basename The new name of the node\n   */\n  rename(t) {\n    if (t.includes(\"/\"))\n      throw new Error(\"Invalid basename\");\n    this.move(I(this.source) + \"/\" + t);\n  }\n  /**\n   * Update the mtime if exists.\n   */\n  updateMtime() {\n    this._data.mtime && (this._data.mtime = /* @__PURE__ */ new Date());\n  }\n}\n/**\n * @copyright Copyright (c) 2022 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 */\nclass ye extends D {\n  get type() {\n    return R.File;\n  }\n}\n/**\n * @copyright Copyright (c) 2022 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 */\nclass _e extends D {\n  constructor(t) {\n    super({\n      ...t,\n      mime: \"httpd/unix-directory\"\n    });\n  }\n  get type() {\n    return R.Folder;\n  }\n  get extension() {\n    return null;\n  }\n  get mime() {\n    return \"httpd/unix-directory\";\n  }\n}\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 */\nconst ee = `/files/${A()?.uid}`, te = pe(\"dav\"), ur = function(e = te) {\n  const t = ge(e);\n  function r(n) {\n    t.setHeaders({\n      // Add this so the server knows it is an request from the browser\n      \"X-Requested-With\": \"XMLHttpRequest\",\n      // Inject user auth\n      requesttoken: n ?? \"\"\n    });\n  }\n  return ue(r), r(de()), we().patch(\"fetch\", (n, i) => {\n    const d = i.headers;\n    return d?.method && (i.method = d.method, delete d.method), fetch(n, i);\n  }), t;\n}, dr = async (e, t = \"/\", r = ee) => (await e.getDirectoryContents(`${r}${t}`, {\n  details: !0,\n  data: Ee(),\n  headers: {\n    // see davGetClient for patched webdav client\n    method: \"REPORT\"\n  },\n  includeSelf: !0\n})).data.filter((n) => n.filename !== t).map((n) => ve(n, r)), ve = function(e, t = ee, r = te) {\n  const s = e.props, n = be(s?.permissions), i = A()?.uid, d = {\n    id: s?.fileid || 0,\n    source: `${r}${e.filename}`,\n    mtime: new Date(Date.parse(e.lastmod)),\n    mime: e.mime,\n    size: s?.size || Number.parseInt(s.getcontentlength || \"0\"),\n    permissions: n,\n    owner: i,\n    root: t,\n    attributes: {\n      ...e,\n      ...s,\n      hasPreview: s?.[\"has-preview\"]\n    }\n  };\n  return delete d.attributes?.props, e.type === \"file\" ? new ye(d) : new _e(d);\n};\n/**\n * @copyright Copyright (c) 2022 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 */\nclass Te {\n  _views = [];\n  _currentView = null;\n  register(t) {\n    if (this._views.find((r) => r.id === t.id))\n      throw new Error(`View id ${t.id} is already registered`);\n    this._views.push(t);\n  }\n  remove(t) {\n    const r = this._views.findIndex((s) => s.id === t);\n    r !== -1 && this._views.splice(r, 1);\n  }\n  get views() {\n    return this._views;\n  }\n  setActive(t) {\n    this._currentView = t;\n  }\n  get active() {\n    return this._currentView;\n  }\n}\nconst ar = function() {\n  return typeof window._nc_navigation > \"u\" && (window._nc_navigation = new Te(), m.debug(\"Navigation service initialized\")), window._nc_navigation;\n};\n/**\n * @copyright Copyright (c) 2022 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 */\nclass Ie {\n  _column;\n  constructor(t) {\n    Ae(t), this._column = t;\n  }\n  get id() {\n    return this._column.id;\n  }\n  get title() {\n    return this._column.title;\n  }\n  get render() {\n    return this._column.render;\n  }\n  get sort() {\n    return this._column.sort;\n  }\n  get summary() {\n    return this._column.summary;\n  }\n}\nconst Ae = function(e) {\n  if (!e.id || typeof e.id != \"string\")\n    throw new Error(\"A column id is required\");\n  if (!e.title || typeof e.title != \"string\")\n    throw new Error(\"A column title is required\");\n  if (!e.render || typeof e.render != \"function\")\n    throw new Error(\"A render function is required\");\n  if (e.sort && typeof e.sort != \"function\")\n    throw new Error(\"Column sortFunction must be a function\");\n  if (e.summary && typeof e.summary != \"function\")\n    throw new Error(\"Column summary must be a function\");\n  return !0;\n};\nvar S = {}, O = {};\n(function(e) {\n  const t = \":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\", r = t + \"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\", s = \"[\" + t + \"][\" + r + \"]*\", n = new RegExp(\"^\" + s + \"$\"), i = function(u, o) {\n    const a = [];\n    let l = o.exec(u);\n    for (; l; ) {\n      const f = [];\n      f.startIndex = o.lastIndex - l[0].length;\n      const c = l.length;\n      for (let g = 0; g < c; g++)\n        f.push(l[g]);\n      a.push(f), l = o.exec(u);\n    }\n    return a;\n  }, d = function(u) {\n    const o = n.exec(u);\n    return !(o === null || typeof o > \"u\");\n  };\n  e.isExist = function(u) {\n    return typeof u < \"u\";\n  }, e.isEmptyObject = function(u) {\n    return Object.keys(u).length === 0;\n  }, e.merge = function(u, o, a) {\n    if (o) {\n      const l = Object.keys(o), f = l.length;\n      for (let c = 0; c < f; c++)\n        a === \"strict\" ? u[l[c]] = [o[l[c]]] : u[l[c]] = o[l[c]];\n    }\n  }, e.getValue = function(u) {\n    return e.isExist(u) ? u : \"\";\n  }, e.isName = d, e.getAllMatches = i, e.nameRegexp = s;\n})(O);\nconst M = O, Oe = {\n  allowBooleanAttributes: !1,\n  //A tag can have attributes without any value\n  unpairedTags: []\n};\nS.validate = function(e, t) {\n  t = Object.assign({}, Oe, t);\n  const r = [];\n  let s = !1, n = !1;\n  e[0] === \"\\uFEFF\" && (e = e.substr(1));\n  for (let i = 0; i < e.length; i++)\n    if (e[i] === \"<\" && e[i + 1] === \"?\") {\n      if (i += 2, i = G(e, i), i.err)\n        return i;\n    } else if (e[i] === \"<\") {\n      let d = i;\n      if (i++, e[i] === \"!\") {\n        i = z(e, i);\n        continue;\n      } else {\n        let u = !1;\n        e[i] === \"/\" && (u = !0, i++);\n        let o = \"\";\n        for (; i < e.length && e[i] !== \">\" && e[i] !== \" \" && e[i] !== \"\t\" && e[i] !== `\n` && e[i] !== \"\\r\"; i++)\n          o += e[i];\n        if (o = o.trim(), o[o.length - 1] === \"/\" && (o = o.substring(0, o.length - 1), i--), !Re(o)) {\n          let f;\n          return o.trim().length === 0 ? f = \"Invalid space after '<'.\" : f = \"Tag '\" + o + \"' is an invalid name.\", p(\"InvalidTag\", f, w(e, i));\n        }\n        const a = xe(e, i);\n        if (a === !1)\n          return p(\"InvalidAttr\", \"Attributes for '\" + o + \"' have open quote.\", w(e, i));\n        let l = a.value;\n        if (i = a.index, l[l.length - 1] === \"/\") {\n          const f = i - l.length;\n          l = l.substring(0, l.length - 1);\n          const c = H(l, t);\n          if (c === !0)\n            s = !0;\n          else\n            return p(c.err.code, c.err.msg, w(e, f + c.err.line));\n        } else if (u)\n          if (a.tagClosed) {\n            if (l.trim().length > 0)\n              return p(\"InvalidTag\", \"Closing tag '\" + o + \"' can't have attributes or invalid starting.\", w(e, d));\n            {\n              const f = r.pop();\n              if (o !== f.tagName) {\n                let c = w(e, f.tagStartPos);\n                return p(\n                  \"InvalidTag\",\n                  \"Expected closing tag '\" + f.tagName + \"' (opened in line \" + c.line + \", col \" + c.col + \") instead of closing tag '\" + o + \"'.\",\n                  w(e, d)\n                );\n              }\n              r.length == 0 && (n = !0);\n            }\n          } else\n            return p(\"InvalidTag\", \"Closing tag '\" + o + \"' doesn't have proper closing.\", w(e, i));\n        else {\n          const f = H(l, t);\n          if (f !== !0)\n            return p(f.err.code, f.err.msg, w(e, i - l.length + f.err.line));\n          if (n === !0)\n            return p(\"InvalidXml\", \"Multiple possible root nodes found.\", w(e, i));\n          t.unpairedTags.indexOf(o) !== -1 || r.push({ tagName: o, tagStartPos: d }), s = !0;\n        }\n        for (i++; i < e.length; i++)\n          if (e[i] === \"<\")\n            if (e[i + 1] === \"!\") {\n              i++, i = z(e, i);\n              continue;\n            } else if (e[i + 1] === \"?\") {\n              if (i = G(e, ++i), i.err)\n                return i;\n            } else\n              break;\n          else if (e[i] === \"&\") {\n            const f = Ve(e, i);\n            if (f == -1)\n              return p(\"InvalidChar\", \"char '&' is not expected.\", w(e, i));\n            i = f;\n          } else if (n === !0 && !U(e[i]))\n            return p(\"InvalidXml\", \"Extra text at the end\", w(e, i));\n        e[i] === \"<\" && i--;\n      }\n    } else {\n      if (U(e[i]))\n        continue;\n      return p(\"InvalidChar\", \"char '\" + e[i] + \"' is not expected.\", w(e, i));\n    }\n  if (s) {\n    if (r.length == 1)\n      return p(\"InvalidTag\", \"Unclosed tag '\" + r[0].tagName + \"'.\", w(e, r[0].tagStartPos));\n    if (r.length > 0)\n      return p(\"InvalidXml\", \"Invalid '\" + JSON.stringify(r.map((i) => i.tagName), null, 4).replace(/\\r?\\n/g, \"\") + \"' found.\", { line: 1, col: 1 });\n  } else\n    return p(\"InvalidXml\", \"Start tag expected.\", 1);\n  return !0;\n};\nfunction U(e) {\n  return e === \" \" || e === \"\t\" || e === `\n` || e === \"\\r\";\n}\nfunction G(e, t) {\n  const r = t;\n  for (; t < e.length; t++)\n    if (e[t] == \"?\" || e[t] == \" \") {\n      const s = e.substr(r, t - r);\n      if (t > 5 && s === \"xml\")\n        return p(\"InvalidXml\", \"XML declaration allowed only at the start of the document.\", w(e, t));\n      if (e[t] == \"?\" && e[t + 1] == \">\") {\n        t++;\n        break;\n      } else\n        continue;\n    }\n  return t;\n}\nfunction z(e, t) {\n  if (e.length > t + 5 && e[t + 1] === \"-\" && e[t + 2] === \"-\") {\n    for (t += 3; t < e.length; t++)\n      if (e[t] === \"-\" && e[t + 1] === \"-\" && e[t + 2] === \">\") {\n        t += 2;\n        break;\n      }\n  } else if (e.length > t + 8 && e[t + 1] === \"D\" && e[t + 2] === \"O\" && e[t + 3] === \"C\" && e[t + 4] === \"T\" && e[t + 5] === \"Y\" && e[t + 6] === \"P\" && e[t + 7] === \"E\") {\n    let r = 1;\n    for (t += 8; t < e.length; t++)\n      if (e[t] === \"<\")\n        r++;\n      else if (e[t] === \">\" && (r--, r === 0))\n        break;\n  } else if (e.length > t + 9 && e[t + 1] === \"[\" && e[t + 2] === \"C\" && e[t + 3] === \"D\" && e[t + 4] === \"A\" && e[t + 5] === \"T\" && e[t + 6] === \"A\" && e[t + 7] === \"[\") {\n    for (t += 8; t < e.length; t++)\n      if (e[t] === \"]\" && e[t + 1] === \"]\" && e[t + 2] === \">\") {\n        t += 2;\n        break;\n      }\n  }\n  return t;\n}\nconst Ce = '\"', Pe = \"'\";\nfunction xe(e, t) {\n  let r = \"\", s = \"\", n = !1;\n  for (; t < e.length; t++) {\n    if (e[t] === Ce || e[t] === Pe)\n      s === \"\" ? s = e[t] : s !== e[t] || (s = \"\");\n    else if (e[t] === \">\" && s === \"\") {\n      n = !0;\n      break;\n    }\n    r += e[t];\n  }\n  return s !== \"\" ? !1 : {\n    value: r,\n    index: t,\n    tagClosed: n\n  };\n}\nconst $e = new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\"])(([\\\\s\\\\S])*?)\\\\5)?`, \"g\");\nfunction H(e, t) {\n  const r = M.getAllMatches(e, $e), s = {};\n  for (let n = 0; n < r.length; n++) {\n    if (r[n][1].length === 0)\n      return p(\"InvalidAttr\", \"Attribute '\" + r[n][2] + \"' has no space in starting.\", v(r[n]));\n    if (r[n][3] !== void 0 && r[n][4] === void 0)\n      return p(\"InvalidAttr\", \"Attribute '\" + r[n][2] + \"' is without value.\", v(r[n]));\n    if (r[n][3] === void 0 && !t.allowBooleanAttributes)\n      return p(\"InvalidAttr\", \"boolean attribute '\" + r[n][2] + \"' is not allowed.\", v(r[n]));\n    const i = r[n][2];\n    if (!Le(i))\n      return p(\"InvalidAttr\", \"Attribute '\" + i + \"' is an invalid name.\", v(r[n]));\n    if (!s.hasOwnProperty(i))\n      s[i] = 1;\n    else\n      return p(\"InvalidAttr\", \"Attribute '\" + i + \"' is repeated.\", v(r[n]));\n  }\n  return !0;\n}\nfunction Fe(e, t) {\n  let r = /\\d/;\n  for (e[t] === \"x\" && (t++, r = /[\\da-fA-F]/); t < e.length; t++) {\n    if (e[t] === \";\")\n      return t;\n    if (!e[t].match(r))\n      break;\n  }\n  return -1;\n}\nfunction Ve(e, t) {\n  if (t++, e[t] === \";\")\n    return -1;\n  if (e[t] === \"#\")\n    return t++, Fe(e, t);\n  let r = 0;\n  for (; t < e.length; t++, r++)\n    if (!(e[t].match(/\\w/) && r < 20)) {\n      if (e[t] === \";\")\n        break;\n      return -1;\n    }\n  return t;\n}\nfunction p(e, t, r) {\n  return {\n    err: {\n      code: e,\n      msg: t,\n      line: r.line || r,\n      col: r.col\n    }\n  };\n}\nfunction Le(e) {\n  return M.isName(e);\n}\nfunction Re(e) {\n  return M.isName(e);\n}\nfunction w(e, t) {\n  const r = e.substring(0, t).split(/\\r?\\n/);\n  return {\n    line: r.length,\n    // column number is last line's length + 1, because column numbering starts at 1:\n    col: r[r.length - 1].length + 1\n  };\n}\nfunction v(e) {\n  return e.startIndex + e[1].length;\n}\nvar B = {};\nconst re = {\n  preserveOrder: !1,\n  attributeNamePrefix: \"@_\",\n  attributesGroupName: !1,\n  textNodeName: \"#text\",\n  ignoreAttributes: !0,\n  removeNSPrefix: !1,\n  // remove NS from tag name or attribute name if true\n  allowBooleanAttributes: !1,\n  //a tag can have attributes without any value\n  //ignoreRootElement : false,\n  parseTagValue: !0,\n  parseAttributeValue: !1,\n  trimValues: !0,\n  //Trim string values of tag and attributes\n  cdataPropName: !1,\n  numberParseOptions: {\n    hex: !0,\n    leadingZeros: !0,\n    eNotation: !0\n  },\n  tagValueProcessor: function(e, t) {\n    return t;\n  },\n  attributeValueProcessor: function(e, t) {\n    return t;\n  },\n  stopNodes: [],\n  //nested tags will not be parsed even for errors\n  alwaysCreateTextNode: !1,\n  isArray: () => !1,\n  commentPropName: !1,\n  unpairedTags: [],\n  processEntities: !0,\n  htmlEntities: !1,\n  ignoreDeclaration: !1,\n  ignorePiTags: !1,\n  transformTagName: !1,\n  transformAttributeName: !1,\n  updateTag: function(e, t, r) {\n    return e;\n  }\n  // skipEmptyListItem: false\n}, Se = function(e) {\n  return Object.assign({}, re, e);\n};\nB.buildOptions = Se;\nB.defaultOptions = re;\nclass Me {\n  constructor(t) {\n    this.tagname = t, this.child = [], this[\":@\"] = {};\n  }\n  add(t, r) {\n    t === \"__proto__\" && (t = \"#__proto__\"), this.child.push({ [t]: r });\n  }\n  addChild(t) {\n    t.tagname === \"__proto__\" && (t.tagname = \"#__proto__\"), t[\":@\"] && Object.keys(t[\":@\"]).length > 0 ? this.child.push({ [t.tagname]: t.child, \":@\": t[\":@\"] }) : this.child.push({ [t.tagname]: t.child });\n  }\n}\nvar Be = Me;\nconst ke = O;\nfunction qe(e, t) {\n  const r = {};\n  if (e[t + 3] === \"O\" && e[t + 4] === \"C\" && e[t + 5] === \"T\" && e[t + 6] === \"Y\" && e[t + 7] === \"P\" && e[t + 8] === \"E\") {\n    t = t + 9;\n    let s = 1, n = !1, i = !1, d = \"\";\n    for (; t < e.length; t++)\n      if (e[t] === \"<\" && !i) {\n        if (n && Ge(e, t))\n          t += 7, [entityName, val, t] = Xe(e, t + 1), val.indexOf(\"&\") === -1 && (r[We(entityName)] = {\n            regx: RegExp(`&${entityName};`, \"g\"),\n            val\n          });\n        else if (n && ze(e, t))\n          t += 8;\n        else if (n && He(e, t))\n          t += 8;\n        else if (n && Ke(e, t))\n          t += 9;\n        else if (Ue)\n          i = !0;\n        else\n          throw new Error(\"Invalid DOCTYPE\");\n        s++, d = \"\";\n      } else if (e[t] === \">\") {\n        if (i ? e[t - 1] === \"-\" && e[t - 2] === \"-\" && (i = !1, s--) : s--, s === 0)\n          break;\n      } else\n        e[t] === \"[\" ? n = !0 : d += e[t];\n    if (s !== 0)\n      throw new Error(\"Unclosed DOCTYPE\");\n  } else\n    throw new Error(\"Invalid Tag instead of DOCTYPE\");\n  return { entities: r, i: t };\n}\nfunction Xe(e, t) {\n  let r = \"\";\n  for (; t < e.length && e[t] !== \"'\" && e[t] !== '\"'; t++)\n    r += e[t];\n  if (r = r.trim(), r.indexOf(\" \") !== -1)\n    throw new Error(\"External entites are not supported\");\n  const s = e[t++];\n  let n = \"\";\n  for (; t < e.length && e[t] !== s; t++)\n    n += e[t];\n  return [r, n, t];\n}\nfunction Ue(e, t) {\n  return e[t + 1] === \"!\" && e[t + 2] === \"-\" && e[t + 3] === \"-\";\n}\nfunction Ge(e, t) {\n  return e[t + 1] === \"!\" && e[t + 2] === \"E\" && e[t + 3] === \"N\" && e[t + 4] === \"T\" && e[t + 5] === \"I\" && e[t + 6] === \"T\" && e[t + 7] === \"Y\";\n}\nfunction ze(e, t) {\n  return e[t + 1] === \"!\" && e[t + 2] === \"E\" && e[t + 3] === \"L\" && e[t + 4] === \"E\" && e[t + 5] === \"M\" && e[t + 6] === \"E\" && e[t + 7] === \"N\" && e[t + 8] === \"T\";\n}\nfunction He(e, t) {\n  return e[t + 1] === \"!\" && e[t + 2] === \"A\" && e[t + 3] === \"T\" && e[t + 4] === \"T\" && e[t + 5] === \"L\" && e[t + 6] === \"I\" && e[t + 7] === \"S\" && e[t + 8] === \"T\";\n}\nfunction Ke(e, t) {\n  return e[t + 1] === \"!\" && e[t + 2] === \"N\" && e[t + 3] === \"O\" && e[t + 4] === \"T\" && e[t + 5] === \"A\" && e[t + 6] === \"T\" && e[t + 7] === \"I\" && e[t + 8] === \"O\" && e[t + 9] === \"N\";\n}\nfunction We(e) {\n  if (ke.isName(e))\n    return e;\n  throw new Error(`Invalid entity name ${e}`);\n}\nvar Ze = qe;\nconst je = /^[-+]?0x[a-fA-F0-9]+$/, Ye = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n!Number.parseInt && window.parseInt && (Number.parseInt = window.parseInt);\n!Number.parseFloat && window.parseFloat && (Number.parseFloat = window.parseFloat);\nconst Je = {\n  hex: !0,\n  leadingZeros: !0,\n  decimalPoint: \".\",\n  eNotation: !0\n  //skipLike: /regex/\n};\nfunction Qe(e, t = {}) {\n  if (t = Object.assign({}, Je, t), !e || typeof e != \"string\")\n    return e;\n  let r = e.trim();\n  if (t.skipLike !== void 0 && t.skipLike.test(r))\n    return e;\n  if (t.hex && je.test(r))\n    return Number.parseInt(r, 16);\n  {\n    const s = Ye.exec(r);\n    if (s) {\n      const n = s[1], i = s[2];\n      let d = De(s[3]);\n      const u = s[4] || s[6];\n      if (!t.leadingZeros && i.length > 0 && n && r[2] !== \".\")\n        return e;\n      if (!t.leadingZeros && i.length > 0 && !n && r[1] !== \".\")\n        return e;\n      {\n        const o = Number(r), a = \"\" + o;\n        return a.search(/[eE]/) !== -1 || u ? t.eNotation ? o : e : r.indexOf(\".\") !== -1 ? a === \"0\" && d === \"\" || a === d || n && a === \"-\" + d ? o : e : i ? d === a || n + d === a ? o : e : r === a || r === n + a ? o : e;\n      }\n    } else\n      return e;\n  }\n}\nfunction De(e) {\n  return e && e.indexOf(\".\") !== -1 && (e = e.replace(/0+$/, \"\"), e === \".\" ? e = \"0\" : e[0] === \".\" ? e = \"0\" + e : e[e.length - 1] === \".\" && (e = e.substr(0, e.length - 1))), e;\n}\nvar et = Qe;\nconst k = O, T = Be, tt = Ze, rt = et;\n\"<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)\".replace(/NAME/g, k.nameRegexp);\nlet nt = class {\n  constructor(t) {\n    this.options = t, this.currentNode = null, this.tagsNodeStack = [], this.docTypeEntities = {}, this.lastEntities = {\n      apos: { regex: /&(apos|#39|#x27);/g, val: \"'\" },\n      gt: { regex: /&(gt|#62|#x3E);/g, val: \">\" },\n      lt: { regex: /&(lt|#60|#x3C);/g, val: \"<\" },\n      quot: { regex: /&(quot|#34|#x22);/g, val: '\"' }\n    }, this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" }, this.htmlEntities = {\n      space: { regex: /&(nbsp|#160);/g, val: \" \" },\n      // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n      // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n      // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n      // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n      // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n      cent: { regex: /&(cent|#162);/g, val: \"¢\" },\n      pound: { regex: /&(pound|#163);/g, val: \"£\" },\n      yen: { regex: /&(yen|#165);/g, val: \"¥\" },\n      euro: { regex: /&(euro|#8364);/g, val: \"€\" },\n      copyright: { regex: /&(copy|#169);/g, val: \"©\" },\n      reg: { regex: /&(reg|#174);/g, val: \"®\" },\n      inr: { regex: /&(inr|#8377);/g, val: \"₹\" }\n    }, this.addExternalEntities = it, this.parseXml = at, this.parseTextData = st, this.resolveNameSpace = ot, this.buildAttributesMap = dt, this.isItStopNode = ht, this.replaceEntitiesValue = ft, this.readStopNodeData = gt, this.saveTextToParentTag = ct, this.addChild = lt;\n  }\n};\nfunction it(e) {\n  const t = Object.keys(e);\n  for (let r = 0; r < t.length; r++) {\n    const s = t[r];\n    this.lastEntities[s] = {\n      regex: new RegExp(\"&\" + s + \";\", \"g\"),\n      val: e[s]\n    };\n  }\n}\nfunction st(e, t, r, s, n, i, d) {\n  if (e !== void 0 && (this.options.trimValues && !s && (e = e.trim()), e.length > 0)) {\n    d || (e = this.replaceEntitiesValue(e));\n    const u = this.options.tagValueProcessor(t, e, r, n, i);\n    return u == null ? e : typeof u != typeof e || u !== e ? u : this.options.trimValues ? $(e, this.options.parseTagValue, this.options.numberParseOptions) : e.trim() === e ? $(e, this.options.parseTagValue, this.options.numberParseOptions) : e;\n  }\n}\nfunction ot(e) {\n  if (this.options.removeNSPrefix) {\n    const t = e.split(\":\"), r = e.charAt(0) === \"/\" ? \"/\" : \"\";\n    if (t[0] === \"xmlns\")\n      return \"\";\n    t.length === 2 && (e = r + t[1]);\n  }\n  return e;\n}\nconst ut = new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*(['\"])([\\\\s\\\\S]*?)\\\\3)?`, \"gm\");\nfunction dt(e, t, r) {\n  if (!this.options.ignoreAttributes && typeof e == \"string\") {\n    const s = k.getAllMatches(e, ut), n = s.length, i = {};\n    for (let d = 0; d < n; d++) {\n      const u = this.resolveNameSpace(s[d][1]);\n      let o = s[d][4], a = this.options.attributeNamePrefix + u;\n      if (u.length)\n        if (this.options.transformAttributeName && (a = this.options.transformAttributeName(a)), a === \"__proto__\" && (a = \"#__proto__\"), o !== void 0) {\n          this.options.trimValues && (o = o.trim()), o = this.replaceEntitiesValue(o);\n          const l = this.options.attributeValueProcessor(u, o, t);\n          l == null ? i[a] = o : typeof l != typeof o || l !== o ? i[a] = l : i[a] = $(\n            o,\n            this.options.parseAttributeValue,\n            this.options.numberParseOptions\n          );\n        } else\n          this.options.allowBooleanAttributes && (i[a] = !0);\n    }\n    if (!Object.keys(i).length)\n      return;\n    if (this.options.attributesGroupName) {\n      const d = {};\n      return d[this.options.attributesGroupName] = i, d;\n    }\n    return i;\n  }\n}\nconst at = function(e) {\n  e = e.replace(/\\r\\n?/g, `\n`);\n  const t = new T(\"!xml\");\n  let r = t, s = \"\", n = \"\";\n  for (let i = 0; i < e.length; i++)\n    if (e[i] === \"<\")\n      if (e[i + 1] === \"/\") {\n        const u = y(e, \">\", i, \"Closing Tag is not closed.\");\n        let o = e.substring(i + 2, u).trim();\n        if (this.options.removeNSPrefix) {\n          const f = o.indexOf(\":\");\n          f !== -1 && (o = o.substr(f + 1));\n        }\n        this.options.transformTagName && (o = this.options.transformTagName(o)), r && (s = this.saveTextToParentTag(s, r, n));\n        const a = n.substring(n.lastIndexOf(\".\") + 1);\n        if (o && this.options.unpairedTags.indexOf(o) !== -1)\n          throw new Error(`Unpaired tag can not be used as closing tag: </${o}>`);\n        let l = 0;\n        a && this.options.unpairedTags.indexOf(a) !== -1 ? (l = n.lastIndexOf(\".\", n.lastIndexOf(\".\") - 1), this.tagsNodeStack.pop()) : l = n.lastIndexOf(\".\"), n = n.substring(0, l), r = this.tagsNodeStack.pop(), s = \"\", i = u;\n      } else if (e[i + 1] === \"?\") {\n        let u = x(e, i, !1, \"?>\");\n        if (!u)\n          throw new Error(\"Pi Tag is not closed.\");\n        if (s = this.saveTextToParentTag(s, r, n), !(this.options.ignoreDeclaration && u.tagName === \"?xml\" || this.options.ignorePiTags)) {\n          const o = new T(u.tagName);\n          o.add(this.options.textNodeName, \"\"), u.tagName !== u.tagExp && u.attrExpPresent && (o[\":@\"] = this.buildAttributesMap(u.tagExp, n, u.tagName)), this.addChild(r, o, n);\n        }\n        i = u.closeIndex + 1;\n      } else if (e.substr(i + 1, 3) === \"!--\") {\n        const u = y(e, \"-->\", i + 4, \"Comment is not closed.\");\n        if (this.options.commentPropName) {\n          const o = e.substring(i + 4, u - 2);\n          s = this.saveTextToParentTag(s, r, n), r.add(this.options.commentPropName, [{ [this.options.textNodeName]: o }]);\n        }\n        i = u;\n      } else if (e.substr(i + 1, 2) === \"!D\") {\n        const u = tt(e, i);\n        this.docTypeEntities = u.entities, i = u.i;\n      } else if (e.substr(i + 1, 2) === \"![\") {\n        const u = y(e, \"]]>\", i, \"CDATA is not closed.\") - 2, o = e.substring(i + 9, u);\n        if (s = this.saveTextToParentTag(s, r, n), this.options.cdataPropName)\n          r.add(this.options.cdataPropName, [{ [this.options.textNodeName]: o }]);\n        else {\n          let a = this.parseTextData(o, r.tagname, n, !0, !1, !0);\n          a == null && (a = \"\"), r.add(this.options.textNodeName, a);\n        }\n        i = u + 2;\n      } else {\n        let u = x(e, i, this.options.removeNSPrefix), o = u.tagName;\n        const a = u.rawTagName;\n        let l = u.tagExp, f = u.attrExpPresent, c = u.closeIndex;\n        this.options.transformTagName && (o = this.options.transformTagName(o)), r && s && r.tagname !== \"!xml\" && (s = this.saveTextToParentTag(s, r, n, !1));\n        const g = r;\n        if (g && this.options.unpairedTags.indexOf(g.tagname) !== -1 && (r = this.tagsNodeStack.pop(), n = n.substring(0, n.lastIndexOf(\".\"))), o !== t.tagname && (n += n ? \".\" + o : o), this.isItStopNode(this.options.stopNodes, n, o)) {\n          let h = \"\";\n          if (l.length > 0 && l.lastIndexOf(\"/\") === l.length - 1)\n            i = u.closeIndex;\n          else if (this.options.unpairedTags.indexOf(o) !== -1)\n            i = u.closeIndex;\n          else {\n            const E = this.readStopNodeData(e, a, c + 1);\n            if (!E)\n              throw new Error(`Unexpected end of ${a}`);\n            i = E.i, h = E.tagContent;\n          }\n          const _ = new T(o);\n          o !== l && f && (_[\":@\"] = this.buildAttributesMap(l, n, o)), h && (h = this.parseTextData(h, o, n, !0, f, !0, !0)), n = n.substr(0, n.lastIndexOf(\".\")), _.add(this.options.textNodeName, h), this.addChild(r, _, n);\n        } else {\n          if (l.length > 0 && l.lastIndexOf(\"/\") === l.length - 1) {\n            o[o.length - 1] === \"/\" ? (o = o.substr(0, o.length - 1), n = n.substr(0, n.length - 1), l = o) : l = l.substr(0, l.length - 1), this.options.transformTagName && (o = this.options.transformTagName(o));\n            const h = new T(o);\n            o !== l && f && (h[\":@\"] = this.buildAttributesMap(l, n, o)), this.addChild(r, h, n), n = n.substr(0, n.lastIndexOf(\".\"));\n          } else {\n            const h = new T(o);\n            this.tagsNodeStack.push(r), o !== l && f && (h[\":@\"] = this.buildAttributesMap(l, n, o)), this.addChild(r, h, n), r = h;\n          }\n          s = \"\", i = c;\n        }\n      }\n    else\n      s += e[i];\n  return t.child;\n};\nfunction lt(e, t, r) {\n  const s = this.options.updateTag(t.tagname, r, t[\":@\"]);\n  s === !1 || (typeof s == \"string\" && (t.tagname = s), e.addChild(t));\n}\nconst ft = function(e) {\n  if (this.options.processEntities) {\n    for (let t in this.docTypeEntities) {\n      const r = this.docTypeEntities[t];\n      e = e.replace(r.regx, r.val);\n    }\n    for (let t in this.lastEntities) {\n      const r = this.lastEntities[t];\n      e = e.replace(r.regex, r.val);\n    }\n    if (this.options.htmlEntities)\n      for (let t in this.htmlEntities) {\n        const r = this.htmlEntities[t];\n        e = e.replace(r.regex, r.val);\n      }\n    e = e.replace(this.ampEntity.regex, this.ampEntity.val);\n  }\n  return e;\n};\nfunction ct(e, t, r, s) {\n  return e && (s === void 0 && (s = Object.keys(t.child).length === 0), e = this.parseTextData(\n    e,\n    t.tagname,\n    r,\n    !1,\n    t[\":@\"] ? Object.keys(t[\":@\"]).length !== 0 : !1,\n    s\n  ), e !== void 0 && e !== \"\" && t.add(this.options.textNodeName, e), e = \"\"), e;\n}\nfunction ht(e, t, r) {\n  const s = \"*.\" + r;\n  for (const n in e) {\n    const i = e[n];\n    if (s === i || t === i)\n      return !0;\n  }\n  return !1;\n}\nfunction pt(e, t, r = \">\") {\n  let s, n = \"\";\n  for (let i = t; i < e.length; i++) {\n    let d = e[i];\n    if (s)\n      d === s && (s = \"\");\n    else if (d === '\"' || d === \"'\")\n      s = d;\n    else if (d === r[0])\n      if (r[1]) {\n        if (e[i + 1] === r[1])\n          return {\n            data: n,\n            index: i\n          };\n      } else\n        return {\n          data: n,\n          index: i\n        };\n    else\n      d === \"\t\" && (d = \" \");\n    n += d;\n  }\n}\nfunction y(e, t, r, s) {\n  const n = e.indexOf(t, r);\n  if (n === -1)\n    throw new Error(s);\n  return n + t.length - 1;\n}\nfunction x(e, t, r, s = \">\") {\n  const n = pt(e, t + 1, s);\n  if (!n)\n    return;\n  let i = n.data;\n  const d = n.index, u = i.search(/\\s/);\n  let o = i, a = !0;\n  u !== -1 && (o = i.substr(0, u).replace(/\\s\\s*$/, \"\"), i = i.substr(u + 1));\n  const l = o;\n  if (r) {\n    const f = o.indexOf(\":\");\n    f !== -1 && (o = o.substr(f + 1), a = o !== n.data.substr(f + 1));\n  }\n  return {\n    tagName: o,\n    tagExp: i,\n    closeIndex: d,\n    attrExpPresent: a,\n    rawTagName: l\n  };\n}\nfunction gt(e, t, r) {\n  const s = r;\n  let n = 1;\n  for (; r < e.length; r++)\n    if (e[r] === \"<\")\n      if (e[r + 1] === \"/\") {\n        const i = y(e, \">\", r, `${t} is not closed`);\n        if (e.substring(r + 2, i).trim() === t && (n--, n === 0))\n          return {\n            tagContent: e.substring(s, r),\n            i\n          };\n        r = i;\n      } else if (e[r + 1] === \"?\")\n        r = y(e, \"?>\", r + 1, \"StopNode is not closed.\");\n      else if (e.substr(r + 1, 3) === \"!--\")\n        r = y(e, \"-->\", r + 3, \"StopNode is not closed.\");\n      else if (e.substr(r + 1, 2) === \"![\")\n        r = y(e, \"]]>\", r, \"StopNode is not closed.\") - 2;\n      else {\n        const i = x(e, r, \">\");\n        i && ((i && i.tagName) === t && i.tagExp[i.tagExp.length - 1] !== \"/\" && n++, r = i.closeIndex);\n      }\n}\nfunction $(e, t, r) {\n  if (t && typeof e == \"string\") {\n    const s = e.trim();\n    return s === \"true\" ? !0 : s === \"false\" ? !1 : rt(e, r);\n  } else\n    return k.isExist(e) ? e : \"\";\n}\nvar wt = nt, ne = {};\nfunction mt(e, t) {\n  return ie(e, t);\n}\nfunction ie(e, t, r) {\n  let s;\n  const n = {};\n  for (let i = 0; i < e.length; i++) {\n    const d = e[i], u = Nt(d);\n    let o = \"\";\n    if (r === void 0 ? o = u : o = r + \".\" + u, u === t.textNodeName)\n      s === void 0 ? s = d[u] : s += \"\" + d[u];\n    else {\n      if (u === void 0)\n        continue;\n      if (d[u]) {\n        let a = ie(d[u], t, o);\n        const l = bt(a, t);\n        d[\":@\"] ? Et(a, d[\":@\"], o, t) : Object.keys(a).length === 1 && a[t.textNodeName] !== void 0 && !t.alwaysCreateTextNode ? a = a[t.textNodeName] : Object.keys(a).length === 0 && (t.alwaysCreateTextNode ? a[t.textNodeName] = \"\" : a = \"\"), n[u] !== void 0 && n.hasOwnProperty(u) ? (Array.isArray(n[u]) || (n[u] = [n[u]]), n[u].push(a)) : t.isArray(u, o, l) ? n[u] = [a] : n[u] = a;\n      }\n    }\n  }\n  return typeof s == \"string\" ? s.length > 0 && (n[t.textNodeName] = s) : s !== void 0 && (n[t.textNodeName] = s), n;\n}\nfunction Nt(e) {\n  const t = Object.keys(e);\n  for (let r = 0; r < t.length; r++) {\n    const s = t[r];\n    if (s !== \":@\")\n      return s;\n  }\n}\nfunction Et(e, t, r, s) {\n  if (t) {\n    const n = Object.keys(t), i = n.length;\n    for (let d = 0; d < i; d++) {\n      const u = n[d];\n      s.isArray(u, r + \".\" + u, !0, !0) ? e[u] = [t[u]] : e[u] = t[u];\n    }\n  }\n}\nfunction bt(e, t) {\n  const { textNodeName: r } = t, s = Object.keys(e).length;\n  return !!(s === 0 || s === 1 && (e[r] || typeof e[r] == \"boolean\" || e[r] === 0));\n}\nne.prettify = mt;\nconst { buildOptions: yt } = B, _t = wt, { prettify: vt } = ne, Tt = S;\nlet It = class {\n  constructor(t) {\n    this.externalEntities = {}, this.options = yt(t);\n  }\n  /**\n   * Parse XML dats to JS object \n   * @param {string|Buffer} xmlData \n   * @param {boolean|Object} validationOption \n   */\n  parse(t, r) {\n    if (typeof t != \"string\")\n      if (t.toString)\n        t = t.toString();\n      else\n        throw new Error(\"XML data is accepted in String or Bytes[] form.\");\n    if (r) {\n      r === !0 && (r = {});\n      const i = Tt.validate(t, r);\n      if (i !== !0)\n        throw Error(`${i.err.msg}:${i.err.line}:${i.err.col}`);\n    }\n    const s = new _t(this.options);\n    s.addExternalEntities(this.externalEntities);\n    const n = s.parseXml(t);\n    return this.options.preserveOrder || n === void 0 ? n : vt(n, this.options);\n  }\n  /**\n   * Add Entity which is not by default supported by this library\n   * @param {string} key \n   * @param {string} value \n   */\n  addEntity(t, r) {\n    if (r.indexOf(\"&\") !== -1)\n      throw new Error(\"Entity value can't have '&'\");\n    if (t.indexOf(\"&\") !== -1 || t.indexOf(\";\") !== -1)\n      throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'\");\n    if (r === \"&\")\n      throw new Error(\"An entity with value '&' is not permitted\");\n    this.externalEntities[t] = r;\n  }\n};\nvar At = It;\nconst Ot = `\n`;\nfunction Ct(e, t) {\n  let r = \"\";\n  return t.format && t.indentBy.length > 0 && (r = Ot), se(e, t, \"\", r);\n}\nfunction se(e, t, r, s) {\n  let n = \"\", i = !1;\n  for (let d = 0; d < e.length; d++) {\n    const u = e[d], o = Pt(u);\n    if (o === void 0)\n      continue;\n    let a = \"\";\n    if (r.length === 0 ? a = o : a = `${r}.${o}`, o === t.textNodeName) {\n      let h = u[o];\n      xt(a, t) || (h = t.tagValueProcessor(o, h), h = oe(h, t)), i && (n += s), n += h, i = !1;\n      continue;\n    } else if (o === t.cdataPropName) {\n      i && (n += s), n += `<![CDATA[${u[o][0][t.textNodeName]}]]>`, i = !1;\n      continue;\n    } else if (o === t.commentPropName) {\n      n += s + `<!--${u[o][0][t.textNodeName]}-->`, i = !0;\n      continue;\n    } else if (o[0] === \"?\") {\n      const h = K(u[\":@\"], t), _ = o === \"?xml\" ? \"\" : s;\n      let E = u[o][0][t.textNodeName];\n      E = E.length !== 0 ? \" \" + E : \"\", n += _ + `<${o}${E}${h}?>`, i = !0;\n      continue;\n    }\n    let l = s;\n    l !== \"\" && (l += t.indentBy);\n    const f = K(u[\":@\"], t), c = s + `<${o}${f}`, g = se(u[o], t, a, l);\n    t.unpairedTags.indexOf(o) !== -1 ? t.suppressUnpairedNode ? n += c + \">\" : n += c + \"/>\" : (!g || g.length === 0) && t.suppressEmptyNode ? n += c + \"/>\" : g && g.endsWith(\">\") ? n += c + `>${g}${s}</${o}>` : (n += c + \">\", g && s !== \"\" && (g.includes(\"/>\") || g.includes(\"</\")) ? n += s + t.indentBy + g + s : n += g, n += `</${o}>`), i = !0;\n  }\n  return n;\n}\nfunction Pt(e) {\n  const t = Object.keys(e);\n  for (let r = 0; r < t.length; r++) {\n    const s = t[r];\n    if (e.hasOwnProperty(s) && s !== \":@\")\n      return s;\n  }\n}\nfunction K(e, t) {\n  let r = \"\";\n  if (e && !t.ignoreAttributes)\n    for (let s in e) {\n      if (!e.hasOwnProperty(s))\n        continue;\n      let n = t.attributeValueProcessor(s, e[s]);\n      n = oe(n, t), n === !0 && t.suppressBooleanAttributes ? r += ` ${s.substr(t.attributeNamePrefix.length)}` : r += ` ${s.substr(t.attributeNamePrefix.length)}=\"${n}\"`;\n    }\n  return r;\n}\nfunction xt(e, t) {\n  e = e.substr(0, e.length - t.textNodeName.length - 1);\n  let r = e.substr(e.lastIndexOf(\".\") + 1);\n  for (let s in t.stopNodes)\n    if (t.stopNodes[s] === e || t.stopNodes[s] === \"*.\" + r)\n      return !0;\n  return !1;\n}\nfunction oe(e, t) {\n  if (e && e.length > 0 && t.processEntities)\n    for (let r = 0; r < t.entities.length; r++) {\n      const s = t.entities[r];\n      e = e.replace(s.regex, s.val);\n    }\n  return e;\n}\nvar $t = Ct;\nconst Ft = $t, Vt = {\n  attributeNamePrefix: \"@_\",\n  attributesGroupName: !1,\n  textNodeName: \"#text\",\n  ignoreAttributes: !0,\n  cdataPropName: !1,\n  format: !1,\n  indentBy: \"  \",\n  suppressEmptyNode: !1,\n  suppressUnpairedNode: !0,\n  suppressBooleanAttributes: !0,\n  tagValueProcessor: function(e, t) {\n    return t;\n  },\n  attributeValueProcessor: function(e, t) {\n    return t;\n  },\n  preserveOrder: !1,\n  commentPropName: !1,\n  unpairedTags: [],\n  entities: [\n    { regex: new RegExp(\"&\", \"g\"), val: \"&amp;\" },\n    //it must be on top\n    { regex: new RegExp(\">\", \"g\"), val: \"&gt;\" },\n    { regex: new RegExp(\"<\", \"g\"), val: \"&lt;\" },\n    { regex: new RegExp(\"'\", \"g\"), val: \"&apos;\" },\n    { regex: new RegExp('\"', \"g\"), val: \"&quot;\" }\n  ],\n  processEntities: !0,\n  stopNodes: [],\n  // transformTagName: false,\n  // transformAttributeName: false,\n  oneListGroup: !1\n};\nfunction b(e) {\n  this.options = Object.assign({}, Vt, e), this.options.ignoreAttributes || this.options.attributesGroupName ? this.isAttribute = function() {\n    return !1;\n  } : (this.attrPrefixLen = this.options.attributeNamePrefix.length, this.isAttribute = St), this.processTextOrObjNode = Lt, this.options.format ? (this.indentate = Rt, this.tagEndChar = `>\n`, this.newLine = `\n`) : (this.indentate = function() {\n    return \"\";\n  }, this.tagEndChar = \">\", this.newLine = \"\");\n}\nb.prototype.build = function(e) {\n  return this.options.preserveOrder ? Ft(e, this.options) : (Array.isArray(e) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1 && (e = {\n    [this.options.arrayNodeName]: e\n  }), this.j2x(e, 0).val);\n};\nb.prototype.j2x = function(e, t) {\n  let r = \"\", s = \"\";\n  for (let n in e)\n    if (Object.prototype.hasOwnProperty.call(e, n))\n      if (typeof e[n] > \"u\")\n        this.isAttribute(n) && (s += \"\");\n      else if (e[n] === null)\n        this.isAttribute(n) ? s += \"\" : n[0] === \"?\" ? s += this.indentate(t) + \"<\" + n + \"?\" + this.tagEndChar : s += this.indentate(t) + \"<\" + n + \"/\" + this.tagEndChar;\n      else if (e[n] instanceof Date)\n        s += this.buildTextValNode(e[n], n, \"\", t);\n      else if (typeof e[n] != \"object\") {\n        const i = this.isAttribute(n);\n        if (i)\n          r += this.buildAttrPairStr(i, \"\" + e[n]);\n        else if (n === this.options.textNodeName) {\n          let d = this.options.tagValueProcessor(n, \"\" + e[n]);\n          s += this.replaceEntitiesValue(d);\n        } else\n          s += this.buildTextValNode(e[n], n, \"\", t);\n      } else if (Array.isArray(e[n])) {\n        const i = e[n].length;\n        let d = \"\";\n        for (let u = 0; u < i; u++) {\n          const o = e[n][u];\n          typeof o > \"u\" || (o === null ? n[0] === \"?\" ? s += this.indentate(t) + \"<\" + n + \"?\" + this.tagEndChar : s += this.indentate(t) + \"<\" + n + \"/\" + this.tagEndChar : typeof o == \"object\" ? this.options.oneListGroup ? d += this.j2x(o, t + 1).val : d += this.processTextOrObjNode(o, n, t) : d += this.buildTextValNode(o, n, \"\", t));\n        }\n        this.options.oneListGroup && (d = this.buildObjectNode(d, n, \"\", t)), s += d;\n      } else if (this.options.attributesGroupName && n === this.options.attributesGroupName) {\n        const i = Object.keys(e[n]), d = i.length;\n        for (let u = 0; u < d; u++)\n          r += this.buildAttrPairStr(i[u], \"\" + e[n][i[u]]);\n      } else\n        s += this.processTextOrObjNode(e[n], n, t);\n  return { attrStr: r, val: s };\n};\nb.prototype.buildAttrPairStr = function(e, t) {\n  return t = this.options.attributeValueProcessor(e, \"\" + t), t = this.replaceEntitiesValue(t), this.options.suppressBooleanAttributes && t === \"true\" ? \" \" + e : \" \" + e + '=\"' + t + '\"';\n};\nfunction Lt(e, t, r) {\n  const s = this.j2x(e, r + 1);\n  return e[this.options.textNodeName] !== void 0 && Object.keys(e).length === 1 ? this.buildTextValNode(e[this.options.textNodeName], t, s.attrStr, r) : this.buildObjectNode(s.val, t, s.attrStr, r);\n}\nb.prototype.buildObjectNode = function(e, t, r, s) {\n  if (e === \"\")\n    return t[0] === \"?\" ? this.indentate(s) + \"<\" + t + r + \"?\" + this.tagEndChar : this.indentate(s) + \"<\" + t + r + this.closeTag(t) + this.tagEndChar;\n  {\n    let n = \"</\" + t + this.tagEndChar, i = \"\";\n    return t[0] === \"?\" && (i = \"?\", n = \"\"), (r || r === \"\") && e.indexOf(\"<\") === -1 ? this.indentate(s) + \"<\" + t + r + i + \">\" + e + n : this.options.commentPropName !== !1 && t === this.options.commentPropName && i.length === 0 ? this.indentate(s) + `<!--${e}-->` + this.newLine : this.indentate(s) + \"<\" + t + r + i + this.tagEndChar + e + this.indentate(s) + n;\n  }\n};\nb.prototype.closeTag = function(e) {\n  let t = \"\";\n  return this.options.unpairedTags.indexOf(e) !== -1 ? this.options.suppressUnpairedNode || (t = \"/\") : this.options.suppressEmptyNode ? t = \"/\" : t = `></${e}`, t;\n};\nb.prototype.buildTextValNode = function(e, t, r, s) {\n  if (this.options.cdataPropName !== !1 && t === this.options.cdataPropName)\n    return this.indentate(s) + `<![CDATA[${e}]]>` + this.newLine;\n  if (this.options.commentPropName !== !1 && t === this.options.commentPropName)\n    return this.indentate(s) + `<!--${e}-->` + this.newLine;\n  if (t[0] === \"?\")\n    return this.indentate(s) + \"<\" + t + r + \"?\" + this.tagEndChar;\n  {\n    let n = this.options.tagValueProcessor(t, e);\n    return n = this.replaceEntitiesValue(n), n === \"\" ? this.indentate(s) + \"<\" + t + r + this.closeTag(t) + this.tagEndChar : this.indentate(s) + \"<\" + t + r + \">\" + n + \"</\" + t + this.tagEndChar;\n  }\n};\nb.prototype.replaceEntitiesValue = function(e) {\n  if (e && e.length > 0 && this.options.processEntities)\n    for (let t = 0; t < this.options.entities.length; t++) {\n      const r = this.options.entities[t];\n      e = e.replace(r.regex, r.val);\n    }\n  return e;\n};\nfunction Rt(e) {\n  return this.options.indentBy.repeat(e);\n}\nfunction St(e) {\n  return e.startsWith(this.options.attributeNamePrefix) && e !== this.options.textNodeName ? e.substr(this.attrPrefixLen) : !1;\n}\nvar Mt = b;\nconst Bt = S, kt = At, qt = Mt;\nvar W = {\n  XMLParser: kt,\n  XMLValidator: Bt,\n  XMLBuilder: qt\n};\nfunction Xt(e) {\n  if (typeof e != \"string\")\n    throw new TypeError(`Expected a \\`string\\`, got \\`${typeof e}\\``);\n  if (e = e.trim(), e.length === 0 || W.XMLValidator.validate(e) !== !0)\n    return !1;\n  let t;\n  const r = new W.XMLParser();\n  try {\n    t = r.parse(e);\n  } catch {\n    return !1;\n  }\n  return !(!t || !(\"svg\" in t));\n}\n/**\n * @copyright Copyright (c) 2022 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 */\nclass cr {\n  _view;\n  constructor(t) {\n    Ut(t), this._view = t;\n  }\n  get id() {\n    return this._view.id;\n  }\n  get name() {\n    return this._view.name;\n  }\n  get caption() {\n    return this._view.caption;\n  }\n  get emptyTitle() {\n    return this._view.emptyTitle;\n  }\n  get emptyCaption() {\n    return this._view.emptyCaption;\n  }\n  get getContents() {\n    return this._view.getContents;\n  }\n  get icon() {\n    return this._view.icon;\n  }\n  set icon(t) {\n    this._view.icon = t;\n  }\n  get order() {\n    return this._view.order;\n  }\n  set order(t) {\n    this._view.order = t;\n  }\n  get params() {\n    return this._view.params;\n  }\n  set params(t) {\n    this._view.params = t;\n  }\n  get columns() {\n    return this._view.columns;\n  }\n  get emptyView() {\n    return this._view.emptyView;\n  }\n  get parent() {\n    return this._view.parent;\n  }\n  get sticky() {\n    return this._view.sticky;\n  }\n  get expanded() {\n    return this._view.expanded;\n  }\n  set expanded(t) {\n    this._view.expanded = t;\n  }\n  get defaultSortKey() {\n    return this._view.defaultSortKey;\n  }\n}\nconst Ut = function(e) {\n  if (!e.id || typeof e.id != \"string\")\n    throw new Error(\"View id is required and must be a string\");\n  if (!e.name || typeof e.name != \"string\")\n    throw new Error(\"View name is required and must be a string\");\n  if (e.columns && e.columns.length > 0 && (!e.caption || typeof e.caption != \"string\"))\n    throw new Error(\"View caption is required for top-level views and must be a string\");\n  if (!e.getContents || typeof e.getContents != \"function\")\n    throw new Error(\"View getContents is required and must be a function\");\n  if (!e.icon || typeof e.icon != \"string\" || !Xt(e.icon))\n    throw new Error(\"View icon is required and must be a valid svg string\");\n  if (!(\"order\" in e) || typeof e.order != \"number\")\n    throw new Error(\"View order is required and must be a number\");\n  if (e.columns && e.columns.forEach((t) => {\n    if (!(t instanceof Ie))\n      throw new Error(\"View columns must be an array of Column. Invalid column found\");\n  }), e.emptyView && typeof e.emptyView != \"function\")\n    throw new Error(\"View emptyView must be a function\");\n  if (e.parent && typeof e.parent != \"string\")\n    throw new Error(\"View parent must be a string\");\n  if (\"sticky\" in e && typeof e.sticky != \"boolean\")\n    throw new Error(\"View sticky must be a boolean\");\n  if (\"expanded\" in e && typeof e.expanded != \"boolean\")\n    throw new Error(\"View expanded must be a boolean\");\n  if (e.defaultSortKey && typeof e.defaultSortKey != \"string\")\n    throw new Error(\"View defaultSortKey must be a string\");\n  return !0;\n};\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\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 */\nconst hr = function(e) {\n  return F().registerEntry(e);\n}, pr = function(e) {\n  return F().unregisterEntry(e);\n}, gr = function(e) {\n  return F().getEntries(e).sort((r, s) => r.order !== void 0 && s.order !== void 0 && r.order !== s.order ? r.order - s.order : r.displayName.localeCompare(s.displayName, void 0, { numeric: !0, sensitivity: \"base\" }));\n};\nexport {\n  Ie as Column,\n  Z as DefaultType,\n  ye as File,\n  Qt as FileAction,\n  R as FileType,\n  _e as Folder,\n  tr as Header,\n  Te as Navigation,\n  D as Node,\n  Q as NodeStatus,\n  N as Permission,\n  cr as View,\n  hr as addNewFileMenuEntry,\n  ur as davGetClient,\n  sr as davGetDefaultPropfind,\n  Ee as davGetFavoritesReport,\n  or as davGetRecentSearch,\n  be as davParsePermissions,\n  te as davRemoteURL,\n  ve as davResultToNode,\n  ee as davRootPath,\n  Y as defaultDavNamespaces,\n  j as defaultDavProperties,\n  Yt as formatFileSize,\n  L as getDavNameSpaces,\n  V as getDavProperties,\n  dr as getFavoriteNodes,\n  er as getFileActions,\n  nr as getFileListHeaders,\n  ar as getNavigation,\n  gr as getNewFileMenuEntries,\n  Jt as parseFileSize,\n  ir as registerDavProperty,\n  Dt as registerFileAction,\n  rr as registerFileListHeaders,\n  pr as removeNewFileMenuEntry\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"2048\":\"78a82614529a3cefcde7\",\"4180\":\"fe82f3a2dac70d6b82bc\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 4092;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t4092: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], () => (__webpack_require__(17932)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","XMLParser","XMLValidator","isSvg","input","toString","trim","length","validate","jsonObject","parser","parse","_","module","exports","name","props","component","type","Object","required","fileInfo","default","watch","setFileInfo","mounted","$el","replaceAll","methods","OCA","Files","FileInfoModel","_c","this","_self","components","NcAppSidebarTab","NcEmptyContent","id","String","icon","onMount","Function","onUpdate","onDestroy","onScrollBottomReached","data","loading","computed","activeTab","$parent","newFile","oldFile","$refs","mount","tab","beforeDestroy","_vm","ref","attrs","on","scopedSlots","_u","key","fn","_t","proxy","_v","_e","defaultBaseTag","userVisible","userAssignable","canAssign","parseTags","tags","map","_ref","fromEntries","entries","_ref2","value","camelCase","formatTag","initialTag","tag","displayName","rootUrl","generateRemoteUrl","davClient","createClient","headers","requesttoken","getRequestToken","logger","getLoggerBuilder","setApp","detectUser","build","fetchTagsPayload","setTagForFile","async","fileId","path","tagToPut","customRequest","method","error","t","Error","Vue","extend","NcLoadingIcon","NcSelectTags","Number","sortedTags","selectedTags","loadingTags","created","getDirectoryContents","details","glob","fetchTags","lastUsedOrder","url","generateUrl","lastUsedTagIds","axios","get","fetchLastUsedTagIds","lastUsedTags","remainingTags","includes","push","sortByLastUsed","a","b","indexOf","sort","showError","immediate","handler","fetchTagsForFile","$emit","createOption","newDisplayName","baseTag","every","handleInput","filter","selectedTag","Boolean","handleSelect","lastTag","sortToFront","handleCreate","tagToCreate","tagId","tagToPost","contentLocation","queryPos","substring","parts","split","result","pop","parseIdFromLocation","createTag","tagToSet","createTagForFile","createdTag","unshift","handleDeselect","deleteFile","deleteTagForFile","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_setupProxy","staticClass","_s","LegacyView","NcActionButton","NcAppSidebar","SidebarTab","SystemTags","Star","StarOutline","Sidebar","state","showTags","showTagsDefault","starLoading","isFullScreen","hasLowHeight","file","tabs","views","davPath","user","OC","getCurrentUser","uid","linkToRemote","encodePath","subtitle","isFavourited","size","time","Util","relativeModifiedDate","mtime","fullTime","moment","format","humanFileSize","background","getPreviewIfAny","appSidebar","mimetype","active","class","hasPreview","compact","subname","title","defaultAction","App","fileList","fileActions","getDefaultFileAction","PERMISSION_READ","defaultActionListener","isSystemTagsEnabled","getCapabilities","systemtags","enabled","window","addEventListener","handleWindowResize","removeEventListener","canDisplay","resetData","$nextTick","updateTabs","screen","width","height","getIconUrl","mimeType","mountType","MimeType","undefined","shareTypes","ShareTypes","SHARE_TYPE_LINK","SHARE_TYPE_EMAIL","setActiveTab","forEach","setIsActive","toggleStarred","isDir","Node","Folder","File","emit","fileid","source","root","mime","Notification","showTemporary","console","onDefaultAction","action","dir","$file","$","toggleTags","open","response","davGetDefaultPropfind","getClient","_client","parseMultiStatus","_parseFileInfo","isDirectory","FileInfo","slice","join","view","close","setFullScreenMode","document","querySelector","classList","add","remove","setShowTagsDefault","handleOpening","handleOpened","handleClosing","handleClosed","documentElement","clientHeight","_b","_d","$event","stopPropagation","preventDefault","apply","arguments","directives","rawName","expression","_l","cid","update","destroy","scrollBottomReached","iconSvg","domProps","prototype","assign","constructor","_state","debug","registerTab","findIndex","check","registerSecondaryView","Tab","_defineProperty","_id","_name","_icon","_mount","_setIsActive","_update","_destroy","_enabled","_scrollBottomReached","svg","svgText","Buffer","isBuffer","Promise","resolve","fileReader","FileReader","onload","readAsText","div","createElement","innerHTML","svgEl","firstElementChild","hasScriptAttr","Array","from","attributes","find","attr","startsWith","getElementsByTagName","sanitizeSVG","then","sanitizedSvg","_iconSvgSanitized","contentElement","getElementById","sidebarElement","appendChild","AppSidebar","SidebarView","$mount","___CSS_LOADER_EXPORT___","validator","XMLBuilder","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","code","keys","setUid","C","P","Yt","r","s","n","Math","floor","log","min","i","d","pow","toFixed","parseFloat","toLocaleString","N","NONE","CREATE","READ","UPDATE","DELETE","SHARE","ALL","j","Y","nc","oc","ocs","V","_nc_dav_properties","L","_nc_dav_namespaces","sr","or","R","J","match","X","URL","Date","crtime","permissions","owner","status","values","Q","NEW","FAILED","LOADING","LOCKED","D","_data","_attributes","_knownDavService","set","updateMtime","Reflect","deleteProperty","Proxy","replace","encodedSource","origin","basename","extension","dirname","pathname","isDavRessource","move","rename","ye","super","ee","te","ur","setHeaders","patch","fetch","dr","includeSelf","filename","ve","be","lastmod","parseInt","getcontentlength","O","RegExp","isExist","u","isEmptyObject","merge","l","f","c","getValue","isName","exec","getAllMatches","startIndex","lastIndex","g","nameRegexp","B","re","preserveOrder","attributeNamePrefix","attributesGroupName","textNodeName","ignoreAttributes","removeNSPrefix","allowBooleanAttributes","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","hex","leadingZeros","eNotation","tagValueProcessor","attributeValueProcessor","stopNodes","alwaysCreateTextNode","isArray","commentPropName","unpairedTags","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","buildOptions","defaultOptions","ne","ie","Nt","bt","Et","hasOwnProperty","prettify","yt","vt","se","Pt","h","xt","oe","K","E","indentBy","suppressUnpairedNode","suppressEmptyNode","endsWith","suppressBooleanAttributes","substr","lastIndexOf","entities","regex","val","Ft","Vt","oneListGroup","isAttribute","attrPrefixLen","St","processTextOrObjNode","Lt","indentate","Rt","tagEndChar","newLine","j2x","buildTextValNode","attrStr","buildObjectNode","repeat","arrayNodeName","call","buildAttrPairStr","replaceEntitiesValue","closeTag","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","m","chunkIds","priority","notFulfilled","Infinity","fulfilled","splice","getter","__esModule","definition","defineProperty","enumerable","chunkId","all","reduce","promises","globalThis","obj","prop","done","script","needAttach","scripts","getAttribute","charset","timeout","setAttribute","src","onScriptComplete","prev","event","onerror","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","target","head","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","location","currentScript","p","baseURI","self","href","installedChunks","installedChunkData","promise","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file