diff options
author | Christopher Ng <chrng8@gmail.com> | 2023-06-05 15:34:04 -0700 |
---|---|---|
committer | Christopher Ng <chrng8@gmail.com> | 2023-07-11 18:34:18 -0700 |
commit | 6662e140f3d9d31da74a4b281547170f04e0d763 (patch) | |
tree | 0223811d1b541a68250a8aaaf92878a350b7f6a8 /dist | |
parent | 6cf0cac025e14ac3c3de85c4865d5cb9467479c3 (diff) | |
download | nextcloud-server-6662e140f3d9d31da74a4b281547170f04e0d763.tar.gz nextcloud-server-6662e140f3d9d31da74a4b281547170f04e0d763.zip |
Show loading icon when loading tags
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
Diffstat (limited to 'dist')
-rw-r--r-- | dist/files-sidebar.js | 4 | ||||
-rw-r--r-- | dist/files-sidebar.js.map | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/dist/files-sidebar.js b/dist/files-sidebar.js index 0531fa41e9e..e11c0635248 100644 --- a/dist/files-sidebar.js +++ b/dist/files-sidebar.js @@ -1,3 +1,3 @@ /*! For license information please see files-sidebar.js.LICENSE.txt */ -(()=>{var e,s={21351:(e,s,i)=>{"use strict";var n=i(20144),a=i(31352),r=i(65358),o=i(19755),l=i.n(o),d=i(4820),c=i(78595),u=i(80351),h=i.n(u),p=i(41922),f=i(10250),g=i.n(f),m=i(45400),y=i.n(m),b=i(93455),v=i.n(b),A=i(62574);const w={name:"SidebarTab",components:{NcAppSidebarTab:i.n(A)(),NcEmptyContent:v()},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()}};var j=i(51900);const C=(0,j.Z)(w,(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,_={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))}}},I=(0,j.Z)(_,(function(){return(0,this._self._c)("div")}),[],!1,null,null,null).exports;var T,S=i(11677),x=i.n(S),O=i(64024),F=i(79753),k=i(14596),E=i(45994);const z=(0,F.generateRemoteUrl)("dav"),L=(0,k.eI)(z,{headers:{requesttoken:null!==(T=(0,E.IH)())&&void 0!==T?T:""}});var D=i(23204),P=i.n(D);const N=t=>t.map((t=>{let{props:e}=t;return Object.fromEntries(Object.entries(e).map((t=>{let[e,s]=t;return[P()(e),s]})))})),M=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)},R=t=>{const e={...t};return e.name&&!e.displayName||(e.name=e.displayName,delete e.displayName),e},U=(0,i(17499).IY)().setApp("systemtags").detectUser().build(),q='<?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>',B=async(t,e)=>{const s="/systemtags-relations/files/"+t+"/"+e.id,i=R(e);try{await L.customRequest(s,{method:"PUT",data:i})}catch(t){throw U.error((0,a.Iu)("systemtags","Failed to select tag"),{error:t}),new Error((0,a.Iu)("systemtags","Failed to select tag"))}},Z={userVisible:!0,userAssignable:!0,canAssign:!0},$=n.default.extend({name:"SystemTags",components:{NcSelectTags:x()},props:{fileId:{type:Number,required:!0}},data:()=>({sortedTags:[],selectedTags:[],loading:!1}),async created(){try{const t=await(async()=>{try{const{data:t}=await L.getDirectoryContents("/systemtags",{data:q,details:!0,glob:"/systemtags/*"});return N(t)}catch(t){throw U.error((0,a.Iu)("systemtags","Failed to load tags"),{error:t}),new Error((0,a.Iu)("systemtags","Failed to load tags"))}})(),e=await(async()=>{const t=(0,F.generateUrl)("/apps/systemtags/lastused");try{const{data:e}=await d.default.get(t);return e.map(Number)}catch(t){throw U.error((0,a.Iu)("systemtags","Failed to load last used tags"),{error:t}),new Error((0,a.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,O.x2)((0,a.Iu)("systemtags","Failed to load tags"))}},watch:{fileId:{immediate:!0,async handler(){try{this.selectedTags=await(async t=>{const e="/systemtags-relations/files/"+this.fileId;try{const{data:t}=await L.getDirectoryContents(e,{data:q,details:!0,glob:"/systemtags-relations/files/*/*"});return N(t)}catch(t){throw U.error((0,a.Iu)("systemtags","Failed to load selected tags"),{error:t}),new Error((0,a.Iu)("systemtags","Failed to load selected tags"))}})(),this.$emit("has-tags",this.selectedTags.length>0)}catch(t){(0,O.x2)((0,a.Iu)("systemtags","Failed to load selected tags"))}}}},methods:{t:a.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 Z[e]===s})))return e}return{...Z,displayName:t}},handleInput(t){this.selectedTags=t.filter((t=>Boolean(t.id)))},async handleSelect(t){const e=t[t.length-1];if(e.id){this.loading=!0;try{await B(this.fileId,e);const t=(t,s)=>t.id===e.id?-1:s.id===e.id?1:0;this.sortedTags.sort(t)}catch(t){(0,O.x2)((0,a.Iu)("systemtags","Failed to select tag"))}this.loading=!1}},async handleCreate(t){this.loading=!0;try{const e=await(async(t,e)=>{const s=R(e);try{const{headers:e}=await L.customRequest("/systemtags",{method:"POST",data:s}),i=e.get("content-location");if(i){const e={...s,id:M(i)};return await B(t,e),e.id}throw U.error((0,a.Iu)("systemtags",'Missing "Content-Location" header')),new Error((0,a.Iu)("systemtags",'Missing "Content-Location" header'))}catch(t){throw U.error((0,a.Iu)("systemtags","Failed to create tag"),{error:t}),new Error((0,a.Iu)("systemtags","Failed to create tag"))}})(this.fileId,t),s={...t,id:e};this.sortedTags.unshift(s),this.selectedTags.push(s)}catch(t){(0,O.x2)((0,a.Iu)("systemtags","Failed to create tag"))}this.loading=!1},async handleDeselect(t){this.loading=!0;try{await(async(t,e)=>{const s="/systemtags-relations/files/"+t+"/"+e.id;try{await L.deleteFile(s)}catch(t){throw U.error((0,a.Iu)("systemtags","Failed to delete tag"),{error:t}),new Error((0,a.Iu)("systemtags","Failed to delete tag"))}})(this.fileId,t)}catch(t){(0,O.x2)((0,a.Iu)("systemtags","Failed to delete tag"))}this.loading=!1}}});var H=i(93379),V=i.n(H),K=i(7795),W=i.n(K),Y=i(90569),G=i.n(Y),J=i(3565),Q=i.n(J),X=i(19216),tt=i.n(X),et=i(44589),st=i.n(et),it=i(75707),nt={};nt.styleTagTransform=st(),nt.setAttributes=Q(),nt.insert=G().bind(null,"head"),nt.domAPI=W(),nt.insertStyleElement=tt(),V()(it.Z,nt),it.Z&&it.Z.locals&&it.Z.locals;const at=(0,j.Z)($,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("div",{staticClass:"system-tags"},[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._s(t.t("systemtags","No tags to select, type to create a new tag"))+"\n\t\t")]},proxy:!0}])})],1)}),[],!1,null,"78e28406",null).exports;var rt=i(25108);const ot={name:"Sidebar",components:{LegacyView:I,NcActionButton:y(),NcAppSidebar:g(),NcEmptyContent:v(),SidebarTab:C,SystemTags:at},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/".concat(t).concat((0,r.Ec)(this.file)))},activeTab(){return this.Sidebar.activeTab},subtitle(){return"".concat(this.size,", ").concat(this.time)},time(){return OC.Util.relativeModifiedDate(this.fileInfo.mtime)},fullTime(){return h()(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,starred:this.fileInfo.isFavourited,subtitle:this.subtitle,subtitleTooltip:this.fullTime,title:this.fileInfo.name,titleTooltip:this.fileInfo.name}:this.error?{key:"error",subtitle:"",title:""}:{loading:this.loading,subtitle:"",title:""}},defaultAction(){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:()=>OCA&&"SystemTags"in OCA},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=".concat(t.id,"&x=").concat(screen.width,"&y=").concat(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(p.D.SHARE_TYPE_LINK)>-1||t.shareTypes.indexOf(p.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=>e.setIsActive(t===e.id)))},async toggleStarred(e){try{this.starLoading=!0,await(0,d.default)({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'.concat(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").concat(e?"</d:set>":"</d:remove>","\n\t\t\t\t\t\t</d:propertyupdate>")}),OCA.Files&&OCA.Files.App&&OCA.Files.App.fileList&&OCA.Files.App.fileList.fileActions&&OCA.Files.App.fileList.fileActions.triggerAction("Favorite",OCA.Files.App.fileList.getModelForFile(this.fileInfo.name),OCA.Files.App.fileList)}catch(e){OC.Notification.showTemporary(t("files","Unable to change the favourite state of the file")),rt.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:l()("body")})},toggleTags(){this.showTags=!this.showTags},async open(e){if(this.Sidebar.file=e,e&&""!==e.trim()){this.error=null,this.loading=!0;try{this.fileInfo=await async function(t){const e=await(0,d.default)({method:"PROPFIND",url:t,data:'<?xml version="1.0"?>\n\t\t\t<d:propfind xmlns:d="DAV:"\n\t\t\t\txmlns:oc="http://owncloud.org/ns"\n\t\t\t\txmlns:nc="http://nextcloud.org/ns"\n\t\t\t\txmlns:ocs="http://open-collaboration-services.org/ns">\n\t\t\t<d:prop>\n\t\t\t\t<d:getlastmodified />\n\t\t\t\t<d:getetag />\n\t\t\t\t<d:getcontenttype />\n\t\t\t\t<d:resourcetype />\n\t\t\t\t<oc:fileid />\n\t\t\t\t<oc:permissions />\n\t\t\t\t<oc:size />\n\t\t\t\t<d:getcontentlength />\n\t\t\t\t<nc:has-preview />\n\t\t\t\t<nc:mount-type />\n\t\t\t\t<nc:is-encrypted />\n\t\t\t\t<ocs:share-permissions />\n\t\t\t\t<nc:share-attributes />\n\t\t\t\t<oc:tags />\n\t\t\t\t<oc:favorite />\n\t\t\t\t<oc:comments-unread />\n\t\t\t\t<oc:owner-id />\n\t\t\t\t<oc:owner-display-name />\n\t\t\t\t<oc:share-types />\n\t\t\t</d:prop>\n\t\t\t</d:propfind>'}),s=OCA.Files.App.fileList.filesClient._client.parseMultiStatus(e.data),i=OCA.Files.App.fileList.filesClient._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"),rt.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){var e,s,i,n;this.isFullScreen=t,t?(null===(e=document.querySelector("#content"))||void 0===e?void 0:e.classList.add("with-sidebar--full"))||null===(s=document.querySelector("#content-vue"))||void 0===s||s.classList.add("with-sidebar--full"):(null===(i=document.querySelector("#content"))||void 0===i?void 0:i.classList.remove("with-sidebar--full"))||null===(n=document.querySelector("#content-vue"))||void 0===n||n.classList.remove("with-sidebar--full")},handleOpening(){(0,c.j8)("files:sidebar:opening")},handleOpened(){(0,c.j8)("files:sidebar:opened")},handleClosing(){(0,c.j8)("files:sidebar:closing")},handleClosed(){(0,c.j8)("files:sidebar:closed")},handleWindowResize(){this.hasLowHeight=document.documentElement.clientHeight<1024}}};var lt=i(49204),dt={};dt.styleTagTransform=st(),dt.setAttributes=Q(),dt.insert=G().bind(null,"head"),dt.domAPI=W(),dt.insertStyleElement=tt(),V()(lt.Z,dt),lt.Z&<.Z.locals&<.Z.locals;const ct=(0,j.Z)(ot,(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,"update:starred":t.toggleStarred,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(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[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,"5f7a543a",null).exports;var ut=i(25108);var ht=i(57005);function pt(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}var ft=i(25108);n.default.prototype.t=a.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="",ut.debug("OCA.Files.Sidebar initialized")}get state(){return this._state}registerTab(t){return this._state.tabs.findIndex((e=>e.id===t.id))>-1?(ut.error("An tab with the same id ".concat(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?(ut.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:a,update:r,destroy:o,enabled:l,scrollBottomReached:d}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(pt(this,"_id",void 0),pt(this,"_name",void 0),pt(this,"_icon",void 0),pt(this,"_iconSvgSanitized",void 0),pt(this,"_mount",void 0),pt(this,"_setIsActive",void 0),pt(this,"_update",void 0),pt(this,"_destroy",void 0),pt(this,"_enabled",void 0),pt(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!==a&&"function"!=typeof a)throw new Error("The setIsActive argument should be a function");if("function"!=typeof r)throw new Error("The update argument should be a function");if("function"!=typeof o)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=a,this._update=r,this._destroy=o,this._enabled=l,this._scrollBottomReached=d,"string"==typeof i&&(0,ht.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}}}),ft.debug("OCA.Files.Sidebar initialized"),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(ct))({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}))},49204:(t,e,s)=>{"use strict";s.d(e,{Z:()=>o});var i=s(87537),n=s.n(i),a=s(23645),r=s.n(a)()(n());r.push([t.id,'.app-sidebar--has-preview[data-v-5f7a543a] .app-sidebar-header__figure{background-size:cover}.app-sidebar--has-preview[data-v-5f7a543a][data-mimetype="text/plain"] .app-sidebar-header__figure,.app-sidebar--has-preview[data-v-5f7a543a][data-mimetype="text/markdown"] .app-sidebar-header__figure{background-size:contain}.app-sidebar--full[data-v-5f7a543a]{position:fixed !important;z-index:2025 !important;top:0 !important;height:100% !important}.app-sidebar[data-v-5f7a543a] .app-sidebar-header__description{margin:0 16px 4px 16px !important}.app-sidebar .svg-icon[data-v-5f7a543a] svg{width:20px;height:20px;fill:currentColor}.sidebar__description[data-v-5f7a543a]{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 o=r},75707:(t,e,s)=>{"use strict";s.d(e,{Z:()=>o});var i=s(87537),n=s.n(i),a=s(23645),r=s.n(a)()(n());r.push([t.id,".system-tags[data-v-78e28406]{display:flex;flex-direction:column}.system-tags label[for=system-tags-input][data-v-78e28406]{margin-bottom:2px}.system-tags__select[data-v-78e28406]{width:100%}.system-tags__select[data-v-78e28406] .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 o=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=a(t);return s(e)}function a(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=a,t.exports=n,n.id=46700}},i={};function n(t){var e=i[t];if(void 0!==e)return e.exports;var a=i[t]={id:t,loaded:!1,exports:{}};return s[t].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}n.m=s,e=[],n.O=(t,s,i,a)=>{if(!s){var r=1/0;for(c=0;c<e.length;c++){s=e[c][0],i=e[c][1],a=e[c][2];for(var o=!0,l=0;l<s.length;l++)(!1&a||r>=a)&&Object.keys(n.O).every((t=>n.O[t](s[l])))?s.splice(l--,1):(o=!1,a<r&&(r=a));if(o){e.splice(c--,1);var d=i();void 0!==d&&(t=d)}}return t}a=a||0;for(var c=e.length;c>0&&e[c-1][2]>a;c--)e[c]=e[c-1];e[c]=[s,i,a]},n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var s in e)n.o(e,s)&&!n.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),n.j=4092,(()=>{n.b=document.baseURI||self.location.href;var t={4092:0};n.O.j=e=>0===t[e];var e=(e,s)=>{var i,a,r=s[0],o=s[1],l=s[2],d=0;if(r.some((e=>0!==t[e]))){for(i in o)n.o(o,i)&&(n.m[i]=o[i]);if(l)var c=l(n)}for(e&&e(s);d<r.length;d++)a=r[d],n.o(t,a)&&t[a]&&t[a][0](),t[a]=0;return n.O(c)},s=self.webpackChunknextcloud=self.webpackChunknextcloud||[];s.forEach(e.bind(null,0)),s.push=e.bind(null,s.push.bind(s))})(),n.nc=void 0;var a=n.O(void 0,[7874],(()=>n(21351)));a=n.O(a)})(); -//# sourceMappingURL=files-sidebar.js.map?v=cbfed653d4d5334837b5
\ No newline at end of file +(()=>{var e,s={40437:(e,s,i)=>{"use strict";var n=i(20144),a=i(31352),o=i(65358),r=i(19755),l=i.n(r),d=i(4820),c=i(78595),u=i(80351),h=i.n(u),p=i(41922),f=i(10250),g=i.n(f),m=i(45400),y=i.n(m),b=i(93455),v=i.n(b),A=i(62574);const w={name:"SidebarTab",components:{NcAppSidebarTab:i.n(A)(),NcEmptyContent:v()},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()}};var j=i(51900);const C=(0,j.Z)(w,(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,_={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))}}},I=(0,j.Z)(_,(function(){return(0,this._self._c)("div")}),[],!1,null,null,null).exports;var T,S=i(64192),x=i.n(S),O=i(11677),F=i.n(O),k=i(64024),E=i(79753),z=i(14596),L=i(45994);const D=(0,E.generateRemoteUrl)("dav"),P=(0,z.eI)(D,{headers:{requesttoken:null!==(T=(0,L.IH)())&&void 0!==T?T:""}});var N=i(23204),M=i.n(N);const R=t=>t.map((t=>{let{props:e}=t;return Object.fromEntries(Object.entries(e).map((t=>{let[e,s]=t;return[M()(e),s]})))})),U=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)},q=t=>{const e={...t};return e.name&&!e.displayName||(e.name=e.displayName,delete e.displayName),e},B=(0,i(17499).IY)().setApp("systemtags").detectUser().build(),Z='<?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>',$=async(t,e)=>{const s="/systemtags-relations/files/"+t+"/"+e.id,i=q(e);try{await P.customRequest(s,{method:"PUT",data:i})}catch(t){throw B.error((0,a.Iu)("systemtags","Failed to select tag"),{error:t}),new Error((0,a.Iu)("systemtags","Failed to select tag"))}},H={userVisible:!0,userAssignable:!0,canAssign:!0},V=n.default.extend({name:"SystemTags",components:{NcLoadingIcon:x(),NcSelectTags:F()},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 P.getDirectoryContents("/systemtags",{data:Z,details:!0,glob:"/systemtags/*"});return R(t)}catch(t){throw B.error((0,a.Iu)("systemtags","Failed to load tags"),{error:t}),new Error((0,a.Iu)("systemtags","Failed to load tags"))}})(),e=await(async()=>{const t=(0,E.generateUrl)("/apps/systemtags/lastused");try{const{data:e}=await d.default.get(t);return e.map(Number)}catch(t){throw B.error((0,a.Iu)("systemtags","Failed to load last used tags"),{error:t}),new Error((0,a.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,k.x2)((0,a.Iu)("systemtags","Failed to load tags"))}},watch:{fileId:{immediate:!0,async handler(){this.loadingTags=!0;try{this.selectedTags=await(async t=>{const e="/systemtags-relations/files/"+this.fileId;try{const{data:t}=await P.getDirectoryContents(e,{data:Z,details:!0,glob:"/systemtags-relations/files/*/*"});return R(t)}catch(t){throw B.error((0,a.Iu)("systemtags","Failed to load selected tags"),{error:t}),new Error((0,a.Iu)("systemtags","Failed to load selected tags"))}})(),this.$emit("has-tags",this.selectedTags.length>0)}catch(t){(0,k.x2)((0,a.Iu)("systemtags","Failed to load selected tags"))}this.loadingTags=!1}}},methods:{t:a.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 H[e]===s})))return e}return{...H,displayName:t}},handleInput(t){this.selectedTags=t.filter((t=>Boolean(t.id)))},async handleSelect(t){const e=t[t.length-1];if(e.id){this.loading=!0;try{await $(this.fileId,e);const t=(t,s)=>t.id===e.id?-1:s.id===e.id?1:0;this.sortedTags.sort(t)}catch(t){(0,k.x2)((0,a.Iu)("systemtags","Failed to select tag"))}this.loading=!1}},async handleCreate(t){this.loading=!0;try{const e=await(async(t,e)=>{const s=q(e);try{const{headers:e}=await P.customRequest("/systemtags",{method:"POST",data:s}),i=e.get("content-location");if(i){const e={...s,id:U(i)};return await $(t,e),e.id}throw B.error((0,a.Iu)("systemtags",'Missing "Content-Location" header')),new Error((0,a.Iu)("systemtags",'Missing "Content-Location" header'))}catch(t){throw B.error((0,a.Iu)("systemtags","Failed to create tag"),{error:t}),new Error((0,a.Iu)("systemtags","Failed to create tag"))}})(this.fileId,t),s={...t,id:e};this.sortedTags.unshift(s),this.selectedTags.push(s)}catch(t){(0,k.x2)((0,a.Iu)("systemtags","Failed to create tag"))}this.loading=!1},async handleDeselect(t){this.loading=!0;try{await(async(t,e)=>{const s="/systemtags-relations/files/"+t+"/"+e.id;try{await P.deleteFile(s)}catch(t){throw B.error((0,a.Iu)("systemtags","Failed to delete tag"),{error:t}),new Error((0,a.Iu)("systemtags","Failed to delete tag"))}})(this.fileId,t)}catch(t){(0,k.x2)((0,a.Iu)("systemtags","Failed to delete tag"))}this.loading=!1}}});var K=i(93379),W=i.n(K),Y=i(7795),G=i.n(Y),J=i(90569),Q=i.n(J),X=i(3565),tt=i.n(X),et=i(19216),st=i.n(et),it=i(44589),nt=i.n(it),at=i(85570),ot={};ot.styleTagTransform=nt(),ot.setAttributes=tt(),ot.insert=Q().bind(null,"head"),ot.domAPI=G(),ot.insertStyleElement=st(),W()(at.Z,ot),at.Z&&at.Z.locals&&at.Z.locals;const rt=(0,j.Z)(V,(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,"7746ac6e",null).exports;var lt=i(25108);const dt={name:"Sidebar",components:{LegacyView:I,NcActionButton:y(),NcAppSidebar:g(),NcEmptyContent:v(),SidebarTab:C,SystemTags:rt},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/".concat(t).concat((0,o.Ec)(this.file)))},activeTab(){return this.Sidebar.activeTab},subtitle(){return"".concat(this.size,", ").concat(this.time)},time(){return OC.Util.relativeModifiedDate(this.fileInfo.mtime)},fullTime(){return h()(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,starred:this.fileInfo.isFavourited,subtitle:this.subtitle,subtitleTooltip:this.fullTime,title:this.fileInfo.name,titleTooltip:this.fileInfo.name}:this.error?{key:"error",subtitle:"",title:""}:{loading:this.loading,subtitle:"",title:""}},defaultAction(){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:()=>OCA&&"SystemTags"in OCA},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=".concat(t.id,"&x=").concat(screen.width,"&y=").concat(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(p.D.SHARE_TYPE_LINK)>-1||t.shareTypes.indexOf(p.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=>e.setIsActive(t===e.id)))},async toggleStarred(e){try{this.starLoading=!0,await(0,d.default)({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'.concat(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").concat(e?"</d:set>":"</d:remove>","\n\t\t\t\t\t\t</d:propertyupdate>")}),OCA.Files&&OCA.Files.App&&OCA.Files.App.fileList&&OCA.Files.App.fileList.fileActions&&OCA.Files.App.fileList.fileActions.triggerAction("Favorite",OCA.Files.App.fileList.getModelForFile(this.fileInfo.name),OCA.Files.App.fileList)}catch(e){OC.Notification.showTemporary(t("files","Unable to change the favourite state of the file")),lt.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:l()("body")})},toggleTags(){this.showTags=!this.showTags},async open(e){if(this.Sidebar.file=e,e&&""!==e.trim()){this.error=null,this.loading=!0;try{this.fileInfo=await async function(t){const e=await(0,d.default)({method:"PROPFIND",url:t,data:'<?xml version="1.0"?>\n\t\t\t<d:propfind xmlns:d="DAV:"\n\t\t\t\txmlns:oc="http://owncloud.org/ns"\n\t\t\t\txmlns:nc="http://nextcloud.org/ns"\n\t\t\t\txmlns:ocs="http://open-collaboration-services.org/ns">\n\t\t\t<d:prop>\n\t\t\t\t<d:getlastmodified />\n\t\t\t\t<d:getetag />\n\t\t\t\t<d:getcontenttype />\n\t\t\t\t<d:resourcetype />\n\t\t\t\t<oc:fileid />\n\t\t\t\t<oc:permissions />\n\t\t\t\t<oc:size />\n\t\t\t\t<d:getcontentlength />\n\t\t\t\t<nc:has-preview />\n\t\t\t\t<nc:mount-type />\n\t\t\t\t<nc:is-encrypted />\n\t\t\t\t<ocs:share-permissions />\n\t\t\t\t<nc:share-attributes />\n\t\t\t\t<oc:tags />\n\t\t\t\t<oc:favorite />\n\t\t\t\t<oc:comments-unread />\n\t\t\t\t<oc:owner-id />\n\t\t\t\t<oc:owner-display-name />\n\t\t\t\t<oc:share-types />\n\t\t\t</d:prop>\n\t\t\t</d:propfind>'}),s=OCA.Files.App.fileList.filesClient._client.parseMultiStatus(e.data),i=OCA.Files.App.fileList.filesClient._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"),lt.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){var e,s,i,n;this.isFullScreen=t,t?(null===(e=document.querySelector("#content"))||void 0===e?void 0:e.classList.add("with-sidebar--full"))||null===(s=document.querySelector("#content-vue"))||void 0===s||s.classList.add("with-sidebar--full"):(null===(i=document.querySelector("#content"))||void 0===i?void 0:i.classList.remove("with-sidebar--full"))||null===(n=document.querySelector("#content-vue"))||void 0===n||n.classList.remove("with-sidebar--full")},handleOpening(){(0,c.j8)("files:sidebar:opening")},handleOpened(){(0,c.j8)("files:sidebar:opened")},handleClosing(){(0,c.j8)("files:sidebar:closing")},handleClosed(){(0,c.j8)("files:sidebar:closed")},handleWindowResize(){this.hasLowHeight=document.documentElement.clientHeight<1024}}};var ct=i(49204),ut={};ut.styleTagTransform=nt(),ut.setAttributes=tt(),ut.insert=Q().bind(null,"head"),ut.domAPI=G(),ut.insertStyleElement=st(),W()(ct.Z,ut),ct.Z&&ct.Z.locals&&ct.Z.locals;const ht=(0,j.Z)(dt,(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,"update:starred":t.toggleStarred,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(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[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,"5f7a543a",null).exports;var pt=i(25108);var ft=i(57005);function gt(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}var mt=i(25108);n.default.prototype.t=a.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="",pt.debug("OCA.Files.Sidebar initialized")}get state(){return this._state}registerTab(t){return this._state.tabs.findIndex((e=>e.id===t.id))>-1?(pt.error("An tab with the same id ".concat(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?(pt.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:a,update:o,destroy:r,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 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!==a&&"function"!=typeof a)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 r)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=a,this._update=o,this._destroy=r,this._enabled=l,this._scrollBottomReached=d,"string"==typeof i&&(0,ft.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}}}),mt.debug("OCA.Files.Sidebar initialized"),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(ht))({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}))},49204:(t,e,s)=>{"use strict";s.d(e,{Z:()=>r});var i=s(87537),n=s.n(i),a=s(23645),o=s.n(a)()(n());o.push([t.id,'.app-sidebar--has-preview[data-v-5f7a543a] .app-sidebar-header__figure{background-size:cover}.app-sidebar--has-preview[data-v-5f7a543a][data-mimetype="text/plain"] .app-sidebar-header__figure,.app-sidebar--has-preview[data-v-5f7a543a][data-mimetype="text/markdown"] .app-sidebar-header__figure{background-size:contain}.app-sidebar--full[data-v-5f7a543a]{position:fixed !important;z-index:2025 !important;top:0 !important;height:100% !important}.app-sidebar[data-v-5f7a543a] .app-sidebar-header__description{margin:0 16px 4px 16px !important}.app-sidebar .svg-icon[data-v-5f7a543a] svg{width:20px;height:20px;fill:currentColor}.sidebar__description[data-v-5f7a543a]{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 r=o},85570:(t,e,s)=>{"use strict";s.d(e,{Z:()=>r});var i=s(87537),n=s.n(i),a=s(23645),o=s.n(a)()(n());o.push([t.id,".system-tags[data-v-7746ac6e]{display:flex;flex-direction:column}.system-tags label[for=system-tags-input][data-v-7746ac6e]{margin-bottom:2px}.system-tags__select[data-v-7746ac6e]{width:100%}.system-tags__select[data-v-7746ac6e] .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 r=o},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=a(t);return s(e)}function a(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=a,t.exports=n,n.id=46700}},i={};function n(t){var e=i[t];if(void 0!==e)return e.exports;var a=i[t]={id:t,loaded:!1,exports:{}};return s[t].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}n.m=s,e=[],n.O=(t,s,i,a)=>{if(!s){var o=1/0;for(c=0;c<e.length;c++){s=e[c][0],i=e[c][1],a=e[c][2];for(var r=!0,l=0;l<s.length;l++)(!1&a||o>=a)&&Object.keys(n.O).every((t=>n.O[t](s[l])))?s.splice(l--,1):(r=!1,a<o&&(o=a));if(r){e.splice(c--,1);var d=i();void 0!==d&&(t=d)}}return t}a=a||0;for(var c=e.length;c>0&&e[c-1][2]>a;c--)e[c]=e[c-1];e[c]=[s,i,a]},n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var s in e)n.o(e,s)&&!n.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),n.j=4092,(()=>{n.b=document.baseURI||self.location.href;var t={4092:0};n.O.j=e=>0===t[e];var e=(e,s)=>{var i,a,o=s[0],r=s[1],l=s[2],d=0;if(o.some((e=>0!==t[e]))){for(i in r)n.o(r,i)&&(n.m[i]=r[i]);if(l)var c=l(n)}for(e&&e(s);d<o.length;d++)a=o[d],n.o(t,a)&&t[a]&&t[a][0](),t[a]=0;return n.O(c)},s=self.webpackChunknextcloud=self.webpackChunknextcloud||[];s.forEach(e.bind(null,0)),s.push=e.bind(null,s.push.bind(s))})(),n.nc=void 0;var a=n.O(void 0,[7874],(()=>n(40437)));a=n.O(a)})(); +//# sourceMappingURL=files-sidebar.js.map?v=e606d6e8e8dec46c5a6f
\ No newline at end of file diff --git a/dist/files-sidebar.js.map b/dist/files-sidebar.js.map index 3808556ddb5..733af85caac 100644 --- a/dist/files-sidebar.js.map +++ b/dist/files-sidebar.js.map @@ -1 +1 @@ -{"version":3,"file":"files-sidebar.js?v=cbfed653d4d5334837b5","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/files/src/components/SidebarTab.vue","webpack:///nextcloud/apps/files/src/components/SidebarTab.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/components/SidebarTab.vue?7aea","webpack://nextcloud/./apps/files/src/components/SidebarTab.vue?eddf","webpack:///nextcloud/apps/files/src/components/LegacyView.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/files/src/components/LegacyView.vue","webpack://nextcloud/./apps/files/src/components/LegacyView.vue?a2e2","webpack://nextcloud/./apps/files/src/components/LegacyView.vue?fb5f","webpack:///nextcloud/apps/systemtags/src/components/SystemTags.vue","webpack:///nextcloud/apps/systemtags/src/services/davClient.ts","webpack:///nextcloud/apps/systemtags/src/utils.ts","webpack:///nextcloud/apps/systemtags/src/logger.ts","webpack:///nextcloud/apps/systemtags/src/services/api.ts","webpack:///nextcloud/apps/systemtags/src/components/SystemTags.vue?vue&type=script&lang=ts&","webpack://nextcloud/./apps/systemtags/src/components/SystemTags.vue?cc32","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?9507","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/apps/files/src/views/Sidebar.vue?vue&type=style&index=0&id=5f7a543a&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/systemtags/src/components/SystemTags.vue?vue&type=style&index=0&id=78e28406&prod&lang=scss&scoped=true&","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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};","\n<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<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 mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SidebarTab.vue?vue&type=template&id=0da8ee1b&\"\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 }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyView.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<div />\n</template>\n<script>\nexport default {\n\tname: 'LegacyView',\n\tprops: {\n\t\tcomponent: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t},\n\twatch: {\n\t\tfileInfo(fileInfo) {\n\t\t\t// update the backbone model FileInfo\n\t\t\tthis.setFileInfo(fileInfo)\n\t\t},\n\t},\n\tmounted() {\n\t\t// append the backbone element and set the FileInfo\n\t\tthis.component.$el.replaceAll(this.$el)\n\t\tthis.setFileInfo(this.fileInfo)\n\t},\n\tmethods: {\n\t\tsetFileInfo(fileInfo) {\n\t\t\tthis.component.setFileInfo(new OCA.Files.FileInfoModel(fileInfo))\n\t\t},\n\t},\n}\n</script>\n<style>\n</style>\n","import { render, staticRenderFns } from \"./LegacyView.vue?vue&type=template&id=2245cbe7&\"\nimport script from \"./LegacyView.vue?vue&type=script&lang=js&\"\nexport * from \"./LegacyView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div')\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\"},[_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\"+_vm._s(_vm.t('systemtags', 'No tags to select, type to create a new tag'))+\"\\n\\t\\t\")]},proxy:true}])})],1)\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 { 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 camelCase from 'camelcase';\nexport const parseTags = (tags) => {\n return tags.map(({ props }) => Object.fromEntries(Object.entries(props)\n .map(([key, value]) => [camelCase(key), value])));\n};\n/**\n * Parse id from `Content-Location` header\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 { 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.js';\nimport { logger } from '../logger.js';\nconst fetchTagsBody = `<?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: fetchTagsBody,\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};\nexport const fetchSelectedTags = async (fileId) => {\n const path = '/systemtags-relations/files/' + fileId;\n try {\n const { data: tags } = await davClient.getDirectoryContents(path, {\n data: fetchTagsBody,\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 selected tags'), { error });\n throw new Error(t('systemtags', 'Failed to load selected tags'));\n }\n};\nexport const selectTag = async (fileId, tag) => {\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 select tag'), { error });\n throw new Error(t('systemtags', 'Failed to select tag'));\n }\n};\n/**\n * @return created tag id\n */\nexport const createTag = async (fileId, 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 const tagToPut = {\n ...tagToPost,\n id: parseIdFromLocation(contentLocation),\n };\n await selectTag(fileId, tagToPut);\n return tagToPut.id;\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 deleteTag = async (fileId, tag) => {\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'), { error });\n throw new Error(t('systemtags', 'Failed to delete tag'));\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=78e28406&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=78e28406&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=78e28406&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=78e28406&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 \"78e28406\",\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@update:starred=\"toggleStarred\"\n\t\t@[defaultActionListener].stop.prevent=\"onDefaultAction\"\n\t\t@opening=\"handleOpening\"\n\t\t@opened=\"handleOpened\"\n\t\t@closing=\"handleClosing\"\n\t\t@closed=\"handleClosed\">\n\t\t<!-- TODO: create a standard to allow multiple elements here? -->\n\t\t<template v-if=\"fileInfo\" #description>\n\t\t\t<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<!-- 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 { encodePath } from '@nextcloud/paths'\nimport $ from 'jquery'\nimport axios from '@nextcloud/axios'\nimport { emit } from '@nextcloud/event-bus'\nimport moment from '@nextcloud/moment'\nimport { Type as ShareTypes } from '@nextcloud/sharing'\n\nimport 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 SidebarTab from '../components/SidebarTab.vue'\nimport LegacyView from '../components/LegacyView.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},\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\treturn `${this.size}, ${this.time}`\n\t\t},\n\n\t\t/**\n\t\t * File last modified formatted string\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\ttime() {\n\t\t\treturn OC.Util.relativeModifiedDate(this.fileInfo.mtime)\n\t\t},\n\n\t\t/**\n\t\t * File last modified full string\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tfullTime() {\n\t\t\treturn moment(this.fileInfo.mtime).format('LLL')\n\t\t},\n\n\t\t/**\n\t\t * File size formatted string\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tsize() {\n\t\t\treturn OC.Util.humanFileSize(this.fileInfo.size)\n\t\t},\n\n\t\t/**\n\t\t * File background/figure to illustrate the sidebar header\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tbackground() {\n\t\t\treturn this.getPreviewIfAny(this.fileInfo)\n\t\t},\n\n\t\t/**\n\t\t * App sidebar v-binding object\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\tappSidebar() {\n\t\t\tif (this.fileInfo) {\n\t\t\t\treturn {\n\t\t\t\t\t'data-mimetype': this.fileInfo.mimetype,\n\t\t\t\t\t'star-loading': this.starLoading,\n\t\t\t\t\tactive: this.activeTab,\n\t\t\t\t\tbackground: this.background,\n\t\t\t\t\tclass: {\n\t\t\t\t\t\t'app-sidebar--has-preview': this.fileInfo.hasPreview && !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\tstarred: this.fileInfo.isFavourited,\n\t\t\t\t\tsubtitle: this.subtitle,\n\t\t\t\t\tsubtitleTooltip: this.fullTime,\n\t\t\t\t\ttitle: this.fileInfo.name,\n\t\t\t\t\ttitleTooltip: this.fileInfo.name,\n\t\t\t\t}\n\t\t\t} else if (this.error) {\n\t\t\t\treturn {\n\t\t\t\t\tkey: 'error', // force key to re-render\n\t\t\t\t\tsubtitle: '',\n\t\t\t\t\ttitle: '',\n\t\t\t\t}\n\t\t\t}\n\t\t\t// no fileInfo yet, showing empty data\n\t\t\treturn {\n\t\t\t\tloading: this.loading,\n\t\t\t\tsubtitle: '',\n\t\t\t\ttitle: '',\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Default action object for the current file\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\tdefaultAction() {\n\t\t\treturn this.fileInfo\n\t\t\t\t&& OCA.Files && OCA.Files.App && OCA.Files.App.fileList\n\t\t\t\t&& OCA.Files.App.fileList.fileActions\n\t\t\t\t&& OCA.Files.App.fileList.fileActions.getDefaultFileAction\n\t\t\t\t&& OCA.Files.App.fileList\n\t\t\t\t\t.fileActions.getDefaultFileAction(this.fileInfo.mimetype, this.fileInfo.type, OC.PERMISSION_READ)\n\n\t\t},\n\n\t\t/**\n\t\t * Dynamic header click listener to ensure\n\t\t * nothing is listening for a click if there\n\t\t * is no default action\n\t\t *\n\t\t * @return {string|null}\n\t\t */\n\t\tdefaultActionListener() {\n\t\t\treturn this.defaultAction ? 'figure-click' : null\n\t\t},\n\n\t\tisSystemTagsEnabled() {\n\t\t\treturn OCA && 'SystemTags' in OCA\n\t\t},\n\t},\n\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 => tab.setIsActive(id === tab.id))\n\t\t},\n\n\t\t/**\n\t\t * Toggle favourite state\n\t\t * TODO: better implementation\n\t\t *\n\t\t * @param {boolean} state favourited or not\n\t\t */\n\t\tasync toggleStarred(state) {\n\t\t\ttry {\n\t\t\t\tthis.starLoading = true\n\t\t\t\tawait axios({\n\t\t\t\t\tmethod: 'PROPPATCH',\n\t\t\t\t\turl: this.davPath,\n\t\t\t\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t\t\t\t<d:propertyupdate xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\n\t\t\t\t\t\t${state ? '<d:set>' : '<d:remove>'}\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t${state ? '</d:set>' : '</d:remove>'}\n\t\t\t\t\t\t</d:propertyupdate>`,\n\t\t\t\t})\n\n\t\t\t\t// TODO: Obliterate as soon as possible and use events with new files app\n\t\t\t\t// Terrible fallback for legacy files: toggle filelist as well\n\t\t\t\tif (OCA.Files && OCA.Files.App && OCA.Files.App.fileList && OCA.Files.App.fileList.fileActions) {\n\t\t\t\t\tOCA.Files.App.fileList.fileActions.triggerAction('Favorite', OCA.Files.App.fileList.getModelForFile(this.fileInfo.name), OCA.Files.App.fileList)\n\t\t\t\t}\n\n\t\t\t} catch (error) {\n\t\t\t\tOC.Notification.showTemporary(t('files', 'Unable to change the favourite state of the file'))\n\t\t\t\tconsole.error('Unable to change favourite state', error)\n\t\t\t}\n\t\t\tthis.starLoading = false\n\t\t},\n\n\t\tonDefaultAction() {\n\t\t\tif (this.defaultAction) {\n\t\t\t\t// generate fake context\n\t\t\t\tthis.defaultAction.action(this.fileInfo.name, {\n\t\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\t\tdir: this.fileInfo.dir,\n\t\t\t\t\tfileList: OCA.Files.App.fileList,\n\t\t\t\t\t$file: $('body'),\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Toggle the tags selector\n\t\t */\n\t\ttoggleTags() {\n\t\t\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\t// update current opened file\n\t\t\tthis.Sidebar.file = path\n\n\t\t\tif (path && path.trim() !== '') {\n\t\t\t\t// reset data, keep old fileInfo to not reload all tabs and just hide them\n\t\t\t\tthis.error = null\n\t\t\t\tthis.loading = true\n\n\t\t\t\ttry {\n\t\t\t\t\tthis.fileInfo = await FileInfo(this.davPath)\n\t\t\t\t\t// adding this as fallback because other apps expect it\n\t\t\t\t\tthis.fileInfo.dir = this.file.split('/').slice(0, -1).join('/')\n\n\t\t\t\t\t// DEPRECATED legacy views\n\t\t\t\t\t// TODO: remove\n\t\t\t\t\tthis.views.forEach(view => {\n\t\t\t\t\t\tview.setFileInfo(this.fileInfo)\n\t\t\t\t\t})\n\n\t\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\t\tif (this.$refs.tabs) {\n\t\t\t\t\t\t\tthis.$refs.tabs.updateTabs()\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.setActiveTab(this.Sidebar.activeTab || this.tabs[0].id)\n\t\t\t\t\t})\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.error = t('files', 'Error while loading the file data')\n\t\t\t\t\tconsole.error('Error while loading the file data', error)\n\n\t\t\t\t\tthrow new Error(error)\n\t\t\t\t} finally {\n\t\t\t\t\tthis.loading = false\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Close the sidebar\n\t\t */\n\t\tclose() {\n\t\t\tthis.Sidebar.file = ''\n\t\t\tthis.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'\n\n/**\n * @param {any} url -\n */\nexport default async function(url) {\n\tconst response = await axios({\n\t\tmethod: 'PROPFIND',\n\t\turl,\n\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t<d:propfind xmlns:d=\"DAV:\"\n\t\t\t\txmlns:oc=\"http://owncloud.org/ns\"\n\t\t\t\txmlns:nc=\"http://nextcloud.org/ns\"\n\t\t\t\txmlns:ocs=\"http://open-collaboration-services.org/ns\">\n\t\t\t<d:prop>\n\t\t\t\t<d:getlastmodified />\n\t\t\t\t<d:getetag />\n\t\t\t\t<d:getcontenttype />\n\t\t\t\t<d:resourcetype />\n\t\t\t\t<oc:fileid />\n\t\t\t\t<oc:permissions />\n\t\t\t\t<oc:size />\n\t\t\t\t<d:getcontentlength />\n\t\t\t\t<nc:has-preview />\n\t\t\t\t<nc:mount-type />\n\t\t\t\t<nc:is-encrypted />\n\t\t\t\t<ocs:share-permissions />\n\t\t\t\t<nc:share-attributes />\n\t\t\t\t<oc:tags />\n\t\t\t\t<oc:favorite />\n\t\t\t\t<oc:comments-unread />\n\t\t\t\t<oc:owner-id />\n\t\t\t\t<oc:owner-display-name />\n\t\t\t\t<oc:share-types />\n\t\t\t</d:prop>\n\t\t\t</d:propfind>`,\n\t})\n\n\t// TODO: create new parser or use cdav-lib when available\n\tconst file = OCA.Files.App.fileList.filesClient._client.parseMultiStatus(response.data)\n\t// TODO: create new parser or use cdav-lib when available\n\tconst fileInfo = OCA.Files.App.fileList.filesClient._parseFileInfo(file[0])\n\n\t// TODO remove when no more legacy backbone is used\n\tfileInfo.get = (key) => fileInfo[key]\n\tfileInfo.isDirectory = () => fileInfo.mimetype === 'httpd/unix-directory'\n\n\treturn fileInfo\n}\n","\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=5f7a543a&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=5f7a543a&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=5f7a543a&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=5f7a543a&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 \"5f7a543a\",\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,\"update:starred\":_vm.toggleStarred,\"opening\":_vm.handleOpening,\"opened\":_vm.handleOpened,\"closing\":_vm.handleClosing,\"closed\":_vm.handleClosed},[_vm.defaultActionListener,function($event){$event.stopPropagation();$event.preventDefault();return _vm.onDefaultAction.apply(null, arguments)}]),scopedSlots:_vm._u([(_vm.fileInfo)?{key:\"description\",fn:function(){return [_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 [(_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\nconsole.debug('OCA.Files.Sidebar initialized')\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\tconst contentElement = document.querySelector('body > .content')\n\t\t|| document.querySelector('body > #content')\n\n\t// Make sure we have a proper layout\n\tif (contentElement) {\n\t\t// Make sure we have a mountpoint\n\t\tif (!document.getElementById('app-sidebar')) {\n\t\t\tconst sidebarElement = document.createElement('div')\n\t\t\tsidebarElement.id = 'app-sidebar'\n\t\t\tcontentElement.appendChild(sidebarElement)\n\t\t}\n\t}\n\n\t// Init vue app\n\tconst View = Vue.extend(SidebarView)\n\tconst AppSidebar = new View({\n\t\tname: 'SidebarRoot',\n\t})\n\tAppSidebar.$mount('#app-sidebar')\n\twindow.OCA.Files.Sidebar.open = AppSidebar.open\n\twindow.OCA.Files.Sidebar.close = AppSidebar.close\n\twindow.OCA.Files.Sidebar.setFullScreenMode = AppSidebar.setFullScreenMode\n})\n","/**\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","// 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-5f7a543a] .app-sidebar-header__figure{background-size:cover}.app-sidebar--has-preview[data-v-5f7a543a][data-mimetype=\\\"text/plain\\\"] .app-sidebar-header__figure,.app-sidebar--has-preview[data-v-5f7a543a][data-mimetype=\\\"text/markdown\\\"] .app-sidebar-header__figure{background-size:contain}.app-sidebar--full[data-v-5f7a543a]{position:fixed !important;z-index:2025 !important;top:0 !important;height:100% !important}.app-sidebar[data-v-5f7a543a] .app-sidebar-header__description{margin:0 16px 4px 16px !important}.app-sidebar .svg-icon[data-v-5f7a543a] svg{width:20px;height:20px;fill:currentColor}.sidebar__description[data-v-5f7a543a]{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-78e28406]{display:flex;flex-direction:column}.system-tags label[for=system-tags-input][data-v-78e28406]{margin-bottom:2px}.system-tags__select[data-v-78e28406]{width:100%}.system-tags__select[data-v-78e28406] .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","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (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__.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;","__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// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (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__(21351)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","name","components","NcAppSidebarTab","NcEmptyContent","props","fileInfo","type","Object","default","required","id","String","icon","onMount","Function","onUpdate","onDestroy","onScrollBottomReached","data","loading","computed","activeTab","$parent","watch","newFile","oldFile","$refs","mount","tab","_vm","this","_c","_self","ref","attrs","on","scopedSlots","_u","key","fn","_t","proxy","_v","_e","component","setFileInfo","mounted","$el","replaceAll","methods","OCA","Files","FileInfoModel","rootUrl","generateRemoteUrl","davClient","createClient","headers","requesttoken","_getRequestToken","getRequestToken","parseTags","tags","map","_ref","fromEntries","entries","_ref2","value","camelCase","parseIdFromLocation","url","queryPos","indexOf","substring","parts","split","result","length","pop","Number","formatTag","initialTag","tag","displayName","logger","getLoggerBuilder","setApp","detectUser","build","fetchTagsBody","selectTag","async","fileId","path","tagToPut","customRequest","method","error","t","Error","defaultBaseTag","userVisible","userAssignable","canAssign","Vue","NcSelectTags","sortedTags","selectedTags","getDirectoryContents","details","glob","fetchTags","lastUsedOrder","generateUrl","lastUsedTagIds","axios","fetchLastUsedTagIds","lastUsedTags","remainingTags","includes","push","sortByLastUsed","a","b","sort","showError","immediate","fetchSelectedTags","$emit","createOption","newDisplayName","baseTag","every","handleInput","filter","selectedTag","Boolean","sortToFront","tagToPost","contentLocation","get","createTag","createdTag","unshift","deleteFile","deleteTag","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_setupProxy","staticClass","_s","handleSelect","handleCreate","handleDeselect","LegacyView","NcActionButton","NcAppSidebar","SidebarTab","SystemTags","Sidebar","state","showTags","starLoading","isFullScreen","hasLowHeight","file","tabs","views","davPath","user","OC","getCurrentUser","uid","linkToRemote","concat","encodePath","subtitle","size","time","Util","relativeModifiedDate","mtime","fullTime","moment","format","humanFileSize","background","getPreviewIfAny","appSidebar","mimetype","active","class","hasPreview","compact","starred","isFavourited","subtitleTooltip","title","titleTooltip","defaultAction","App","fileList","fileActions","getDefaultFileAction","PERMISSION_READ","defaultActionListener","isSystemTagsEnabled","created","window","addEventListener","handleWindowResize","beforeDestroy","removeEventListener","canDisplay","enabled","resetData","$nextTick","updateTabs","screen","width","height","getIconUrl","mimeType","mountType","MimeType","undefined","shareTypes","ShareTypes","setActiveTab","forEach","setIsActive","triggerAction","getModelForFile","Notification","showTemporary","console","onDefaultAction","action","dir","$file","$","toggleTags","trim","response","filesClient","_client","parseMultiStatus","_parseFileInfo","isDirectory","FileInfo","slice","join","view","close","setFullScreenMode","_document$querySelect","_document$querySelect2","_document$querySelect3","_document$querySelect4","document","querySelector","classList","add","remove","handleOpening","emit","handleOpened","handleClosing","handleClosed","documentElement","clientHeight","_b","_d","toggleStarred","$event","stopPropagation","preventDefault","apply","arguments","directives","rawName","expression","_l","cid","update","destroy","scrollBottomReached","iconSvg","domProps","assign","constructor","_state","debug","registerTab","findIndex","check","registerSecondaryView","Tab","_defineProperty","_id","_name","_icon","_mount","_setIsActive","_update","_destroy","_enabled","_scrollBottomReached","sanitizeSVG","then","sanitizedSvg","_iconSvgSanitized","contentElement","getElementById","sidebarElement","createElement","appendChild","AppSidebar","SidebarView","$mount","open","___CSS_LOADER_EXPORT___","module","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","code","keys","resolve","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","call","m","O","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","splice","r","n","getter","__esModule","d","definition","defineProperty","enumerable","g","globalThis","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","bind","nc","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"files-sidebar.js?v=e606d6e8e8dec46c5a6f","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/files/src/components/SidebarTab.vue","webpack:///nextcloud/apps/files/src/components/SidebarTab.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/components/SidebarTab.vue?7aea","webpack://nextcloud/./apps/files/src/components/SidebarTab.vue?eddf","webpack:///nextcloud/apps/files/src/components/LegacyView.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/files/src/components/LegacyView.vue","webpack://nextcloud/./apps/files/src/components/LegacyView.vue?a2e2","webpack://nextcloud/./apps/files/src/components/LegacyView.vue?fb5f","webpack:///nextcloud/apps/systemtags/src/components/SystemTags.vue","webpack:///nextcloud/apps/systemtags/src/services/davClient.ts","webpack:///nextcloud/apps/systemtags/src/utils.ts","webpack:///nextcloud/apps/systemtags/src/logger.ts","webpack:///nextcloud/apps/systemtags/src/services/api.ts","webpack:///nextcloud/apps/systemtags/src/components/SystemTags.vue?vue&type=script&lang=ts&","webpack://nextcloud/./apps/systemtags/src/components/SystemTags.vue?e83e","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?9507","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/apps/files/src/views/Sidebar.vue?vue&type=style&index=0&id=5f7a543a&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/systemtags/src/components/SystemTags.vue?vue&type=style&index=0&id=7746ac6e&prod&lang=scss&scoped=true&","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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};","\n<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<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 mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SidebarTab.vue?vue&type=template&id=0da8ee1b&\"\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 }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyView.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<div />\n</template>\n<script>\nexport default {\n\tname: 'LegacyView',\n\tprops: {\n\t\tcomponent: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t},\n\twatch: {\n\t\tfileInfo(fileInfo) {\n\t\t\t// update the backbone model FileInfo\n\t\t\tthis.setFileInfo(fileInfo)\n\t\t},\n\t},\n\tmounted() {\n\t\t// append the backbone element and set the FileInfo\n\t\tthis.component.$el.replaceAll(this.$el)\n\t\tthis.setFileInfo(this.fileInfo)\n\t},\n\tmethods: {\n\t\tsetFileInfo(fileInfo) {\n\t\t\tthis.component.setFileInfo(new OCA.Files.FileInfoModel(fileInfo))\n\t\t},\n\t},\n}\n</script>\n<style>\n</style>\n","import { render, staticRenderFns } from \"./LegacyView.vue?vue&type=template&id=2245cbe7&\"\nimport script from \"./LegacyView.vue?vue&type=script&lang=js&\"\nexport * from \"./LegacyView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div')\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 { 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 camelCase from 'camelcase';\nexport const parseTags = (tags) => {\n return tags.map(({ props }) => Object.fromEntries(Object.entries(props)\n .map(([key, value]) => [camelCase(key), value])));\n};\n/**\n * Parse id from `Content-Location` header\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 { 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.js';\nimport { logger } from '../logger.js';\nconst fetchTagsBody = `<?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: fetchTagsBody,\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};\nexport const fetchSelectedTags = async (fileId) => {\n const path = '/systemtags-relations/files/' + fileId;\n try {\n const { data: tags } = await davClient.getDirectoryContents(path, {\n data: fetchTagsBody,\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 selected tags'), { error });\n throw new Error(t('systemtags', 'Failed to load selected tags'));\n }\n};\nexport const selectTag = async (fileId, tag) => {\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 select tag'), { error });\n throw new Error(t('systemtags', 'Failed to select tag'));\n }\n};\n/**\n * @return created tag id\n */\nexport const createTag = async (fileId, 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 const tagToPut = {\n ...tagToPost,\n id: parseIdFromLocation(contentLocation),\n };\n await selectTag(fileId, tagToPut);\n return tagToPut.id;\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 deleteTag = async (fileId, tag) => {\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'), { error });\n throw new Error(t('systemtags', 'Failed to delete tag'));\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=7746ac6e&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=7746ac6e&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=7746ac6e&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=7746ac6e&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 \"7746ac6e\",\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@update:starred=\"toggleStarred\"\n\t\t@[defaultActionListener].stop.prevent=\"onDefaultAction\"\n\t\t@opening=\"handleOpening\"\n\t\t@opened=\"handleOpened\"\n\t\t@closing=\"handleClosing\"\n\t\t@closed=\"handleClosed\">\n\t\t<!-- TODO: create a standard to allow multiple elements here? -->\n\t\t<template v-if=\"fileInfo\" #description>\n\t\t\t<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<!-- 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 { encodePath } from '@nextcloud/paths'\nimport $ from 'jquery'\nimport axios from '@nextcloud/axios'\nimport { emit } from '@nextcloud/event-bus'\nimport moment from '@nextcloud/moment'\nimport { Type as ShareTypes } from '@nextcloud/sharing'\n\nimport 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 SidebarTab from '../components/SidebarTab.vue'\nimport LegacyView from '../components/LegacyView.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},\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\treturn `${this.size}, ${this.time}`\n\t\t},\n\n\t\t/**\n\t\t * File last modified formatted string\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\ttime() {\n\t\t\treturn OC.Util.relativeModifiedDate(this.fileInfo.mtime)\n\t\t},\n\n\t\t/**\n\t\t * File last modified full string\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tfullTime() {\n\t\t\treturn moment(this.fileInfo.mtime).format('LLL')\n\t\t},\n\n\t\t/**\n\t\t * File size formatted string\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tsize() {\n\t\t\treturn OC.Util.humanFileSize(this.fileInfo.size)\n\t\t},\n\n\t\t/**\n\t\t * File background/figure to illustrate the sidebar header\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tbackground() {\n\t\t\treturn this.getPreviewIfAny(this.fileInfo)\n\t\t},\n\n\t\t/**\n\t\t * App sidebar v-binding object\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\tappSidebar() {\n\t\t\tif (this.fileInfo) {\n\t\t\t\treturn {\n\t\t\t\t\t'data-mimetype': this.fileInfo.mimetype,\n\t\t\t\t\t'star-loading': this.starLoading,\n\t\t\t\t\tactive: this.activeTab,\n\t\t\t\t\tbackground: this.background,\n\t\t\t\t\tclass: {\n\t\t\t\t\t\t'app-sidebar--has-preview': this.fileInfo.hasPreview && !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\tstarred: this.fileInfo.isFavourited,\n\t\t\t\t\tsubtitle: this.subtitle,\n\t\t\t\t\tsubtitleTooltip: this.fullTime,\n\t\t\t\t\ttitle: this.fileInfo.name,\n\t\t\t\t\ttitleTooltip: this.fileInfo.name,\n\t\t\t\t}\n\t\t\t} else if (this.error) {\n\t\t\t\treturn {\n\t\t\t\t\tkey: 'error', // force key to re-render\n\t\t\t\t\tsubtitle: '',\n\t\t\t\t\ttitle: '',\n\t\t\t\t}\n\t\t\t}\n\t\t\t// no fileInfo yet, showing empty data\n\t\t\treturn {\n\t\t\t\tloading: this.loading,\n\t\t\t\tsubtitle: '',\n\t\t\t\ttitle: '',\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Default action object for the current file\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\tdefaultAction() {\n\t\t\treturn this.fileInfo\n\t\t\t\t&& OCA.Files && OCA.Files.App && OCA.Files.App.fileList\n\t\t\t\t&& OCA.Files.App.fileList.fileActions\n\t\t\t\t&& OCA.Files.App.fileList.fileActions.getDefaultFileAction\n\t\t\t\t&& OCA.Files.App.fileList\n\t\t\t\t\t.fileActions.getDefaultFileAction(this.fileInfo.mimetype, this.fileInfo.type, OC.PERMISSION_READ)\n\n\t\t},\n\n\t\t/**\n\t\t * Dynamic header click listener to ensure\n\t\t * nothing is listening for a click if there\n\t\t * is no default action\n\t\t *\n\t\t * @return {string|null}\n\t\t */\n\t\tdefaultActionListener() {\n\t\t\treturn this.defaultAction ? 'figure-click' : null\n\t\t},\n\n\t\tisSystemTagsEnabled() {\n\t\t\treturn OCA && 'SystemTags' in OCA\n\t\t},\n\t},\n\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 => tab.setIsActive(id === tab.id))\n\t\t},\n\n\t\t/**\n\t\t * Toggle favourite state\n\t\t * TODO: better implementation\n\t\t *\n\t\t * @param {boolean} state favourited or not\n\t\t */\n\t\tasync toggleStarred(state) {\n\t\t\ttry {\n\t\t\t\tthis.starLoading = true\n\t\t\t\tawait axios({\n\t\t\t\t\tmethod: 'PROPPATCH',\n\t\t\t\t\turl: this.davPath,\n\t\t\t\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t\t\t\t<d:propertyupdate xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\n\t\t\t\t\t\t${state ? '<d:set>' : '<d:remove>'}\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t${state ? '</d:set>' : '</d:remove>'}\n\t\t\t\t\t\t</d:propertyupdate>`,\n\t\t\t\t})\n\n\t\t\t\t// TODO: Obliterate as soon as possible and use events with new files app\n\t\t\t\t// Terrible fallback for legacy files: toggle filelist as well\n\t\t\t\tif (OCA.Files && OCA.Files.App && OCA.Files.App.fileList && OCA.Files.App.fileList.fileActions) {\n\t\t\t\t\tOCA.Files.App.fileList.fileActions.triggerAction('Favorite', OCA.Files.App.fileList.getModelForFile(this.fileInfo.name), OCA.Files.App.fileList)\n\t\t\t\t}\n\n\t\t\t} catch (error) {\n\t\t\t\tOC.Notification.showTemporary(t('files', 'Unable to change the favourite state of the file'))\n\t\t\t\tconsole.error('Unable to change favourite state', error)\n\t\t\t}\n\t\t\tthis.starLoading = false\n\t\t},\n\n\t\tonDefaultAction() {\n\t\t\tif (this.defaultAction) {\n\t\t\t\t// generate fake context\n\t\t\t\tthis.defaultAction.action(this.fileInfo.name, {\n\t\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\t\tdir: this.fileInfo.dir,\n\t\t\t\t\tfileList: OCA.Files.App.fileList,\n\t\t\t\t\t$file: $('body'),\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Toggle the tags selector\n\t\t */\n\t\ttoggleTags() {\n\t\t\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\t// update current opened file\n\t\t\tthis.Sidebar.file = path\n\n\t\t\tif (path && path.trim() !== '') {\n\t\t\t\t// reset data, keep old fileInfo to not reload all tabs and just hide them\n\t\t\t\tthis.error = null\n\t\t\t\tthis.loading = true\n\n\t\t\t\ttry {\n\t\t\t\t\tthis.fileInfo = await FileInfo(this.davPath)\n\t\t\t\t\t// adding this as fallback because other apps expect it\n\t\t\t\t\tthis.fileInfo.dir = this.file.split('/').slice(0, -1).join('/')\n\n\t\t\t\t\t// DEPRECATED legacy views\n\t\t\t\t\t// TODO: remove\n\t\t\t\t\tthis.views.forEach(view => {\n\t\t\t\t\t\tview.setFileInfo(this.fileInfo)\n\t\t\t\t\t})\n\n\t\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\t\tif (this.$refs.tabs) {\n\t\t\t\t\t\t\tthis.$refs.tabs.updateTabs()\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.setActiveTab(this.Sidebar.activeTab || this.tabs[0].id)\n\t\t\t\t\t})\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.error = t('files', 'Error while loading the file data')\n\t\t\t\t\tconsole.error('Error while loading the file data', error)\n\n\t\t\t\t\tthrow new Error(error)\n\t\t\t\t} finally {\n\t\t\t\t\tthis.loading = false\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Close the sidebar\n\t\t */\n\t\tclose() {\n\t\t\tthis.Sidebar.file = ''\n\t\t\tthis.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'\n\n/**\n * @param {any} url -\n */\nexport default async function(url) {\n\tconst response = await axios({\n\t\tmethod: 'PROPFIND',\n\t\turl,\n\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t<d:propfind xmlns:d=\"DAV:\"\n\t\t\t\txmlns:oc=\"http://owncloud.org/ns\"\n\t\t\t\txmlns:nc=\"http://nextcloud.org/ns\"\n\t\t\t\txmlns:ocs=\"http://open-collaboration-services.org/ns\">\n\t\t\t<d:prop>\n\t\t\t\t<d:getlastmodified />\n\t\t\t\t<d:getetag />\n\t\t\t\t<d:getcontenttype />\n\t\t\t\t<d:resourcetype />\n\t\t\t\t<oc:fileid />\n\t\t\t\t<oc:permissions />\n\t\t\t\t<oc:size />\n\t\t\t\t<d:getcontentlength />\n\t\t\t\t<nc:has-preview />\n\t\t\t\t<nc:mount-type />\n\t\t\t\t<nc:is-encrypted />\n\t\t\t\t<ocs:share-permissions />\n\t\t\t\t<nc:share-attributes />\n\t\t\t\t<oc:tags />\n\t\t\t\t<oc:favorite />\n\t\t\t\t<oc:comments-unread />\n\t\t\t\t<oc:owner-id />\n\t\t\t\t<oc:owner-display-name />\n\t\t\t\t<oc:share-types />\n\t\t\t</d:prop>\n\t\t\t</d:propfind>`,\n\t})\n\n\t// TODO: create new parser or use cdav-lib when available\n\tconst file = OCA.Files.App.fileList.filesClient._client.parseMultiStatus(response.data)\n\t// TODO: create new parser or use cdav-lib when available\n\tconst fileInfo = OCA.Files.App.fileList.filesClient._parseFileInfo(file[0])\n\n\t// TODO remove when no more legacy backbone is used\n\tfileInfo.get = (key) => fileInfo[key]\n\tfileInfo.isDirectory = () => fileInfo.mimetype === 'httpd/unix-directory'\n\n\treturn fileInfo\n}\n","\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=5f7a543a&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=5f7a543a&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=5f7a543a&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=5f7a543a&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 \"5f7a543a\",\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,\"update:starred\":_vm.toggleStarred,\"opening\":_vm.handleOpening,\"opened\":_vm.handleOpened,\"closing\":_vm.handleClosing,\"closed\":_vm.handleClosed},[_vm.defaultActionListener,function($event){$event.stopPropagation();$event.preventDefault();return _vm.onDefaultAction.apply(null, arguments)}]),scopedSlots:_vm._u([(_vm.fileInfo)?{key:\"description\",fn:function(){return [_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 [(_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\nconsole.debug('OCA.Files.Sidebar initialized')\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\tconst contentElement = document.querySelector('body > .content')\n\t\t|| document.querySelector('body > #content')\n\n\t// Make sure we have a proper layout\n\tif (contentElement) {\n\t\t// Make sure we have a mountpoint\n\t\tif (!document.getElementById('app-sidebar')) {\n\t\t\tconst sidebarElement = document.createElement('div')\n\t\t\tsidebarElement.id = 'app-sidebar'\n\t\t\tcontentElement.appendChild(sidebarElement)\n\t\t}\n\t}\n\n\t// Init vue app\n\tconst View = Vue.extend(SidebarView)\n\tconst AppSidebar = new View({\n\t\tname: 'SidebarRoot',\n\t})\n\tAppSidebar.$mount('#app-sidebar')\n\twindow.OCA.Files.Sidebar.open = AppSidebar.open\n\twindow.OCA.Files.Sidebar.close = AppSidebar.close\n\twindow.OCA.Files.Sidebar.setFullScreenMode = AppSidebar.setFullScreenMode\n})\n","/**\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","// 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-5f7a543a] .app-sidebar-header__figure{background-size:cover}.app-sidebar--has-preview[data-v-5f7a543a][data-mimetype=\\\"text/plain\\\"] .app-sidebar-header__figure,.app-sidebar--has-preview[data-v-5f7a543a][data-mimetype=\\\"text/markdown\\\"] .app-sidebar-header__figure{background-size:contain}.app-sidebar--full[data-v-5f7a543a]{position:fixed !important;z-index:2025 !important;top:0 !important;height:100% !important}.app-sidebar[data-v-5f7a543a] .app-sidebar-header__description{margin:0 16px 4px 16px !important}.app-sidebar .svg-icon[data-v-5f7a543a] svg{width:20px;height:20px;fill:currentColor}.sidebar__description[data-v-5f7a543a]{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-7746ac6e]{display:flex;flex-direction:column}.system-tags label[for=system-tags-input][data-v-7746ac6e]{margin-bottom:2px}.system-tags__select[data-v-7746ac6e]{width:100%}.system-tags__select[data-v-7746ac6e] .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","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (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__.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;","__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// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (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__(40437)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","name","components","NcAppSidebarTab","NcEmptyContent","props","fileInfo","type","Object","default","required","id","String","icon","onMount","Function","onUpdate","onDestroy","onScrollBottomReached","data","loading","computed","activeTab","$parent","watch","newFile","oldFile","$refs","mount","tab","_vm","this","_c","_self","ref","attrs","on","scopedSlots","_u","key","fn","_t","proxy","_v","_e","component","setFileInfo","mounted","$el","replaceAll","methods","OCA","Files","FileInfoModel","rootUrl","generateRemoteUrl","davClient","createClient","headers","requesttoken","_getRequestToken","getRequestToken","parseTags","tags","map","_ref","fromEntries","entries","_ref2","value","camelCase","parseIdFromLocation","url","queryPos","indexOf","substring","parts","split","result","length","pop","Number","formatTag","initialTag","tag","displayName","logger","getLoggerBuilder","setApp","detectUser","build","fetchTagsBody","selectTag","async","fileId","path","tagToPut","customRequest","method","error","t","Error","defaultBaseTag","userVisible","userAssignable","canAssign","Vue","NcLoadingIcon","NcSelectTags","sortedTags","selectedTags","loadingTags","getDirectoryContents","details","glob","fetchTags","lastUsedOrder","generateUrl","lastUsedTagIds","axios","fetchLastUsedTagIds","lastUsedTags","remainingTags","includes","push","sortByLastUsed","a","b","sort","showError","immediate","fetchSelectedTags","$emit","createOption","newDisplayName","baseTag","every","handleInput","filter","selectedTag","Boolean","sortToFront","tagToPost","contentLocation","get","createTag","createdTag","unshift","deleteFile","deleteTag","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_setupProxy","staticClass","_s","handleSelect","handleCreate","handleDeselect","LegacyView","NcActionButton","NcAppSidebar","SidebarTab","SystemTags","Sidebar","state","showTags","starLoading","isFullScreen","hasLowHeight","file","tabs","views","davPath","user","OC","getCurrentUser","uid","linkToRemote","concat","encodePath","subtitle","size","time","Util","relativeModifiedDate","mtime","fullTime","moment","format","humanFileSize","background","getPreviewIfAny","appSidebar","mimetype","active","class","hasPreview","compact","starred","isFavourited","subtitleTooltip","title","titleTooltip","defaultAction","App","fileList","fileActions","getDefaultFileAction","PERMISSION_READ","defaultActionListener","isSystemTagsEnabled","created","window","addEventListener","handleWindowResize","beforeDestroy","removeEventListener","canDisplay","enabled","resetData","$nextTick","updateTabs","screen","width","height","getIconUrl","mimeType","mountType","MimeType","undefined","shareTypes","ShareTypes","setActiveTab","forEach","setIsActive","triggerAction","getModelForFile","Notification","showTemporary","console","onDefaultAction","action","dir","$file","$","toggleTags","trim","response","filesClient","_client","parseMultiStatus","_parseFileInfo","isDirectory","FileInfo","slice","join","view","close","setFullScreenMode","_document$querySelect","_document$querySelect2","_document$querySelect3","_document$querySelect4","document","querySelector","classList","add","remove","handleOpening","emit","handleOpened","handleClosing","handleClosed","documentElement","clientHeight","_b","_d","toggleStarred","$event","stopPropagation","preventDefault","apply","arguments","directives","rawName","expression","_l","cid","update","destroy","scrollBottomReached","iconSvg","domProps","assign","constructor","_state","debug","registerTab","findIndex","check","registerSecondaryView","Tab","_defineProperty","_id","_name","_icon","_mount","_setIsActive","_update","_destroy","_enabled","_scrollBottomReached","sanitizeSVG","then","sanitizedSvg","_iconSvgSanitized","contentElement","getElementById","sidebarElement","createElement","appendChild","AppSidebar","SidebarView","$mount","open","___CSS_LOADER_EXPORT___","module","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","code","keys","resolve","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","call","m","O","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","splice","r","n","getter","__esModule","d","definition","defineProperty","enumerable","g","globalThis","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","bind","nc","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file |