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.27 kB
"use strict";var f=Object.defineProperty;var d=(i,e,l)=>e in i?f(i,e,{enumerable:!0,configurable:!0,writable:!0,value:l}):i[e]=l;var h=(i,e,l)=>d(i,typeof e!="symbol"?e+"":e,l);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./TableCell.cjs"),m=require("../../../utils/helpers.cjs");class u{constructor(e){h(this,"element");this.element=document.createElement("table"),this.initialize(e)}initialize({hasHeader:e,rows:l,cols:o}){if(this.element.className="html-editor-table",e){const t=this.element.createTHead().insertRow();for(let n=0;n<o;n++){const s=m.createTh();s.textContent=`Column ${n+1}`,t.appendChild(s),new c.TableCell(s)}}const r=this.element.createTBody();for(let t=0;t<l;t++){const n=r.insertRow();for(let s=0;s<o;s++){const a=n.insertCell();a.textContent=`Cell ${t+1} - ${s+1}`,new c.TableCell(a)}}}getElement(){return this.element}focusFirstCell(){const e=this.element.querySelector("th, td");e instanceof HTMLTableCellElement&&new c.TableCell(e).focus()}adjustColumnWidths(){const e=this.element.rows;if(e.length===0)return;const l=e[0].cells.length;for(let o=0;o<l;o++){let r=0;for(const t of e){const n=t.cells[o];n.offsetWidth>r&&(r=n.offsetWidth)}for(const t of e)t.cells[o].style.width=`${r}px`}}}exports.Table=u;