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.68 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 o=Object.defineProperty;var u=(r,e,t)=>e in r?o(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var i=(r,e,t)=>u(r,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */;/* empty css */const l=require("./services/StatisticsCalculator.cjs"),c=require("./components/FooterRenderer.cjs");class a{constructor(){i(this,"name","footer");i(this,"editor",null);i(this,"calculator");i(this,"renderer",null);i(this,"unsubscribe",null);this.calculator=new l.StatisticsCalculator}initialize(e){this.editor=e,this.renderer=new c.FooterRenderer(e),this.setupFooter(),this.setupEventListeners()}setupFooter(){var s,n;if(!this.editor)return;const e=this.editor.getContainer(),t=(s=this.renderer)==null?void 0:s.createElement();t&&((n=e.parentElement)==null||n.insertBefore(t,e.nextSibling)),this.updateStatistics()}setupEventListeners(){this.editor&&(this.unsubscribe=this.editor.subscribeToContentChange(()=>{this.updateStatistics()}))}updateStatistics(){var s;if(!this.editor)return;const e=this.editor.getContainer().innerHTML,t=this.calculator.calculate(e);(s=this.renderer)==null||s.update(t)}destroy(){if(this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this.renderer){const e=this.renderer.element;e&&e.parentElement&&e.parentElement.removeChild(e),this.renderer=null}this.editor=null,this.calculator=null}}exports.FooterPlugin=a;