mirror of
https://github.com/barsdeveloper/ueblueprint.git
synced 2026-02-04 08:50:33 +08:00
36 lines
869 B
JavaScript
36 lines
869 B
JavaScript
import Context from "./Context"
|
|
|
|
export default class Unfocus extends Context {
|
|
|
|
constructor(target, blueprint, options = {}) {
|
|
options.wantsFocusCallback = true
|
|
super(target, blueprint, options)
|
|
|
|
let self = this
|
|
this.clickHandler = e => self.clickedSomewhere(e)
|
|
if (this.blueprint.focuse) {
|
|
document.addEventListener("click", this.clickHandler)
|
|
}
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param {MouseEvent} e
|
|
*/
|
|
clickedSomewhere(e) {
|
|
// If target is inside the blueprint grid
|
|
if (e.target.closest("ueb-blueprint")) {
|
|
return
|
|
}
|
|
this.blueprint.setFocused(false)
|
|
}
|
|
|
|
blueprintFocused() {
|
|
document.addEventListener("click", this.clickHandler)
|
|
}
|
|
|
|
blueprintUnfocused() {
|
|
document.removeEventListener("click", this.clickHandler)
|
|
}
|
|
}
|