2845b29758fc5781aec501f51ae06f2c.json 23.1 KB
{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState } from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport { CSSMotionList } from 'rc-motion';\nimport TransBtn from '../TransBtn';\nimport Input from './Input';\nimport useLayoutEffect from '../hooks/useLayoutEffect';\nvar REST_TAG_KEY = '__RC_SELECT_MAX_REST_COUNT__';\n\nvar SelectSelector = function SelectSelector(props) {\n  var id = props.id,\n      prefixCls = props.prefixCls,\n      values = props.values,\n      open = props.open,\n      searchValue = props.searchValue,\n      inputRef = props.inputRef,\n      placeholder = props.placeholder,\n      disabled = props.disabled,\n      mode = props.mode,\n      showSearch = props.showSearch,\n      autoFocus = props.autoFocus,\n      autoComplete = props.autoComplete,\n      accessibilityIndex = props.accessibilityIndex,\n      tabIndex = props.tabIndex,\n      removeIcon = props.removeIcon,\n      choiceTransitionName = props.choiceTransitionName,\n      maxTagCount = props.maxTagCount,\n      maxTagTextLength = props.maxTagTextLength,\n      _props$maxTagPlacehol = props.maxTagPlaceholder,\n      maxTagPlaceholder = _props$maxTagPlacehol === void 0 ? function (omittedValues) {\n    return \"+ \".concat(omittedValues.length, \" ...\");\n  } : _props$maxTagPlacehol,\n      tagRender = props.tagRender,\n      onSelect = props.onSelect,\n      onInputChange = props.onInputChange,\n      onInputPaste = props.onInputPaste,\n      onInputKeyDown = props.onInputKeyDown,\n      onInputMouseDown = props.onInputMouseDown,\n      onInputCompositionStart = props.onInputCompositionStart,\n      onInputCompositionEnd = props.onInputCompositionEnd;\n\n  var _useState = useState(false),\n      _useState2 = _slicedToArray(_useState, 2),\n      motionAppear = _useState2[0],\n      setMotionAppear = _useState2[1];\n\n  var measureRef = React.useRef(null);\n\n  var _useState3 = useState(0),\n      _useState4 = _slicedToArray(_useState3, 2),\n      inputWidth = _useState4[0],\n      setInputWidth = _useState4[1];\n\n  var _useState5 = useState(false),\n      _useState6 = _slicedToArray(_useState5, 2),\n      focused = _useState6[0],\n      setFocused = _useState6[1]; // ===================== Motion ======================\n\n\n  React.useEffect(function () {\n    setMotionAppear(true);\n  }, []); // ===================== Search ======================\n\n  var inputValue = open || mode === 'tags' ? searchValue : '';\n  var inputEditable = mode === 'tags' || showSearch && (open || focused); // We measure width and set to the input immediately\n\n  useLayoutEffect(function () {\n    setInputWidth(measureRef.current.scrollWidth);\n  }, [inputValue]); // ==================== Selection ====================\n\n  var displayValues = values; // Cut by `maxTagCount`\n\n  var restCount;\n\n  if (typeof maxTagCount === 'number') {\n    restCount = values.length - maxTagCount;\n    displayValues = values.slice(0, maxTagCount);\n  } // Update by `maxTagTextLength`\n\n\n  if (typeof maxTagTextLength === 'number') {\n    displayValues = displayValues.map(function (_ref) {\n      var label = _ref.label,\n          rest = _objectWithoutProperties(_ref, [\"label\"]);\n\n      var displayLabel = label;\n\n      if (typeof label === 'string' || typeof label === 'number') {\n        var strLabel = String(displayLabel);\n\n        if (strLabel.length > maxTagTextLength) {\n          displayLabel = \"\".concat(strLabel.slice(0, maxTagTextLength), \"...\");\n        }\n      }\n\n      return _objectSpread(_objectSpread({}, rest), {}, {\n        label: displayLabel\n      });\n    });\n  } // Fill rest\n\n\n  if (restCount > 0) {\n    displayValues.push({\n      key: REST_TAG_KEY,\n      label: typeof maxTagPlaceholder === 'function' ? maxTagPlaceholder(values.slice(maxTagCount)) : maxTagPlaceholder\n    });\n  }\n\n  var selectionNode = React.createElement(CSSMotionList, {\n    component: false,\n    keys: displayValues,\n    motionName: choiceTransitionName,\n    motionAppear: motionAppear\n  }, function (_ref2) {\n    var key = _ref2.key,\n        label = _ref2.label,\n        value = _ref2.value,\n        itemDisabled = _ref2.disabled,\n        className = _ref2.className,\n        style = _ref2.style;\n    var mergedKey = key || value;\n    var closable = !disabled && key !== REST_TAG_KEY && !itemDisabled;\n\n    var onMouseDown = function onMouseDown(event) {\n      event.preventDefault();\n      event.stopPropagation();\n    };\n\n    var onClose = function onClose(event) {\n      if (event) event.stopPropagation();\n      onSelect(value, {\n        selected: false\n      });\n    };\n\n    return typeof tagRender === 'function' ? React.createElement(\"span\", {\n      key: mergedKey,\n      onMouseDown: onMouseDown,\n      className: className,\n      style: style\n    }, tagRender({\n      label: label,\n      value: value,\n      disabled: itemDisabled,\n      closable: closable,\n      onClose: onClose\n    })) : React.createElement(\"span\", {\n      key: mergedKey,\n      className: classNames(className, \"\".concat(prefixCls, \"-selection-item\"), _defineProperty({}, \"\".concat(prefixCls, \"-selection-item-disabled\"), itemDisabled)),\n      style: style\n    }, React.createElement(\"span\", {\n      className: \"\".concat(prefixCls, \"-selection-item-content\")\n    }, label), closable && React.createElement(TransBtn, {\n      className: \"\".concat(prefixCls, \"-selection-item-remove\"),\n      onMouseDown: onMouseDown,\n      onClick: onClose,\n      customizeIcon: removeIcon\n    }, \"\\xD7\"));\n  });\n  return React.createElement(React.Fragment, null, selectionNode, React.createElement(\"span\", {\n    className: \"\".concat(prefixCls, \"-selection-search\"),\n    style: {\n      width: inputWidth\n    },\n    onFocus: function onFocus() {\n      setFocused(true);\n    },\n    onBlur: function onBlur() {\n      setFocused(false);\n    }\n  }, React.createElement(Input, {\n    ref: inputRef,\n    open: open,\n    prefixCls: prefixCls,\n    id: id,\n    inputElement: null,\n    disabled: disabled,\n    autoFocus: autoFocus,\n    autoComplete: autoComplete,\n    editable: inputEditable,\n    accessibilityIndex: accessibilityIndex,\n    value: inputValue,\n    onKeyDown: onInputKeyDown,\n    onMouseDown: onInputMouseDown,\n    onChange: onInputChange,\n    onPaste: onInputPaste,\n    onCompositionStart: onInputCompositionStart,\n    onCompositionEnd: onInputCompositionEnd,\n    tabIndex: tabIndex,\n    attrs: pickAttrs(props, true)\n  }), React.createElement(\"span\", {\n    ref: measureRef,\n    className: \"\".concat(prefixCls, \"-selection-search-mirror\"),\n    \"aria-hidden\": true\n  }, inputValue, \"\\xA0\")), !values.length && !inputValue && React.createElement(\"span\", {\n    className: \"\".concat(prefixCls, \"-selection-placeholder\")\n  }, placeholder));\n};\n\nexport default SelectSelector;","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-select/es/Selector/MultipleSelector.js"],"names":["_defineProperty","_objectSpread","_objectWithoutProperties","_slicedToArray","React","useState","classNames","pickAttrs","CSSMotionList","TransBtn","Input","useLayoutEffect","REST_TAG_KEY","SelectSelector","props","id","prefixCls","values","open","searchValue","inputRef","placeholder","disabled","mode","showSearch","autoFocus","autoComplete","accessibilityIndex","tabIndex","removeIcon","choiceTransitionName","maxTagCount","maxTagTextLength","_props$maxTagPlacehol","maxTagPlaceholder","omittedValues","concat","length","tagRender","onSelect","onInputChange","onInputPaste","onInputKeyDown","onInputMouseDown","onInputCompositionStart","onInputCompositionEnd","_useState","_useState2","motionAppear","setMotionAppear","measureRef","useRef","_useState3","_useState4","inputWidth","setInputWidth","_useState5","_useState6","focused","setFocused","useEffect","inputValue","inputEditable","current","scrollWidth","displayValues","restCount","slice","map","_ref","label","rest","displayLabel","strLabel","String","push","key","selectionNode","createElement","component","keys","motionName","_ref2","value","itemDisabled","className","style","mergedKey","closable","onMouseDown","event","preventDefault","stopPropagation","onClose","selected","onClick","customizeIcon","Fragment","width","onFocus","onBlur","ref","inputElement","editable","onKeyDown","onChange","onPaste","onCompositionStart","onCompositionEnd","attrs"],"mappings":"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","sourcesContent":["import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState } from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport { CSSMotionList } from 'rc-motion';\nimport TransBtn from '../TransBtn';\nimport Input from './Input';\nimport useLayoutEffect from '../hooks/useLayoutEffect';\nvar REST_TAG_KEY = '__RC_SELECT_MAX_REST_COUNT__';\n\nvar SelectSelector = function SelectSelector(props) {\n  var id = props.id,\n      prefixCls = props.prefixCls,\n      values = props.values,\n      open = props.open,\n      searchValue = props.searchValue,\n      inputRef = props.inputRef,\n      placeholder = props.placeholder,\n      disabled = props.disabled,\n      mode = props.mode,\n      showSearch = props.showSearch,\n      autoFocus = props.autoFocus,\n      autoComplete = props.autoComplete,\n      accessibilityIndex = props.accessibilityIndex,\n      tabIndex = props.tabIndex,\n      removeIcon = props.removeIcon,\n      choiceTransitionName = props.choiceTransitionName,\n      maxTagCount = props.maxTagCount,\n      maxTagTextLength = props.maxTagTextLength,\n      _props$maxTagPlacehol = props.maxTagPlaceholder,\n      maxTagPlaceholder = _props$maxTagPlacehol === void 0 ? function (omittedValues) {\n    return \"+ \".concat(omittedValues.length, \" ...\");\n  } : _props$maxTagPlacehol,\n      tagRender = props.tagRender,\n      onSelect = props.onSelect,\n      onInputChange = props.onInputChange,\n      onInputPaste = props.onInputPaste,\n      onInputKeyDown = props.onInputKeyDown,\n      onInputMouseDown = props.onInputMouseDown,\n      onInputCompositionStart = props.onInputCompositionStart,\n      onInputCompositionEnd = props.onInputCompositionEnd;\n\n  var _useState = useState(false),\n      _useState2 = _slicedToArray(_useState, 2),\n      motionAppear = _useState2[0],\n      setMotionAppear = _useState2[1];\n\n  var measureRef = React.useRef(null);\n\n  var _useState3 = useState(0),\n      _useState4 = _slicedToArray(_useState3, 2),\n      inputWidth = _useState4[0],\n      setInputWidth = _useState4[1];\n\n  var _useState5 = useState(false),\n      _useState6 = _slicedToArray(_useState5, 2),\n      focused = _useState6[0],\n      setFocused = _useState6[1]; // ===================== Motion ======================\n\n\n  React.useEffect(function () {\n    setMotionAppear(true);\n  }, []); // ===================== Search ======================\n\n  var inputValue = open || mode === 'tags' ? searchValue : '';\n  var inputEditable = mode === 'tags' || showSearch && (open || focused); // We measure width and set to the input immediately\n\n  useLayoutEffect(function () {\n    setInputWidth(measureRef.current.scrollWidth);\n  }, [inputValue]); // ==================== Selection ====================\n\n  var displayValues = values; // Cut by `maxTagCount`\n\n  var restCount;\n\n  if (typeof maxTagCount === 'number') {\n    restCount = values.length - maxTagCount;\n    displayValues = values.slice(0, maxTagCount);\n  } // Update by `maxTagTextLength`\n\n\n  if (typeof maxTagTextLength === 'number') {\n    displayValues = displayValues.map(function (_ref) {\n      var label = _ref.label,\n          rest = _objectWithoutProperties(_ref, [\"label\"]);\n\n      var displayLabel = label;\n\n      if (typeof label === 'string' || typeof label === 'number') {\n        var strLabel = String(displayLabel);\n\n        if (strLabel.length > maxTagTextLength) {\n          displayLabel = \"\".concat(strLabel.slice(0, maxTagTextLength), \"...\");\n        }\n      }\n\n      return _objectSpread(_objectSpread({}, rest), {}, {\n        label: displayLabel\n      });\n    });\n  } // Fill rest\n\n\n  if (restCount > 0) {\n    displayValues.push({\n      key: REST_TAG_KEY,\n      label: typeof maxTagPlaceholder === 'function' ? maxTagPlaceholder(values.slice(maxTagCount)) : maxTagPlaceholder\n    });\n  }\n\n  var selectionNode = React.createElement(CSSMotionList, {\n    component: false,\n    keys: displayValues,\n    motionName: choiceTransitionName,\n    motionAppear: motionAppear\n  }, function (_ref2) {\n    var key = _ref2.key,\n        label = _ref2.label,\n        value = _ref2.value,\n        itemDisabled = _ref2.disabled,\n        className = _ref2.className,\n        style = _ref2.style;\n    var mergedKey = key || value;\n    var closable = !disabled && key !== REST_TAG_KEY && !itemDisabled;\n\n    var onMouseDown = function onMouseDown(event) {\n      event.preventDefault();\n      event.stopPropagation();\n    };\n\n    var onClose = function onClose(event) {\n      if (event) event.stopPropagation();\n      onSelect(value, {\n        selected: false\n      });\n    };\n\n    return typeof tagRender === 'function' ? React.createElement(\"span\", {\n      key: mergedKey,\n      onMouseDown: onMouseDown,\n      className: className,\n      style: style\n    }, tagRender({\n      label: label,\n      value: value,\n      disabled: itemDisabled,\n      closable: closable,\n      onClose: onClose\n    })) : React.createElement(\"span\", {\n      key: mergedKey,\n      className: classNames(className, \"\".concat(prefixCls, \"-selection-item\"), _defineProperty({}, \"\".concat(prefixCls, \"-selection-item-disabled\"), itemDisabled)),\n      style: style\n    }, React.createElement(\"span\", {\n      className: \"\".concat(prefixCls, \"-selection-item-content\")\n    }, label), closable && React.createElement(TransBtn, {\n      className: \"\".concat(prefixCls, \"-selection-item-remove\"),\n      onMouseDown: onMouseDown,\n      onClick: onClose,\n      customizeIcon: removeIcon\n    }, \"\\xD7\"));\n  });\n  return React.createElement(React.Fragment, null, selectionNode, React.createElement(\"span\", {\n    className: \"\".concat(prefixCls, \"-selection-search\"),\n    style: {\n      width: inputWidth\n    },\n    onFocus: function onFocus() {\n      setFocused(true);\n    },\n    onBlur: function onBlur() {\n      setFocused(false);\n    }\n  }, React.createElement(Input, {\n    ref: inputRef,\n    open: open,\n    prefixCls: prefixCls,\n    id: id,\n    inputElement: null,\n    disabled: disabled,\n    autoFocus: autoFocus,\n    autoComplete: autoComplete,\n    editable: inputEditable,\n    accessibilityIndex: accessibilityIndex,\n    value: inputValue,\n    onKeyDown: onInputKeyDown,\n    onMouseDown: onInputMouseDown,\n    onChange: onInputChange,\n    onPaste: onInputPaste,\n    onCompositionStart: onInputCompositionStart,\n    onCompositionEnd: onInputCompositionEnd,\n    tabIndex: tabIndex,\n    attrs: pickAttrs(props, true)\n  }), React.createElement(\"span\", {\n    ref: measureRef,\n    className: \"\".concat(prefixCls, \"-selection-search-mirror\"),\n    \"aria-hidden\": true\n  }, inputValue, \"\\xA0\")), !values.length && !inputValue && React.createElement(\"span\", {\n    className: \"\".concat(prefixCls, \"-selection-placeholder\")\n  }, placeholder));\n};\n\nexport default SelectSelector;"]},"metadata":{},"sourceType":"module"}