mirror of
https://github.com/barsdeveloper/ueblueprint.git
synced 2026-02-04 08:17:41 +08:00
35 lines
1.1 KiB
JavaScript
Executable File
35 lines
1.1 KiB
JavaScript
Executable File
import IDraggablePositionedTemplate from "./IDraggablePositionedTemplate.js"
|
|
import MouseMoveNodes from "../input/mouse/MouseMoveNodes.js"
|
|
|
|
/**
|
|
* @typedef {import("../element/NodeElement.js").default} NodeElement
|
|
* @typedef {import("../input/mouse/MouseMoveDraggable.js").default} MouseMoveDraggable
|
|
* @typedef {import("lit").PropertyValues} PropertyValues
|
|
*/
|
|
|
|
/**
|
|
* @template {NodeElement} T
|
|
* @extends {IDraggablePositionedTemplate<T>}
|
|
*/
|
|
export default class ISelectableDraggableTemplate extends IDraggablePositionedTemplate {
|
|
|
|
getDraggableElement() {
|
|
return /** @type {Element} */(this.element)
|
|
}
|
|
|
|
createDraggableObject() {
|
|
return /** @type {MouseMoveDraggable} */(new MouseMoveNodes(this.element, this.blueprint, {
|
|
draggableElement: this.getDraggableElement(),
|
|
scrollGraphEdge: true,
|
|
}))
|
|
}
|
|
|
|
/** @param {PropertyValues} changedProperties */
|
|
firstUpdated(changedProperties) {
|
|
super.firstUpdated(changedProperties)
|
|
if (this.element.selected && !this.element.listeningDrag) {
|
|
this.element.setSelected(true)
|
|
}
|
|
}
|
|
}
|