This commit is contained in:
139
node_modules/react-modal/lib/helpers/ariaAppHider.js
generated
vendored
Normal file
139
node_modules/react-modal/lib/helpers/ariaAppHider.js
generated
vendored
Normal file
@@ -0,0 +1,139 @@
|
||||
"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;
|
||||
}
|
||||
Reference in New Issue
Block a user