import { html } from "lit" import IDraggablePositionedTemplate from "./IDraggablePositionedTemplate" import MouseClickAction from "../input/mouse/MouseClickAction" import MouseMoveDraggable from "../input/mouse/MouseMoveDraggable" /** @typedef {import("../element/WindowElement").default} WindowElement */ /** @extends {IDraggablePositionedTemplate} */ export default class WindowTemplate extends IDraggablePositionedTemplate { toggleAdvancedDisplayHandler getDraggableElement() { return /** @type {WindowElement} */(this.element.querySelector(".ueb-window-top")) } createDraggableObject() { return new MouseMoveDraggable(this.element, this.element.blueprint, { draggableElement: this.getDraggableElement(), ignoreTranslateCompensate: true, movementSpace: this.element.blueprint, stepSize: 1, }) } createInputObjects() { return [ ...super.createInputObjects(), new MouseClickAction(this.element.querySelector(".ueb-window-close"), this.element.blueprint, {}, undefined, () => this.element.remove() ), ] } render() { return html`
${this.renderWindowName()}
${this.renderContent()}
` } renderWindowName() { return html`Window` } renderContent() { return html`` } }