diff --git a/assets/main.js b/assets/main.js index bef7dd5..fe66e89 100644 --- a/assets/main.js +++ b/assets/main.js @@ -1,12 +1,33 @@ +class LineRemover extends HTMLButtonElement { + constructor() { + super(); + this.container = this.closest("div.linecontainer").parentElement; + this.addEventListener("click", (e) => { + this.container.remove(); + }); + } +} + +customElements.define("line-remover", LineRemover, { extends: "button" }); + +class LineAdder extends HTMLButtonElement { + constructor() { + super(); + this.addEventListener("click", (e) => { + document.querySelector("div[is=lines-div]").add() + }); + } +} + +customElements.define("line-adder", LineAdder, { extends: "button" }); + class PoemLine extends HTMLDivElement { constructor() { super(); const ltp = document.querySelector("#linetmpl"); var l = ltp.content.cloneNode(true); this.appendChild(l); - this.addEventListener("regen", function() { - console.log("poot"); - }); + this.addEventListener("regen", this.regen); // TODO will this be bound? } regen() { @@ -23,18 +44,22 @@ class PoemLine extends HTMLDivElement { } customElements.define("poem-line", PoemLine, { extends: "div" }); + const regen = new Event("regen"); -function addLine() { - var ld = document.createElement("div", { is: "poem-line" }); - document.querySelector("#lines").append(ld); - ld.regen(); -} +class Lines extends HTMLDivElement { + constructor() { + super(); + for (var i = 0; i < 10; i++) { + this.add(); + } + } -function main() { - for (var i = 0; i < 10; i++) { - addLine(); + add() { + var ld = document.createElement("div", { is: "poem-line" }); + this.append(ld); + ld.regen(); } } -main(); +customElements.define("lines-div", Lines, { extends: "div" }); diff --git a/templates/index.tmpl b/templates/index.tmpl index 7f1ae3e..0f5d756 100644 --- a/templates/index.tmpl +++ b/templates/index.tmpl @@ -12,16 +12,17 @@

Trunkless

+
about light|dark @@ -34,11 +35,10 @@

todo, dna display

-
+
- +
-