{"ast":null,"code":"/* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex, camelcase */\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport ownerDocument from '../utils/ownerDocument';\nimport useForkRef from '../utils/useForkRef';\nimport { exactProp } from '@material-ui/utils';\n/**\n * Utility component that locks focus inside the component.\n */\n\nfunction Unstable_TrapFocus(props) {\n  var children = props.children,\n      _props$disableAutoFoc = props.disableAutoFocus,\n      disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,\n      _props$disableEnforce = props.disableEnforceFocus,\n      disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,\n      _props$disableRestore = props.disableRestoreFocus,\n      disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,\n      getDoc = props.getDoc,\n      isEnabled = props.isEnabled,\n      open = props.open;\n  var ignoreNextEnforceFocus = React.useRef();\n  var sentinelStart = React.useRef(null);\n  var sentinelEnd = React.useRef(null);\n  var nodeToRestore = React.useRef();\n  var rootRef = React.useRef(null); // can be removed once we drop support for non ref forwarding class components\n\n  var handleOwnRef = React.useCallback(function (instance) {\n    // #StrictMode ready\n    rootRef.current = ReactDOM.findDOMNode(instance);\n  }, []);\n  var handleRef = useForkRef(children.ref, handleOwnRef);\n  var prevOpenRef = React.useRef();\n  React.useEffect(function () {\n    prevOpenRef.current = open;\n  }, [open]);\n\n  if (!prevOpenRef.current && open && typeof window !== 'undefined') {\n    // WARNING: Potentially unsafe in concurrent mode.\n    // The way the read on `nodeToRestore` is setup could make this actually safe.\n    // Say we render `open={false}` -> `open={true}` but never commit.\n    // We have now written a state that wasn't committed. But no committed effect\n    // will read this wrong value. We only read from `nodeToRestore` in effects\n    // that were committed on `open={true}`\n    // WARNING: Prevents the instance from being garbage collected. Should only\n    // hold a weak ref.\n    nodeToRestore.current = getDoc().activeElement;\n  }\n\n  React.useEffect(function () {\n    if (!open) {\n      return;\n    }\n\n    var doc = ownerDocument(rootRef.current); // We might render an empty child.\n\n    if (!disableAutoFocus && rootRef.current && !rootRef.current.contains(doc.activeElement)) {\n      if (!rootRef.current.hasAttribute('tabIndex')) {\n        if (process.env.NODE_ENV !== 'production') {\n          console.error(['Material-UI: The modal content node does not accept focus.', 'For the benefit of assistive technologies, ' + 'the tabIndex of the node is being set to \"-1\".'].join('\\n'));\n        }\n\n        rootRef.current.setAttribute('tabIndex', -1);\n      }\n\n      rootRef.current.focus();\n    }\n\n    var contain = function contain() {\n      var rootElement = rootRef.current; // Cleanup functions are executed lazily in React 17.\n      // Contain can be called between the component being unmounted and its cleanup function being run.\n\n      if (rootElement === null) {\n        return;\n      }\n\n      if (!doc.hasFocus() || disableEnforceFocus || !isEnabled() || ignoreNextEnforceFocus.current) {\n        ignoreNextEnforceFocus.current = false;\n        return;\n      }\n\n      if (rootRef.current && !rootRef.current.contains(doc.activeElement)) {\n        rootRef.current.focus();\n      }\n    };\n\n    var loopFocus = function loopFocus(event) {\n      // 9 = Tab\n      if (disableEnforceFocus || !isEnabled() || event.keyCode !== 9) {\n        return;\n      } // Make sure the next tab starts from the right place.\n\n\n      if (doc.activeElement === rootRef.current) {\n        // We need to ignore the next contain as\n        // it will try to move the focus back to the rootRef element.\n        ignoreNextEnforceFocus.current = true;\n\n        if (event.shiftKey) {\n          sentinelEnd.current.focus();\n        } else {\n          sentinelStart.current.focus();\n        }\n      }\n    };\n\n    doc.addEventListener('focus', contain, true);\n    doc.addEventListener('keydown', loopFocus, true); // With Edge, Safari and Firefox, no focus related events are fired when the focused area stops being a focused area\n    // e.g. https://bugzilla.mozilla.org/show_bug.cgi?id=559561.\n    //\n    // The whatwg spec defines how the browser should behave but does not explicitly mention any events:\n    // https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule.\n\n    var interval = setInterval(function () {\n      contain();\n    }, 50);\n    return function () {\n      clearInterval(interval);\n      doc.removeEventListener('focus', contain, true);\n      doc.removeEventListener('keydown', loopFocus, true); // restoreLastFocus()\n\n      if (!disableRestoreFocus) {\n        // In IE 11 it is possible for document.activeElement to be null resulting\n        // in nodeToRestore.current being null.\n        // Not all elements in IE 11 have a focus method.\n        // Once IE 11 support is dropped the focus() call can be unconditional.\n        if (nodeToRestore.current && nodeToRestore.current.focus) {\n          nodeToRestore.current.focus();\n        }\n\n        nodeToRestore.current = null;\n      }\n    };\n  }, [disableAutoFocus, disableEnforceFocus, disableRestoreFocus, isEnabled, open]);\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n    tabIndex: 0,\n    ref: sentinelStart,\n    \"data-test\": \"sentinelStart\"\n  }), /*#__PURE__*/React.cloneElement(children, {\n    ref: handleRef\n  }), /*#__PURE__*/React.createElement(\"div\", {\n    tabIndex: 0,\n    ref: sentinelEnd,\n    \"data-test\": \"sentinelEnd\"\n  }));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? Unstable_TrapFocus.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * A single child content element.\n   */\n  children: PropTypes.node,\n\n  /**\n   * If `true`, the trap focus will not automatically shift focus to itself when it opens, and\n   * replace it to the last focused element when it closes.\n   * This also works correctly with any trap focus children that have the `disableAutoFocus` prop.\n   *\n   * Generally this should never be set to `true` as it makes the trap focus less\n   * accessible to assistive technologies, like screen readers.\n   */\n  disableAutoFocus: PropTypes.bool,\n\n  /**\n   * If `true`, the trap focus will not prevent focus from leaving the trap focus while open.\n   *\n   * Generally this should never be set to `true` as it makes the trap focus less\n   * accessible to assistive technologies, like screen readers.\n   */\n  disableEnforceFocus: PropTypes.bool,\n\n  /**\n   * If `true`, the trap focus will not restore focus to previously focused element once\n   * trap focus is hidden.\n   */\n  disableRestoreFocus: PropTypes.bool,\n\n  /**\n   * Return the document to consider.\n   * We use it to implement the restore focus between different browser documents.\n   */\n  getDoc: PropTypes.func.isRequired,\n\n  /**\n   * Do we still want to enforce the focus?\n   * This prop helps nesting TrapFocus elements.\n   */\n  isEnabled: PropTypes.func.isRequired,\n\n  /**\n   * If `true`, focus will be locked.\n   */\n  open: PropTypes.bool.isRequired\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n  // eslint-disable-next-line\n  Unstable_TrapFocus['propTypes' + ''] = exactProp(Unstable_TrapFocus.propTypes);\n}\n\nexport default Unstable_TrapFocus;","map":{"version":3,"sources":["C:/laragon/www/itokin/DriverOPCDA/frontend/node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js"],"names":["React","ReactDOM","PropTypes","ownerDocument","useForkRef","exactProp","Unstable_TrapFocus","props","children","_props$disableAutoFoc","disableAutoFocus","_props$disableEnforce","disableEnforceFocus","_props$disableRestore","disableRestoreFocus","getDoc","isEnabled","open","ignoreNextEnforceFocus","useRef","sentinelStart","sentinelEnd","nodeToRestore","rootRef","handleOwnRef","useCallback","instance","current","findDOMNode","handleRef","ref","prevOpenRef","useEffect","window","activeElement","doc","contains","hasAttribute","process","env","NODE_ENV","console","error","join","setAttribute","focus","contain","rootElement","hasFocus","loopFocus","event","keyCode","shiftKey","addEventListener","interval","setInterval","clearInterval","removeEventListener","createElement","Fragment","tabIndex","cloneElement","propTypes","node","bool","func","isRequired"],"mappings":"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","sourcesContent":["/* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex, camelcase */\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport ownerDocument from '../utils/ownerDocument';\nimport useForkRef from '../utils/useForkRef';\nimport { exactProp } from '@material-ui/utils';\n/**\n * Utility component that locks focus inside the component.\n */\n\nfunction Unstable_TrapFocus(props) {\n  var children = props.children,\n      _props$disableAutoFoc = props.disableAutoFocus,\n      disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,\n      _props$disableEnforce = props.disableEnforceFocus,\n      disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,\n      _props$disableRestore = props.disableRestoreFocus,\n      disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,\n      getDoc = props.getDoc,\n      isEnabled = props.isEnabled,\n      open = props.open;\n  var ignoreNextEnforceFocus = React.useRef();\n  var sentinelStart = React.useRef(null);\n  var sentinelEnd = React.useRef(null);\n  var nodeToRestore = React.useRef();\n  var rootRef = React.useRef(null); // can be removed once we drop support for non ref forwarding class components\n\n  var handleOwnRef = React.useCallback(function (instance) {\n    // #StrictMode ready\n    rootRef.current = ReactDOM.findDOMNode(instance);\n  }, []);\n  var handleRef = useForkRef(children.ref, handleOwnRef);\n  var prevOpenRef = React.useRef();\n  React.useEffect(function () {\n    prevOpenRef.current = open;\n  }, [open]);\n\n  if (!prevOpenRef.current && open && typeof window !== 'undefined') {\n    // WARNING: Potentially unsafe in concurrent mode.\n    // The way the read on `nodeToRestore` is setup could make this actually safe.\n    // Say we render `open={false}` -> `open={true}` but never commit.\n    // We have now written a state that wasn't committed. But no committed effect\n    // will read this wrong value. We only read from `nodeToRestore` in effects\n    // that were committed on `open={true}`\n    // WARNING: Prevents the instance from being garbage collected. Should only\n    // hold a weak ref.\n    nodeToRestore.current = getDoc().activeElement;\n  }\n\n  React.useEffect(function () {\n    if (!open) {\n      return;\n    }\n\n    var doc = ownerDocument(rootRef.current); // We might render an empty child.\n\n    if (!disableAutoFocus && rootRef.current && !rootRef.current.contains(doc.activeElement)) {\n      if (!rootRef.current.hasAttribute('tabIndex')) {\n        if (process.env.NODE_ENV !== 'production') {\n          console.error(['Material-UI: The modal content node does not accept focus.', 'For the benefit of assistive technologies, ' + 'the tabIndex of the node is being set to \"-1\".'].join('\\n'));\n        }\n\n        rootRef.current.setAttribute('tabIndex', -1);\n      }\n\n      rootRef.current.focus();\n    }\n\n    var contain = function contain() {\n      var rootElement = rootRef.current; // Cleanup functions are executed lazily in React 17.\n      // Contain can be called between the component being unmounted and its cleanup function being run.\n\n      if (rootElement === null) {\n        return;\n      }\n\n      if (!doc.hasFocus() || disableEnforceFocus || !isEnabled() || ignoreNextEnforceFocus.current) {\n        ignoreNextEnforceFocus.current = false;\n        return;\n      }\n\n      if (rootRef.current && !rootRef.current.contains(doc.activeElement)) {\n        rootRef.current.focus();\n      }\n    };\n\n    var loopFocus = function loopFocus(event) {\n      // 9 = Tab\n      if (disableEnforceFocus || !isEnabled() || event.keyCode !== 9) {\n        return;\n      } // Make sure the next tab starts from the right place.\n\n\n      if (doc.activeElement === rootRef.current) {\n        // We need to ignore the next contain as\n        // it will try to move the focus back to the rootRef element.\n        ignoreNextEnforceFocus.current = true;\n\n        if (event.shiftKey) {\n          sentinelEnd.current.focus();\n        } else {\n          sentinelStart.current.focus();\n        }\n      }\n    };\n\n    doc.addEventListener('focus', contain, true);\n    doc.addEventListener('keydown', loopFocus, true); // With Edge, Safari and Firefox, no focus related events are fired when the focused area stops being a focused area\n    // e.g. https://bugzilla.mozilla.org/show_bug.cgi?id=559561.\n    //\n    // The whatwg spec defines how the browser should behave but does not explicitly mention any events:\n    // https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule.\n\n    var interval = setInterval(function () {\n      contain();\n    }, 50);\n    return function () {\n      clearInterval(interval);\n      doc.removeEventListener('focus', contain, true);\n      doc.removeEventListener('keydown', loopFocus, true); // restoreLastFocus()\n\n      if (!disableRestoreFocus) {\n        // In IE 11 it is possible for document.activeElement to be null resulting\n        // in nodeToRestore.current being null.\n        // Not all elements in IE 11 have a focus method.\n        // Once IE 11 support is dropped the focus() call can be unconditional.\n        if (nodeToRestore.current && nodeToRestore.current.focus) {\n          nodeToRestore.current.focus();\n        }\n\n        nodeToRestore.current = null;\n      }\n    };\n  }, [disableAutoFocus, disableEnforceFocus, disableRestoreFocus, isEnabled, open]);\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n    tabIndex: 0,\n    ref: sentinelStart,\n    \"data-test\": \"sentinelStart\"\n  }), /*#__PURE__*/React.cloneElement(children, {\n    ref: handleRef\n  }), /*#__PURE__*/React.createElement(\"div\", {\n    tabIndex: 0,\n    ref: sentinelEnd,\n    \"data-test\": \"sentinelEnd\"\n  }));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? Unstable_TrapFocus.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * A single child content element.\n   */\n  children: PropTypes.node,\n\n  /**\n   * If `true`, the trap focus will not automatically shift focus to itself when it opens, and\n   * replace it to the last focused element when it closes.\n   * This also works correctly with any trap focus children that have the `disableAutoFocus` prop.\n   *\n   * Generally this should never be set to `true` as it makes the trap focus less\n   * accessible to assistive technologies, like screen readers.\n   */\n  disableAutoFocus: PropTypes.bool,\n\n  /**\n   * If `true`, the trap focus will not prevent focus from leaving the trap focus while open.\n   *\n   * Generally this should never be set to `true` as it makes the trap focus less\n   * accessible to assistive technologies, like screen readers.\n   */\n  disableEnforceFocus: PropTypes.bool,\n\n  /**\n   * If `true`, the trap focus will not restore focus to previously focused element once\n   * trap focus is hidden.\n   */\n  disableRestoreFocus: PropTypes.bool,\n\n  /**\n   * Return the document to consider.\n   * We use it to implement the restore focus between different browser documents.\n   */\n  getDoc: PropTypes.func.isRequired,\n\n  /**\n   * Do we still want to enforce the focus?\n   * This prop helps nesting TrapFocus elements.\n   */\n  isEnabled: PropTypes.func.isRequired,\n\n  /**\n   * If `true`, focus will be locked.\n   */\n  open: PropTypes.bool.isRequired\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n  // eslint-disable-next-line\n  Unstable_TrapFocus['propTypes' + ''] = exactProp(Unstable_TrapFocus.propTypes);\n}\n\nexport default Unstable_TrapFocus;"]},"metadata":{},"sourceType":"module"}