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

3 lines (2 loc) 1.66 kB
/*! 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 o=Object.defineProperty;var c=(e,t,i)=>t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;var l=(e,t,i)=>c(e,typeof t!="symbol"?t+"":t,i);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class n{constructor(t){l(this,"name","duplicateBlock");l(this,"editor");l(this,"originalBlock",null);l(this,"duplicatedBlock",null);this.editor=t}setData(t){this.originalBlock=t.block}execute(){var i;if(!this.originalBlock||!this.isValidBlock(this.originalBlock))return;this.duplicatedBlock=this.originalBlock.cloneNode(!0);const t=this.duplicatedBlock.querySelector(".block-content");t&&(t.textContent=this.editor.t("Duplicated Block"),t.contentEditable="true"),this.duplicatedBlock.classList.remove("active"),this.duplicatedBlock.setAttribute("contenteditable","false"),(i=this.originalBlock.parentNode)==null||i.insertBefore(this.duplicatedBlock,this.originalBlock.nextSibling),this.focusBlock(this.duplicatedBlock)}undo(){this.duplicatedBlock&&this.duplicatedBlock.remove()}redo(){var t;this.originalBlock&&this.duplicatedBlock&&((t=this.originalBlock.parentNode)==null||t.insertBefore(this.duplicatedBlock,this.originalBlock.nextSibling))}isValidBlock(t){return t.classList.contains("editor-block")}focusBlock(t){const i=t.querySelector(".block-content");i&&i.contentEditable==="true"&&(i.contentEditable="true",t.classList.add("active"))}}exports.DuplicateBlockCommand=n;