2ee596cbb93d613fcfea9fad3133aa1c.json 53.4 KB
{"ast":null,"code":"import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport generateSelector from \"rc-select/es/generate\";\nimport { getLabeledValue } from \"rc-select/es/utils/valueUtil\";\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport { INTERNAL_PROPS_MARK } from \"rc-select/es/interface/generator\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport OptionList from './OptionList';\nimport TreeNode from './TreeNode';\nimport { flattenOptions, filterOptions, isValueDisabled, findValueOption, addValue, removeValue, getRawValueLabeled, toArray } from './utils/valueUtil';\nimport warningProps from './utils/warningPropsUtil';\nimport { SelectContext } from './Context';\nimport useTreeData from './hooks/useTreeData';\nimport useKeyValueMap from './hooks/useKeyValueMap';\nimport useKeyValueMapping from './hooks/useKeyValueMapping';\nimport { formatStrategyKeys, SHOW_ALL, SHOW_PARENT, SHOW_CHILD } from './utils/strategyUtil';\nimport { fillAdditionalInfo } from './utils/legacyUtil';\nimport useSelectValues from './hooks/useSelectValues';\nvar OMIT_PROPS = ['expandedKeys', 'treeData', 'treeCheckable', 'showCheckedStrategy', 'searchPlaceholder', 'treeLine', 'treeIcon', 'showTreeIcon', 'switcherIcon', 'treeNodeFilterProp', 'filterTreeNode', 'dropdownPopupAlign', 'treeDefaultExpandAll', 'treeCheckStrictly', 'treeExpandedKeys', 'treeLoadedKeys', 'treeMotion', 'onTreeExpand', 'onTreeLoad', 'loadData', 'treeDataSimpleMode', 'treeNodeLabelProp', 'treeDefaultExpandedKeys'];\nvar RefSelect = generateSelector({\n  prefixCls: 'rc-tree-select',\n  components: {\n    optionList: OptionList\n  },\n  // Not use generate since we will handle ourself\n  convertChildrenToData: function convertChildrenToData() {\n    return null;\n  },\n  flattenOptions: flattenOptions,\n  // Handle `optionLabelProp` in TreeSelect component\n  getLabeledValue: getLabeledValue,\n  filterOptions: filterOptions,\n  isValueDisabled: isValueDisabled,\n  findValueOption: findValueOption,\n  omitDOMProps: function omitDOMProps(props) {\n    var cloneProps = _objectSpread({}, props);\n\n    OMIT_PROPS.forEach(function (prop) {\n      delete cloneProps[prop];\n    });\n    return cloneProps;\n  }\n});\nRefSelect.displayName = 'Select';\nvar RefTreeSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var multiple = props.multiple,\n      treeCheckable = props.treeCheckable,\n      treeCheckStrictly = props.treeCheckStrictly,\n      _props$showCheckedStr = props.showCheckedStrategy,\n      showCheckedStrategy = _props$showCheckedStr === void 0 ? 'SHOW_CHILD' : _props$showCheckedStr,\n      labelInValue = props.labelInValue,\n      loadData = props.loadData,\n      treeLoadedKeys = props.treeLoadedKeys,\n      _props$treeNodeFilter = props.treeNodeFilterProp,\n      treeNodeFilterProp = _props$treeNodeFilter === void 0 ? 'value' : _props$treeNodeFilter,\n      treeNodeLabelProp = props.treeNodeLabelProp,\n      treeDataSimpleMode = props.treeDataSimpleMode,\n      treeData = props.treeData,\n      treeExpandedKeys = props.treeExpandedKeys,\n      treeDefaultExpandedKeys = props.treeDefaultExpandedKeys,\n      treeDefaultExpandAll = props.treeDefaultExpandAll,\n      children = props.children,\n      treeIcon = props.treeIcon,\n      showTreeIcon = props.showTreeIcon,\n      switcherIcon = props.switcherIcon,\n      treeLine = props.treeLine,\n      treeMotion = props.treeMotion,\n      filterTreeNode = props.filterTreeNode,\n      dropdownPopupAlign = props.dropdownPopupAlign,\n      onChange = props.onChange,\n      onTreeExpand = props.onTreeExpand,\n      onTreeLoad = props.onTreeLoad,\n      onDropdownVisibleChange = props.onDropdownVisibleChange,\n      onSelect = props.onSelect,\n      onDeselect = props.onDeselect;\n  var mergedCheckable = treeCheckable || treeCheckStrictly;\n  var mergedMultiple = multiple || mergedCheckable;\n  var treeConduction = treeCheckable && !treeCheckStrictly;\n  var mergedLabelInValue = treeCheckStrictly || labelInValue; // ========================== Ref ==========================\n\n  var selectRef = React.useRef(null);\n  React.useImperativeHandle(ref, function () {\n    return {\n      focus: selectRef.current.focus,\n      blur: selectRef.current.blur\n    };\n  }); // ======================= Tree Data =======================\n  // Legacy both support `label` or `title` if not set.\n  // We have to fallback to function to handle this\n\n  var getTreeNodeTitle = function getTreeNodeTitle(node) {\n    if (!treeData) {\n      return node.title;\n    }\n\n    return node.label || node.title;\n  };\n\n  var getTreeNodeLabelProp = function getTreeNodeLabelProp(node) {\n    if (treeNodeLabelProp) {\n      return node[treeNodeLabelProp];\n    }\n\n    return getTreeNodeTitle(node);\n  };\n\n  var mergedTreeData = useTreeData(treeData, children, {\n    getLabelProp: getTreeNodeTitle,\n    simpleMode: treeDataSimpleMode\n  });\n  var flattedOptions = useMemo(function () {\n    return flattenOptions(mergedTreeData);\n  }, [mergedTreeData]);\n\n  var _useKeyValueMap = useKeyValueMap(flattedOptions),\n      _useKeyValueMap2 = _slicedToArray(_useKeyValueMap, 2),\n      cacheKeyMap = _useKeyValueMap2[0],\n      cacheValueMap = _useKeyValueMap2[1];\n\n  var _useKeyValueMapping = useKeyValueMapping(cacheKeyMap, cacheValueMap),\n      _useKeyValueMapping2 = _slicedToArray(_useKeyValueMapping, 2),\n      getEntityByKey = _useKeyValueMapping2[0],\n      getEntityByValue = _useKeyValueMapping2[1]; // Only generate keyEntities for check conduction when is `treeCheckable`\n\n\n  var _useMemo = useMemo(function () {\n    if (treeConduction) {\n      return convertDataToEntities(mergedTreeData);\n    }\n\n    return {\n      keyEntities: null\n    };\n  }, [mergedTreeData, treeCheckable, treeCheckStrictly]),\n      conductKeyEntities = _useMemo.keyEntities; // ========================= Value =========================\n\n\n  var _useMergedState = useMergedState(props.defaultValue, {\n    value: props.value\n  }),\n      _useMergedState2 = _slicedToArray(_useMergedState, 2),\n      value = _useMergedState2[0],\n      setValue = _useMergedState2[1];\n  /** Get `missingRawValues` which not exist in the tree yet */\n\n\n  var splitRawValues = function splitRawValues(newRawValues) {\n    var missingRawValues = [];\n    var existRawValues = []; // Keep missing value in the cache\n\n    newRawValues.forEach(function (val) {\n      if (getEntityByValue(val)) {\n        existRawValues.push(val);\n      } else {\n        missingRawValues.push(val);\n      }\n    });\n    return {\n      missingRawValues: missingRawValues,\n      existRawValues: existRawValues\n    };\n  };\n\n  var _useMemo2 = useMemo(function () {\n    var valueHalfCheckedKeys = [];\n    var newRawValues = [];\n    toArray(value).forEach(function (item) {\n      if (item && _typeof(item) === 'object' && 'value' in item) {\n        if (item.halfChecked && treeCheckStrictly) {\n          var entity = getEntityByValue(item.value);\n          valueHalfCheckedKeys.push(entity ? entity.key : item.value);\n        } else {\n          newRawValues.push(item.value);\n        }\n      } else {\n        newRawValues.push(item);\n      }\n    }); // We need do conduction of values\n\n    if (treeConduction) {\n      var _splitRawValues = splitRawValues(newRawValues),\n          missingRawValues = _splitRawValues.missingRawValues,\n          existRawValues = _splitRawValues.existRawValues;\n\n      var keyList = existRawValues.map(function (val) {\n        return getEntityByValue(val).key;\n      });\n\n      var _conductCheck = conductCheck(keyList, true, conductKeyEntities),\n          checkedKeys = _conductCheck.checkedKeys,\n          halfCheckedKeys = _conductCheck.halfCheckedKeys;\n\n      return [[].concat(_toConsumableArray(missingRawValues), _toConsumableArray(checkedKeys.map(function (key) {\n        return getEntityByKey(key).data.value;\n      }))), halfCheckedKeys];\n    }\n\n    return [newRawValues, valueHalfCheckedKeys];\n  }, [value, mergedMultiple, mergedLabelInValue, treeCheckable, treeCheckStrictly]),\n      _useMemo3 = _slicedToArray(_useMemo2, 2),\n      rawValues = _useMemo3[0],\n      rawHalfCheckedKeys = _useMemo3[1];\n\n  var selectValues = useSelectValues(rawValues, {\n    treeConduction: treeConduction,\n    value: value,\n    showCheckedStrategy: showCheckedStrategy,\n    conductKeyEntities: conductKeyEntities,\n    getEntityByValue: getEntityByValue,\n    getEntityByKey: getEntityByKey,\n    getLabelProp: getTreeNodeLabelProp\n  });\n\n  var triggerChange = function triggerChange(newRawValues, extra, source) {\n    setValue(mergedMultiple ? newRawValues : newRawValues[0]);\n\n    if (onChange) {\n      var eventValues = newRawValues;\n\n      if (treeConduction && showCheckedStrategy !== 'SHOW_ALL') {\n        var keyList = newRawValues.map(function (val) {\n          var entity = getEntityByValue(val);\n          return entity ? entity.key : val;\n        });\n        var formattedKeyList = formatStrategyKeys(keyList, showCheckedStrategy, conductKeyEntities);\n        eventValues = formattedKeyList.map(function (key) {\n          var entity = getEntityByKey(key);\n          return entity ? entity.data.value : key;\n        });\n      }\n\n      var _ref = extra || {\n        triggerValue: undefined,\n        selected: undefined\n      },\n          triggerValue = _ref.triggerValue,\n          selected = _ref.selected;\n\n      var returnValues = mergedLabelInValue ? getRawValueLabeled(eventValues, value, getEntityByValue, getTreeNodeLabelProp) : eventValues; // We need fill half check back\n\n      if (treeCheckStrictly) {\n        var halfValues = rawHalfCheckedKeys.map(function (key) {\n          var entity = getEntityByKey(key);\n          return entity ? entity.data.value : key;\n        }).filter(function (val) {\n          return !eventValues.includes(val);\n        });\n        returnValues = [].concat(_toConsumableArray(returnValues), _toConsumableArray(getRawValueLabeled(halfValues, value, getEntityByValue, getTreeNodeLabelProp)));\n      }\n\n      var additionalInfo = {\n        // [Legacy] Always return as array contains label & value\n        preValue: selectValues,\n        triggerValue: triggerValue\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\n      var showPosition = true;\n\n      if (treeCheckStrictly || source === 'selection' && !selected) {\n        showPosition = false;\n      }\n\n      fillAdditionalInfo(additionalInfo, triggerValue, newRawValues, mergedTreeData, showPosition);\n\n      if (mergedCheckable) {\n        additionalInfo.checked = selected;\n      } else {\n        additionalInfo.selected = selected;\n      }\n\n      onChange(mergedMultiple ? returnValues : returnValues[0], mergedLabelInValue ? null : eventValues.map(function (val) {\n        var entity = getEntityByValue(val);\n        return entity ? getTreeNodeLabelProp(entity.data) : null;\n      }), additionalInfo);\n    }\n  };\n\n  var onInternalSelect = function onInternalSelect(selectValue, option, source) {\n    var eventValue = mergedLabelInValue ? selectValue : selectValue;\n\n    if (!mergedMultiple) {\n      // Single mode always set value\n      triggerChange([selectValue], {\n        selected: true,\n        triggerValue: selectValue\n      }, source);\n    } else {\n      var newRawValues = addValue(rawValues, selectValue); // Add keys if tree conduction\n\n      if (treeConduction) {\n        // Should keep missing values\n        var _splitRawValues2 = splitRawValues(newRawValues),\n            missingRawValues = _splitRawValues2.missingRawValues,\n            existRawValues = _splitRawValues2.existRawValues;\n\n        var keyList = existRawValues.map(function (val) {\n          return getEntityByValue(val).key;\n        });\n\n        var _conductCheck2 = conductCheck(keyList, true, conductKeyEntities),\n            checkedKeys = _conductCheck2.checkedKeys;\n\n        newRawValues = [].concat(_toConsumableArray(missingRawValues), _toConsumableArray(checkedKeys.map(function (key) {\n          return getEntityByKey(key).data.value;\n        })));\n      }\n\n      triggerChange(newRawValues, {\n        selected: true,\n        triggerValue: selectValue\n      }, source);\n    }\n\n    if (onSelect) {\n      onSelect(eventValue, option);\n    }\n  };\n\n  var onInternalDeselect = function onInternalDeselect(selectValue, option, source) {\n    var eventValue = mergedLabelInValue ? selectValue : selectValue;\n    var newRawValues = removeValue(rawValues, selectValue); // Remove keys if tree conduction\n\n    if (treeConduction) {\n      var _splitRawValues3 = splitRawValues(newRawValues),\n          missingRawValues = _splitRawValues3.missingRawValues,\n          existRawValues = _splitRawValues3.existRawValues;\n\n      var keyList = existRawValues.map(function (val) {\n        return getEntityByValue(val).key;\n      });\n\n      var _conductCheck3 = conductCheck(keyList, {\n        checked: false,\n        halfCheckedKeys: rawHalfCheckedKeys\n      }, conductKeyEntities),\n          checkedKeys = _conductCheck3.checkedKeys;\n\n      newRawValues = [].concat(_toConsumableArray(missingRawValues), _toConsumableArray(checkedKeys.map(function (key) {\n        return getEntityByKey(key).data.value;\n      })));\n    }\n\n    triggerChange(newRawValues, {\n      selected: false,\n      triggerValue: selectValue\n    }, source);\n\n    if (onDeselect) {\n      onDeselect(eventValue, option);\n    }\n  };\n\n  var onInternalClear = function onInternalClear() {\n    triggerChange([], null, 'clear');\n  }; // ========================= Open ==========================\n\n\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]); // ======================== Warning ========================\n\n  if (process.env.NODE_ENV !== 'production') {\n    warningProps(props);\n  } // ======================== Render =========================\n  // We pass some props into select props style\n\n\n  var selectProps = {\n    optionLabelProp: null,\n    optionFilterProp: treeNodeFilterProp,\n    dropdownAlign: dropdownPopupAlign,\n    internalProps: {\n      mark: INTERNAL_PROPS_MARK,\n      onClear: onInternalClear,\n      skipTriggerChange: true,\n      skipTriggerSelect: true,\n      onRawSelect: onInternalSelect,\n      onRawDeselect: onInternalDeselect\n    }\n  };\n\n  if ('filterTreeNode' in props) {\n    selectProps.filterOption = filterTreeNode;\n  }\n\n  return /*#__PURE__*/React.createElement(SelectContext.Provider, {\n    value: {\n      checkable: mergedCheckable,\n      loadData: loadData,\n      treeLoadedKeys: treeLoadedKeys,\n      onTreeLoad: onTreeLoad,\n      checkedKeys: rawValues,\n      halfCheckedKeys: rawHalfCheckedKeys,\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    }\n  }, /*#__PURE__*/React.createElement(RefSelect, Object.assign({\n    ref: selectRef,\n    mode: mergedMultiple ? 'multiple' : null\n  }, props, selectProps, {\n    value: selectValues,\n    // We will handle this ourself since we need calculate conduction\n    labelInValue: true,\n    options: mergedTreeData,\n    onChange: null,\n    onSelect: null,\n    onDeselect: null,\n    onDropdownVisibleChange: onInternalDropdownVisibleChange\n  })));\n}); // Use class component since typescript not support generic\n// by `forwardRef` with function component yet.\n\nvar TreeSelect = /*#__PURE__*/function (_React$Component) {\n  _inherits(TreeSelect, _React$Component);\n\n  var _super = _createSuper(TreeSelect);\n\n  function TreeSelect() {\n    var _this;\n\n    _classCallCheck(this, TreeSelect);\n\n    _this = _super.apply(this, arguments);\n    _this.selectRef = /*#__PURE__*/React.createRef();\n\n    _this.focus = function () {\n      _this.selectRef.current.focus();\n    };\n\n    _this.blur = function () {\n      _this.selectRef.current.blur();\n    };\n\n    return _this;\n  }\n\n  _createClass(TreeSelect, [{\n    key: \"render\",\n    value: function render() {\n      return /*#__PURE__*/React.createElement(RefTreeSelect, Object.assign({\n        ref: this.selectRef\n      }, this.props));\n    }\n  }]);\n\n  return TreeSelect;\n}(React.Component);\n\nTreeSelect.TreeNode = TreeNode;\nTreeSelect.SHOW_ALL = SHOW_ALL;\nTreeSelect.SHOW_PARENT = SHOW_PARENT;\nTreeSelect.SHOW_CHILD = SHOW_CHILD;\nexport default TreeSelect;","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-tree-select/es/TreeSelect.js"],"names":["_classCallCheck","_createClass","_inherits","_createSuper","_toConsumableArray","_typeof","_slicedToArray","_objectSpread","React","useMemo","generateSelector","getLabeledValue","convertDataToEntities","conductCheck","INTERNAL_PROPS_MARK","useMergedState","warning","OptionList","TreeNode","flattenOptions","filterOptions","isValueDisabled","findValueOption","addValue","removeValue","getRawValueLabeled","toArray","warningProps","SelectContext","useTreeData","useKeyValueMap","useKeyValueMapping","formatStrategyKeys","SHOW_ALL","SHOW_PARENT","SHOW_CHILD","fillAdditionalInfo","useSelectValues","OMIT_PROPS","RefSelect","prefixCls","components","optionList","convertChildrenToData","omitDOMProps","props","cloneProps","forEach","prop","displayName","RefTreeSelect","forwardRef","ref","multiple","treeCheckable","treeCheckStrictly","_props$showCheckedStr","showCheckedStrategy","labelInValue","loadData","treeLoadedKeys","_props$treeNodeFilter","treeNodeFilterProp","treeNodeLabelProp","treeDataSimpleMode","treeData","treeExpandedKeys","treeDefaultExpandedKeys","treeDefaultExpandAll","children","treeIcon","showTreeIcon","switcherIcon","treeLine","treeMotion","filterTreeNode","dropdownPopupAlign","onChange","onTreeExpand","onTreeLoad","onDropdownVisibleChange","onSelect","onDeselect","mergedCheckable","mergedMultiple","treeConduction","mergedLabelInValue","selectRef","useRef","useImperativeHandle","focus","current","blur","getTreeNodeTitle","node","title","label","getTreeNodeLabelProp","mergedTreeData","getLabelProp","simpleMode","flattedOptions","_useKeyValueMap","_useKeyValueMap2","cacheKeyMap","cacheValueMap","_useKeyValueMapping","_useKeyValueMapping2","getEntityByKey","getEntityByValue","_useMemo","keyEntities","conductKeyEntities","_useMergedState","defaultValue","value","_useMergedState2","setValue","splitRawValues","newRawValues","missingRawValues","existRawValues","val","push","_useMemo2","valueHalfCheckedKeys","item","halfChecked","entity","key","_splitRawValues","keyList","map","_conductCheck","checkedKeys","halfCheckedKeys","concat","data","_useMemo3","rawValues","rawHalfCheckedKeys","selectValues","triggerChange","extra","source","eventValues","formattedKeyList","_ref","triggerValue","undefined","selected","returnValues","halfValues","filter","includes","additionalInfo","preValue","showPosition","checked","onInternalSelect","selectValue","option","eventValue","_splitRawValues2","_conductCheck2","onInternalDeselect","_splitRawValues3","_conductCheck3","onInternalClear","onInternalDropdownVisibleChange","useCallback","open","legacyParam","Object","defineProperty","get","process","env","NODE_ENV","selectProps","optionLabelProp","optionFilterProp","dropdownAlign","internalProps","mark","onClear","skipTriggerChange","skipTriggerSelect","onRawSelect","onRawDeselect","filterOption","createElement","Provider","checkable","assign","mode","options","TreeSelect","_React$Component","_super","_this","apply","arguments","createRef","render","Component"],"mappings":"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","sourcesContent":["import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport generateSelector from \"rc-select/es/generate\";\nimport { getLabeledValue } from \"rc-select/es/utils/valueUtil\";\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport { INTERNAL_PROPS_MARK } from \"rc-select/es/interface/generator\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport OptionList from './OptionList';\nimport TreeNode from './TreeNode';\nimport { flattenOptions, filterOptions, isValueDisabled, findValueOption, addValue, removeValue, getRawValueLabeled, toArray } from './utils/valueUtil';\nimport warningProps from './utils/warningPropsUtil';\nimport { SelectContext } from './Context';\nimport useTreeData from './hooks/useTreeData';\nimport useKeyValueMap from './hooks/useKeyValueMap';\nimport useKeyValueMapping from './hooks/useKeyValueMapping';\nimport { formatStrategyKeys, SHOW_ALL, SHOW_PARENT, SHOW_CHILD } from './utils/strategyUtil';\nimport { fillAdditionalInfo } from './utils/legacyUtil';\nimport useSelectValues from './hooks/useSelectValues';\nvar OMIT_PROPS = ['expandedKeys', 'treeData', 'treeCheckable', 'showCheckedStrategy', 'searchPlaceholder', 'treeLine', 'treeIcon', 'showTreeIcon', 'switcherIcon', 'treeNodeFilterProp', 'filterTreeNode', 'dropdownPopupAlign', 'treeDefaultExpandAll', 'treeCheckStrictly', 'treeExpandedKeys', 'treeLoadedKeys', 'treeMotion', 'onTreeExpand', 'onTreeLoad', 'loadData', 'treeDataSimpleMode', 'treeNodeLabelProp', 'treeDefaultExpandedKeys'];\nvar RefSelect = generateSelector({\n  prefixCls: 'rc-tree-select',\n  components: {\n    optionList: OptionList\n  },\n  // Not use generate since we will handle ourself\n  convertChildrenToData: function convertChildrenToData() {\n    return null;\n  },\n  flattenOptions: flattenOptions,\n  // Handle `optionLabelProp` in TreeSelect component\n  getLabeledValue: getLabeledValue,\n  filterOptions: filterOptions,\n  isValueDisabled: isValueDisabled,\n  findValueOption: findValueOption,\n  omitDOMProps: function omitDOMProps(props) {\n    var cloneProps = _objectSpread({}, props);\n\n    OMIT_PROPS.forEach(function (prop) {\n      delete cloneProps[prop];\n    });\n    return cloneProps;\n  }\n});\nRefSelect.displayName = 'Select';\nvar RefTreeSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var multiple = props.multiple,\n      treeCheckable = props.treeCheckable,\n      treeCheckStrictly = props.treeCheckStrictly,\n      _props$showCheckedStr = props.showCheckedStrategy,\n      showCheckedStrategy = _props$showCheckedStr === void 0 ? 'SHOW_CHILD' : _props$showCheckedStr,\n      labelInValue = props.labelInValue,\n      loadData = props.loadData,\n      treeLoadedKeys = props.treeLoadedKeys,\n      _props$treeNodeFilter = props.treeNodeFilterProp,\n      treeNodeFilterProp = _props$treeNodeFilter === void 0 ? 'value' : _props$treeNodeFilter,\n      treeNodeLabelProp = props.treeNodeLabelProp,\n      treeDataSimpleMode = props.treeDataSimpleMode,\n      treeData = props.treeData,\n      treeExpandedKeys = props.treeExpandedKeys,\n      treeDefaultExpandedKeys = props.treeDefaultExpandedKeys,\n      treeDefaultExpandAll = props.treeDefaultExpandAll,\n      children = props.children,\n      treeIcon = props.treeIcon,\n      showTreeIcon = props.showTreeIcon,\n      switcherIcon = props.switcherIcon,\n      treeLine = props.treeLine,\n      treeMotion = props.treeMotion,\n      filterTreeNode = props.filterTreeNode,\n      dropdownPopupAlign = props.dropdownPopupAlign,\n      onChange = props.onChange,\n      onTreeExpand = props.onTreeExpand,\n      onTreeLoad = props.onTreeLoad,\n      onDropdownVisibleChange = props.onDropdownVisibleChange,\n      onSelect = props.onSelect,\n      onDeselect = props.onDeselect;\n  var mergedCheckable = treeCheckable || treeCheckStrictly;\n  var mergedMultiple = multiple || mergedCheckable;\n  var treeConduction = treeCheckable && !treeCheckStrictly;\n  var mergedLabelInValue = treeCheckStrictly || labelInValue; // ========================== Ref ==========================\n\n  var selectRef = React.useRef(null);\n  React.useImperativeHandle(ref, function () {\n    return {\n      focus: selectRef.current.focus,\n      blur: selectRef.current.blur\n    };\n  }); // ======================= Tree Data =======================\n  // Legacy both support `label` or `title` if not set.\n  // We have to fallback to function to handle this\n\n  var getTreeNodeTitle = function getTreeNodeTitle(node) {\n    if (!treeData) {\n      return node.title;\n    }\n\n    return node.label || node.title;\n  };\n\n  var getTreeNodeLabelProp = function getTreeNodeLabelProp(node) {\n    if (treeNodeLabelProp) {\n      return node[treeNodeLabelProp];\n    }\n\n    return getTreeNodeTitle(node);\n  };\n\n  var mergedTreeData = useTreeData(treeData, children, {\n    getLabelProp: getTreeNodeTitle,\n    simpleMode: treeDataSimpleMode\n  });\n  var flattedOptions = useMemo(function () {\n    return flattenOptions(mergedTreeData);\n  }, [mergedTreeData]);\n\n  var _useKeyValueMap = useKeyValueMap(flattedOptions),\n      _useKeyValueMap2 = _slicedToArray(_useKeyValueMap, 2),\n      cacheKeyMap = _useKeyValueMap2[0],\n      cacheValueMap = _useKeyValueMap2[1];\n\n  var _useKeyValueMapping = useKeyValueMapping(cacheKeyMap, cacheValueMap),\n      _useKeyValueMapping2 = _slicedToArray(_useKeyValueMapping, 2),\n      getEntityByKey = _useKeyValueMapping2[0],\n      getEntityByValue = _useKeyValueMapping2[1]; // Only generate keyEntities for check conduction when is `treeCheckable`\n\n\n  var _useMemo = useMemo(function () {\n    if (treeConduction) {\n      return convertDataToEntities(mergedTreeData);\n    }\n\n    return {\n      keyEntities: null\n    };\n  }, [mergedTreeData, treeCheckable, treeCheckStrictly]),\n      conductKeyEntities = _useMemo.keyEntities; // ========================= Value =========================\n\n\n  var _useMergedState = useMergedState(props.defaultValue, {\n    value: props.value\n  }),\n      _useMergedState2 = _slicedToArray(_useMergedState, 2),\n      value = _useMergedState2[0],\n      setValue = _useMergedState2[1];\n  /** Get `missingRawValues` which not exist in the tree yet */\n\n\n  var splitRawValues = function splitRawValues(newRawValues) {\n    var missingRawValues = [];\n    var existRawValues = []; // Keep missing value in the cache\n\n    newRawValues.forEach(function (val) {\n      if (getEntityByValue(val)) {\n        existRawValues.push(val);\n      } else {\n        missingRawValues.push(val);\n      }\n    });\n    return {\n      missingRawValues: missingRawValues,\n      existRawValues: existRawValues\n    };\n  };\n\n  var _useMemo2 = useMemo(function () {\n    var valueHalfCheckedKeys = [];\n    var newRawValues = [];\n    toArray(value).forEach(function (item) {\n      if (item && _typeof(item) === 'object' && 'value' in item) {\n        if (item.halfChecked && treeCheckStrictly) {\n          var entity = getEntityByValue(item.value);\n          valueHalfCheckedKeys.push(entity ? entity.key : item.value);\n        } else {\n          newRawValues.push(item.value);\n        }\n      } else {\n        newRawValues.push(item);\n      }\n    }); // We need do conduction of values\n\n    if (treeConduction) {\n      var _splitRawValues = splitRawValues(newRawValues),\n          missingRawValues = _splitRawValues.missingRawValues,\n          existRawValues = _splitRawValues.existRawValues;\n\n      var keyList = existRawValues.map(function (val) {\n        return getEntityByValue(val).key;\n      });\n\n      var _conductCheck = conductCheck(keyList, true, conductKeyEntities),\n          checkedKeys = _conductCheck.checkedKeys,\n          halfCheckedKeys = _conductCheck.halfCheckedKeys;\n\n      return [[].concat(_toConsumableArray(missingRawValues), _toConsumableArray(checkedKeys.map(function (key) {\n        return getEntityByKey(key).data.value;\n      }))), halfCheckedKeys];\n    }\n\n    return [newRawValues, valueHalfCheckedKeys];\n  }, [value, mergedMultiple, mergedLabelInValue, treeCheckable, treeCheckStrictly]),\n      _useMemo3 = _slicedToArray(_useMemo2, 2),\n      rawValues = _useMemo3[0],\n      rawHalfCheckedKeys = _useMemo3[1];\n\n  var selectValues = useSelectValues(rawValues, {\n    treeConduction: treeConduction,\n    value: value,\n    showCheckedStrategy: showCheckedStrategy,\n    conductKeyEntities: conductKeyEntities,\n    getEntityByValue: getEntityByValue,\n    getEntityByKey: getEntityByKey,\n    getLabelProp: getTreeNodeLabelProp\n  });\n\n  var triggerChange = function triggerChange(newRawValues, extra, source) {\n    setValue(mergedMultiple ? newRawValues : newRawValues[0]);\n\n    if (onChange) {\n      var eventValues = newRawValues;\n\n      if (treeConduction && showCheckedStrategy !== 'SHOW_ALL') {\n        var keyList = newRawValues.map(function (val) {\n          var entity = getEntityByValue(val);\n          return entity ? entity.key : val;\n        });\n        var formattedKeyList = formatStrategyKeys(keyList, showCheckedStrategy, conductKeyEntities);\n        eventValues = formattedKeyList.map(function (key) {\n          var entity = getEntityByKey(key);\n          return entity ? entity.data.value : key;\n        });\n      }\n\n      var _ref = extra || {\n        triggerValue: undefined,\n        selected: undefined\n      },\n          triggerValue = _ref.triggerValue,\n          selected = _ref.selected;\n\n      var returnValues = mergedLabelInValue ? getRawValueLabeled(eventValues, value, getEntityByValue, getTreeNodeLabelProp) : eventValues; // We need fill half check back\n\n      if (treeCheckStrictly) {\n        var halfValues = rawHalfCheckedKeys.map(function (key) {\n          var entity = getEntityByKey(key);\n          return entity ? entity.data.value : key;\n        }).filter(function (val) {\n          return !eventValues.includes(val);\n        });\n        returnValues = [].concat(_toConsumableArray(returnValues), _toConsumableArray(getRawValueLabeled(halfValues, value, getEntityByValue, getTreeNodeLabelProp)));\n      }\n\n      var additionalInfo = {\n        // [Legacy] Always return as array contains label & value\n        preValue: selectValues,\n        triggerValue: triggerValue\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\n      var showPosition = true;\n\n      if (treeCheckStrictly || source === 'selection' && !selected) {\n        showPosition = false;\n      }\n\n      fillAdditionalInfo(additionalInfo, triggerValue, newRawValues, mergedTreeData, showPosition);\n\n      if (mergedCheckable) {\n        additionalInfo.checked = selected;\n      } else {\n        additionalInfo.selected = selected;\n      }\n\n      onChange(mergedMultiple ? returnValues : returnValues[0], mergedLabelInValue ? null : eventValues.map(function (val) {\n        var entity = getEntityByValue(val);\n        return entity ? getTreeNodeLabelProp(entity.data) : null;\n      }), additionalInfo);\n    }\n  };\n\n  var onInternalSelect = function onInternalSelect(selectValue, option, source) {\n    var eventValue = mergedLabelInValue ? selectValue : selectValue;\n\n    if (!mergedMultiple) {\n      // Single mode always set value\n      triggerChange([selectValue], {\n        selected: true,\n        triggerValue: selectValue\n      }, source);\n    } else {\n      var newRawValues = addValue(rawValues, selectValue); // Add keys if tree conduction\n\n      if (treeConduction) {\n        // Should keep missing values\n        var _splitRawValues2 = splitRawValues(newRawValues),\n            missingRawValues = _splitRawValues2.missingRawValues,\n            existRawValues = _splitRawValues2.existRawValues;\n\n        var keyList = existRawValues.map(function (val) {\n          return getEntityByValue(val).key;\n        });\n\n        var _conductCheck2 = conductCheck(keyList, true, conductKeyEntities),\n            checkedKeys = _conductCheck2.checkedKeys;\n\n        newRawValues = [].concat(_toConsumableArray(missingRawValues), _toConsumableArray(checkedKeys.map(function (key) {\n          return getEntityByKey(key).data.value;\n        })));\n      }\n\n      triggerChange(newRawValues, {\n        selected: true,\n        triggerValue: selectValue\n      }, source);\n    }\n\n    if (onSelect) {\n      onSelect(eventValue, option);\n    }\n  };\n\n  var onInternalDeselect = function onInternalDeselect(selectValue, option, source) {\n    var eventValue = mergedLabelInValue ? selectValue : selectValue;\n    var newRawValues = removeValue(rawValues, selectValue); // Remove keys if tree conduction\n\n    if (treeConduction) {\n      var _splitRawValues3 = splitRawValues(newRawValues),\n          missingRawValues = _splitRawValues3.missingRawValues,\n          existRawValues = _splitRawValues3.existRawValues;\n\n      var keyList = existRawValues.map(function (val) {\n        return getEntityByValue(val).key;\n      });\n\n      var _conductCheck3 = conductCheck(keyList, {\n        checked: false,\n        halfCheckedKeys: rawHalfCheckedKeys\n      }, conductKeyEntities),\n          checkedKeys = _conductCheck3.checkedKeys;\n\n      newRawValues = [].concat(_toConsumableArray(missingRawValues), _toConsumableArray(checkedKeys.map(function (key) {\n        return getEntityByKey(key).data.value;\n      })));\n    }\n\n    triggerChange(newRawValues, {\n      selected: false,\n      triggerValue: selectValue\n    }, source);\n\n    if (onDeselect) {\n      onDeselect(eventValue, option);\n    }\n  };\n\n  var onInternalClear = function onInternalClear() {\n    triggerChange([], null, 'clear');\n  }; // ========================= Open ==========================\n\n\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]); // ======================== Warning ========================\n\n  if (process.env.NODE_ENV !== 'production') {\n    warningProps(props);\n  } // ======================== Render =========================\n  // We pass some props into select props style\n\n\n  var selectProps = {\n    optionLabelProp: null,\n    optionFilterProp: treeNodeFilterProp,\n    dropdownAlign: dropdownPopupAlign,\n    internalProps: {\n      mark: INTERNAL_PROPS_MARK,\n      onClear: onInternalClear,\n      skipTriggerChange: true,\n      skipTriggerSelect: true,\n      onRawSelect: onInternalSelect,\n      onRawDeselect: onInternalDeselect\n    }\n  };\n\n  if ('filterTreeNode' in props) {\n    selectProps.filterOption = filterTreeNode;\n  }\n\n  return /*#__PURE__*/React.createElement(SelectContext.Provider, {\n    value: {\n      checkable: mergedCheckable,\n      loadData: loadData,\n      treeLoadedKeys: treeLoadedKeys,\n      onTreeLoad: onTreeLoad,\n      checkedKeys: rawValues,\n      halfCheckedKeys: rawHalfCheckedKeys,\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    }\n  }, /*#__PURE__*/React.createElement(RefSelect, Object.assign({\n    ref: selectRef,\n    mode: mergedMultiple ? 'multiple' : null\n  }, props, selectProps, {\n    value: selectValues,\n    // We will handle this ourself since we need calculate conduction\n    labelInValue: true,\n    options: mergedTreeData,\n    onChange: null,\n    onSelect: null,\n    onDeselect: null,\n    onDropdownVisibleChange: onInternalDropdownVisibleChange\n  })));\n}); // Use class component since typescript not support generic\n// by `forwardRef` with function component yet.\n\nvar TreeSelect = /*#__PURE__*/function (_React$Component) {\n  _inherits(TreeSelect, _React$Component);\n\n  var _super = _createSuper(TreeSelect);\n\n  function TreeSelect() {\n    var _this;\n\n    _classCallCheck(this, TreeSelect);\n\n    _this = _super.apply(this, arguments);\n    _this.selectRef = /*#__PURE__*/React.createRef();\n\n    _this.focus = function () {\n      _this.selectRef.current.focus();\n    };\n\n    _this.blur = function () {\n      _this.selectRef.current.blur();\n    };\n\n    return _this;\n  }\n\n  _createClass(TreeSelect, [{\n    key: \"render\",\n    value: function render() {\n      return /*#__PURE__*/React.createElement(RefTreeSelect, Object.assign({\n        ref: this.selectRef\n      }, this.props));\n    }\n  }]);\n\n  return TreeSelect;\n}(React.Component);\n\nTreeSelect.TreeNode = TreeNode;\nTreeSelect.SHOW_ALL = SHOW_ALL;\nTreeSelect.SHOW_PARENT = SHOW_PARENT;\nTreeSelect.SHOW_CHILD = SHOW_CHILD;\nexport default TreeSelect;"]},"metadata":{},"sourceType":"module"}