UNPKG

@uiw/react-overlay-trigger

Version:

OverlayTrigger component

35 lines (34 loc) 1.4 kB
"use strict"; 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;