// SPDX-License-Identifier: AGPL-3.0-or-later import { MenuBase, html, css } from "./menu_base.js"; export class SystemMenu extends MenuBase { constructor() { super(); this.handleKeyDown = this.handleKeyDown.bind(this); } disconnectedCallback() { super.disconnectedCallback(); this.removeEventListeners(); } updated(changedProperties) { if (changedProperties.has("open")) { if (this.open) { document.addEventListener("keydown", this.handleKeyDown); } else { this.removeEventListeners(); } } } removeEventListeners() { document.removeEventListener("keydown", this.handleKeyDown); } handleKeyDown(e) { if (e.key === "Escape") { this.close(); } } handleBackdropClick(e) { if (e.target.classList.contains("backdrop")) { this.close(); } } static styles = css` @import url(//system.localhost:8888/system_menu.css); `; render() { return html`
`; } } customElements.define("system-menu", SystemMenu);