jobiqo-cl
Version:
[](https://circleci.com/gh/jobiqo/jobiqo-cl)
24 lines (18 loc) • 769 B
JavaScript
import { arrayFind, toArray } from './utils/array.js';
import getAllAffectedNodes from './utils/all-affected.js';
var focusInFrame = function focusInFrame(frame) {
return frame === document.activeElement;
};
var focusInsideIframe = function focusInsideIframe(topNode) {
return !!arrayFind(toArray(topNode.querySelectorAll('iframe')), focusInFrame);
};
var focusInside = function focusInside(topNode) {
var activeElement = document && document.activeElement;
if (!activeElement || activeElement.dataset && activeElement.dataset.focusGuard) {
return false;
}
return getAllAffectedNodes(topNode).reduce(function (result, node) {
return result || node.contains(activeElement) || focusInsideIframe(node);
}, false);
};
export default focusInside;