@office-iss/react-native-win32 0.0.0-canary.28 → 0.0.0-canary.280

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