2025-05-28 15:36:51 -07:00

139 lines
3.9 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.resetState = resetState;
exports.log = log;
exports.assertNodeList = assertNodeList;
exports.setElement = setElement;
exports.validateElement = validateElement;
exports.hide = hide;
exports.show = show;
exports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;
var _warning = require("warning");
var _warning2 = _interopRequireDefault(_warning);
var _safeHTMLElement = require("./safeHTMLElement");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var globalElement = null;
/* eslint-disable no-console */
/* istanbul ignore next */
function resetState() {
if (globalElement) {
if (globalElement.removeAttribute) {
globalElement.removeAttribute("aria-hidden");
} else if (globalElement.length != null) {
globalElement.forEach(function (element) {
return element.removeAttribute("aria-hidden");
});
} else {
document.querySelectorAll(globalElement).forEach(function (element) {
return element.removeAttribute("aria-hidden");
});
}
}
globalElement = null;
}
/* istanbul ignore next */
function log() {
if (process.env.NODE_ENV !== "production") {
var check = globalElement || {};
console.log("ariaAppHider ----------");
console.log(check.nodeName, check.className, check.id);
console.log("end ariaAppHider ----------");
}
}
/* eslint-enable no-console */
function assertNodeList(nodeList, selector) {
if (!nodeList || !nodeList.length) {
throw new Error("react-modal: No elements were found for selector " + selector + ".");
}
}
function setElement(element) {
var useElement = element;
if (typeof useElement === "string" && _safeHTMLElement.canUseDOM) {
var el = document.querySelectorAll(useElement);
assertNodeList(el, useElement);
useElement = el;
}
globalElement = useElement || globalElement;
return globalElement;
}
function validateElement(appElement) {
var el = appElement || globalElement;
if (el) {
return Array.isArray(el) || el instanceof HTMLCollection || el instanceof NodeList ? el : [el];
} else {
(0, _warning2.default)(false, ["react-modal: App element is not defined.", "Please use `Modal.setAppElement(el)` or set `appElement={el}`.", "This is needed so screen readers don't see main content", "when modal is opened. It is not recommended, but you can opt-out", "by setting `ariaHideApp={false}`."].join(" "));
return [];
}
}
function hide(appElement) {
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = validateElement(appElement)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var el = _step.value;
el.setAttribute("aria-hidden", "true");
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
}
function show(appElement) {
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = validateElement(appElement)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var el = _step2.value;
el.removeAttribute("aria-hidden");
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
}
function documentNotReadyOrSSRTesting() {
globalElement = null;
}