{"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\", \"onDropdownVisibleChange\", \"dropdownMatchSelectWidth\", \"treeLine\", \"treeIcon\", \"showTreeIcon\", \"switcherIcon\", \"treeMotion\"];\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    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    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 ? 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, _keyEntities$key$node2;\n      return (_keyEntities$key$node = (_keyEntities$key = keyEntities[key]) === null || _keyEntities$key === void 0 ? void 0 : (_keyEntities$key$node2 = _keyEntities$key.node) === null || _keyEntities$key$node2 === void 0 ? void 0 : _keyEntities$key$node2[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      return {\n        value: val,\n        label: targetItem === null || targetItem === void 0 ? void 0 : targetItem.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 ? void 0 : onSelect(selectedValue, fillLegacyProps(node));\n    } else {\n      onDeselect === null || onDeselect === void 0 ? 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      treeData: filteredTreeData,\n      fieldNames: mergedFieldNames,\n      onSelect: onOptionSelect,\n      treeExpandAction: treeExpandAction\n    };\n  }, [virtual, dropdownMatchSelectWidth, listHeight, listItemHeight, filteredTreeData, mergedFieldNames, onOptionSelect, treeExpandAction]);\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","onDropdownVisibleChange","_props$dropdownMatchS","dropdownMatchSelectWidth","treeLine","treeIcon","showTreeIcon","switcherIcon","treeMotion","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","_keyEntities$key$node2","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":["/var/www/gavt/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\", \"onDropdownVisibleChange\", \"dropdownMatchSelectWidth\", \"treeLine\", \"treeIcon\", \"showTreeIcon\", \"switcherIcon\", \"treeMotion\"];\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    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    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 ? 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, _keyEntities$key$node2;\n      return (_keyEntities$key$node = (_keyEntities$key = keyEntities[key]) === null || _keyEntities$key === void 0 ? void 0 : (_keyEntities$key$node2 = _keyEntities$key.node) === null || _keyEntities$key$node2 === void 0 ? void 0 : _keyEntities$key$node2[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      return {\n        value: val,\n        label: targetItem === null || targetItem === void 0 ? void 0 : targetItem.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 ? void 0 : onSelect(selectedValue, fillLegacyProps(node));\n    } else {\n      onDeselect === null || onDeselect === void 0 ? 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      treeData: filteredTreeData,\n      fieldNames: mergedFieldNames,\n      onSelect: onOptionSelect,\n      treeExpandAction: treeExpandAction\n    };\n  }, [virtual, dropdownMatchSelectWidth, listHeight, listItemHeight, filteredTreeData, mergedFieldNames, onOptionSelect, treeExpandAction]);\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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"},"metadata":{},"sourceType":"module","externalDependencies":[]}