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
47 lines (46 loc) • 2.1 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 */
import { TableCell as d } from "../components/TableCell.mjs";
class f {
static addRow(e, l, a = !1, i) {
const s = Array.from(e.querySelectorAll(".table-header-row, .table-row")).indexOf(
l.parentElement
), t = document.createElement("div");
t.className = "table-row";
const n = l.parentElement.querySelectorAll(
".table-cell, .table-header-cell"
).length;
for (let r = 0; r < n; r++) {
const c = document.createElement("div");
c.className = "table-cell", c.contentEditable = "true", new d(c, i), t.appendChild(c);
}
const o = e.querySelectorAll(".table-header-row, .table-row");
return a ? e.insertBefore(t, o[s]) : e.insertBefore(t, o[s + 1]), t;
}
static addColumn(e, l, a = !1, i) {
const s = Array.from(
l.parentElement.querySelectorAll(".table-cell, .table-header-cell")
).indexOf(l), t = [];
return e.querySelectorAll(".table-header-row, .table-row").forEach((o) => {
const r = document.createElement("div");
r.className = o.classList.contains("table-header-row") ? "table-header-cell" : "table-cell", o.classList.contains("table-row") && (r.contentEditable = "true"), new d(r, i);
const c = o.querySelectorAll(".table-cell, .table-header-cell");
a ? o.insertBefore(r, c[s]) : o.insertBefore(r, c[s + 1]), t.push(r);
}), t;
}
static deleteRow(e, l) {
e.querySelectorAll(".table-header-row, .table-row").length > 1 && l.remove();
}
static deleteColumn(e, l) {
const a = e.querySelectorAll(".table-header-row, .table-row");
a.length > 0 && a[0].querySelectorAll(".table-cell, .table-header-cell").length > 1 && a.forEach((t) => {
const n = t.querySelectorAll(".table-cell, .table-header-cell");
n[l] && n[l].remove();
});
}
static deleteTable(e) {
e.remove();
}
}
export {
f as TableOperations
};