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.56 kB
"use strict";var n=Object.defineProperty;var a=(o,t,e)=>t in o?n(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e;var i=(o,t,e)=>a(o,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("../../../core/ui/ContextMenu.cjs"),s=require("../../../icons/copy.svg.cjs"),r=require("../../../icons/delete.svg.cjs"),u=require("../../../icons/edit.svg.cjs"),h=require("../../../icons/format.svg.cjs");class d{constructor(t,e){i(this,"contextMenu");i(this,"activeBlock",null);this.onEdit=e,this.contextMenu=new l.ContextMenu(t,[{title:t.t("Edit"),icon:u.default,action:"edit",onClick:()=>this.handleAction("edit")},{title:t.t("Copy"),icon:s.default,action:"copy",onClick:()=>this.handleAction("copy")},{title:t.t("Format"),icon:h.default,action:"format",onClick:()=>this.handleAction("format")},{type:"divider"},{title:t.t("Remove"),icon:r.default,action:"remove",className:"text-red-600",onClick:()=>this.handleAction("remove")}],{orientation:"vertical"})}handleAction(t){if(this.activeBlock)switch(t){case"edit":this.onEdit(this.activeBlock);break;case"copy":const e=this.activeBlock.querySelector("code");e&&navigator.clipboard.writeText(e.textContent||"");break;case"format":this.activeBlock.querySelector("code");break;case"remove":this.activeBlock.remove();break}}show(t,e,c){this.activeBlock=t,this.contextMenu.show(t,e,c)}hide(){this.contextMenu.hide(),this.activeBlock=null}destroy(){this.contextMenu.destroy(),this.contextMenu=null,this.activeBlock=null}}exports.CodeBlockContextMenu=d;