UNPKG

on-codemerge

Version:

A WYSIWYG editor for on-codemerge is a user-friendly interface that allows users to edit and view their code in real time, exactly as it will appear in the final product

2 lines (1 loc) 1.62 kB
"use strict";var i=Object.defineProperty;var r=(n,t,e)=>t in n?i(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var o=(n,t,e)=>r(n,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */;/* empty css */const l=require("./components/TemplatesMenu.cjs"),s=require("./services/TemplateManager.cjs"),a=require("../ToolbarPlugin/utils.cjs"),u=require("../../icons/templates.svg.cjs");class m{constructor(){o(this,"name","templates");o(this,"hotkeys",[{keys:"Ctrl+Alt+T",description:"Insert template",command:"templates",icon:"📄"}]);o(this,"editor",null);o(this,"menu",null);o(this,"manager");o(this,"toolbarButton",null);this.manager=new s.TemplateManager}initialize(t){this.menu=new l.TemplatesMenu(this.manager,t),this.editor=t,this.addToolbarButton(),this.editor.on("templates",()=>{this.showTemplatesMenu()})}addToolbarButton(){var e;const t=document.querySelector(".editor-toolbar");t&&(this.toolbarButton=a.createToolbarButton({icon:u.default,title:(e=this.editor)==null?void 0:e.t("Templates"),onClick:()=>this.showTemplatesMenu()}),t.appendChild(this.toolbarButton))}showTemplatesMenu(){var t;this.editor&&((t=this.menu)==null||t.show(e=>{this.editor&&(this.editor.getContainer().innerHTML=e.content)}))}destroy(){var t;this.toolbarButton&&this.toolbarButton.parentElement&&this.toolbarButton.parentElement.removeChild(this.toolbarButton),this.menu&&(this.menu.destroy(),this.menu=null),(t=this.editor)==null||t.off("templates"),this.editor=null,this.manager=null,this.toolbarButton=null}}exports.TemplatesPlugin=m;