{"version":3,"file":"ModalManager.mjs","sources":["../../../../../../../../node_modules/@mui/material/Modal/ModalManager.js"],"sourcesContent":["import { unstable_ownerWindow as ownerWindow, unstable_ownerDocument as ownerDocument, unstable_getScrollbarSize as getScrollbarSize } from '@mui/utils';\n// Is a vertical scrollbar displayed?\nfunction isOverflowing(container) {\n  const doc = ownerDocument(container);\n  if (doc.body === container) {\n    return ownerWindow(container).innerWidth > doc.documentElement.clientWidth;\n  }\n  return container.scrollHeight > container.clientHeight;\n}\nexport function ariaHidden(element, hide) {\n  if (hide) {\n    element.setAttribute('aria-hidden', 'true');\n  } else {\n    element.removeAttribute('aria-hidden');\n  }\n}\nfunction getPaddingRight(element) {\n  return parseInt(ownerWindow(element).getComputedStyle(element).paddingRight, 10) || 0;\n}\nfunction isAriaHiddenForbiddenOnElement(element) {\n  // The forbidden HTML tags are the ones from ARIA specification that\n  // can be children of body and can't have aria-hidden attribute.\n  // cf. https://www.w3.org/TR/html-aria/#docconformance\n  const forbiddenTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE', 'LINK', 'MAP', 'META', 'NOSCRIPT', 'PICTURE', 'COL', 'COLGROUP', 'PARAM', 'SLOT', 'SOURCE', 'TRACK'];\n  const isForbiddenTagName = forbiddenTagNames.includes(element.tagName);\n  const isInputHidden = element.tagName === 'INPUT' && element.getAttribute('type') === 'hidden';\n  return isForbiddenTagName || isInputHidden;\n}\nfunction ariaHiddenSiblings(container, mountElement, currentElement, elementsToExclude, hide) {\n  const blacklist = [mountElement, currentElement, ...elementsToExclude];\n  [].forEach.call(container.children, element => {\n    const isNotExcludedElement = !blacklist.includes(element);\n    const isNotForbiddenElement = !isAriaHiddenForbiddenOnElement(element);\n    if (isNotExcludedElement && isNotForbiddenElement) {\n      ariaHidden(element, hide);\n    }\n  });\n}\nfunction findIndexOf(items, callback) {\n  let idx = -1;\n  items.some((item, index) => {\n    if (callback(item)) {\n      idx = index;\n      return true;\n    }\n    return false;\n  });\n  return idx;\n}\nfunction handleContainer(containerInfo, props) {\n  const restoreStyle = [];\n  const container = containerInfo.container;\n  if (!props.disableScrollLock) {\n    if (isOverflowing(container)) {\n      // Compute the size before applying overflow hidden to avoid any scroll jumps.\n      const scrollbarSize = getScrollbarSize(ownerWindow(container));\n      restoreStyle.push({\n        value: container.style.paddingRight,\n        property: 'padding-right',\n        el: container\n      });\n      // Use computed style, here to get the real padding to add our scrollbar width.\n      container.style.paddingRight = `${getPaddingRight(container) + scrollbarSize}px`;\n\n      // .mui-fixed is a global helper.\n      const fixedElements = ownerDocument(container).querySelectorAll('.mui-fixed');\n      [].forEach.call(fixedElements, element => {\n        restoreStyle.push({\n          value: element.style.paddingRight,\n          property: 'padding-right',\n          el: element\n        });\n        element.style.paddingRight = `${getPaddingRight(element) + scrollbarSize}px`;\n      });\n    }\n    let scrollContainer;\n    if (container.parentNode instanceof DocumentFragment) {\n      scrollContainer = ownerDocument(container).body;\n    } else {\n      // Support html overflow-y: auto for scroll stability between pages\n      // https://css-tricks.com/snippets/css/force-vertical-scrollbar/\n      const parent = container.parentElement;\n      const containerWindow = ownerWindow(container);\n      scrollContainer = parent?.nodeName === 'HTML' && containerWindow.getComputedStyle(parent).overflowY === 'scroll' ? parent : container;\n    }\n\n    // Block the scroll even if no scrollbar is visible to account for mobile keyboard\n    // screensize shrink.\n    restoreStyle.push({\n      value: scrollContainer.style.overflow,\n      property: 'overflow',\n      el: scrollContainer\n    }, {\n      value: scrollContainer.style.overflowX,\n      property: 'overflow-x',\n      el: scrollContainer\n    }, {\n      value: scrollContainer.style.overflowY,\n      property: 'overflow-y',\n      el: scrollContainer\n    });\n    scrollContainer.style.overflow = 'hidden';\n  }\n  const restore = () => {\n    restoreStyle.forEach(({\n      value,\n      el,\n      property\n    }) => {\n      if (value) {\n        el.style.setProperty(property, value);\n      } else {\n        el.style.removeProperty(property);\n      }\n    });\n  };\n  return restore;\n}\nfunction getHiddenSiblings(container) {\n  const hiddenSiblings = [];\n  [].forEach.call(container.children, element => {\n    if (element.getAttribute('aria-hidden') === 'true') {\n      hiddenSiblings.push(element);\n    }\n  });\n  return hiddenSiblings;\n}\n/**\n * @ignore - do not document.\n *\n * Proper state management for containers and the modals in those containers.\n * Simplified, but inspired by react-overlay's ModalManager class.\n * Used by the Modal to ensure proper styling of containers.\n */\nexport class ModalManager {\n  constructor() {\n    this.modals = [];\n    this.containers = [];\n  }\n  add(modal, container) {\n    let modalIndex = this.modals.indexOf(modal);\n    if (modalIndex !== -1) {\n      return modalIndex;\n    }\n    modalIndex = this.modals.length;\n    this.modals.push(modal);\n\n    // If the modal we are adding is already in the DOM.\n    if (modal.modalRef) {\n      ariaHidden(modal.modalRef, false);\n    }\n    const hiddenSiblings = getHiddenSiblings(container);\n    ariaHiddenSiblings(container, modal.mount, modal.modalRef, hiddenSiblings, true);\n    const containerIndex = findIndexOf(this.containers, item => item.container === container);\n    if (containerIndex !== -1) {\n      this.containers[containerIndex].modals.push(modal);\n      return modalIndex;\n    }\n    this.containers.push({\n      modals: [modal],\n      container,\n      restore: null,\n      hiddenSiblings\n    });\n    return modalIndex;\n  }\n  mount(modal, props) {\n    const containerIndex = findIndexOf(this.containers, item => item.modals.includes(modal));\n    const containerInfo = this.containers[containerIndex];\n    if (!containerInfo.restore) {\n      containerInfo.restore = handleContainer(containerInfo, props);\n    }\n  }\n  remove(modal, ariaHiddenState = true) {\n    const modalIndex = this.modals.indexOf(modal);\n    if (modalIndex === -1) {\n      return modalIndex;\n    }\n    const containerIndex = findIndexOf(this.containers, item => item.modals.includes(modal));\n    const containerInfo = this.containers[containerIndex];\n    containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);\n    this.modals.splice(modalIndex, 1);\n\n    // If that was the last modal in a container, clean up the container.\n    if (containerInfo.modals.length === 0) {\n      // The modal might be closed before it had the chance to be mounted in the DOM.\n      if (containerInfo.restore) {\n        containerInfo.restore();\n      }\n      if (modal.modalRef) {\n        // In case the modal wasn't in the DOM yet.\n        ariaHidden(modal.modalRef, ariaHiddenState);\n      }\n      ariaHiddenSiblings(containerInfo.container, modal.mount, modal.modalRef, containerInfo.hiddenSiblings, false);\n      this.containers.splice(containerIndex, 1);\n    } else {\n      // Otherwise make sure the next top modal is visible to a screen reader.\n      const nextTop = containerInfo.modals[containerInfo.modals.length - 1];\n      // as soon as a modal is adding its modalRef is undefined. it can't set\n      // aria-hidden because the dom element doesn't exist either\n      // when modal was unmounted before modalRef gets null\n      if (nextTop.modalRef) {\n        ariaHidden(nextTop.modalRef, false);\n      }\n    }\n    return modalIndex;\n  }\n  isTopModal(modal) {\n    return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;\n  }\n}"],"names":[],"mappings":"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","x_google_ignoreList":[0]}