nc-planner/scripts/dom-list.js

29 lines
785 B
JavaScript

import { deleteTooltip } from "./tooltip.js";
import { deleteSolverMetadata } from "./solver.js";
export class DomList {
list;
template;
constructor(rootElem) {
this.list = rootElem;
this.template = this.list.querySelector("template").content.firstElementChild;
}
clear() {
this.list.querySelectorAll("[data-tooltip]")
.forEach(e => deleteTooltip(Number(e.dataset.tooltip)));
this.list.querySelectorAll("[data-solver-metadata]")
.forEach(e => deleteSolverMetadata(Number(e.dataset.solverMetadata)));
this.list.replaceChildren(...this.list.querySelectorAll(":scope > template, :scope > [data-keep]"));
}
makeItem() {
return document.importNode(this.template, true);
}
addItem(item) {
this.list.appendChild(item);
}
}