export class MenuPage extends HTMLElement { constructor() { super(); this.root = this.attachShadow({ mode: "open" }); const styles = document.createElement("style"); this.root.appendChild(styles); async function loadCSS() { const request = await fetch("/components/MenuPage.css"); const css = await request.text(); styles.textContent = css; } loadCSS(); } // when the component is attached to the DOM connectedCallback() { const template = document.getElementById("menu-page-template"); const content = template.content.cloneNode(true); this.root.appendChild(content); window.addEventListener("appmenuchange", () => { this.render(); }); this.render(); } render() { if (app.store.menu) { this.root.querySelector("#menu").innerHTML = ""; for (let category of app.store.menu) { const liCategory = document.createElement("li"); liCategory.innerHTML = `