26 lines
572 B
JavaScript
26 lines
572 B
JavaScript
import {getElementOrThrow, getOneElementOrThrow} from "./element.js";
|
|
|
|
|
|
/**
|
|
* @param {string} name
|
|
*/
|
|
export const getTemplate = (name) => {
|
|
/**
|
|
* @type {HTMLTemplateElement}
|
|
*/
|
|
const template = getOneElementOrThrow(document, `[data-template=${name}]`);
|
|
const element = template.content.cloneNode(true);
|
|
|
|
/**
|
|
* @param {string} selector
|
|
* @returns {HTMLElement}
|
|
*/
|
|
const el = (selector) => getElementOrThrow(element, `[data-el=${selector}]`);
|
|
|
|
const render = () => element;
|
|
|
|
return {
|
|
el,
|
|
render
|
|
}
|
|
} |