Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | 12x 23x 23x 21x 23x 62x 83x 23x | export class RoboComponent extends HTMLElement { by = new Selector(this); } export class Selector { #element; /** @type {Record<string, HTMLElement>} */ class; /** @type {Record<string, HTMLElement>} */ id; /** @param {HTMLElement} element */ constructor(element) { this.#element = element; this.class = new Proxy( {}, { get: (_, property) => this.#element?.querySelector(`.${toKebabCase(String(property))}`), }, ); this.id = new Proxy( {}, { get: (_, property) => this.#element?.querySelector(`#${toKebabCase(String(property))}`), }, ); } } /** @param {string} str */ function toKebabCase(str) { return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase(); } /** * @param {HTMLTemplateElement} template * @returns {HTMLElement} */ export function cloneTemplate(template) { return /** @type {HTMLElement} */ (template.content.cloneNode(true)); } |