{"ast":null,"code":"function ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    if (enumerableOnly) symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    });\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(Object(source), true).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nimport * as React from 'react';\nimport createElement from \"../createElement\";\nimport css from \"../StyleSheet/css\";\nimport * as forwardedProps from \"../../modules/forwardedProps\";\nimport pick from \"../../modules/pick\";\nimport useElementLayout from \"../../modules/useElementLayout\";\nimport useLayoutEffect from \"../../modules/useLayoutEffect\";\nimport useMergeRefs from \"../../modules/useMergeRefs\";\nimport usePlatformMethods from \"../../modules/usePlatformMethods\";\nimport useResponderEvents from \"../../modules/useResponderEvents\";\nimport StyleSheet from \"../StyleSheet\";\nimport TextInputState from \"../../modules/TextInputState\";\n\nvar isSelectionStale = function isSelectionStale(node, selection) {\n  var selectionEnd = node.selectionEnd,\n      selectionStart = node.selectionStart;\n  var start = selection.start,\n      end = selection.end;\n  return start !== selectionStart || end !== selectionEnd;\n};\n\nvar setSelection = function setSelection(node, selection) {\n  if (isSelectionStale(node, selection)) {\n    var start = selection.start,\n        end = selection.end;\n\n    try {\n      node.setSelectionRange(start, end || start);\n    } catch (e) {}\n  }\n};\n\nvar forwardPropsList = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, forwardedProps.defaultProps), forwardedProps.accessibilityProps), forwardedProps.clickProps), forwardedProps.focusProps), forwardedProps.keyboardProps), forwardedProps.mouseProps), forwardedProps.touchProps), forwardedProps.styleProps), {}, {\n  autoCapitalize: true,\n  autoComplete: true,\n  autoCorrect: true,\n  autoFocus: true,\n  defaultValue: true,\n  disabled: true,\n  lang: true,\n  maxLength: true,\n  onChange: true,\n  onScroll: true,\n  placeholder: true,\n  pointerEvents: true,\n  readOnly: true,\n  rows: true,\n  spellCheck: true,\n  value: true,\n  type: true\n});\n\nvar pickProps = function pickProps(props) {\n  return pick(props, forwardPropsList);\n};\n\nfunction isEventComposing(nativeEvent) {\n  return nativeEvent.isComposing || nativeEvent.keyCode === 229;\n}\n\nvar TextInput = React.forwardRef(function (props, forwardedRef) {\n  var _props$autoCapitalize = props.autoCapitalize,\n      autoCapitalize = _props$autoCapitalize === void 0 ? 'sentences' : _props$autoCapitalize,\n      autoComplete = props.autoComplete,\n      autoCompleteType = props.autoCompleteType,\n      _props$autoCorrect = props.autoCorrect,\n      autoCorrect = _props$autoCorrect === void 0 ? true : _props$autoCorrect,\n      blurOnSubmit = props.blurOnSubmit,\n      clearTextOnFocus = props.clearTextOnFocus,\n      dir = props.dir,\n      _props$editable = props.editable,\n      editable = _props$editable === void 0 ? true : _props$editable,\n      _props$keyboardType = props.keyboardType,\n      keyboardType = _props$keyboardType === void 0 ? 'default' : _props$keyboardType,\n      _props$multiline = props.multiline,\n      multiline = _props$multiline === void 0 ? false : _props$multiline,\n      _props$numberOfLines = props.numberOfLines,\n      numberOfLines = _props$numberOfLines === void 0 ? 1 : _props$numberOfLines,\n      onBlur = props.onBlur,\n      onChange = props.onChange,\n      onChangeText = props.onChangeText,\n      onContentSizeChange = props.onContentSizeChange,\n      onFocus = props.onFocus,\n      onKeyPress = props.onKeyPress,\n      onLayout = props.onLayout,\n      onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n      onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n      onResponderEnd = props.onResponderEnd,\n      onResponderGrant = props.onResponderGrant,\n      onResponderMove = props.onResponderMove,\n      onResponderReject = props.onResponderReject,\n      onResponderRelease = props.onResponderRelease,\n      onResponderStart = props.onResponderStart,\n      onResponderTerminate = props.onResponderTerminate,\n      onResponderTerminationRequest = props.onResponderTerminationRequest,\n      onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n      onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n      onSelectionChange = props.onSelectionChange,\n      onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n      onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n      onStartShouldSetResponder = props.onStartShouldSetResponder,\n      onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n      onSubmitEditing = props.onSubmitEditing,\n      placeholderTextColor = props.placeholderTextColor,\n      returnKeyType = props.returnKeyType,\n      _props$secureTextEntr = props.secureTextEntry,\n      secureTextEntry = _props$secureTextEntr === void 0 ? false : _props$secureTextEntr,\n      selection = props.selection,\n      selectTextOnFocus = props.selectTextOnFocus,\n      spellCheck = props.spellCheck;\n  var type;\n  var inputMode;\n\n  switch (keyboardType) {\n    case 'email-address':\n      type = 'email';\n      break;\n\n    case 'number-pad':\n    case 'numeric':\n      inputMode = 'numeric';\n      break;\n\n    case 'decimal-pad':\n      inputMode = 'decimal';\n      break;\n\n    case 'phone-pad':\n      type = 'tel';\n      break;\n\n    case 'search':\n    case 'web-search':\n      type = 'search';\n      break;\n\n    case 'url':\n      type = 'url';\n      break;\n\n    default:\n      type = 'text';\n  }\n\n  if (secureTextEntry) {\n    type = 'password';\n  }\n\n  var dimensions = React.useRef({\n    height: null,\n    width: null\n  });\n  var hostRef = React.useRef(null);\n  var handleContentSizeChange = React.useCallback(function (hostNode) {\n    if (multiline && onContentSizeChange && hostNode != null) {\n      var newHeight = hostNode.scrollHeight;\n      var newWidth = hostNode.scrollWidth;\n\n      if (newHeight !== dimensions.current.height || newWidth !== dimensions.current.width) {\n        dimensions.current.height = newHeight;\n        dimensions.current.width = newWidth;\n        onContentSizeChange({\n          nativeEvent: {\n            contentSize: {\n              height: dimensions.current.height,\n              width: dimensions.current.width\n            }\n          }\n        });\n      }\n    }\n  }, [multiline, onContentSizeChange]);\n  var imperativeRef = React.useMemo(function () {\n    return function (hostNode) {\n      if (hostNode != null) {\n        hostNode.clear = function () {\n          if (hostNode != null) {\n            hostNode.value = '';\n          }\n        };\n\n        hostNode.isFocused = function () {\n          return hostNode != null && TextInputState.currentlyFocusedField() === hostNode;\n        };\n\n        handleContentSizeChange(hostNode);\n      }\n    };\n  }, [handleContentSizeChange]);\n\n  function handleBlur(e) {\n    TextInputState._currentlyFocusedNode = null;\n\n    if (onBlur) {\n      e.nativeEvent.text = e.target.value;\n      onBlur(e);\n    }\n  }\n\n  function handleChange(e) {\n    var hostNode = e.target;\n    var text = hostNode.value;\n    e.nativeEvent.text = text;\n    handleContentSizeChange(hostNode);\n\n    if (onChange) {\n      onChange(e);\n    }\n\n    if (onChangeText) {\n      onChangeText(text);\n    }\n  }\n\n  function handleFocus(e) {\n    var hostNode = e.target;\n\n    if (onFocus) {\n      e.nativeEvent.text = hostNode.value;\n      onFocus(e);\n    }\n\n    if (hostNode != null) {\n      TextInputState._currentlyFocusedNode = hostNode;\n\n      if (clearTextOnFocus) {\n        hostNode.value = '';\n      }\n\n      if (selectTextOnFocus) {\n        setTimeout(function () {\n          hostNode.select();\n        }, 0);\n      }\n    }\n  }\n\n  function handleKeyDown(e) {\n    var hostNode = e.target;\n    e.stopPropagation();\n    var blurOnSubmitDefault = !multiline;\n    var shouldBlurOnSubmit = blurOnSubmit == null ? blurOnSubmitDefault : blurOnSubmit;\n    var nativeEvent = e.nativeEvent;\n    var isComposing = isEventComposing(nativeEvent);\n\n    if (onKeyPress) {\n      onKeyPress(e);\n    }\n\n    if (e.key === 'Enter' && !e.shiftKey && !isComposing && !e.isDefaultPrevented()) {\n      if ((blurOnSubmit || !multiline) && onSubmitEditing) {\n        e.preventDefault();\n        nativeEvent.text = e.target.value;\n        onSubmitEditing(e);\n      }\n\n      if (shouldBlurOnSubmit && hostNode != null) {\n        hostNode.blur();\n      }\n    }\n  }\n\n  function handleSelectionChange(e) {\n    if (onSelectionChange) {\n      try {\n        var node = e.target;\n        var selectionStart = node.selectionStart,\n            selectionEnd = node.selectionEnd;\n        e.nativeEvent.selection = {\n          start: selectionStart,\n          end: selectionEnd\n        };\n        e.nativeEvent.text = e.target.value;\n        onSelectionChange(e);\n      } catch (e) {}\n    }\n  }\n\n  useLayoutEffect(function () {\n    var node = hostRef.current;\n\n    if (node != null && selection != null) {\n      setSelection(node, selection);\n    }\n\n    if (document.activeElement === node) {\n      TextInputState._currentlyFocusedNode = node;\n    }\n  }, [hostRef, selection]);\n  var component = multiline ? 'textarea' : 'input';\n  var classList = [classes.textinput];\n  var style = StyleSheet.compose(props.style, placeholderTextColor && {\n    placeholderTextColor: placeholderTextColor\n  });\n  useElementLayout(hostRef, onLayout);\n  useResponderEvents(hostRef, {\n    onMoveShouldSetResponder: onMoveShouldSetResponder,\n    onMoveShouldSetResponderCapture: onMoveShouldSetResponderCapture,\n    onResponderEnd: onResponderEnd,\n    onResponderGrant: onResponderGrant,\n    onResponderMove: onResponderMove,\n    onResponderReject: onResponderReject,\n    onResponderRelease: onResponderRelease,\n    onResponderStart: onResponderStart,\n    onResponderTerminate: onResponderTerminate,\n    onResponderTerminationRequest: onResponderTerminationRequest,\n    onScrollShouldSetResponder: onScrollShouldSetResponder,\n    onScrollShouldSetResponderCapture: onScrollShouldSetResponderCapture,\n    onSelectionChangeShouldSetResponder: onSelectionChangeShouldSetResponder,\n    onSelectionChangeShouldSetResponderCapture: onSelectionChangeShouldSetResponderCapture,\n    onStartShouldSetResponder: onStartShouldSetResponder,\n    onStartShouldSetResponderCapture: onStartShouldSetResponderCapture\n  });\n  var supportedProps = pickProps(props);\n  supportedProps.autoCapitalize = autoCapitalize;\n  supportedProps.autoComplete = autoComplete || autoCompleteType || 'on';\n  supportedProps.autoCorrect = autoCorrect ? 'on' : 'off';\n  supportedProps.classList = classList;\n  supportedProps.dir = dir !== undefined ? dir : 'auto';\n  supportedProps.enterKeyHint = returnKeyType;\n  supportedProps.onBlur = handleBlur;\n  supportedProps.onChange = handleChange;\n  supportedProps.onFocus = handleFocus;\n  supportedProps.onKeyDown = handleKeyDown;\n  supportedProps.onSelect = handleSelectionChange;\n  supportedProps.readOnly = !editable;\n  supportedProps.rows = multiline ? numberOfLines : undefined;\n  supportedProps.spellCheck = spellCheck != null ? spellCheck : autoCorrect;\n  supportedProps.style = style;\n  supportedProps.type = multiline ? undefined : type;\n  supportedProps.inputMode = inputMode;\n  var platformMethodsRef = usePlatformMethods(supportedProps);\n  var setRef = useMergeRefs(hostRef, platformMethodsRef, imperativeRef, forwardedRef);\n  supportedProps.ref = setRef;\n  return createElement(component, supportedProps);\n});\nTextInput.displayName = 'TextInput';\nTextInput.State = TextInputState;\nvar classes = css.create({\n  textinput: {\n    MozAppearance: 'textfield',\n    WebkitAppearance: 'none',\n    backgroundColor: 'transparent',\n    border: '0 solid black',\n    borderRadius: 0,\n    boxSizing: 'border-box',\n    font: '14px System',\n    margin: 0,\n    padding: 0,\n    resize: 'none'\n  }\n});\nexport default TextInput;","map":{"version":3,"sources":["/Users/rohitsingh/Documents/projects/new-nativebase-setup/NativeBase/example/node_modules/react-native-web/dist/exports/TextInput/index.js"],"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","React","createElement","css","forwardedProps","pick","useElementLayout","useLayoutEffect","useMergeRefs","usePlatformMethods","useResponderEvents","StyleSheet","TextInputState","isSelectionStale","node","selection","selectionEnd","selectionStart","start","end","setSelection","setSelectionRange","e","forwardPropsList","defaultProps","accessibilityProps","clickProps","focusProps","keyboardProps","mouseProps","touchProps","styleProps","autoCapitalize","autoComplete","autoCorrect","autoFocus","defaultValue","disabled","lang","maxLength","onChange","onScroll","placeholder","pointerEvents","readOnly","rows","spellCheck","type","pickProps","props","isEventComposing","nativeEvent","isComposing","keyCode","TextInput","forwardRef","forwardedRef","_props$autoCapitalize","autoCompleteType","_props$autoCorrect","blurOnSubmit","clearTextOnFocus","dir","_props$editable","editable","_props$keyboardType","keyboardType","_props$multiline","multiline","_props$numberOfLines","numberOfLines","onBlur","onChangeText","onContentSizeChange","onFocus","onKeyPress","onLayout","onMoveShouldSetResponder","onMoveShouldSetResponderCapture","onResponderEnd","onResponderGrant","onResponderMove","onResponderReject","onResponderRelease","onResponderStart","onResponderTerminate","onResponderTerminationRequest","onScrollShouldSetResponder","onScrollShouldSetResponderCapture","onSelectionChange","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","onStartShouldSetResponder","onStartShouldSetResponderCapture","onSubmitEditing","placeholderTextColor","returnKeyType","_props$secureTextEntr","secureTextEntry","selectTextOnFocus","inputMode","dimensions","useRef","height","width","hostRef","handleContentSizeChange","useCallback","hostNode","newHeight","scrollHeight","newWidth","scrollWidth","current","contentSize","imperativeRef","useMemo","clear","isFocused","currentlyFocusedField","handleBlur","_currentlyFocusedNode","text","handleChange","handleFocus","setTimeout","select","handleKeyDown","stopPropagation","blurOnSubmitDefault","shouldBlurOnSubmit","shiftKey","isDefaultPrevented","preventDefault","blur","handleSelectionChange","document","activeElement","component","classList","classes","textinput","style","compose","supportedProps","undefined","enterKeyHint","onKeyDown","onSelect","platformMethodsRef","setRef","ref","displayName","State","create","MozAppearance","WebkitAppearance","backgroundColor","border","borderRadius","boxSizing","font","margin","padding","resize"],"mappings":"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","sourcesContent":["function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport css from '../StyleSheet/css';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useLayoutEffect from '../../modules/useLayoutEffect';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextInputState from '../../modules/TextInputState';\n/**\n * Determines whether a 'selection' prop differs from a node's existing\n * selection state.\n */\n\nvar isSelectionStale = function isSelectionStale(node, selection) {\n  var selectionEnd = node.selectionEnd,\n      selectionStart = node.selectionStart;\n  var start = selection.start,\n      end = selection.end;\n  return start !== selectionStart || end !== selectionEnd;\n};\n/**\n * Certain input types do no support 'selectSelectionRange' and will throw an\n * error.\n */\n\n\nvar setSelection = function setSelection(node, selection) {\n  if (isSelectionStale(node, selection)) {\n    var start = selection.start,\n        end = selection.end;\n\n    try {\n      node.setSelectionRange(start, end || start);\n    } catch (e) {}\n  }\n};\n\nvar forwardPropsList = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, forwardedProps.defaultProps), forwardedProps.accessibilityProps), forwardedProps.clickProps), forwardedProps.focusProps), forwardedProps.keyboardProps), forwardedProps.mouseProps), forwardedProps.touchProps), forwardedProps.styleProps), {}, {\n  autoCapitalize: true,\n  autoComplete: true,\n  autoCorrect: true,\n  autoFocus: true,\n  defaultValue: true,\n  disabled: true,\n  lang: true,\n  maxLength: true,\n  onChange: true,\n  onScroll: true,\n  placeholder: true,\n  pointerEvents: true,\n  readOnly: true,\n  rows: true,\n  spellCheck: true,\n  value: true,\n  type: true\n});\n\nvar pickProps = function pickProps(props) {\n  return pick(props, forwardPropsList);\n}; // If an Input Method Editor is processing key input, the 'keyCode' is 229.\n// https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n\n\nfunction isEventComposing(nativeEvent) {\n  return nativeEvent.isComposing || nativeEvent.keyCode === 229;\n}\n\nvar TextInput = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n  var _props$autoCapitalize = props.autoCapitalize,\n      autoCapitalize = _props$autoCapitalize === void 0 ? 'sentences' : _props$autoCapitalize,\n      autoComplete = props.autoComplete,\n      autoCompleteType = props.autoCompleteType,\n      _props$autoCorrect = props.autoCorrect,\n      autoCorrect = _props$autoCorrect === void 0 ? true : _props$autoCorrect,\n      blurOnSubmit = props.blurOnSubmit,\n      clearTextOnFocus = props.clearTextOnFocus,\n      dir = props.dir,\n      _props$editable = props.editable,\n      editable = _props$editable === void 0 ? true : _props$editable,\n      _props$keyboardType = props.keyboardType,\n      keyboardType = _props$keyboardType === void 0 ? 'default' : _props$keyboardType,\n      _props$multiline = props.multiline,\n      multiline = _props$multiline === void 0 ? false : _props$multiline,\n      _props$numberOfLines = props.numberOfLines,\n      numberOfLines = _props$numberOfLines === void 0 ? 1 : _props$numberOfLines,\n      onBlur = props.onBlur,\n      onChange = props.onChange,\n      onChangeText = props.onChangeText,\n      onContentSizeChange = props.onContentSizeChange,\n      onFocus = props.onFocus,\n      onKeyPress = props.onKeyPress,\n      onLayout = props.onLayout,\n      onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n      onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n      onResponderEnd = props.onResponderEnd,\n      onResponderGrant = props.onResponderGrant,\n      onResponderMove = props.onResponderMove,\n      onResponderReject = props.onResponderReject,\n      onResponderRelease = props.onResponderRelease,\n      onResponderStart = props.onResponderStart,\n      onResponderTerminate = props.onResponderTerminate,\n      onResponderTerminationRequest = props.onResponderTerminationRequest,\n      onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n      onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n      onSelectionChange = props.onSelectionChange,\n      onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n      onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n      onStartShouldSetResponder = props.onStartShouldSetResponder,\n      onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n      onSubmitEditing = props.onSubmitEditing,\n      placeholderTextColor = props.placeholderTextColor,\n      returnKeyType = props.returnKeyType,\n      _props$secureTextEntr = props.secureTextEntry,\n      secureTextEntry = _props$secureTextEntr === void 0 ? false : _props$secureTextEntr,\n      selection = props.selection,\n      selectTextOnFocus = props.selectTextOnFocus,\n      spellCheck = props.spellCheck;\n  var type;\n  var inputMode;\n\n  switch (keyboardType) {\n    case 'email-address':\n      type = 'email';\n      break;\n\n    case 'number-pad':\n    case 'numeric':\n      inputMode = 'numeric';\n      break;\n\n    case 'decimal-pad':\n      inputMode = 'decimal';\n      break;\n\n    case 'phone-pad':\n      type = 'tel';\n      break;\n\n    case 'search':\n    case 'web-search':\n      type = 'search';\n      break;\n\n    case 'url':\n      type = 'url';\n      break;\n\n    default:\n      type = 'text';\n  }\n\n  if (secureTextEntry) {\n    type = 'password';\n  }\n\n  var dimensions = React.useRef({\n    height: null,\n    width: null\n  });\n  var hostRef = React.useRef(null);\n  var handleContentSizeChange = React.useCallback(function (hostNode) {\n    if (multiline && onContentSizeChange && hostNode != null) {\n      var newHeight = hostNode.scrollHeight;\n      var newWidth = hostNode.scrollWidth;\n\n      if (newHeight !== dimensions.current.height || newWidth !== dimensions.current.width) {\n        dimensions.current.height = newHeight;\n        dimensions.current.width = newWidth;\n        onContentSizeChange({\n          nativeEvent: {\n            contentSize: {\n              height: dimensions.current.height,\n              width: dimensions.current.width\n            }\n          }\n        });\n      }\n    }\n  }, [multiline, onContentSizeChange]);\n  var imperativeRef = React.useMemo(function () {\n    return function (hostNode) {\n      // TextInput needs to add more methods to the hostNode in addition to those\n      // added by `usePlatformMethods`. This is temporarily until an API like\n      // `TextInput.clear(hostRef)` is added to React Native.\n      if (hostNode != null) {\n        hostNode.clear = function () {\n          if (hostNode != null) {\n            hostNode.value = '';\n          }\n        };\n\n        hostNode.isFocused = function () {\n          return hostNode != null && TextInputState.currentlyFocusedField() === hostNode;\n        };\n\n        handleContentSizeChange(hostNode);\n      }\n    };\n  }, [handleContentSizeChange]);\n\n  function handleBlur(e) {\n    TextInputState._currentlyFocusedNode = null;\n\n    if (onBlur) {\n      e.nativeEvent.text = e.target.value;\n      onBlur(e);\n    }\n  }\n\n  function handleChange(e) {\n    var hostNode = e.target;\n    var text = hostNode.value;\n    e.nativeEvent.text = text;\n    handleContentSizeChange(hostNode);\n\n    if (onChange) {\n      onChange(e);\n    }\n\n    if (onChangeText) {\n      onChangeText(text);\n    }\n  }\n\n  function handleFocus(e) {\n    var hostNode = e.target;\n\n    if (onFocus) {\n      e.nativeEvent.text = hostNode.value;\n      onFocus(e);\n    }\n\n    if (hostNode != null) {\n      TextInputState._currentlyFocusedNode = hostNode;\n\n      if (clearTextOnFocus) {\n        hostNode.value = '';\n      }\n\n      if (selectTextOnFocus) {\n        // Safari requires selection to occur in a setTimeout\n        setTimeout(function () {\n          hostNode.select();\n        }, 0);\n      }\n    }\n  }\n\n  function handleKeyDown(e) {\n    var hostNode = e.target; // Prevent key events bubbling (see #612)\n\n    e.stopPropagation();\n    var blurOnSubmitDefault = !multiline;\n    var shouldBlurOnSubmit = blurOnSubmit == null ? blurOnSubmitDefault : blurOnSubmit;\n    var nativeEvent = e.nativeEvent;\n    var isComposing = isEventComposing(nativeEvent);\n\n    if (onKeyPress) {\n      onKeyPress(e);\n    }\n\n    if (e.key === 'Enter' && !e.shiftKey && // Do not call submit if composition is occuring.\n    !isComposing && !e.isDefaultPrevented()) {\n      if ((blurOnSubmit || !multiline) && onSubmitEditing) {\n        // prevent \"Enter\" from inserting a newline or submitting a form\n        e.preventDefault();\n        nativeEvent.text = e.target.value;\n        onSubmitEditing(e);\n      }\n\n      if (shouldBlurOnSubmit && hostNode != null) {\n        hostNode.blur();\n      }\n    }\n  }\n\n  function handleSelectionChange(e) {\n    if (onSelectionChange) {\n      try {\n        var node = e.target;\n        var selectionStart = node.selectionStart,\n            selectionEnd = node.selectionEnd;\n        e.nativeEvent.selection = {\n          start: selectionStart,\n          end: selectionEnd\n        };\n        e.nativeEvent.text = e.target.value;\n        onSelectionChange(e);\n      } catch (e) {}\n    }\n  }\n\n  useLayoutEffect(function () {\n    var node = hostRef.current;\n\n    if (node != null && selection != null) {\n      setSelection(node, selection);\n    }\n\n    if (document.activeElement === node) {\n      TextInputState._currentlyFocusedNode = node;\n    }\n  }, [hostRef, selection]);\n  var component = multiline ? 'textarea' : 'input';\n  var classList = [classes.textinput];\n  var style = StyleSheet.compose(props.style, placeholderTextColor && {\n    placeholderTextColor: placeholderTextColor\n  });\n  useElementLayout(hostRef, onLayout);\n  useResponderEvents(hostRef, {\n    onMoveShouldSetResponder: onMoveShouldSetResponder,\n    onMoveShouldSetResponderCapture: onMoveShouldSetResponderCapture,\n    onResponderEnd: onResponderEnd,\n    onResponderGrant: onResponderGrant,\n    onResponderMove: onResponderMove,\n    onResponderReject: onResponderReject,\n    onResponderRelease: onResponderRelease,\n    onResponderStart: onResponderStart,\n    onResponderTerminate: onResponderTerminate,\n    onResponderTerminationRequest: onResponderTerminationRequest,\n    onScrollShouldSetResponder: onScrollShouldSetResponder,\n    onScrollShouldSetResponderCapture: onScrollShouldSetResponderCapture,\n    onSelectionChangeShouldSetResponder: onSelectionChangeShouldSetResponder,\n    onSelectionChangeShouldSetResponderCapture: onSelectionChangeShouldSetResponderCapture,\n    onStartShouldSetResponder: onStartShouldSetResponder,\n    onStartShouldSetResponderCapture: onStartShouldSetResponderCapture\n  });\n  var supportedProps = pickProps(props);\n  supportedProps.autoCapitalize = autoCapitalize;\n  supportedProps.autoComplete = autoComplete || autoCompleteType || 'on';\n  supportedProps.autoCorrect = autoCorrect ? 'on' : 'off';\n  supportedProps.classList = classList; // 'auto' by default allows browsers to infer writing direction\n\n  supportedProps.dir = dir !== undefined ? dir : 'auto';\n  supportedProps.enterKeyHint = returnKeyType;\n  supportedProps.onBlur = handleBlur;\n  supportedProps.onChange = handleChange;\n  supportedProps.onFocus = handleFocus;\n  supportedProps.onKeyDown = handleKeyDown;\n  supportedProps.onSelect = handleSelectionChange;\n  supportedProps.readOnly = !editable;\n  supportedProps.rows = multiline ? numberOfLines : undefined;\n  supportedProps.spellCheck = spellCheck != null ? spellCheck : autoCorrect;\n  supportedProps.style = style;\n  supportedProps.type = multiline ? undefined : type;\n  supportedProps.inputMode = inputMode;\n  var platformMethodsRef = usePlatformMethods(supportedProps);\n  var setRef = useMergeRefs(hostRef, platformMethodsRef, imperativeRef, forwardedRef);\n  supportedProps.ref = setRef;\n  return createElement(component, supportedProps);\n});\nTextInput.displayName = 'TextInput'; // $FlowFixMe\n\nTextInput.State = TextInputState;\nvar classes = css.create({\n  textinput: {\n    MozAppearance: 'textfield',\n    WebkitAppearance: 'none',\n    backgroundColor: 'transparent',\n    border: '0 solid black',\n    borderRadius: 0,\n    boxSizing: 'border-box',\n    font: '14px System',\n    margin: 0,\n    padding: 0,\n    resize: 'none'\n  }\n});\nexport default TextInput;"]},"metadata":{},"sourceType":"module"}