mirror of
https://github.com/barsdeveloper/ueblueprint.git
synced 2026-02-04 08:50:33 +08:00
38 lines
1.2 KiB
JavaScript
Executable File
38 lines
1.2 KiB
JavaScript
Executable File
import MouseMoveDraggable from "./MouseMoveDraggable.js"
|
|
|
|
/**
|
|
* @typedef {import("../../element/NodeElement.js").default} NodeElement
|
|
* @typedef {import("../../template/node/CommentNodeTemplate.js").default} CommentNodeTemplate
|
|
*/
|
|
|
|
/** @extends {MouseMoveDraggable<NodeElement>} */
|
|
export default class MouseMoveNodes extends MouseMoveDraggable {
|
|
|
|
startDrag() {
|
|
if (!this.target.selected) {
|
|
this.blueprint.unselectAll()
|
|
this.target.setSelected(true)
|
|
}
|
|
}
|
|
|
|
dragAction(location, offset) {
|
|
this.target.acknowledgeDrag(offset)
|
|
}
|
|
|
|
unclicked() {
|
|
if (!this.started) {
|
|
this.blueprint.unselectAll()
|
|
this.target.setSelected(true)
|
|
} else {
|
|
this.blueprint.getNodes(true).forEach(node =>
|
|
node.boundComments
|
|
.filter(comment => !node.isInsideComment(comment))
|
|
.forEach(comment => node.unbindFromComment(comment))
|
|
)
|
|
this.blueprint.getCommentNodes().forEach(comment =>
|
|
/** @type {CommentNodeTemplate} */(comment.template).manageNodesBind()
|
|
)
|
|
}
|
|
}
|
|
}
|