import { css, html } from "lit" import Configuration from "../Configuration" import IResizeableTemplate from "./IResizeableTemplate" import LinearColorEntity from "../entity/LinearColorEntity" /** * @typedef {import("../element/NodeElement").default} NodeElement * @typedef {import("../element/PinElement").default} PinElement */ export default class CommentNodeTemplate extends IResizeableTemplate { #color = LinearColorEntity.getWhite() /** @param {NodeElement} element */ constructed(element) { if (element.entity.CommentColor) { this.#color.setFromRGBANumber(element.entity.CommentColor.toNumber()) this.#color.setFromHSVA(this.#color.H.value, this.#color.S.value, Math.pow(this.#color.V.value, 0.45) * 0.67) } element.classList.add("ueb-node-style-comment", "ueb-node-resizeable") element.sizeX ??= 25 * Configuration.gridSize element.sizeY ??= 6 * Configuration.gridSize super.constructed(element) // Keep it at the end because it calls this.getColor() where this.#color must be initialized } getColor() { return css`${Math.round(this.#color.R.value * 255)}, ${Math.round(this.#color.G.value * 255)}, ${Math.round(this.#color.B.value * 255)}` } getDraggableElement() { return this.element.querySelector(".ueb-node-top") } render() { return html`