import { html } from "lit" import IDraggableTemplate from "./IDraggableTemplate" import MouseMoveDraggable from "../input/mouse/MouseMoveDraggable" /** @typedef {import("../element/WindowElement").default} WindowElement */ /** @extends {SelectableDraggableTemplate} */ export default class WindowTemplate extends IDraggableTemplate { static windowName = html`Window` toggleAdvancedDisplayHandler /** @param {WindowElement} element */ getDraggableElement(element) { return element.querySelector(".ueb-window-top") } createDraggableObject(element) { return new MouseMoveDraggable(element, element.blueprint, { draggableElement: this.getDraggableElement(element), looseTarget: true, stepSize: 1, movementSpace: element.blueprint, }) } /** @param {T} element */ createInputObjects(element) { return [ ...super.createInputObjects(element), this.createDraggableObject(element), ] } /** @param {WindowElement} element */ render(element) { return html` ${this.constructor.windowName} Content ` } }