@office-iss/react-native-win32 0.0.0-canary.27 → 0.0.0-canary.271

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1423) hide show
  1. package/.eslintignore +5 -2
  2. package/.eslintrc.js +27 -2
  3. package/.flowconfig +72 -37
  4. package/CHANGELOG.json +5588 -1
  5. package/CHANGELOG.md +2224 -7
  6. package/IntegrationTests/AccessibilityManagerTest.js +8 -11
  7. package/IntegrationTests/AppEventsTest.js +3 -3
  8. package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +12 -5
  9. package/IntegrationTests/ImageCachePolicyTest.js +5 -5
  10. package/IntegrationTests/ImageSnapshotTest.js +2 -2
  11. package/IntegrationTests/IntegrationTestHarnessTest.js +9 -6
  12. package/IntegrationTests/IntegrationTestsApp.js +16 -21
  13. package/IntegrationTests/LayoutEventsTest.js +14 -12
  14. package/IntegrationTests/LoggingTestModule.js +10 -12
  15. package/IntegrationTests/PromiseTest.js +2 -1
  16. package/IntegrationTests/SimpleSnapshotTest.js +2 -4
  17. package/IntegrationTests/SyncMethodTest.js +2 -2
  18. package/IntegrationTests/TimersTest.js +20 -5
  19. package/IntegrationTests/WebSocketTest.js +5 -5
  20. package/IntegrationTests/launchWebSocketServer.sh +12 -0
  21. package/IntegrationTests/websocket_integration_test_server.js +3 -3
  22. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +86 -0
  23. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +38 -11
  24. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +5 -43
  25. package/Libraries/Alert/Alert.d.ts +91 -0
  26. package/Libraries/Alert/Alert.js +31 -10
  27. package/Libraries/Alert/Alert.win32.js +6 -4
  28. package/Libraries/Alert/NativeAlertManager.js +5 -26
  29. package/Libraries/Alert/RCTAlertManager.android.js +2 -4
  30. package/Libraries/Alert/RCTAlertManager.ios.js +2 -3
  31. package/Libraries/Animated/Animated.d.ts +626 -0
  32. package/Libraries/Animated/Animated.js +48 -0
  33. package/Libraries/Animated/AnimatedEvent.js +256 -0
  34. package/Libraries/Animated/AnimatedImplementation.js +754 -0
  35. package/Libraries/Animated/AnimatedMock.js +195 -0
  36. package/Libraries/Animated/AnimatedPlatformConfig.js +13 -0
  37. package/Libraries/Animated/AnimatedWeb.js +26 -0
  38. package/Libraries/Animated/Easing.d.ts +37 -0
  39. package/Libraries/Animated/Easing.js +250 -0
  40. package/Libraries/Animated/NativeAnimatedAllowlist.js +122 -0
  41. package/Libraries/Animated/NativeAnimatedModule.js +13 -0
  42. package/Libraries/Animated/NativeAnimatedTurboModule.js +13 -0
  43. package/Libraries/Animated/SpringConfig.js +98 -0
  44. package/Libraries/Animated/animations/Animation.js +175 -0
  45. package/Libraries/Animated/animations/DecayAnimation.js +121 -0
  46. package/Libraries/Animated/animations/SpringAnimation.js +372 -0
  47. package/Libraries/Animated/animations/TimingAnimation.js +173 -0
  48. package/Libraries/Animated/bezier.js +164 -0
  49. package/Libraries/Animated/components/AnimatedFlatList.js +20 -0
  50. package/Libraries/Animated/components/AnimatedImage.js +22 -0
  51. package/Libraries/Animated/components/AnimatedScrollView.js +137 -0
  52. package/Libraries/Animated/components/AnimatedSectionList.js +20 -0
  53. package/Libraries/Animated/components/AnimatedText.js +22 -0
  54. package/Libraries/Animated/components/AnimatedView.js +20 -0
  55. package/Libraries/Animated/createAnimatedComponent.js +101 -0
  56. package/Libraries/Animated/nodes/AnimatedAddition.js +64 -0
  57. package/Libraries/Animated/nodes/AnimatedColor.js +320 -0
  58. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +72 -0
  59. package/Libraries/Animated/nodes/AnimatedDivision.js +80 -0
  60. package/Libraries/Animated/nodes/AnimatedInterpolation.js +416 -0
  61. package/Libraries/Animated/nodes/AnimatedModulo.js +63 -0
  62. package/Libraries/Animated/nodes/AnimatedMultiplication.js +63 -0
  63. package/Libraries/Animated/nodes/AnimatedNode.js +200 -0
  64. package/Libraries/Animated/nodes/AnimatedObject.js +162 -0
  65. package/Libraries/Animated/nodes/AnimatedProps.js +273 -0
  66. package/Libraries/Animated/nodes/AnimatedStyle.js +243 -0
  67. package/Libraries/Animated/nodes/AnimatedSubtraction.js +64 -0
  68. package/Libraries/Animated/nodes/AnimatedTracking.js +100 -0
  69. package/Libraries/Animated/nodes/AnimatedTransform.js +198 -0
  70. package/Libraries/Animated/nodes/AnimatedValue.js +303 -0
  71. package/Libraries/Animated/nodes/AnimatedValueXY.js +236 -0
  72. package/Libraries/Animated/nodes/AnimatedWithChildren.js +85 -0
  73. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +17 -0
  74. package/Libraries/Animated/useAnimatedProps.js +401 -0
  75. package/Libraries/Animated/useAnimatedValue.d.ts +15 -0
  76. package/Libraries/Animated/useAnimatedValue.js +25 -0
  77. package/Libraries/AppState/AppState.d.ts +58 -0
  78. package/Libraries/AppState/AppState.js +91 -144
  79. package/Libraries/AppState/NativeAppState.js +5 -22
  80. package/Libraries/BatchedBridge/BatchedBridge.js +2 -2
  81. package/Libraries/BatchedBridge/MessageQueue.js +136 -114
  82. package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
  83. package/Libraries/BatchedBridge/NativeModules.js +36 -21
  84. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestConfig.js +1 -1
  85. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestModule.js +3 -3
  86. package/Libraries/Blob/Blob.js +20 -3
  87. package/Libraries/Blob/BlobManager.js +7 -10
  88. package/Libraries/Blob/BlobRegistry.js +15 -10
  89. package/Libraries/Blob/BlobTypes.js +1 -1
  90. package/Libraries/Blob/File.js +3 -4
  91. package/Libraries/Blob/FileReader.js +36 -16
  92. package/Libraries/Blob/NativeBlobModule.js +5 -18
  93. package/Libraries/Blob/NativeFileReaderModule.js +5 -15
  94. package/Libraries/Blob/URL.js +38 -87
  95. package/Libraries/Blob/URLSearchParams.js +71 -0
  96. package/Libraries/Blob/__mocks__/BlobModule.js +1 -1
  97. package/Libraries/Blob/__mocks__/FileReaderModule.js +1 -1
  98. package/Libraries/BugReporting/BugReporting.js +8 -9
  99. package/Libraries/BugReporting/NativeBugReporting.js +5 -12
  100. package/Libraries/BugReporting/dumpReactTree.js +1 -1
  101. package/Libraries/BugReporting/getReactData.js +17 -8
  102. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +177 -0
  103. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +479 -0
  104. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +447 -96
  105. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +5 -19
  106. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +11 -0
  107. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +5 -51
  108. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +36 -0
  109. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +26 -0
  110. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +36 -0
  111. package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
  112. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +73 -48
  113. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +4 -47
  114. package/Libraries/Components/Button/ButtonWin32.Props.d.ts +36 -36
  115. package/Libraries/Components/Button/ButtonWin32.Props.js +3 -3
  116. package/Libraries/Components/Button/ButtonWin32.Props.js.map +1 -0
  117. package/Libraries/Components/Button/ButtonWin32.d.ts +19 -19
  118. package/Libraries/Components/Button/ButtonWin32.js +83 -103
  119. package/Libraries/Components/Button/ButtonWin32.js.map +1 -0
  120. package/Libraries/Components/Button.d.ts +42 -0
  121. package/Libraries/Components/Button.js +325 -125
  122. package/Libraries/Components/Button.win32.js +460 -0
  123. package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
  124. package/Libraries/Components/Clipboard/Clipboard.js +3 -5
  125. package/Libraries/Components/Clipboard/NativeClipboard.js +5 -14
  126. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +4 -116
  127. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +44 -35
  128. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
  129. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +4 -2
  130. package/Libraries/Components/EnterString.win32.d.ts +12 -12
  131. package/Libraries/Components/EnterString.win32.js +82 -114
  132. package/Libraries/Components/EnterString.win32.js.map +1 -0
  133. package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
  134. package/Libraries/Components/Keyboard/Keyboard.js +81 -71
  135. package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
  136. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +116 -56
  137. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +5 -13
  138. package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
  139. package/Libraries/Components/Pressable/Pressable.js +176 -43
  140. package/Libraries/Components/Pressable/Pressable.win32.js +437 -0
  141. package/Libraries/Components/Pressable/useAndroidRippleForView.js +38 -23
  142. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +28 -22
  143. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
  144. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  145. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +5 -27
  146. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +4 -77
  147. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +4 -56
  148. package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
  149. package/Libraries/Components/RefreshControl/RefreshControl.js +16 -38
  150. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +7 -10
  151. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +4 -20
  152. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +24 -0
  153. package/Libraries/Components/SafeAreaView/SafeAreaView.js +12 -39
  154. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +12 -41
  155. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +5 -32
  156. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +39 -21
  157. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +13 -20
  158. package/Libraries/Components/ScrollView/ScrollView.d.ts +910 -0
  159. package/Libraries/Components/ScrollView/ScrollView.js +1153 -434
  160. package/Libraries/Components/ScrollView/ScrollViewCommands.js +4 -4
  161. package/Libraries/Components/ScrollView/ScrollViewContext.js +22 -0
  162. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +170 -18
  163. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +11 -17
  164. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +207 -62
  165. package/Libraries/Components/ScrollView/processDecelerationRate.js +2 -4
  166. package/Libraries/Components/Sound/NativeSoundManager.js +5 -15
  167. package/Libraries/Components/Sound/SoundManager.js +3 -4
  168. package/Libraries/Components/StaticRenderer.js +1 -1
  169. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +5 -27
  170. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +5 -35
  171. package/Libraries/Components/StatusBar/StatusBar.d.ts +138 -0
  172. package/Libraries/Components/StatusBar/StatusBar.js +40 -60
  173. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +5 -56
  174. package/Libraries/Components/Switch/Switch.d.ts +115 -0
  175. package/Libraries/Components/Switch/Switch.js +162 -133
  176. package/Libraries/Components/Switch/SwitchNativeComponent.js +5 -50
  177. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +237 -67
  178. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
  179. package/Libraries/Components/TextInput/InputAccessoryView.js +28 -23
  180. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +5 -18
  181. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +26 -31
  182. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +18 -38
  183. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +167 -0
  184. package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +8 -8
  185. package/Libraries/Components/TextInput/Tests/TextInputTest.js +128 -126
  186. package/Libraries/Components/TextInput/Tests/TextInputTest.js.map +1 -0
  187. package/Libraries/Components/TextInput/TextInput.d.ts +1003 -0
  188. package/Libraries/Components/TextInput/TextInput.flow.js +1105 -0
  189. package/Libraries/Components/TextInput/TextInput.js +1132 -445
  190. package/Libraries/Components/TextInput/TextInput.win32.js +2028 -179
  191. package/Libraries/Components/TextInput/TextInputNativeCommands.js +29 -0
  192. package/Libraries/Components/TextInput/TextInputState.js +42 -21
  193. package/Libraries/Components/TextInput/TextInputState.win32.js +55 -30
  194. package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +23 -0
  195. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +5 -31
  196. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +11 -10
  197. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +47 -0
  198. package/Libraries/Components/ToastAndroid/ToastAndroid.js +45 -0
  199. package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +16 -10
  200. package/Libraries/Components/Touchable/BoundingDimensions.js +13 -6
  201. package/Libraries/Components/Touchable/PooledClass.js +26 -15
  202. package/Libraries/Components/Touchable/Position.js +9 -5
  203. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.d.ts +8 -8
  204. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +344 -381
  205. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -0
  206. package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
  207. package/Libraries/Components/Touchable/Touchable.js +122 -133
  208. package/Libraries/Components/Touchable/Touchable.win32.js +978 -0
  209. package/Libraries/Components/Touchable/TouchableBounce.js +56 -55
  210. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +62 -0
  211. package/Libraries/Components/Touchable/TouchableHighlight.js +66 -56
  212. package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +119 -0
  213. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +86 -67
  214. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +99 -51
  215. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +81 -0
  216. package/Libraries/Components/Touchable/TouchableOpacity.js +94 -58
  217. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +37 -34
  218. package/Libraries/Components/Touchable/TouchableWin32.Props.js +3 -3
  219. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -0
  220. package/Libraries/Components/Touchable/TouchableWin32.Types.d.ts +114 -114
  221. package/Libraries/Components/Touchable/TouchableWin32.Types.js +3 -3
  222. package/Libraries/Components/Touchable/TouchableWin32.Types.js.map +1 -0
  223. package/Libraries/Components/Touchable/TouchableWin32.d.ts +91 -91
  224. package/Libraries/Components/Touchable/TouchableWin32.js +507 -529
  225. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -0
  226. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +151 -0
  227. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +149 -107
  228. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +4 -19
  229. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +3 -4
  230. package/Libraries/Components/View/ReactNativeStyleAttributes.js +200 -69
  231. package/Libraries/Components/View/ReactNativeViewAttributes.js +7 -3
  232. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +37 -13
  233. package/Libraries/Components/View/View.d.ts +29 -0
  234. package/Libraries/Components/View/View.js +105 -13
  235. package/Libraries/Components/View/View.win32.js +276 -0
  236. package/Libraries/Components/View/ViewAccessibility.d.ts +566 -0
  237. package/Libraries/Components/View/ViewAccessibility.js +88 -7
  238. package/Libraries/Components/View/ViewAccessibility.win32.js +180 -0
  239. package/Libraries/Components/View/ViewNativeComponent.js +98 -67
  240. package/Libraries/Components/View/ViewPropTypes.d.ts +354 -0
  241. package/Libraries/Components/View/ViewPropTypes.js +230 -66
  242. package/Libraries/Components/View/ViewPropTypes.win32.js +743 -0
  243. package/Libraries/Components/View/ViewWin32.d.ts +30 -12
  244. package/Libraries/Components/View/ViewWin32.js +129 -80
  245. package/Libraries/Core/Devtools/getDevServer.js +9 -8
  246. package/Libraries/Core/Devtools/loadBundleFromServer.js +152 -0
  247. package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +153 -0
  248. package/Libraries/Core/Devtools/openFileInEditor.js +6 -2
  249. package/Libraries/Core/Devtools/openURLInBrowser.js +3 -2
  250. package/Libraries/Core/Devtools/parseErrorStack.js +14 -23
  251. package/Libraries/Core/Devtools/parseHermesStack.js +71 -44
  252. package/Libraries/Core/Devtools/symbolicateStackTrace.js +13 -58
  253. package/Libraries/Core/ExceptionsManager.js +93 -98
  254. package/Libraries/Core/ExtendedError.js +33 -0
  255. package/Libraries/Core/InitializeCore.js +7 -3
  256. package/Libraries/Core/NativeExceptionsManager.js +5 -100
  257. package/Libraries/Core/RawEventEmitter.js +39 -0
  258. package/Libraries/Core/ReactFiberErrorDialog.js +47 -38
  259. package/Libraries/Core/ReactNativeVersion.js +13 -7
  260. package/Libraries/Core/ReactNativeVersionCheck.js +11 -8
  261. package/Libraries/Core/ReactNativeVersionCheck.win32.js +11 -8
  262. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +5 -21
  263. package/Libraries/Core/Timers/JSTimers.js +94 -120
  264. package/Libraries/Core/Timers/NativeTiming.js +5 -19
  265. package/Libraries/Core/Timers/immediateShim.js +68 -0
  266. package/Libraries/Core/Timers/queueMicrotask.js +41 -0
  267. package/Libraries/Core/__mocks__/ErrorUtils.js +1 -1
  268. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +20 -0
  269. package/Libraries/Core/checkNativeVersion.js +1 -1
  270. package/Libraries/Core/polyfillPromise.js +19 -3
  271. package/Libraries/Core/registerCallableModule.d.ts +16 -0
  272. package/Libraries/Core/registerCallableModule.js +42 -0
  273. package/Libraries/Core/setUpAlert.js +2 -2
  274. package/Libraries/Core/setUpBatchedBridge.js +15 -11
  275. package/Libraries/Core/setUpDeveloperTools.js +59 -60
  276. package/Libraries/Core/setUpErrorHandling.js +9 -3
  277. package/Libraries/Core/setUpGlobals.js +8 -6
  278. package/Libraries/Core/setUpNavigator.js +8 -7
  279. package/Libraries/Core/setUpPerformance.js +31 -0
  280. package/Libraries/Core/setUpReactDevTools.js +121 -12
  281. package/Libraries/Core/setUpReactRefresh.js +4 -6
  282. package/Libraries/Core/setUpRegeneratorRuntime.js +28 -9
  283. package/Libraries/Core/setUpSegmentFetcher.js +9 -47
  284. package/Libraries/Core/setUpTimers.js +96 -8
  285. package/Libraries/Core/setUpXHR.js +5 -5
  286. package/Libraries/Debugging/DebuggingOverlay.js +111 -0
  287. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
  288. package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
  289. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
  290. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +63 -0
  291. package/Libraries/EventEmitter/NativeEventEmitter.js +92 -40
  292. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +29 -0
  293. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +27 -68
  294. package/Libraries/EventEmitter/RCTEventEmitter.js +6 -2
  295. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
  296. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +2 -4
  297. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +34 -11
  298. package/Libraries/Events/CustomEvent.js +32 -0
  299. package/Libraries/Events/EventPolyfill.js +239 -0
  300. package/Libraries/HeapCapture/HeapCapture.js +3 -5
  301. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +5 -12
  302. package/Libraries/Image/AssetRegistry.js +2 -27
  303. package/Libraries/Image/AssetSourceResolver.js +65 -39
  304. package/Libraries/Image/AssetUtils.js +47 -0
  305. package/Libraries/Image/Image.android.js +208 -271
  306. package/Libraries/Image/Image.d.ts +382 -0
  307. package/Libraries/Image/Image.ios.js +147 -104
  308. package/Libraries/Image/Image.win32.js +152 -93
  309. package/Libraries/Image/ImageAnalyticsTagContext.js +22 -0
  310. package/Libraries/Image/ImageBackground.js +29 -13
  311. package/Libraries/Image/ImageInjection.js +87 -0
  312. package/Libraries/Image/ImageProps.js +154 -29
  313. package/Libraries/Image/ImageResizeMode.d.ts +49 -0
  314. package/Libraries/Image/ImageResizeMode.js +1 -1
  315. package/Libraries/Image/ImageSource.d.ts +76 -0
  316. package/Libraries/Image/ImageSource.js +73 -21
  317. package/Libraries/Image/ImageSourceUtils.js +80 -0
  318. package/Libraries/Image/ImageTypes.d.ts +25 -25
  319. package/Libraries/Image/ImageTypes.flow.js +76 -0
  320. package/Libraries/Image/ImageTypes.js +8 -8
  321. package/Libraries/Image/ImageTypes.js.map +1 -0
  322. package/Libraries/Image/ImageUtils.js +22 -0
  323. package/Libraries/Image/ImageViewNativeComponent.js +145 -29
  324. package/Libraries/Image/NativeImageEditor.js +13 -0
  325. package/Libraries/Image/NativeImageLoaderAndroid.js +5 -32
  326. package/Libraries/Image/NativeImageLoaderIOS.js +5 -24
  327. package/Libraries/Image/NativeImageLoaderWin32.js +5 -32
  328. package/Libraries/Image/NativeImageStoreAndroid.js +13 -0
  329. package/Libraries/Image/NativeImageStoreIOS.js +13 -0
  330. package/Libraries/Image/RelativeImageStub.js +2 -2
  331. package/Libraries/Image/Tests/ImageWin32Test.d.ts +8 -8
  332. package/Libraries/Image/Tests/ImageWin32Test.js +22 -19
  333. package/Libraries/Image/Tests/ImageWin32Test.js.map +1 -0
  334. package/Libraries/Image/TextInlineImageNativeComponent.js +38 -7
  335. package/Libraries/Image/assetPaths.js +36 -0
  336. package/Libraries/Image/nativeImageSource.js +4 -6
  337. package/Libraries/Image/resolveAssetSource.js +65 -31
  338. package/Libraries/Image/resolveAssetSource.win32.js +18 -6
  339. package/Libraries/Inspector/BorderBox.js +2 -2
  340. package/Libraries/Inspector/BoxInspector.js +4 -5
  341. package/Libraries/Inspector/ElementBox.js +15 -10
  342. package/Libraries/Inspector/ElementProperties.js +35 -62
  343. package/Libraries/Inspector/Inspector.js +152 -259
  344. package/Libraries/Inspector/Inspector.win32.js +156 -263
  345. package/Libraries/Inspector/InspectorOverlay.js +28 -53
  346. package/Libraries/Inspector/InspectorOverlay.win32.js +31 -54
  347. package/Libraries/Inspector/InspectorPanel.js +31 -37
  348. package/Libraries/Inspector/NetworkOverlay.js +28 -18
  349. package/Libraries/Inspector/PerformanceOverlay.js +5 -5
  350. package/Libraries/Inspector/ReactDevToolsOverlay.js +165 -0
  351. package/Libraries/Inspector/StyleInspector.js +3 -3
  352. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +81 -0
  353. package/Libraries/Inspector/resolveBoxStyle.js +1 -1
  354. package/Libraries/Interaction/FrameRateLogger.js +10 -22
  355. package/Libraries/Interaction/InteractionManager.d.ts +74 -0
  356. package/Libraries/Interaction/InteractionManager.js +29 -40
  357. package/Libraries/Interaction/JSEventLoopWatchdog.js +10 -15
  358. package/Libraries/Interaction/NativeFrameRateLogger.js +5 -16
  359. package/Libraries/Interaction/PanResponder.d.ts +202 -0
  360. package/Libraries/Interaction/PanResponder.js +26 -28
  361. package/Libraries/Interaction/TaskQueue.js +15 -16
  362. package/Libraries/Interaction/TouchHistoryMath.js +32 -29
  363. package/Libraries/JSInspector/InspectorAgent.js +4 -4
  364. package/Libraries/JSInspector/JSInspector.js +2 -5
  365. package/Libraries/JSInspector/NetworkAgent.js +12 -17
  366. package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
  367. package/Libraries/LayoutAnimation/LayoutAnimation.js +86 -37
  368. package/Libraries/Linking/Linking.d.ts +61 -0
  369. package/Libraries/Linking/Linking.js +50 -41
  370. package/Libraries/Linking/NativeIntentAndroid.js +13 -0
  371. package/Libraries/Linking/NativeLinkingManager.js +13 -0
  372. package/Libraries/Lists/FillRateHelper.js +6 -232
  373. package/Libraries/Lists/FlatList.d.ts +244 -0
  374. package/Libraries/Lists/FlatList.js +194 -127
  375. package/Libraries/Lists/SectionList.d.ts +267 -0
  376. package/Libraries/Lists/SectionList.js +38 -33
  377. package/Libraries/Lists/SectionListModern.js +249 -0
  378. package/Libraries/Lists/ViewabilityHelper.js +10 -327
  379. package/Libraries/Lists/VirtualizeUtils.js +6 -235
  380. package/Libraries/Lists/VirtualizedList.js +10 -2224
  381. package/Libraries/Lists/VirtualizedListContext.js +18 -0
  382. package/Libraries/Lists/VirtualizedSectionList.js +9 -565
  383. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +4 -3
  384. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +9 -9
  385. package/Libraries/LogBox/Data/LogBoxData.js +104 -73
  386. package/Libraries/LogBox/Data/LogBoxLog.js +125 -12
  387. package/Libraries/LogBox/Data/LogBoxSymbolication.js +10 -9
  388. package/Libraries/LogBox/Data/parseLogBoxLog.js +289 -76
  389. package/Libraries/LogBox/LogBox.d.ts +28 -0
  390. package/Libraries/LogBox/LogBox.js +163 -91
  391. package/Libraries/LogBox/LogBoxInspectorContainer.js +6 -6
  392. package/Libraries/LogBox/LogBoxNotificationContainer.js +10 -7
  393. package/Libraries/LogBox/UI/AnsiHighlight.js +17 -8
  394. package/Libraries/LogBox/UI/LogBoxButton.js +6 -7
  395. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  396. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  397. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  398. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  399. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  400. package/Libraries/LogBox/UI/LogBoxInspector.js +13 -77
  401. package/Libraries/LogBox/UI/LogBoxInspectorBody.js +87 -0
  402. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +12 -10
  403. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +168 -0
  404. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +9 -53
  405. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +58 -0
  406. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +19 -79
  407. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +113 -0
  408. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +76 -0
  409. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +6 -7
  410. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +16 -14
  411. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +196 -0
  412. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +3 -5
  413. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +6 -10
  414. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -10
  415. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +118 -0
  416. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +19 -11
  417. package/Libraries/LogBox/UI/LogBoxMessage.js +100 -19
  418. package/Libraries/LogBox/UI/LogBoxNotification.js +20 -158
  419. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +63 -0
  420. package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +67 -0
  421. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +57 -0
  422. package/Libraries/LogBox/UI/LogBoxStyle.js +1 -3
  423. package/Libraries/LogBox/UI/LogBoxStyle.win32.js +65 -0
  424. package/Libraries/Modal/Modal.d.ts +111 -0
  425. package/Libraries/Modal/Modal.js +147 -72
  426. package/Libraries/Modal/ModalInjection.js +15 -0
  427. package/Libraries/Modal/NativeModalManager.js +5 -14
  428. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +4 -117
  429. package/Libraries/NativeComponent/BaseViewConfig.android.js +358 -0
  430. package/Libraries/NativeComponent/BaseViewConfig.ios.js +423 -0
  431. package/Libraries/NativeComponent/BaseViewConfig.win32.js +415 -0
  432. package/Libraries/NativeComponent/NativeComponentRegistry.js +164 -0
  433. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +30 -0
  434. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +25 -0
  435. package/Libraries/NativeComponent/StaticViewConfigValidator.js +144 -0
  436. package/Libraries/NativeComponent/ViewConfig.js +52 -0
  437. package/Libraries/NativeComponent/ViewConfigIgnore.js +51 -0
  438. package/Libraries/NativeModules/specs/NativeDevMenu.js +5 -16
  439. package/Libraries/NativeModules/specs/NativeDevSettings.js +5 -26
  440. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +5 -12
  441. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +5 -41
  442. package/Libraries/NativeModules/specs/NativeLogBox.js +5 -13
  443. package/Libraries/NativeModules/specs/NativeRedBox.js +5 -13
  444. package/Libraries/NativeModules/specs/NativeSourceCode.js +5 -14
  445. package/Libraries/Network/FormData.js +13 -5
  446. package/Libraries/Network/NativeNetworkingAndroid.js +5 -30
  447. package/Libraries/Network/NativeNetworkingIOS.js +5 -30
  448. package/Libraries/Network/RCTNetworking.android.js +16 -12
  449. package/Libraries/Network/RCTNetworking.ios.js +67 -18
  450. package/Libraries/Network/RCTNetworking.win32.js +84 -68
  451. package/Libraries/Network/XHRInterceptor.js +66 -18
  452. package/Libraries/Network/XMLHttpRequest.js +107 -31
  453. package/Libraries/Network/convertRequestBody.js +4 -4
  454. package/Libraries/Network/fetch.js +2 -1
  455. package/Libraries/NewAppScreen/components/Colors.js +2 -3
  456. package/Libraries/NewAppScreen/components/DebugInstructions.js +9 -6
  457. package/Libraries/NewAppScreen/components/Header.js +38 -16
  458. package/Libraries/NewAppScreen/components/HermesBadge.js +53 -0
  459. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +52 -27
  460. package/Libraries/NewAppScreen/components/ReloadInstructions.js +5 -2
  461. package/Libraries/NewAppScreen/components/logo.png +0 -0
  462. package/Libraries/NewAppScreen/index.js +12 -6
  463. package/Libraries/Performance/NativeJSCSamplingProfiler.js +5 -12
  464. package/Libraries/Performance/SamplingProfiler.js +5 -5
  465. package/Libraries/Performance/Systrace.d.ts +66 -0
  466. package/Libraries/Performance/Systrace.js +116 -171
  467. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +5 -52
  468. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +116 -0
  469. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +60 -23
  470. package/Libraries/PersonaCoin/PersonaCoin.d.ts +3 -3
  471. package/Libraries/PersonaCoin/PersonaCoin.js +15 -22
  472. package/Libraries/PersonaCoin/PersonaCoin.js.map +1 -0
  473. package/Libraries/PersonaCoin/PersonaCoinPropTypes.d.ts +2 -2
  474. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js +20 -20
  475. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js.map +1 -0
  476. package/Libraries/PersonaCoin/PersonaCoinTypes.d.ts +33 -33
  477. package/Libraries/PersonaCoin/PersonaCoinTypes.js +24 -24
  478. package/Libraries/PersonaCoin/PersonaCoinTypes.js.map +1 -0
  479. package/Libraries/Pressability/HoverState.js +4 -4
  480. package/Libraries/Pressability/HoverState.win32.js +62 -0
  481. package/Libraries/Pressability/Pressability.js +244 -150
  482. package/Libraries/Pressability/Pressability.win32.js +1093 -0
  483. package/Libraries/Pressability/PressabilityDebug.js +31 -27
  484. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +49 -0
  485. package/Libraries/Pressability/PressabilityTypes.js +18 -0
  486. package/Libraries/Pressability/usePressability.js +25 -11
  487. package/Libraries/Promise.js +5 -35
  488. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +5 -66
  489. package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +295 -0
  490. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +134 -83
  491. package/Libraries/QuirkSettings/CachingNativeQuirkSettings.js +30 -0
  492. package/Libraries/QuirkSettings/NativeQuirkSettings.js +17 -0
  493. package/Libraries/QuirkSettings/QuirkSettings.js +34 -0
  494. package/Libraries/QuirkSettings/Quirks.js +17 -0
  495. package/Libraries/ReactNative/AppContainer-dev.js +208 -0
  496. package/Libraries/ReactNative/AppContainer-prod.js +50 -0
  497. package/Libraries/ReactNative/AppContainer.js +13 -138
  498. package/Libraries/ReactNative/AppRegistry.d.ts +121 -0
  499. package/Libraries/ReactNative/AppRegistry.js +133 -78
  500. package/Libraries/ReactNative/BridgelessUIManager.js +419 -0
  501. package/Libraries/ReactNative/DisplayMode.js +32 -0
  502. package/Libraries/ReactNative/FabricUIManager.js +116 -27
  503. package/Libraries/ReactNative/HeadlessJsTaskError.js +1 -3
  504. package/Libraries/ReactNative/I18nManager.d.ts +25 -0
  505. package/Libraries/ReactNative/I18nManager.js +17 -12
  506. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +5 -13
  507. package/Libraries/ReactNative/NativeI18nManager.js +5 -18
  508. package/Libraries/ReactNative/NativeUIManager.js +5 -114
  509. package/Libraries/ReactNative/PaperUIManager.js +79 -52
  510. package/Libraries/ReactNative/PaperUIManager.win32.js +210 -0
  511. package/Libraries/ReactNative/ReactFabricInternals.js +2 -2
  512. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +150 -0
  513. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +100 -0
  514. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +38 -0
  515. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +492 -0
  516. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +33 -0
  517. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +31 -0
  518. package/Libraries/ReactNative/ReactNativeRuntimeDiagnostics.js +68 -0
  519. package/Libraries/ReactNative/RendererImplementation.js +164 -0
  520. package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
  521. package/Libraries/ReactNative/RendererProxy.js +26 -0
  522. package/Libraries/ReactNative/RootTag.d.ts +13 -0
  523. package/Libraries/ReactNative/RootTag.js +27 -0
  524. package/Libraries/ReactNative/UIManager.d.ts +113 -0
  525. package/Libraries/ReactNative/UIManager.js +178 -24
  526. package/Libraries/ReactNative/UIManagerProperties.js +3 -8
  527. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +334 -0
  528. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +35 -0
  529. package/Libraries/ReactNative/getNativeComponentAttributes.js +51 -25
  530. package/Libraries/ReactNative/renderApplication.js +71 -23
  531. package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
  532. package/Libraries/ReactNative/requireNativeComponent.js +4 -4
  533. package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
  534. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +66 -11
  535. package/Libraries/Renderer/implementations/ReactFabric-dev.js +16225 -19958
  536. package/Libraries/Renderer/implementations/ReactFabric-prod.js +8087 -5327
  537. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +8773 -5583
  538. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +16543 -20582
  539. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +8148 -5386
  540. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +8836 -5645
  541. package/Libraries/Renderer/shims/ReactFabric.js +9 -8
  542. package/Libraries/Renderer/shims/ReactFeatureFlags.js +4 -2
  543. package/Libraries/Renderer/shims/ReactNative.js +4 -3
  544. package/Libraries/Renderer/shims/ReactNativeTypes.js +237 -81
  545. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +27 -37
  546. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +7 -6
  547. package/Libraries/Settings/NativeSettingsManager.js +5 -18
  548. package/Libraries/Settings/Settings.d.ts +18 -0
  549. package/Libraries/Settings/Settings.ios.js +7 -7
  550. package/Libraries/Settings/Settings.js +33 -0
  551. package/Libraries/Share/NativeShareModule.js +5 -16
  552. package/Libraries/Share/Share.d.ts +80 -0
  553. package/Libraries/Share/Share.js +33 -25
  554. package/Libraries/StyleSheet/EdgeInsetsPropType.js +5 -2
  555. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +10 -11
  556. package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
  557. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +52 -16
  558. package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +15 -5
  559. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
  560. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +11 -5
  561. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +4 -4
  562. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +2 -4
  563. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.js +2 -2
  564. package/Libraries/StyleSheet/PointPropType.js +1 -1
  565. package/Libraries/StyleSheet/Rect.js +1 -3
  566. package/Libraries/StyleSheet/StyleSheet.d.ts +150 -0
  567. package/Libraries/StyleSheet/StyleSheet.js +42 -56
  568. package/Libraries/StyleSheet/StyleSheet.win32.js +43 -57
  569. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +567 -0
  570. package/Libraries/StyleSheet/StyleSheetTypes.js +457 -130
  571. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +11 -35
  572. package/Libraries/StyleSheet/flattenStyle.js +14 -9
  573. package/Libraries/StyleSheet/normalizeColor.js +11 -370
  574. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
  575. package/Libraries/StyleSheet/private/_TransformStyle.js +69 -0
  576. package/Libraries/StyleSheet/processAspectRatio.js +63 -0
  577. package/Libraries/StyleSheet/processBackgroundImage.js +384 -0
  578. package/Libraries/StyleSheet/processBoxShadow.js +209 -0
  579. package/Libraries/StyleSheet/processColor.d.ts +16 -0
  580. package/Libraries/StyleSheet/processColor.js +6 -8
  581. package/Libraries/StyleSheet/processColorArray.js +18 -7
  582. package/Libraries/StyleSheet/processFilter.js +321 -0
  583. package/Libraries/StyleSheet/processFontVariant.js +30 -0
  584. package/Libraries/StyleSheet/processTransform.js +125 -111
  585. package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
  586. package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
  587. package/Libraries/StyleSheet/splitLayoutProps.js +57 -49
  588. package/Libraries/Text/Text.d.ts +304 -0
  589. package/Libraries/Text/Text.js +508 -270
  590. package/Libraries/Text/Text.win32.js +580 -0
  591. package/Libraries/Text/TextAncestor.js +7 -2
  592. package/Libraries/Text/TextNativeComponent.js +82 -0
  593. package/Libraries/Text/TextNativeComponent.win32.js +117 -0
  594. package/Libraries/Text/TextProps.js +107 -29
  595. package/Libraries/Text/TextProps.win32.js +281 -0
  596. package/Libraries/TurboModule/RCTExport.d.ts +12 -0
  597. package/Libraries/TurboModule/RCTExport.js +3 -1
  598. package/Libraries/TurboModule/TurboModuleRegistry.d.ts +13 -0
  599. package/Libraries/TurboModule/TurboModuleRegistry.js +24 -16
  600. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +5 -28
  601. package/Libraries/Types/CodegenTypes.js +9 -2
  602. package/Libraries/Types/CoreEventTypes.d.ts +259 -0
  603. package/Libraries/Types/CoreEventTypes.js +145 -10
  604. package/Libraries/Types/CoreEventTypes.win32.js +340 -0
  605. package/Libraries/Types/ReactDevToolsTypes.js +58 -0
  606. package/Libraries/Types/RootTagTypes.js +11 -0
  607. package/Libraries/Types/UIManagerJSInterface.js +16 -0
  608. package/Libraries/UTFSequence.js +6 -4
  609. package/Libraries/Utilities/Appearance.d.ts +53 -0
  610. package/Libraries/Utilities/Appearance.js +116 -63
  611. package/Libraries/Utilities/BackHandler.android.js +14 -23
  612. package/Libraries/Utilities/BackHandler.d.ts +38 -0
  613. package/Libraries/Utilities/BackHandler.ios.js +14 -96
  614. package/Libraries/Utilities/BackHandler.win32.js +107 -7
  615. package/Libraries/Utilities/DebugEnvironment.js +16 -0
  616. package/Libraries/Utilities/DevLoadingView.js +64 -0
  617. package/Libraries/Utilities/DevSettings.d.ts +32 -0
  618. package/Libraries/Utilities/DevSettings.js +55 -48
  619. package/Libraries/Utilities/DeviceInfo.js +1 -3
  620. package/Libraries/Utilities/DeviceInfo.win32.js +0 -2
  621. package/Libraries/Utilities/Dimensions.d.ts +79 -0
  622. package/Libraries/Utilities/Dimensions.js +30 -49
  623. package/Libraries/Utilities/Dimensions.win32.js +106 -18
  624. package/Libraries/Utilities/FeatureDetection.js +31 -0
  625. package/Libraries/Utilities/FocusManager.win32.d.ts +12 -0
  626. package/Libraries/Utilities/FocusManager.win32.js +42 -0
  627. package/Libraries/Utilities/GlobalPerformanceLogger.js +4 -5
  628. package/Libraries/Utilities/HMRClient.js +102 -39
  629. package/Libraries/Utilities/HMRClientProdShim.js +2 -1
  630. package/Libraries/Utilities/IPerformanceLogger.d.ts +48 -0
  631. package/Libraries/Utilities/IPerformanceLogger.js +49 -0
  632. package/Libraries/Utilities/NativeAppearance.js +5 -28
  633. package/Libraries/Utilities/NativeDevLoadingView.js +5 -17
  634. package/Libraries/Utilities/NativeDeviceInfo.js +4 -40
  635. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +5 -30
  636. package/Libraries/Utilities/NativePlatformConstantsIOS.js +5 -26
  637. package/Libraries/Utilities/NativePlatformConstantsWin.js +4 -21
  638. package/Libraries/Utilities/PerformanceLoggerContext.js +17 -10
  639. package/Libraries/Utilities/PixelRatio.d.ts +64 -0
  640. package/Libraries/Utilities/PixelRatio.js +6 -6
  641. package/Libraries/Utilities/Platform.android.js +37 -16
  642. package/Libraries/Utilities/Platform.d.ts +106 -0
  643. package/Libraries/Utilities/Platform.flow.js +91 -0
  644. package/Libraries/Utilities/Platform.flow.win32.js +124 -0
  645. package/Libraries/Utilities/Platform.ios.js +39 -19
  646. package/Libraries/Utilities/Platform.win32.js +42 -15
  647. package/Libraries/Utilities/PolyfillFunctions.js +6 -6
  648. package/Libraries/Utilities/RCTLog.js +6 -5
  649. package/Libraries/Utilities/ReactNativeTestTools.js +36 -58
  650. package/Libraries/Utilities/SceneTracker.js +6 -5
  651. package/Libraries/Utilities/__mocks__/BackHandler.js +6 -6
  652. package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +1 -1
  653. package/Libraries/Utilities/__mocks__/PixelRatio.js +2 -2
  654. package/Libraries/Utilities/binaryToBase64.js +6 -4
  655. package/Libraries/Utilities/codegenNativeCommands.js +6 -6
  656. package/Libraries/Utilities/codegenNativeComponent.js +24 -14
  657. package/Libraries/Utilities/createPerformanceLogger.js +259 -244
  658. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +12 -6
  659. package/Libraries/Utilities/defineLazyObjectProperty.js +3 -3
  660. package/Libraries/Utilities/differ/deepDiffer.js +3 -3
  661. package/Libraries/Utilities/differ/insetsDiffer.js +2 -2
  662. package/Libraries/Utilities/differ/matricesDiffer.js +6 -2
  663. package/Libraries/Utilities/differ/pointsDiffer.js +2 -2
  664. package/Libraries/Utilities/differ/sizesDiffer.js +11 -5
  665. package/Libraries/Utilities/dismissKeyboard.js +1 -1
  666. package/Libraries/Utilities/infoLog.js +3 -2
  667. package/Libraries/Utilities/logError.js +2 -2
  668. package/Libraries/Utilities/mapWithSeparator.js +1 -1
  669. package/Libraries/Utilities/stringifySafe.js +8 -8
  670. package/Libraries/Utilities/stringifyViewConfig.js +22 -0
  671. package/Libraries/Utilities/useColorScheme.js +10 -16
  672. package/Libraries/Utilities/useMergeRefs.js +40 -0
  673. package/Libraries/Utilities/useRefEffect.js +45 -0
  674. package/Libraries/Utilities/useWindowDimensions.js +15 -8
  675. package/Libraries/Utilities/warnOnce.js +3 -5
  676. package/Libraries/Vibration/NativeVibration.js +5 -17
  677. package/Libraries/Vibration/Vibration.d.ts +43 -0
  678. package/Libraries/Vibration/Vibration.js +16 -14
  679. package/Libraries/WebSocket/NativeWebSocketModule.js +5 -27
  680. package/Libraries/WebSocket/WebSocket.js +47 -27
  681. package/Libraries/WebSocket/WebSocketEvent.js +5 -2
  682. package/Libraries/WebSocket/WebSocketInterceptor.js +46 -27
  683. package/Libraries/WebSocket/__mocks__/event-target-shim.js +1 -1
  684. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
  685. package/Libraries/YellowBox/YellowBoxDeprecated.js +6 -6
  686. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +6 -6
  687. package/Libraries/__tests__/ButtonWin32-test.js +17 -0
  688. package/Libraries/platform-types.d.ts +25 -0
  689. package/Libraries/promiseRejectionTrackingOptions.js +72 -0
  690. package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
  691. package/Libraries/vendor/core/ErrorUtils.js +2 -2
  692. package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
  693. package/Libraries/vendor/emitter/EventEmitter.js +123 -193
  694. package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +81 -0
  695. package/babel.config.js +3 -0
  696. package/flow/HermesInternalType.js +114 -0
  697. package/flow/Position.js +1 -1
  698. package/flow/Stringish.js +1 -1
  699. package/flow/console.js +1 -1
  700. package/flow/global.js +87 -0
  701. package/flow/jest.js +266 -168
  702. package/flow/react.js +15 -0
  703. package/index.js +359 -254
  704. package/index.win32.js +768 -42
  705. package/interface.js +9 -9
  706. package/jest/MockNativeMethods.js +1 -1
  707. package/jest/__tests__/setup-test.js +18 -0
  708. package/jest/assetFileTransformer.js +7 -5
  709. package/jest/local-setup.js +28 -0
  710. package/jest/mockComponent.js +28 -16
  711. package/jest/mockModal.js +32 -0
  712. package/jest/mockNativeComponent.js +40 -0
  713. package/jest/mockScrollView.js +35 -0
  714. package/jest/react-native-env.js +16 -0
  715. package/jest/renderer.js +29 -22
  716. package/jest/setup.js +188 -88
  717. package/jest-snapshot-resolver.js +2 -0
  718. package/jest.config.js +38 -0
  719. package/just-task.js +11 -53
  720. package/metro.config.js +5 -20
  721. package/metroShortPathAssetDataPlugin.js +15 -0
  722. package/overrides.json +535 -0
  723. package/package.json +90 -48
  724. package/react-native.config.js +2 -0
  725. package/rn-get-polyfills.js +3 -6
  726. package/saveAssetPlugin.js +45 -0
  727. package/src/private/animated/NativeAnimatedHelper.js +440 -0
  728. package/src/private/animated/NativeAnimatedHelper.win32.js +443 -0
  729. package/src/private/animated/NativeAnimatedValidation.js +64 -0
  730. package/src/private/animated/useAnimatedPropsMemo.js +349 -0
  731. package/src/private/components/HScrollViewNativeComponents.js +55 -0
  732. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +31 -0
  733. package/src/private/components/VScrollViewNativeComponents.js +48 -0
  734. package/src/private/components/useSyncOnScroll.js +48 -0
  735. package/src/private/debugging/FuseboxSessionObserver.js +42 -0
  736. package/src/private/debugging/ReactDevToolsSettingsManager.android.js +20 -0
  737. package/src/private/debugging/ReactDevToolsSettingsManager.ios.js +30 -0
  738. package/src/private/debugging/ReactDevToolsSettingsManager.win32.js +20 -0
  739. package/src/private/debugging/setUpFuseboxReactDevToolsDispatcher.js +114 -0
  740. package/src/private/devmenu/DevMenu.d.ts +20 -0
  741. package/src/private/devmenu/DevMenu.js +31 -0
  742. package/src/private/featureflags/ReactNativeFeatureFlags.js +390 -0
  743. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +109 -0
  744. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +81 -0
  745. package/src/private/renderer/errorhandling/ErrorHandlers.js +126 -0
  746. package/src/private/setup/setUpDOM.js +28 -0
  747. package/src/private/setup/setUpIntersectionObserver.js +27 -0
  748. package/src/private/setup/setUpMutationObserver.js +26 -0
  749. package/src/private/setup/setUpPerformanceObserver.js +64 -0
  750. package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
  751. package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
  752. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +27 -0
  753. package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
  754. package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
  755. package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
  756. package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
  757. package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
  758. package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
  759. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +139 -0
  760. package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
  761. package/src/private/specs/components/SwitchNativeComponent.js +61 -0
  762. package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
  763. package/src/private/specs/modules/NativeAccessibilityInfo.js +36 -0
  764. package/src/private/specs/modules/NativeAccessibilityInfoWin32.js +42 -0
  765. package/src/private/specs/modules/NativeAccessibilityManager.js +70 -0
  766. package/src/private/specs/modules/NativeActionSheetManager.js +54 -0
  767. package/src/private/specs/modules/NativeAlertManager.js +35 -0
  768. package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
  769. package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
  770. package/src/private/specs/modules/NativeAppState.js +33 -0
  771. package/src/private/specs/modules/NativeAppearance.js +36 -0
  772. package/src/private/specs/modules/NativeBlobModule.js +61 -0
  773. package/src/private/specs/modules/NativeBugReporting.js +20 -0
  774. package/src/private/specs/modules/NativeClipboard.js +21 -0
  775. package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
  776. package/src/private/specs/modules/NativeDevMenu.js +23 -0
  777. package/src/private/specs/modules/NativeDevSettings.js +34 -0
  778. package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
  779. package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
  780. package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
  781. package/src/private/specs/modules/NativeExceptionsManager.js +103 -0
  782. package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
  783. package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
  784. package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
  785. package/src/private/specs/modules/NativeI18nManager.js +28 -0
  786. package/src/private/specs/modules/NativeImageEditor.js +52 -0
  787. package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
  788. package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
  789. package/src/private/specs/modules/NativeImageLoaderWin32.js +45 -0
  790. package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
  791. package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
  792. package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
  793. package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
  794. package/src/private/specs/modules/NativeJSCSamplingProfiler.js +19 -0
  795. package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
  796. package/src/private/specs/modules/NativeLinkingManager.js +27 -0
  797. package/src/private/specs/modules/NativeLogBox.js +20 -0
  798. package/src/private/specs/modules/NativeModalManager.js +21 -0
  799. package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
  800. package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
  801. package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
  802. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
  803. package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
  804. package/src/private/specs/modules/NativePlatformConstantsWin.js +44 -0
  805. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +103 -0
  806. package/src/private/specs/modules/NativeReactDevToolsSettingsManager.js +22 -0
  807. package/src/private/specs/modules/NativeRedBox.js +20 -0
  808. package/src/private/specs/modules/NativeSampleTurboModule.js +66 -0
  809. package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
  810. package/src/private/specs/modules/NativeSettingsManager.js +25 -0
  811. package/src/private/specs/modules/NativeShareModule.js +23 -0
  812. package/src/private/specs/modules/NativeSoundManager.js +22 -0
  813. package/src/private/specs/modules/NativeSourceCode.js +36 -0
  814. package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
  815. package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
  816. package/src/private/specs/modules/NativeTiming.js +26 -0
  817. package/src/private/specs/modules/NativeToastAndroid.js +38 -0
  818. package/src/private/specs/modules/NativeUIManager.js +111 -0
  819. package/src/private/specs/modules/NativeVibration.js +24 -0
  820. package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
  821. package/src/private/styles/composeStyles.js +27 -0
  822. package/src/private/webapis/dom/geometry/DOMRect.js +82 -0
  823. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +188 -0
  824. package/src/private/webapis/dom/nodes/ReactNativeElement.js +188 -0
  825. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +71 -0
  826. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +247 -0
  827. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +359 -0
  828. package/src/private/webapis/dom/nodes/ReadOnlyText.js +30 -0
  829. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +468 -0
  830. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +413 -0
  831. package/src/private/webapis/dom/nodes/utilities/Traversal.js +54 -0
  832. package/src/private/webapis/dom/oldstylecollections/ArrayLikeUtils.js +46 -0
  833. package/src/private/webapis/dom/oldstylecollections/DOMRectList.js +76 -0
  834. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +82 -0
  835. package/src/private/webapis/dom/oldstylecollections/NodeList.js +104 -0
  836. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +34 -0
  837. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +254 -0
  838. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +141 -0
  839. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +276 -0
  840. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +41 -0
  841. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +172 -0
  842. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +21 -0
  843. package/src/private/webapis/mutationobserver/MutationObserver.js +186 -0
  844. package/src/private/webapis/mutationobserver/MutationObserverManager.js +227 -0
  845. package/src/private/webapis/mutationobserver/MutationRecord.js +82 -0
  846. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +58 -0
  847. package/src/private/webapis/mutationobserver/specs/__mocks__/NativeMutationObserver.js +327 -0
  848. package/src/private/webapis/performance/EventTiming.js +145 -0
  849. package/src/private/webapis/performance/LongTasks.js +39 -0
  850. package/src/private/webapis/performance/MemoryInfo.js +54 -0
  851. package/src/private/webapis/performance/Performance.js +278 -0
  852. package/src/private/webapis/performance/PerformanceEntry.js +68 -0
  853. package/src/private/webapis/performance/PerformanceObserver.js +232 -0
  854. package/src/private/webapis/performance/RawPerformanceEntry.js +105 -0
  855. package/src/private/webapis/performance/ReactNativeStartupTiming.js +91 -0
  856. package/src/private/webapis/performance/UserTiming.js +72 -0
  857. package/src/private/webapis/performance/Utilities.js +18 -0
  858. package/src/private/webapis/performance/specs/NativePerformance.js +87 -0
  859. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +247 -0
  860. package/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +177 -0
  861. package/src-win/Libraries/Components/Button/ButtonWin32.Props.ts +45 -0
  862. package/src-win/Libraries/Components/Button/ButtonWin32.tsx +94 -0
  863. package/src-win/Libraries/Components/EnterString.win32.tsx +110 -0
  864. package/src-win/Libraries/Components/TextInput/Tests/TextInputTest.tsx +185 -0
  865. package/src-win/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +502 -0
  866. package/src-win/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +119 -0
  867. package/src-win/Libraries/Components/Touchable/TouchableWin32.Props.tsx +46 -0
  868. package/src-win/Libraries/Components/Touchable/TouchableWin32.Types.tsx +137 -0
  869. package/src-win/Libraries/Components/Touchable/TouchableWin32.tsx +624 -0
  870. package/src-win/Libraries/Components/View/ViewAccessibility.d.ts +566 -0
  871. package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +354 -0
  872. package/src-win/Libraries/Components/View/ViewWin32.d.ts +30 -0
  873. package/src-win/Libraries/Image/ImageTypes.ts +27 -0
  874. package/src-win/Libraries/Image/Tests/ImageWin32Test.tsx +22 -0
  875. package/src-win/Libraries/Image/Tests/img/dpitest.png +0 -0
  876. package/src-win/Libraries/Image/Tests/img/dpitest@1.5x.png +0 -0
  877. package/src-win/Libraries/Image/Tests/img/dpitest@2x.png +0 -0
  878. package/src-win/Libraries/Image/Tests/img/dpitest@3x.png +0 -0
  879. package/src-win/Libraries/Image/Tests/img/en-us/dpitest.png +0 -0
  880. package/src-win/Libraries/Image/Tests/img/en-us/dpitest@1.5x.png +0 -0
  881. package/src-win/Libraries/Image/Tests/img/en-us/dpitest@3x.png +0 -0
  882. package/src-win/Libraries/PersonaCoin/PersonaCoin.tsx +12 -0
  883. package/src-win/Libraries/PersonaCoin/PersonaCoinPropTypes.ts +17 -0
  884. package/src-win/Libraries/PersonaCoin/PersonaCoinTypes.ts +36 -0
  885. package/src-win/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +38 -0
  886. package/src-win/Libraries/Text/Text.d.ts +304 -0
  887. package/src-win/Libraries/Utilities/FocusManager.win32.d.ts +12 -0
  888. package/src-win/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +22 -0
  889. package/src-win/Libraries/platform-types.d.ts +25 -0
  890. package/types/experimental.d.ts +59 -0
  891. package/types/index.d.ts +218 -0
  892. package/types/modules/BatchedBridge.d.ts +32 -0
  893. package/types/modules/Codegen.d.ts +80 -0
  894. package/types/modules/Devtools.d.ts +32 -0
  895. package/types/modules/LaunchScreen.d.ts +18 -0
  896. package/types/modules/globals.d.ts +599 -0
  897. package/types/private/TimerMixin.d.ts +19 -0
  898. package/types/private/Utilities.d.ts +10 -0
  899. package/types/public/DeprecatedPropertiesAlias.d.ts +185 -0
  900. package/types/public/Insets.d.ts +15 -0
  901. package/types/public/ReactNativeRenderer.d.ts +144 -0
  902. package/types/public/ReactNativeTypes.d.ts +139 -0
  903. package/IntegrationTests/AsyncStorageTest.js +0 -217
  904. package/IntegrationTests/PropertiesUpdateTest.js +0 -29
  905. package/IntegrationTests/RCTRootViewIntegrationTestApp.js +0 -92
  906. package/IntegrationTests/ReactContentSizeUpdateTest.js +0 -91
  907. package/IntegrationTests/SizeFlexibilityUpdateTest.js +0 -108
  908. package/IntegrationTests/launchWebSocketServer.command +0 -18
  909. package/Libraries/Animated/examples/demo.html +0 -712
  910. package/Libraries/Animated/examples/pic1.jpg +0 -0
  911. package/Libraries/Animated/examples/pic2.jpg +0 -0
  912. package/Libraries/Animated/examples/pic3.jpg +0 -0
  913. package/Libraries/Animated/release/gulpfile.js +0 -155
  914. package/Libraries/Animated/src/Animated.js +0 -49
  915. package/Libraries/Animated/src/AnimatedEvent.js +0 -233
  916. package/Libraries/Animated/src/AnimatedImplementation.js +0 -712
  917. package/Libraries/Animated/src/AnimatedMock.js +0 -156
  918. package/Libraries/Animated/src/AnimatedWeb.js +0 -23
  919. package/Libraries/Animated/src/Easing.js +0 -252
  920. package/Libraries/Animated/src/NativeAnimatedHelper.js +0 -342
  921. package/Libraries/Animated/src/NativeAnimatedModule.js +0 -66
  922. package/Libraries/Animated/src/SpringConfig.js +0 -103
  923. package/Libraries/Animated/src/animations/Animation.js +0 -73
  924. package/Libraries/Animated/src/animations/DecayAnimation.js +0 -120
  925. package/Libraries/Animated/src/animations/SpringAnimation.js +0 -359
  926. package/Libraries/Animated/src/animations/TimingAnimation.js +0 -165
  927. package/Libraries/Animated/src/bezier.js +0 -153
  928. package/Libraries/Animated/src/components/AnimatedFlatList.js +0 -32
  929. package/Libraries/Animated/src/components/AnimatedImage.js +0 -25
  930. package/Libraries/Animated/src/components/AnimatedScrollView.js +0 -32
  931. package/Libraries/Animated/src/components/AnimatedSectionList.js +0 -32
  932. package/Libraries/Animated/src/components/AnimatedText.js +0 -25
  933. package/Libraries/Animated/src/components/AnimatedView.js +0 -23
  934. package/Libraries/Animated/src/createAnimatedComponent.js +0 -223
  935. package/Libraries/Animated/src/nodes/AnimatedAddition.js +0 -63
  936. package/Libraries/Animated/src/nodes/AnimatedDiffClamp.js +0 -71
  937. package/Libraries/Animated/src/nodes/AnimatedDivision.js +0 -68
  938. package/Libraries/Animated/src/nodes/AnimatedInterpolation.js +0 -373
  939. package/Libraries/Animated/src/nodes/AnimatedModulo.js +0 -62
  940. package/Libraries/Animated/src/nodes/AnimatedMultiplication.js +0 -63
  941. package/Libraries/Animated/src/nodes/AnimatedNode.js +0 -184
  942. package/Libraries/Animated/src/nodes/AnimatedProps.js +0 -176
  943. package/Libraries/Animated/src/nodes/AnimatedStyle.js +0 -127
  944. package/Libraries/Animated/src/nodes/AnimatedSubtraction.js +0 -63
  945. package/Libraries/Animated/src/nodes/AnimatedTracking.js +0 -102
  946. package/Libraries/Animated/src/nodes/AnimatedTransform.js +0 -121
  947. package/Libraries/Animated/src/nodes/AnimatedValue.js +0 -265
  948. package/Libraries/Animated/src/nodes/AnimatedValueXY.js +0 -226
  949. package/Libraries/Animated/src/nodes/AnimatedWithChildren.js +0 -87
  950. package/Libraries/Animated/src/polyfills/InteractionManager.js +0 -15
  951. package/Libraries/Animated/src/polyfills/Set.js +0 -26
  952. package/Libraries/Animated/src/polyfills/flattenStyle.js +0 -13
  953. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.android.js +0 -162
  954. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.ios.js +0 -271
  955. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.win32.js +0 -33
  956. package/Libraries/Components/AppleTV/NativeTVNavigationEventEmitter.js +0 -23
  957. package/Libraries/Components/AppleTV/TVEventHandler.js +0 -52
  958. package/Libraries/Components/CheckBox/AndroidCheckBoxNativeComponent.js +0 -74
  959. package/Libraries/Components/CheckBox/CheckBox.android.js +0 -228
  960. package/Libraries/Components/CheckBox/CheckBox.ios.js +0 -13
  961. package/Libraries/Components/CheckBox/CheckBox.win32.js +0 -12
  962. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -46
  963. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -189
  964. package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +0 -46
  965. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
  966. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -89
  967. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  968. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.win32.js +0 -30
  969. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  970. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -22
  971. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +0 -12
  972. package/Libraries/Components/MaskedView/MaskedViewIOS.android.js +0 -13
  973. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +0 -93
  974. package/Libraries/Components/MaskedView/MaskedViewIOS.win32.js +0 -13
  975. package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +0 -21
  976. package/Libraries/Components/Picker/AndroidDialogPickerNativeComponent.js +0 -68
  977. package/Libraries/Components/Picker/AndroidDropdownPickerNativeComponent.js +0 -68
  978. package/Libraries/Components/Picker/Picker.js +0 -159
  979. package/Libraries/Components/Picker/Picker.win32.d.ts +0 -1
  980. package/Libraries/Components/Picker/Picker.win32.js +0 -80
  981. package/Libraries/Components/Picker/PickerAndroid.android.js +0 -146
  982. package/Libraries/Components/Picker/PickerAndroid.ios.js +0 -12
  983. package/Libraries/Components/Picker/PickerAndroid.js +0 -12
  984. package/Libraries/Components/Picker/PickerIOS.android.js +0 -14
  985. package/Libraries/Components/Picker/PickerIOS.ios.js +0 -164
  986. package/Libraries/Components/Picker/PickerIOS.js +0 -14
  987. package/Libraries/Components/Picker/RCTPickerNativeComponent.js +0 -63
  988. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js +0 -12
  989. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -46
  990. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -77
  991. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +0 -8
  992. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -35
  993. package/Libraries/Components/ScrollResponder.js +0 -773
  994. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -77
  995. package/Libraries/Components/ScrollView/__mocks__/ScrollViewMock.js +0 -39
  996. package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -46
  997. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -46
  998. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
  999. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.js +0 -46
  1000. package/Libraries/Components/Slider/Slider.js +0 -276
  1001. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -60
  1002. package/Libraries/Components/StaticContainer.react.js +0 -51
  1003. package/Libraries/Components/StatusBar/StatusBarIOS.js +0 -22
  1004. package/Libraries/Components/Text/TextWin32.Props.d.ts +0 -26
  1005. package/Libraries/Components/Text/TextWin32.Props.js +0 -3
  1006. package/Libraries/Components/Text/TextWin32.d.ts +0 -6
  1007. package/Libraries/Components/Text/TextWin32.js +0 -41
  1008. package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +0 -84
  1009. package/Libraries/Components/TextInput/RCTSinglelineTextInputViewConfig.js +0 -134
  1010. package/Libraries/Components/TextInput/TextInput.Types.win32.d.ts +0 -51
  1011. package/Libraries/Components/TextInput/TextInput.Types.win32.js +0 -3
  1012. package/Libraries/Components/TextInput/TextInput.win32.d.ts +0 -68
  1013. package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +0 -39
  1014. package/Libraries/Components/Touchable/TVTouchable.js +0 -55
  1015. package/Libraries/Components/Touchable/TouchableNativeFeedback.Props.d.ts +0 -7
  1016. package/Libraries/Components/Touchable/TouchableNativeFeedback.Props.js +0 -3
  1017. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.d.ts +0 -16
  1018. package/Libraries/Components/Touchable/__mocks__/ensureComponentIsNative.js +0 -12
  1019. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -26
  1020. package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -347
  1021. package/Libraries/Components/View/ReactNativeViewViewConfig.win32.js +0 -384
  1022. package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -74
  1023. package/Libraries/Components/View/Tests/ViewWin32Test.d.ts +0 -8
  1024. package/Libraries/Components/View/Tests/ViewWin32Test.js +0 -235
  1025. package/Libraries/Components/View/ViewWin32.Props.d.ts +0 -149
  1026. package/Libraries/Components/View/ViewWin32.Props.js +0 -11
  1027. package/Libraries/Core/setUpSystrace.js +0 -21
  1028. package/Libraries/DeprecatedPropTypes/DeprecatedColorPropType.js +0 -76
  1029. package/Libraries/DeprecatedPropTypes/DeprecatedEdgeInsetsPropType.js +0 -28
  1030. package/Libraries/DeprecatedPropTypes/DeprecatedImagePropType.js +0 -82
  1031. package/Libraries/DeprecatedPropTypes/DeprecatedImageSourcePropType.js +0 -40
  1032. package/Libraries/DeprecatedPropTypes/DeprecatedImageStylePropTypes.js +0 -76
  1033. package/Libraries/DeprecatedPropTypes/DeprecatedLayoutPropTypes.js +0 -233
  1034. package/Libraries/DeprecatedPropTypes/DeprecatedPointPropType.js +0 -24
  1035. package/Libraries/DeprecatedPropTypes/DeprecatedShadowPropTypesIOS.js +0 -30
  1036. package/Libraries/DeprecatedPropTypes/DeprecatedStyleSheetPropType.js +0 -32
  1037. package/Libraries/DeprecatedPropTypes/DeprecatedTVViewPropTypes.js +0 -23
  1038. package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +0 -622
  1039. package/Libraries/DeprecatedPropTypes/DeprecatedTextPropTypes.js +0 -158
  1040. package/Libraries/DeprecatedPropTypes/DeprecatedTextStylePropTypes.js +0 -157
  1041. package/Libraries/DeprecatedPropTypes/DeprecatedTransformPropTypes.js +0 -99
  1042. package/Libraries/DeprecatedPropTypes/DeprecatedViewAccessibility.js +0 -44
  1043. package/Libraries/DeprecatedPropTypes/DeprecatedViewPropTypes.js +0 -408
  1044. package/Libraries/DeprecatedPropTypes/DeprecatedViewStylePropTypes.js +0 -68
  1045. package/Libraries/DeprecatedPropTypes/deprecatedCreateStrictShapeTypeChecker.js +0 -86
  1046. package/Libraries/Image/ImagePickerIOS.js +0 -105
  1047. package/Libraries/Image/ImageViewViewConfig.js +0 -68
  1048. package/Libraries/Image/NativeImagePickerIOS.js +0 -40
  1049. package/Libraries/Image/assetPathUtils.js +0 -91
  1050. package/Libraries/Interaction/Batchinator.js +0 -76
  1051. package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -62
  1052. package/Libraries/Interaction/InteractionMixin.js +0 -55
  1053. package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
  1054. package/Libraries/Linking/NativeLinking.js +0 -41
  1055. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -21
  1056. package/Libraries/Performance/PureComponentDebug.js +0 -73
  1057. package/Libraries/Performance/QuickPerformanceLogger.js +0 -101
  1058. package/Libraries/ReactNative/DummyUIManager.js +0 -123
  1059. package/Libraries/ReactNative/RootTagContext.js +0 -15
  1060. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  1061. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -20493
  1062. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -7440
  1063. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -7718
  1064. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -21091
  1065. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -7677
  1066. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -7955
  1067. package/Libraries/Renderer/shims/ReactTypes.js +0 -192
  1068. package/Libraries/Settings/Settings.android.js +0 -33
  1069. package/Libraries/Storage/AsyncStorage.js +0 -360
  1070. package/Libraries/Storage/NativeAsyncStorage.js +0 -44
  1071. package/Libraries/StyleSheet/PlatformColorValueTypesAndroid.android.js +0 -18
  1072. package/Libraries/StyleSheet/PlatformColorValueTypesAndroid.js +0 -17
  1073. package/Libraries/StyleSheet/StyleSheetValidation.js +0 -97
  1074. package/Libraries/StyleSheet/StyleSheetValidation.win32.js +0 -102
  1075. package/Libraries/Utilities/BackHandler.win32.d.ts +0 -2
  1076. package/Libraries/Utilities/JSDevSupportModule.js +0 -40
  1077. package/Libraries/Utilities/LoadingView.android.js +0 -29
  1078. package/Libraries/Utilities/LoadingView.ios.js +0 -40
  1079. package/Libraries/Utilities/LoadingView.js +0 -16
  1080. package/Libraries/Utilities/MatrixMath.js +0 -752
  1081. package/Libraries/Utilities/NativeJSDevSupport.js +0 -25
  1082. package/Libraries/Utilities/buildStyleInterpolator.js +0 -211
  1083. package/Libraries/Utilities/clamp.js +0 -23
  1084. package/Libraries/Utilities/deprecatedPropType.js +0 -38
  1085. package/Libraries/Utilities/groupByEveryN.js +0 -51
  1086. package/Libraries/Utilities/mergeIntoFast.js +0 -26
  1087. package/Libraries/Utilities/registerGeneratedViewConfig.js +0 -83
  1088. package/Libraries/Utilities/setAndForwardRef.js +0 -71
  1089. package/Libraries/Utilities/truncate.js +0 -51
  1090. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +0 -134
  1091. package/Libraries/polyfills/Object.es7.js +0 -58
  1092. package/Libraries/polyfills/console.js +0 -641
  1093. package/Libraries/polyfills/error-guard.js +0 -115
  1094. package/Libraries/promiseRejectionIsError.js +0 -24
  1095. package/Libraries/vendor/emitter/EmitterSubscription.js +0 -59
  1096. package/Libraries/vendor/emitter/EventSubscription.js +0 -40
  1097. package/Libraries/vendor/emitter/EventSubscriptionVendor.js +0 -101
  1098. package/RNTester/APIExamples/AccessibilityExampleWin32.d.ts +0 -8
  1099. package/RNTester/APIExamples/AccessibilityExampleWin32.js +0 -262
  1100. package/RNTester/APIExamples/ThemingModuleAPI.d.ts +0 -8
  1101. package/RNTester/APIExamples/ThemingModuleAPI.js +0 -80
  1102. package/RNTester/js/RNTesterApp.android.js +0 -363
  1103. package/RNTester/js/RNTesterApp.ios.js +0 -272
  1104. package/RNTester/js/RNTesterApp.win32.js +0 -285
  1105. package/RNTester/js/assets/bandaged.png +0 -0
  1106. package/RNTester/js/assets/bunny.png +0 -0
  1107. package/RNTester/js/assets/call.png +0 -0
  1108. package/RNTester/js/assets/dislike.png +0 -0
  1109. package/RNTester/js/assets/fist.png +0 -0
  1110. package/RNTester/js/assets/flowers.png +0 -0
  1111. package/RNTester/js/assets/flux@3x.png +0 -0
  1112. package/RNTester/js/assets/hawk.png +0 -0
  1113. package/RNTester/js/assets/heart.png +0 -0
  1114. package/RNTester/js/assets/helloworld.html +0 -25
  1115. package/RNTester/js/assets/imageMask.png +0 -0
  1116. package/RNTester/js/assets/like.png +0 -0
  1117. package/RNTester/js/assets/liking.png +0 -0
  1118. package/RNTester/js/assets/messagingtest.html +0 -28
  1119. package/RNTester/js/assets/party.png +0 -0
  1120. package/RNTester/js/assets/poke.png +0 -0
  1121. package/RNTester/js/assets/relay@3x.png +0 -0
  1122. package/RNTester/js/assets/slider-left.png +0 -0
  1123. package/RNTester/js/assets/slider-left@2x.png +0 -0
  1124. package/RNTester/js/assets/slider-right.png +0 -0
  1125. package/RNTester/js/assets/slider-right@2x.png +0 -0
  1126. package/RNTester/js/assets/slider.png +0 -0
  1127. package/RNTester/js/assets/slider@2x.png +0 -0
  1128. package/RNTester/js/assets/superlike.png +0 -0
  1129. package/RNTester/js/assets/trees.jpg +0 -0
  1130. package/RNTester/js/assets/tumblr_mfqekpMktw1rn90umo1_500.gif +0 -0
  1131. package/RNTester/js/assets/uie_comment_highlighted@2x.png +0 -0
  1132. package/RNTester/js/assets/uie_comment_normal@2x.png +0 -0
  1133. package/RNTester/js/assets/uie_thumb_big.png +0 -0
  1134. package/RNTester/js/assets/uie_thumb_normal@2x.png +0 -0
  1135. package/RNTester/js/assets/uie_thumb_selected@2x.png +0 -0
  1136. package/RNTester/js/assets/victory.png +0 -0
  1137. package/RNTester/js/components/ListExampleShared.js +0 -377
  1138. package/RNTester/js/components/ListExampleShared.win32.js +0 -384
  1139. package/RNTester/js/components/RNTesterBlock.js +0 -105
  1140. package/RNTester/js/components/RNTesterButton.js +0 -50
  1141. package/RNTester/js/components/RNTesterExampleContainer.js +0 -80
  1142. package/RNTester/js/components/RNTesterExampleFilter.js +0 -120
  1143. package/RNTester/js/components/RNTesterExampleFilter.win32.js +0 -120
  1144. package/RNTester/js/components/RNTesterExampleList.js +0 -254
  1145. package/RNTester/js/components/RNTesterPage.js +0 -76
  1146. package/RNTester/js/components/RNTesterSettingSwitchRow.js +0 -60
  1147. package/RNTester/js/components/RNTesterTheme.js +0 -90
  1148. package/RNTester/js/components/RNTesterTitle.js +0 -58
  1149. package/RNTester/js/components/TextInlineView.js +0 -207
  1150. package/RNTester/js/components/TextLegend.js +0 -248
  1151. package/RNTester/js/components/createExamplePage.js +0 -31
  1152. package/RNTester/js/examples/Accessibility/AccessibilityAndroidExample.android.js +0 -177
  1153. package/RNTester/js/examples/Accessibility/AccessibilityExample.js +0 -792
  1154. package/RNTester/js/examples/Accessibility/AccessibilityIOSExample.js +0 -72
  1155. package/RNTester/js/examples/Accessibility/check.png +0 -0
  1156. package/RNTester/js/examples/Accessibility/mixed.png +0 -0
  1157. package/RNTester/js/examples/Accessibility/uncheck.png +0 -0
  1158. package/RNTester/js/examples/ActionSheetIOS/ActionSheetIOSExample.js +0 -342
  1159. package/RNTester/js/examples/ActivityIndicator/ActivityIndicatorExample.js +0 -162
  1160. package/RNTester/js/examples/Alert/AlertExample.js +0 -158
  1161. package/RNTester/js/examples/Alert/AlertIOSExample.js +0 -204
  1162. package/RNTester/js/examples/Animated/AnimatedExample.js +0 -347
  1163. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExApp.js +0 -407
  1164. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExBobble.js +0 -171
  1165. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExChained.js +0 -120
  1166. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExScroll.js +0 -124
  1167. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExSet.js +0 -149
  1168. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExSlides.md +0 -107
  1169. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExTilt.js +0 -154
  1170. package/RNTester/js/examples/AppState/AppStateExample.js +0 -106
  1171. package/RNTester/js/examples/Appearance/AppearanceExample.js +0 -219
  1172. package/RNTester/js/examples/AsyncStorage/AsyncStorageExample.js +0 -103
  1173. package/RNTester/js/examples/Border/BorderExample.js +0 -301
  1174. package/RNTester/js/examples/BoxShadow/BoxShadowExample.js +0 -100
  1175. package/RNTester/js/examples/Button/ButtonExample.js +0 -127
  1176. package/RNTester/js/examples/CheckBox/CheckBoxExample.js +0 -148
  1177. package/RNTester/js/examples/Clipboard/ClipboardExample.js +0 -68
  1178. package/RNTester/js/examples/ColorGradientWin32Example.js +0 -109
  1179. package/RNTester/js/examples/Crash/CrashExample.js +0 -52
  1180. package/RNTester/js/examples/DatePicker/DatePickerAndroidExample.js +0 -170
  1181. package/RNTester/js/examples/DatePicker/DatePickerIOSExample.js +0 -150
  1182. package/RNTester/js/examples/DevSettings/DevSettingsExample.js +0 -47
  1183. package/RNTester/js/examples/Dimensions/DimensionsExample.js +0 -68
  1184. package/RNTester/js/examples/FlatList/FlatListExample.js +0 -287
  1185. package/RNTester/js/examples/Image/ImageCapInsetsExample.js +0 -68
  1186. package/RNTester/js/examples/Image/ImageExample.js +0 -955
  1187. package/RNTester/js/examples/InputAccessoryView/InputAccessoryViewExample.js +0 -121
  1188. package/RNTester/js/examples/JSResponderHandlerExample/JSResponderHandlerExample.js +0 -77
  1189. package/RNTester/js/examples/KeyboardAvoidingView/KeyboardAvoidingViewExample.js +0 -120
  1190. package/RNTester/js/examples/Layout/LayoutAnimationExample.js +0 -221
  1191. package/RNTester/js/examples/Layout/LayoutEventsExample.js +0 -165
  1192. package/RNTester/js/examples/Layout/LayoutExample.js +0 -206
  1193. package/RNTester/js/examples/Linking/LinkingExample.js +0 -128
  1194. package/RNTester/js/examples/MaskedView/MaskedViewExample.js +0 -236
  1195. package/RNTester/js/examples/Modal/ModalExample.js +0 -283
  1196. package/RNTester/js/examples/MultiColumn/MultiColumnExample.js +0 -189
  1197. package/RNTester/js/examples/NativeAnimation/NativeAnimationsExample.js +0 -702
  1198. package/RNTester/js/examples/NewAppScreen/NewAppScreenExample.js +0 -77
  1199. package/RNTester/js/examples/OrientationChange/OrientationChangeExample.js +0 -66
  1200. package/RNTester/js/examples/PanResponder/PanResponderExample.js +0 -154
  1201. package/RNTester/js/examples/PermissionsAndroid/PermissionsExample.js +0 -130
  1202. package/RNTester/js/examples/Picker/PickerExample.js +0 -220
  1203. package/RNTester/js/examples/Picker/PickerIOSExample.js +0 -190
  1204. package/RNTester/js/examples/PlatformColor/PlatformColorExample.js +0 -355
  1205. package/RNTester/js/examples/PointerEvents/PointerEventsExample.js +0 -240
  1206. package/RNTester/js/examples/Pressable/PressableExample.js +0 -426
  1207. package/RNTester/js/examples/ProgressBarAndroid/ProgressBarAndroidExample.android.js +0 -94
  1208. package/RNTester/js/examples/ProgressViewIOS/ProgressViewIOSExample.js +0 -103
  1209. package/RNTester/js/examples/PushNotificationIOS/PushNotificationIOSExample.js +0 -267
  1210. package/RNTester/js/examples/RCTRootView/RCTRootViewIOSExample.js +0 -95
  1211. package/RNTester/js/examples/RTL/RTLExample.js +0 -747
  1212. package/RNTester/js/examples/RefreshControl/RefreshControlExample.js +0 -127
  1213. package/RNTester/js/examples/RootViewSizeFlexibilityExample/RootViewSizeFlexibilityExampleApp.js +0 -68
  1214. package/RNTester/js/examples/SafeAreaView/SafeAreaViewExample.js +0 -137
  1215. package/RNTester/js/examples/ScrollView/ScrollViewAnimatedExample.js +0 -107
  1216. package/RNTester/js/examples/ScrollView/ScrollViewExample.js +0 -346
  1217. package/RNTester/js/examples/ScrollView/ScrollViewSimpleExample.js +0 -105
  1218. package/RNTester/js/examples/SectionList/SectionListExample.js +0 -301
  1219. package/RNTester/js/examples/SegmentedControlIOS/SegmentedControlIOSExample.js +0 -183
  1220. package/RNTester/js/examples/SetPropertiesExample/SetPropertiesExampleApp.js +0 -34
  1221. package/RNTester/js/examples/Share/ShareExample.js +0 -124
  1222. package/RNTester/js/examples/Slider/SliderExample.js +0 -136
  1223. package/RNTester/js/examples/Snapshot/SnapshotExample.js +0 -69
  1224. package/RNTester/js/examples/Snapshot/SnapshotViewIOS.android.js +0 -12
  1225. package/RNTester/js/examples/Snapshot/SnapshotViewIOS.ios.js +0 -67
  1226. package/RNTester/js/examples/StatusBar/StatusBarExample.js +0 -522
  1227. package/RNTester/js/examples/Switch/SwitchExample.js +0 -239
  1228. package/RNTester/js/examples/TVEventHandler/TVEventHandlerExample.js +0 -88
  1229. package/RNTester/js/examples/Text/TextExample.android.js +0 -864
  1230. package/RNTester/js/examples/Text/TextExample.ios.js +0 -1153
  1231. package/RNTester/js/examples/TextInput/TextInputExample.android.js +0 -424
  1232. package/RNTester/js/examples/TextInput/TextInputExample.ios.js +0 -710
  1233. package/RNTester/js/examples/TextInput/TextInputSharedExamples.js +0 -618
  1234. package/RNTester/js/examples/Timer/TimerExample.js +0 -373
  1235. package/RNTester/js/examples/ToastAndroid/ToastAndroidExample.android.js +0 -136
  1236. package/RNTester/js/examples/Touchable/TouchableExample.js +0 -664
  1237. package/RNTester/js/examples/Transform/TransformExample.js +0 -336
  1238. package/RNTester/js/examples/TransparentHitTest/TransparentHitTestExample.js +0 -50
  1239. package/RNTester/js/examples/TurboModule/SampleTurboModuleExample.js +0 -190
  1240. package/RNTester/js/examples/TurboModule/TurboModuleExample.js +0 -26
  1241. package/RNTester/js/examples/Vibration/VibrationExample.js +0 -127
  1242. package/RNTester/js/examples/View/ViewExample.js +0 -471
  1243. package/RNTester/js/examples/WebSocket/WebSocketExample.js +0 -356
  1244. package/RNTester/js/examples/WebSocket/http_test_server.js +0 -33
  1245. package/RNTester/js/examples/WebSocket/websocket_test_server.js +0 -46
  1246. package/RNTester/js/examples/XHR/XHRExample.js +0 -62
  1247. package/RNTester/js/examples/XHR/XHRExampleAbortController.js +0 -58
  1248. package/RNTester/js/examples/XHR/XHRExampleBinaryUpload.js +0 -149
  1249. package/RNTester/js/examples/XHR/XHRExampleDownload.js +0 -242
  1250. package/RNTester/js/examples/XHR/XHRExampleFetch.js +0 -133
  1251. package/RNTester/js/examples/XHR/XHRExampleHeaders.js +0 -114
  1252. package/RNTester/js/examples/XHR/XHRExampleOnTimeOut.js +0 -99
  1253. package/RNTester/js/types/RNTesterTypes.js +0 -47
  1254. package/RNTester/js/utils/RNTesterActions.js +0 -53
  1255. package/RNTester/js/utils/RNTesterList.android.js +0 -257
  1256. package/RNTester/js/utils/RNTesterList.ios.js +0 -366
  1257. package/RNTester/js/utils/RNTesterList.win32.js +0 -240
  1258. package/RNTester/js/utils/RNTesterNavigationReducer.js +0 -49
  1259. package/RNTester/js/utils/RNTesterStatePersister.js +0 -86
  1260. package/RNTester/js/utils/URIActionMap.js +0 -48
  1261. package/api-extractor.json +0 -25
  1262. package/demo/DocPagePropsList.d.ts +0 -18
  1263. package/demo/DocPagePropsList.js +0 -7
  1264. package/demo/DocPagePropsList.js.map +0 -1
  1265. package/docs/api/index.md +0 -12
  1266. package/docs/api/react-native-win32.accessibilityactionevent.md +0 -13
  1267. package/docs/api/react-native-win32.accessibilityactioninfo.md +0 -14
  1268. package/docs/api/react-native-win32.accessibilityactionname.md +0 -11
  1269. package/docs/api/react-native-win32.accessibilityannotationinfo.md +0 -16
  1270. package/docs/api/react-native-win32.accessibilitystate.md +0 -14
  1271. package/docs/api/react-native-win32.annotationtype.md +0 -11
  1272. package/docs/api/react-native-win32.ariarole.md +0 -11
  1273. package/docs/api/react-native-win32.basepropswin32.md +0 -17
  1274. package/docs/api/react-native-win32.buttonwin32._constructor_.md +0 -20
  1275. package/docs/api/react-native-win32.buttonwin32.md +0 -27
  1276. package/docs/api/react-native-win32.buttonwin32.render.md +0 -15
  1277. package/docs/api/react-native-win32.buttonwin32omitstyles.md +0 -11
  1278. package/docs/api/react-native-win32.colorgradientwin32.md +0 -15
  1279. package/docs/api/react-native-win32.cursor.md +0 -11
  1280. package/docs/api/react-native-win32.eventphase.md +0 -21
  1281. package/docs/api/react-native-win32.gradientcolorstop.md +0 -16
  1282. package/docs/api/react-native-win32.gradientcolorvaluewin32.md +0 -16
  1283. package/docs/api/react-native-win32.ibuttonwin32props.md +0 -25
  1284. package/docs/api/react-native-win32.ibuttonwin32props.onblur.md +0 -13
  1285. package/docs/api/react-native-win32.ibuttonwin32props.onfocus.md +0 -13
  1286. package/docs/api/react-native-win32.ibuttonwin32props.onmouseenter.md +0 -13
  1287. package/docs/api/react-native-win32.ibuttonwin32props.onmouseleave.md +0 -13
  1288. package/docs/api/react-native-win32.ibuttonwin32props.ontouchend.md +0 -13
  1289. package/docs/api/react-native-win32.ibuttonwin32props.ontouchstart.md +0 -13
  1290. package/docs/api/react-native-win32.ibuttonwin32props.style.md +0 -13
  1291. package/docs/api/react-native-win32.ibuttonwin32style.md +0 -13
  1292. package/docs/api/react-native-win32.ichildasfunction.md +0 -13
  1293. package/docs/api/react-native-win32.idimensions.height.md +0 -11
  1294. package/docs/api/react-native-win32.idimensions.md +0 -21
  1295. package/docs/api/react-native-win32.idimensions.width.md +0 -11
  1296. package/docs/api/react-native-win32.ihandledkeyboardevent.md +0 -11
  1297. package/docs/api/react-native-win32.ikeyboardevent.md +0 -11
  1298. package/docs/api/react-native-win32.inativekeyboardevent.altkey.md +0 -11
  1299. package/docs/api/react-native-win32.inativekeyboardevent.ctrlkey.md +0 -11
  1300. package/docs/api/react-native-win32.inativekeyboardevent.eventphase.md +0 -11
  1301. package/docs/api/react-native-win32.inativekeyboardevent.key.md +0 -11
  1302. package/docs/api/react-native-win32.inativekeyboardevent.md +0 -23
  1303. package/docs/api/react-native-win32.inativekeyboardevent.metakey.md +0 -11
  1304. package/docs/api/react-native-win32.inativekeyboardevent.shiftkey.md +0 -11
  1305. package/docs/api/react-native-win32.ipersonacoinprops.brandiconsource.md +0 -11
  1306. package/docs/api/react-native-win32.ipersonacoinprops.color.md +0 -11
  1307. package/docs/api/react-native-win32.ipersonacoinprops.disabled.md +0 -11
  1308. package/docs/api/react-native-win32.ipersonacoinprops.displayname.md +0 -11
  1309. package/docs/api/react-native-win32.ipersonacoinprops.emailaddress.md +0 -11
  1310. package/docs/api/react-native-win32.ipersonacoinprops.initials.md +0 -11
  1311. package/docs/api/react-native-win32.ipersonacoinprops.md +0 -29
  1312. package/docs/api/react-native-win32.ipersonacoinprops.onerror.md +0 -11
  1313. package/docs/api/react-native-win32.ipersonacoinprops.onload.md +0 -11
  1314. package/docs/api/react-native-win32.ipersonacoinprops.presence.md +0 -11
  1315. package/docs/api/react-native-win32.ipersonacoinprops.size.md +0 -11
  1316. package/docs/api/react-native-win32.ipersonacoinprops.source.md +0 -11
  1317. package/docs/api/react-native-win32.iposition.left.md +0 -11
  1318. package/docs/api/react-native-win32.iposition.md +0 -21
  1319. package/docs/api/react-native-win32.iposition.top.md +0 -11
  1320. package/docs/api/react-native-win32.ipressevent.md +0 -24
  1321. package/docs/api/react-native-win32.ipressinlocation.locationx.md +0 -11
  1322. package/docs/api/react-native-win32.ipressinlocation.locationy.md +0 -11
  1323. package/docs/api/react-native-win32.ipressinlocation.md +0 -23
  1324. package/docs/api/react-native-win32.ipressinlocation.pagex.md +0 -11
  1325. package/docs/api/react-native-win32.ipressinlocation.pagey.md +0 -11
  1326. package/docs/api/react-native-win32.irenderchild.md +0 -13
  1327. package/docs/api/react-native-win32.irenderstyle.md +0 -13
  1328. package/docs/api/react-native-win32.irespondersyntheticevent.md +0 -21
  1329. package/docs/api/react-native-win32.irespondersyntheticevent.touchhistory.md +0 -16
  1330. package/docs/api/react-native-win32.isignal.md +0 -13
  1331. package/docs/api/react-native-win32.istate.md +0 -13
  1332. package/docs/api/react-native-win32.istateconditions.md +0 -15
  1333. package/docs/api/react-native-win32.itextwin32props.md +0 -20
  1334. package/docs/api/react-native-win32.itextwin32props.textstyle.md +0 -25
  1335. package/docs/api/react-native-win32.itextwin32props.tooltip.md +0 -13
  1336. package/docs/api/react-native-win32.itouchablewin32props.children.md +0 -11
  1337. package/docs/api/react-native-win32.itouchablewin32props.disabled.md +0 -11
  1338. package/docs/api/react-native-win32.itouchablewin32props.filterkeys.md +0 -13
  1339. package/docs/api/react-native-win32.itouchablewin32props.md +0 -36
  1340. package/docs/api/react-native-win32.itouchablewin32props.onlongpress.md +0 -11
  1341. package/docs/api/react-native-win32.itouchablewin32props.rejectrespondertermination.md +0 -11
  1342. package/docs/api/react-native-win32.itouchablewin32props.renderstyle.md +0 -11
  1343. package/docs/api/react-native-win32.itouchablewin32props.touchablegethighlightdelayms.md +0 -11
  1344. package/docs/api/react-native-win32.itouchablewin32props.touchablegethitslop.md +0 -11
  1345. package/docs/api/react-native-win32.itouchablewin32props.touchablegetlongpressdelayms.md +0 -11
  1346. package/docs/api/react-native-win32.itouchablewin32props.touchablegetpressoutdelayms.md +0 -11
  1347. package/docs/api/react-native-win32.itouchablewin32props.touchablegetpressrectoffset.md +0 -11
  1348. package/docs/api/react-native-win32.itouchablewin32props.touchablehandleactivepressin.md +0 -11
  1349. package/docs/api/react-native-win32.itouchablewin32props.touchablehandleactivepressout.md +0 -11
  1350. package/docs/api/react-native-win32.itouchablewin32props.touchablehandlekeypress.md +0 -11
  1351. package/docs/api/react-native-win32.itouchablewin32props.touchablehandlekeypressdown.md +0 -11
  1352. package/docs/api/react-native-win32.itouchablewin32props.touchablehandlelongpress.md +0 -11
  1353. package/docs/api/react-native-win32.itouchablewin32props.touchablehandlepress.md +0 -11
  1354. package/docs/api/react-native-win32.itouchablewin32props.touchsounddisabled.md +0 -11
  1355. package/docs/api/react-native-win32.itouchablewin32state.isfocused.md +0 -11
  1356. package/docs/api/react-native-win32.itouchablewin32state.ishovered.md +0 -11
  1357. package/docs/api/react-native-win32.itouchablewin32state.ispressed.md +0 -11
  1358. package/docs/api/react-native-win32.itouchablewin32state.md +0 -20
  1359. package/docs/api/react-native-win32.itouchinfo.currentpagex.md +0 -11
  1360. package/docs/api/react-native-win32.itouchinfo.currentpagey.md +0 -11
  1361. package/docs/api/react-native-win32.itouchinfo.currenttimestamp.md +0 -11
  1362. package/docs/api/react-native-win32.itouchinfo.md +0 -29
  1363. package/docs/api/react-native-win32.itouchinfo.previouspagex.md +0 -11
  1364. package/docs/api/react-native-win32.itouchinfo.previouspagey.md +0 -11
  1365. package/docs/api/react-native-win32.itouchinfo.previoustimestamp.md +0 -11
  1366. package/docs/api/react-native-win32.itouchinfo.startpagex.md +0 -11
  1367. package/docs/api/react-native-win32.itouchinfo.startpagey.md +0 -11
  1368. package/docs/api/react-native-win32.itouchinfo.starttimestamp.md +0 -11
  1369. package/docs/api/react-native-win32.itouchinfo.touchactive.md +0 -11
  1370. package/docs/api/react-native-win32.itransitions.md +0 -15
  1371. package/docs/api/react-native-win32.iviewwin32.focus.md +0 -11
  1372. package/docs/api/react-native-win32.iviewwin32.md +0 -18
  1373. package/docs/api/react-native-win32.iviewwin32props.acceptskeyboardfocus.md +0 -16
  1374. package/docs/api/react-native-win32.iviewwin32props.accessibilityactions.md +0 -11
  1375. package/docs/api/react-native-win32.iviewwin32props.accessibilityannotation.md +0 -15
  1376. package/docs/api/react-native-win32.iviewwin32props.accessibilitylevel.md +0 -11
  1377. package/docs/api/react-native-win32.iviewwin32props.accessibilitypositioninset.md +0 -11
  1378. package/docs/api/react-native-win32.iviewwin32props.accessibilitysetsize.md +0 -11
  1379. package/docs/api/react-native-win32.iviewwin32props.animationclass.md +0 -11
  1380. package/docs/api/react-native-win32.iviewwin32props.children.md +0 -11
  1381. package/docs/api/react-native-win32.iviewwin32props.cursor.md +0 -11
  1382. package/docs/api/react-native-win32.iviewwin32props.focusable.md +0 -11
  1383. package/docs/api/react-native-win32.iviewwin32props.keydownevents.md +0 -11
  1384. package/docs/api/react-native-win32.iviewwin32props.keyupevents.md +0 -11
  1385. package/docs/api/react-native-win32.iviewwin32props.md +0 -44
  1386. package/docs/api/react-native-win32.iviewwin32props.onblur.md +0 -15
  1387. package/docs/api/react-native-win32.iviewwin32props.onblurcapture.md +0 -15
  1388. package/docs/api/react-native-win32.iviewwin32props.onfocus.md +0 -15
  1389. package/docs/api/react-native-win32.iviewwin32props.onfocuscapture.md +0 -15
  1390. package/docs/api/react-native-win32.iviewwin32props.onkeydown.md +0 -11
  1391. package/docs/api/react-native-win32.iviewwin32props.onkeydowncapture.md +0 -11
  1392. package/docs/api/react-native-win32.iviewwin32props.onkeyup.md +0 -11
  1393. package/docs/api/react-native-win32.iviewwin32props.onkeyupcapture.md +0 -11
  1394. package/docs/api/react-native-win32.iviewwin32props.onmouseenter.md +0 -11
  1395. package/docs/api/react-native-win32.iviewwin32props.onmouseleave.md +0 -11
  1396. package/docs/api/react-native-win32.iviewwin32props.tooltip.md +0 -13
  1397. package/docs/api/react-native-win32.iviewwin32props.type.md +0 -11
  1398. package/docs/api/react-native-win32.md +0 -85
  1399. package/docs/api/react-native-win32.omittedaccessibilitypropswin32.md +0 -15
  1400. package/docs/api/react-native-win32.personacoin.md +0 -11
  1401. package/docs/api/react-native-win32.personacoinpresence.md +0 -25
  1402. package/docs/api/react-native-win32.personacoinsize.md +0 -23
  1403. package/docs/api/react-native-win32.sharedaccessibilitypropsiosandwin32.md +0 -13
  1404. package/docs/api/react-native-win32.textstyle.md +0 -13
  1405. package/docs/api/react-native-win32.textwin32._constructor_.md +0 -20
  1406. package/docs/api/react-native-win32.textwin32.md +0 -25
  1407. package/docs/api/react-native-win32.textwin32.render.md +0 -15
  1408. package/docs/api/react-native-win32.textwin32omittypes.md +0 -11
  1409. package/docs/api/react-native-win32.touchablewin32._constructor_.md +0 -20
  1410. package/docs/api/react-native-win32.touchablewin32.componentwillunmount.md +0 -15
  1411. package/docs/api/react-native-win32.touchablewin32.focus.md +0 -11
  1412. package/docs/api/react-native-win32.touchablewin32.md +0 -34
  1413. package/docs/api/react-native-win32.touchablewin32.render.md +0 -15
  1414. package/docs/api/react-native-win32.usefrom.md +0 -13
  1415. package/docs/api/react-native-win32.viewwin32.md +0 -11
  1416. package/docs/api/react-native-win32.viewwin32omittypes.md +0 -11
  1417. package/etc/react-native-win32.api.md +0 -481
  1418. package/flow/Promise.js +0 -47
  1419. package/flow/fbjs.js +0 -258
  1420. package/flow/use-subscription.js +0 -19
  1421. package/jest/preprocessor.js +0 -120
  1422. package/typings-index.d.ts +0 -20
  1423. package/typings-index.js +0 -40
