34 lines
900 B
JavaScript
34 lines
900 B
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "getParent", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return getParent;
|
|
}
|
|
});
|
|
const _isVirtualElement = require("./isVirtualElement");
|
|
/**
|
|
* Gets the virtual parent given the child element, if it exists.
|
|
* @internal
|
|
*/ function getVirtualParent(child) {
|
|
return (0, _isVirtualElement.isVirtualElement)(child) ? child._virtual.parent || null : null;
|
|
}
|
|
function getParent(child, options = {}) {
|
|
if (!child) {
|
|
return null;
|
|
}
|
|
if (!options.skipVirtual) {
|
|
const virtualParent = getVirtualParent(child);
|
|
if (virtualParent) {
|
|
return virtualParent;
|
|
}
|
|
}
|
|
const parent = child.parentNode;
|
|
if (parent && parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
|
|
return parent.host;
|
|
}
|
|
return parent;
|
|
}
|