mirror of
https://git.hmsn.ink/kospo/helptalk/api.git
synced 2026-03-20 17:03:43 +09:00
first
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
import getNodeName from "./getNodeName.js";
|
||||
import getDocumentElement from "./getDocumentElement.js";
|
||||
import { isShadowRoot } from "./instanceOf.js";
|
||||
export default function getParentNode(element) {
|
||||
if (getNodeName(element) === 'html') {
|
||||
return element;
|
||||
}
|
||||
|
||||
return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle
|
||||
// $FlowFixMe[incompatible-return]
|
||||
// $FlowFixMe[prop-missing]
|
||||
element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
|
||||
element.parentNode || ( // DOM Element detected
|
||||
isShadowRoot(element) ? element.host : null) || // ShadowRoot detected
|
||||
// $FlowFixMe[incompatible-call]: HTMLElement is a Node
|
||||
getDocumentElement(element) // fallback
|
||||
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user