mirror of
https://github.com/zadam/trilium.git
synced 2025-12-21 15:49:56 +01:00
Add 'packages/share-theme/' from commit '2cdd2a0a543f0bced8284ca55bc94efadbc7c91f'
git-subtree-dir: packages/share-theme git-subtree-mainline:d8f0709bcegit-subtree-split:2cdd2a0a54
This commit is contained in:
11
packages/share-theme/src/scripts/common/debounce.ts
Normal file
11
packages/share-theme/src/scripts/common/debounce.ts
Normal 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);
|
||||
};
|
||||
}
|
||||
7
packages/share-theme/src/scripts/common/parents.ts
Normal file
7
packages/share-theme/src/scripts/common/parents.ts
Normal 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;
|
||||
}
|
||||
7
packages/share-theme/src/scripts/common/parsehtml.ts
Normal file
7
packages/share-theme/src/scripts/common/parsehtml.ts
Normal 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];
|
||||
}
|
||||
Reference in New Issue
Block a user