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
3 lines (2 loc) • 1.86 kB
JavaScript
/*! on-codemerge v1.3.1 @author Pavel Kuzmin @license MIT @homepage https://s00d.github.io/on-codemerge/ @repository git+https://github.com/s00d/on-codemerge.git Copyright (c) 2026 Pavel Kuzmin - Built on 2026-07-02T13:39:17.947Z */
"use strict";var r=Object.defineProperty;var s=(n,t,e)=>t in n?r(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var o=(n,t,e)=>s(n,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */;/* empty css */const l=require("./components/TemplatesMenu.cjs"),a=require("./services/TemplateManager.cjs"),u=require("../ToolbarPlugin/utils.cjs"),h=require("../../icons/templates.svg.cjs");class m{constructor(){o(this,"name","templates");o(this,"hotkeys",[{keys:"Ctrl+Alt+M",description:"Insert template",command:"templates",icon:"📄"}]);o(this,"editor",null);o(this,"menu",null);o(this,"manager");o(this,"toolbarButton",null);this.manager=new a.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,i;const t=(e=this.editor)==null?void 0:e.getToolbar();t&&(this.toolbarButton=u.createToolbarButton({icon:h.default,title:(i=this.editor)==null?void 0:i.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;