mirror of
https://github.com/barsdeveloper/ueblueprint.git
synced 2026-02-04 08:50:33 +08:00
* WIP * WIP * wip * WIP * Several fixes * Tests wip port to playwright * WIP * Fix more tests * Serialization tests fixed * Several fixes for tests * Input options types * Type adjustments * Fix object reference parser * Tests fixes * More tests fixes
41 lines
950 B
JavaScript
Executable File
41 lines
950 B
JavaScript
Executable File
import IMouseClickDrag from "./IMouseClickDrag.js"
|
|
|
|
/**
|
|
* @typedef {import("./IMouseClickDrag.js").Options & {
|
|
* scrollGraphEdge?: Boolean,
|
|
* }} Options
|
|
*/
|
|
|
|
export default class Select extends IMouseClickDrag {
|
|
|
|
constructor(target, blueprint, options = {}) {
|
|
options.scrollGraphEdge ??= true
|
|
super(target, blueprint, options)
|
|
this.selectorElement = this.blueprint.template.selectorElement
|
|
}
|
|
|
|
startDrag() {
|
|
this.selectorElement.beginSelect(this.clickedPosition)
|
|
}
|
|
|
|
/**
|
|
* @param {Coordinates} location
|
|
* @param {Coordinates} movement
|
|
*/
|
|
dragTo(location, movement) {
|
|
this.selectorElement.selectTo(location)
|
|
}
|
|
|
|
endDrag() {
|
|
if (this.started) {
|
|
this.selectorElement.endSelect()
|
|
}
|
|
}
|
|
|
|
unclicked() {
|
|
if (!this.started) {
|
|
this.blueprint.unselectAll()
|
|
}
|
|
}
|
|
}
|