@ou-imdt/utils
Version:
Utility library for interactive media development
10 lines • 431 B
JavaScript
/**
* Finds the composed parent of a node considering Shadow DOM.
* @param {Node} node - The node for which to find the composed parent.
* @returns {Node|null} The composed parent node or `null` if no parent exists.
*/
export default function composedParent(node) {
if (node instanceof HTMLElement && node.assignedSlot) return node.assignedSlot;
if (node instanceof ShadowRoot) return node.host;
return node.parentNode;
}