@uiw/react-overlay-trigger
Version:
OverlayTrigger component
35 lines (34 loc) • 1.4 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
function fallback(context, node) {
if (node) {
do {
if (node === context) return true;
} while (node = node.parentNode);
}
return false;
}
function isDOM(item) {
return typeof HTMLElement === 'function' ? item instanceof HTMLElement : item && (0, _typeof2["default"])(item) === 'object' && item.nodeType === 1 && typeof item.nodeName === 'string';
}
var contains = function () {
// HTML DOM and SVG DOM may have different support levels,
// so we need to check on context instead of a document root element.
return canUseDOM ? function (context, node) {
if (context && context.contains && typeof context.contains === 'function' && isDOM(node)) {
return context.contains(node);
}
if (context && context.compareDocumentPosition && isDOM(node)) {
return context === node || !!(context.compareDocumentPosition(node) && 16);
}
return fallback(context, node);
} : fallback;
}();
var _default = exports["default"] = contains;
module.exports = exports.default;
;