Files
ueblueprint/js/template/ITemplate.js
2022-04-18 22:38:50 +02:00

53 lines
959 B
JavaScript

// @ts-check
/**
* @typedef {import("../element/IElement").default} IElement
* @typedef {import("../input/IInput").default} IInput")}
*/
/**
* @template {IElement} T
*/
export default class ITemplate {
/** @type {IInput[]} */
inputObjects = []
/**
* @param {T} entity
*/
render(entity) {
return ""
}
/**
* @param {T} element
*/
setup(element) {
// TODO replace with the safer element.setHTML(...) when it will be availableBreack
element.innerHTML = this.render(element)
}
/**
* @param {T} element
*/
inputSetup(element) {
this.inputObjects = this.createInputObjects(element)
}
/**
* @param {T} element
*/
cleanup(element) {
this.inputObjects.forEach(v => v.unlistenDOMElement())
}
/**
* @param {T} element
* @returns {IInput[]}
*/
createInputObjects(element) {
return []
}
}