{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport * as ReactDOM from 'react-dom';\nimport ownerDocument from '../utils/ownerDocument';\nimport List from '../List';\nimport getScrollbarSize from '../utils/getScrollbarSize';\nimport useForkRef from '../utils/useForkRef';\n\nfunction nextItem(list, item, disableListWrap) {\n  if (list === item) {\n    return list.firstChild;\n  }\n\n  if (item && item.nextElementSibling) {\n    return item.nextElementSibling;\n  }\n\n  return disableListWrap ? null : list.firstChild;\n}\n\nfunction previousItem(list, item, disableListWrap) {\n  if (list === item) {\n    return disableListWrap ? list.firstChild : list.lastChild;\n  }\n\n  if (item && item.previousElementSibling) {\n    return item.previousElementSibling;\n  }\n\n  return disableListWrap ? null : list.lastChild;\n}\n\nfunction textCriteriaMatches(nextFocus, textCriteria) {\n  if (textCriteria === undefined) {\n    return true;\n  }\n\n  var text = nextFocus.innerText;\n\n  if (text === undefined) {\n    // jsdom doesn't support innerText\n    text = nextFocus.textContent;\n  }\n\n  text = text.trim().toLowerCase();\n\n  if (text.length === 0) {\n    return false;\n  }\n\n  if (textCriteria.repeating) {\n    return text[0] === textCriteria.keys[0];\n  }\n\n  return text.indexOf(textCriteria.keys.join('')) === 0;\n}\n\nfunction moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {\n  var wrappedOnce = false;\n  var nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);\n\n  while (nextFocus) {\n    // Prevent infinite loop.\n    if (nextFocus === list.firstChild) {\n      if (wrappedOnce) {\n        return;\n      }\n\n      wrappedOnce = true;\n    } // Same logic as useAutocomplete.js\n\n\n    var nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n\n    if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {\n      // Move to the next element.\n      nextFocus = traversalFunction(list, nextFocus, disableListWrap);\n    } else {\n      nextFocus.focus();\n      return;\n    }\n  }\n}\n\nvar useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n/**\n * A permanently displayed menu following https://www.w3.org/TR/wai-aria-practices/#menubutton.\n * It's exposed to help customization of the [`Menu`](/api/menu/) component. If you\n * use it separately you need to move focus into the component manually. Once\n * the focus is placed inside the component it is fully keyboard accessible.\n */\n\nvar MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {\n  var actions = props.actions,\n      _props$autoFocus = props.autoFocus,\n      autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,\n      _props$autoFocusItem = props.autoFocusItem,\n      autoFocusItem = _props$autoFocusItem === void 0 ? false : _props$autoFocusItem,\n      children = props.children,\n      className = props.className,\n      _props$disabledItemsF = props.disabledItemsFocusable,\n      disabledItemsFocusable = _props$disabledItemsF === void 0 ? false : _props$disabledItemsF,\n      _props$disableListWra = props.disableListWrap,\n      disableListWrap = _props$disableListWra === void 0 ? false : _props$disableListWra,\n      onKeyDown = props.onKeyDown,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'selectedMenu' : _props$variant,\n      other = _objectWithoutProperties(props, [\"actions\", \"autoFocus\", \"autoFocusItem\", \"children\", \"className\", \"disabledItemsFocusable\", \"disableListWrap\", \"onKeyDown\", \"variant\"]);\n\n  var listRef = React.useRef(null);\n  var textCriteriaRef = React.useRef({\n    keys: [],\n    repeating: true,\n    previousKeyMatched: true,\n    lastTime: null\n  });\n  useEnhancedEffect(function () {\n    if (autoFocus) {\n      listRef.current.focus();\n    }\n  }, [autoFocus]);\n  React.useImperativeHandle(actions, function () {\n    return {\n      adjustStyleForScrollbar: function adjustStyleForScrollbar(containerElement, theme) {\n        // Let's ignore that piece of logic if users are already overriding the width\n        // of the menu.\n        var noExplicitWidth = !listRef.current.style.width;\n\n        if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {\n          var scrollbarSize = \"\".concat(getScrollbarSize(true), \"px\");\n          listRef.current.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;\n          listRef.current.style.width = \"calc(100% + \".concat(scrollbarSize, \")\");\n        }\n\n        return listRef.current;\n      }\n    };\n  }, []);\n\n  var handleKeyDown = function handleKeyDown(event) {\n    var list = listRef.current;\n    var key = event.key;\n    /**\n     * @type {Element} - will always be defined since we are in a keydown handler\n     * attached to an element. A keydown event is either dispatched to the activeElement\n     * or document.body or document.documentElement. Only the first case will\n     * trigger this specific handler.\n     */\n\n    var currentFocus = ownerDocument(list).activeElement;\n\n    if (key === 'ArrowDown') {\n      // Prevent scroll of the page\n      event.preventDefault();\n      moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);\n    } else if (key === 'ArrowUp') {\n      event.preventDefault();\n      moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);\n    } else if (key === 'Home') {\n      event.preventDefault();\n      moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);\n    } else if (key === 'End') {\n      event.preventDefault();\n      moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);\n    } else if (key.length === 1) {\n      var criteria = textCriteriaRef.current;\n      var lowerKey = key.toLowerCase();\n      var currTime = performance.now();\n\n      if (criteria.keys.length > 0) {\n        // Reset\n        if (currTime - criteria.lastTime > 500) {\n          criteria.keys = [];\n          criteria.repeating = true;\n          criteria.previousKeyMatched = true;\n        } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {\n          criteria.repeating = false;\n        }\n      }\n\n      criteria.lastTime = currTime;\n      criteria.keys.push(lowerKey);\n      var keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);\n\n      if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {\n        event.preventDefault();\n      } else {\n        criteria.previousKeyMatched = false;\n      }\n    }\n\n    if (onKeyDown) {\n      onKeyDown(event);\n    }\n  };\n\n  var handleOwnRef = React.useCallback(function (instance) {\n    // #StrictMode ready\n    listRef.current = ReactDOM.findDOMNode(instance);\n  }, []);\n  var handleRef = useForkRef(handleOwnRef, ref);\n  /**\n   * the index of the item should receive focus\n   * in a `variant=\"selectedMenu\"` it's the first `selected` item\n   * otherwise it's the very first item.\n   */\n\n  var activeItemIndex = -1; // since we inject focus related props into children we have to do a lookahead\n  // to check if there is a `selected` item. We're looking for the last `selected`\n  // item and use the first valid item as a fallback\n\n  React.Children.forEach(children, function (child, index) {\n    if (! /*#__PURE__*/React.isValidElement(child)) {\n      return;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (isFragment(child)) {\n        console.error([\"Material-UI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n\n    if (!child.props.disabled) {\n      if (variant === 'selectedMenu' && child.props.selected) {\n        activeItemIndex = index;\n      } else if (activeItemIndex === -1) {\n        activeItemIndex = index;\n      }\n    }\n  });\n  var items = React.Children.map(children, function (child, index) {\n    if (index === activeItemIndex) {\n      var newChildProps = {};\n\n      if (autoFocusItem) {\n        newChildProps.autoFocus = true;\n      }\n\n      if (child.props.tabIndex === undefined && variant === 'selectedMenu') {\n        newChildProps.tabIndex = 0;\n      }\n\n      return /*#__PURE__*/React.cloneElement(child, newChildProps);\n    }\n\n    return child;\n  });\n  return /*#__PURE__*/React.createElement(List, _extends({\n    role: \"menu\",\n    ref: handleRef,\n    className: className,\n    onKeyDown: handleKeyDown,\n    tabIndex: autoFocus ? 0 : -1\n  }, other), items);\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuList.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   * If `true`, will focus the `[role=\"menu\"]` container and move into tab order.\n   */\n  autoFocus: PropTypes.bool,\n\n  /**\n   * If `true`, will focus the first menuitem if `variant=\"menu\"` or selected item\n   * if `variant=\"selectedMenu\"`.\n   */\n  autoFocusItem: PropTypes.bool,\n\n  /**\n   * MenuList contents, normally `MenuItem`s.\n   */\n  children: PropTypes.node,\n\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n\n  /**\n   * If `true`, will allow focus on disabled items.\n   */\n  disabledItemsFocusable: PropTypes.bool,\n\n  /**\n   * If `true`, the menu items will not wrap focus.\n   */\n  disableListWrap: PropTypes.bool,\n\n  /**\n   * @ignore\n   */\n  onKeyDown: PropTypes.func,\n\n  /**\n   * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n   * and the vertical alignment relative to the anchor element.\n   */\n  variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default MenuList;","map":{"version":3,"sources":["C:/laragon/www/itokin/DriverOPCDA/frontend/node_modules/@material-ui/core/esm/MenuList/MenuList.js"],"names":["_extends","_objectWithoutProperties","React","isFragment","PropTypes","ReactDOM","ownerDocument","List","getScrollbarSize","useForkRef","nextItem","list","item","disableListWrap","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","textCriteriaMatches","nextFocus","textCriteria","undefined","text","innerText","textContent","trim","toLowerCase","length","repeating","keys","indexOf","join","moveFocus","currentFocus","disabledItemsFocusable","traversalFunction","wrappedOnce","nextFocusDisabled","disabled","getAttribute","hasAttribute","focus","useEnhancedEffect","window","useEffect","useLayoutEffect","MenuList","forwardRef","props","ref","actions","_props$autoFocus","autoFocus","_props$autoFocusItem","autoFocusItem","children","className","_props$disabledItemsF","_props$disableListWra","onKeyDown","_props$variant","variant","other","listRef","useRef","textCriteriaRef","previousKeyMatched","lastTime","current","useImperativeHandle","adjustStyleForScrollbar","containerElement","theme","noExplicitWidth","style","width","clientHeight","scrollbarSize","concat","direction","handleKeyDown","event","key","activeElement","preventDefault","criteria","lowerKey","currTime","performance","now","push","keepFocusOnCurrent","handleOwnRef","useCallback","instance","findDOMNode","handleRef","activeItemIndex","Children","forEach","child","index","isValidElement","process","env","NODE_ENV","console","error","selected","items","map","newChildProps","tabIndex","cloneElement","createElement","role","propTypes","bool","node","string","func","oneOf"],"mappings":"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","sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport * as ReactDOM from 'react-dom';\nimport ownerDocument from '../utils/ownerDocument';\nimport List from '../List';\nimport getScrollbarSize from '../utils/getScrollbarSize';\nimport useForkRef from '../utils/useForkRef';\n\nfunction nextItem(list, item, disableListWrap) {\n  if (list === item) {\n    return list.firstChild;\n  }\n\n  if (item && item.nextElementSibling) {\n    return item.nextElementSibling;\n  }\n\n  return disableListWrap ? null : list.firstChild;\n}\n\nfunction previousItem(list, item, disableListWrap) {\n  if (list === item) {\n    return disableListWrap ? list.firstChild : list.lastChild;\n  }\n\n  if (item && item.previousElementSibling) {\n    return item.previousElementSibling;\n  }\n\n  return disableListWrap ? null : list.lastChild;\n}\n\nfunction textCriteriaMatches(nextFocus, textCriteria) {\n  if (textCriteria === undefined) {\n    return true;\n  }\n\n  var text = nextFocus.innerText;\n\n  if (text === undefined) {\n    // jsdom doesn't support innerText\n    text = nextFocus.textContent;\n  }\n\n  text = text.trim().toLowerCase();\n\n  if (text.length === 0) {\n    return false;\n  }\n\n  if (textCriteria.repeating) {\n    return text[0] === textCriteria.keys[0];\n  }\n\n  return text.indexOf(textCriteria.keys.join('')) === 0;\n}\n\nfunction moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {\n  var wrappedOnce = false;\n  var nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);\n\n  while (nextFocus) {\n    // Prevent infinite loop.\n    if (nextFocus === list.firstChild) {\n      if (wrappedOnce) {\n        return;\n      }\n\n      wrappedOnce = true;\n    } // Same logic as useAutocomplete.js\n\n\n    var nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n\n    if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {\n      // Move to the next element.\n      nextFocus = traversalFunction(list, nextFocus, disableListWrap);\n    } else {\n      nextFocus.focus();\n      return;\n    }\n  }\n}\n\nvar useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n/**\n * A permanently displayed menu following https://www.w3.org/TR/wai-aria-practices/#menubutton.\n * It's exposed to help customization of the [`Menu`](/api/menu/) component. If you\n * use it separately you need to move focus into the component manually. Once\n * the focus is placed inside the component it is fully keyboard accessible.\n */\n\nvar MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {\n  var actions = props.actions,\n      _props$autoFocus = props.autoFocus,\n      autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,\n      _props$autoFocusItem = props.autoFocusItem,\n      autoFocusItem = _props$autoFocusItem === void 0 ? false : _props$autoFocusItem,\n      children = props.children,\n      className = props.className,\n      _props$disabledItemsF = props.disabledItemsFocusable,\n      disabledItemsFocusable = _props$disabledItemsF === void 0 ? false : _props$disabledItemsF,\n      _props$disableListWra = props.disableListWrap,\n      disableListWrap = _props$disableListWra === void 0 ? false : _props$disableListWra,\n      onKeyDown = props.onKeyDown,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'selectedMenu' : _props$variant,\n      other = _objectWithoutProperties(props, [\"actions\", \"autoFocus\", \"autoFocusItem\", \"children\", \"className\", \"disabledItemsFocusable\", \"disableListWrap\", \"onKeyDown\", \"variant\"]);\n\n  var listRef = React.useRef(null);\n  var textCriteriaRef = React.useRef({\n    keys: [],\n    repeating: true,\n    previousKeyMatched: true,\n    lastTime: null\n  });\n  useEnhancedEffect(function () {\n    if (autoFocus) {\n      listRef.current.focus();\n    }\n  }, [autoFocus]);\n  React.useImperativeHandle(actions, function () {\n    return {\n      adjustStyleForScrollbar: function adjustStyleForScrollbar(containerElement, theme) {\n        // Let's ignore that piece of logic if users are already overriding the width\n        // of the menu.\n        var noExplicitWidth = !listRef.current.style.width;\n\n        if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {\n          var scrollbarSize = \"\".concat(getScrollbarSize(true), \"px\");\n          listRef.current.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;\n          listRef.current.style.width = \"calc(100% + \".concat(scrollbarSize, \")\");\n        }\n\n        return listRef.current;\n      }\n    };\n  }, []);\n\n  var handleKeyDown = function handleKeyDown(event) {\n    var list = listRef.current;\n    var key = event.key;\n    /**\n     * @type {Element} - will always be defined since we are in a keydown handler\n     * attached to an element. A keydown event is either dispatched to the activeElement\n     * or document.body or document.documentElement. Only the first case will\n     * trigger this specific handler.\n     */\n\n    var currentFocus = ownerDocument(list).activeElement;\n\n    if (key === 'ArrowDown') {\n      // Prevent scroll of the page\n      event.preventDefault();\n      moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);\n    } else if (key === 'ArrowUp') {\n      event.preventDefault();\n      moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);\n    } else if (key === 'Home') {\n      event.preventDefault();\n      moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);\n    } else if (key === 'End') {\n      event.preventDefault();\n      moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);\n    } else if (key.length === 1) {\n      var criteria = textCriteriaRef.current;\n      var lowerKey = key.toLowerCase();\n      var currTime = performance.now();\n\n      if (criteria.keys.length > 0) {\n        // Reset\n        if (currTime - criteria.lastTime > 500) {\n          criteria.keys = [];\n          criteria.repeating = true;\n          criteria.previousKeyMatched = true;\n        } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {\n          criteria.repeating = false;\n        }\n      }\n\n      criteria.lastTime = currTime;\n      criteria.keys.push(lowerKey);\n      var keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);\n\n      if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {\n        event.preventDefault();\n      } else {\n        criteria.previousKeyMatched = false;\n      }\n    }\n\n    if (onKeyDown) {\n      onKeyDown(event);\n    }\n  };\n\n  var handleOwnRef = React.useCallback(function (instance) {\n    // #StrictMode ready\n    listRef.current = ReactDOM.findDOMNode(instance);\n  }, []);\n  var handleRef = useForkRef(handleOwnRef, ref);\n  /**\n   * the index of the item should receive focus\n   * in a `variant=\"selectedMenu\"` it's the first `selected` item\n   * otherwise it's the very first item.\n   */\n\n  var activeItemIndex = -1; // since we inject focus related props into children we have to do a lookahead\n  // to check if there is a `selected` item. We're looking for the last `selected`\n  // item and use the first valid item as a fallback\n\n  React.Children.forEach(children, function (child, index) {\n    if (! /*#__PURE__*/React.isValidElement(child)) {\n      return;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (isFragment(child)) {\n        console.error([\"Material-UI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n\n    if (!child.props.disabled) {\n      if (variant === 'selectedMenu' && child.props.selected) {\n        activeItemIndex = index;\n      } else if (activeItemIndex === -1) {\n        activeItemIndex = index;\n      }\n    }\n  });\n  var items = React.Children.map(children, function (child, index) {\n    if (index === activeItemIndex) {\n      var newChildProps = {};\n\n      if (autoFocusItem) {\n        newChildProps.autoFocus = true;\n      }\n\n      if (child.props.tabIndex === undefined && variant === 'selectedMenu') {\n        newChildProps.tabIndex = 0;\n      }\n\n      return /*#__PURE__*/React.cloneElement(child, newChildProps);\n    }\n\n    return child;\n  });\n  return /*#__PURE__*/React.createElement(List, _extends({\n    role: \"menu\",\n    ref: handleRef,\n    className: className,\n    onKeyDown: handleKeyDown,\n    tabIndex: autoFocus ? 0 : -1\n  }, other), items);\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuList.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   * If `true`, will focus the `[role=\"menu\"]` container and move into tab order.\n   */\n  autoFocus: PropTypes.bool,\n\n  /**\n   * If `true`, will focus the first menuitem if `variant=\"menu\"` or selected item\n   * if `variant=\"selectedMenu\"`.\n   */\n  autoFocusItem: PropTypes.bool,\n\n  /**\n   * MenuList contents, normally `MenuItem`s.\n   */\n  children: PropTypes.node,\n\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n\n  /**\n   * If `true`, will allow focus on disabled items.\n   */\n  disabledItemsFocusable: PropTypes.bool,\n\n  /**\n   * If `true`, the menu items will not wrap focus.\n   */\n  disableListWrap: PropTypes.bool,\n\n  /**\n   * @ignore\n   */\n  onKeyDown: PropTypes.func,\n\n  /**\n   * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n   * and the vertical alignment relative to the anchor element.\n   */\n  variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default MenuList;"]},"metadata":{},"sourceType":"module"}