jodit-pro
Version:
PRO Version of Jodit Editor
2 lines (1 loc) • 3.09 kB
JavaScript
var u=Object.defineProperty;var i=(c,e)=>u(c,"name",{value:e,configurable:!0});var s,f=function(c,e,t,o){var n=arguments.length,r=n<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,t):o,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(c,e,t,o);else for(var d=c.length-1;d>=0;d--)(a=c[d])&&(r=(n<3?a(r):n>3?a(e,t,r):a(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r};import{ViewComponent as x}from"jodit/esm/core/component/view-component.js";import{component as p,watch as h}from"jodit/esm/core/decorators/index.js";import{makeContextMenu as m}from"jodit/esm/modules/file-browser/factories.js";let l=(s=class extends x{className(){return"ContextMenuManager"}onFolderContext(e,t){return this.buildContextItemMenu(this.getFolderContextActions(e),t),!1}onItemContext(e,t,o){return this.buildContextItemMenu(this.getItemContextActions(e),o),!1}onSourceContext(e,t){return this.buildContextItemMenu(this.getSourceContextActions(e),t),!1}buildContextItemMenu(e,t){if(!this.j.o.contextMenu)return;const o=m(this.j).setMod("theme",this.j.state.theme);o.show(t.clientX,t.clientY,e.filter(n=>n&&n.enabled!==!1)),this.j.e.on(this.j,"afterClose",()=>{o.isOpened&&o.close()})}getItemContextActions(e){if(this.j.stateManager.isActive(e)||this.j.stateManager.addActive(e,this.j.state.activeElements.length>1),e.type==="folder")return this.getFolderContextActions({type:"directory",children:[],name:e.name||"",path:e.path,sourceName:e.sourceName});const t=this.j.options,o=this.j.dataProvider,n=this.j.state.activeElements.length===1;return[{icon:"pencil",title:"Edit",enabled:!!e.isImage&&t.editImage&&n&&(o.canI("ImageResize")||o.canI("ImageCrop")),exec:i(()=>{this.j.e.fire("edit.filebrowser")},"exec")},{icon:"italic",title:"Rename",enabled:o.canI("FileRename")&&n,exec:i(()=>this.j.e.fire("fileRename.filebrowser",e),"exec")},{icon:"bin",title:"Delete",enabled:o.canI("FileRemove"),exec:i(()=>this.j.e.fire("fileRemove.filebrowser",e),"exec")},{icon:"eye",title:"Preview",enabled:!!(e.isImage||e.type==="file")&&t.preview&&n,exec:i(()=>this.j.e.fire("openLightBox.filebrowser",e),"exec")},{icon:"upload",title:"Download",exec:i(()=>{e.fileURL&&this.j.ow.open(e.fileURL)},"exec")}]}getFolderContextActions(e){const t=this.j.dataProvider;return[{icon:"pencil",title:"Rename",exec:i(()=>{this.j.e.fire("folderRename.filebrowser",e)},"exec"),enabled:t.canI("FolderRename")},{icon:"bin",title:"Delete",exec:i(()=>{this.j.e.fire("folderRemove.filebrowser",e)},"exec"),enabled:t.canI("FolderRemove")},{icon:"plus",title:"Add folder",exec:i(()=>{this.j.e.fire("folderCreate.filebrowser",e)},"exec"),enabled:t.canI("FolderCreate")}]}getSourceContextActions(e){return[{icon:"plus",title:"Create folder",exec:i(()=>{this.j.e.fire("folderCreate.filebrowser",e)},"exec")}]}},i(s,"ContextMenuManager"),s);f([h(":contextmenuFolder.filebrowser")],l.prototype,"onFolderContext",null),f([h(":contextmenuItem.filebrowser")],l.prototype,"onItemContext",null),f([h(":contextmenuSource.filebrowser")],l.prototype,"onSourceContext",null),l=f([p],l);export{l as ContextMenuManager};