``` ~/go/bin/sourcemapper -output ddb -jsurl https://media.dndbeyond.com/character-app/static/js/main.90aa78c5.js ```
93 lines
2.4 KiB
JavaScript
93 lines
2.4 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.resetState = resetState;
|
|
exports.log = log;
|
|
|
|
var _portalOpenInstances = require("./portalOpenInstances");
|
|
|
|
var _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
// Body focus trap see Issue #742
|
|
|
|
var before = void 0,
|
|
after = void 0,
|
|
instances = [];
|
|
|
|
/* eslint-disable no-console */
|
|
/* istanbul ignore next */
|
|
function resetState() {
|
|
var _arr = [before, after];
|
|
|
|
for (var _i = 0; _i < _arr.length; _i++) {
|
|
var item = _arr[_i];
|
|
if (!item) continue;
|
|
item.parentNode && item.parentNode.removeChild(item);
|
|
}
|
|
before = after = null;
|
|
instances = [];
|
|
}
|
|
|
|
/* istanbul ignore next */
|
|
function log() {
|
|
console.log("bodyTrap ----------");
|
|
console.log(instances.length);
|
|
var _arr2 = [before, after];
|
|
for (var _i2 = 0; _i2 < _arr2.length; _i2++) {
|
|
var item = _arr2[_i2];
|
|
var check = item || {};
|
|
console.log(check.nodeName, check.className, check.id);
|
|
}
|
|
console.log("edn bodyTrap ----------");
|
|
}
|
|
/* eslint-enable no-console */
|
|
|
|
function focusContent() {
|
|
if (instances.length === 0) {
|
|
if (process.env.NODE_ENV !== "production") {
|
|
// eslint-disable-next-line no-console
|
|
console.warn("React-Modal: Open instances > 0 expected");
|
|
}
|
|
return;
|
|
}
|
|
instances[instances.length - 1].focusContent();
|
|
}
|
|
|
|
function bodyTrap(eventType, openInstances) {
|
|
if (!before && !after) {
|
|
before = document.createElement("div");
|
|
before.setAttribute("data-react-modal-body-trap", "");
|
|
before.style.position = "absolute";
|
|
before.style.opacity = "0";
|
|
before.setAttribute("tabindex", "0");
|
|
before.addEventListener("focus", focusContent);
|
|
after = before.cloneNode();
|
|
after.addEventListener("focus", focusContent);
|
|
}
|
|
|
|
instances = openInstances;
|
|
|
|
if (instances.length > 0) {
|
|
// Add focus trap
|
|
if (document.body.firstChild !== before) {
|
|
document.body.insertBefore(before, document.body.firstChild);
|
|
}
|
|
if (document.body.lastChild !== after) {
|
|
document.body.appendChild(after);
|
|
}
|
|
} else {
|
|
// Remove focus trap
|
|
if (before.parentElement) {
|
|
before.parentElement.removeChild(before);
|
|
}
|
|
if (after.parentElement) {
|
|
after.parentElement.removeChild(after);
|
|
}
|
|
}
|
|
}
|
|
|
|
_portalOpenInstances2.default.subscribe(bodyTrap); |