Files
ueblueprint/js/template/InputTemplate.js
2022-11-08 22:26:29 +01:00

24 lines
927 B
JavaScript

import ITemplate from "./ITemplate"
/** @typedef {import ("../element/InputElement").default} InputElement */
/** @extends {ITemplate<InputElement>} */
export default class InputTemplate extends ITemplate {
/** @param {Map} changedProperties */
firstUpdated(changedProperties) {
super.firstUpdated(changedProperties)
this.onFocusHandler =
/** @param {FocusEvent} e */
e => this.element.blueprint.dispatchEditTextEvent(true)
this.onFocusOutHandler =
/** @param {FocusEvent} e */
e => {
e.preventDefault()
document.getSelection()?.removeAllRanges() // Deselect text inside the input
this.element.blueprint.dispatchEditTextEvent(false)
}
this.element.addEventListener("focus", this.onFocusHandler)
this.element.addEventListener("focusout", this.onFocusOutHandler)
}
}