import { html } from "lit" import Configuration from "../Configuration" import IDraggablePositionedTemplate from "./IDraggablePositionedTemplate" import MouseMoveDraggable from "../input/mouse/MouseMoveDraggable" import SVGIcon from "../SVGIcon" /** @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.blueprint, { draggableElement: this.getDraggableElement(), ignoreScale: true, ignoreTranslateCompensate: false, movementSpace: this.blueprint, stepSize: 1, }) } render() { return html`
${this.renderWindowName()}
${SVGIcon.close}
${this.renderContent()}
` } renderWindowName() { return html`Window` } renderContent() { return html`` } apply() { this.element.dispatchEvent(new CustomEvent(Configuration.windowApplyEventName)) this.element.remove() } cancel() { this.element.dispatchEvent(new CustomEvent(Configuration.windowCancelEventName)) this.element.remove() } }