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

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