This commit is contained in:
Andras Schmelczer 2022-09-25 21:24:32 +02:00
parent b6aef2bcf8
commit 33051841f5
No known key found for this signature in database
GPG key ID: 0EA1BC97D0AB076E
10 changed files with 32 additions and 39 deletions

View file

@ -1,8 +1,11 @@
import { html } from '../types/html';
export class PageElement {
public constructor(
public readonly htmlRoot: HTMLElement,
protected children: Array<PageElement> = []
) {}
public readonly htmlRoot: HTMLElement;
public constructor(content: html, protected children: Array<PageElement> = []) {
this.htmlRoot = PageElement.createElement(content);
}
public attachToDOM(target: HTMLElement) {
target.appendChild(this.htmlRoot);
@ -27,4 +30,11 @@ export class PageElement {
old.parentElement!.replaceChild(element.htmlRoot, old);
this.children.push(element);
}
private static createElement(from: html): HTMLElement {
// won't work for all elements, eg.: <td>
const element: HTMLElement = document.createElement('div');
element.innerHTML = from;
return element.firstElementChild as HTMLElement;
}
}