UNPKG

@base-ui/react

Version:

Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.

23 lines (22 loc) 841 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isOutsideMenuEvent = isOutsideMenuEvent; var _utils = require("../../floating-ui-react/utils"); function isOutsideMenuEvent({ currentTarget, relatedTarget }, params) { const { popupElement, rootRef, tree, nodeId } = params; const nodeChildrenContains = tree ? (0, _utils.getNodeChildren)(tree.nodesRef.current, nodeId).some(node => (0, _utils.contains)(node.context?.elements.floating, relatedTarget)) : false; if (!popupElement) { return !(0, _utils.contains)(rootRef.current, relatedTarget) && !nodeChildrenContains; } return !(0, _utils.contains)(popupElement, currentTarget) && !(0, _utils.contains)(popupElement, relatedTarget) && !(0, _utils.contains)(rootRef.current, relatedTarget) && !nodeChildrenContains; }