1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.focusInside = void 0;
|
4 | var DOMutils_1 = require("./utils/DOMutils");
|
5 | var all_affected_1 = require("./utils/all-affected");
|
6 | var array_1 = require("./utils/array");
|
7 | var getActiveElement_1 = require("./utils/getActiveElement");
|
8 | var focusInFrame = function (frame, activeElement) { return frame === activeElement; };
|
9 | var focusInsideIframe = function (topNode, activeElement) {
|
10 | return Boolean((0, array_1.toArray)(topNode.querySelectorAll('iframe')).some(function (node) { return focusInFrame(node, activeElement); }));
|
11 | };
|
12 |
|
13 |
|
14 |
|
15 |
|
16 | var focusInside = function (topNode, activeElement) {
|
17 |
|
18 | if (activeElement === void 0) { activeElement = (0, getActiveElement_1.getActiveElement)((0, array_1.getFirst)(topNode).ownerDocument); }
|
19 | if (!activeElement || (activeElement.dataset && activeElement.dataset.focusGuard)) {
|
20 | return false;
|
21 | }
|
22 | return (0, all_affected_1.getAllAffectedNodes)(topNode).some(function (node) {
|
23 | return (0, DOMutils_1.contains)(node, activeElement) || focusInsideIframe(node, activeElement);
|
24 | });
|
25 | };
|
26 | exports.focusInside = focusInside;
|