@@ -1,179 +1,2028 @@
1
- /**
2
- * @providesModule TextInput
3
- */
4
- 'use strict';
5
- var __extends = (this && this.__extends) || (function () {
6
- var extendStatics = function (d, b) {
7
- extendStatics = Object.setPrototypeOf ||
8
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
9
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
10
- return extendStatics(d, b);
11
- };
12
- return function (d, b) {
13
- extendStatics(d, b);
14
- function __() { this.constructor = d; }
15
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
16
- };
17
- })();
18
- var __assign = (this && this.__assign) || function () {
19
- __assign = Object.assign || function(t) {
20
- for (var s, i = 1, n = arguments.length; i < n; i++) {
21
- s = arguments[i];
22
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23
- t[p] = s[p];
24
- }
25
- return t;
26
- };
27
- return __assign.apply(this, arguments);
28
- };
29
- /**
30
- * This is a forked and slightly modified version of React Native's TextInput.
31
- * The fork is necessary as platform checks in the base implementation made the
32
- * control unusable on win32. In addition to cleaning up some of the code, this
33
- * fork also uses Typescript rather than Flow for type safety.
34
- *
35
- * More general documentation on this control can be found at
36
- * https://facebook.github.io/react-native/docs/textinput.html
37
- *
38
- * The original implementation can be found at
39
- * https://github.com/facebook/react-native/blob/1013a010492a7bef5ff58073a088ac924a986e9e/Libraries/Components/TextInput/TextInput.js
40
- *
41
- * This control does not support the full React Native TextInput interface yet.
42
- * Most of the work necessary to make that happen needs to happen on the native side.
43
- * Future work on the JS side may include:
44
- * 1. Expanded typings for some of the events
45
- * 2. Additional work to manage selection
46
- * 3. Any base/default styling work
47
- */
48
- var React = require("react");
49
- var react_native_1 = require("react-native");
50
- var TextAncestor = require('../../Text/TextAncestor');
51
- var TextInputState = require('./TextInputState');
52
- // RCTTextInput is the native component that win32 understands
53
- var RCTTextInput = react_native_1.requireNativeComponent('RCTTextInput');
54
- // Adding typings on ViewManagers is problematic as available functionality is not known until
55
- // registration at runtime and would require native and js to always be in sync.
56
- /*tslint:disable-next-line no-any*/
57
- var TextInputViewManager = react_native_1.NativeModules.UIManager.getViewManagerConfig('RCTTextInput');
58
- var TextInput = /** @class */ (function (_super) {
59
- __extends(TextInput, _super);
60
- function TextInput(props) {
61
- var _this = _super.call(this, props) || this;
62
- _this._eventCount = 0;
63
- /**
64
- * Focuses the TextInput
65
- */
66
- _this.focus = function () {
67
- TextInputState.setFocusedTextInput(_this);
68
- react_native_1.NativeModules.UIManager.
69
- dispatchViewManagerCommand(react_native_1.findNodeHandle(_this), TextInputViewManager.Commands.focus, null);
70
- };
71
- /**
72
- * Blurs the TextInput
73
- */
74
- _this.blur = function () {
75
- TextInputState.blurTextInput(_this);
76
- react_native_1.NativeModules.UIManager.
77
- dispatchViewManagerCommand(react_native_1.findNodeHandle(_this), TextInputViewManager.Commands.blur, null);
78
- };
79
- /**
80
- * Use clear for programmatic clearing of the text
81
- */
82
- _this.clear = function () {
83
- _this.setNativeText('');
84
- };
85
- _this.setEventCount = function () {
86
- react_native_1.NativeModules.UIManager.
87
- dispatchViewManagerCommand(react_native_1.findNodeHandle(_this), TextInputViewManager.Commands.setEventCount, { eventCount: _this._eventCount });
88
- };
89
- _this.setNativeText = function (val) {
90
- if (_this._lastNativeText !== val) {
91
- react_native_1.NativeModules.UIManager.
92
- dispatchViewManagerCommand(react_native_1.findNodeHandle(_this), TextInputViewManager.Commands.setNativeText, { text: val });
93
- }
94
- };
95
- _this._getText = function () {
96
- return _this.props.value || (_this.props.defaultValue || null);
97
- };
98
- _this._onChange = function (e) {
99
- var text = e.nativeEvent.text;
100
- _this._eventCount = e.nativeEvent.eventCount;
101
- _this.setEventCount();
102
- _this.props.onChange && _this.props.onChange(e);
103
- _this.props.onChangeText && _this.props.onChangeText(text);
104
- _this._lastNativeText = text;
105
- _this.forceUpdate();
106
- return;
107
- };
108
- _this._onFocus = function (e) {
109
- _this.focus();
110
- _this.props.onFocus && _this.props.onFocus(e);
111
- };
112
- _this._onBlur = function (e) {
113
- _this.props.onBlur && _this.props.onBlur(e);
114
- };
115
- _this._inputRef = React.createRef();
116
- return _this;
117
- }
118
- /**
119
- * On mount TextInput needs to register itself with TextInputState
120
- * and conditionally request an animation frame for focus.
121
- */
122
- TextInput.prototype.componentDidMount = function () {
123
- this._lastNativeText = this.props.value;
124
- TextInputState.registerInput(this);
125
- if (this.props.autoFocus) {
126
- this._rafID = requestAnimationFrame(this.focus);
127
- }
128
- };
129
- /**
130
- * This is an unfortunate consequence of having controlled TextInputs.
131
- * Tree diffing reconciliation will not always send down text values
132
- * This sets text explicitly.
133
- */
134
- TextInput.prototype.componentDidUpdate = function () {
135
- if ((this._lastNativeText !== this._getText())) {
136
- this._getText() && this.setNativeText(this._getText());
137
- }
138
- return;
139
- };
140
- /**
141
- * Pre-unmoun the TextInput should blur, unregister and clean up
142
- * the animation frame for focus (edge cases)
143
- */
144
- TextInput.prototype.componentWillUnmount = function () {
145
- // blur
146
- if (this.isFocused()) {
147
- this.blur();
148
- }
149
- // unregister
150
- TextInputState.unregisterInput(this);
151
- // cancel animationFrame
152
- if (this._rafID !== null) {
153
- cancelAnimationFrame(this._rafID);
154
- }
155
- if (this._rafID) {
156
- return;
157
- }
158
- return;
159
- };
160
- TextInput.prototype.render = function () {
161
- var props = __assign({}, this.props);
162
- // By default fontScaling is turned on.
163
- // win32 ignores this prop for the time being
164
- props.allowFontScaling = (this.props.allowFontScaling === null
165
- || this.props.allowFontScaling === undefined)
166
- ? true : this.props.allowFontScaling;
167
- return (React.createElement(TextAncestor.Provider, { value: true },
168
- React.createElement(RCTTextInput, __assign({}, props, { ref: this._inputRef, text: this._getText(), onFocus: this._onFocus, onBlur: this._onBlur, onChange: this._onChange }))));
169
- };
170
- /**
171
- * Returns true if the TextInput is focused
172
- */
173
- TextInput.prototype.isFocused = function () {
174
- return TextInputState.currentlyFocusedInput() === this;
175
- };
176
- return TextInput;
177
- }(React.Component));
178
- module.exports = TextInput;
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dElucHV0LndpbjMyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0xpYnJhcmllcy9Db21wb25lbnRzL1RleHRJbnB1dC9UZXh0SW5wdXQud2luMzIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsWUFBWSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWI7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUVILDZCQUErQjtBQUMvQiw2Q0FNc0I7QUFPdEIsSUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFDeEQsSUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFNbkQsOERBQThEO0FBQzlELElBQU0sWUFBWSxHQUFHLHFDQUFzQixDQUFvQixjQUFjLENBQUMsQ0FBQztBQUUvRSw4RkFBOEY7QUFDOUYsZ0ZBQWdGO0FBQ2hGLG1DQUFtQztBQUNuQyxJQUFNLG9CQUFvQixHQUFRLDRCQUFhLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBRS9GO0lBQXdCLDZCQUFtQztJQVd6RCxtQkFBWSxLQUFLO1FBQWpCLFlBQ0Usa0JBQU0sS0FBSyxDQUFDLFNBRWI7UUFMTyxpQkFBVyxHQUFHLENBQUMsQ0FBQztRQXVGeEI7O1dBRUc7UUFDSSxXQUFLLEdBQUc7WUFDYixjQUFjLENBQUMsbUJBQW1CLENBQUMsS0FBSSxDQUFDLENBQUM7WUFDekMsNEJBQWEsQ0FBQyxTQUFTO2dCQUNyQiwwQkFBMEIsQ0FBQyw2QkFBYyxDQUFDLEtBQUksQ0FBQyxFQUFFLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEcsQ0FBQyxDQUFBO1FBRUQ7O1dBRUc7UUFDSSxVQUFJLEdBQUc7WUFDWixjQUFjLENBQUMsYUFBYSxDQUFDLEtBQUksQ0FBQyxDQUFDO1lBQ25DLDRCQUFhLENBQUMsU0FBUztnQkFDckIsMEJBQTBCLENBQUMsNkJBQWMsQ0FBQyxLQUFJLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9GLENBQUMsQ0FBQTtRQUVEOztXQUVHO1FBQ0ksV0FBSyxHQUFHO1lBQ2IsS0FBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUE7UUFFTyxtQkFBYSxHQUFHO1lBQ3RCLDRCQUFhLENBQUMsU0FBUztnQkFDckIsMEJBQTBCLENBQUMsNkJBQWMsQ0FBQyxLQUFJLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUMxRixFQUFFLFVBQVUsRUFBRSxLQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUE7UUFFTyxtQkFBYSxHQUFHLFVBQUMsR0FBVztZQUNsQyxJQUFJLEtBQUksQ0FBQyxlQUFlLEtBQUssR0FBRyxFQUFFO2dCQUNoQyw0QkFBYSxDQUFDLFNBQVM7b0JBQ3JCLDBCQUEwQixDQUFDLDZCQUFjLENBQUMsS0FBSSxDQUFDLEVBQUUsb0JBQW9CLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFDMUYsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQzthQUNwQjtRQUNILENBQUMsQ0FBQTtRQUVPLGNBQVEsR0FBRztZQUNqQixPQUFPLEtBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFBO1FBRU8sZUFBUyxHQUFHLFVBQUMsQ0FBZTtZQUNsQyxJQUFNLElBQUksR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNoQyxLQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQzVDLEtBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUVyQixLQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QyxLQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxLQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6RCxLQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUU1QixLQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNULENBQUMsQ0FBQTtRQUVPLGNBQVEsR0FBRyxVQUFDLENBQWM7WUFDaEMsS0FBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsS0FBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFBO1FBRU8sYUFBTyxHQUFHLFVBQUMsQ0FBYTtZQUM5QixLQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUE7UUFsSkMsS0FBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7O0lBQ3JDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxxQ0FBaUIsR0FBeEI7UUFDRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBRXhDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbkMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqRDtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksc0NBQWtCLEdBQXpCO1FBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDeEQ7UUFFRCxPQUFPO0lBQ1QsQ0FBQztJQUVEOzs7T0FHRztJQUNJLHdDQUFvQixHQUEzQjtRQUNFLE9BQU87UUFDUCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDYjtRQUVELGFBQWE7UUFDYixjQUFjLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJDLHdCQUF3QjtRQUN4QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQ3hCLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNuQztRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLE9BQU87U0FDUjtRQUNELE9BQU87SUFDVCxDQUFDO0lBRU0sMEJBQU0sR0FBYjtRQUNFLElBQU0sS0FBSyxnQkFBd0IsSUFBSSxDQUFDLEtBQUssQ0FBRSxDQUFDO1FBRWhELHVDQUF1QztRQUN2Qyw2Q0FBNkM7UUFDN0MsS0FBSyxDQUFDLGdCQUFnQixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJO2VBQ3pELElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxDQUFDO1lBQzdDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7UUFFdkMsT0FBTyxDQUNMLG9CQUFDLFlBQVksQ0FBQyxRQUFRLElBQUMsS0FBSyxFQUFHLElBQUk7WUFDakMsb0JBQUMsWUFBWSxlQUNOLEtBQUssSUFDVixHQUFHLEVBQUcsSUFBSSxDQUFDLFNBQVMsRUFDcEIsSUFBSSxFQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDdEIsT0FBTyxFQUFHLElBQUksQ0FBQyxRQUFRLEVBQ3ZCLE1BQU0sRUFBRyxJQUFJLENBQUMsT0FBTyxFQUNyQixRQUFRLEVBQUcsSUFBSSxDQUFDLFNBQVMsSUFDekIsQ0FDb0IsQ0FDekIsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLDZCQUFTLEdBQWhCO1FBQ0UsT0FBTyxjQUFjLENBQUMscUJBQXFCLEVBQUUsS0FBSyxJQUFJLENBQUM7SUFDekQsQ0FBQztJQWtFSCxnQkFBQztBQUFELENBQUMsQUFoS0QsQ0FBd0IsS0FBSyxDQUFDLFNBQVMsR0FnS3RDO0FBRUQsaUJBQVMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJvdmlkZXNNb2R1bGUgVGV4dElucHV0XG4gKi9cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBUaGlzIGlzIGEgZm9ya2VkIGFuZCBzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uIG9mIFJlYWN0IE5hdGl2ZSdzIFRleHRJbnB1dC5cbiAqIFRoZSBmb3JrIGlzIG5lY2Vzc2FyeSBhcyBwbGF0Zm9ybSBjaGVja3MgaW4gdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gbWFkZSB0aGVcbiAqIGNvbnRyb2wgdW51c2FibGUgb24gd2luMzIuIEluIGFkZGl0aW9uIHRvIGNsZWFuaW5nIHVwIHNvbWUgb2YgdGhlIGNvZGUsIHRoaXNcbiAqIGZvcmsgYWxzbyB1c2VzIFR5cGVzY3JpcHQgcmF0aGVyIHRoYW4gRmxvdyBmb3IgdHlwZSBzYWZldHkuXG4gKlxuICogTW9yZSBnZW5lcmFsIGRvY3VtZW50YXRpb24gb24gdGhpcyBjb250cm9sIGNhbiBiZSBmb3VuZCBhdFxuICogaHR0cHM6Ly9mYWNlYm9vay5naXRodWIuaW8vcmVhY3QtbmF0aXZlL2RvY3MvdGV4dGlucHV0Lmh0bWxcbiAqXG4gKiBUaGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24gY2FuIGJlIGZvdW5kIGF0XG4gKiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QtbmF0aXZlL2Jsb2IvMTAxM2EwMTA0OTJhN2JlZjVmZjU4MDczYTA4OGFjOTI0YTk4NmU5ZS9MaWJyYXJpZXMvQ29tcG9uZW50cy9UZXh0SW5wdXQvVGV4dElucHV0LmpzXG4gKlxuICogVGhpcyBjb250cm9sIGRvZXMgbm90IHN1cHBvcnQgdGhlIGZ1bGwgUmVhY3QgTmF0aXZlIFRleHRJbnB1dCBpbnRlcmZhY2UgeWV0LlxuICogTW9zdCBvZiB0aGUgd29yayBuZWNlc3NhcnkgdG8gbWFrZSB0aGF0IGhhcHBlbiBuZWVkcyB0byBoYXBwZW4gb24gdGhlIG5hdGl2ZSBzaWRlLlxuICogRnV0dXJlIHdvcmsgb24gdGhlIEpTIHNpZGUgbWF5IGluY2x1ZGU6XG4gKiAxLiBFeHBhbmRlZCB0eXBpbmdzIGZvciBzb21lIG9mIHRoZSBldmVudHNcbiAqIDIuIEFkZGl0aW9uYWwgd29yayB0byBtYW5hZ2Ugc2VsZWN0aW9uXG4gKiAzLiBBbnkgYmFzZS9kZWZhdWx0IHN0eWxpbmcgd29ya1xuICovXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIGZpbmROb2RlSGFuZGxlLFxuICBOYXRpdmVNb2R1bGVzLFxuICByZXF1aXJlTmF0aXZlQ29tcG9uZW50LFxuICBUZXh0SW5wdXRQcm9wcyxcbiAgTmF0aXZlTWV0aG9kcyxcbn0gZnJvbSAncmVhY3QtbmF0aXZlJztcbmltcG9ydCB7XG4gIElCbHVyRXZlbnQsXG4gIElDaGFuZ2VFdmVudCxcbiAgSUZvY3VzRXZlbnQsXG59IGZyb20gJy4vVGV4dElucHV0LlR5cGVzLndpbjMyJztcblxuY29uc3QgVGV4dEFuY2VzdG9yID0gcmVxdWlyZSgnLi4vLi4vVGV4dC9UZXh0QW5jZXN0b3InKTtcbmNvbnN0IFRleHRJbnB1dFN0YXRlID0gcmVxdWlyZSgnLi9UZXh0SW5wdXRTdGF0ZScpO1xuXG50eXBlIFJDVFRleHRJbnB1dFByb3BzID0gVGV4dElucHV0UHJvcHMgJiB7XG4gIHRleHQ6IHN0cmluZztcbn07XG5cbi8vIFJDVFRleHRJbnB1dCBpcyB0aGUgbmF0aXZlIGNvbXBvbmVudCB0aGF0IHdpbjMyIHVuZGVyc3RhbmRzXG5jb25zdCBSQ1RUZXh0SW5wdXQgPSByZXF1aXJlTmF0aXZlQ29tcG9uZW50PFJDVFRleHRJbnB1dFByb3BzPignUkNUVGV4dElucHV0Jyk7XG5cbi8vIEFkZGluZyB0eXBpbmdzIG9uIFZpZXdNYW5hZ2VycyBpcyBwcm9ibGVtYXRpYyBhcyBhdmFpbGFibGUgZnVuY3Rpb25hbGl0eSBpcyBub3Qga25vd24gdW50aWxcbi8vIHJlZ2lzdHJhdGlvbiBhdCBydW50aW1lIGFuZCB3b3VsZCByZXF1aXJlIG5hdGl2ZSBhbmQganMgdG8gYWx3YXlzIGJlIGluIHN5bmMuXG4vKnRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby1hbnkqL1xuY29uc3QgVGV4dElucHV0Vmlld01hbmFnZXI6IGFueSA9IE5hdGl2ZU1vZHVsZXMuVUlNYW5hZ2VyLmdldFZpZXdNYW5hZ2VyQ29uZmlnKCdSQ1RUZXh0SW5wdXQnKTtcblxuY2xhc3MgVGV4dElucHV0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFRleHRJbnB1dFByb3BzLCB7fT4ge1xuICAvLyBUT0RPOiBPbmNlIHRoZSBuYXRpdmUgc2lkZSBiZWdpbnMgc3VwcG9ydGluZyBwcm9ncmFtbWF0aWMgc2VsZWN0aW9uXG4gIC8vIHRoaXMgd2lsbCBiZWNvbWUgaW1wb3J0YW50IGZvciBzZWxlY3Rpb24gbWFuYWdlbWVudFxuICAvLyBwcml2YXRlIF9sYXN0TmF0aXZlVGV4dFNlbGVjdGlvbjogYW55O1xuXG4gIHByaXZhdGUgX3JhZklEOiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBfaW5wdXRSZWY6IFJlYWN0LlJlZk9iamVjdDxSZWFjdC5Db21wb25lbnQ8UkNUVGV4dElucHV0UHJvcHM+ICYgUmVhZG9ubHk8TmF0aXZlTWV0aG9kcz4+O1xuICBwcml2YXRlIF9sYXN0TmF0aXZlVGV4dDogc3RyaW5nO1xuICBwcml2YXRlIF9ldmVudENvdW50ID0gMDtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLl9pbnB1dFJlZiA9IFJlYWN0LmNyZWF0ZVJlZigpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uIG1vdW50IFRleHRJbnB1dCBuZWVkcyB0byByZWdpc3RlciBpdHNlbGYgd2l0aCBUZXh0SW5wdXRTdGF0ZVxuICAgKiBhbmQgY29uZGl0aW9uYWxseSByZXF1ZXN0IGFuIGFuaW1hdGlvbiBmcmFtZSBmb3IgZm9jdXMuXG4gICAqL1xuICBwdWJsaWMgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy5fbGFzdE5hdGl2ZVRleHQgPSB0aGlzLnByb3BzLnZhbHVlO1xuXG4gICAgVGV4dElucHV0U3RhdGUucmVnaXN0ZXJJbnB1dCh0aGlzKTtcblxuICAgIGlmICh0aGlzLnByb3BzLmF1dG9Gb2N1cykge1xuICAgICAgdGhpcy5fcmFmSUQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5mb2N1cyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgYW4gdW5mb3J0dW5hdGUgY29uc2VxdWVuY2Ugb2YgaGF2aW5nIGNvbnRyb2xsZWQgVGV4dElucHV0cy5cbiAgICogVHJlZSBkaWZmaW5nIHJlY29uY2lsaWF0aW9uIHdpbGwgbm90IGFsd2F5cyBzZW5kIGRvd24gdGV4dCB2YWx1ZXNcbiAgICogVGhpcyBzZXRzIHRleHQgZXhwbGljaXRseS5cbiAgICovXG4gIHB1YmxpYyBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgaWYgKCh0aGlzLl9sYXN0TmF0aXZlVGV4dCAhPT0gdGhpcy5fZ2V0VGV4dCgpKSkge1xuICAgICAgdGhpcy5fZ2V0VGV4dCgpICYmIHRoaXMuc2V0TmF0aXZlVGV4dCh0aGlzLl9nZXRUZXh0KCkpO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmUtdW5tb3VuIHRoZSBUZXh0SW5wdXQgc2hvdWxkIGJsdXIsIHVucmVnaXN0ZXIgYW5kIGNsZWFuIHVwXG4gICAqIHRoZSBhbmltYXRpb24gZnJhbWUgZm9yIGZvY3VzIChlZGdlIGNhc2VzKVxuICAgKi9cbiAgcHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIC8vIGJsdXJcbiAgICBpZiAodGhpcy5pc0ZvY3VzZWQoKSkge1xuICAgICAgdGhpcy5ibHVyKCk7XG4gICAgfVxuXG4gICAgLy8gdW5yZWdpc3RlclxuICAgIFRleHRJbnB1dFN0YXRlLnVucmVnaXN0ZXJJbnB1dCh0aGlzKTtcblxuICAgIC8vIGNhbmNlbCBhbmltYXRpb25GcmFtZVxuICAgIGlmICh0aGlzLl9yYWZJRCAhPT0gbnVsbCkge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fcmFmSUQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fcmFmSUQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHVibGljIHJlbmRlcigpIHtcbiAgICBjb25zdCBwcm9wczogVGV4dElucHV0UHJvcHMgPSB7IC4uLnRoaXMucHJvcHMgfTtcblxuICAgIC8vIEJ5IGRlZmF1bHQgZm9udFNjYWxpbmcgaXMgdHVybmVkIG9uLlxuICAgIC8vIHdpbjMyIGlnbm9yZXMgdGhpcyBwcm9wIGZvciB0aGUgdGltZSBiZWluZ1xuICAgIHByb3BzLmFsbG93Rm9udFNjYWxpbmcgPSAodGhpcy5wcm9wcy5hbGxvd0ZvbnRTY2FsaW5nID09PSBudWxsXG4gICAgICB8fCB0aGlzLnByb3BzLmFsbG93Rm9udFNjYWxpbmcgPT09IHVuZGVmaW5lZClcbiAgICAgID8gdHJ1ZSA6IHRoaXMucHJvcHMuYWxsb3dGb250U2NhbGluZztcblxuICAgIHJldHVybiAoXG4gICAgICA8VGV4dEFuY2VzdG9yLlByb3ZpZGVyIHZhbHVlPXsgdHJ1ZSB9PlxuICAgICAgICA8UkNUVGV4dElucHV0XG4gICAgICAgICAgeyAuLi5wcm9wcyB9XG4gICAgICAgICAgcmVmPXsgdGhpcy5faW5wdXRSZWYgfVxuICAgICAgICAgIHRleHQ9eyB0aGlzLl9nZXRUZXh0KCkgfVxuICAgICAgICAgIG9uRm9jdXM9eyB0aGlzLl9vbkZvY3VzIH1cbiAgICAgICAgICBvbkJsdXI9eyB0aGlzLl9vbkJsdXIgfVxuICAgICAgICAgIG9uQ2hhbmdlPXsgdGhpcy5fb25DaGFuZ2UgfVxuICAgICAgICAvPlxuICAgICAgPC9UZXh0QW5jZXN0b3IuUHJvdmlkZXI+XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIFRleHRJbnB1dCBpcyBmb2N1c2VkXG4gICAqL1xuICBwdWJsaWMgaXNGb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBUZXh0SW5wdXRTdGF0ZS5jdXJyZW50bHlGb2N1c2VkSW5wdXQoKSA9PT0gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBGb2N1c2VzIHRoZSBUZXh0SW5wdXRcbiAgICovXG4gIHB1YmxpYyBmb2N1cyA9ICgpOiB2b2lkID0+IHtcbiAgICBUZXh0SW5wdXRTdGF0ZS5zZXRGb2N1c2VkVGV4dElucHV0KHRoaXMpO1xuICAgIE5hdGl2ZU1vZHVsZXMuVUlNYW5hZ2VyLlxuICAgICAgZGlzcGF0Y2hWaWV3TWFuYWdlckNvbW1hbmQoZmluZE5vZGVIYW5kbGUodGhpcyksIFRleHRJbnB1dFZpZXdNYW5hZ2VyLkNvbW1hbmRzLmZvY3VzLCBudWxsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCbHVycyB0aGUgVGV4dElucHV0XG4gICAqL1xuICBwdWJsaWMgYmx1ciA9ICgpOiB2b2lkID0+IHtcbiAgICBUZXh0SW5wdXRTdGF0ZS5ibHVyVGV4dElucHV0KHRoaXMpO1xuICAgIE5hdGl2ZU1vZHVsZXMuVUlNYW5hZ2VyLlxuICAgICAgZGlzcGF0Y2hWaWV3TWFuYWdlckNvbW1hbmQoZmluZE5vZGVIYW5kbGUodGhpcyksIFRleHRJbnB1dFZpZXdNYW5hZ2VyLkNvbW1hbmRzLmJsdXIsIG51bGwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBjbGVhciBmb3IgcHJvZ3JhbW1hdGljIGNsZWFyaW5nIG9mIHRoZSB0ZXh0XG4gICAqL1xuICBwdWJsaWMgY2xlYXIgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5zZXROYXRpdmVUZXh0KCcnKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RXZlbnRDb3VudCA9ICgpOiB2b2lkID0+IHtcbiAgICBOYXRpdmVNb2R1bGVzLlVJTWFuYWdlci5cbiAgICAgIGRpc3BhdGNoVmlld01hbmFnZXJDb21tYW5kKGZpbmROb2RlSGFuZGxlKHRoaXMpLCBUZXh0SW5wdXRWaWV3TWFuYWdlci5Db21tYW5kcy5zZXRFdmVudENvdW50LFxuICAgICAgICB7IGV2ZW50Q291bnQ6IHRoaXMuX2V2ZW50Q291bnQgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldE5hdGl2ZVRleHQgPSAodmFsOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5fbGFzdE5hdGl2ZVRleHQgIT09IHZhbCkge1xuICAgICAgTmF0aXZlTW9kdWxlcy5VSU1hbmFnZXIuXG4gICAgICAgIGRpc3BhdGNoVmlld01hbmFnZXJDb21tYW5kKGZpbmROb2RlSGFuZGxlKHRoaXMpLCBUZXh0SW5wdXRWaWV3TWFuYWdlci5Db21tYW5kcy5zZXROYXRpdmVUZXh0LFxuICAgICAgICAgIHsgdGV4dDogdmFsIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldFRleHQgPSAoKTogc3RyaW5nIHwgbnVsbCA9PiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMudmFsdWUgfHwgKHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlIHx8IG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25DaGFuZ2UgPSAoZTogSUNoYW5nZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgdGV4dCA9IGUubmF0aXZlRXZlbnQudGV4dDtcbiAgICB0aGlzLl9ldmVudENvdW50ID0gZS5uYXRpdmVFdmVudC5ldmVudENvdW50O1xuICAgIHRoaXMuc2V0RXZlbnRDb3VudCgpO1xuXG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZSAmJiB0aGlzLnByb3BzLm9uQ2hhbmdlKGUpO1xuICAgIHRoaXMucHJvcHMub25DaGFuZ2VUZXh0ICYmIHRoaXMucHJvcHMub25DaGFuZ2VUZXh0KHRleHQpO1xuICAgIHRoaXMuX2xhc3ROYXRpdmVUZXh0ID0gdGV4dDtcblxuICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBwcml2YXRlIF9vbkZvY3VzID0gKGU6IElGb2N1c0V2ZW50KTogdm9pZCA9PiB7XG4gICAgdGhpcy5mb2N1cygpO1xuICAgIHRoaXMucHJvcHMub25Gb2N1cyAmJiB0aGlzLnByb3BzLm9uRm9jdXMoZSk7XG4gIH1cblxuICBwcml2YXRlIF9vbkJsdXIgPSAoZTogSUJsdXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMucHJvcHMub25CbHVyICYmIHRoaXMucHJvcHMub25CbHVyKGUpO1xuICB9XG59XG5cbmV4cG9ydCA9IFRleHRJbnB1dDtcbiJdfQ==
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict-local
8
+ * @format
9
+ */
10
+
11
+ import type {HostInstance} from '../../Renderer/shims/ReactNativeTypes';
12
+ import type {____TextStyle_Internal as TextStyleInternal} from '../../StyleSheet/StyleSheetTypes';
13
+ import type {
14
+ PressEvent,
15
+ ScrollEvent,
16
+ SyntheticEvent,
17
+ } from '../../Types/CoreEventTypes';
18
+ import type {ViewProps} from '../View/ViewPropTypes';
19
+ import type {TextInputType} from './TextInput.flow';
20
+
21
+ import * as ReactNativeFeatureFlags from '../../../src/private/featureflags/ReactNativeFeatureFlags';
22
+ import usePressability from '../../Pressability/usePressability';
23
+ import flattenStyle from '../../StyleSheet/flattenStyle';
24
+ import StyleSheet, {
25
+ type ColorValue,
26
+ type TextStyleProp,
27
+ type ViewStyleProp,
28
+ } from '../../StyleSheet/StyleSheet';
29
+ import Text from '../../Text/Text';
30
+ import TextAncestor from '../../Text/TextAncestor';
31
+ import Platform from '../../Utilities/Platform';
32
+ import useMergeRefs from '../../Utilities/useMergeRefs';
33
+ import TextInputState from './TextInputState';
34
+ import invariant from 'invariant';
35
+ import nullthrows from 'nullthrows';
36
+ import * as React from 'react';
37
+ import {useCallback, useLayoutEffect, useRef, useState} from 'react';
38
+
39
+ type ReactRefSetter<T> = {current: null | T, ...} | ((ref: null | T) => mixed);
40
+ type TextInputInstance = HostInstance & {
41
+ +clear: () => void,
42
+ +isFocused: () => boolean,
43
+ +getNativeRef: () => ?HostInstance,
44
+ +setSelection: (start: number, end: number) => void,
45
+ };
46
+
47
+ let AndroidTextInput;
48
+ let AndroidTextInputCommands;
49
+ let RCTSinglelineTextInputView;
50
+ let RCTSinglelineTextInputNativeCommands;
51
+ let RCTMultilineTextInputView;
52
+ let RCTMultilineTextInputNativeCommands;
53
+ let WindowsTextInput; // [Windows]
54
+ let WindowsTextInputCommands; // [Windows]
55
+ import type {KeyEvent} from '../../Types/CoreEventTypes'; // [Windows]
56
+
57
+ // [Windows
58
+ if (Platform.OS === 'android') {
59
+ AndroidTextInput = require('./AndroidTextInputNativeComponent').default;
60
+ AndroidTextInputCommands =
61
+ require('./AndroidTextInputNativeComponent').Commands;
62
+ } else if (Platform.OS === 'ios') {
63
+ RCTSinglelineTextInputView =
64
+ require('./RCTSingelineTextInputNativeComponent').default;
65
+ RCTSinglelineTextInputNativeCommands =
66
+ require('./RCTSingelineTextInputNativeComponent').Commands;
67
+ RCTMultilineTextInputView =
68
+ require('./RCTMultilineTextInputNativeComponent').default;
69
+ RCTMultilineTextInputNativeCommands =
70
+ require('./RCTMultilineTextInputNativeComponent').Commands;
71
+ }
72
+ // [Windows
73
+ else if (Platform.OS === 'win32') {
74
+ WindowsTextInput = require('./Win32TextInputNativeComponent').default;
75
+ WindowsTextInputCommands =
76
+ require('./Win32TextInputNativeComponent').Commands;
77
+ }
78
+ // Windows]
79
+
80
+ export type ChangeEvent = SyntheticEvent<
81
+ $ReadOnly<{|
82
+ eventCount: number,
83
+ target: number,
84
+ text: string,
85
+ |}>,
86
+ >;
87
+
88
+ export type TextInputEvent = SyntheticEvent<
89
+ $ReadOnly<{|
90
+ eventCount: number,
91
+ previousText: string,
92
+ range: $ReadOnly<{|
93
+ start: number,
94
+ end: number,
95
+ |}>,
96
+ target: number,
97
+ text: string,
98
+ |}>,
99
+ >;
100
+
101
+ export type ContentSizeChangeEvent = SyntheticEvent<
102
+ $ReadOnly<{|
103
+ target: number,
104
+ contentSize: $ReadOnly<{|
105
+ width: number,
106
+ height: number,
107
+ |}>,
108
+ |}>,
109
+ >;
110
+
111
+ type TargetEvent = SyntheticEvent<
112
+ $ReadOnly<{|
113
+ target: number,
114
+ |}>,
115
+ >;
116
+
117
+ export type BlurEvent = TargetEvent;
118
+ export type FocusEvent = TargetEvent;
119
+
120
+ type Selection = $ReadOnly<{|
121
+ start: number,
122
+ end: number,
123
+ |}>;
124
+
125
+ export type SelectionChangeEvent = SyntheticEvent<
126
+ $ReadOnly<{|
127
+ selection: Selection,
128
+ target: number,
129
+ |}>,
130
+ >;
131
+
132
+ export type KeyPressEvent = SyntheticEvent<
133
+ $ReadOnly<{|
134
+ key: string,
135
+ target?: ?number,
136
+ eventCount?: ?number,
137
+ |}>,
138
+ >;
139
+
140
+ export type EditingEvent = SyntheticEvent<
141
+ $ReadOnly<{|
142
+ eventCount: number,
143
+ text: string,
144
+ target: number,
145
+ |}>,
146
+ >;
147
+
148
+ type DataDetectorTypesType =
149
+ | 'phoneNumber'
150
+ | 'link'
151
+ | 'address'
152
+ | 'calendarEvent'
153
+ | 'trackingNumber'
154
+ | 'flightNumber'
155
+ | 'lookupSuggestion'
156
+ | 'none'
157
+ | 'all';
158
+
159
+ export type KeyboardType =
160
+ // Cross Platform
161
+ | 'default'
162
+ | 'email-address'
163
+ | 'numeric'
164
+ | 'phone-pad'
165
+ | 'number-pad'
166
+ | 'decimal-pad'
167
+ | 'url'
168
+ // iOS-only
169
+ | 'ascii-capable'
170
+ | 'numbers-and-punctuation'
171
+ | 'name-phone-pad'
172
+ | 'twitter'
173
+ | 'web-search'
174
+ // iOS 10+ only
175
+ | 'ascii-capable-number-pad'
176
+ // Android-only
177
+ | 'visible-password';
178
+
179
+ export type InputMode =
180
+ | 'none'
181
+ | 'text'
182
+ | 'decimal'
183
+ | 'numeric'
184
+ | 'tel'
185
+ | 'search'
186
+ | 'email'
187
+ | 'url';
188
+
189
+ export type ReturnKeyType =
190
+ // Cross Platform
191
+ | 'done'
192
+ | 'go'
193
+ | 'next'
194
+ | 'search'
195
+ | 'send'
196
+ // Android-only
197
+ | 'none'
198
+ | 'previous'
199
+ // iOS-only
200
+ | 'default'
201
+ | 'emergency-call'
202
+ | 'google'
203
+ | 'join'
204
+ | 'route'
205
+ | 'yahoo';
206
+
207
+ export type SubmitBehavior = 'submit' | 'blurAndSubmit' | 'newline';
208
+
209
+ export type AutoCapitalize = 'none' | 'sentences' | 'words' | 'characters';
210
+
211
+ export type TextContentType =
212
+ | 'none'
213
+ | 'URL'
214
+ | 'addressCity'
215
+ | 'addressCityAndState'
216
+ | 'addressState'
217
+ | 'countryName'
218
+ | 'creditCardNumber'
219
+ | 'creditCardExpiration'
220
+ | 'creditCardExpirationMonth'
221
+ | 'creditCardExpirationYear'
222
+ | 'creditCardSecurityCode'
223
+ | 'creditCardType'
224
+ | 'creditCardName'
225
+ | 'creditCardGivenName'
226
+ | 'creditCardMiddleName'
227
+ | 'creditCardFamilyName'
228
+ | 'emailAddress'
229
+ | 'familyName'
230
+ | 'fullStreetAddress'
231
+ | 'givenName'
232
+ | 'jobTitle'
233
+ | 'location'
234
+ | 'middleName'
235
+ | 'name'
236
+ | 'namePrefix'
237
+ | 'nameSuffix'
238
+ | 'nickname'
239
+ | 'organizationName'
240
+ | 'postalCode'
241
+ | 'streetAddressLine1'
242
+ | 'streetAddressLine2'
243
+ | 'sublocality'
244
+ | 'telephoneNumber'
245
+ | 'username'
246
+ | 'password'
247
+ | 'newPassword'
248
+ | 'oneTimeCode'
249
+ | 'birthdate'
250
+ | 'birthdateDay'
251
+ | 'birthdateMonth'
252
+ | 'birthdateYear'
253
+ | 'dateTime'
254
+ | 'flightNumber'
255
+ | 'shipmentTrackingNumber';
256
+
257
+ export type enterKeyHintType =
258
+ // Cross Platform
259
+ | 'done'
260
+ | 'go'
261
+ | 'next'
262
+ | 'search'
263
+ | 'send'
264
+ // Android-only
265
+ | 'previous'
266
+ // iOS-only
267
+ | 'enter';
268
+
269
+ type PasswordRules = string;
270
+
271
+ type IOSProps = $ReadOnly<{|
272
+ /**
273
+ * When the clear button should appear on the right side of the text view.
274
+ * This property is supported only for single-line TextInput component.
275
+ * @platform ios
276
+ */
277
+ clearButtonMode?: ?('never' | 'while-editing' | 'unless-editing' | 'always'),
278
+
279
+ /**
280
+ * If `true`, clears the text field automatically when editing begins.
281
+ * @platform ios
282
+ */
283
+ clearTextOnFocus?: ?boolean,
284
+
285
+ /**
286
+ * Determines the types of data converted to clickable URLs in the text input.
287
+ * Only valid if `multiline={true}` and `editable={false}`.
288
+ * By default no data types are detected.
289
+ *
290
+ * You can provide one type or an array of many types.
291
+ *
292
+ * Possible values for `dataDetectorTypes` are:
293
+ *
294
+ * - `'phoneNumber'`
295
+ * - `'link'`
296
+ * - `'address'`
297
+ * - `'calendarEvent'`
298
+ * - `'none'`
299
+ * - `'all'`
300
+ *
301
+ * @platform ios
302
+ */
303
+ dataDetectorTypes?:
304
+ | ?DataDetectorTypesType
305
+ | $ReadOnlyArray<DataDetectorTypesType>,
306
+
307
+ /**
308
+ * If `true`, the keyboard disables the return key when there is no text and
309
+ * automatically enables it when there is text. The default value is `false`.
310
+ * @platform ios
311
+ */
312
+ enablesReturnKeyAutomatically?: ?boolean,
313
+
314
+ /**
315
+ * An optional identifier which links a custom InputAccessoryView to
316
+ * this text input. The InputAccessoryView is rendered above the
317
+ * keyboard when this text input is focused.
318
+ * @platform ios
319
+ */
320
+ inputAccessoryViewID?: ?string,
321
+
322
+ /**
323
+ * Determines the color of the keyboard.
324
+ * @platform ios
325
+ */
326
+ keyboardAppearance?: ?('default' | 'light' | 'dark'),
327
+
328
+ /**
329
+ * Provide rules for your password.
330
+ * For example, say you want to require a password with at least eight characters consisting of a mix of uppercase and lowercase letters, at least one number, and at most two consecutive characters.
331
+ * "required: upper; required: lower; required: digit; max-consecutive: 2; minlength: 8;"
332
+ * @platform ios
333
+ */
334
+ passwordRules?: ?PasswordRules,
335
+
336
+ /*
337
+ * If `true`, allows TextInput to pass touch events to the parent component.
338
+ * This allows components to be swipeable from the TextInput on iOS,
339
+ * as is the case on Android by default.
340
+ * If `false`, TextInput always asks to handle the input (except when disabled).
341
+ * @platform ios
342
+ */
343
+ rejectResponderTermination?: ?boolean,
344
+
345
+ /**
346
+ * If `false`, scrolling of the text view will be disabled.
347
+ * The default value is `true`. Does only work with 'multiline={true}'.
348
+ * @platform ios
349
+ */
350
+ scrollEnabled?: ?boolean,
351
+
352
+ /**
353
+ * If `false`, disables spell-check style (i.e. red underlines).
354
+ * The default value is inherited from `autoCorrect`.
355
+ * @platform ios
356
+ */
357
+ spellCheck?: ?boolean,
358
+
359
+ /**
360
+ * Give the keyboard and the system information about the
361
+ * expected semantic meaning for the content that users enter.
362
+ * @platform ios
363
+ */
364
+ textContentType?: ?TextContentType,
365
+
366
+ /**
367
+ * Set line break strategy on iOS.
368
+ * @platform ios
369
+ */
370
+ lineBreakStrategyIOS?: ?('none' | 'standard' | 'hangul-word' | 'push-out'),
371
+
372
+ /**
373
+ * Set line break mode on iOS.
374
+ * @platform ios
375
+ */
376
+ lineBreakModeIOS?: ?(
377
+ | 'wordWrapping'
378
+ | 'char'
379
+ | 'clip'
380
+ | 'head'
381
+ | 'middle'
382
+ | 'tail'
383
+ ),
384
+
385
+ /**
386
+ * If `false`, the iOS system will not insert an extra space after a paste operation
387
+ * neither delete one or two spaces after a cut or delete operation.
388
+ *
389
+ * The default value is `true`.
390
+ *
391
+ * @platform ios
392
+ */
393
+ smartInsertDelete?: ?boolean,
394
+ |}>;
395
+
396
+ type AndroidProps = $ReadOnly<{|
397
+ /**
398
+ * When provided it will set the color of the cursor (or "caret") in the component.
399
+ * Unlike the behavior of `selectionColor` the cursor color will be set independently
400
+ * from the color of the text selection box.
401
+ * @platform android
402
+ */
403
+ cursorColor?: ?ColorValue,
404
+
405
+ /**
406
+ * When `false`, if there is a small amount of space available around a text input
407
+ * (e.g. landscape orientation on a phone), the OS may choose to have the user edit
408
+ * the text inside of a full screen text input mode. When `true`, this feature is
409
+ * disabled and users will always edit the text directly inside of the text input.
410
+ * Defaults to `false`.
411
+ * @platform android
412
+ */
413
+ disableFullscreenUI?: ?boolean,
414
+
415
+ importantForAutofill?: ?(
416
+ | 'auto'
417
+ | 'no'
418
+ | 'noExcludeDescendants'
419
+ | 'yes'
420
+ | 'yesExcludeDescendants'
421
+ ),
422
+
423
+ /**
424
+ * If defined, the provided image resource will be rendered on the left.
425
+ * The image resource must be inside `/android/app/src/main/res/drawable` and referenced
426
+ * like
427
+ * ```
428
+ * <TextInput
429
+ * inlineImageLeft='search_icon'
430
+ * />
431
+ * ```
432
+ * @platform android
433
+ */
434
+ inlineImageLeft?: ?string,
435
+
436
+ /**
437
+ * Padding between the inline image, if any, and the text input itself.
438
+ * @platform android
439
+ */
440
+ inlineImagePadding?: ?number,
441
+
442
+ /**
443
+ * Sets the number of lines for a `TextInput`. Use it with multiline set to
444
+ * `true` to be able to fill the lines.
445
+ * @platform android
446
+ */
447
+ numberOfLines?: ?number,
448
+
449
+ /**
450
+ * Sets the return key to the label. Use it instead of `returnKeyType`.
451
+ * @platform android
452
+ */
453
+ returnKeyLabel?: ?string,
454
+
455
+ /**
456
+ * Sets the number of rows for a `TextInput`. Use it with multiline set to
457
+ * `true` to be able to fill the lines.
458
+ * @platform android
459
+ */
460
+ rows?: ?number,
461
+
462
+ /**
463
+ * When `false`, it will prevent the soft keyboard from showing when the field is focused.
464
+ * Defaults to `true`.
465
+ */
466
+ showSoftInputOnFocus?: ?boolean,
467
+
468
+ /**
469
+ * Set text break strategy on Android API Level 23+, possible values are `simple`, `highQuality`, `balanced`
470
+ * The default value is `simple`.
471
+ * @platform android
472
+ */
473
+ textBreakStrategy?: ?('simple' | 'highQuality' | 'balanced'),
474
+
475
+ /**
476
+ * The color of the `TextInput` underline.
477
+ * @platform android
478
+ */
479
+ underlineColorAndroid?: ?ColorValue,
480
+ |}>;
481
+
482
+ // [Windows
483
+
484
+ type SubmitKeyEvent = $ReadOnly<{|
485
+ altKey?: ?boolean,
486
+ ctrlKey?: ?boolean,
487
+ metaKey?: ?boolean,
488
+ shiftKey?: ?boolean,
489
+ code: string,
490
+ |}>;
491
+
492
+ type WindowsProps = $ReadOnly<{|
493
+ /**
494
+ * If `true`, clears the text field synchronously before `onSubmitEditing` is emitted.
495
+ * @platform windows
496
+ */
497
+ clearTextOnSubmit?: ?boolean,
498
+
499
+ /**
500
+ * Configures keys that can be used to submit editing for the TextInput.
501
+ * @platform windows
502
+ */
503
+ submitKeyEvents?: ?$ReadOnlyArray<SubmitKeyEvent>,
504
+ |}>;
505
+
506
+ // Windows]
507
+
508
+ export type Props = $ReadOnly<{|
509
+ ...$Diff<ViewProps, $ReadOnly<{|style: ?ViewStyleProp|}>>,
510
+ ...IOSProps,
511
+ ...AndroidProps,
512
+ ...WindowsProps, // [Windows]
513
+
514
+ /**
515
+ * String to be read by screenreaders to indicate an error state. The acceptable parameters
516
+ * of accessibilityErrorMessage is a string. Setting accessibilityInvalid to true activates
517
+ * the error message. Setting accessibilityInvalid to false removes the error message.
518
+ */
519
+ accessibilityErrorMessage?: ?Stringish,
520
+ accessibilityInvalid?: ?boolean,
521
+
522
+ /**
523
+ * Can tell `TextInput` to automatically capitalize certain characters.
524
+ *
525
+ * - `characters`: all characters.
526
+ * - `words`: first letter of each word.
527
+ * - `sentences`: first letter of each sentence (*default*).
528
+ * - `none`: don't auto capitalize anything.
529
+ */
530
+ autoCapitalize?: ?AutoCapitalize,
531
+
532
+ /**
533
+ * Specifies autocomplete hints for the system, so it can provide autofill.
534
+ * On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.
535
+ * To disable autocomplete, set autoComplete to off.
536
+ *
537
+ * The following values work across platforms:
538
+ *
539
+ * - `additional-name`
540
+ * - `address-line1`
541
+ * - `address-line2`
542
+ * - `birthdate-day` (iOS 17+)
543
+ * - `birthdate-full` (iOS 17+)
544
+ * - `birthdate-month` (iOS 17+)
545
+ * - `birthdate-year` (iOS 17+)
546
+ * - `cc-number`
547
+ * - `cc-csc` (iOS 17+)
548
+ * - `cc-exp` (iOS 17+)
549
+ * - `cc-exp-day` (iOS 17+)
550
+ * - `cc-exp-month` (iOS 17+)
551
+ * - `cc-exp-year` (iOS 17+)
552
+ * - `country`
553
+ * - `current-password`
554
+ * - `email`
555
+ * - `family-name`
556
+ * - `given-name`
557
+ * - `honorific-prefix`
558
+ * - `honorific-suffix`
559
+ * - `name`
560
+ * - `new-password`
561
+ * - `off`
562
+ * - `one-time-code`
563
+ * - `postal-code`
564
+ * - `street-address`
565
+ * - `tel`
566
+ * - `username`
567
+ *
568
+ * The following values work on iOS only:
569
+ *
570
+ * - `cc-name` (iOS 17+)
571
+ * - `cc-given-name` (iOS 17+)
572
+ * - `cc-middle-name` (iOS 17+)
573
+ * - `cc-family-name` (iOS 17+)
574
+ * - `cc-type` (iOS 17+)
575
+ * - `nickname`
576
+ * - `organization`
577
+ * - `organization-title`
578
+ * - `url`
579
+ *
580
+ * The following values work on Android only:
581
+ *
582
+ * - `gender`
583
+ * - `name-family`
584
+ * - `name-given`
585
+ * - `name-middle`
586
+ * - `name-middle-initial`
587
+ * - `name-prefix`
588
+ * - `name-suffix`
589
+ * - `password`
590
+ * - `password-new`
591
+ * - `postal-address`
592
+ * - `postal-address-country`
593
+ * - `postal-address-extended`
594
+ * - `postal-address-extended-postal-code`
595
+ * - `postal-address-locality`
596
+ * - `postal-address-region`
597
+ * - `sms-otp`
598
+ * - `tel-country-code`
599
+ * - `tel-national`
600
+ * - `tel-device`
601
+ * - `username-new`
602
+ */
603
+ autoComplete?: ?(
604
+ | 'additional-name'
605
+ | 'address-line1'
606
+ | 'address-line2'
607
+ | 'birthdate-day'
608
+ | 'birthdate-full'
609
+ | 'birthdate-month'
610
+ | 'birthdate-year'
611
+ | 'cc-csc'
612
+ | 'cc-exp'
613
+ | 'cc-exp-day'
614
+ | 'cc-exp-month'
615
+ | 'cc-exp-year'
616
+ | 'cc-number'
617
+ | 'cc-name'
618
+ | 'cc-given-name'
619
+ | 'cc-middle-name'
620
+ | 'cc-family-name'
621
+ | 'cc-type'
622
+ | 'country'
623
+ | 'current-password'
624
+ | 'email'
625
+ | 'family-name'
626
+ | 'gender'
627
+ | 'given-name'
628
+ | 'honorific-prefix'
629
+ | 'honorific-suffix'
630
+ | 'name'
631
+ | 'name-family'
632
+ | 'name-given'
633
+ | 'name-middle'
634
+ | 'name-middle-initial'
635
+ | 'name-prefix'
636
+ | 'name-suffix'
637
+ | 'new-password'
638
+ | 'nickname'
639
+ | 'one-time-code'
640
+ | 'organization'
641
+ | 'organization-title'
642
+ | 'password'
643
+ | 'password-new'
644
+ | 'postal-address'
645
+ | 'postal-address-country'
646
+ | 'postal-address-extended'
647
+ | 'postal-address-extended-postal-code'
648
+ | 'postal-address-locality'
649
+ | 'postal-address-region'
650
+ | 'postal-code'
651
+ | 'street-address'
652
+ | 'sms-otp'
653
+ | 'tel'
654
+ | 'tel-country-code'
655
+ | 'tel-national'
656
+ | 'tel-device'
657
+ | 'url'
658
+ | 'username'
659
+ | 'username-new'
660
+ | 'off'
661
+ ),
662
+
663
+ /**
664
+ * If `false`, disables auto-correct. The default value is `true`.
665
+ */
666
+ autoCorrect?: ?boolean,
667
+
668
+ /**
669
+ * If `true`, focuses the input on `componentDidMount`.
670
+ * The default value is `false`.
671
+ */
672
+ autoFocus?: ?boolean,
673
+
674
+ /**
675
+ * Specifies whether fonts should scale to respect Text Size accessibility settings. The
676
+ * default is `true`.
677
+ */
678
+ allowFontScaling?: ?boolean,
679
+
680
+ /**
681
+ * If `true`, caret is hidden. The default value is `false`.
682
+ *
683
+ * On Android devices manufactured by Xiaomi with Android Q,
684
+ * when keyboardType equals 'email-address'this will be set
685
+ * in native to 'true' to prevent a system related crash. This
686
+ * will cause cursor to be disabled as a side-effect.
687
+ *
688
+ */
689
+ caretHidden?: ?boolean,
690
+
691
+ /*
692
+ * If `true`, contextMenuHidden is hidden. The default value is `false`.
693
+ */
694
+ contextMenuHidden?: ?boolean,
695
+
696
+ /**
697
+ * Provides an initial value that will change when the user starts typing.
698
+ * Useful for simple use-cases where you do not want to deal with listening
699
+ * to events and updating the value prop to keep the controlled state in sync.
700
+ */
701
+ defaultValue?: ?Stringish,
702
+
703
+ /**
704
+ * If `false`, text is not editable. The default value is `true`.
705
+ */
706
+ editable?: ?boolean,
707
+
708
+ forwardedRef?: ?ReactRefSetter<TextInputInstance>,
709
+
710
+ /**
711
+ * `enterKeyHint` defines what action label (or icon) to present for the enter key on virtual keyboards.
712
+ *
713
+ * The following values is supported:
714
+ *
715
+ * - `enter`
716
+ * - `done`
717
+ * - `go`
718
+ * - `next`
719
+ * - `previous`
720
+ * - `search`
721
+ * - `send`
722
+ */
723
+ enterKeyHint?: ?enterKeyHintType,
724
+
725
+ /**
726
+ * `inputMode` works like the `inputmode` attribute in HTML, it determines which
727
+ * keyboard to open, e.g.`numeric` and has precedence over keyboardType
728
+ *
729
+ * Support the following values:
730
+ *
731
+ * - `none`
732
+ * - `text`
733
+ * - `decimal`
734
+ * - `numeric`
735
+ * - `tel`
736
+ * - `search`
737
+ * - `email`
738
+ * - `url`
739
+ */
740
+ inputMode?: ?InputMode,
741
+
742
+ /**
743
+ * Determines which keyboard to open, e.g.`numeric`.
744
+ *
745
+ * The following values work across platforms:
746
+ *
747
+ * - `default`
748
+ * - `numeric`
749
+ * - `number-pad`
750
+ * - `decimal-pad`
751
+ * - `email-address`
752
+ * - `phone-pad`
753
+ * - `url`
754
+ *
755
+ * *iOS Only*
756
+ *
757
+ * The following values work on iOS only:
758
+ *
759
+ * - `ascii-capable`
760
+ * - `numbers-and-punctuation`
761
+ * - `name-phone-pad`
762
+ * - `twitter`
763
+ * - `web-search`
764
+ *
765
+ * *Android Only*
766
+ *
767
+ * The following values work on Android only:
768
+ *
769
+ * - `visible-password`
770
+ *
771
+ */
772
+ keyboardType?: ?KeyboardType,
773
+
774
+ /**
775
+ * Specifies largest possible scale a font can reach when `allowFontScaling` is enabled.
776
+ * Possible values:
777
+ * `null/undefined` (default): inherit from the parent node or the global default (0)
778
+ * `0`: no max, ignore parent/global default
779
+ * `>= 1`: sets the maxFontSizeMultiplier of this node to this value
780
+ */
781
+ maxFontSizeMultiplier?: ?number,
782
+
783
+ /**
784
+ * Limits the maximum number of characters that can be entered. Use this
785
+ * instead of implementing the logic in JS to avoid flicker.
786
+ */
787
+ maxLength?: ?number,
788
+
789
+ /**
790
+ * If `true`, the text input can be multiple lines.
791
+ * The default value is `false`.
792
+ */
793
+ multiline?: ?boolean,
794
+
795
+ /**
796
+ * Callback that is called when the text input is blurred.
797
+ */
798
+ onBlur?: ?(e: BlurEvent) => mixed,
799
+
800
+ /**
801
+ * Callback that is called when the text input's text changes.
802
+ */
803
+ onChange?: ?(e: ChangeEvent) => mixed,
804
+
805
+ /**
806
+ * Callback that is called when the text input's text changes.
807
+ * Changed text is passed as an argument to the callback handler.
808
+ */
809
+ onChangeText?: ?(text: string) => mixed,
810
+
811
+ /**
812
+ * Callback that is called when the text input's content size changes.
813
+ * This will be called with
814
+ * `{ nativeEvent: { contentSize: { width, height } } }`.
815
+ *
816
+ * Only called for multiline text inputs.
817
+ */
818
+ onContentSizeChange?: ?(e: ContentSizeChangeEvent) => mixed,
819
+
820
+ /**
821
+ * Callback that is called when text input ends.
822
+ */
823
+ onEndEditing?: ?(e: EditingEvent) => mixed,
824
+
825
+ /**
826
+ * Callback that is called when the text input is focused.
827
+ */
828
+ onFocus?: ?(e: FocusEvent) => mixed,
829
+
830
+ /**
831
+ * Callback that is called when a key is pressed.
832
+ * This will be called with `{ nativeEvent: { key: keyValue } }`
833
+ * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and
834
+ * the typed-in character otherwise including `' '` for space.
835
+ * Fires before `onChange` callbacks.
836
+ */
837
+ onKeyPress?: ?(e: KeyPressEvent) => mixed,
838
+
839
+ /**
840
+ * Called when a single tap gesture is detected.
841
+ */
842
+ onPress?: ?(event: PressEvent) => mixed,
843
+
844
+ /**
845
+ * Called when a touch is engaged.
846
+ */
847
+ onPressIn?: ?(event: PressEvent) => mixed,
848
+
849
+ /**
850
+ * Called when a touch is released.
851
+ */
852
+ onPressOut?: ?(event: PressEvent) => mixed,
853
+
854
+ /**
855
+ * Callback that is called when the text input selection is changed.
856
+ * This will be called with
857
+ * `{ nativeEvent: { selection: { start, end } } }`.
858
+ */
859
+ onSelectionChange?: ?(e: SelectionChangeEvent) => mixed,
860
+
861
+ /**
862
+ * Callback that is called when the text input's submit button is pressed.
863
+ * Invalid if `multiline={true}` is specified.
864
+ */
865
+ onSubmitEditing?: ?(e: EditingEvent) => mixed,
866
+
867
+ /**
868
+ * Invoked on content scroll with `{ nativeEvent: { contentOffset: { x, y } } }`.
869
+ * May also contain other properties from ScrollEvent but on Android contentSize
870
+ * is not provided for performance reasons.
871
+ */
872
+ onScroll?: ?(e: ScrollEvent) => mixed,
873
+
874
+ /**
875
+ * The string that will be rendered before text input has been entered.
876
+ */
877
+ placeholder?: ?Stringish,
878
+
879
+ /**
880
+ * The text color of the placeholder string.
881
+ */
882
+ placeholderTextColor?: ?ColorValue,
883
+
884
+ /** `readOnly` works like the `readonly` attribute in HTML.
885
+ * If `true`, text is not editable. The default value is `false`.
886
+ * See https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly
887
+ * for more details.
888
+ */
889
+ readOnly?: ?boolean,
890
+
891
+ /**
892
+ * Determines how the return key should look. On Android you can also use
893
+ * `returnKeyLabel`.
894
+ *
895
+ * *Cross platform*
896
+ *
897
+ * The following values work across platforms:
898
+ *
899
+ * - `done`
900
+ * - `go`
901
+ * - `next`
902
+ * - `search`
903
+ * - `send`
904
+ *
905
+ * *Android Only*
906
+ *
907
+ * The following values work on Android only:
908
+ *
909
+ * - `none`
910
+ * - `previous`
911
+ *
912
+ * *iOS Only*
913
+ *
914
+ * The following values work on iOS only:
915
+ *
916
+ * - `default`
917
+ * - `emergency-call`
918
+ * - `google`
919
+ * - `join`
920
+ * - `route`
921
+ * - `yahoo`
922
+ */
923
+ returnKeyType?: ?ReturnKeyType,
924
+
925
+ /**
926
+ * If `true`, the text input obscures the text entered so that sensitive text
927
+ * like passwords stay secure. The default value is `false`. Does not work with 'multiline={true}'.
928
+ */
929
+ secureTextEntry?: ?boolean,
930
+
931
+ /**
932
+ * The start and end of the text input's selection. Set start and end to
933
+ * the same value to position the cursor.
934
+ */
935
+ selection?: ?$ReadOnly<{|
936
+ start: number,
937
+ end?: ?number,
938
+ |}>,
939
+
940
+ /**
941
+ * The highlight and cursor color of the text input.
942
+ */
943
+ selectionColor?: ?ColorValue,
944
+
945
+ /**
946
+ * The text selection handle color.
947
+ * @platform android
948
+ */
949
+ selectionHandleColor?: ?ColorValue,
950
+
951
+ /**
952
+ * If `true`, all text will automatically be selected on focus.
953
+ */
954
+ selectTextOnFocus?: ?boolean,
955
+
956
+ /**
957
+ * If `true`, the text field will blur when submitted.
958
+ * The default value is true for single-line fields and false for
959
+ * multiline fields. Note that for multiline fields, setting `blurOnSubmit`
960
+ * to `true` means that pressing return will blur the field and trigger the
961
+ * `onSubmitEditing` event instead of inserting a newline into the field.
962
+ *
963
+ * @deprecated
964
+ * Note that `submitBehavior` now takes the place of `blurOnSubmit` and will
965
+ * override any behavior defined by `blurOnSubmit`.
966
+ * @see submitBehavior
967
+ */
968
+ blurOnSubmit?: ?boolean,
969
+
970
+ /**
971
+ * When the return key is pressed,
972
+ *
973
+ * For single line inputs:
974
+ *
975
+ * - `'newline`' defaults to `'blurAndSubmit'`
976
+ * - `undefined` defaults to `'blurAndSubmit'`
977
+ *
978
+ * For multiline inputs:
979
+ *
980
+ * - `'newline'` adds a newline
981
+ * - `undefined` defaults to `'newline'`
982
+ *
983
+ * For both single line and multiline inputs:
984
+ *
985
+ * - `'submit'` will only send a submit event and not blur the input
986
+ * - `'blurAndSubmit`' will both blur the input and send a submit event
987
+ */
988
+ submitBehavior?: ?SubmitBehavior,
989
+
990
+ /**
991
+ * Note that not all Text styles are supported, an incomplete list of what is not supported includes:
992
+ *
993
+ * - `borderLeftWidth`
994
+ * - `borderTopWidth`
995
+ * - `borderRightWidth`
996
+ * - `borderBottomWidth`
997
+ * - `borderTopLeftRadius`
998
+ * - `borderTopRightRadius`
999
+ * - `borderBottomRightRadius`
1000
+ * - `borderBottomLeftRadius`
1001
+ *
1002
+ * see [Issue#7070](https://github.com/facebook/react-native/issues/7070)
1003
+ * for more detail.
1004
+ *
1005
+ * [Styles](docs/style.html)
1006
+ */
1007
+ style?: ?TextStyleProp,
1008
+
1009
+ /**
1010
+ * The value to show for the text input. `TextInput` is a controlled
1011
+ * component, which means the native value will be forced to match this
1012
+ * value prop if provided. For most uses, this works great, but in some
1013
+ * cases this may cause flickering - one common cause is preventing edits
1014
+ * by keeping value the same. In addition to simply setting the same value,
1015
+ * either set `editable={false}`, or set/update `maxLength` to prevent
1016
+ * unwanted edits without flicker.
1017
+ */
1018
+ value?: ?Stringish,
1019
+ |}>;
1020
+
1021
+ type ViewCommands = $NonMaybeType<
1022
+ | typeof AndroidTextInputCommands
1023
+ | typeof RCTMultilineTextInputNativeCommands
1024
+ | typeof RCTSinglelineTextInputNativeCommands,
1025
+ >;
1026
+
1027
+ type LastNativeSelection = {|
1028
+ selection: Selection,
1029
+ mostRecentEventCount: number,
1030
+ |};
1031
+
1032
+ const emptyFunctionThatReturnsTrue = () => true;
1033
+
1034
+ /**
1035
+ * This hook handles the synchronization between the state of the text input
1036
+ * in native and in JavaScript. This is necessary due to the asynchronous nature
1037
+ * of text input events.
1038
+ */
1039
+ function useTextInputStateSynchronization_STATE({
1040
+ props,
1041
+ mostRecentEventCount,
1042
+ selection,
1043
+ inputRef,
1044
+ text,
1045
+ viewCommands,
1046
+ }: {
1047
+ props: Props,
1048
+ mostRecentEventCount: number,
1049
+ selection: ?Selection,
1050
+ inputRef: React.RefObject<null | HostInstance>,
1051
+ text: string,
1052
+ viewCommands: ViewCommands,
1053
+ }): {
1054
+ setLastNativeText: string => void,
1055
+ setLastNativeSelection: LastNativeSelection => void,
1056
+ } {
1057
+ const [lastNativeText, setLastNativeText] = useState<?Stringish>(props.value);
1058
+ const [lastNativeSelectionState, setLastNativeSelection] =
1059
+ useState<LastNativeSelection>({
1060
+ selection: {start: -1, end: -1},
1061
+ mostRecentEventCount: mostRecentEventCount,
1062
+ });
1063
+
1064
+ const lastNativeSelection = lastNativeSelectionState.selection;
1065
+
1066
+ // This is necessary in case native updates the text and JS decides
1067
+ // that the update should be ignored and we should stick with the value
1068
+ // that we have in JS.
1069
+ useLayoutEffect(() => {
1070
+ const nativeUpdate: {text?: string, selection?: Selection} = {};
1071
+
1072
+ if (lastNativeText !== props.value && typeof props.value === 'string') {
1073
+ nativeUpdate.text = props.value;
1074
+ setLastNativeText(props.value);
1075
+ }
1076
+
1077
+ if (
1078
+ selection &&
1079
+ lastNativeSelection &&
1080
+ (lastNativeSelection.start !== selection.start ||
1081
+ lastNativeSelection.end !== selection.end)
1082
+ ) {
1083
+ nativeUpdate.selection = selection;
1084
+ setLastNativeSelection({selection, mostRecentEventCount});
1085
+ }
1086
+
1087
+ if (Object.keys(nativeUpdate).length === 0) {
1088
+ return;
1089
+ }
1090
+
1091
+ if (inputRef.current != null) {
1092
+ viewCommands.setTextAndSelection(
1093
+ inputRef.current,
1094
+ mostRecentEventCount,
1095
+ text,
1096
+ selection?.start ?? -1,
1097
+ selection?.end ?? -1,
1098
+ );
1099
+ }
1100
+ }, [
1101
+ mostRecentEventCount,
1102
+ inputRef,
1103
+ props.value,
1104
+ props.defaultValue,
1105
+ lastNativeText,
1106
+ selection,
1107
+ lastNativeSelection,
1108
+ text,
1109
+ viewCommands,
1110
+ ]);
1111
+
1112
+ return {setLastNativeText, setLastNativeSelection};
1113
+ }
1114
+
1115
+ /**
1116
+ * This hook handles the synchronization between the state of the text input
1117
+ * in native and in JavaScript. This is necessary due to the asynchronous nature
1118
+ * of text input events.
1119
+ */
1120
+ function useTextInputStateSynchronization_REFS({
1121
+ props,
1122
+ mostRecentEventCount,
1123
+ selection,
1124
+ inputRef,
1125
+ text,
1126
+ viewCommands,
1127
+ }: {
1128
+ props: Props,
1129
+ mostRecentEventCount: number,
1130
+ selection: ?Selection,
1131
+ inputRef: React.RefObject<null | HostInstance>,
1132
+ text: string,
1133
+ viewCommands: ViewCommands,
1134
+ }): {
1135
+ setLastNativeText: string => void,
1136
+ setLastNativeSelection: LastNativeSelection => void,
1137
+ } {
1138
+ const lastNativeTextRef = useRef<?Stringish>(props.value);
1139
+ const lastNativeSelectionRef = useRef<LastNativeSelection>({
1140
+ selection: {start: -1, end: -1},
1141
+ mostRecentEventCount: mostRecentEventCount,
1142
+ });
1143
+
1144
+ // This is necessary in case native updates the text and JS decides
1145
+ // that the update should be ignored and we should stick with the value
1146
+ // that we have in JS.
1147
+ useLayoutEffect(() => {
1148
+ const nativeUpdate: {text?: string, selection?: Selection} = {};
1149
+
1150
+ const lastNativeSelection = lastNativeSelectionRef.current.selection;
1151
+
1152
+ if (
1153
+ lastNativeTextRef.current !== props.value &&
1154
+ typeof props.value === 'string'
1155
+ ) {
1156
+ nativeUpdate.text = props.value;
1157
+ lastNativeTextRef.current = props.value;
1158
+ }
1159
+
1160
+ if (
1161
+ selection &&
1162
+ lastNativeSelection &&
1163
+ (lastNativeSelection.start !== selection.start ||
1164
+ lastNativeSelection.end !== selection.end)
1165
+ ) {
1166
+ nativeUpdate.selection = selection;
1167
+ lastNativeSelectionRef.current = {selection, mostRecentEventCount};
1168
+ }
1169
+
1170
+ if (Object.keys(nativeUpdate).length === 0) {
1171
+ return;
1172
+ }
1173
+
1174
+ if (inputRef.current != null) {
1175
+ viewCommands.setTextAndSelection(
1176
+ inputRef.current,
1177
+ mostRecentEventCount,
1178
+ text,
1179
+ selection?.start ?? -1,
1180
+ selection?.end ?? -1,
1181
+ );
1182
+ }
1183
+ }, [
1184
+ mostRecentEventCount,
1185
+ inputRef,
1186
+ props.value,
1187
+ props.defaultValue,
1188
+ selection,
1189
+ text,
1190
+ viewCommands,
1191
+ ]);
1192
+
1193
+ return {
1194
+ setLastNativeText: lastNativeText => {
1195
+ lastNativeTextRef.current = lastNativeText;
1196
+ },
1197
+ setLastNativeSelection: lastNativeSelection => {
1198
+ lastNativeSelectionRef.current = lastNativeSelection;
1199
+ },
1200
+ };
1201
+ }
1202
+
1203
+ /**
1204
+ * A foundational component for inputting text into the app via a
1205
+ * keyboard. Props provide configurability for several features, such as
1206
+ * auto-correction, auto-capitalization, placeholder text, and different keyboard
1207
+ * types, such as a numeric keypad.
1208
+ *
1209
+ * The simplest use case is to plop down a `TextInput` and subscribe to the
1210
+ * `onChangeText` events to read the user input. There are also other events,
1211
+ * such as `onSubmitEditing` and `onFocus` that can be subscribed to. A simple
1212
+ * example:
1213
+ *
1214
+ * ```ReactNativeWebPlayer
1215
+ * import React, { Component } from 'react';
1216
+ * import { AppRegistry, TextInput } from 'react-native';
1217
+ *
1218
+ * export default class UselessTextInput extends Component {
1219
+ * constructor(props) {
1220
+ * super(props);
1221
+ * this.state = { text: 'Useless Placeholder' };
1222
+ * }
1223
+ *
1224
+ * render() {
1225
+ * return (
1226
+ * <TextInput
1227
+ * style={{height: 40, borderColor: 'gray', borderWidth: 1}}
1228
+ * onChangeText={(text) => this.setState({text})}
1229
+ * value={this.state.text}
1230
+ * />
1231
+ * );
1232
+ * }
1233
+ * }
1234
+ *
1235
+ * // skip this line if using Create React Native App
1236
+ * AppRegistry.registerComponent('AwesomeProject', () => UselessTextInput);
1237
+ * ```
1238
+ *
1239
+ * Two methods exposed via the native element are .focus() and .blur() that
1240
+ * will focus or blur the TextInput programmatically.
1241
+ *
1242
+ * Note that some props are only available with `multiline={true/false}`.
1243
+ * Additionally, border styles that apply to only one side of the element
1244
+ * (e.g., `borderBottomColor`, `borderLeftWidth`, etc.) will not be applied if
1245
+ * `multiline=false`. To achieve the same effect, you can wrap your `TextInput`
1246
+ * in a `View`:
1247
+ *
1248
+ * ```ReactNativeWebPlayer
1249
+ * import React, { Component } from 'react';
1250
+ * import { AppRegistry, View, TextInput } from 'react-native';
1251
+ *
1252
+ * class UselessTextInput extends Component {
1253
+ * render() {
1254
+ * return (
1255
+ * <TextInput
1256
+ * {...this.props} // Inherit any props passed to it; e.g., multiline, numberOfLines below
1257
+ * editable={true}
1258
+ * maxLength={40}
1259
+ * />
1260
+ * );
1261
+ * }
1262
+ * }
1263
+ *
1264
+ * export default class UselessTextInputMultiline extends Component {
1265
+ * constructor(props) {
1266
+ * super(props);
1267
+ * this.state = {
1268
+ * text: 'Useless Multiline Placeholder',
1269
+ * };
1270
+ * }
1271
+ *
1272
+ * // If you type something in the text box that is a color, the background will change to that
1273
+ * // color.
1274
+ * render() {
1275
+ * return (
1276
+ * <View style={{
1277
+ * backgroundColor: this.state.text,
1278
+ * borderBottomColor: '#000000',
1279
+ * borderBottomWidth: 1 }}
1280
+ * >
1281
+ * <UselessTextInput
1282
+ * multiline={true}
1283
+ * numberOfLines={4}
1284
+ * onChangeText={(text) => this.setState({text})}
1285
+ * value={this.state.text}
1286
+ * />
1287
+ * </View>
1288
+ * );
1289
+ * }
1290
+ * }
1291
+ *
1292
+ * // skip these lines if using Create React Native App
1293
+ * AppRegistry.registerComponent(
1294
+ * 'AwesomeProject',
1295
+ * () => UselessTextInputMultiline
1296
+ * );
1297
+ * ```
1298
+ *
1299
+ * `TextInput` has by default a border at the bottom of its view. This border
1300
+ * has its padding set by the background image provided by the system, and it
1301
+ * cannot be changed. Solutions to avoid this is to either not set height
1302
+ * explicitly, case in which the system will take care of displaying the border
1303
+ * in the correct position, or to not display the border by setting
1304
+ * `underlineColorAndroid` to transparent.
1305
+ *
1306
+ * Note that on Android performing text selection in input can change
1307
+ * app's activity `windowSoftInputMode` param to `adjustResize`.
1308
+ * This may cause issues with components that have position: 'absolute'
1309
+ * while keyboard is active. To avoid this behavior either specify `windowSoftInputMode`
1310
+ * in AndroidManifest.xml ( https://developer.android.com/guide/topics/manifest/activity-element.html )
1311
+ * or control this param programmatically with native code.
1312
+ *
1313
+ */
1314
+ function InternalTextInput(props: Props): React.Node {
1315
+ const {
1316
+ 'aria-busy': ariaBusy,
1317
+ 'aria-checked': ariaChecked,
1318
+ 'aria-disabled': ariaDisabled,
1319
+ 'aria-expanded': ariaExpanded,
1320
+ 'aria-selected': ariaSelected,
1321
+ 'aria-multiselectable': ariaMultiselectable, // Win32
1322
+ 'aria-required': ariaRequired, // Win32
1323
+ accessibilityState,
1324
+ id,
1325
+ tabIndex,
1326
+ selection: propsSelection,
1327
+ selectionColor,
1328
+ selectionHandleColor,
1329
+ cursorColor,
1330
+ ...otherProps
1331
+ } = props;
1332
+
1333
+ const inputRef = useRef<null | HostInstance>(null);
1334
+
1335
+ const selection: ?Selection =
1336
+ propsSelection == null
1337
+ ? null
1338
+ : {
1339
+ start: propsSelection.start,
1340
+ end: propsSelection.end ?? propsSelection.start,
1341
+ };
1342
+
1343
+ const text =
1344
+ typeof props.value === 'string'
1345
+ ? props.value
1346
+ : typeof props.defaultValue === 'string'
1347
+ ? props.defaultValue
1348
+ : '';
1349
+
1350
+ const viewCommands =
1351
+ WindowsTextInputCommands || // [Windows]
1352
+ AndroidTextInputCommands ||
1353
+ (props.multiline === true
1354
+ ? RCTMultilineTextInputNativeCommands
1355
+ : RCTSinglelineTextInputNativeCommands);
1356
+
1357
+ const [mostRecentEventCount, setMostRecentEventCount] = useState<number>(0);
1358
+ const useTextInputStateSynchronization =
1359
+ ReactNativeFeatureFlags.useRefsForTextInputState()
1360
+ ? useTextInputStateSynchronization_REFS
1361
+ : useTextInputStateSynchronization_STATE;
1362
+ const {setLastNativeText, setLastNativeSelection} =
1363
+ useTextInputStateSynchronization({
1364
+ props,
1365
+ inputRef,
1366
+ mostRecentEventCount,
1367
+ selection,
1368
+ text,
1369
+ viewCommands,
1370
+ });
1371
+
1372
+ useLayoutEffect(() => {
1373
+ const inputRefValue = inputRef.current;
1374
+
1375
+ if (inputRefValue != null) {
1376
+ TextInputState.registerInput(inputRefValue);
1377
+
1378
+ return () => {
1379
+ TextInputState.unregisterInput(inputRefValue);
1380
+
1381
+ if (TextInputState.currentlyFocusedInput() === inputRefValue) {
1382
+ nullthrows(inputRefValue).blur();
1383
+ }
1384
+ };
1385
+ }
1386
+ }, []);
1387
+
1388
+ const setLocalRef = useCallback(
1389
+ (instance: TextInputInstance | null) => {
1390
+ inputRef.current = instance;
1391
+
1392
+ /*
1393
+ Hi reader from the future. I'm sorry for this.
1394
+
1395
+ This is a hack. Ideally we would forwardRef to the underlying
1396
+ host component. However, since TextInput has it's own methods that can be
1397
+ called as well, if we used the standard forwardRef then these
1398
+ methods wouldn't be accessible and thus be a breaking change.
1399
+
1400
+ We have a couple of options of how to handle this:
1401
+ - Return a new ref with everything we methods from both. This is problematic
1402
+ because we need React to also know it is a host component which requires
1403
+ internals of the class implementation of the ref.
1404
+ - Break the API and have some other way to call one set of the methods or
1405
+ the other. This is our long term approach as we want to eventually
1406
+ get the methods on host components off the ref. So instead of calling
1407
+ ref.measure() you might call ReactNative.measure(ref). This would hopefully
1408
+ let the ref for TextInput then have the methods like `.clear`. Or we do it
1409
+ the other way and make it TextInput.clear(textInputRef) which would be fine
1410
+ too. Either way though is a breaking change that is longer term.
1411
+ - Mutate this ref. :( Gross, but accomplishes what we need in the meantime
1412
+ before we can get to the long term breaking change.
1413
+ */
1414
+ if (instance != null) {
1415
+ // $FlowFixMe[incompatible-use] - See the explanation above.
1416
+ Object.assign(instance, {
1417
+ clear(): void {
1418
+ if (inputRef.current != null) {
1419
+ viewCommands.setTextAndSelection(
1420
+ inputRef.current,
1421
+ mostRecentEventCount,
1422
+ '',
1423
+ 0,
1424
+ 0,
1425
+ );
1426
+ }
1427
+ },
1428
+ isFocused(): boolean {
1429
+ const currentlyFocusedInput =
1430
+ TextInputState.currentlyFocusedInput();
1431
+ return (
1432
+ currentlyFocusedInput !== null &&
1433
+ currentlyFocusedInput === inputRef.current
1434
+ );
1435
+ },
1436
+ getNativeRef(): ?HostInstance {
1437
+ return inputRef.current;
1438
+ },
1439
+ setSelection(start: number, end: number): void {
1440
+ if (inputRef.current != null) {
1441
+ viewCommands.setTextAndSelection(
1442
+ inputRef.current,
1443
+ mostRecentEventCount,
1444
+ null,
1445
+ start,
1446
+ end,
1447
+ );
1448
+ }
1449
+ },
1450
+ });
1451
+ }
1452
+ },
1453
+ [mostRecentEventCount, viewCommands],
1454
+ );
1455
+
1456
+ const ref = useMergeRefs<TextInputInstance>(setLocalRef, props.forwardedRef);
1457
+
1458
+ const _onChange = (event: ChangeEvent) => {
1459
+ const currentText = event.nativeEvent.text;
1460
+ props.onChange && props.onChange(event);
1461
+ props.onChangeText && props.onChangeText(currentText);
1462
+
1463
+ if (inputRef.current == null) {
1464
+ // calling `props.onChange` or `props.onChangeText`
1465
+ // may clean up the input itself. Exits here.
1466
+ return;
1467
+ }
1468
+
1469
+ setLastNativeText(currentText);
1470
+ // This must happen last, after we call setLastNativeText.
1471
+ // Different ordering can cause bugs when editing AndroidTextInputs
1472
+ // with multiple Fragments.
1473
+ // We must update this so that controlled input updates work.
1474
+ setMostRecentEventCount(event.nativeEvent.eventCount);
1475
+ };
1476
+
1477
+ const _onSelectionChange = (event: SelectionChangeEvent) => {
1478
+ props.onSelectionChange && props.onSelectionChange(event);
1479
+
1480
+ if (inputRef.current == null) {
1481
+ // calling `props.onSelectionChange`
1482
+ // may clean up the input itself. Exits here.
1483
+ return;
1484
+ }
1485
+
1486
+ setLastNativeSelection({
1487
+ selection: event.nativeEvent.selection,
1488
+ mostRecentEventCount,
1489
+ });
1490
+ };
1491
+
1492
+ const _onFocus = (event: FocusEvent) => {
1493
+ TextInputState.focusInput(inputRef.current);
1494
+ if (props.onFocus) {
1495
+ props.onFocus(event);
1496
+ }
1497
+ };
1498
+
1499
+ const _onBlur = (event: BlurEvent) => {
1500
+ TextInputState.blurInput(inputRef.current);
1501
+ if (props.onBlur) {
1502
+ props.onBlur(event);
1503
+ }
1504
+ };
1505
+
1506
+ const _onScroll = (event: ScrollEvent) => {
1507
+ props.onScroll && props.onScroll(event);
1508
+ };
1509
+
1510
+ let textInput = null;
1511
+
1512
+ const multiline = props.multiline ?? false;
1513
+
1514
+ let submitBehavior: SubmitBehavior;
1515
+ if (props.submitBehavior != null) {
1516
+ // `submitBehavior` is set explicitly
1517
+ if (!multiline && props.submitBehavior === 'newline') {
1518
+ // For single line text inputs, `'newline'` is not a valid option
1519
+ submitBehavior = 'blurAndSubmit';
1520
+ } else {
1521
+ submitBehavior = props.submitBehavior;
1522
+ }
1523
+ } else if (multiline) {
1524
+ if (props.blurOnSubmit === true) {
1525
+ submitBehavior = 'blurAndSubmit';
1526
+ } else {
1527
+ submitBehavior = 'newline';
1528
+ }
1529
+ } else {
1530
+ // Single line
1531
+ if (props.blurOnSubmit !== false) {
1532
+ submitBehavior = 'blurAndSubmit';
1533
+ } else {
1534
+ submitBehavior = 'submit';
1535
+ }
1536
+ }
1537
+
1538
+ const accessible = props.accessible !== false;
1539
+
1540
+ const accessibilityErrorMessage =
1541
+ props.accessibilityInvalid === true
1542
+ ? props.accessibilityErrorMessage
1543
+ : null;
1544
+
1545
+ const focusable = props.focusable !== false;
1546
+
1547
+ const {
1548
+ editable,
1549
+ hitSlop,
1550
+ onPress,
1551
+ onPressIn,
1552
+ onPressOut,
1553
+ rejectResponderTermination,
1554
+ } = props;
1555
+
1556
+ const config = React.useMemo(
1557
+ () => ({
1558
+ hitSlop,
1559
+ onPress: (event: PressEvent) => {
1560
+ onPress?.(event);
1561
+ if (editable !== false) {
1562
+ if (inputRef.current != null) {
1563
+ inputRef.current.focus();
1564
+ }
1565
+ }
1566
+ },
1567
+ onPressIn: onPressIn,
1568
+ onPressOut: onPressOut,
1569
+ cancelable: Platform.OS === 'ios' ? !rejectResponderTermination : null,
1570
+ }),
1571
+ [
1572
+ editable,
1573
+ hitSlop,
1574
+ onPress,
1575
+ onPressIn,
1576
+ onPressOut,
1577
+ rejectResponderTermination,
1578
+ ],
1579
+ );
1580
+
1581
+ // Hide caret during test runs due to a flashing caret
1582
+ // makes screenshot tests flakey
1583
+ let caretHidden = props.caretHidden;
1584
+ if (Platform.isTesting) {
1585
+ caretHidden = true;
1586
+ }
1587
+
1588
+ // TextInput handles onBlur and onFocus events
1589
+ // so omitting onBlur and onFocus pressability handlers here.
1590
+ const {onBlur, onFocus, ...eventHandlers} = usePressability(config) || {};
1591
+ const eventPhase = Object.freeze({Capturing: 1, Bubbling: 3});
1592
+ const _keyDown = (event: KeyEvent) => {
1593
+ if (props.keyDownEvents && event.isPropagationStopped() !== true) {
1594
+ // $FlowFixMe - keyDownEvents was already checked to not be undefined
1595
+ for (const el of props.keyDownEvents) {
1596
+ if (
1597
+ event.nativeEvent.code === el.code &&
1598
+ el.handledEventPhase === eventPhase.Bubbling
1599
+ ) {
1600
+ event.stopPropagation();
1601
+ }
1602
+ }
1603
+ }
1604
+ props.onKeyDown && props.onKeyDown(event);
1605
+ };
1606
+
1607
+ const _keyUp = (event: KeyEvent) => {
1608
+ if (props.keyUpEvents && event.isPropagationStopped() !== true) {
1609
+ // $FlowFixMe - keyDownEvents was already checked to not be undefined
1610
+ for (const el of props.keyUpEvents) {
1611
+ if (event.nativeEvent.code === el.code && el.handledEventPhase === 3) {
1612
+ event.stopPropagation();
1613
+ }
1614
+ }
1615
+ }
1616
+ props.onKeyUp && props.onKeyUp(event);
1617
+ };
1618
+
1619
+ const _keyDownCapture = (event: KeyEvent) => {
1620
+ if (props.keyDownEvents && event.isPropagationStopped() !== true) {
1621
+ // $FlowFixMe - keyDownEvents was already checked to not be undefined
1622
+ for (const el of props.keyDownEvents) {
1623
+ if (event.nativeEvent.code === el.code && el.handledEventPhase === 1) {
1624
+ event.stopPropagation();
1625
+ }
1626
+ }
1627
+ }
1628
+ props.onKeyDownCapture && props.onKeyDownCapture(event);
1629
+ };
1630
+
1631
+ const _keyUpCapture = (event: KeyEvent) => {
1632
+ if (props.keyUpEvents && event.isPropagationStopped() !== true) {
1633
+ // $FlowFixMe - keyDownEvents was already checked to not be undefined
1634
+ for (const el of props.keyUpEvents) {
1635
+ if (event.nativeEvent.code === el.code && el.handledEventPhase === 1) {
1636
+ event.stopPropagation();
1637
+ }
1638
+ }
1639
+ }
1640
+ props.onKeyUpCapture && props.onKeyUpCapture(event);
1641
+ };
1642
+
1643
+ let _accessibilityState;
1644
+ if (
1645
+ accessibilityState != null ||
1646
+ ariaBusy != null ||
1647
+ ariaChecked != null ||
1648
+ ariaDisabled != null ||
1649
+ ariaExpanded != null ||
1650
+ ariaMultiselectable != null ||
1651
+ ariaRequired != null ||
1652
+ ariaSelected != null
1653
+ ) {
1654
+ _accessibilityState = {
1655
+ busy: ariaBusy ?? accessibilityState?.busy,
1656
+ checked: ariaChecked ?? accessibilityState?.checked,
1657
+ disabled: ariaDisabled ?? accessibilityState?.disabled,
1658
+ expanded: ariaExpanded ?? accessibilityState?.expanded,
1659
+ multiselectable:
1660
+ ariaMultiselectable ?? accessibilityState?.multiselectable, // Win32
1661
+ required: ariaRequired ?? accessibilityState?.required, // Win32
1662
+ selected: ariaSelected ?? accessibilityState?.selected,
1663
+ };
1664
+ }
1665
+
1666
+ // Keep the original (potentially nested) style when possible, as React can diff these more efficiently
1667
+ let _style = props.style;
1668
+ const flattenedStyle = flattenStyle<TextStyleProp>(props.style);
1669
+ if (flattenedStyle != null) {
1670
+ let overrides: ?{...TextStyleInternal} = null;
1671
+ if (typeof flattenedStyle?.fontWeight === 'number') {
1672
+ overrides = overrides || ({}: {...TextStyleInternal});
1673
+ overrides.fontWeight =
1674
+ // $FlowFixMe[incompatible-cast]
1675
+ (flattenedStyle.fontWeight.toString(): TextStyleInternal['fontWeight']);
1676
+ }
1677
+
1678
+ if (flattenedStyle.verticalAlign != null) {
1679
+ overrides = overrides || ({}: {...TextStyleInternal});
1680
+ overrides.textAlignVertical =
1681
+ verticalAlignToTextAlignVerticalMap[flattenedStyle.verticalAlign];
1682
+ overrides.verticalAlign = undefined;
1683
+ }
1684
+
1685
+ if (overrides != null) {
1686
+ // $FlowFixMe[incompatible-type]
1687
+ _style = [_style, overrides];
1688
+ }
1689
+ }
1690
+
1691
+ if (Platform.OS === 'ios') {
1692
+ const RCTTextInputView =
1693
+ props.multiline === true
1694
+ ? RCTMultilineTextInputView
1695
+ : RCTSinglelineTextInputView;
1696
+
1697
+ const useMultilineDefaultStyle =
1698
+ props.multiline === true &&
1699
+ (flattenedStyle == null ||
1700
+ (flattenedStyle.padding == null &&
1701
+ flattenedStyle.paddingVertical == null &&
1702
+ flattenedStyle.paddingTop == null));
1703
+
1704
+ textInput = (
1705
+ <RCTTextInputView
1706
+ // $FlowFixMe[incompatible-type] - Figure out imperative + forward refs.
1707
+ ref={ref}
1708
+ {...otherProps}
1709
+ {...eventHandlers}
1710
+ accessibilityErrorMessage={accessibilityErrorMessage}
1711
+ accessibilityState={_accessibilityState}
1712
+ accessible={accessible}
1713
+ submitBehavior={submitBehavior}
1714
+ caretHidden={caretHidden}
1715
+ dataDetectorTypes={props.dataDetectorTypes}
1716
+ focusable={tabIndex !== undefined ? !tabIndex : focusable}
1717
+ mostRecentEventCount={mostRecentEventCount}
1718
+ nativeID={id ?? props.nativeID}
1719
+ onBlur={_onBlur}
1720
+ onChange={_onChange}
1721
+ onContentSizeChange={props.onContentSizeChange}
1722
+ onFocus={_onFocus}
1723
+ onScroll={_onScroll}
1724
+ onSelectionChange={_onSelectionChange}
1725
+ onSelectionChangeShouldSetResponder={emptyFunctionThatReturnsTrue}
1726
+ selection={selection}
1727
+ selectionColor={selectionColor}
1728
+ style={StyleSheet.compose(
1729
+ useMultilineDefaultStyle ? styles.multilineDefault : null,
1730
+ _style,
1731
+ )}
1732
+ text={text}
1733
+ />
1734
+ );
1735
+ } else if (Platform.OS === 'android') {
1736
+ const autoCapitalize = props.autoCapitalize || 'sentences';
1737
+ const _accessibilityLabelledBy =
1738
+ props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy;
1739
+ const placeholder = props.placeholder ?? '';
1740
+ let children = props.children;
1741
+ const childCount = React.Children.count(children);
1742
+ invariant(
1743
+ !(props.value != null && childCount),
1744
+ 'Cannot specify both value and children.',
1745
+ );
1746
+ if (childCount > 1) {
1747
+ children = <Text>{children}</Text>;
1748
+ }
1749
+ // For consistency with iOS set cursor/selectionHandle color as selectionColor
1750
+ const colorProps = {
1751
+ selectionColor,
1752
+ selectionHandleColor:
1753
+ selectionHandleColor === undefined
1754
+ ? selectionColor
1755
+ : selectionHandleColor,
1756
+ cursorColor: cursorColor === undefined ? selectionColor : cursorColor,
1757
+ };
1758
+ textInput = (
1759
+ /* $FlowFixMe[prop-missing] the types for AndroidTextInput don't match up
1760
+ * exactly with the props for TextInput. This will need to get fixed */
1761
+ /* $FlowFixMe[incompatible-type] the types for AndroidTextInput don't
1762
+ * match up exactly with the props for TextInput. This will need to get
1763
+ * fixed */
1764
+ /* $FlowFixMe[incompatible-type-arg] the types for AndroidTextInput don't
1765
+ * match up exactly with the props for TextInput. This will need to get
1766
+ * fixed */
1767
+ <AndroidTextInput
1768
+ // $FlowFixMe[incompatible-type] - Figure out imperative + forward refs.
1769
+ ref={ref}
1770
+ {...otherProps}
1771
+ {...colorProps}
1772
+ {...eventHandlers}
1773
+ accessibilityErrorMessage={accessibilityErrorMessage}
1774
+ accessibilityState={_accessibilityState}
1775
+ accessibilityLabelledBy={_accessibilityLabelledBy}
1776
+ accessible={accessible}
1777
+ autoCapitalize={autoCapitalize}
1778
+ submitBehavior={submitBehavior}
1779
+ caretHidden={caretHidden}
1780
+ children={children}
1781
+ disableFullscreenUI={props.disableFullscreenUI}
1782
+ focusable={tabIndex !== undefined ? !tabIndex : focusable}
1783
+ mostRecentEventCount={mostRecentEventCount}
1784
+ nativeID={id ?? props.nativeID}
1785
+ numberOfLines={props.rows ?? props.numberOfLines}
1786
+ onBlur={_onBlur}
1787
+ onChange={_onChange}
1788
+ onFocus={_onFocus}
1789
+ /* $FlowFixMe[prop-missing] the types for AndroidTextInput don't match
1790
+ * up exactly with the props for TextInput. This will need to get fixed
1791
+ */
1792
+ /* $FlowFixMe[incompatible-type-arg] the types for AndroidTextInput
1793
+ * don't match up exactly with the props for TextInput. This will need
1794
+ * to get fixed */
1795
+ onScroll={_onScroll}
1796
+ onSelectionChange={_onSelectionChange}
1797
+ placeholder={placeholder}
1798
+ style={_style}
1799
+ text={text}
1800
+ textBreakStrategy={props.textBreakStrategy}
1801
+ />
1802
+ );
1803
+ } // [Windows
1804
+ else if (Platform.OS === 'win32') {
1805
+ textInput = (
1806
+ <WindowsTextInput
1807
+ // $FlowFixMe[incompatible-type] - Figure out imperative + forward refs.
1808
+ ref={ref}
1809
+ {...props}
1810
+ accessible={accessible}
1811
+ focusable={focusable}
1812
+ dataDetectorTypes={props.dataDetectorTypes}
1813
+ mostRecentEventCount={mostRecentEventCount}
1814
+ onBlur={_onBlur}
1815
+ onChange={_onChange}
1816
+ onContentSizeChange={props.onContentSizeChange}
1817
+ onFocus={_onFocus}
1818
+ onScroll={_onScroll}
1819
+ onSelectionChange={_onSelectionChange}
1820
+ onSelectionChangeShouldSetResponder={emptyFunctionThatReturnsTrue}
1821
+ selection={selection}
1822
+ text={text}
1823
+ onKeyDown={_keyDown}
1824
+ onKeyDownCapture={_keyDownCapture}
1825
+ onKeyUp={_keyUp}
1826
+ onKeyUpCapture={_keyUpCapture}
1827
+ />
1828
+ );
1829
+ } // Windows]
1830
+ return (
1831
+ <TextAncestor.Provider value={true}>{textInput}</TextAncestor.Provider>
1832
+ );
1833
+ }
1834
+
1835
+ const enterKeyHintToReturnTypeMap = {
1836
+ enter: 'default',
1837
+ done: 'done',
1838
+ go: 'go',
1839
+ next: 'next',
1840
+ previous: 'previous',
1841
+ search: 'search',
1842
+ send: 'send',
1843
+ };
1844
+
1845
+ const inputModeToKeyboardTypeMap = {
1846
+ none: 'default',
1847
+ text: 'default',
1848
+ decimal: 'decimal-pad',
1849
+ numeric: 'number-pad',
1850
+ tel: 'phone-pad',
1851
+ search: Platform.OS === 'ios' ? 'web-search' : 'default',
1852
+ email: 'email-address',
1853
+ url: 'url',
1854
+ };
1855
+
1856
+ // Map HTML autocomplete values to Android autoComplete values
1857
+ const autoCompleteWebToAutoCompleteAndroidMap = {
1858
+ 'address-line1': 'postal-address-region',
1859
+ 'address-line2': 'postal-address-locality',
1860
+ bday: 'birthdate-full',
1861
+ 'bday-day': 'birthdate-day',
1862
+ 'bday-month': 'birthdate-month',
1863
+ 'bday-year': 'birthdate-year',
1864
+ 'cc-csc': 'cc-csc',
1865
+ 'cc-exp': 'cc-exp',
1866
+ 'cc-exp-month': 'cc-exp-month',
1867
+ 'cc-exp-year': 'cc-exp-year',
1868
+ 'cc-number': 'cc-number',
1869
+ country: 'postal-address-country',
1870
+ 'current-password': 'password',
1871
+ email: 'email',
1872
+ 'honorific-prefix': 'name-prefix',
1873
+ 'honorific-suffix': 'name-suffix',
1874
+ name: 'name',
1875
+ 'additional-name': 'name-middle',
1876
+ 'family-name': 'name-family',
1877
+ 'given-name': 'name-given',
1878
+ 'new-password': 'password-new',
1879
+ off: 'off',
1880
+ 'one-time-code': 'sms-otp',
1881
+ 'postal-code': 'postal-code',
1882
+ sex: 'gender',
1883
+ 'street-address': 'street-address',
1884
+ tel: 'tel',
1885
+ 'tel-country-code': 'tel-country-code',
1886
+ 'tel-national': 'tel-national',
1887
+ username: 'username',
1888
+ };
1889
+
1890
+ // Map HTML autocomplete values to iOS textContentType values
1891
+ const autoCompleteWebToTextContentTypeMap = {
1892
+ 'address-line1': 'streetAddressLine1',
1893
+ 'address-line2': 'streetAddressLine2',
1894
+ bday: 'birthdate',
1895
+ 'bday-day': 'birthdateDay',
1896
+ 'bday-month': 'birthdateMonth',
1897
+ 'bday-year': 'birthdateYear',
1898
+ 'cc-csc': 'creditCardSecurityCode',
1899
+ 'cc-exp-month': 'creditCardExpirationMonth',
1900
+ 'cc-exp-year': 'creditCardExpirationYear',
1901
+ 'cc-exp': 'creditCardExpiration',
1902
+ 'cc-given-name': 'creditCardGivenName',
1903
+ 'cc-additional-name': 'creditCardMiddleName',
1904
+ 'cc-family-name': 'creditCardFamilyName',
1905
+ 'cc-name': 'creditCardName',
1906
+ 'cc-number': 'creditCardNumber',
1907
+ 'cc-type': 'creditCardType',
1908
+ 'current-password': 'password',
1909
+ country: 'countryName',
1910
+ email: 'emailAddress',
1911
+ name: 'name',
1912
+ 'additional-name': 'middleName',
1913
+ 'family-name': 'familyName',
1914
+ 'given-name': 'givenName',
1915
+ nickname: 'nickname',
1916
+ 'honorific-prefix': 'namePrefix',
1917
+ 'honorific-suffix': 'nameSuffix',
1918
+ 'new-password': 'newPassword',
1919
+ off: 'none',
1920
+ 'one-time-code': 'oneTimeCode',
1921
+ organization: 'organizationName',
1922
+ 'organization-title': 'jobTitle',
1923
+ 'postal-code': 'postalCode',
1924
+ 'street-address': 'fullStreetAddress',
1925
+ tel: 'telephoneNumber',
1926
+ url: 'URL',
1927
+ username: 'username',
1928
+ };
1929
+
1930
+ const ExportedForwardRef: React.AbstractComponent<
1931
+ React.ElementConfig<typeof InternalTextInput>,
1932
+ TextInputInstance,
1933
+ // $FlowFixMe[incompatible-call]
1934
+ > = React.forwardRef(function TextInput(
1935
+ {
1936
+ allowFontScaling = true,
1937
+ rejectResponderTermination = true,
1938
+ underlineColorAndroid = 'transparent',
1939
+ autoComplete,
1940
+ textContentType,
1941
+ readOnly,
1942
+ editable,
1943
+ enterKeyHint,
1944
+ returnKeyType,
1945
+ inputMode,
1946
+ showSoftInputOnFocus,
1947
+ keyboardType,
1948
+ ...restProps
1949
+ },
1950
+ forwardedRef: ReactRefSetter<TextInputInstance>,
1951
+ ) {
1952
+ return (
1953
+ <InternalTextInput
1954
+ allowFontScaling={allowFontScaling}
1955
+ rejectResponderTermination={rejectResponderTermination}
1956
+ underlineColorAndroid={underlineColorAndroid}
1957
+ editable={readOnly !== undefined ? !readOnly : editable}
1958
+ returnKeyType={
1959
+ enterKeyHint ? enterKeyHintToReturnTypeMap[enterKeyHint] : returnKeyType
1960
+ }
1961
+ keyboardType={
1962
+ inputMode ? inputModeToKeyboardTypeMap[inputMode] : keyboardType
1963
+ }
1964
+ showSoftInputOnFocus={
1965
+ inputMode == null ? showSoftInputOnFocus : inputMode !== 'none'
1966
+ }
1967
+ autoComplete={
1968
+ Platform.OS === 'android'
1969
+ ? // $FlowFixMe
1970
+ autoCompleteWebToAutoCompleteAndroidMap[autoComplete] ??
1971
+ autoComplete
1972
+ : undefined
1973
+ }
1974
+ textContentType={
1975
+ textContentType != null
1976
+ ? textContentType
1977
+ : Platform.OS === 'ios' &&
1978
+ autoComplete &&
1979
+ autoComplete in autoCompleteWebToTextContentTypeMap
1980
+ ? // $FlowFixMe[invalid-computed-prop]
1981
+ // $FlowFixMe[prop-missing]
1982
+ autoCompleteWebToTextContentTypeMap[autoComplete]
1983
+ : textContentType
1984
+ }
1985
+ {...restProps}
1986
+ forwardedRef={forwardedRef}
1987
+ />
1988
+ );
1989
+ });
1990
+
1991
+ ExportedForwardRef.displayName = 'TextInput';
1992
+
1993
+ // $FlowFixMe[prop-missing]
1994
+ ExportedForwardRef.State = {
1995
+ currentlyFocusedInput: TextInputState.currentlyFocusedInput,
1996
+
1997
+ currentlyFocusedField: TextInputState.currentlyFocusedField,
1998
+ focusTextInput: TextInputState.focusTextInput,
1999
+ blurTextInput: TextInputState.blurTextInput,
2000
+ };
2001
+
2002
+ export type TextInputComponentStatics = $ReadOnly<{|
2003
+ State: $ReadOnly<{|
2004
+ currentlyFocusedInput: typeof TextInputState.currentlyFocusedInput,
2005
+ currentlyFocusedField: typeof TextInputState.currentlyFocusedField,
2006
+ focusTextInput: typeof TextInputState.focusTextInput,
2007
+ blurTextInput: typeof TextInputState.blurTextInput,
2008
+ |}>,
2009
+ |}>;
2010
+
2011
+ const styles = StyleSheet.create({
2012
+ multilineDefault: {
2013
+ // This default top inset makes RCTMultilineTextInputView seem as close as possible
2014
+ // to single-line RCTSinglelineTextInputView defaults, using the system defaults
2015
+ // of font size 17 and a height of 31 points.
2016
+ paddingTop: 5,
2017
+ },
2018
+ });
2019
+
2020
+ const verticalAlignToTextAlignVerticalMap = {
2021
+ auto: 'auto',
2022
+ top: 'top',
2023
+ bottom: 'bottom',
2024
+ middle: 'center',
2025
+ };
2026
+
2027
+ // $FlowFixMe[unclear-type] Unclear type. Using `any` type is not safe.
2028
+ module.exports = ((ExportedForwardRef: any): TextInputType);