Add 'packages/share-theme/' from commit '2cdd2a0a543f0bced8284ca55bc94efadbc7c91f'

git-subtree-dir: packages/share-theme
git-subtree-mainline: d8f0709bce
git-subtree-split: 2cdd2a0a54
This commit is contained in:
Elian Doran
2025-06-08 22:06:45 +03:00
38 changed files with 4617 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
export default function debounce<T extends (...args: unknown[]) => unknown>(executor: T, delay: number) {
let timeout: NodeJS.Timeout | null;
return function(...args: Parameters<T>): void {
const callback = () => {
timeout = null;
Reflect.apply(executor, null, args);
};
if (timeout) clearTimeout(timeout);
timeout = setTimeout(callback, delay);
};
}

View File

@@ -0,0 +1,7 @@
export default function parents<T extends HTMLElement>(el: T, selector: string) {
const result = [];
for (let p = el && el.parentElement; p; p = p.parentElement) {
if (p.matches(selector)) result.push(p);
}
return result;
}

View File

@@ -0,0 +1,7 @@
export default function parseHTML(html: string, fragment = false) {
const template = document.createElement("template");
template.innerHTML = html;
const node = template.content.cloneNode(true);
if (fragment) return node;
return node.childNodes.length > 1 ? node.childNodes : node.childNodes[0];
}