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) • 2.01 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 l=Object.defineProperty;var c=(t,e,i)=>e in t?l(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i;var n=(t,e,i)=>c(t,typeof e!="symbol"?e+"":e,i);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../../../icons/align-center.svg.cjs"),s=require("../../../icons/align-left.svg.cjs"),g=require("../../../icons/align-right.svg.cjs"),r=require("../../../icons/delete.svg.cjs"),h=require("../../../core/ui/ContextMenu.cjs");class u{constructor(e){n(this,"contextMenu");n(this,"activeImage",null);this.contextMenu=new h.ContextMenu(e,[{label:e.t("Align Left"),icon:s.default,action:"align-left",onClick:()=>this.handleAction("align-left")},{label:e.t("Align Center"),icon:o.default,action:"align-center",onClick:()=>this.handleAction("align-center")},{label:e.t("Align Right"),icon:g.default,action:"align-right",onClick:()=>this.handleAction("align-right")},{type:"divider"},{label:e.t("Remove"),icon:r.default,action:"remove",className:"text-red-600",onClick:()=>this.handleAction("remove")}],{orientation:"vertical"})}handleAction(e){if(this.activeImage)switch(e){case"align-left":this.activeImage.style.float="left",this.activeImage.style.marginRight="1rem";break;case"align-center":this.activeImage.style.float="none",this.activeImage.style.display="block",this.activeImage.style.marginLeft="auto",this.activeImage.style.marginRight="auto";break;case"align-right":this.activeImage.style.float="right",this.activeImage.style.marginLeft="1rem";break;case"remove":this.activeImage.remove();break}}show(e,i,a){this.activeImage=e,this.contextMenu.show(e,i,a)}hide(){this.contextMenu.hide(),this.activeImage=null}destroy(){this.contextMenu.destroy(),this.contextMenu=null,this.activeImage=null}}exports.ImageContextMenu=u;