blob: 4f854958d63a6d1efe5614692e41caca4b047f4e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
"use strict";
const NODE_TYPE = require("../node-type");
const { nodeRoot } = require("../helpers/node");
const { retarget } = require("../helpers/shadow-dom");
class DocumentOrShadowRootImpl {
get activeElement() {
let candidate = this._ownerDocument._lastFocusedElement || this._ownerDocument.body;
if (!candidate) {
return null;
}
candidate = retarget(candidate, this);
if (nodeRoot(candidate) !== this) {
return null;
}
if (candidate.nodeType !== NODE_TYPE.DOCUMENT_NODE) {
return candidate;
}
if (candidate.body !== null) {
return candidate.body;
}
return candidate.documentElement;
}
}
module.exports = {
implementation: DocumentOrShadowRootImpl
};
|