{"version":3,"file":"SelectInput.mjs","sources":["../../../../../../../../node_modules/@mui/material/Select/SelectInput.js"],"sourcesContent":["'use client';\n\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nvar _span;\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useId from '@mui/utils/useId';\nimport refType from '@mui/utils/refType';\nimport ownerDocument from \"../utils/ownerDocument.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport Menu from \"../Menu/Menu.js\";\nimport { StyledSelectSelect, StyledSelectIcon } from \"../NativeSelect/NativeSelectInput.js\";\nimport { isFilled } from \"../InputBase/utils.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport slotShouldForwardProp from \"../styles/slotShouldForwardProp.js\";\nimport useForkRef from \"../utils/useForkRef.js\";\nimport useControlled from \"../utils/useControlled.js\";\nimport selectClasses, { getSelectUtilityClasses } from \"./selectClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst SelectSelect = styled(StyledSelectSelect, {\n  name: 'MuiSelect',\n  slot: 'Select',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [\n    // Win specificity over the input base\n    {\n      [`&.${selectClasses.select}`]: styles.select\n    }, {\n      [`&.${selectClasses.select}`]: styles[ownerState.variant]\n    }, {\n      [`&.${selectClasses.error}`]: styles.error\n    }, {\n      [`&.${selectClasses.multiple}`]: styles.multiple\n    }];\n  }\n})({\n  // Win specificity over the input base\n  [`&.${selectClasses.select}`]: {\n    height: 'auto',\n    // Resets for multiple select with chips\n    minHeight: '1.4375em',\n    // Required for select\\text-field height consistency\n    textOverflow: 'ellipsis',\n    whiteSpace: 'nowrap',\n    overflow: 'hidden'\n  }\n});\nconst SelectIcon = styled(StyledSelectIcon, {\n  name: 'MuiSelect',\n  slot: 'Icon',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [styles.icon, ownerState.variant && styles[`icon${capitalize(ownerState.variant)}`], ownerState.open && styles.iconOpen];\n  }\n})({});\nconst SelectNativeInput = styled('input', {\n  shouldForwardProp: prop => slotShouldForwardProp(prop) && prop !== 'classes',\n  name: 'MuiSelect',\n  slot: 'NativeInput',\n  overridesResolver: (props, styles) => styles.nativeInput\n})({\n  bottom: 0,\n  left: 0,\n  position: 'absolute',\n  opacity: 0,\n  pointerEvents: 'none',\n  width: '100%',\n  boxSizing: 'border-box'\n});\nfunction areEqualValues(a, b) {\n  if (typeof b === 'object' && b !== null) {\n    return a === b;\n  }\n\n  // The value could be a number, the DOM will stringify it anyway.\n  return String(a) === String(b);\n}\nfunction isEmpty(display) {\n  return display == null || typeof display === 'string' && !display.trim();\n}\nconst useUtilityClasses = ownerState => {\n  const {\n    classes,\n    variant,\n    disabled,\n    multiple,\n    open,\n    error\n  } = ownerState;\n  const slots = {\n    select: ['select', variant, disabled && 'disabled', multiple && 'multiple', error && 'error'],\n    icon: ['icon', `icon${capitalize(variant)}`, open && 'iconOpen', disabled && 'disabled'],\n    nativeInput: ['nativeInput']\n  };\n  return composeClasses(slots, getSelectUtilityClasses, classes);\n};\n\n/**\n * @ignore - internal component.\n */\nconst SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, ref) {\n  const {\n    'aria-describedby': ariaDescribedby,\n    'aria-label': ariaLabel,\n    autoFocus,\n    autoWidth,\n    children,\n    className,\n    defaultOpen,\n    defaultValue,\n    disabled,\n    displayEmpty,\n    error = false,\n    IconComponent,\n    inputRef: inputRefProp,\n    labelId,\n    MenuProps = {},\n    multiple,\n    name,\n    onBlur,\n    onChange,\n    onClose,\n    onFocus,\n    onOpen,\n    open: openProp,\n    readOnly,\n    renderValue,\n    required,\n    SelectDisplayProps = {},\n    tabIndex: tabIndexProp,\n    // catching `type` from Input which makes no sense for SelectInput\n    type,\n    value: valueProp,\n    variant = 'standard',\n    ...other\n  } = props;\n  const [value, setValueState] = useControlled({\n    controlled: valueProp,\n    default: defaultValue,\n    name: 'Select'\n  });\n  const [openState, setOpenState] = useControlled({\n    controlled: openProp,\n    default: defaultOpen,\n    name: 'Select'\n  });\n  const inputRef = React.useRef(null);\n  const displayRef = React.useRef(null);\n  const [displayNode, setDisplayNode] = React.useState(null);\n  const {\n    current: isOpenControlled\n  } = React.useRef(openProp != null);\n  const [menuMinWidthState, setMenuMinWidthState] = React.useState();\n  const handleRef = useForkRef(ref, inputRefProp);\n  const handleDisplayRef = React.useCallback(node => {\n    displayRef.current = node;\n    if (node) {\n      setDisplayNode(node);\n    }\n  }, []);\n  const anchorElement = displayNode?.parentNode;\n  React.useImperativeHandle(handleRef, () => ({\n    focus: () => {\n      displayRef.current.focus();\n    },\n    node: inputRef.current,\n    value\n  }), [value]);\n\n  // Resize menu on `defaultOpen` automatic toggle.\n  React.useEffect(() => {\n    if (defaultOpen && openState && displayNode && !isOpenControlled) {\n      setMenuMinWidthState(autoWidth ? null : anchorElement.clientWidth);\n      displayRef.current.focus();\n    }\n    // TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [displayNode, autoWidth]);\n  // `isOpenControlled` is ignored because the component should never switch between controlled and uncontrolled modes.\n  // `defaultOpen` and `openState` are ignored to avoid unnecessary callbacks.\n  React.useEffect(() => {\n    if (autoFocus) {\n      displayRef.current.focus();\n    }\n  }, [autoFocus]);\n  React.useEffect(() => {\n    if (!labelId) {\n      return undefined;\n    }\n    const label = ownerDocument(displayRef.current).getElementById(labelId);\n    if (label) {\n      const handler = () => {\n        if (getSelection().isCollapsed) {\n          displayRef.current.focus();\n        }\n      };\n      label.addEventListener('click', handler);\n      return () => {\n        label.removeEventListener('click', handler);\n      };\n    }\n    return undefined;\n  }, [labelId]);\n  const update = (open, event) => {\n    if (open) {\n      if (onOpen) {\n        onOpen(event);\n      }\n    } else if (onClose) {\n      onClose(event);\n    }\n    if (!isOpenControlled) {\n      setMenuMinWidthState(autoWidth ? null : anchorElement.clientWidth);\n      setOpenState(open);\n    }\n  };\n  const handleMouseDown = event => {\n    // Ignore everything but left-click\n    if (event.button !== 0) {\n      return;\n    }\n    // Hijack the default focus behavior.\n    event.preventDefault();\n    displayRef.current.focus();\n    update(true, event);\n  };\n  const handleClose = event => {\n    update(false, event);\n  };\n  const childrenArray = React.Children.toArray(children);\n\n  // Support autofill.\n  const handleChange = event => {\n    const child = childrenArray.find(childItem => childItem.props.value === event.target.value);\n    if (child === undefined) {\n      return;\n    }\n    setValueState(child.props.value);\n    if (onChange) {\n      onChange(event, child);\n    }\n  };\n  const handleItemClick = child => event => {\n    let newValue;\n\n    // We use the tabindex attribute to signal the available options.\n    if (!event.currentTarget.hasAttribute('tabindex')) {\n      return;\n    }\n    if (multiple) {\n      newValue = Array.isArray(value) ? value.slice() : [];\n      const itemIndex = value.indexOf(child.props.value);\n      if (itemIndex === -1) {\n        newValue.push(child.props.value);\n      } else {\n        newValue.splice(itemIndex, 1);\n      }\n    } else {\n      newValue = child.props.value;\n    }\n    if (child.props.onClick) {\n      child.props.onClick(event);\n    }\n    if (value !== newValue) {\n      setValueState(newValue);\n      if (onChange) {\n        // Redefine target to allow name and value to be read.\n        // This allows seamless integration with the most popular form libraries.\n        // https://github.com/mui/material-ui/issues/13485#issuecomment-676048492\n        // Clone the event to not override `target` of the original event.\n        const nativeEvent = event.nativeEvent || event;\n        const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n        Object.defineProperty(clonedEvent, 'target', {\n          writable: true,\n          value: {\n            value: newValue,\n            name\n          }\n        });\n        onChange(clonedEvent, child);\n      }\n    }\n    if (!multiple) {\n      update(false, event);\n    }\n  };\n  const handleKeyDown = event => {\n    if (!readOnly) {\n      const validKeys = [' ', 'ArrowUp', 'ArrowDown',\n      // The native select doesn't respond to enter on macOS, but it's recommended by\n      // https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/\n      'Enter'];\n      if (validKeys.includes(event.key)) {\n        event.preventDefault();\n        update(true, event);\n      }\n    }\n  };\n  const open = displayNode !== null && openState;\n  const handleBlur = event => {\n    // if open event.stopImmediatePropagation\n    if (!open && onBlur) {\n      // Preact support, target is read only property on a native event.\n      Object.defineProperty(event, 'target', {\n        writable: true,\n        value: {\n          value,\n          name\n        }\n      });\n      onBlur(event);\n    }\n  };\n  delete other['aria-invalid'];\n  let display;\n  let displaySingle;\n  const displayMultiple = [];\n  let computeDisplay = false;\n  let foundMatch = false;\n\n  // No need to display any value if the field is empty.\n  if (isFilled({\n    value\n  }) || displayEmpty) {\n    if (renderValue) {\n      display = renderValue(value);\n    } else {\n      computeDisplay = true;\n    }\n  }\n  const items = childrenArray.map(child => {\n    if (! /*#__PURE__*/React.isValidElement(child)) {\n      return null;\n    }\n    if (process.env.NODE_ENV !== 'production') {\n      if (isFragment(child)) {\n        console.error([\"MUI: The Select component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n    let selected;\n    if (multiple) {\n      if (!Array.isArray(value)) {\n        throw new Error(process.env.NODE_ENV !== \"production\" ? 'MUI: The `value` prop must be an array ' + 'when using the `Select` component with `multiple`.' : _formatMuiErrorMessage(2));\n      }\n      selected = value.some(v => areEqualValues(v, child.props.value));\n      if (selected && computeDisplay) {\n        displayMultiple.push(child.props.children);\n      }\n    } else {\n      selected = areEqualValues(value, child.props.value);\n      if (selected && computeDisplay) {\n        displaySingle = child.props.children;\n      }\n    }\n    if (selected) {\n      foundMatch = true;\n    }\n    return /*#__PURE__*/React.cloneElement(child, {\n      'aria-selected': selected ? 'true' : 'false',\n      onClick: handleItemClick(child),\n      onKeyUp: event => {\n        if (event.key === ' ') {\n          // otherwise our MenuItems dispatches a click event\n          // it's not behavior of the native <option> and causes\n          // the select to close immediately since we open on space keydown\n          event.preventDefault();\n        }\n        if (child.props.onKeyUp) {\n          child.props.onKeyUp(event);\n        }\n      },\n      role: 'option',\n      selected,\n      value: undefined,\n      // The value is most likely not a valid HTML attribute.\n      'data-value': child.props.value // Instead, we provide it as a data attribute.\n    });\n  });\n  if (process.env.NODE_ENV !== 'production') {\n    // TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    React.useEffect(() => {\n      if (!foundMatch && !multiple && value !== '') {\n        const values = childrenArray.map(child => child.props.value);\n        console.warn([`MUI: You have provided an out-of-range value \\`${value}\\` for the select ${name ? `(name=\"${name}\") ` : ''}component.`, \"Consider providing a value that matches one of the available options or ''.\", `The available values are ${values.filter(x => x != null).map(x => `\\`${x}\\``).join(', ') || '\"\"'}.`].join('\\n'));\n      }\n    }, [foundMatch, childrenArray, multiple, name, value]);\n  }\n  if (computeDisplay) {\n    if (multiple) {\n      if (displayMultiple.length === 0) {\n        display = null;\n      } else {\n        display = displayMultiple.reduce((output, child, index) => {\n          output.push(child);\n          if (index < displayMultiple.length - 1) {\n            output.push(', ');\n          }\n          return output;\n        }, []);\n      }\n    } else {\n      display = displaySingle;\n    }\n  }\n\n  // Avoid performing a layout computation in the render method.\n  let menuMinWidth = menuMinWidthState;\n  if (!autoWidth && isOpenControlled && displayNode) {\n    menuMinWidth = anchorElement.clientWidth;\n  }\n  let tabIndex;\n  if (typeof tabIndexProp !== 'undefined') {\n    tabIndex = tabIndexProp;\n  } else {\n    tabIndex = disabled ? null : 0;\n  }\n  const buttonId = SelectDisplayProps.id || (name ? `mui-component-select-${name}` : undefined);\n  const ownerState = {\n    ...props,\n    variant,\n    value,\n    open,\n    error\n  };\n  const classes = useUtilityClasses(ownerState);\n  const paperProps = {\n    ...MenuProps.PaperProps,\n    ...MenuProps.slotProps?.paper\n  };\n  const listboxId = useId();\n  return /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(SelectSelect, {\n      as: \"div\",\n      ref: handleDisplayRef,\n      tabIndex: tabIndex,\n      role: \"combobox\",\n      \"aria-controls\": open ? listboxId : undefined,\n      \"aria-disabled\": disabled ? 'true' : undefined,\n      \"aria-expanded\": open ? 'true' : 'false',\n      \"aria-haspopup\": \"listbox\",\n      \"aria-label\": ariaLabel,\n      \"aria-labelledby\": [labelId, buttonId].filter(Boolean).join(' ') || undefined,\n      \"aria-describedby\": ariaDescribedby,\n      \"aria-required\": required ? 'true' : undefined,\n      \"aria-invalid\": error ? 'true' : undefined,\n      onKeyDown: handleKeyDown,\n      onMouseDown: disabled || readOnly ? null : handleMouseDown,\n      onBlur: handleBlur,\n      onFocus: onFocus,\n      ...SelectDisplayProps,\n      ownerState: ownerState,\n      className: clsx(SelectDisplayProps.className, classes.select, className)\n      // The id is required for proper a11y\n      ,\n      id: buttonId,\n      children: isEmpty(display) ? // notranslate needed while Google Translate will not fix zero-width space issue\n      _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n        className: \"notranslate\",\n        \"aria-hidden\": true,\n        children: \"\\u200B\"\n      })) : display\n    }), /*#__PURE__*/_jsx(SelectNativeInput, {\n      \"aria-invalid\": error,\n      value: Array.isArray(value) ? value.join(',') : value,\n      name: name,\n      ref: inputRef,\n      \"aria-hidden\": true,\n      onChange: handleChange,\n      tabIndex: -1,\n      disabled: disabled,\n      className: classes.nativeInput,\n      autoFocus: autoFocus,\n      required: required,\n      ...other,\n      ownerState: ownerState\n    }), /*#__PURE__*/_jsx(SelectIcon, {\n      as: IconComponent,\n      className: classes.icon,\n      ownerState: ownerState\n    }), /*#__PURE__*/_jsx(Menu, {\n      id: `menu-${name || ''}`,\n      anchorEl: anchorElement,\n      open: open,\n      onClose: handleClose,\n      anchorOrigin: {\n        vertical: 'bottom',\n        horizontal: 'center'\n      },\n      transformOrigin: {\n        vertical: 'top',\n        horizontal: 'center'\n      },\n      ...MenuProps,\n      MenuListProps: {\n        'aria-labelledby': labelId,\n        role: 'listbox',\n        'aria-multiselectable': multiple ? 'true' : undefined,\n        disableListWrap: true,\n        id: listboxId,\n        ...MenuProps.MenuListProps\n      },\n      slotProps: {\n        ...MenuProps.slotProps,\n        paper: {\n          ...paperProps,\n          style: {\n            minWidth: menuMinWidth,\n            ...(paperProps != null ? paperProps.style : null)\n          }\n        }\n      },\n      children: items\n    })]\n  });\n});\nprocess.env.NODE_ENV !== \"production\" ? SelectInput.propTypes = {\n  /**\n   * @ignore\n   */\n  'aria-describedby': PropTypes.string,\n  /**\n   * @ignore\n   */\n  'aria-label': PropTypes.string,\n  /**\n   * @ignore\n   */\n  autoFocus: PropTypes.bool,\n  /**\n   * If `true`, the width of the popover will automatically be set according to the items inside the\n   * menu, otherwise it will be at least the width of the select input.\n   */\n  autoWidth: PropTypes.bool,\n  /**\n   * The option elements to populate the select with.\n   * Can be some `<MenuItem>` elements.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * The CSS class name of the select element.\n   */\n  className: PropTypes.string,\n  /**\n   * If `true`, the component is toggled on mount. Use when the component open state is not controlled.\n   * You can only use it when the `native` prop is `false` (default).\n   */\n  defaultOpen: PropTypes.bool,\n  /**\n   * The default value. Use when the component is not controlled.\n   */\n  defaultValue: PropTypes.any,\n  /**\n   * If `true`, the select is disabled.\n   */\n  disabled: PropTypes.bool,\n  /**\n   * If `true`, the selected item is displayed even if its value is empty.\n   */\n  displayEmpty: PropTypes.bool,\n  /**\n   * If `true`, the `select input` will indicate an error.\n   */\n  error: PropTypes.bool,\n  /**\n   * The icon that displays the arrow.\n   */\n  IconComponent: PropTypes.elementType.isRequired,\n  /**\n   * Imperative handle implementing `{ value: T, node: HTMLElement, focus(): void }`\n   * Equivalent to `ref`\n   */\n  inputRef: refType,\n  /**\n   * The ID of an element that acts as an additional label. The Select will\n   * be labelled by the additional label and the selected value.\n   */\n  labelId: PropTypes.string,\n  /**\n   * Props applied to the [`Menu`](/material-ui/api/menu/) element.\n   */\n  MenuProps: PropTypes.object,\n  /**\n   * If `true`, `value` must be an array and the menu will support multiple selections.\n   */\n  multiple: PropTypes.bool,\n  /**\n   * Name attribute of the `select` or hidden `input` element.\n   */\n  name: PropTypes.string,\n  /**\n   * @ignore\n   */\n  onBlur: PropTypes.func,\n  /**\n   * Callback fired when a menu item is selected.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value` (any).\n   * @param {object} [child] The react element that was selected.\n   */\n  onChange: PropTypes.func,\n  /**\n   * Callback fired when the component requests to be closed.\n   * Use in controlled mode (see open).\n   *\n   * @param {object} event The event source of the callback.\n   */\n  onClose: PropTypes.func,\n  /**\n   * @ignore\n   */\n  onFocus: PropTypes.func,\n  /**\n   * Callback fired when the component requests to be opened.\n   * Use in controlled mode (see open).\n   *\n   * @param {object} event The event source of the callback.\n   */\n  onOpen: PropTypes.func,\n  /**\n   * If `true`, the component is shown.\n   */\n  open: PropTypes.bool,\n  /**\n   * @ignore\n   */\n  readOnly: PropTypes.bool,\n  /**\n   * Render the selected value.\n   *\n   * @param {any} value The `value` provided to the component.\n   * @returns {ReactNode}\n   */\n  renderValue: PropTypes.func,\n  /**\n   * If `true`, the component is required.\n   */\n  required: PropTypes.bool,\n  /**\n   * Props applied to the clickable div element.\n   */\n  SelectDisplayProps: PropTypes.object,\n  /**\n   * @ignore\n   */\n  tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n  /**\n   * @ignore\n   */\n  type: PropTypes.any,\n  /**\n   * The input value.\n   */\n  value: PropTypes.any,\n  /**\n   * The variant to use.\n   */\n  variant: PropTypes.oneOf(['standard', 'outlined', 'filled'])\n} : void 0;\nexport default SelectInput;"],"names":["useUtilityClasses","React.forwardRef","React.useRef","React.useState","React.useCallback","React.useImperativeHandle","React.useEffect","React.Children","React.isValidElement","_formatMuiErrorMessage","React.cloneElement","_jsxs","React.Fragment","_jsx"],"mappings":"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","x_google_ignoreList":[0]}