UNPKG

@ariakit/react-core

Version:

Ariakit React core

82 lines (62 loc) 2.57 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); var _V7JASX7Scjs = require('./V7JASX7S.cjs'); var _56NPFF7Pcjs = require('./56NPFF7P.cjs'); var _GASMO7Y4cjs = require('./GASMO7Y4.cjs'); var _YVOQ2BCBcjs = require('./YVOQ2BCB.cjs'); var _4SKDRUBRcjs = require('./4SKDRUBR.cjs'); var _AQ2LO7WVcjs = require('./AQ2LO7WV.cjs'); // src/dialog/utils/disable-tree.ts var _dom = require('@ariakit/core/utils/dom'); var _focus = require('@ariakit/core/utils/focus'); var _misc = require('@ariakit/core/utils/misc'); function disableTree(element, ignoredElements) { if (!("style" in element)) return _misc.noop; if (_56NPFF7Pcjs.supportsInert.call(void 0, )) { return _4SKDRUBRcjs.setProperty.call(void 0, element, "inert", true); } const tabbableElements = _focus.getAllTabbableIn.call(void 0, element, true); const enableElements = tabbableElements.map((element2) => { if (ignoredElements == null ? void 0 : ignoredElements.some((el) => el && _dom.contains.call(void 0, el, element2))) return _misc.noop; const restoreFocusMethod = _4SKDRUBRcjs.orchestrate.call(void 0, element2, "focus", () => { element2.focus = _misc.noop; return () => { delete element2.focus; }; }); return _misc.chain.call(void 0, _4SKDRUBRcjs.setAttribute.call(void 0, element2, "tabindex", "-1"), restoreFocusMethod); }); return _misc.chain.call(void 0, ...enableElements, _GASMO7Y4cjs.hideElementFromAccessibilityTree.call(void 0, element), _4SKDRUBRcjs.assignStyle.call(void 0, element, { pointerEvents: "none", userSelect: "none", cursor: "default" }) ); } function disableTreeOutside(id, elements) { const cleanups = []; const ids = elements.map((el) => el == null ? void 0 : el.id); _YVOQ2BCBcjs.walkTreeOutside.call(void 0, id, elements, (element) => { if (_AQ2LO7WVcjs.isBackdrop.call(void 0, element, ...ids)) return; if (_V7JASX7Scjs.isFocusTrap.call(void 0, element, ...ids)) return; cleanups.unshift(disableTree(element, elements)); }, (element) => { if (!element.hasAttribute("role")) return; if (elements.some((el) => el && _dom.contains.call(void 0, el, element))) return; cleanups.unshift(_4SKDRUBRcjs.setAttribute.call(void 0, element, "role", "none")); } ); const restoreTreeOutside = () => { for (const cleanup of cleanups) { cleanup(); } }; return restoreTreeOutside; } exports.disableTree = disableTree; exports.disableTreeOutside = disableTreeOutside;