{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"id\", \"mode\", \"prefixCls\", \"backfill\", \"fieldNames\", \"inputValue\", \"searchValue\", \"onSearch\", \"autoClearSearchValue\", \"onSelect\", \"onDeselect\", \"dropdownMatchSelectWidth\", \"filterOption\", \"filterSort\", \"optionFilterProp\", \"optionLabelProp\", \"options\", \"optionRender\", \"children\", \"defaultActiveFirstOption\", \"menuItemSelectedIcon\", \"virtual\", \"direction\", \"listHeight\", \"listItemHeight\", \"labelRender\", \"value\", \"defaultValue\", \"labelInValue\", \"onChange\", \"maxCount\"];\n/**\n * To match accessibility requirement, we always provide an input in the component.\n * Other element will not set `tabIndex` to avoid `onBlur` sequence problem.\n * For focused select, we set `aria-live=\"polite\"` to update the accessibility content.\n *\n * ref:\n * - keyboard: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#Keyboard_interactions\n *\n * New api:\n * - listHeight\n * - listItemHeight\n * - component\n *\n * Remove deprecated api:\n * - multiple\n * - tags\n * - combobox\n * - firstActiveValue\n * - dropdownMenuStyle\n * - openClassName (Not list in api)\n *\n * Update:\n * - `backfill` only support `combobox` mode\n * - `combobox` mode not support `labelInValue` since it's meaningless\n * - `getInputElement` only support `combobox` mode\n * - `onChange` return OptionData instead of ReactNode\n * - `filterOption` `onChange` `onSelect` accept OptionData instead of ReactNode\n * - `combobox` mode trigger `onChange` will get `undefined` if no `value` match in Option\n * - `combobox` mode not support `optionLabelProp`\n */\n\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport BaseSelect, { isMultiple } from \"./BaseSelect\";\nimport OptGroup from \"./OptGroup\";\nimport Option from \"./Option\";\nimport OptionList from \"./OptionList\";\nimport SelectContext from \"./SelectContext\";\nimport useCache from \"./hooks/useCache\";\nimport useFilterOptions from \"./hooks/useFilterOptions\";\nimport useId from \"./hooks/useId\";\nimport useOptions from \"./hooks/useOptions\";\nimport useRefFunc from \"./hooks/useRefFunc\";\nimport { hasValue, isComboNoValue, toArray } from \"./utils/commonUtil\";\nimport { fillFieldNames, flattenOptions, injectPropsWithOption } from \"./utils/valueUtil\";\nimport warningProps, { warningNullOptions } from \"./utils/warningPropsUtil\";\nvar OMIT_DOM_PROPS = ['inputValue'];\nfunction isRawValue(value) {\n  return !value || _typeof(value) !== 'object';\n}\nvar Select = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var id = props.id,\n    mode = props.mode,\n    _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-select' : _props$prefixCls,\n    backfill = props.backfill,\n    fieldNames = props.fieldNames,\n    inputValue = props.inputValue,\n    searchValue = props.searchValue,\n    onSearch = props.onSearch,\n    _props$autoClearSearc = props.autoClearSearchValue,\n    autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n    onSelect = props.onSelect,\n    onDeselect = props.onDeselect,\n    _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n    dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? true : _props$dropdownMatchS,\n    filterOption = props.filterOption,\n    filterSort = props.filterSort,\n    optionFilterProp = props.optionFilterProp,\n    optionLabelProp = props.optionLabelProp,\n    options = props.options,\n    optionRender = props.optionRender,\n    children = props.children,\n    defaultActiveFirstOption = props.defaultActiveFirstOption,\n    menuItemSelectedIcon = props.menuItemSelectedIcon,\n    virtual = props.virtual,\n    direction = props.direction,\n    _props$listHeight = props.listHeight,\n    listHeight = _props$listHeight === void 0 ? 200 : _props$listHeight,\n    _props$listItemHeight = props.listItemHeight,\n    listItemHeight = _props$listItemHeight === void 0 ? 20 : _props$listItemHeight,\n    labelRender = props.labelRender,\n    value = props.value,\n    defaultValue = props.defaultValue,\n    labelInValue = props.labelInValue,\n    onChange = props.onChange,\n    maxCount = props.maxCount,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var mergedId = useId(id);\n  var multiple = isMultiple(mode);\n  var childrenAsData = !!(!options && children);\n  var mergedFilterOption = React.useMemo(function () {\n    if (filterOption === undefined && mode === 'combobox') {\n      return false;\n    }\n    return filterOption;\n  }, [filterOption, mode]);\n\n  // ========================= FieldNames =========================\n  var mergedFieldNames = React.useMemo(function () {\n    return fillFieldNames(fieldNames, childrenAsData);\n  }, /* eslint-disable react-hooks/exhaustive-deps */\n  [\n  // We stringify fieldNames to avoid unnecessary re-renders.\n  JSON.stringify(fieldNames), childrenAsData]\n  /* eslint-enable react-hooks/exhaustive-deps */);\n\n  // =========================== Search ===========================\n  var _useMergedState = useMergedState('', {\n      value: searchValue !== undefined ? searchValue : inputValue,\n      postState: function postState(search) {\n        return search || '';\n      }\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    mergedSearchValue = _useMergedState2[0],\n    setSearchValue = _useMergedState2[1];\n\n  // =========================== Option ===========================\n  var parsedOptions = useOptions(options, children, mergedFieldNames, optionFilterProp, optionLabelProp);\n  var valueOptions = parsedOptions.valueOptions,\n    labelOptions = parsedOptions.labelOptions,\n    mergedOptions = parsedOptions.options;\n\n  // ========================= Wrap Value =========================\n  var convert2LabelValues = React.useCallback(function (draftValues) {\n    // Convert to array\n    var valueList = toArray(draftValues);\n\n    // Convert to labelInValue type\n    return valueList.map(function (val) {\n      var rawValue;\n      var rawLabel;\n      var rawKey;\n      var rawDisabled;\n      var rawTitle;\n\n      // Fill label & value\n      if (isRawValue(val)) {\n        rawValue = val;\n      } else {\n        var _val$value;\n        rawKey = val.key;\n        rawLabel = val.label;\n        rawValue = (_val$value = val.value) !== null && _val$value !== void 0 ? _val$value : rawKey;\n      }\n      var option = valueOptions.get(rawValue);\n      if (option) {\n        var _option$key;\n        // Fill missing props\n        if (rawLabel === undefined) rawLabel = option === null || option === void 0 ? void 0 : option[optionLabelProp || mergedFieldNames.label];\n        if (rawKey === undefined) rawKey = (_option$key = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key !== void 0 ? _option$key : rawValue;\n        rawDisabled = option === null || option === void 0 ? void 0 : option.disabled;\n        rawTitle = option === null || option === void 0 ? void 0 : option.title;\n\n        // Warning if label not same as provided\n        if (process.env.NODE_ENV !== 'production' && !optionLabelProp) {\n          var optionLabel = option === null || option === void 0 ? void 0 : option[mergedFieldNames.label];\n          if (optionLabel !== undefined && ! /*#__PURE__*/React.isValidElement(optionLabel) && ! /*#__PURE__*/React.isValidElement(rawLabel) && optionLabel !== rawLabel) {\n            warning(false, '`label` of `value` is not same as `label` in Select options.');\n          }\n        }\n      }\n      return {\n        label: rawLabel,\n        value: rawValue,\n        key: rawKey,\n        disabled: rawDisabled,\n        title: rawTitle\n      };\n    });\n  }, [mergedFieldNames, optionLabelProp, valueOptions]);\n\n  // =========================== Values ===========================\n  var _useMergedState3 = useMergedState(defaultValue, {\n      value: value\n    }),\n    _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n    internalValue = _useMergedState4[0],\n    setInternalValue = _useMergedState4[1];\n\n  // Merged value with LabelValueType\n  var rawLabeledValues = React.useMemo(function () {\n    var _values$;\n    var newInternalValue = multiple && internalValue === null ? [] : internalValue;\n    var values = convert2LabelValues(newInternalValue);\n\n    // combobox no need save value when it's no value (exclude value equal 0)\n    if (mode === 'combobox' && isComboNoValue((_values$ = values[0]) === null || _values$ === void 0 ? void 0 : _values$.value)) {\n      return [];\n    }\n    return values;\n  }, [internalValue, convert2LabelValues, mode, multiple]);\n\n  // Fill label with cache to avoid option remove\n  var _useCache = useCache(rawLabeledValues, valueOptions),\n    _useCache2 = _slicedToArray(_useCache, 2),\n    mergedValues = _useCache2[0],\n    getMixedOption = _useCache2[1];\n  var displayValues = React.useMemo(function () {\n    // `null` need show as placeholder instead\n    // https://github.com/ant-design/ant-design/issues/25057\n    if (!mode && mergedValues.length === 1) {\n      var firstValue = mergedValues[0];\n      if (firstValue.value === null && (firstValue.label === null || firstValue.label === undefined)) {\n        return [];\n      }\n    }\n    return mergedValues.map(function (item) {\n      var _ref;\n      return _objectSpread(_objectSpread({}, item), {}, {\n        label: (_ref = typeof labelRender === 'function' ? labelRender(item) : item.label) !== null && _ref !== void 0 ? _ref : item.value\n      });\n    });\n  }, [mode, mergedValues, labelRender]);\n\n  /** Convert `displayValues` to raw value type set */\n  var rawValues = React.useMemo(function () {\n    return new Set(mergedValues.map(function (val) {\n      return val.value;\n    }));\n  }, [mergedValues]);\n  React.useEffect(function () {\n    if (mode === 'combobox') {\n      var _mergedValues$;\n      var strValue = (_mergedValues$ = mergedValues[0]) === null || _mergedValues$ === void 0 ? void 0 : _mergedValues$.value;\n      setSearchValue(hasValue(strValue) ? String(strValue) : '');\n    }\n  }, [mergedValues]);\n\n  // ======================= Display Option =======================\n  // Create a placeholder item if not exist in `options`\n  var createTagOption = useRefFunc(function (val, label) {\n    var mergedLabel = label !== null && label !== void 0 ? label : val;\n    return _defineProperty(_defineProperty({}, mergedFieldNames.value, val), mergedFieldNames.label, mergedLabel);\n  });\n\n  // Fill tag as option if mode is `tags`\n  var filledTagOptions = React.useMemo(function () {\n    if (mode !== 'tags') {\n      return mergedOptions;\n    }\n\n    // >>> Tag mode\n    var cloneOptions = _toConsumableArray(mergedOptions);\n\n    // Check if value exist in options (include new patch item)\n    var existOptions = function existOptions(val) {\n      return valueOptions.has(val);\n    };\n\n    // Fill current value as option\n    _toConsumableArray(mergedValues).sort(function (a, b) {\n      return a.value < b.value ? -1 : 1;\n    }).forEach(function (item) {\n      var val = item.value;\n      if (!existOptions(val)) {\n        cloneOptions.push(createTagOption(val, item.label));\n      }\n    });\n    return cloneOptions;\n  }, [createTagOption, mergedOptions, valueOptions, mergedValues, mode]);\n  var filteredOptions = useFilterOptions(filledTagOptions, mergedFieldNames, mergedSearchValue, mergedFilterOption, optionFilterProp);\n\n  // Fill options with search value if needed\n  var filledSearchOptions = React.useMemo(function () {\n    if (mode !== 'tags' || !mergedSearchValue || filteredOptions.some(function (item) {\n      return item[optionFilterProp || 'value'] === mergedSearchValue;\n    })) {\n      return filteredOptions;\n    }\n    // ignore when search value equal select input value\n    if (filteredOptions.some(function (item) {\n      return item[mergedFieldNames.value] === mergedSearchValue;\n    })) {\n      return filteredOptions;\n    }\n    // Fill search value as option\n    return [createTagOption(mergedSearchValue)].concat(_toConsumableArray(filteredOptions));\n  }, [createTagOption, optionFilterProp, mode, filteredOptions, mergedSearchValue, mergedFieldNames]);\n  var orderedFilteredOptions = React.useMemo(function () {\n    if (!filterSort) {\n      return filledSearchOptions;\n    }\n    return _toConsumableArray(filledSearchOptions).sort(function (a, b) {\n      return filterSort(a, b);\n    });\n  }, [filledSearchOptions, filterSort]);\n  var displayOptions = React.useMemo(function () {\n    return flattenOptions(orderedFilteredOptions, {\n      fieldNames: mergedFieldNames,\n      childrenAsData: childrenAsData\n    });\n  }, [orderedFilteredOptions, mergedFieldNames, childrenAsData]);\n\n  // =========================== Change ===========================\n  var triggerChange = function triggerChange(values) {\n    var labeledValues = convert2LabelValues(values);\n    setInternalValue(labeledValues);\n    if (onChange && (\n    // Trigger event only when value changed\n    labeledValues.length !== mergedValues.length || labeledValues.some(function (newVal, index) {\n      var _mergedValues$index;\n      return ((_mergedValues$index = mergedValues[index]) === null || _mergedValues$index === void 0 ? void 0 : _mergedValues$index.value) !== (newVal === null || newVal === void 0 ? void 0 : newVal.value);\n    }))) {\n      var returnValues = labelInValue ? labeledValues : labeledValues.map(function (v) {\n        return v.value;\n      });\n      var returnOptions = labeledValues.map(function (v) {\n        return injectPropsWithOption(getMixedOption(v.value));\n      });\n      onChange(\n      // Value\n      multiple ? returnValues : returnValues[0],\n      // Option\n      multiple ? returnOptions : returnOptions[0]);\n    }\n  };\n\n  // ======================= Accessibility ========================\n  var _React$useState = React.useState(null),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    activeValue = _React$useState2[0],\n    setActiveValue = _React$useState2[1];\n  var _React$useState3 = React.useState(0),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    accessibilityIndex = _React$useState4[0],\n    setAccessibilityIndex = _React$useState4[1];\n  var mergedDefaultActiveFirstOption = defaultActiveFirstOption !== undefined ? defaultActiveFirstOption : mode !== 'combobox';\n  var onActiveValue = React.useCallback(function (active, index) {\n    var _ref3 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n      _ref3$source = _ref3.source,\n      source = _ref3$source === void 0 ? 'keyboard' : _ref3$source;\n    setAccessibilityIndex(index);\n    if (backfill && mode === 'combobox' && active !== null && source === 'keyboard') {\n      setActiveValue(String(active));\n    }\n  }, [backfill, mode]);\n\n  // ========================= OptionList =========================\n  var triggerSelect = function triggerSelect(val, selected, type) {\n    var getSelectEnt = function getSelectEnt() {\n      var _option$key2;\n      var option = getMixedOption(val);\n      return [labelInValue ? {\n        label: option === null || option === void 0 ? void 0 : option[mergedFieldNames.label],\n        value: val,\n        key: (_option$key2 = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key2 !== void 0 ? _option$key2 : val\n      } : val, injectPropsWithOption(option)];\n    };\n    if (selected && onSelect) {\n      var _getSelectEnt = getSelectEnt(),\n        _getSelectEnt2 = _slicedToArray(_getSelectEnt, 2),\n        wrappedValue = _getSelectEnt2[0],\n        _option = _getSelectEnt2[1];\n      onSelect(wrappedValue, _option);\n    } else if (!selected && onDeselect && type !== 'clear') {\n      var _getSelectEnt3 = getSelectEnt(),\n        _getSelectEnt4 = _slicedToArray(_getSelectEnt3, 2),\n        _wrappedValue = _getSelectEnt4[0],\n        _option2 = _getSelectEnt4[1];\n      onDeselect(_wrappedValue, _option2);\n    }\n  };\n\n  // Used for OptionList selection\n  var onInternalSelect = useRefFunc(function (val, info) {\n    var cloneValues;\n\n    // Single mode always trigger select only with option list\n    var mergedSelect = multiple ? info.selected : true;\n    if (mergedSelect) {\n      cloneValues = multiple ? [].concat(_toConsumableArray(mergedValues), [val]) : [val];\n    } else {\n      cloneValues = mergedValues.filter(function (v) {\n        return v.value !== val;\n      });\n    }\n    triggerChange(cloneValues);\n    triggerSelect(val, mergedSelect);\n\n    // Clean search value if single or configured\n    if (mode === 'combobox') {\n      // setSearchValue(String(val));\n      setActiveValue('');\n    } else if (!isMultiple || autoClearSearchValue) {\n      setSearchValue('');\n      setActiveValue('');\n    }\n  });\n\n  // ======================= Display Change =======================\n  // BaseSelect display values change\n  var onDisplayValuesChange = function onDisplayValuesChange(nextValues, info) {\n    triggerChange(nextValues);\n    var type = info.type,\n      values = info.values;\n    if (type === 'remove' || type === 'clear') {\n      values.forEach(function (item) {\n        triggerSelect(item.value, false, type);\n      });\n    }\n  };\n\n  // =========================== Search ===========================\n  var onInternalSearch = function onInternalSearch(searchText, info) {\n    setSearchValue(searchText);\n    setActiveValue(null);\n\n    // [Submit] Tag mode should flush input\n    if (info.source === 'submit') {\n      var formatted = (searchText || '').trim();\n      // prevent empty tags from appearing when you click the Enter button\n      if (formatted) {\n        var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), [formatted])));\n        triggerChange(newRawValues);\n        triggerSelect(formatted, true);\n        setSearchValue('');\n      }\n      return;\n    }\n    if (info.source !== 'blur') {\n      if (mode === 'combobox') {\n        triggerChange(searchText);\n      }\n      onSearch === null || onSearch === void 0 || onSearch(searchText);\n    }\n  };\n  var onInternalSearchSplit = function onInternalSearchSplit(words) {\n    var patchValues = words;\n    if (mode !== 'tags') {\n      patchValues = words.map(function (word) {\n        var opt = labelOptions.get(word);\n        return opt === null || opt === void 0 ? void 0 : opt.value;\n      }).filter(function (val) {\n        return val !== undefined;\n      });\n    }\n    var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), _toConsumableArray(patchValues))));\n    triggerChange(newRawValues);\n    newRawValues.forEach(function (newRawValue) {\n      triggerSelect(newRawValue, true);\n    });\n  };\n\n  // ========================== Context ===========================\n  var selectContext = React.useMemo(function () {\n    var realVirtual = virtual !== false && dropdownMatchSelectWidth !== false;\n    return _objectSpread(_objectSpread({}, parsedOptions), {}, {\n      flattenOptions: displayOptions,\n      onActiveValue: onActiveValue,\n      defaultActiveFirstOption: mergedDefaultActiveFirstOption,\n      onSelect: onInternalSelect,\n      menuItemSelectedIcon: menuItemSelectedIcon,\n      rawValues: rawValues,\n      fieldNames: mergedFieldNames,\n      virtual: realVirtual,\n      direction: direction,\n      listHeight: listHeight,\n      listItemHeight: listItemHeight,\n      childrenAsData: childrenAsData,\n      maxCount: maxCount,\n      optionRender: optionRender\n    });\n  }, [maxCount, parsedOptions, displayOptions, onActiveValue, mergedDefaultActiveFirstOption, onInternalSelect, menuItemSelectedIcon, rawValues, mergedFieldNames, virtual, dropdownMatchSelectWidth, direction, listHeight, listItemHeight, childrenAsData, optionRender]);\n\n  // ========================== Warning ===========================\n  if (process.env.NODE_ENV !== 'production') {\n    warningProps(props);\n    warningNullOptions(mergedOptions, mergedFieldNames);\n  }\n\n  // ==============================================================\n  // ==                          Render                          ==\n  // ==============================================================\n  return /*#__PURE__*/React.createElement(SelectContext.Provider, {\n    value: selectContext\n  }, /*#__PURE__*/React.createElement(BaseSelect, _extends({}, restProps, {\n    // >>> MISC\n    id: mergedId,\n    prefixCls: prefixCls,\n    ref: ref,\n    omitDomProps: OMIT_DOM_PROPS,\n    mode: mode\n    // >>> Values\n    ,\n\n    displayValues: displayValues,\n    onDisplayValuesChange: onDisplayValuesChange\n    // >>> Trigger\n    ,\n\n    direction: direction\n    // >>> Search\n    ,\n\n    searchValue: mergedSearchValue,\n    onSearch: onInternalSearch,\n    autoClearSearchValue: autoClearSearchValue,\n    onSearchSplit: onInternalSearchSplit,\n    dropdownMatchSelectWidth: dropdownMatchSelectWidth\n    // >>> OptionList\n    ,\n\n    OptionList: OptionList,\n    emptyOptions: !displayOptions.length\n    // >>> Accessibility\n    ,\n\n    activeValue: activeValue,\n    activeDescendantId: \"\".concat(mergedId, \"_list_\").concat(accessibilityIndex)\n  })));\n});\nif (process.env.NODE_ENV !== 'production') {\n  Select.displayName = 'Select';\n}\nvar TypedSelect = Select;\nTypedSelect.Option = Option;\nTypedSelect.OptGroup = OptGroup;\nexport default TypedSelect;","map":{"version":3,"names":["_extends","_toConsumableArray","_defineProperty","_objectSpread","_slicedToArray","_objectWithoutProperties","_typeof","_excluded","useMergedState","warning","React","BaseSelect","isMultiple","OptGroup","Option","OptionList","SelectContext","useCache","useFilterOptions","useId","useOptions","useRefFunc","hasValue","isComboNoValue","toArray","fillFieldNames","flattenOptions","injectPropsWithOption","warningProps","warningNullOptions","OMIT_DOM_PROPS","isRawValue","value","Select","forwardRef","props","ref","id","mode","_props$prefixCls","prefixCls","backfill","fieldNames","inputValue","searchValue","onSearch","_props$autoClearSearc","autoClearSearchValue","onSelect","onDeselect","_props$dropdownMatchS","dropdownMatchSelectWidth","filterOption","filterSort","optionFilterProp","optionLabelProp","options","optionRender","children","defaultActiveFirstOption","menuItemSelectedIcon","virtual","direction","_props$listHeight","listHeight","_props$listItemHeight","listItemHeight","labelRender","defaultValue","labelInValue","onChange","maxCount","restProps","mergedId","multiple","childrenAsData","mergedFilterOption","useMemo","undefined","mergedFieldNames","JSON","stringify","_useMergedState","postState","search","_useMergedState2","mergedSearchValue","setSearchValue","parsedOptions","valueOptions","labelOptions","mergedOptions","convert2LabelValues","useCallback","draftValues","valueList","map","val","rawValue","rawLabel","rawKey","rawDisabled","rawTitle","_val$value","key","label","option","get","_option$key","disabled","title","process","env","NODE_ENV","optionLabel","isValidElement","_useMergedState3","_useMergedState4","internalValue","setInternalValue","rawLabeledValues","_values$","newInternalValue","values","_useCache","_useCache2","mergedValues","getMixedOption","displayValues","length","firstValue","item","_ref","rawValues","Set","useEffect","_mergedValues$","strValue","String","createTagOption","mergedLabel","filledTagOptions","cloneOptions","existOptions","has","sort","a","b","forEach","push","filteredOptions","filledSearchOptions","some","concat","orderedFilteredOptions","displayOptions","triggerChange","labeledValues","newVal","index","_mergedValues$index","returnValues","v","returnOptions","_React$useState","useState","_React$useState2","activeValue","setActiveValue","_React$useState3","_React$useState4","accessibilityIndex","setAccessibilityIndex","mergedDefaultActiveFirstOption","onActiveValue","active","_ref3","arguments","_ref3$source","source","triggerSelect","selected","type","getSelectEnt","_option$key2","_getSelectEnt","_getSelectEnt2","wrappedValue","_option","_getSelectEnt3","_getSelectEnt4","_wrappedValue","_option2","onInternalSelect","info","cloneValues","mergedSelect","filter","onDisplayValuesChange","nextValues","onInternalSearch","searchText","formatted","trim","newRawValues","Array","from","onInternalSearchSplit","words","patchValues","word","opt","newRawValue","selectContext","realVirtual","createElement","Provider","omitDomProps","onSearchSplit","emptyOptions","activeDescendantId","displayName","TypedSelect"],"sources":["D:/Project/UC_Trains_Voice/react-demo/node_modules/rc-select/es/Select.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"id\", \"mode\", \"prefixCls\", \"backfill\", \"fieldNames\", \"inputValue\", \"searchValue\", \"onSearch\", \"autoClearSearchValue\", \"onSelect\", \"onDeselect\", \"dropdownMatchSelectWidth\", \"filterOption\", \"filterSort\", \"optionFilterProp\", \"optionLabelProp\", \"options\", \"optionRender\", \"children\", \"defaultActiveFirstOption\", \"menuItemSelectedIcon\", \"virtual\", \"direction\", \"listHeight\", \"listItemHeight\", \"labelRender\", \"value\", \"defaultValue\", \"labelInValue\", \"onChange\", \"maxCount\"];\n/**\n * To match accessibility requirement, we always provide an input in the component.\n * Other element will not set `tabIndex` to avoid `onBlur` sequence problem.\n * For focused select, we set `aria-live=\"polite\"` to update the accessibility content.\n *\n * ref:\n * - keyboard: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#Keyboard_interactions\n *\n * New api:\n * - listHeight\n * - listItemHeight\n * - component\n *\n * Remove deprecated api:\n * - multiple\n * - tags\n * - combobox\n * - firstActiveValue\n * - dropdownMenuStyle\n * - openClassName (Not list in api)\n *\n * Update:\n * - `backfill` only support `combobox` mode\n * - `combobox` mode not support `labelInValue` since it's meaningless\n * - `getInputElement` only support `combobox` mode\n * - `onChange` return OptionData instead of ReactNode\n * - `filterOption` `onChange` `onSelect` accept OptionData instead of ReactNode\n * - `combobox` mode trigger `onChange` will get `undefined` if no `value` match in Option\n * - `combobox` mode not support `optionLabelProp`\n */\n\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport BaseSelect, { isMultiple } from \"./BaseSelect\";\nimport OptGroup from \"./OptGroup\";\nimport Option from \"./Option\";\nimport OptionList from \"./OptionList\";\nimport SelectContext from \"./SelectContext\";\nimport useCache from \"./hooks/useCache\";\nimport useFilterOptions from \"./hooks/useFilterOptions\";\nimport useId from \"./hooks/useId\";\nimport useOptions from \"./hooks/useOptions\";\nimport useRefFunc from \"./hooks/useRefFunc\";\nimport { hasValue, isComboNoValue, toArray } from \"./utils/commonUtil\";\nimport { fillFieldNames, flattenOptions, injectPropsWithOption } from \"./utils/valueUtil\";\nimport warningProps, { warningNullOptions } from \"./utils/warningPropsUtil\";\nvar OMIT_DOM_PROPS = ['inputValue'];\nfunction isRawValue(value) {\n  return !value || _typeof(value) !== 'object';\n}\nvar Select = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var id = props.id,\n    mode = props.mode,\n    _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-select' : _props$prefixCls,\n    backfill = props.backfill,\n    fieldNames = props.fieldNames,\n    inputValue = props.inputValue,\n    searchValue = props.searchValue,\n    onSearch = props.onSearch,\n    _props$autoClearSearc = props.autoClearSearchValue,\n    autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n    onSelect = props.onSelect,\n    onDeselect = props.onDeselect,\n    _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n    dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? true : _props$dropdownMatchS,\n    filterOption = props.filterOption,\n    filterSort = props.filterSort,\n    optionFilterProp = props.optionFilterProp,\n    optionLabelProp = props.optionLabelProp,\n    options = props.options,\n    optionRender = props.optionRender,\n    children = props.children,\n    defaultActiveFirstOption = props.defaultActiveFirstOption,\n    menuItemSelectedIcon = props.menuItemSelectedIcon,\n    virtual = props.virtual,\n    direction = props.direction,\n    _props$listHeight = props.listHeight,\n    listHeight = _props$listHeight === void 0 ? 200 : _props$listHeight,\n    _props$listItemHeight = props.listItemHeight,\n    listItemHeight = _props$listItemHeight === void 0 ? 20 : _props$listItemHeight,\n    labelRender = props.labelRender,\n    value = props.value,\n    defaultValue = props.defaultValue,\n    labelInValue = props.labelInValue,\n    onChange = props.onChange,\n    maxCount = props.maxCount,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var mergedId = useId(id);\n  var multiple = isMultiple(mode);\n  var childrenAsData = !!(!options && children);\n  var mergedFilterOption = React.useMemo(function () {\n    if (filterOption === undefined && mode === 'combobox') {\n      return false;\n    }\n    return filterOption;\n  }, [filterOption, mode]);\n\n  // ========================= FieldNames =========================\n  var mergedFieldNames = React.useMemo(function () {\n    return fillFieldNames(fieldNames, childrenAsData);\n  }, /* eslint-disable react-hooks/exhaustive-deps */\n  [\n  // We stringify fieldNames to avoid unnecessary re-renders.\n  JSON.stringify(fieldNames), childrenAsData]\n  /* eslint-enable react-hooks/exhaustive-deps */);\n\n  // =========================== Search ===========================\n  var _useMergedState = useMergedState('', {\n      value: searchValue !== undefined ? searchValue : inputValue,\n      postState: function postState(search) {\n        return search || '';\n      }\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    mergedSearchValue = _useMergedState2[0],\n    setSearchValue = _useMergedState2[1];\n\n  // =========================== Option ===========================\n  var parsedOptions = useOptions(options, children, mergedFieldNames, optionFilterProp, optionLabelProp);\n  var valueOptions = parsedOptions.valueOptions,\n    labelOptions = parsedOptions.labelOptions,\n    mergedOptions = parsedOptions.options;\n\n  // ========================= Wrap Value =========================\n  var convert2LabelValues = React.useCallback(function (draftValues) {\n    // Convert to array\n    var valueList = toArray(draftValues);\n\n    // Convert to labelInValue type\n    return valueList.map(function (val) {\n      var rawValue;\n      var rawLabel;\n      var rawKey;\n      var rawDisabled;\n      var rawTitle;\n\n      // Fill label & value\n      if (isRawValue(val)) {\n        rawValue = val;\n      } else {\n        var _val$value;\n        rawKey = val.key;\n        rawLabel = val.label;\n        rawValue = (_val$value = val.value) !== null && _val$value !== void 0 ? _val$value : rawKey;\n      }\n      var option = valueOptions.get(rawValue);\n      if (option) {\n        var _option$key;\n        // Fill missing props\n        if (rawLabel === undefined) rawLabel = option === null || option === void 0 ? void 0 : option[optionLabelProp || mergedFieldNames.label];\n        if (rawKey === undefined) rawKey = (_option$key = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key !== void 0 ? _option$key : rawValue;\n        rawDisabled = option === null || option === void 0 ? void 0 : option.disabled;\n        rawTitle = option === null || option === void 0 ? void 0 : option.title;\n\n        // Warning if label not same as provided\n        if (process.env.NODE_ENV !== 'production' && !optionLabelProp) {\n          var optionLabel = option === null || option === void 0 ? void 0 : option[mergedFieldNames.label];\n          if (optionLabel !== undefined && ! /*#__PURE__*/React.isValidElement(optionLabel) && ! /*#__PURE__*/React.isValidElement(rawLabel) && optionLabel !== rawLabel) {\n            warning(false, '`label` of `value` is not same as `label` in Select options.');\n          }\n        }\n      }\n      return {\n        label: rawLabel,\n        value: rawValue,\n        key: rawKey,\n        disabled: rawDisabled,\n        title: rawTitle\n      };\n    });\n  }, [mergedFieldNames, optionLabelProp, valueOptions]);\n\n  // =========================== Values ===========================\n  var _useMergedState3 = useMergedState(defaultValue, {\n      value: value\n    }),\n    _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n    internalValue = _useMergedState4[0],\n    setInternalValue = _useMergedState4[1];\n\n  // Merged value with LabelValueType\n  var rawLabeledValues = React.useMemo(function () {\n    var _values$;\n    var newInternalValue = multiple && internalValue === null ? [] : internalValue;\n    var values = convert2LabelValues(newInternalValue);\n\n    // combobox no need save value when it's no value (exclude value equal 0)\n    if (mode === 'combobox' && isComboNoValue((_values$ = values[0]) === null || _values$ === void 0 ? void 0 : _values$.value)) {\n      return [];\n    }\n    return values;\n  }, [internalValue, convert2LabelValues, mode, multiple]);\n\n  // Fill label with cache to avoid option remove\n  var _useCache = useCache(rawLabeledValues, valueOptions),\n    _useCache2 = _slicedToArray(_useCache, 2),\n    mergedValues = _useCache2[0],\n    getMixedOption = _useCache2[1];\n  var displayValues = React.useMemo(function () {\n    // `null` need show as placeholder instead\n    // https://github.com/ant-design/ant-design/issues/25057\n    if (!mode && mergedValues.length === 1) {\n      var firstValue = mergedValues[0];\n      if (firstValue.value === null && (firstValue.label === null || firstValue.label === undefined)) {\n        return [];\n      }\n    }\n    return mergedValues.map(function (item) {\n      var _ref;\n      return _objectSpread(_objectSpread({}, item), {}, {\n        label: (_ref = typeof labelRender === 'function' ? labelRender(item) : item.label) !== null && _ref !== void 0 ? _ref : item.value\n      });\n    });\n  }, [mode, mergedValues, labelRender]);\n\n  /** Convert `displayValues` to raw value type set */\n  var rawValues = React.useMemo(function () {\n    return new Set(mergedValues.map(function (val) {\n      return val.value;\n    }));\n  }, [mergedValues]);\n  React.useEffect(function () {\n    if (mode === 'combobox') {\n      var _mergedValues$;\n      var strValue = (_mergedValues$ = mergedValues[0]) === null || _mergedValues$ === void 0 ? void 0 : _mergedValues$.value;\n      setSearchValue(hasValue(strValue) ? String(strValue) : '');\n    }\n  }, [mergedValues]);\n\n  // ======================= Display Option =======================\n  // Create a placeholder item if not exist in `options`\n  var createTagOption = useRefFunc(function (val, label) {\n    var mergedLabel = label !== null && label !== void 0 ? label : val;\n    return _defineProperty(_defineProperty({}, mergedFieldNames.value, val), mergedFieldNames.label, mergedLabel);\n  });\n\n  // Fill tag as option if mode is `tags`\n  var filledTagOptions = React.useMemo(function () {\n    if (mode !== 'tags') {\n      return mergedOptions;\n    }\n\n    // >>> Tag mode\n    var cloneOptions = _toConsumableArray(mergedOptions);\n\n    // Check if value exist in options (include new patch item)\n    var existOptions = function existOptions(val) {\n      return valueOptions.has(val);\n    };\n\n    // Fill current value as option\n    _toConsumableArray(mergedValues).sort(function (a, b) {\n      return a.value < b.value ? -1 : 1;\n    }).forEach(function (item) {\n      var val = item.value;\n      if (!existOptions(val)) {\n        cloneOptions.push(createTagOption(val, item.label));\n      }\n    });\n    return cloneOptions;\n  }, [createTagOption, mergedOptions, valueOptions, mergedValues, mode]);\n  var filteredOptions = useFilterOptions(filledTagOptions, mergedFieldNames, mergedSearchValue, mergedFilterOption, optionFilterProp);\n\n  // Fill options with search value if needed\n  var filledSearchOptions = React.useMemo(function () {\n    if (mode !== 'tags' || !mergedSearchValue || filteredOptions.some(function (item) {\n      return item[optionFilterProp || 'value'] === mergedSearchValue;\n    })) {\n      return filteredOptions;\n    }\n    // ignore when search value equal select input value\n    if (filteredOptions.some(function (item) {\n      return item[mergedFieldNames.value] === mergedSearchValue;\n    })) {\n      return filteredOptions;\n    }\n    // Fill search value as option\n    return [createTagOption(mergedSearchValue)].concat(_toConsumableArray(filteredOptions));\n  }, [createTagOption, optionFilterProp, mode, filteredOptions, mergedSearchValue, mergedFieldNames]);\n  var orderedFilteredOptions = React.useMemo(function () {\n    if (!filterSort) {\n      return filledSearchOptions;\n    }\n    return _toConsumableArray(filledSearchOptions).sort(function (a, b) {\n      return filterSort(a, b);\n    });\n  }, [filledSearchOptions, filterSort]);\n  var displayOptions = React.useMemo(function () {\n    return flattenOptions(orderedFilteredOptions, {\n      fieldNames: mergedFieldNames,\n      childrenAsData: childrenAsData\n    });\n  }, [orderedFilteredOptions, mergedFieldNames, childrenAsData]);\n\n  // =========================== Change ===========================\n  var triggerChange = function triggerChange(values) {\n    var labeledValues = convert2LabelValues(values);\n    setInternalValue(labeledValues);\n    if (onChange && (\n    // Trigger event only when value changed\n    labeledValues.length !== mergedValues.length || labeledValues.some(function (newVal, index) {\n      var _mergedValues$index;\n      return ((_mergedValues$index = mergedValues[index]) === null || _mergedValues$index === void 0 ? void 0 : _mergedValues$index.value) !== (newVal === null || newVal === void 0 ? void 0 : newVal.value);\n    }))) {\n      var returnValues = labelInValue ? labeledValues : labeledValues.map(function (v) {\n        return v.value;\n      });\n      var returnOptions = labeledValues.map(function (v) {\n        return injectPropsWithOption(getMixedOption(v.value));\n      });\n      onChange(\n      // Value\n      multiple ? returnValues : returnValues[0],\n      // Option\n      multiple ? returnOptions : returnOptions[0]);\n    }\n  };\n\n  // ======================= Accessibility ========================\n  var _React$useState = React.useState(null),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    activeValue = _React$useState2[0],\n    setActiveValue = _React$useState2[1];\n  var _React$useState3 = React.useState(0),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    accessibilityIndex = _React$useState4[0],\n    setAccessibilityIndex = _React$useState4[1];\n  var mergedDefaultActiveFirstOption = defaultActiveFirstOption !== undefined ? defaultActiveFirstOption : mode !== 'combobox';\n  var onActiveValue = React.useCallback(function (active, index) {\n    var _ref3 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n      _ref3$source = _ref3.source,\n      source = _ref3$source === void 0 ? 'keyboard' : _ref3$source;\n    setAccessibilityIndex(index);\n    if (backfill && mode === 'combobox' && active !== null && source === 'keyboard') {\n      setActiveValue(String(active));\n    }\n  }, [backfill, mode]);\n\n  // ========================= OptionList =========================\n  var triggerSelect = function triggerSelect(val, selected, type) {\n    var getSelectEnt = function getSelectEnt() {\n      var _option$key2;\n      var option = getMixedOption(val);\n      return [labelInValue ? {\n        label: option === null || option === void 0 ? void 0 : option[mergedFieldNames.label],\n        value: val,\n        key: (_option$key2 = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key2 !== void 0 ? _option$key2 : val\n      } : val, injectPropsWithOption(option)];\n    };\n    if (selected && onSelect) {\n      var _getSelectEnt = getSelectEnt(),\n        _getSelectEnt2 = _slicedToArray(_getSelectEnt, 2),\n        wrappedValue = _getSelectEnt2[0],\n        _option = _getSelectEnt2[1];\n      onSelect(wrappedValue, _option);\n    } else if (!selected && onDeselect && type !== 'clear') {\n      var _getSelectEnt3 = getSelectEnt(),\n        _getSelectEnt4 = _slicedToArray(_getSelectEnt3, 2),\n        _wrappedValue = _getSelectEnt4[0],\n        _option2 = _getSelectEnt4[1];\n      onDeselect(_wrappedValue, _option2);\n    }\n  };\n\n  // Used for OptionList selection\n  var onInternalSelect = useRefFunc(function (val, info) {\n    var cloneValues;\n\n    // Single mode always trigger select only with option list\n    var mergedSelect = multiple ? info.selected : true;\n    if (mergedSelect) {\n      cloneValues = multiple ? [].concat(_toConsumableArray(mergedValues), [val]) : [val];\n    } else {\n      cloneValues = mergedValues.filter(function (v) {\n        return v.value !== val;\n      });\n    }\n    triggerChange(cloneValues);\n    triggerSelect(val, mergedSelect);\n\n    // Clean search value if single or configured\n    if (mode === 'combobox') {\n      // setSearchValue(String(val));\n      setActiveValue('');\n    } else if (!isMultiple || autoClearSearchValue) {\n      setSearchValue('');\n      setActiveValue('');\n    }\n  });\n\n  // ======================= Display Change =======================\n  // BaseSelect display values change\n  var onDisplayValuesChange = function onDisplayValuesChange(nextValues, info) {\n    triggerChange(nextValues);\n    var type = info.type,\n      values = info.values;\n    if (type === 'remove' || type === 'clear') {\n      values.forEach(function (item) {\n        triggerSelect(item.value, false, type);\n      });\n    }\n  };\n\n  // =========================== Search ===========================\n  var onInternalSearch = function onInternalSearch(searchText, info) {\n    setSearchValue(searchText);\n    setActiveValue(null);\n\n    // [Submit] Tag mode should flush input\n    if (info.source === 'submit') {\n      var formatted = (searchText || '').trim();\n      // prevent empty tags from appearing when you click the Enter button\n      if (formatted) {\n        var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), [formatted])));\n        triggerChange(newRawValues);\n        triggerSelect(formatted, true);\n        setSearchValue('');\n      }\n      return;\n    }\n    if (info.source !== 'blur') {\n      if (mode === 'combobox') {\n        triggerChange(searchText);\n      }\n      onSearch === null || onSearch === void 0 || onSearch(searchText);\n    }\n  };\n  var onInternalSearchSplit = function onInternalSearchSplit(words) {\n    var patchValues = words;\n    if (mode !== 'tags') {\n      patchValues = words.map(function (word) {\n        var opt = labelOptions.get(word);\n        return opt === null || opt === void 0 ? void 0 : opt.value;\n      }).filter(function (val) {\n        return val !== undefined;\n      });\n    }\n    var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), _toConsumableArray(patchValues))));\n    triggerChange(newRawValues);\n    newRawValues.forEach(function (newRawValue) {\n      triggerSelect(newRawValue, true);\n    });\n  };\n\n  // ========================== Context ===========================\n  var selectContext = React.useMemo(function () {\n    var realVirtual = virtual !== false && dropdownMatchSelectWidth !== false;\n    return _objectSpread(_objectSpread({}, parsedOptions), {}, {\n      flattenOptions: displayOptions,\n      onActiveValue: onActiveValue,\n      defaultActiveFirstOption: mergedDefaultActiveFirstOption,\n      onSelect: onInternalSelect,\n      menuItemSelectedIcon: menuItemSelectedIcon,\n      rawValues: rawValues,\n      fieldNames: mergedFieldNames,\n      virtual: realVirtual,\n      direction: direction,\n      listHeight: listHeight,\n      listItemHeight: listItemHeight,\n      childrenAsData: childrenAsData,\n      maxCount: maxCount,\n      optionRender: optionRender\n    });\n  }, [maxCount, parsedOptions, displayOptions, onActiveValue, mergedDefaultActiveFirstOption, onInternalSelect, menuItemSelectedIcon, rawValues, mergedFieldNames, virtual, dropdownMatchSelectWidth, direction, listHeight, listItemHeight, childrenAsData, optionRender]);\n\n  // ========================== Warning ===========================\n  if (process.env.NODE_ENV !== 'production') {\n    warningProps(props);\n    warningNullOptions(mergedOptions, mergedFieldNames);\n  }\n\n  // ==============================================================\n  // ==                          Render                          ==\n  // ==============================================================\n  return /*#__PURE__*/React.createElement(SelectContext.Provider, {\n    value: selectContext\n  }, /*#__PURE__*/React.createElement(BaseSelect, _extends({}, restProps, {\n    // >>> MISC\n    id: mergedId,\n    prefixCls: prefixCls,\n    ref: ref,\n    omitDomProps: OMIT_DOM_PROPS,\n    mode: mode\n    // >>> Values\n    ,\n    displayValues: displayValues,\n    onDisplayValuesChange: onDisplayValuesChange\n    // >>> Trigger\n    ,\n    direction: direction\n    // >>> Search\n    ,\n    searchValue: mergedSearchValue,\n    onSearch: onInternalSearch,\n    autoClearSearchValue: autoClearSearchValue,\n    onSearchSplit: onInternalSearchSplit,\n    dropdownMatchSelectWidth: dropdownMatchSelectWidth\n    // >>> OptionList\n    ,\n    OptionList: OptionList,\n    emptyOptions: !displayOptions.length\n    // >>> Accessibility\n    ,\n    activeValue: activeValue,\n    activeDescendantId: \"\".concat(mergedId, \"_list_\").concat(accessibilityIndex)\n  })));\n});\nif (process.env.NODE_ENV !== 'production') {\n  Select.displayName = 'Select';\n}\nvar TypedSelect = Select;\nTypedSelect.Option = Option;\nTypedSelect.OptGroup = OptGroup;\nexport default TypedSelect;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}