58 lines
3.4 KiB
JavaScript
58 lines
3.4 KiB
JavaScript
var $aaa611146751592e$exports = require("./domHelpers.main.js");
|
|
var $loak6$reactstatelyflags = require("@react-stately/flags");
|
|
|
|
|
|
function $parcel$export(e, n, v, s) {
|
|
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
|
|
}
|
|
|
|
$parcel$export(module.exports, "nodeContains", () => $d723bea02f3e2567$export$4282f70798064fe0);
|
|
$parcel$export(module.exports, "getActiveElement", () => $d723bea02f3e2567$export$cd4e5573fbe2b576);
|
|
$parcel$export(module.exports, "getEventTarget", () => $d723bea02f3e2567$export$e58f029f0fbfdb29);
|
|
$parcel$export(module.exports, "isFocusWithin", () => $d723bea02f3e2567$export$b4f377a2b6254582);
|
|
// Source: https://github.com/microsoft/tabster/blob/a89fc5d7e332d48f68d03b1ca6e344489d1c3898/src/Shadowdomize/DOMFunctions.ts#L16
|
|
/* eslint-disable rsp-rules/no-non-shadow-contains, rsp-rules/safe-event-target */
|
|
|
|
function $d723bea02f3e2567$export$4282f70798064fe0(node, otherNode) {
|
|
if (!(0, $loak6$reactstatelyflags.shadowDOM)()) return otherNode && node ? node.contains(otherNode) : false;
|
|
if (!node || !otherNode) return false;
|
|
let currentNode = otherNode;
|
|
while(currentNode !== null){
|
|
if (currentNode === node) return true;
|
|
if (currentNode.tagName === 'SLOT' && currentNode.assignedSlot) // Element is slotted
|
|
currentNode = currentNode.assignedSlot.parentNode;
|
|
else if ((0, $aaa611146751592e$exports.isShadowRoot)(currentNode)) // Element is in shadow root
|
|
currentNode = currentNode.host;
|
|
else currentNode = currentNode.parentNode;
|
|
}
|
|
return false;
|
|
}
|
|
const $d723bea02f3e2567$export$cd4e5573fbe2b576 = (doc = document)=>{
|
|
var _activeElement_shadowRoot;
|
|
if (!(0, $loak6$reactstatelyflags.shadowDOM)()) return doc.activeElement;
|
|
let activeElement = doc.activeElement;
|
|
while(activeElement && 'shadowRoot' in activeElement && ((_activeElement_shadowRoot = activeElement.shadowRoot) === null || _activeElement_shadowRoot === void 0 ? void 0 : _activeElement_shadowRoot.activeElement))activeElement = activeElement.shadowRoot.activeElement;
|
|
return activeElement;
|
|
};
|
|
function $d723bea02f3e2567$export$e58f029f0fbfdb29(event) {
|
|
if ((0, $loak6$reactstatelyflags.shadowDOM)() && event.target instanceof Element && event.target.shadowRoot) {
|
|
var _event_composedPath_, _event_nativeEvent_composedPath_;
|
|
if ('composedPath' in event) return (_event_composedPath_ = event.composedPath()[0]) !== null && _event_composedPath_ !== void 0 ? _event_composedPath_ : null;
|
|
else if ('composedPath' in event.nativeEvent) return (_event_nativeEvent_composedPath_ = event.nativeEvent.composedPath()[0]) !== null && _event_nativeEvent_composedPath_ !== void 0 ? _event_nativeEvent_composedPath_ : null;
|
|
}
|
|
return event.target;
|
|
}
|
|
function $d723bea02f3e2567$export$b4f377a2b6254582(node) {
|
|
if (!node) return false;
|
|
// Get the active element within the node's parent shadow root (or the document). Can return null.
|
|
let root = node.getRootNode();
|
|
let ownerWindow = (0, $aaa611146751592e$exports.getOwnerWindow)(node);
|
|
if (!(root instanceof ownerWindow.Document || root instanceof ownerWindow.ShadowRoot)) return false;
|
|
let activeElement = root.activeElement;
|
|
// Check if the active element is within this node. These nodes are within the same shadow root.
|
|
return activeElement != null && node.contains(activeElement);
|
|
}
|
|
|
|
|
|
//# sourceMappingURL=DOMFunctions.main.js.map
|