12ad002507f49efabddc7203e3c2894f.json 28 KB
{"ast":null,"code":"import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport Tree from 'rc-tree';\nimport { SelectContext } from './Context';\nimport useKeyValueMapping from './hooks/useKeyValueMapping';\nimport useKeyValueMap from './hooks/useKeyValueMap';\nvar HIDDEN_STYLE = {\n  width: 0,\n  height: 0,\n  display: 'flex',\n  overflow: 'hidden',\n  opacity: 0,\n  border: 0,\n  padding: 0,\n  margin: 0\n};\n\nvar OptionList = function OptionList(props, ref) {\n  var prefixCls = props.prefixCls,\n      height = props.height,\n      itemHeight = props.itemHeight,\n      virtual = props.virtual,\n      options = props.options,\n      flattenOptions = props.flattenOptions,\n      multiple = props.multiple,\n      searchValue = props.searchValue,\n      onSelect = props.onSelect,\n      onToggleOpen = props.onToggleOpen,\n      open = props.open,\n      notFoundContent = props.notFoundContent,\n      onMouseEnter = props.onMouseEnter;\n\n  var _React$useContext = React.useContext(SelectContext),\n      checkable = _React$useContext.checkable,\n      checkedKeys = _React$useContext.checkedKeys,\n      halfCheckedKeys = _React$useContext.halfCheckedKeys,\n      treeExpandedKeys = _React$useContext.treeExpandedKeys,\n      treeDefaultExpandAll = _React$useContext.treeDefaultExpandAll,\n      treeDefaultExpandedKeys = _React$useContext.treeDefaultExpandedKeys,\n      onTreeExpand = _React$useContext.onTreeExpand,\n      treeIcon = _React$useContext.treeIcon,\n      showTreeIcon = _React$useContext.showTreeIcon,\n      switcherIcon = _React$useContext.switcherIcon,\n      treeLine = _React$useContext.treeLine,\n      treeNodeFilterProp = _React$useContext.treeNodeFilterProp,\n      loadData = _React$useContext.loadData,\n      treeLoadedKeys = _React$useContext.treeLoadedKeys,\n      treeMotion = _React$useContext.treeMotion,\n      onTreeLoad = _React$useContext.onTreeLoad;\n\n  var treeRef = React.useRef();\n  var memoOptions = useMemo(function () {\n    return options;\n  }, [open, options], function (prev, next) {\n    return next[0] && prev[1] !== next[1];\n  });\n\n  var _useKeyValueMap = useKeyValueMap(flattenOptions),\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]; // ========================== Values ==========================\n\n\n  var valueKeys = React.useMemo(function () {\n    return checkedKeys.map(function (val) {\n      var entity = getEntityByValue(val);\n      return entity ? entity.key : null;\n    });\n  }, [checkedKeys]);\n  var mergedCheckedKeys = React.useMemo(function () {\n    if (!checkable) {\n      return null;\n    }\n\n    return {\n      checked: valueKeys,\n      halfChecked: halfCheckedKeys\n    };\n  }, [valueKeys, halfCheckedKeys, checkable]); // ========================== Scroll ==========================\n\n  React.useEffect(function () {\n    // Single mode should scroll to current key\n    if (open && !multiple && valueKeys.length) {\n      var _treeRef$current;\n\n      (_treeRef$current = treeRef.current) === null || _treeRef$current === void 0 ? void 0 : _treeRef$current.scrollTo({\n        key: valueKeys[0]\n      });\n    }\n  }, [open]); // ========================== Search ==========================\n\n  var lowerSearchValue = String(searchValue).toLowerCase();\n\n  var filterTreeNode = function filterTreeNode(treeNode) {\n    if (!lowerSearchValue) {\n      return false;\n    }\n\n    return String(treeNode[treeNodeFilterProp]).toLowerCase().includes(lowerSearchValue);\n  }; // =========================== Keys ===========================\n\n\n  var _React$useState = React.useState(treeDefaultExpandedKeys),\n      _React$useState2 = _slicedToArray(_React$useState, 2),\n      expandedKeys = _React$useState2[0],\n      setExpandedKeys = _React$useState2[1];\n\n  var _React$useState3 = React.useState(null),\n      _React$useState4 = _slicedToArray(_React$useState3, 2),\n      searchExpandedKeys = _React$useState4[0],\n      setSearchExpandedKeys = _React$useState4[1];\n\n  var mergedExpandedKeys = React.useMemo(function () {\n    if (treeExpandedKeys) {\n      return _toConsumableArray(treeExpandedKeys);\n    }\n\n    return searchValue ? searchExpandedKeys : expandedKeys;\n  }, [expandedKeys, searchExpandedKeys, lowerSearchValue, treeExpandedKeys]);\n  React.useEffect(function () {\n    if (searchValue) {\n      setSearchExpandedKeys(flattenOptions.map(function (o) {\n        return o.key;\n      }));\n    }\n  }, [searchValue]);\n\n  var onInternalExpand = function onInternalExpand(keys) {\n    setExpandedKeys(keys);\n    setSearchExpandedKeys(keys);\n\n    if (onTreeExpand) {\n      onTreeExpand(keys);\n    }\n  }; // ========================== Events ==========================\n\n\n  var onListMouseDown = function onListMouseDown(event) {\n    event.preventDefault();\n  };\n\n  var onInternalSelect = function onInternalSelect(_, _ref) {\n    var key = _ref.node.key;\n    var entity = getEntityByKey(key, checkable ? 'checkbox' : 'select');\n\n    if (entity !== null) {\n      onSelect(entity.data.value, {\n        selected: !checkedKeys.includes(entity.data.value)\n      });\n    }\n\n    if (!multiple) {\n      onToggleOpen(false);\n    }\n  }; // ========================= Keyboard =========================\n\n\n  var _React$useState5 = React.useState(null),\n      _React$useState6 = _slicedToArray(_React$useState5, 2),\n      activeKey = _React$useState6[0],\n      setActiveKey = _React$useState6[1];\n\n  var activeEntity = getEntityByKey(activeKey);\n  React.useImperativeHandle(ref, function () {\n    return {\n      onKeyDown: function onKeyDown(event) {\n        var _treeRef$current2;\n\n        var which = event.which;\n\n        switch (which) {\n          // >>> Arrow keys\n          case KeyCode.UP:\n          case KeyCode.DOWN:\n          case KeyCode.LEFT:\n          case KeyCode.RIGHT:\n            (_treeRef$current2 = treeRef.current) === null || _treeRef$current2 === void 0 ? void 0 : _treeRef$current2.onKeyDown(event);\n            break;\n          // >>> Select item\n\n          case KeyCode.ENTER:\n            {\n              if (activeEntity !== null) {\n                onInternalSelect(null, {\n                  node: {\n                    key: activeKey\n                  },\n                  selected: !checkedKeys.includes(activeEntity.data.value)\n                });\n              }\n\n              break;\n            }\n          // >>> Close\n\n          case KeyCode.ESC:\n            {\n              onToggleOpen(false);\n            }\n        }\n      },\n      onKeyUp: function onKeyUp() {}\n    };\n  }); // ========================== Render ==========================\n\n  if (memoOptions.length === 0) {\n    return /*#__PURE__*/React.createElement(\"div\", {\n      role: \"listbox\",\n      className: \"\".concat(prefixCls, \"-empty\"),\n      onMouseDown: onListMouseDown\n    }, notFoundContent);\n  }\n\n  var treeProps = {};\n\n  if (treeLoadedKeys) {\n    treeProps.loadedKeys = treeLoadedKeys;\n  }\n\n  if (mergedExpandedKeys) {\n    treeProps.expandedKeys = mergedExpandedKeys;\n  }\n\n  return /*#__PURE__*/React.createElement(\"div\", {\n    onMouseDown: onListMouseDown,\n    onMouseEnter: onMouseEnter\n  }, activeEntity && open && /*#__PURE__*/React.createElement(\"span\", {\n    style: HIDDEN_STYLE,\n    \"aria-live\": \"assertive\"\n  }, activeEntity.data.value), /*#__PURE__*/React.createElement(Tree, Object.assign({\n    ref: treeRef,\n    focusable: false,\n    prefixCls: \"\".concat(prefixCls, \"-tree\"),\n    treeData: memoOptions,\n    height: height,\n    itemHeight: itemHeight,\n    virtual: virtual,\n    multiple: multiple,\n    icon: treeIcon,\n    showIcon: showTreeIcon,\n    switcherIcon: switcherIcon,\n    showLine: treeLine,\n    loadData: searchValue ? null : loadData,\n    motion: treeMotion,\n    // We handle keys by out instead tree self\n    checkable: checkable,\n    checkStrictly: true,\n    checkedKeys: mergedCheckedKeys,\n    selectedKeys: !checkable ? valueKeys : [],\n    defaultExpandAll: treeDefaultExpandAll\n  }, treeProps, {\n    // Proxy event out\n    onActiveChange: setActiveKey,\n    onSelect: onInternalSelect,\n    onCheck: onInternalSelect,\n    onExpand: onInternalExpand,\n    onLoad: onTreeLoad,\n    filterTreeNode: filterTreeNode\n  })));\n};\n\nvar RefOptionList = /*#__PURE__*/React.forwardRef(OptionList);\nRefOptionList.displayName = 'OptionList';\nexport default RefOptionList;","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-tree-select/es/OptionList.js"],"names":["_toConsumableArray","_slicedToArray","React","KeyCode","useMemo","Tree","SelectContext","useKeyValueMapping","useKeyValueMap","HIDDEN_STYLE","width","height","display","overflow","opacity","border","padding","margin","OptionList","props","ref","prefixCls","itemHeight","virtual","options","flattenOptions","multiple","searchValue","onSelect","onToggleOpen","open","notFoundContent","onMouseEnter","_React$useContext","useContext","checkable","checkedKeys","halfCheckedKeys","treeExpandedKeys","treeDefaultExpandAll","treeDefaultExpandedKeys","onTreeExpand","treeIcon","showTreeIcon","switcherIcon","treeLine","treeNodeFilterProp","loadData","treeLoadedKeys","treeMotion","onTreeLoad","treeRef","useRef","memoOptions","prev","next","_useKeyValueMap","_useKeyValueMap2","cacheKeyMap","cacheValueMap","_useKeyValueMapping","_useKeyValueMapping2","getEntityByKey","getEntityByValue","valueKeys","map","val","entity","key","mergedCheckedKeys","checked","halfChecked","useEffect","length","_treeRef$current","current","scrollTo","lowerSearchValue","String","toLowerCase","filterTreeNode","treeNode","includes","_React$useState","useState","_React$useState2","expandedKeys","setExpandedKeys","_React$useState3","_React$useState4","searchExpandedKeys","setSearchExpandedKeys","mergedExpandedKeys","o","onInternalExpand","keys","onListMouseDown","event","preventDefault","onInternalSelect","_","_ref","node","data","value","selected","_React$useState5","_React$useState6","activeKey","setActiveKey","activeEntity","useImperativeHandle","onKeyDown","_treeRef$current2","which","UP","DOWN","LEFT","RIGHT","ENTER","ESC","onKeyUp","createElement","role","className","concat","onMouseDown","treeProps","loadedKeys","style","Object","assign","focusable","treeData","icon","showIcon","showLine","motion","checkStrictly","selectedKeys","defaultExpandAll","onActiveChange","onCheck","onExpand","onLoad","RefOptionList","forwardRef","displayName"],"mappings":"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","sourcesContent":["import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport Tree from 'rc-tree';\nimport { SelectContext } from './Context';\nimport useKeyValueMapping from './hooks/useKeyValueMapping';\nimport useKeyValueMap from './hooks/useKeyValueMap';\nvar HIDDEN_STYLE = {\n  width: 0,\n  height: 0,\n  display: 'flex',\n  overflow: 'hidden',\n  opacity: 0,\n  border: 0,\n  padding: 0,\n  margin: 0\n};\n\nvar OptionList = function OptionList(props, ref) {\n  var prefixCls = props.prefixCls,\n      height = props.height,\n      itemHeight = props.itemHeight,\n      virtual = props.virtual,\n      options = props.options,\n      flattenOptions = props.flattenOptions,\n      multiple = props.multiple,\n      searchValue = props.searchValue,\n      onSelect = props.onSelect,\n      onToggleOpen = props.onToggleOpen,\n      open = props.open,\n      notFoundContent = props.notFoundContent,\n      onMouseEnter = props.onMouseEnter;\n\n  var _React$useContext = React.useContext(SelectContext),\n      checkable = _React$useContext.checkable,\n      checkedKeys = _React$useContext.checkedKeys,\n      halfCheckedKeys = _React$useContext.halfCheckedKeys,\n      treeExpandedKeys = _React$useContext.treeExpandedKeys,\n      treeDefaultExpandAll = _React$useContext.treeDefaultExpandAll,\n      treeDefaultExpandedKeys = _React$useContext.treeDefaultExpandedKeys,\n      onTreeExpand = _React$useContext.onTreeExpand,\n      treeIcon = _React$useContext.treeIcon,\n      showTreeIcon = _React$useContext.showTreeIcon,\n      switcherIcon = _React$useContext.switcherIcon,\n      treeLine = _React$useContext.treeLine,\n      treeNodeFilterProp = _React$useContext.treeNodeFilterProp,\n      loadData = _React$useContext.loadData,\n      treeLoadedKeys = _React$useContext.treeLoadedKeys,\n      treeMotion = _React$useContext.treeMotion,\n      onTreeLoad = _React$useContext.onTreeLoad;\n\n  var treeRef = React.useRef();\n  var memoOptions = useMemo(function () {\n    return options;\n  }, [open, options], function (prev, next) {\n    return next[0] && prev[1] !== next[1];\n  });\n\n  var _useKeyValueMap = useKeyValueMap(flattenOptions),\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]; // ========================== Values ==========================\n\n\n  var valueKeys = React.useMemo(function () {\n    return checkedKeys.map(function (val) {\n      var entity = getEntityByValue(val);\n      return entity ? entity.key : null;\n    });\n  }, [checkedKeys]);\n  var mergedCheckedKeys = React.useMemo(function () {\n    if (!checkable) {\n      return null;\n    }\n\n    return {\n      checked: valueKeys,\n      halfChecked: halfCheckedKeys\n    };\n  }, [valueKeys, halfCheckedKeys, checkable]); // ========================== Scroll ==========================\n\n  React.useEffect(function () {\n    // Single mode should scroll to current key\n    if (open && !multiple && valueKeys.length) {\n      var _treeRef$current;\n\n      (_treeRef$current = treeRef.current) === null || _treeRef$current === void 0 ? void 0 : _treeRef$current.scrollTo({\n        key: valueKeys[0]\n      });\n    }\n  }, [open]); // ========================== Search ==========================\n\n  var lowerSearchValue = String(searchValue).toLowerCase();\n\n  var filterTreeNode = function filterTreeNode(treeNode) {\n    if (!lowerSearchValue) {\n      return false;\n    }\n\n    return String(treeNode[treeNodeFilterProp]).toLowerCase().includes(lowerSearchValue);\n  }; // =========================== Keys ===========================\n\n\n  var _React$useState = React.useState(treeDefaultExpandedKeys),\n      _React$useState2 = _slicedToArray(_React$useState, 2),\n      expandedKeys = _React$useState2[0],\n      setExpandedKeys = _React$useState2[1];\n\n  var _React$useState3 = React.useState(null),\n      _React$useState4 = _slicedToArray(_React$useState3, 2),\n      searchExpandedKeys = _React$useState4[0],\n      setSearchExpandedKeys = _React$useState4[1];\n\n  var mergedExpandedKeys = React.useMemo(function () {\n    if (treeExpandedKeys) {\n      return _toConsumableArray(treeExpandedKeys);\n    }\n\n    return searchValue ? searchExpandedKeys : expandedKeys;\n  }, [expandedKeys, searchExpandedKeys, lowerSearchValue, treeExpandedKeys]);\n  React.useEffect(function () {\n    if (searchValue) {\n      setSearchExpandedKeys(flattenOptions.map(function (o) {\n        return o.key;\n      }));\n    }\n  }, [searchValue]);\n\n  var onInternalExpand = function onInternalExpand(keys) {\n    setExpandedKeys(keys);\n    setSearchExpandedKeys(keys);\n\n    if (onTreeExpand) {\n      onTreeExpand(keys);\n    }\n  }; // ========================== Events ==========================\n\n\n  var onListMouseDown = function onListMouseDown(event) {\n    event.preventDefault();\n  };\n\n  var onInternalSelect = function onInternalSelect(_, _ref) {\n    var key = _ref.node.key;\n    var entity = getEntityByKey(key, checkable ? 'checkbox' : 'select');\n\n    if (entity !== null) {\n      onSelect(entity.data.value, {\n        selected: !checkedKeys.includes(entity.data.value)\n      });\n    }\n\n    if (!multiple) {\n      onToggleOpen(false);\n    }\n  }; // ========================= Keyboard =========================\n\n\n  var _React$useState5 = React.useState(null),\n      _React$useState6 = _slicedToArray(_React$useState5, 2),\n      activeKey = _React$useState6[0],\n      setActiveKey = _React$useState6[1];\n\n  var activeEntity = getEntityByKey(activeKey);\n  React.useImperativeHandle(ref, function () {\n    return {\n      onKeyDown: function onKeyDown(event) {\n        var _treeRef$current2;\n\n        var which = event.which;\n\n        switch (which) {\n          // >>> Arrow keys\n          case KeyCode.UP:\n          case KeyCode.DOWN:\n          case KeyCode.LEFT:\n          case KeyCode.RIGHT:\n            (_treeRef$current2 = treeRef.current) === null || _treeRef$current2 === void 0 ? void 0 : _treeRef$current2.onKeyDown(event);\n            break;\n          // >>> Select item\n\n          case KeyCode.ENTER:\n            {\n              if (activeEntity !== null) {\n                onInternalSelect(null, {\n                  node: {\n                    key: activeKey\n                  },\n                  selected: !checkedKeys.includes(activeEntity.data.value)\n                });\n              }\n\n              break;\n            }\n          // >>> Close\n\n          case KeyCode.ESC:\n            {\n              onToggleOpen(false);\n            }\n        }\n      },\n      onKeyUp: function onKeyUp() {}\n    };\n  }); // ========================== Render ==========================\n\n  if (memoOptions.length === 0) {\n    return /*#__PURE__*/React.createElement(\"div\", {\n      role: \"listbox\",\n      className: \"\".concat(prefixCls, \"-empty\"),\n      onMouseDown: onListMouseDown\n    }, notFoundContent);\n  }\n\n  var treeProps = {};\n\n  if (treeLoadedKeys) {\n    treeProps.loadedKeys = treeLoadedKeys;\n  }\n\n  if (mergedExpandedKeys) {\n    treeProps.expandedKeys = mergedExpandedKeys;\n  }\n\n  return /*#__PURE__*/React.createElement(\"div\", {\n    onMouseDown: onListMouseDown,\n    onMouseEnter: onMouseEnter\n  }, activeEntity && open && /*#__PURE__*/React.createElement(\"span\", {\n    style: HIDDEN_STYLE,\n    \"aria-live\": \"assertive\"\n  }, activeEntity.data.value), /*#__PURE__*/React.createElement(Tree, Object.assign({\n    ref: treeRef,\n    focusable: false,\n    prefixCls: \"\".concat(prefixCls, \"-tree\"),\n    treeData: memoOptions,\n    height: height,\n    itemHeight: itemHeight,\n    virtual: virtual,\n    multiple: multiple,\n    icon: treeIcon,\n    showIcon: showTreeIcon,\n    switcherIcon: switcherIcon,\n    showLine: treeLine,\n    loadData: searchValue ? null : loadData,\n    motion: treeMotion,\n    // We handle keys by out instead tree self\n    checkable: checkable,\n    checkStrictly: true,\n    checkedKeys: mergedCheckedKeys,\n    selectedKeys: !checkable ? valueKeys : [],\n    defaultExpandAll: treeDefaultExpandAll\n  }, treeProps, {\n    // Proxy event out\n    onActiveChange: setActiveKey,\n    onSelect: onInternalSelect,\n    onCheck: onInternalSelect,\n    onExpand: onInternalExpand,\n    onLoad: onTreeLoad,\n    filterTreeNode: filterTreeNode\n  })));\n};\n\nvar RefOptionList = /*#__PURE__*/React.forwardRef(OptionList);\nRefOptionList.displayName = 'OptionList';\nexport default RefOptionList;"]},"metadata":{},"sourceType":"module"}