import { createElement } from "../lib/skeleton/index.js"; import rxjs from "../lib/rx.js"; class Loader extends HTMLElement { constructor() { super(); this.timeout = window.setTimeout(() => { this.innerHTML = this.render(); }, this.getAttribute("delay") || 0); } disconnectedCallback() { window.clearTimeout(this.timeout); } render() { return `
`; } } customElements.define("component-loader", Loader); export default createElement(``); export function toggle($node, show = false) { if (show === true) return rxjs.tap(() => $node.appendChild(createElement(``))); else return rxjs.tap(() => $node.querySelector("component-loader")?.remove()); }