mirror of
https://github.com/barsdeveloper/ueblueprint.git
synced 2026-02-15 01:24:41 +08:00
57 lines
1.0 KiB
JavaScript
57 lines
1.0 KiB
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 = []
|
|
|
|
get inputObjects() {
|
|
return this.#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 []
|
|
}
|
|
}
|