UNPKG

@kingscode/vuetify-file-manager

Version:

A vuetify file manager. A library with files for your CMS or application

2 lines 15 kB
(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t():"function"===typeof define&&define.amd?define([],t):"object"===typeof exports?exports["vuetify-file-manager"]=t():e["vuetify-file-manager"]=t()})("undefined"!==typeof self?self:this,(function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var l=t[i]={i:i,l:!1,exports:{}};return e[i].call(l.exports,l,l.exports,n),l.l=!0,l.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var l in e)n.d(i,l,function(t){return e[t]}.bind(null,l));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s="fb15")}({1687:function(e,t,n){"use strict";var i=n("289b"),l=n.n(i);l.a},"1e9d":function(e,t,n){},2083:function(e,t,n){"use strict";var i=n("34a6"),l=n.n(i);l.a},"289b":function(e,t,n){},"34a6":function(e,t,n){},"5d8c":function(e,t,n){"use strict";var i=n("fb8e"),l=n.n(i);l.a},"5ed8":function(e,t,n){"use strict";var i=n("1e9d"),l=n.n(i);l.a},ca53:function(e,t,n){"use strict";var i=n("dc74"),l=n.n(i);l.a},dc74:function(e,t,n){},ee26:function(e,t,n){},f6fd:function(e,t){(function(e){var t="currentScript",n=e.getElementsByTagName("script");t in e||Object.defineProperty(e,t,{get:function(){try{throw new Error}catch(i){var e,t=(/.*at [^\(]*\((.*):.+:.+\)$/gi.exec(i.stack)||[!1])[1];for(e in n)if(n[e].src==t||"interactive"==n[e].readyState)return n[e];return null}}})})(document)},fb15:function(e,t,n){"use strict";var i;(n.r(t),"undefined"!==typeof window)&&(n("f6fd"),(i=window.document.currentScript)&&(i=i.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))&&(n.p=i[1]));n("ee26");var l=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("v-layout",{attrs:{"pa-0":"","ma-0":"","fill-height":""}},[n("v-flex",{attrs:{xs12:"",sm4:"",md3:"",xl2:""}},[n("v-layout",{staticClass:"grey lighten-4",staticStyle:{position:"relative"},attrs:{column:"","fill-height":"","pa-3":""}},[n("folders",{attrs:{"root-name":e.rootName,folders:e.folders,removeFolder:e.removeFolder,hasDeleteOption:e.hasDeleteFolderOption},on:{folderSelected:e.folderSelected}}),n("folder-create",e._g({attrs:{createFolder:e.createFolder,folders:e.folders},on:{folderCreated:e.callGetFolders}},e.$listeners))],1)],1),n("v-divider",{attrs:{vertical:""}}),n("v-flex",{attrs:{xs12:"",sm8:"",md9:"",xl10:""}},[n("v-layout",{attrs:{column:"","fill-height":"","pa-3":""}},[n("folder-view",e._g({attrs:{files:e.files,deleteImage:e.deleteImage,hasDeleteOption:e.hasDeleteImageOption}},e.$listeners))],1)],1)],1)},o=[],r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"folder-create-wrapper"},[n("v-tooltip",{attrs:{left:""},scopedSlots:e._u([{key:"activator",fn:function(t){var i=t.on;return[n("v-btn",e._g({staticClass:"createFolderBtn",attrs:{absolute:"",dark:"",fab:"",bottom:"",right:"",small:"",color:"accent"},on:{click:function(t){e.dialog=!0}}},i),[n("v-icon",[e._v("fa-plus")])],1)]}}])},[e._v("\n "+e._s(e.$vuetify.lang.t("$vuetify.fileManager.folder.create"))+"\n ")]),n("v-dialog",{attrs:{width:"300px"},model:{value:e.dialog,callback:function(t){e.dialog=t},expression:"dialog"}},[n("v-card",[n("v-card-title",[e._v(e._s(e.$vuetify.lang.t("$vuetify.fileManager.folder.create")))]),n("v-card-text",[n("v-text-field",{attrs:{label:e.$vuetify.lang.t("$vuetify.fileManager.name"),hint:e.$vuetify.lang.t("$vuetify.fileManager.folder.create")},model:{value:e.name,callback:function(t){e.name=t},expression:"name"}}),n("v-select",{attrs:{items:e.foldersWithWebsiteParent,label:e.$vuetify.lang.t("$vuetify.fileManager.folder.upperFolder"),"item-text":"name","item-value":"id"},model:{value:e.parent,callback:function(t){e.parent=t},expression:"parent"}})],1),n("v-card-actions",[n("v-spacer"),n("v-btn",{attrs:{flat:"",color:"accent"},on:{click:e.callCreateFolder}},[e._v(e._s(e.$vuetify.lang.t("$vuetify.fileManager.folder.upperFolder")))])],1)],1)],1)],1)},a=[],s={name:"FolderCreate",props:{folders:{required:!0,type:Array},createFolder:{required:!0,type:Function}},data(){return{dialog:!1,name:"",parent:null}},computed:{foldersWithWebsiteParent(){return[...this.folders,{name:"Website",id:null}]}},methods:{callCreateFolder(){this.createFolder(this.name,this.parent).then(()=>{this.dialog=!1,this.$emit("folderCreated"),this.name=null,this.parent=null})}}},d=s;n("ca53");function c(e,t,n,i,l,o,r,a){var s,d="function"===typeof e?e.options:e;if(t&&(d.render=t,d.staticRenderFns=n,d._compiled=!0),i&&(d.functional=!0),o&&(d._scopeId="data-v-"+o),r?(s=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),l&&l.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(r)},d._ssrRegister=s):l&&(s=a?function(){l.call(this,this.$root.$options.shadowRoot)}:l),s)if(d.functional){d._injectStyles=s;var c=d.render;d.render=function(e,t){return s.call(t),c(e,t)}}else{var f=d.beforeCreate;d.beforeCreate=f?[].concat(f,s):[s]}return{exports:e,options:d}}var f=c(d,r,a,!1,null,"6445986e",null),u=f.exports,p=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("v-treeview",{attrs:{active:e.active,open:e.open,items:e.folderItems,activatable:""},on:{"update:active":function(t){e.active=t},"update:open":function(t){e.open=t}},scopedSlots:e._u([{key:"prepend",fn:function(t){var i=t.item,l=t.open;return[n("v-icon",{on:{contextmenu:function(t){return e.showContextMenu(t,i)}}},[e._v("\n "+e._s(l?"fa-folder-open":"fa-folder")+"\n ")])]}},{key:"label",fn:function(t){var i=t.item;return[n("div",{on:{contextmenu:function(t){return e.showContextMenu(t,i)}}},[e._v("\n "+e._s(i.name)+"\n ")])]}}])}),n("context-menu",{ref:"contextMenu",on:{showDeleteDialog:e.showDeleteDialog}}),n("delete-dialog",{ref:"deleteDialog",on:{deleted:e.removeFolder}})],1)},v=[],m=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("v-dialog",{attrs:{"max-width":"290"},model:{value:e.dialog,callback:function(t){e.dialog=t},expression:"dialog"}},[n("v-card",[n("v-card-title",{staticClass:"headline"},[e._v(e._s(e.$vuetify.lang.t("$vuetify.fileManager.confirmation_delete"))+"\n ")]),n("v-card-text",[e._v("\n "+e._s(e.$vuetify.lang.t("$vuetify.fileManager.image.delete.warning"))+"\n ")]),n("v-card-actions",[n("v-btn",{attrs:{color:"grey darken-1",text:"",flat:""},on:{click:function(t){e.dialog=!1}}},[e._v("\n "+e._s(e.$vuetify.lang.t("$vuetify.cancel"))+"\n ")]),n("v-spacer"),n("v-btn",{attrs:{color:"priamry darken-1",text:"",flat:""},on:{click:e.deleteItem}},[e._v("\n "+e._s(e.$vuetify.lang.t("$vuetify.delete"))+"\n ")])],1)],1)],1)},h=[],g={name:"DeleteDialog",data:()=>({dialog:!1,item:null}),methods:{deleteItem(){this.dialog=!1,this.$emit("deleted",this.item)},show(e){this.item=e,this.dialog=!0}}},y=g,_=c(y,m,h,!1,null,"1268f370",null),x=_.exports,b=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("v-menu",{attrs:{"position-x":e.x,"position-y":e.y,absolute:"","offset-y":""},model:{value:e.showMenu,callback:function(t){e.showMenu=t},expression:"showMenu"}},[n("v-list",{staticClass:"clickable"},[n("v-list-tile",[n("v-list-tile-title",{on:{click:function(t){return e.$emit("showDeleteDialog",e.item)}}},[n("v-icon",{staticClass:"red--text"},[e._v("far fa-trash-alt")]),e._v("\n "+e._s(e.item?e.item.name:"")+" "+e._s(e.$vuetify.lang.t("$vuetify.delete"))+"\n ")],1)],1)],1)],1)],1)},w=[],F={name:"ContextMenu",data:()=>({showMenu:!1,x:0,y:0,item:null}),methods:{show(e,t){e.preventDefault(),this.showMenu=!1,this.item=t,this.x=e.clientX,this.y=e.clientY,this.$nextTick(()=>{this.showMenu=!0})}}},$=F,D=(n("5ed8"),c($,b,w,!1,null,null,null)),k=D.exports,C={name:"folders",components:{DeleteDialog:x,ContextMenu:k},data(){return{active:[],open:[],folderItems:[]}},watch:{folders:{immediate:!0,deep:!0,handler(){this.folderItems=[{name:this.rootName,id:"root",children:this.folders}],this.open=["root"]}},active:{deep:!0,handler(e,t){let n=e[0];"undefined"===typeof n&&(n=t[0]),this.$emit("folderSelected",n)}}},props:{folders:{required:!0,type:Array},rootName:{required:!1,type:String,default:"Website"},removeFolder:{required:!1,type:Function},hasDeleteOption:{required:!1,type:Boolean,default:!1}},methods:{showContextMenu(e,t){e.preventDefault(),this.hasDeleteOption&&this.$refs.contextMenu.show(e,t)},showDeleteDialog(e){this.$refs.deleteDialog.show(e)}}},S=C,M=(n("1687"),c(S,p,v,!1,null,null,null)),O=M.exports,j=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("v-container",{attrs:{"grid-list-md":"",fluid:"",id:"drop-area"},on:{drop:function(t){return t.preventDefault(),e.handleDrop(t)},dragover:function(e){e.preventDefault()}}},[e.files.length>0?n("v-layout",{attrs:{row:"",wrap:""}},e._l(e.files,(function(t){return n("file-view",e._g({attrs:{isRemovable:e.hasDeleteOption,file:t},on:{showDeleteDialog:e.showDeleteDialog}},e.$listeners))})),1):n("div",{staticClass:"text-xs-center"},[n("v-icon",{attrs:{size:"150"}},[e._v("fa-search")]),n("div",{staticClass:"mt-3 title"},[e._v(e._s(e.$vuetify.lang.t("$vuetify.fileManager.folder.empty")))])],1),n("delete-dialog",{ref:"deleteDialog",on:{deleted:e.deleteImage}})],1)},q=[],I=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("v-hover",{scopedSlots:e._u([{key:"default",fn:function(t){var i=t.hover;return n("v-flex",{staticClass:"text-xs-center file",staticStyle:{position:"relative"},attrs:{xs4:"",md3:"",lg2:"","pa-3":""}},[n("v-badge",{staticClass:"right px-2",staticStyle:{width:"100%"},attrs:{color:"transparant",transition:"scale-transition"},scopedSlots:e._u([{key:"badge",fn:function(){return[n("v-speed-dial",{staticClass:"mr-4",attrs:{openOnHover:"",direction:"bottom"},scopedSlots:e._u([{key:"activator",fn:function(){return[n("v-btn",{attrs:{color:"primary darken-2",dark:"",fab:"",small:""},model:{value:e.fab,callback:function(t){e.fab=t},expression:"fab"}},[n("v-icon",[e._v("fa-ellipsis-v")]),n("v-icon",[e._v("fa-times")])],1)]},proxy:!0}],null,!0),model:{value:e.fab,callback:function(t){e.fab=t},expression:"fab"}},[n("v-btn",{attrs:{fab:"",dark:"",small:"",color:"grey","x-small":""},on:{click:function(t){return e.$emit("download",e.file)}}},[n("v-icon",[e._v("fa-download")])],1),e.isRemovable?n("v-btn",{attrs:{fab:"",dark:"",small:"",color:"red","x-small":""},on:{click:function(t){return e.$emit("showDeleteDialog",e.file)}}},[n("v-icon",{on:{click:function(e){}}},[e._v("fa-trash")])],1):e._e()],1)]},proxy:!0}],null,!0),model:{value:i,callback:function(e){i=e},expression:"hover"}},[e.isImage?n("v-img",{staticClass:"mt-4 clickable",staticStyle:{cursor:"pointer"},attrs:{height:72,src:e.file.preview_path+"?height=80"},on:{click:function(t){return e.$emit("select",e.file)}}}):n("v-icon",{staticClass:"mt-4",attrs:{size:72,color:"gray"},on:{click:function(t){return e.$emit("select",e.file)}}},[e._v("\n fal "+e._s(e.icon)+"\n ")]),n("v-tooltip",{attrs:{right:""},scopedSlots:e._u([{key:"activator",fn:function(t){var i=t.on;return[n("div",e._g({staticClass:"subheading text-truncate"},i),[e._v(e._s(e.file.name))])]}}],null,!0)},[e._v("\n "+e._s(e.file.name)+"\n ")])],1)],1)}}])})},E=[],P={name:"FileView",props:{file:{required:!0,type:Object},isRemovable:{required:!1,type:Boolean,default:!1}},data:()=>({fab:!1}),computed:{isImage(){return this.file.mime_type&&["image/png","image/jpeg","image/jpg"].includes(this.file.mime_type)},icon(){let e=this.file.mime_type,t={image:"fa-file-image",audio:"fa-file-audio",video:"fa-file-video","application/pdf":"fa-file-pdf","application/msword":"fa-file-word","application/vnd.ms-word":"fa-file-word","application/vnd.oasis.opendocument.text":"fa-file-word","application/vnd.openxmlformatsfficedocument.wordprocessingml":"fa-file-word","application/vnd.ms-excel":"fa-file-excel","application/vnd.openxmlformatsfficedocument.spreadsheetml":"fa-file-excel","application/vnd.oasis.opendocument.spreadsheet":"fa-file-excel","application/vnd.ms-powerpoint":"fa-file-powerpoint","application/vnd.openxmlformatsfficedocument.presentationml":"fa-file-powerpoint","application/vnd.oasis.opendocument.presentation":"fa-file-powerpoint","text/plain":"fa-file-alt","text/html":"fa-file-code","application/json":"fa-file-code","application/gzip":"fa-file-archive","application/zip":"fa-file-archive"};for(let n in t){if(!t.hasOwnProperty(n))return"fa-file";if(0===e.search(n))return t[n]}return"fa-file"}}},T=P,R=(n("5d8c"),n("2083"),c(T,I,E,!1,null,"a8592b8e",null)),N=R.exports,W={name:"FolderView",components:{DeleteDialog:x,FileView:N},props:{files:{required:!0,type:Array},deleteImage:{required:!1,type:Function,default:()=>{}},hasDeleteOption:{required:!1,type:Boolean,default:!1}},methods:{handleDrop(e){this.$emit("filesDropped",e.dataTransfer.files)},showDeleteDialog(e){this.$refs.deleteDialog.show(e)}}},V=W,B=c(V,j,q,!1,null,"7c3f5ebd",null),z=B.exports,G={name:"vuetify-file-manager",components:{FolderCreate:u,FolderView:z,Folders:O},data(){return{files:[],folders:[],selectedFolder:null}},props:{getFolders:{required:!0,type:Function},getFolderContent:{required:!0,type:Function},rootName:{required:!1,type:String,default:"Website"},createFolder:{required:!0,type:Function},deleteFolder:{required:!1,type:Function},deleteImage:{required:!1,type:Function}},computed:{hasDeleteFolderOption(){return"function"===typeof this.deleteFolder},hasDeleteImageOption(){return"function"===typeof this.deleteImage}},methods:{folderSelected(e){this.selectedFolder={id:e},this.getFolderContent(this.selectedFolder.id).then(e=>{this.files=e})},callGetFolders(){this.getFolders().then(e=>{this.folders=e,this.selectedFolder=this.selectedFolder?this.selectedFolder:e[0],this.folderSelected(this.selectedFolder.id)})},reloadFiles(){this.folderSelected(this.selectedFolder.id)},reloadDirectory(){this.callGetFolders()},removeFolder(e){this.deleteFolder(e),this.selectedFolder=e.id===this.selectedFolder.id?null:this.selectedFolder}},created(){this.callGetFolders()}},A=G,X=c(A,l,o,!1,null,null,null),U=X.exports;const H={install(e,t){e.component("vuetify-file-manager",U)}};var Y=H;t["default"]=Y},fb8e:function(e,t,n){}})})); //# sourceMappingURL=vuetify-file-manager.umd.min.js.map