1a57e79da0cc32856f13bda30ce64d41.json 16.8 KB
{"ast":null,"code":"import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/**\n * Cursor rule:\n * 1. Only `showSearch` enabled\n * 2. Only `open` is `true`\n * 3. When typing, set `open` to `true` which hit rule of 2\n *\n * Accessibility:\n * - https://www.w3.org/TR/wai-aria-practices/examples/combobox/aria1.1pattern/listbox-combo.html\n */\n\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport MultipleSelector from './MultipleSelector';\nimport SingleSelector from './SingleSelector';\nimport useLock from '../hooks/useLock';\n\nvar Selector = function Selector(props, ref) {\n  var inputRef = useRef(null);\n  var compositionStatusRef = useRef(false);\n  var prefixCls = props.prefixCls,\n      multiple = props.multiple,\n      open = props.open,\n      mode = props.mode,\n      showSearch = props.showSearch,\n      tokenWithEnter = props.tokenWithEnter,\n      onSearch = props.onSearch,\n      onSearchSubmit = props.onSearchSubmit,\n      onToggleOpen = props.onToggleOpen,\n      onInputKeyDown = props.onInputKeyDown,\n      domRef = props.domRef; // ======================= Ref =======================\n\n  React.useImperativeHandle(ref, function () {\n    return {\n      focus: function focus() {\n        inputRef.current.focus();\n      },\n      blur: function blur() {\n        inputRef.current.blur();\n      }\n    };\n  }); // ====================== Input ======================\n\n  var _useLock = useLock(0),\n      _useLock2 = _slicedToArray(_useLock, 2),\n      getInputMouseDown = _useLock2[0],\n      setInputMouseDown = _useLock2[1];\n\n  var onInternalInputKeyDown = function onInternalInputKeyDown(event) {\n    var which = event.which;\n\n    if (which === KeyCode.UP || which === KeyCode.DOWN) {\n      event.preventDefault();\n    }\n\n    if (onInputKeyDown) {\n      onInputKeyDown(event);\n    }\n\n    if (which === KeyCode.ENTER && mode === 'tags' && !compositionStatusRef.current && !open) {\n      // When menu isn't open, OptionList won't trigger a value change\n      // So when enter is pressed, the tag's input value should be emitted here to let selector know\n      onSearchSubmit(event.target.value);\n    }\n\n    if (![KeyCode.SHIFT, KeyCode.TAB, KeyCode.BACKSPACE, KeyCode.ESC].includes(which)) {\n      onToggleOpen(true);\n    }\n  };\n  /**\n   * We can not use `findDOMNode` sine it will get warning,\n   * have to use timer to check if is input element.\n   */\n\n\n  var onInternalInputMouseDown = function onInternalInputMouseDown() {\n    setInputMouseDown(true);\n  }; // When paste come, ignore next onChange\n\n\n  var pastedTextRef = useRef(null);\n\n  var triggerOnSearch = function triggerOnSearch(value) {\n    if (onSearch(value, true, compositionStatusRef.current) !== false) {\n      onToggleOpen(true);\n    }\n  };\n\n  var onInputCompositionStart = function onInputCompositionStart() {\n    compositionStatusRef.current = true;\n  };\n\n  var onInputCompositionEnd = function onInputCompositionEnd() {\n    compositionStatusRef.current = false;\n  };\n\n  var onInputChange = function onInputChange(event) {\n    var value = event.target.value; // Pasted text should replace back to origin content\n\n    if (tokenWithEnter && pastedTextRef.current && /[\\r\\n]/.test(pastedTextRef.current)) {\n      // CRLF will be treated as a single space for input element\n      var replacedText = pastedTextRef.current.replace(/\\r\\n/g, ' ').replace(/[\\r\\n]/g, ' ');\n      value = value.replace(replacedText, pastedTextRef.current);\n    }\n\n    pastedTextRef.current = null;\n    triggerOnSearch(value);\n  };\n\n  var onInputPaste = function onInputPaste(e) {\n    var clipboardData = e.clipboardData;\n    var value = clipboardData.getData('text');\n    pastedTextRef.current = value;\n  };\n\n  var onClick = function onClick(_ref) {\n    var target = _ref.target;\n\n    if (target !== inputRef.current) {\n      // Should focus input if click the selector\n      var isIE = document.body.style.msTouchAction !== undefined;\n\n      if (isIE) {\n        setTimeout(function () {\n          inputRef.current.focus();\n        });\n      } else {\n        inputRef.current.focus();\n      }\n    }\n  };\n\n  var onMouseDown = function onMouseDown(event) {\n    var inputMouseDown = getInputMouseDown();\n\n    if (event.target !== inputRef.current && !inputMouseDown) {\n      event.preventDefault();\n    }\n\n    if (mode !== 'combobox' && (!showSearch || !inputMouseDown) || !open) {\n      if (open) {\n        onSearch('', true, false);\n      }\n\n      onToggleOpen();\n    }\n  }; // ================= Inner Selector ==================\n\n\n  var sharedProps = {\n    inputRef: inputRef,\n    onInputKeyDown: onInternalInputKeyDown,\n    onInputMouseDown: onInternalInputMouseDown,\n    onInputChange: onInputChange,\n    onInputPaste: onInputPaste,\n    onInputCompositionStart: onInputCompositionStart,\n    onInputCompositionEnd: onInputCompositionEnd\n  };\n  var selectNode = multiple ? React.createElement(MultipleSelector, Object.assign({}, props, sharedProps)) : React.createElement(SingleSelector, Object.assign({}, props, sharedProps));\n  return React.createElement(\"div\", {\n    ref: domRef,\n    className: \"\".concat(prefixCls, \"-selector\"),\n    onClick: onClick,\n    onMouseDown: onMouseDown\n  }, selectNode);\n};\n\nvar ForwardSelector = React.forwardRef(Selector);\nForwardSelector.displayName = 'Selector';\nexport default ForwardSelector;","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-select/es/Selector/index.js"],"names":["_slicedToArray","React","useRef","KeyCode","MultipleSelector","SingleSelector","useLock","Selector","props","ref","inputRef","compositionStatusRef","prefixCls","multiple","open","mode","showSearch","tokenWithEnter","onSearch","onSearchSubmit","onToggleOpen","onInputKeyDown","domRef","useImperativeHandle","focus","current","blur","_useLock","_useLock2","getInputMouseDown","setInputMouseDown","onInternalInputKeyDown","event","which","UP","DOWN","preventDefault","ENTER","target","value","SHIFT","TAB","BACKSPACE","ESC","includes","onInternalInputMouseDown","pastedTextRef","triggerOnSearch","onInputCompositionStart","onInputCompositionEnd","onInputChange","test","replacedText","replace","onInputPaste","e","clipboardData","getData","onClick","_ref","isIE","document","body","style","msTouchAction","undefined","setTimeout","onMouseDown","inputMouseDown","sharedProps","onInputMouseDown","selectNode","createElement","Object","assign","className","concat","ForwardSelector","forwardRef","displayName"],"mappings":"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","sourcesContent":["import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n\n/**\n * Cursor rule:\n * 1. Only `showSearch` enabled\n * 2. Only `open` is `true`\n * 3. When typing, set `open` to `true` which hit rule of 2\n *\n * Accessibility:\n * - https://www.w3.org/TR/wai-aria-practices/examples/combobox/aria1.1pattern/listbox-combo.html\n */\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport MultipleSelector from './MultipleSelector';\nimport SingleSelector from './SingleSelector';\nimport useLock from '../hooks/useLock';\n\nvar Selector = function Selector(props, ref) {\n  var inputRef = useRef(null);\n  var compositionStatusRef = useRef(false);\n  var prefixCls = props.prefixCls,\n      multiple = props.multiple,\n      open = props.open,\n      mode = props.mode,\n      showSearch = props.showSearch,\n      tokenWithEnter = props.tokenWithEnter,\n      onSearch = props.onSearch,\n      onSearchSubmit = props.onSearchSubmit,\n      onToggleOpen = props.onToggleOpen,\n      onInputKeyDown = props.onInputKeyDown,\n      domRef = props.domRef; // ======================= Ref =======================\n\n  React.useImperativeHandle(ref, function () {\n    return {\n      focus: function focus() {\n        inputRef.current.focus();\n      },\n      blur: function blur() {\n        inputRef.current.blur();\n      }\n    };\n  }); // ====================== Input ======================\n\n  var _useLock = useLock(0),\n      _useLock2 = _slicedToArray(_useLock, 2),\n      getInputMouseDown = _useLock2[0],\n      setInputMouseDown = _useLock2[1];\n\n  var onInternalInputKeyDown = function onInternalInputKeyDown(event) {\n    var which = event.which;\n\n    if (which === KeyCode.UP || which === KeyCode.DOWN) {\n      event.preventDefault();\n    }\n\n    if (onInputKeyDown) {\n      onInputKeyDown(event);\n    }\n\n    if (which === KeyCode.ENTER && mode === 'tags' && !compositionStatusRef.current && !open) {\n      // When menu isn't open, OptionList won't trigger a value change\n      // So when enter is pressed, the tag's input value should be emitted here to let selector know\n      onSearchSubmit(event.target.value);\n    }\n\n    if (![KeyCode.SHIFT, KeyCode.TAB, KeyCode.BACKSPACE, KeyCode.ESC].includes(which)) {\n      onToggleOpen(true);\n    }\n  };\n  /**\n   * We can not use `findDOMNode` sine it will get warning,\n   * have to use timer to check if is input element.\n   */\n\n\n  var onInternalInputMouseDown = function onInternalInputMouseDown() {\n    setInputMouseDown(true);\n  }; // When paste come, ignore next onChange\n\n\n  var pastedTextRef = useRef(null);\n\n  var triggerOnSearch = function triggerOnSearch(value) {\n    if (onSearch(value, true, compositionStatusRef.current) !== false) {\n      onToggleOpen(true);\n    }\n  };\n\n  var onInputCompositionStart = function onInputCompositionStart() {\n    compositionStatusRef.current = true;\n  };\n\n  var onInputCompositionEnd = function onInputCompositionEnd() {\n    compositionStatusRef.current = false;\n  };\n\n  var onInputChange = function onInputChange(event) {\n    var value = event.target.value; // Pasted text should replace back to origin content\n\n    if (tokenWithEnter && pastedTextRef.current && /[\\r\\n]/.test(pastedTextRef.current)) {\n      // CRLF will be treated as a single space for input element\n      var replacedText = pastedTextRef.current.replace(/\\r\\n/g, ' ').replace(/[\\r\\n]/g, ' ');\n      value = value.replace(replacedText, pastedTextRef.current);\n    }\n\n    pastedTextRef.current = null;\n    triggerOnSearch(value);\n  };\n\n  var onInputPaste = function onInputPaste(e) {\n    var clipboardData = e.clipboardData;\n    var value = clipboardData.getData('text');\n    pastedTextRef.current = value;\n  };\n\n  var onClick = function onClick(_ref) {\n    var target = _ref.target;\n\n    if (target !== inputRef.current) {\n      // Should focus input if click the selector\n      var isIE = document.body.style.msTouchAction !== undefined;\n\n      if (isIE) {\n        setTimeout(function () {\n          inputRef.current.focus();\n        });\n      } else {\n        inputRef.current.focus();\n      }\n    }\n  };\n\n  var onMouseDown = function onMouseDown(event) {\n    var inputMouseDown = getInputMouseDown();\n\n    if (event.target !== inputRef.current && !inputMouseDown) {\n      event.preventDefault();\n    }\n\n    if (mode !== 'combobox' && (!showSearch || !inputMouseDown) || !open) {\n      if (open) {\n        onSearch('', true, false);\n      }\n\n      onToggleOpen();\n    }\n  }; // ================= Inner Selector ==================\n\n\n  var sharedProps = {\n    inputRef: inputRef,\n    onInputKeyDown: onInternalInputKeyDown,\n    onInputMouseDown: onInternalInputMouseDown,\n    onInputChange: onInputChange,\n    onInputPaste: onInputPaste,\n    onInputCompositionStart: onInputCompositionStart,\n    onInputCompositionEnd: onInputCompositionEnd\n  };\n  var selectNode = multiple ? React.createElement(MultipleSelector, Object.assign({}, props, sharedProps)) : React.createElement(SingleSelector, Object.assign({}, props, sharedProps));\n  return React.createElement(\"div\", {\n    ref: domRef,\n    className: \"\".concat(prefixCls, \"-selector\"),\n    onClick: onClick,\n    onMouseDown: onMouseDown\n  }, selectNode);\n};\n\nvar ForwardSelector = React.forwardRef(Selector);\nForwardSelector.displayName = 'Selector';\nexport default ForwardSelector;"]},"metadata":{},"sourceType":"module"}