@dossierhq/design
Version:
The design system for Dossier.
17 lines • 659 B
JavaScript
export function findAscendantElement(node, predicate) {
const startElement = isElementNode(node) ? node : node.parentElement;
for (let element = startElement; element; element = element.parentElement) {
if (predicate(element)) {
return element;
}
}
return null;
}
function isElementNode(node) {
return node.nodeType === Node.ELEMENT_NODE;
}
export function findAscendantHTMLElement(node, predicate) {
const result = findAscendantElement(node, (element) => element instanceof HTMLElement && predicate(element));
return result instanceof HTMLElement ? result : null;
}
//# sourceMappingURL=DOMUtils.js.map