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) • 2.1 kB
JavaScript
"use strict";var c=Object.defineProperty;var h=(i,t,e)=>t in i?c(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var a=(i,t,e)=>h(i,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../../icons/align-center.svg.cjs"),o=require("../../../icons/align-left.svg.cjs"),u=require("../../../icons/align-right.svg.cjs"),d=require("../../../icons/delete.svg.cjs"),M=require("../../../icons/edit.svg.cjs"),g=require("../../../core/ui/ContextMenu.cjs");class f{constructor(t,e){a(this,"contextMenu");a(this,"activeMath",null);this.mathMenu=e,this.contextMenu=new g.ContextMenu(t,[{title:t.t("Edit"),icon:M.default,action:"edit",onClick:()=>this.handleEdit()},{title:t.t("Delete"),icon:d.default,action:"delete",className:"text-red-600",onClick:()=>this.handleDelete()},{type:"divider"},{title:t.t("Align Left"),icon:o.default,action:"align-left",onClick:()=>this.handleAlign("flex-start")},{title:t.t("Align Center"),icon:r.default,action:"align-center",onClick:()=>this.handleAlign("center")},{title:t.t("Align Right"),icon:u.default,action:"align-right",onClick:()=>this.handleAlign("flex-end")}],{orientation:"vertical"})}handleAlign(t){var e,n,l,s;if(this.activeMath)switch((e=this.activeMath.parentElement)==null||e.classList.remove("align-left","align-center","align-right"),t){case"flex-start":(n=this.activeMath.parentElement)==null||n.classList.add("align-left");break;case"center":(l=this.activeMath.parentElement)==null||l.classList.add("align-center");break;case"flex-end":(s=this.activeMath.parentElement)==null||s.classList.add("align-right");break}}handleEdit(){if(!this.activeMath)return;this.activeMath.getAttribute("data-math-expression")&&this.mathMenu.edit(this.activeMath)}handleDelete(){this.activeMath&&this.activeMath.remove()}show(t,e,n){this.activeMath=t,this.contextMenu.show(t,e,n)}hide(){this.contextMenu.hide(),this.activeMath=null}destroy(){typeof this.contextMenu.destroy=="function"&&this.contextMenu.destroy(),this.contextMenu=null,this.activeMath=null,this.mathMenu=null}}exports.MathContextMenu=f;