// Generated by BUCKLESCRIPT VERSION 3.0.0, PLEASE EDIT WITH CARE
'use strict';

var $$Array = require("bs-platform/lib/js/array.js");
var ReasonReact = require("reason-react/lib/js/src/ReasonReact.js");
var Js_undefined = require("bs-platform/lib/js/js_undefined.js");
var ReactNative = require("react-native");
var Props$BsReactNative = require("../private/props.js");
var UtilsRN$BsReactNative = require("../private/utilsRN.js");

function isFocused(param) {
  return UtilsRN$BsReactNative.$less$less((function (prim) {
                return prim;
              }), (function (prim) {
                return prim._isFocused();
              }), param);
}

function make(accessibilityLabel, accessible, hitSlop, onAccessibilityTap, onLayout, onMagicTap, responderHandlers, pointerEvents, removeClippedSubviews, style, testID, accessibilityComponentType, accessibilityLiveRegion, collapsable, importantForAccessibility, needsOffscreenAlphaCompositing, renderToHardwareTextureAndroid, accessibilityTraits, accessibilityViewIsModal, shouldRasterizeIOS, autoCapitalize, autoCorrect, autoFocus, blurOnSubmit, caretHidden, defaultValue, editable, keyboardType, maxLength, multiline, onBlur, onChange, onChangeText, onContentSizeChange, onEndEditing, onFocus, onScroll, onSelectionChange, onSubmitEditing, placeholder, placeholderTextColor, returnKeyType, secureTextEntry, selectTextOnFocus, selection, selectionColor, value, disableFullscreenUI, inlineImageLeft, inlineImagePadding, numberOfLines, returnKeyLabel, textBreakStrategy, underlineColorAndroid, clearButtonMode, clearTextOnFocus, dataDetectorTypes, enablesReturnKeyAutomatically, keyboardAppearance, onKeyPress, selectionState, spellCheck) {
  var partial_arg = Props$BsReactNative.extendView(accessibilityLabel, accessible, hitSlop, onAccessibilityTap, onLayout, onMagicTap, responderHandlers, pointerEvents, removeClippedSubviews, style, testID, accessibilityComponentType, accessibilityLiveRegion, collapsable, importantForAccessibility, needsOffscreenAlphaCompositing, renderToHardwareTextureAndroid, accessibilityTraits, accessibilityViewIsModal, shouldRasterizeIOS, {
        autoCapitalize: Js_undefined.fromOption(UtilsRN$BsReactNative.option_map((function (x) {
                    if (x >= -707897174) {
                      if (x >= 57776752) {
                        return "sentences";
                      } else {
                        return "characters";
                      }
                    } else if (x >= -832270487) {
                      return "words";
                    } else {
                      return "none";
                    }
                  }), autoCapitalize)),
        autoCorrect: Js_undefined.fromOption(UtilsRN$BsReactNative.optBoolToOptJsBoolean(autoCorrect)),
        autoFocus: Js_undefined.fromOption(UtilsRN$BsReactNative.optBoolToOptJsBoolean(autoFocus)),
        blurOnSubmit: Js_undefined.fromOption(UtilsRN$BsReactNative.optBoolToOptJsBoolean(blurOnSubmit)),
        caretHidden: Js_undefined.fromOption(UtilsRN$BsReactNative.optBoolToOptJsBoolean(caretHidden)),
        defaultValue: Js_undefined.fromOption(defaultValue),
        editable: Js_undefined.fromOption(UtilsRN$BsReactNative.optBoolToOptJsBoolean(editable)),
        keyboardType: Js_undefined.fromOption(UtilsRN$BsReactNative.option_map((function (x) {
                    if (x >= 511059466) {
                      if (x >= 734061261) {
                        if (x >= 965330242) {
                          if (x >= 1008346616) {
                            return "email-address";
                          } else {
                            return "decimal-pad";
                          }
                        } else if (x >= 776586867) {
                          return "twitter";
                        } else {
                          return "numeric";
                        }
                      } else if (x >= 568483612) {
                        return "web-search";
                      } else {
                        return "number-pad";
                      }
                    } else if (x >= -324562960) {
                      if (x >= 217673051) {
                        if (x >= 465819841) {
                          return "default";
                        } else {
                          return "ascii-capable";
                        }
                      } else if (x >= 5843823) {
                        return "url";
                      } else {
                        return "name-phone-pad";
                      }
                    } else if (x >= -444948859) {
                      return "phone-pad";
                    } else {
                      return "numbers-and-punctuation";
                    }
                  }), keyboardType)),
        maxLength: Js_undefined.fromOption(maxLength),
        multiline: Js_undefined.fromOption(UtilsRN$BsReactNative.optBoolToOptJsBoolean(multiline)),
        onBlur: Js_undefined.fromOption(onBlur),
        onChange: Js_undefined.fromOption(onChange),
        onChangeText: Js_undefined.fromOption(onChangeText),
        onContentSizeChange: Js_undefined.fromOption(onContentSizeChange),
        onEndEditing: Js_undefined.fromOption(onEndEditing),
        onFocus: Js_undefined.fromOption(onFocus),
        onScroll: Js_undefined.fromOption(onScroll),
        onSelectionChange: Js_undefined.fromOption(onSelectionChange),
        onSubmitEditing: Js_undefined.fromOption(onSubmitEditing),
        placeholder: Js_undefined.fromOption(placeholder),
        placeholderTextColor: Js_undefined.fromOption(placeholderTextColor),
        returnKeyType: Js_undefined.fromOption(UtilsRN$BsReactNative.option_map((function (x) {
                    if (x >= -487088280) {
                      if (x >= 23080) {
                        if (x >= 598785079) {
                          if (x >= 939679119) {
                            return "emergencyCall";
                          } else {
                            return "previous";
                          }
                        } else if (x >= 465819841) {
                          return "default";
                        } else {
                          return "go";
                        }
                      } else if (x !== -337039680) {
                        if (x >= -312083063) {
                          return "route";
                        } else {
                          return "search";
                        }
                      } else {
                        return "yahoo";
                      }
                    } else if (x >= -922086728) {
                      if (x >= -574324323) {
                        if (x >= -504773703) {
                          return "google";
                        } else {
                          return "done";
                        }
                      } else if (x >= -867136184) {
                        return "send";
                      } else {
                        return "none";
                      }
                    } else if (x >= -922581773) {
                      return "next";
                    } else {
                      return "join";
                    }
                  }), returnKeyType)),
        secureTextEntry: Js_undefined.fromOption(UtilsRN$BsReactNative.optBoolToOptJsBoolean(secureTextEntry)),
        selectTextOnFocus: Js_undefined.fromOption(UtilsRN$BsReactNative.optBoolToOptJsBoolean(selectTextOnFocus)),
        selection: Js_undefined.fromOption(selection),
        selectionColor: Js_undefined.fromOption(selectionColor),
        value: Js_undefined.fromOption(value),
        disableFullscreenUI: Js_undefined.fromOption(UtilsRN$BsReactNative.optBoolToOptJsBoolean(disableFullscreenUI)),
        inlineImageLeft: Js_undefined.fromOption(inlineImageLeft),
        inlineImagePadding: Js_undefined.fromOption(inlineImagePadding),
        numberOfLines: Js_undefined.fromOption(numberOfLines),
        returnKeyLabel: Js_undefined.fromOption(returnKeyLabel),
        textBreakStrategy: Js_undefined.fromOption(UtilsRN$BsReactNative.option_map((function (x) {
                    if (x !== -128197688) {
                      if (x >= 947848242) {
                        return "simple";
                      } else {
                        return "highQuality";
                      }
                    } else {
                      return "balanced";
                    }
                  }), textBreakStrategy)),
        underlineColorAndroid: Js_undefined.fromOption(underlineColorAndroid),
        clearButtonMode: Js_undefined.fromOption(UtilsRN$BsReactNative.option_map((function (x) {
                    if (x >= -894774937) {
                      if (x >= 422592140) {
                        return "never";
                      } else {
                        return "whileEditing";
                      }
                    } else if (x >= -958984497) {
                      return "always";
                    } else {
                      return "unless-editing";
                    }
                  }), clearButtonMode)),
        clearTextOnFocus: Js_undefined.fromOption(UtilsRN$BsReactNative.optBoolToOptJsBoolean(clearTextOnFocus)),
        dataDetectorTypes: Js_undefined.fromOption(UtilsRN$BsReactNative.option_map((function (param) {
                    return $$Array.map((function (x) {
                                  if (x !== -940571433) {
                                    if (x >= -119363460) {
                                      if (x >= 4847905) {
                                        return "all";
                                      } else {
                                        return "calendarEvent";
                                      }
                                    } else if (x >= -922086728) {
                                      return "none";
                                    } else {
                                      return "link";
                                    }
                                  } else {
                                    return "phoneNumber";
                                  }
                                }), param);
                  }), dataDetectorTypes)),
        enablesReturnKeyAutomatically: Js_undefined.fromOption(UtilsRN$BsReactNative.optBoolToOptJsBoolean(enablesReturnKeyAutomatically)),
        keyboardAppearance: Js_undefined.fromOption(UtilsRN$BsReactNative.option_map((function (x) {
                    if (x !== -184774442) {
                      if (x >= 465819841) {
                        return "never";
                      } else {
                        return "dark";
                      }
                    } else {
                      return "light";
                    }
                  }), keyboardAppearance)),
        onKeyPress: Js_undefined.fromOption(onKeyPress),
        selectionState: Js_undefined.fromOption(selectionState),
        spellCheck: Js_undefined.fromOption(UtilsRN$BsReactNative.optBoolToOptJsBoolean(spellCheck))
      });
  var partial_arg$1 = ReactNative.TextInput;
  return (function (param) {
      return ReasonReact.wrapJsForReason(partial_arg$1, partial_arg, param);
    });
}

function clear(prim) {
  prim.clear();
  return /* () */0;
}

exports.isFocused = isFocused;
exports.clear = clear;
exports.make = make;
/* ReasonReact Not a pure module */
