file-browser/src/libs/template.js

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
}
}