{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\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\", \"prefixCls\", \"value\", \"defaultValue\", \"onChange\", \"onSelect\", \"onDeselect\", \"searchValue\", \"inputValue\", \"onSearch\", \"autoClearSearchValue\", \"filterTreeNode\", \"treeNodeFilterProp\", \"showCheckedStrategy\", \"treeNodeLabelProp\", \"multiple\", \"treeCheckable\", \"treeCheckStrictly\", \"labelInValue\", \"fieldNames\", \"treeDataSimpleMode\", \"treeData\", \"children\", \"loadData\", \"treeLoadedKeys\", \"onTreeLoad\", \"treeDefaultExpandAll\", \"treeExpandedKeys\", \"treeDefaultExpandedKeys\", \"onTreeExpand\", \"treeExpandAction\", \"virtual\", \"listHeight\", \"listItemHeight\", \"listItemScrollOffset\", \"onDropdownVisibleChange\", \"dropdownMatchSelectWidth\", \"treeLine\", \"treeIcon\", \"showTreeIcon\", \"switcherIcon\", \"treeMotion\", \"treeTitleRender\"];\nimport { BaseSelect } from 'rc-select';\nimport useId from \"rc-select/es/hooks/useId\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport useCache from \"./hooks/useCache\";\nimport useCheckedKeys from \"./hooks/useCheckedKeys\";\nimport useDataEntities from \"./hooks/useDataEntities\";\nimport useFilterTreeData from \"./hooks/useFilterTreeData\";\nimport useRefFunc from \"./hooks/useRefFunc\";\nimport useTreeData from \"./hooks/useTreeData\";\nimport LegacyContext from \"./LegacyContext\";\nimport OptionList from \"./OptionList\";\nimport TreeNode from \"./TreeNode\";\nimport TreeSelectContext from \"./TreeSelectContext\";\nimport { fillAdditionalInfo, fillLegacyProps } from \"./utils/legacyUtil\";\nimport { formatStrategyValues, SHOW_ALL, SHOW_CHILD, SHOW_PARENT } from \"./utils/strategyUtil\";\nimport { fillFieldNames, isNil, toArray } from \"./utils/valueUtil\";\nimport warningProps from \"./utils/warningPropsUtil\";\n\n/** @deprecated This is only used for legacy compatible. Not works on new code. */\n\nfunction isRawValue(value) {\n  return !value || _typeof(value) !== 'object';\n}\nvar TreeSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var id = props.id,\n    _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-tree-select' : _props$prefixCls,\n    value = props.value,\n    defaultValue = props.defaultValue,\n    onChange = props.onChange,\n    onSelect = props.onSelect,\n    onDeselect = props.onDeselect,\n    searchValue = props.searchValue,\n    inputValue = props.inputValue,\n    onSearch = props.onSearch,\n    _props$autoClearSearc = props.autoClearSearchValue,\n    autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n    filterTreeNode = props.filterTreeNode,\n    _props$treeNodeFilter = props.treeNodeFilterProp,\n    treeNodeFilterProp = _props$treeNodeFilter === void 0 ? 'value' : _props$treeNodeFilter,\n    showCheckedStrategy = props.showCheckedStrategy,\n    treeNodeLabelProp = props.treeNodeLabelProp,\n    multiple = props.multiple,\n    treeCheckable = props.treeCheckable,\n    treeCheckStrictly = props.treeCheckStrictly,\n    labelInValue = props.labelInValue,\n    fieldNames = props.fieldNames,\n    treeDataSimpleMode = props.treeDataSimpleMode,\n    treeData = props.treeData,\n    children = props.children,\n    loadData = props.loadData,\n    treeLoadedKeys = props.treeLoadedKeys,\n    onTreeLoad = props.onTreeLoad,\n    treeDefaultExpandAll = props.treeDefaultExpandAll,\n    treeExpandedKeys = props.treeExpandedKeys,\n    treeDefaultExpandedKeys = props.treeDefaultExpandedKeys,\n    onTreeExpand = props.onTreeExpand,\n    treeExpandAction = props.treeExpandAction,\n    virtual = props.virtual,\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    _props$listItemScroll = props.listItemScrollOffset,\n    listItemScrollOffset = _props$listItemScroll === void 0 ? 0 : _props$listItemScroll,\n    onDropdownVisibleChange = props.onDropdownVisibleChange,\n    _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n    dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? true : _props$dropdownMatchS,\n    treeLine = props.treeLine,\n    treeIcon = props.treeIcon,\n    showTreeIcon = props.showTreeIcon,\n    switcherIcon = props.switcherIcon,\n    treeMotion = props.treeMotion,\n    treeTitleRender = props.treeTitleRender,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var mergedId = useId(id);\n  var treeConduction = treeCheckable && !treeCheckStrictly;\n  var mergedCheckable = treeCheckable || treeCheckStrictly;\n  var mergedLabelInValue = treeCheckStrictly || labelInValue;\n  var mergedMultiple = mergedCheckable || multiple;\n  var _useMergedState = useMergedState(defaultValue, {\n      value: value\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    internalValue = _useMergedState2[0],\n    setInternalValue = _useMergedState2[1];\n\n  // `multiple` && `!treeCheckable` should be show all\n  var mergedShowCheckedStrategy = React.useMemo(function () {\n    if (!treeCheckable) {\n      return SHOW_ALL;\n    }\n    return showCheckedStrategy || SHOW_CHILD;\n  }, [showCheckedStrategy, treeCheckable]);\n\n  // ========================== Warning ===========================\n  if (process.env.NODE_ENV !== 'production') {\n    warningProps(props);\n  }\n\n  // ========================= FieldNames =========================\n  var mergedFieldNames = React.useMemo(function () {\n    return fillFieldNames(fieldNames);\n  }, /* eslint-disable react-hooks/exhaustive-deps */\n  [JSON.stringify(fieldNames)]\n  /* eslint-enable react-hooks/exhaustive-deps */);\n\n  // =========================== Search ===========================\n  var _useMergedState3 = useMergedState('', {\n      value: searchValue !== undefined ? searchValue : inputValue,\n      postState: function postState(search) {\n        return search || '';\n      }\n    }),\n    _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n    mergedSearchValue = _useMergedState4[0],\n    setSearchValue = _useMergedState4[1];\n  var onInternalSearch = function onInternalSearch(searchText) {\n    setSearchValue(searchText);\n    onSearch === null || onSearch === void 0 || onSearch(searchText);\n  };\n\n  // ============================ Data ============================\n  // `useTreeData` only do convert of `children` or `simpleMode`.\n  // Else will return origin `treeData` for perf consideration.\n  // Do not do anything to loop the data.\n  var mergedTreeData = useTreeData(treeData, children, treeDataSimpleMode);\n  var _useDataEntities = useDataEntities(mergedTreeData, mergedFieldNames),\n    keyEntities = _useDataEntities.keyEntities,\n    valueEntities = _useDataEntities.valueEntities;\n\n  /** Get `missingRawValues` which not exist in the tree yet */\n  var splitRawValues = React.useCallback(function (newRawValues) {\n    var missingRawValues = [];\n    var existRawValues = [];\n\n    // Keep missing value in the cache\n    newRawValues.forEach(function (val) {\n      if (valueEntities.has(val)) {\n        existRawValues.push(val);\n      } else {\n        missingRawValues.push(val);\n      }\n    });\n    return {\n      missingRawValues: missingRawValues,\n      existRawValues: existRawValues\n    };\n  }, [valueEntities]);\n\n  // Filtered Tree\n  var filteredTreeData = useFilterTreeData(mergedTreeData, mergedSearchValue, {\n    fieldNames: mergedFieldNames,\n    treeNodeFilterProp: treeNodeFilterProp,\n    filterTreeNode: filterTreeNode\n  });\n\n  // =========================== Label ============================\n  var getLabel = React.useCallback(function (item) {\n    if (item) {\n      if (treeNodeLabelProp) {\n        return item[treeNodeLabelProp];\n      }\n\n      // Loop from fieldNames\n      var titleList = mergedFieldNames._title;\n      for (var i = 0; i < titleList.length; i += 1) {\n        var title = item[titleList[i]];\n        if (title !== undefined) {\n          return title;\n        }\n      }\n    }\n  }, [mergedFieldNames, treeNodeLabelProp]);\n\n  // ========================= Wrap Value =========================\n  var toLabeledValues = React.useCallback(function (draftValues) {\n    var values = toArray(draftValues);\n    return values.map(function (val) {\n      if (isRawValue(val)) {\n        return {\n          value: val\n        };\n      }\n      return val;\n    });\n  }, []);\n  var convert2LabelValues = React.useCallback(function (draftValues) {\n    var values = toLabeledValues(draftValues);\n    return values.map(function (item) {\n      var rawLabel = item.label;\n      var rawValue = item.value,\n        rawHalfChecked = item.halfChecked;\n      var rawDisabled;\n      var entity = valueEntities.get(rawValue);\n\n      // Fill missing label & status\n      if (entity) {\n        var _rawLabel;\n        rawLabel = (_rawLabel = rawLabel) !== null && _rawLabel !== void 0 ? _rawLabel : getLabel(entity.node);\n        rawDisabled = entity.node.disabled;\n      } else if (rawLabel === undefined) {\n        // We try to find in current `labelInValue` value\n        var labelInValueItem = toLabeledValues(internalValue).find(function (labeledItem) {\n          return labeledItem.value === rawValue;\n        });\n        rawLabel = labelInValueItem.label;\n      }\n      return {\n        label: rawLabel,\n        value: rawValue,\n        halfChecked: rawHalfChecked,\n        disabled: rawDisabled\n      };\n    });\n  }, [valueEntities, getLabel, toLabeledValues, internalValue]);\n\n  // =========================== Values ===========================\n  var rawMixedLabeledValues = React.useMemo(function () {\n    return toLabeledValues(internalValue);\n  }, [toLabeledValues, internalValue]);\n\n  // Split value into full check and half check\n  var _React$useMemo = React.useMemo(function () {\n      var fullCheckValues = [];\n      var halfCheckValues = [];\n      rawMixedLabeledValues.forEach(function (item) {\n        if (item.halfChecked) {\n          halfCheckValues.push(item);\n        } else {\n          fullCheckValues.push(item);\n        }\n      });\n      return [fullCheckValues, halfCheckValues];\n    }, [rawMixedLabeledValues]),\n    _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n    rawLabeledValues = _React$useMemo2[0],\n    rawHalfLabeledValues = _React$useMemo2[1];\n\n  // const [mergedValues] = useCache(rawLabeledValues);\n  var rawValues = React.useMemo(function () {\n    return rawLabeledValues.map(function (item) {\n      return item.value;\n    });\n  }, [rawLabeledValues]);\n\n  // Convert value to key. Will fill missed keys for conduct check.\n  var _useCheckedKeys = useCheckedKeys(rawLabeledValues, rawHalfLabeledValues, treeConduction, keyEntities),\n    _useCheckedKeys2 = _slicedToArray(_useCheckedKeys, 2),\n    rawCheckedValues = _useCheckedKeys2[0],\n    rawHalfCheckedValues = _useCheckedKeys2[1];\n\n  // Convert rawCheckedKeys to check strategy related values\n  var displayValues = React.useMemo(function () {\n    // Collect keys which need to show\n    var displayKeys = formatStrategyValues(rawCheckedValues, mergedShowCheckedStrategy, keyEntities, mergedFieldNames);\n\n    // Convert to value and filled with label\n    var values = displayKeys.map(function (key) {\n      var _keyEntities$key$node, _keyEntities$key;\n      return (_keyEntities$key$node = (_keyEntities$key = keyEntities[key]) === null || _keyEntities$key === void 0 || (_keyEntities$key = _keyEntities$key.node) === null || _keyEntities$key === void 0 ? void 0 : _keyEntities$key[mergedFieldNames.value]) !== null && _keyEntities$key$node !== void 0 ? _keyEntities$key$node : key;\n    });\n\n    // Back fill with origin label\n    var labeledValues = values.map(function (val) {\n      var targetItem = rawLabeledValues.find(function (item) {\n        return item.value === val;\n      });\n      var label;\n      // Ensure that when labelInValue is true, if label is undefined, it remains undefined.\n      if (labelInValue && targetItem.label !== undefined) {\n        label = targetItem.label;\n      } else if (!labelInValue && treeTitleRender) {\n        label = treeTitleRender(targetItem);\n      }\n      return {\n        value: val,\n        label: label\n      };\n    });\n    var rawDisplayValues = convert2LabelValues(labeledValues);\n    var firstVal = rawDisplayValues[0];\n    if (!mergedMultiple && firstVal && isNil(firstVal.value) && isNil(firstVal.label)) {\n      return [];\n    }\n    return rawDisplayValues.map(function (item) {\n      var _item$label;\n      return _objectSpread(_objectSpread({}, item), {}, {\n        label: (_item$label = item.label) !== null && _item$label !== void 0 ? _item$label : item.value\n      });\n    });\n  }, [mergedFieldNames, mergedMultiple, rawCheckedValues, rawLabeledValues, convert2LabelValues, mergedShowCheckedStrategy, keyEntities]);\n  var _useCache = useCache(displayValues),\n    _useCache2 = _slicedToArray(_useCache, 1),\n    cachedDisplayValues = _useCache2[0];\n\n  // =========================== Change ===========================\n  var triggerChange = useRefFunc(function (newRawValues, extra, source) {\n    var labeledValues = convert2LabelValues(newRawValues);\n    setInternalValue(labeledValues);\n\n    // Clean up if needed\n    if (autoClearSearchValue) {\n      setSearchValue('');\n    }\n\n    // Generate rest parameters is costly, so only do it when necessary\n    if (onChange) {\n      var eventValues = newRawValues;\n      if (treeConduction) {\n        var formattedKeyList = formatStrategyValues(newRawValues, mergedShowCheckedStrategy, keyEntities, mergedFieldNames);\n        eventValues = formattedKeyList.map(function (key) {\n          var entity = valueEntities.get(key);\n          return entity ? entity.node[mergedFieldNames.value] : key;\n        });\n      }\n      var _ref = extra || {\n          triggerValue: undefined,\n          selected: undefined\n        },\n        triggerValue = _ref.triggerValue,\n        selected = _ref.selected;\n      var returnRawValues = eventValues;\n\n      // We need fill half check back\n      if (treeCheckStrictly) {\n        var halfValues = rawHalfLabeledValues.filter(function (item) {\n          return !eventValues.includes(item.value);\n        });\n        returnRawValues = [].concat(_toConsumableArray(returnRawValues), _toConsumableArray(halfValues));\n      }\n      var returnLabeledValues = convert2LabelValues(returnRawValues);\n      var additionalInfo = {\n        // [Legacy] Always return as array contains label & value\n        preValue: rawLabeledValues,\n        triggerValue: triggerValue\n      };\n\n      // [Legacy] Fill legacy data if user query.\n      // This is expansive that we only fill when user query\n      // https://github.com/react-component/tree-select/blob/fe33eb7c27830c9ac70cd1fdb1ebbe7bc679c16a/src/Select.jsx\n      var showPosition = true;\n      if (treeCheckStrictly || source === 'selection' && !selected) {\n        showPosition = false;\n      }\n      fillAdditionalInfo(additionalInfo, triggerValue, newRawValues, mergedTreeData, showPosition, mergedFieldNames);\n      if (mergedCheckable) {\n        additionalInfo.checked = selected;\n      } else {\n        additionalInfo.selected = selected;\n      }\n      var returnValues = mergedLabelInValue ? returnLabeledValues : returnLabeledValues.map(function (item) {\n        return item.value;\n      });\n      onChange(mergedMultiple ? returnValues : returnValues[0], mergedLabelInValue ? null : returnLabeledValues.map(function (item) {\n        return item.label;\n      }), additionalInfo);\n    }\n  });\n\n  // ========================== Options ===========================\n  /** Trigger by option list */\n  var onOptionSelect = React.useCallback(function (selectedKey, _ref2) {\n    var _node$mergedFieldName;\n    var selected = _ref2.selected,\n      source = _ref2.source;\n    var entity = keyEntities[selectedKey];\n    var node = entity === null || entity === void 0 ? void 0 : entity.node;\n    var selectedValue = (_node$mergedFieldName = node === null || node === void 0 ? void 0 : node[mergedFieldNames.value]) !== null && _node$mergedFieldName !== void 0 ? _node$mergedFieldName : selectedKey;\n\n    // Never be falsy but keep it safe\n    if (!mergedMultiple) {\n      // Single mode always set value\n      triggerChange([selectedValue], {\n        selected: true,\n        triggerValue: selectedValue\n      }, 'option');\n    } else {\n      var newRawValues = selected ? [].concat(_toConsumableArray(rawValues), [selectedValue]) : rawCheckedValues.filter(function (v) {\n        return v !== selectedValue;\n      });\n\n      // Add keys if tree conduction\n      if (treeConduction) {\n        // Should keep missing values\n        var _splitRawValues = splitRawValues(newRawValues),\n          missingRawValues = _splitRawValues.missingRawValues,\n          existRawValues = _splitRawValues.existRawValues;\n        var keyList = existRawValues.map(function (val) {\n          return valueEntities.get(val).key;\n        });\n\n        // Conduction by selected or not\n        var checkedKeys;\n        if (selected) {\n          var _conductCheck = conductCheck(keyList, true, keyEntities);\n          checkedKeys = _conductCheck.checkedKeys;\n        } else {\n          var _conductCheck2 = conductCheck(keyList, {\n            checked: false,\n            halfCheckedKeys: rawHalfCheckedValues\n          }, keyEntities);\n          checkedKeys = _conductCheck2.checkedKeys;\n        }\n\n        // Fill back of keys\n        newRawValues = [].concat(_toConsumableArray(missingRawValues), _toConsumableArray(checkedKeys.map(function (key) {\n          return keyEntities[key].node[mergedFieldNames.value];\n        })));\n      }\n      triggerChange(newRawValues, {\n        selected: selected,\n        triggerValue: selectedValue\n      }, source || 'option');\n    }\n\n    // Trigger select event\n    if (selected || !mergedMultiple) {\n      onSelect === null || onSelect === void 0 || onSelect(selectedValue, fillLegacyProps(node));\n    } else {\n      onDeselect === null || onDeselect === void 0 || onDeselect(selectedValue, fillLegacyProps(node));\n    }\n  }, [splitRawValues, valueEntities, keyEntities, mergedFieldNames, mergedMultiple, rawValues, triggerChange, treeConduction, onSelect, onDeselect, rawCheckedValues, rawHalfCheckedValues]);\n\n  // ========================== Dropdown ==========================\n  var onInternalDropdownVisibleChange = React.useCallback(function (open) {\n    if (onDropdownVisibleChange) {\n      var legacyParam = {};\n      Object.defineProperty(legacyParam, 'documentClickClose', {\n        get: function get() {\n          warning(false, 'Second param of `onDropdownVisibleChange` has been removed.');\n          return false;\n        }\n      });\n      onDropdownVisibleChange(open, legacyParam);\n    }\n  }, [onDropdownVisibleChange]);\n\n  // ====================== Display Change ========================\n  var onDisplayValuesChange = useRefFunc(function (newValues, info) {\n    var newRawValues = newValues.map(function (item) {\n      return item.value;\n    });\n    if (info.type === 'clear') {\n      triggerChange(newRawValues, {}, 'selection');\n      return;\n    }\n\n    // TreeSelect only have multiple mode which means display change only has remove\n    if (info.values.length) {\n      onOptionSelect(info.values[0].value, {\n        selected: false,\n        source: 'selection'\n      });\n    }\n  });\n\n  // ========================== Context ===========================\n  var treeSelectContext = React.useMemo(function () {\n    return {\n      virtual: virtual,\n      dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n      listHeight: listHeight,\n      listItemHeight: listItemHeight,\n      listItemScrollOffset: listItemScrollOffset,\n      treeData: filteredTreeData,\n      fieldNames: mergedFieldNames,\n      onSelect: onOptionSelect,\n      treeExpandAction: treeExpandAction,\n      treeTitleRender: treeTitleRender\n    };\n  }, [virtual, dropdownMatchSelectWidth, listHeight, listItemHeight, listItemScrollOffset, filteredTreeData, mergedFieldNames, onOptionSelect, treeExpandAction, treeTitleRender]);\n\n  // ======================= Legacy Context =======================\n  var legacyContext = React.useMemo(function () {\n    return {\n      checkable: mergedCheckable,\n      loadData: loadData,\n      treeLoadedKeys: treeLoadedKeys,\n      onTreeLoad: onTreeLoad,\n      checkedKeys: rawCheckedValues,\n      halfCheckedKeys: rawHalfCheckedValues,\n      treeDefaultExpandAll: treeDefaultExpandAll,\n      treeExpandedKeys: treeExpandedKeys,\n      treeDefaultExpandedKeys: treeDefaultExpandedKeys,\n      onTreeExpand: onTreeExpand,\n      treeIcon: treeIcon,\n      treeMotion: treeMotion,\n      showTreeIcon: showTreeIcon,\n      switcherIcon: switcherIcon,\n      treeLine: treeLine,\n      treeNodeFilterProp: treeNodeFilterProp,\n      keyEntities: keyEntities\n    };\n  }, [mergedCheckable, loadData, treeLoadedKeys, onTreeLoad, rawCheckedValues, rawHalfCheckedValues, treeDefaultExpandAll, treeExpandedKeys, treeDefaultExpandedKeys, onTreeExpand, treeIcon, treeMotion, showTreeIcon, switcherIcon, treeLine, treeNodeFilterProp, keyEntities]);\n\n  // =========================== Render ===========================\n  return /*#__PURE__*/React.createElement(TreeSelectContext.Provider, {\n    value: treeSelectContext\n  }, /*#__PURE__*/React.createElement(LegacyContext.Provider, {\n    value: legacyContext\n  }, /*#__PURE__*/React.createElement(BaseSelect, _extends({\n    ref: ref\n  }, restProps, {\n    // >>> MISC\n    id: mergedId,\n    prefixCls: prefixCls,\n    mode: mergedMultiple ? 'multiple' : undefined\n    // >>> Display Value\n    ,\n\n    displayValues: cachedDisplayValues,\n    onDisplayValuesChange: onDisplayValuesChange\n    // >>> Search\n    ,\n\n    searchValue: mergedSearchValue,\n    onSearch: onInternalSearch\n    // >>> Options\n    ,\n\n    OptionList: OptionList,\n    emptyOptions: !mergedTreeData.length,\n    onDropdownVisibleChange: onInternalDropdownVisibleChange,\n    dropdownMatchSelectWidth: dropdownMatchSelectWidth\n  }))));\n});\n\n// Assign name for Debug\nif (process.env.NODE_ENV !== 'production') {\n  TreeSelect.displayName = 'TreeSelect';\n}\nvar GenericTreeSelect = TreeSelect;\nGenericTreeSelect.TreeNode = TreeNode;\nGenericTreeSelect.SHOW_ALL = SHOW_ALL;\nGenericTreeSelect.SHOW_PARENT = SHOW_PARENT;\nGenericTreeSelect.SHOW_CHILD = SHOW_CHILD;\nexport default GenericTreeSelect;","map":{"version":3,"names":["_extends","_toConsumableArray","_objectSpread","_slicedToArray","_objectWithoutProperties","_typeof","_excluded","BaseSelect","useId","conductCheck","useMergedState","warning","React","useCache","useCheckedKeys","useDataEntities","useFilterTreeData","useRefFunc","useTreeData","LegacyContext","OptionList","TreeNode","TreeSelectContext","fillAdditionalInfo","fillLegacyProps","formatStrategyValues","SHOW_ALL","SHOW_CHILD","SHOW_PARENT","fillFieldNames","isNil","toArray","warningProps","isRawValue","value","TreeSelect","forwardRef","props","ref","id","_props$prefixCls","prefixCls","defaultValue","onChange","onSelect","onDeselect","searchValue","inputValue","onSearch","_props$autoClearSearc","autoClearSearchValue","filterTreeNode","_props$treeNodeFilter","treeNodeFilterProp","showCheckedStrategy","treeNodeLabelProp","multiple","treeCheckable","treeCheckStrictly","labelInValue","fieldNames","treeDataSimpleMode","treeData","children","loadData","treeLoadedKeys","onTreeLoad","treeDefaultExpandAll","treeExpandedKeys","treeDefaultExpandedKeys","onTreeExpand","treeExpandAction","virtual","_props$listHeight","listHeight","_props$listItemHeight","listItemHeight","_props$listItemScroll","listItemScrollOffset","onDropdownVisibleChange","_props$dropdownMatchS","dropdownMatchSelectWidth","treeLine","treeIcon","showTreeIcon","switcherIcon","treeMotion","treeTitleRender","restProps","mergedId","treeConduction","mergedCheckable","mergedLabelInValue","mergedMultiple","_useMergedState","_useMergedState2","internalValue","setInternalValue","mergedShowCheckedStrategy","useMemo","process","env","NODE_ENV","mergedFieldNames","JSON","stringify","_useMergedState3","undefined","postState","search","_useMergedState4","mergedSearchValue","setSearchValue","onInternalSearch","searchText","mergedTreeData","_useDataEntities","keyEntities","valueEntities","splitRawValues","useCallback","newRawValues","missingRawValues","existRawValues","forEach","val","has","push","filteredTreeData","getLabel","item","titleList","_title","i","length","title","toLabeledValues","draftValues","values","map","convert2LabelValues","rawLabel","label","rawValue","rawHalfChecked","halfChecked","rawDisabled","entity","get","_rawLabel","node","disabled","labelInValueItem","find","labeledItem","rawMixedLabeledValues","_React$useMemo","fullCheckValues","halfCheckValues","_React$useMemo2","rawLabeledValues","rawHalfLabeledValues","rawValues","_useCheckedKeys","_useCheckedKeys2","rawCheckedValues","rawHalfCheckedValues","displayValues","displayKeys","key","_keyEntities$key$node","_keyEntities$key","labeledValues","targetItem","rawDisplayValues","firstVal","_item$label","_useCache","_useCache2","cachedDisplayValues","triggerChange","extra","source","eventValues","formattedKeyList","_ref","triggerValue","selected","returnRawValues","halfValues","filter","includes","concat","returnLabeledValues","additionalInfo","preValue","showPosition","checked","returnValues","onOptionSelect","selectedKey","_ref2","_node$mergedFieldName","selectedValue","v","_splitRawValues","keyList","checkedKeys","_conductCheck","_conductCheck2","halfCheckedKeys","onInternalDropdownVisibleChange","open","legacyParam","Object","defineProperty","onDisplayValuesChange","newValues","info","type","treeSelectContext","legacyContext","checkable","createElement","Provider","mode","emptyOptions","displayName","GenericTreeSelect"],"sources":["/Users/shanyi/Desktop/Projects/UC_Trains_Voice/react-demo/node_modules/rc-tree-select/es/TreeSelect.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\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\", \"prefixCls\", \"value\", \"defaultValue\", \"onChange\", \"onSelect\", \"onDeselect\", \"searchValue\", \"inputValue\", \"onSearch\", \"autoClearSearchValue\", \"filterTreeNode\", \"treeNodeFilterProp\", \"showCheckedStrategy\", \"treeNodeLabelProp\", \"multiple\", \"treeCheckable\", \"treeCheckStrictly\", \"labelInValue\", \"fieldNames\", \"treeDataSimpleMode\", \"treeData\", \"children\", \"loadData\", \"treeLoadedKeys\", \"onTreeLoad\", \"treeDefaultExpandAll\", \"treeExpandedKeys\", \"treeDefaultExpandedKeys\", \"onTreeExpand\", \"treeExpandAction\", \"virtual\", \"listHeight\", \"listItemHeight\", \"listItemScrollOffset\", \"onDropdownVisibleChange\", \"dropdownMatchSelectWidth\", \"treeLine\", \"treeIcon\", \"showTreeIcon\", \"switcherIcon\", \"treeMotion\", \"treeTitleRender\"];\nimport { BaseSelect } from 'rc-select';\nimport useId from \"rc-select/es/hooks/useId\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport useCache from \"./hooks/useCache\";\nimport useCheckedKeys from \"./hooks/useCheckedKeys\";\nimport useDataEntities from \"./hooks/useDataEntities\";\nimport useFilterTreeData from \"./hooks/useFilterTreeData\";\nimport useRefFunc from \"./hooks/useRefFunc\";\nimport useTreeData from \"./hooks/useTreeData\";\nimport LegacyContext from \"./LegacyContext\";\nimport OptionList from \"./OptionList\";\nimport TreeNode from \"./TreeNode\";\nimport TreeSelectContext from \"./TreeSelectContext\";\nimport { fillAdditionalInfo, fillLegacyProps } from \"./utils/legacyUtil\";\nimport { formatStrategyValues, SHOW_ALL, SHOW_CHILD, SHOW_PARENT } from \"./utils/strategyUtil\";\nimport { fillFieldNames, isNil, toArray } from \"./utils/valueUtil\";\nimport warningProps from \"./utils/warningPropsUtil\";\n\n/** @deprecated This is only used for legacy compatible. Not works on new code. */\n\nfunction isRawValue(value) {\n  return !value || _typeof(value) !== 'object';\n}\nvar TreeSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var id = props.id,\n    _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-tree-select' : _props$prefixCls,\n    value = props.value,\n    defaultValue = props.defaultValue,\n    onChange = props.onChange,\n    onSelect = props.onSelect,\n    onDeselect = props.onDeselect,\n    searchValue = props.searchValue,\n    inputValue = props.inputValue,\n    onSearch = props.onSearch,\n    _props$autoClearSearc = props.autoClearSearchValue,\n    autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n    filterTreeNode = props.filterTreeNode,\n    _props$treeNodeFilter = props.treeNodeFilterProp,\n    treeNodeFilterProp = _props$treeNodeFilter === void 0 ? 'value' : _props$treeNodeFilter,\n    showCheckedStrategy = props.showCheckedStrategy,\n    treeNodeLabelProp = props.treeNodeLabelProp,\n    multiple = props.multiple,\n    treeCheckable = props.treeCheckable,\n    treeCheckStrictly = props.treeCheckStrictly,\n    labelInValue = props.labelInValue,\n    fieldNames = props.fieldNames,\n    treeDataSimpleMode = props.treeDataSimpleMode,\n    treeData = props.treeData,\n    children = props.children,\n    loadData = props.loadData,\n    treeLoadedKeys = props.treeLoadedKeys,\n    onTreeLoad = props.onTreeLoad,\n    treeDefaultExpandAll = props.treeDefaultExpandAll,\n    treeExpandedKeys = props.treeExpandedKeys,\n    treeDefaultExpandedKeys = props.treeDefaultExpandedKeys,\n    onTreeExpand = props.onTreeExpand,\n    treeExpandAction = props.treeExpandAction,\n    virtual = props.virtual,\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    _props$listItemScroll = props.listItemScrollOffset,\n    listItemScrollOffset = _props$listItemScroll === void 0 ? 0 : _props$listItemScroll,\n    onDropdownVisibleChange = props.onDropdownVisibleChange,\n    _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n    dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? true : _props$dropdownMatchS,\n    treeLine = props.treeLine,\n    treeIcon = props.treeIcon,\n    showTreeIcon = props.showTreeIcon,\n    switcherIcon = props.switcherIcon,\n    treeMotion = props.treeMotion,\n    treeTitleRender = props.treeTitleRender,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var mergedId = useId(id);\n  var treeConduction = treeCheckable && !treeCheckStrictly;\n  var mergedCheckable = treeCheckable || treeCheckStrictly;\n  var mergedLabelInValue = treeCheckStrictly || labelInValue;\n  var mergedMultiple = mergedCheckable || multiple;\n  var _useMergedState = useMergedState(defaultValue, {\n      value: value\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    internalValue = _useMergedState2[0],\n    setInternalValue = _useMergedState2[1];\n\n  // `multiple` && `!treeCheckable` should be show all\n  var mergedShowCheckedStrategy = React.useMemo(function () {\n    if (!treeCheckable) {\n      return SHOW_ALL;\n    }\n    return showCheckedStrategy || SHOW_CHILD;\n  }, [showCheckedStrategy, treeCheckable]);\n\n  // ========================== Warning ===========================\n  if (process.env.NODE_ENV !== 'production') {\n    warningProps(props);\n  }\n\n  // ========================= FieldNames =========================\n  var mergedFieldNames = React.useMemo(function () {\n    return fillFieldNames(fieldNames);\n  }, /* eslint-disable react-hooks/exhaustive-deps */\n  [JSON.stringify(fieldNames)]\n  /* eslint-enable react-hooks/exhaustive-deps */);\n\n  // =========================== Search ===========================\n  var _useMergedState3 = useMergedState('', {\n      value: searchValue !== undefined ? searchValue : inputValue,\n      postState: function postState(search) {\n        return search || '';\n      }\n    }),\n    _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n    mergedSearchValue = _useMergedState4[0],\n    setSearchValue = _useMergedState4[1];\n  var onInternalSearch = function onInternalSearch(searchText) {\n    setSearchValue(searchText);\n    onSearch === null || onSearch === void 0 || onSearch(searchText);\n  };\n\n  // ============================ Data ============================\n  // `useTreeData` only do convert of `children` or `simpleMode`.\n  // Else will return origin `treeData` for perf consideration.\n  // Do not do anything to loop the data.\n  var mergedTreeData = useTreeData(treeData, children, treeDataSimpleMode);\n  var _useDataEntities = useDataEntities(mergedTreeData, mergedFieldNames),\n    keyEntities = _useDataEntities.keyEntities,\n    valueEntities = _useDataEntities.valueEntities;\n\n  /** Get `missingRawValues` which not exist in the tree yet */\n  var splitRawValues = React.useCallback(function (newRawValues) {\n    var missingRawValues = [];\n    var existRawValues = [];\n\n    // Keep missing value in the cache\n    newRawValues.forEach(function (val) {\n      if (valueEntities.has(val)) {\n        existRawValues.push(val);\n      } else {\n        missingRawValues.push(val);\n      }\n    });\n    return {\n      missingRawValues: missingRawValues,\n      existRawValues: existRawValues\n    };\n  }, [valueEntities]);\n\n  // Filtered Tree\n  var filteredTreeData = useFilterTreeData(mergedTreeData, mergedSearchValue, {\n    fieldNames: mergedFieldNames,\n    treeNodeFilterProp: treeNodeFilterProp,\n    filterTreeNode: filterTreeNode\n  });\n\n  // =========================== Label ============================\n  var getLabel = React.useCallback(function (item) {\n    if (item) {\n      if (treeNodeLabelProp) {\n        return item[treeNodeLabelProp];\n      }\n\n      // Loop from fieldNames\n      var titleList = mergedFieldNames._title;\n      for (var i = 0; i < titleList.length; i += 1) {\n        var title = item[titleList[i]];\n        if (title !== undefined) {\n          return title;\n        }\n      }\n    }\n  }, [mergedFieldNames, treeNodeLabelProp]);\n\n  // ========================= Wrap Value =========================\n  var toLabeledValues = React.useCallback(function (draftValues) {\n    var values = toArray(draftValues);\n    return values.map(function (val) {\n      if (isRawValue(val)) {\n        return {\n          value: val\n        };\n      }\n      return val;\n    });\n  }, []);\n  var convert2LabelValues = React.useCallback(function (draftValues) {\n    var values = toLabeledValues(draftValues);\n    return values.map(function (item) {\n      var rawLabel = item.label;\n      var rawValue = item.value,\n        rawHalfChecked = item.halfChecked;\n      var rawDisabled;\n      var entity = valueEntities.get(rawValue);\n\n      // Fill missing label & status\n      if (entity) {\n        var _rawLabel;\n        rawLabel = (_rawLabel = rawLabel) !== null && _rawLabel !== void 0 ? _rawLabel : getLabel(entity.node);\n        rawDisabled = entity.node.disabled;\n      } else if (rawLabel === undefined) {\n        // We try to find in current `labelInValue` value\n        var labelInValueItem = toLabeledValues(internalValue).find(function (labeledItem) {\n          return labeledItem.value === rawValue;\n        });\n        rawLabel = labelInValueItem.label;\n      }\n      return {\n        label: rawLabel,\n        value: rawValue,\n        halfChecked: rawHalfChecked,\n        disabled: rawDisabled\n      };\n    });\n  }, [valueEntities, getLabel, toLabeledValues, internalValue]);\n\n  // =========================== Values ===========================\n  var rawMixedLabeledValues = React.useMemo(function () {\n    return toLabeledValues(internalValue);\n  }, [toLabeledValues, internalValue]);\n\n  // Split value into full check and half check\n  var _React$useMemo = React.useMemo(function () {\n      var fullCheckValues = [];\n      var halfCheckValues = [];\n      rawMixedLabeledValues.forEach(function (item) {\n        if (item.halfChecked) {\n          halfCheckValues.push(item);\n        } else {\n          fullCheckValues.push(item);\n        }\n      });\n      return [fullCheckValues, halfCheckValues];\n    }, [rawMixedLabeledValues]),\n    _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n    rawLabeledValues = _React$useMemo2[0],\n    rawHalfLabeledValues = _React$useMemo2[1];\n\n  // const [mergedValues] = useCache(rawLabeledValues);\n  var rawValues = React.useMemo(function () {\n    return rawLabeledValues.map(function (item) {\n      return item.value;\n    });\n  }, [rawLabeledValues]);\n\n  // Convert value to key. Will fill missed keys for conduct check.\n  var _useCheckedKeys = useCheckedKeys(rawLabeledValues, rawHalfLabeledValues, treeConduction, keyEntities),\n    _useCheckedKeys2 = _slicedToArray(_useCheckedKeys, 2),\n    rawCheckedValues = _useCheckedKeys2[0],\n    rawHalfCheckedValues = _useCheckedKeys2[1];\n\n  // Convert rawCheckedKeys to check strategy related values\n  var displayValues = React.useMemo(function () {\n    // Collect keys which need to show\n    var displayKeys = formatStrategyValues(rawCheckedValues, mergedShowCheckedStrategy, keyEntities, mergedFieldNames);\n\n    // Convert to value and filled with label\n    var values = displayKeys.map(function (key) {\n      var _keyEntities$key$node, _keyEntities$key;\n      return (_keyEntities$key$node = (_keyEntities$key = keyEntities[key]) === null || _keyEntities$key === void 0 || (_keyEntities$key = _keyEntities$key.node) === null || _keyEntities$key === void 0 ? void 0 : _keyEntities$key[mergedFieldNames.value]) !== null && _keyEntities$key$node !== void 0 ? _keyEntities$key$node : key;\n    });\n\n    // Back fill with origin label\n    var labeledValues = values.map(function (val) {\n      var targetItem = rawLabeledValues.find(function (item) {\n        return item.value === val;\n      });\n      var label;\n      // Ensure that when labelInValue is true, if label is undefined, it remains undefined.\n      if (labelInValue && targetItem.label !== undefined) {\n        label = targetItem.label;\n      } else if (!labelInValue && treeTitleRender) {\n        label = treeTitleRender(targetItem);\n      }\n      return {\n        value: val,\n        label: label\n      };\n    });\n    var rawDisplayValues = convert2LabelValues(labeledValues);\n    var firstVal = rawDisplayValues[0];\n    if (!mergedMultiple && firstVal && isNil(firstVal.value) && isNil(firstVal.label)) {\n      return [];\n    }\n    return rawDisplayValues.map(function (item) {\n      var _item$label;\n      return _objectSpread(_objectSpread({}, item), {}, {\n        label: (_item$label = item.label) !== null && _item$label !== void 0 ? _item$label : item.value\n      });\n    });\n  }, [mergedFieldNames, mergedMultiple, rawCheckedValues, rawLabeledValues, convert2LabelValues, mergedShowCheckedStrategy, keyEntities]);\n  var _useCache = useCache(displayValues),\n    _useCache2 = _slicedToArray(_useCache, 1),\n    cachedDisplayValues = _useCache2[0];\n\n  // =========================== Change ===========================\n  var triggerChange = useRefFunc(function (newRawValues, extra, source) {\n    var labeledValues = convert2LabelValues(newRawValues);\n    setInternalValue(labeledValues);\n\n    // Clean up if needed\n    if (autoClearSearchValue) {\n      setSearchValue('');\n    }\n\n    // Generate rest parameters is costly, so only do it when necessary\n    if (onChange) {\n      var eventValues = newRawValues;\n      if (treeConduction) {\n        var formattedKeyList = formatStrategyValues(newRawValues, mergedShowCheckedStrategy, keyEntities, mergedFieldNames);\n        eventValues = formattedKeyList.map(function (key) {\n          var entity = valueEntities.get(key);\n          return entity ? entity.node[mergedFieldNames.value] : key;\n        });\n      }\n      var _ref = extra || {\n          triggerValue: undefined,\n          selected: undefined\n        },\n        triggerValue = _ref.triggerValue,\n        selected = _ref.selected;\n      var returnRawValues = eventValues;\n\n      // We need fill half check back\n      if (treeCheckStrictly) {\n        var halfValues = rawHalfLabeledValues.filter(function (item) {\n          return !eventValues.includes(item.value);\n        });\n        returnRawValues = [].concat(_toConsumableArray(returnRawValues), _toConsumableArray(halfValues));\n      }\n      var returnLabeledValues = convert2LabelValues(returnRawValues);\n      var additionalInfo = {\n        // [Legacy] Always return as array contains label & value\n        preValue: rawLabeledValues,\n        triggerValue: triggerValue\n      };\n\n      // [Legacy] Fill legacy data if user query.\n      // This is expansive that we only fill when user query\n      // https://github.com/react-component/tree-select/blob/fe33eb7c27830c9ac70cd1fdb1ebbe7bc679c16a/src/Select.jsx\n      var showPosition = true;\n      if (treeCheckStrictly || source === 'selection' && !selected) {\n        showPosition = false;\n      }\n      fillAdditionalInfo(additionalInfo, triggerValue, newRawValues, mergedTreeData, showPosition, mergedFieldNames);\n      if (mergedCheckable) {\n        additionalInfo.checked = selected;\n      } else {\n        additionalInfo.selected = selected;\n      }\n      var returnValues = mergedLabelInValue ? returnLabeledValues : returnLabeledValues.map(function (item) {\n        return item.value;\n      });\n      onChange(mergedMultiple ? returnValues : returnValues[0], mergedLabelInValue ? null : returnLabeledValues.map(function (item) {\n        return item.label;\n      }), additionalInfo);\n    }\n  });\n\n  // ========================== Options ===========================\n  /** Trigger by option list */\n  var onOptionSelect = React.useCallback(function (selectedKey, _ref2) {\n    var _node$mergedFieldName;\n    var selected = _ref2.selected,\n      source = _ref2.source;\n    var entity = keyEntities[selectedKey];\n    var node = entity === null || entity === void 0 ? void 0 : entity.node;\n    var selectedValue = (_node$mergedFieldName = node === null || node === void 0 ? void 0 : node[mergedFieldNames.value]) !== null && _node$mergedFieldName !== void 0 ? _node$mergedFieldName : selectedKey;\n\n    // Never be falsy but keep it safe\n    if (!mergedMultiple) {\n      // Single mode always set value\n      triggerChange([selectedValue], {\n        selected: true,\n        triggerValue: selectedValue\n      }, 'option');\n    } else {\n      var newRawValues = selected ? [].concat(_toConsumableArray(rawValues), [selectedValue]) : rawCheckedValues.filter(function (v) {\n        return v !== selectedValue;\n      });\n\n      // Add keys if tree conduction\n      if (treeConduction) {\n        // Should keep missing values\n        var _splitRawValues = splitRawValues(newRawValues),\n          missingRawValues = _splitRawValues.missingRawValues,\n          existRawValues = _splitRawValues.existRawValues;\n        var keyList = existRawValues.map(function (val) {\n          return valueEntities.get(val).key;\n        });\n\n        // Conduction by selected or not\n        var checkedKeys;\n        if (selected) {\n          var _conductCheck = conductCheck(keyList, true, keyEntities);\n          checkedKeys = _conductCheck.checkedKeys;\n        } else {\n          var _conductCheck2 = conductCheck(keyList, {\n            checked: false,\n            halfCheckedKeys: rawHalfCheckedValues\n          }, keyEntities);\n          checkedKeys = _conductCheck2.checkedKeys;\n        }\n\n        // Fill back of keys\n        newRawValues = [].concat(_toConsumableArray(missingRawValues), _toConsumableArray(checkedKeys.map(function (key) {\n          return keyEntities[key].node[mergedFieldNames.value];\n        })));\n      }\n      triggerChange(newRawValues, {\n        selected: selected,\n        triggerValue: selectedValue\n      }, source || 'option');\n    }\n\n    // Trigger select event\n    if (selected || !mergedMultiple) {\n      onSelect === null || onSelect === void 0 || onSelect(selectedValue, fillLegacyProps(node));\n    } else {\n      onDeselect === null || onDeselect === void 0 || onDeselect(selectedValue, fillLegacyProps(node));\n    }\n  }, [splitRawValues, valueEntities, keyEntities, mergedFieldNames, mergedMultiple, rawValues, triggerChange, treeConduction, onSelect, onDeselect, rawCheckedValues, rawHalfCheckedValues]);\n\n  // ========================== Dropdown ==========================\n  var onInternalDropdownVisibleChange = React.useCallback(function (open) {\n    if (onDropdownVisibleChange) {\n      var legacyParam = {};\n      Object.defineProperty(legacyParam, 'documentClickClose', {\n        get: function get() {\n          warning(false, 'Second param of `onDropdownVisibleChange` has been removed.');\n          return false;\n        }\n      });\n      onDropdownVisibleChange(open, legacyParam);\n    }\n  }, [onDropdownVisibleChange]);\n\n  // ====================== Display Change ========================\n  var onDisplayValuesChange = useRefFunc(function (newValues, info) {\n    var newRawValues = newValues.map(function (item) {\n      return item.value;\n    });\n    if (info.type === 'clear') {\n      triggerChange(newRawValues, {}, 'selection');\n      return;\n    }\n\n    // TreeSelect only have multiple mode which means display change only has remove\n    if (info.values.length) {\n      onOptionSelect(info.values[0].value, {\n        selected: false,\n        source: 'selection'\n      });\n    }\n  });\n\n  // ========================== Context ===========================\n  var treeSelectContext = React.useMemo(function () {\n    return {\n      virtual: virtual,\n      dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n      listHeight: listHeight,\n      listItemHeight: listItemHeight,\n      listItemScrollOffset: listItemScrollOffset,\n      treeData: filteredTreeData,\n      fieldNames: mergedFieldNames,\n      onSelect: onOptionSelect,\n      treeExpandAction: treeExpandAction,\n      treeTitleRender: treeTitleRender\n    };\n  }, [virtual, dropdownMatchSelectWidth, listHeight, listItemHeight, listItemScrollOffset, filteredTreeData, mergedFieldNames, onOptionSelect, treeExpandAction, treeTitleRender]);\n\n  // ======================= Legacy Context =======================\n  var legacyContext = React.useMemo(function () {\n    return {\n      checkable: mergedCheckable,\n      loadData: loadData,\n      treeLoadedKeys: treeLoadedKeys,\n      onTreeLoad: onTreeLoad,\n      checkedKeys: rawCheckedValues,\n      halfCheckedKeys: rawHalfCheckedValues,\n      treeDefaultExpandAll: treeDefaultExpandAll,\n      treeExpandedKeys: treeExpandedKeys,\n      treeDefaultExpandedKeys: treeDefaultExpandedKeys,\n      onTreeExpand: onTreeExpand,\n      treeIcon: treeIcon,\n      treeMotion: treeMotion,\n      showTreeIcon: showTreeIcon,\n      switcherIcon: switcherIcon,\n      treeLine: treeLine,\n      treeNodeFilterProp: treeNodeFilterProp,\n      keyEntities: keyEntities\n    };\n  }, [mergedCheckable, loadData, treeLoadedKeys, onTreeLoad, rawCheckedValues, rawHalfCheckedValues, treeDefaultExpandAll, treeExpandedKeys, treeDefaultExpandedKeys, onTreeExpand, treeIcon, treeMotion, showTreeIcon, switcherIcon, treeLine, treeNodeFilterProp, keyEntities]);\n\n  // =========================== Render ===========================\n  return /*#__PURE__*/React.createElement(TreeSelectContext.Provider, {\n    value: treeSelectContext\n  }, /*#__PURE__*/React.createElement(LegacyContext.Provider, {\n    value: legacyContext\n  }, /*#__PURE__*/React.createElement(BaseSelect, _extends({\n    ref: ref\n  }, restProps, {\n    // >>> MISC\n    id: mergedId,\n    prefixCls: prefixCls,\n    mode: mergedMultiple ? 'multiple' : undefined\n    // >>> Display Value\n    ,\n    displayValues: cachedDisplayValues,\n    onDisplayValuesChange: onDisplayValuesChange\n    // >>> Search\n    ,\n    searchValue: mergedSearchValue,\n    onSearch: onInternalSearch\n    // >>> Options\n    ,\n    OptionList: OptionList,\n    emptyOptions: !mergedTreeData.length,\n    onDropdownVisibleChange: onInternalDropdownVisibleChange,\n    dropdownMatchSelectWidth: dropdownMatchSelectWidth\n  }))));\n});\n\n// Assign name for Debug\nif (process.env.NODE_ENV !== 'production') {\n  TreeSelect.displayName = 'TreeSelect';\n}\nvar GenericTreeSelect = TreeSelect;\nGenericTreeSelect.TreeNode = TreeNode;\nGenericTreeSelect.SHOW_ALL = SHOW_ALL;\nGenericTreeSelect.SHOW_PARENT = SHOW_PARENT;\nGenericTreeSelect.SHOW_CHILD = SHOW_CHILD;\nexport default GenericTreeSelect;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}