@office-iss/react-native-win32 0.70.2 → 0.71.0-preview.1

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 (559) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +2 -0
  3. package/.flowconfig +3 -6
  4. package/CHANGELOG.json +281 -43
  5. package/CHANGELOG.md +105 -24
  6. package/IntegrationTests/AccessibilityManagerTest.js +1 -1
  7. package/IntegrationTests/AppEventsTest.js +0 -1
  8. package/IntegrationTests/BUCK +0 -1
  9. package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +1 -1
  10. package/IntegrationTests/ImageSnapshotTest.js +1 -1
  11. package/IntegrationTests/IntegrationTestsApp.js +2 -3
  12. package/IntegrationTests/SimpleSnapshotTest.js +1 -1
  13. package/IntegrationTests/SyncMethodTest.js +1 -1
  14. package/IntegrationTests/TimersTest.js +4 -4
  15. package/IntegrationTests/WebSocketTest.js +3 -3
  16. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +80 -0
  17. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +4 -3
  18. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  19. package/Libraries/Alert/Alert.d.ts +90 -0
  20. package/Libraries/Alert/Alert.js +7 -1
  21. package/Libraries/Alert/Alert.win32.js +1 -0
  22. package/Libraries/Alert/NativeAlertManager.js +2 -0
  23. package/Libraries/Alert/RCTAlertManager.ios.js +2 -1
  24. package/Libraries/Animated/Animated.d.ts +587 -0
  25. package/Libraries/Animated/Animated.js +13 -11
  26. package/Libraries/Animated/AnimatedEvent.js +12 -17
  27. package/Libraries/Animated/AnimatedImplementation.js +21 -23
  28. package/Libraries/Animated/AnimatedMock.js +11 -13
  29. package/Libraries/Animated/AnimatedWeb.js +2 -2
  30. package/Libraries/Animated/Easing.d.ts +37 -0
  31. package/Libraries/Animated/Easing.js +2 -2
  32. package/Libraries/Animated/NativeAnimatedHelper.js +32 -22
  33. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  34. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  35. package/Libraries/Animated/SpringConfig.js +2 -7
  36. package/Libraries/Animated/animations/Animation.js +3 -4
  37. package/Libraries/Animated/animations/DecayAnimation.js +5 -8
  38. package/Libraries/Animated/animations/SpringAnimation.js +9 -14
  39. package/Libraries/Animated/animations/TimingAnimation.js +9 -13
  40. package/Libraries/Animated/bezier.js +2 -2
  41. package/Libraries/Animated/components/AnimatedFlatList.js +5 -6
  42. package/Libraries/Animated/components/AnimatedImage.js +5 -6
  43. package/Libraries/Animated/components/AnimatedScrollView.js +110 -14
  44. package/Libraries/Animated/components/AnimatedSectionList.js +4 -5
  45. package/Libraries/Animated/components/AnimatedText.js +5 -6
  46. package/Libraries/Animated/components/AnimatedView.js +5 -6
  47. package/Libraries/Animated/createAnimatedComponent.js +13 -20
  48. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +2 -2
  49. package/Libraries/Animated/nodes/AnimatedAddition.js +6 -8
  50. package/Libraries/Animated/nodes/AnimatedColor.js +7 -7
  51. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +6 -8
  52. package/Libraries/Animated/nodes/AnimatedDivision.js +7 -9
  53. package/Libraries/Animated/nodes/AnimatedInterpolation.js +7 -10
  54. package/Libraries/Animated/nodes/AnimatedModulo.js +6 -8
  55. package/Libraries/Animated/nodes/AnimatedMultiplication.js +7 -9
  56. package/Libraries/Animated/nodes/AnimatedNode.js +10 -8
  57. package/Libraries/Animated/nodes/AnimatedProps.js +12 -30
  58. package/Libraries/Animated/nodes/AnimatedStyle.js +12 -22
  59. package/Libraries/Animated/nodes/AnimatedSubtraction.js +7 -9
  60. package/Libraries/Animated/nodes/AnimatedTracking.js +8 -12
  61. package/Libraries/Animated/nodes/AnimatedTransform.js +38 -31
  62. package/Libraries/Animated/nodes/AnimatedValue.js +9 -10
  63. package/Libraries/Animated/nodes/AnimatedValueXY.js +4 -7
  64. package/Libraries/Animated/nodes/AnimatedWithChildren.js +4 -5
  65. package/Libraries/Animated/useAnimatedProps.js +8 -16
  66. package/Libraries/Animated/useAnimatedValue.d.ts +15 -0
  67. package/Libraries/Animated/useAnimatedValue.js +25 -0
  68. package/Libraries/AppState/AppState.d.ts +58 -0
  69. package/Libraries/AppState/AppState.js +3 -7
  70. package/Libraries/AppState/NativeAppState.js +1 -0
  71. package/Libraries/BatchedBridge/MessageQueue.js +9 -5
  72. package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
  73. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  74. package/Libraries/Blob/BlobManager.js +5 -3
  75. package/Libraries/Blob/File.js +2 -3
  76. package/Libraries/Blob/FileReader.js +6 -5
  77. package/Libraries/Blob/NativeBlobModule.js +1 -0
  78. package/Libraries/Blob/NativeFileReaderModule.js +1 -0
  79. package/Libraries/Blob/URL.js +11 -9
  80. package/Libraries/BugReporting/NativeBugReporting.js +1 -0
  81. package/Libraries/BugReporting/getReactData.js +1 -1
  82. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +128 -0
  83. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +208 -0
  84. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +40 -8
  85. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +40 -8
  86. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -0
  87. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +5 -0
  88. package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
  89. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +58 -0
  90. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +7 -8
  91. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
  92. package/Libraries/Components/Button.d.ts +42 -0
  93. package/Libraries/Components/Button.flow.js +265 -0
  94. package/Libraries/Components/Button.js +62 -18
  95. package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
  96. package/Libraries/Components/Clipboard/NativeClipboard.js +1 -0
  97. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +4 -2
  98. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +92 -0
  99. package/Libraries/Components/{MaskedView/MaskedViewIOS.android.js → DatePicker/DatePickerIOS.flow.android.js} +3 -2
  100. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +113 -0
  101. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +8 -7
  102. package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +4 -2
  103. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +7 -6
  104. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +1 -0
  105. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +9 -8
  106. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +13 -14
  107. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
  108. package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
  109. package/Libraries/Components/Keyboard/Keyboard.js +35 -8
  110. package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
  111. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +35 -15
  112. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -0
  113. package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
  114. package/Libraries/Components/Pressable/Pressable.js +73 -15
  115. package/Libraries/Components/Pressable/Pressable.win32.js +77 -19
  116. package/Libraries/Components/Pressable/useAndroidRippleForView.js +6 -3
  117. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +3 -3
  118. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
  119. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
  120. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +1 -1
  121. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +62 -0
  122. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +4 -4
  123. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +1 -1
  124. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +2 -2
  125. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +5 -6
  126. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +4 -4
  127. package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
  128. package/Libraries/Components/RefreshControl/RefreshControl.js +4 -3
  129. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +2 -3
  130. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -1
  131. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +24 -0
  132. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +19 -0
  133. package/Libraries/Components/SafeAreaView/SafeAreaView.js +5 -4
  134. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +5 -4
  135. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -1
  136. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +2 -1
  137. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +2 -1
  138. package/Libraries/Components/ScrollView/ScrollView.d.ts +911 -0
  139. package/Libraries/Components/ScrollView/ScrollView.js +87 -52
  140. package/Libraries/Components/ScrollView/ScrollViewCommands.js +3 -3
  141. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +2 -1
  142. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +3 -3
  143. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +243 -269
  144. package/Libraries/Components/Slider/Slider.d.ts +132 -0
  145. package/Libraries/Components/Slider/Slider.js +9 -9
  146. package/Libraries/Components/Slider/SliderNativeComponent.js +4 -5
  147. package/Libraries/Components/Sound/NativeSoundManager.js +1 -0
  148. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -0
  149. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -0
  150. package/Libraries/Components/StatusBar/StatusBar.d.ts +138 -0
  151. package/Libraries/Components/StatusBar/StatusBar.js +7 -7
  152. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +10 -10
  153. package/Libraries/Components/Switch/Switch.d.ts +115 -0
  154. package/Libraries/Components/Switch/Switch.js +7 -7
  155. package/Libraries/Components/Switch/SwitchNativeComponent.js +9 -4
  156. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +40 -12
  157. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
  158. package/Libraries/Components/TextInput/InputAccessoryView.js +3 -4
  159. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -1
  160. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +3 -2
  161. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +3 -2
  162. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -1
  163. package/Libraries/Components/TextInput/TextInput.d.ts +840 -0
  164. package/Libraries/Components/TextInput/TextInput.flow.js +1057 -0
  165. package/Libraries/Components/TextInput/TextInput.js +344 -38
  166. package/Libraries/Components/TextInput/TextInput.win32.d.ts +1 -1
  167. package/Libraries/Components/TextInput/TextInput.win32.js +1 -1
  168. package/Libraries/Components/TextInput/TextInput.win32.js.map +1 -1
  169. package/Libraries/Components/TextInput/TextInputNativeCommands.js +2 -2
  170. package/Libraries/Components/TextInput/TextInputState.js +22 -5
  171. package/Libraries/Components/TextInput/TextInputState.win32.js +24 -5
  172. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -0
  173. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +47 -0
  174. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
  175. package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
  176. package/Libraries/Components/Touchable/Touchable.flow.js +258 -0
  177. package/Libraries/Components/Touchable/Touchable.js +12 -12
  178. package/Libraries/Components/Touchable/Touchable.win32.js +12 -12
  179. package/Libraries/Components/Touchable/TouchableBounce.js +44 -10
  180. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +68 -0
  181. package/Libraries/Components/Touchable/TouchableHighlight.js +32 -9
  182. package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +114 -0
  183. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +54 -20
  184. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +109 -0
  185. package/Libraries/Components/Touchable/TouchableOpacity.js +54 -16
  186. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +2 -1
  187. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
  188. package/Libraries/Components/Touchable/TouchableWin32.js +0 -1
  189. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
  190. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +143 -0
  191. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +64 -10
  192. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -1
  193. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  194. package/Libraries/Components/View/ReactNativeStyleAttributes.js +13 -2
  195. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -0
  196. package/Libraries/Components/View/View.d.ts +29 -0
  197. package/Libraries/Components/View/View.js +91 -8
  198. package/Libraries/Components/View/View.win32.js +176 -89
  199. package/Libraries/Components/View/ViewAccessibility.d.ts +360 -0
  200. package/Libraries/Components/View/ViewAccessibility.js +70 -1
  201. package/Libraries/Components/View/ViewNativeComponent.js +3 -3
  202. package/Libraries/Components/View/ViewPropTypes.d.ts +245 -0
  203. package/Libraries/Components/View/ViewPropTypes.js +105 -13
  204. package/Libraries/Components/View/ViewPropTypes.win32.js +105 -13
  205. package/Libraries/Components/View/ViewWin32.Props.d.ts +6 -1
  206. package/Libraries/Components/View/ViewWin32.Props.js.map +1 -1
  207. package/Libraries/Core/Devtools/openFileInEditor.js +3 -0
  208. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  209. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  210. package/Libraries/Core/ExceptionsManager.js +8 -0
  211. package/Libraries/Core/ExtendedError.js +11 -8
  212. package/Libraries/Core/InitializeCore.js +2 -1
  213. package/Libraries/Core/NativeExceptionsManager.js +3 -4
  214. package/Libraries/Core/RawEventEmitter.js +2 -1
  215. package/Libraries/Core/ReactFiberErrorDialog.js +2 -2
  216. package/Libraries/Core/ReactNativeVersion.js +2 -2
  217. package/Libraries/Core/ReactNativeVersionCheck.js +1 -0
  218. package/Libraries/Core/ReactNativeVersionCheck.win32.js +1 -0
  219. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
  220. package/Libraries/Core/Timers/JSTimers.js +13 -11
  221. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  222. package/Libraries/Core/setUpBatchedBridge.js +1 -5
  223. package/Libraries/Core/setUpDeveloperTools.js +4 -6
  224. package/Libraries/Core/setUpReactDevTools.js +4 -1
  225. package/Libraries/Core/setUpRegeneratorRuntime.js +1 -1
  226. package/Libraries/Core/setUpTimers.js +1 -1
  227. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +70 -0
  228. package/Libraries/EventEmitter/NativeEventEmitter.js +1 -0
  229. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +30 -0
  230. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  231. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
  232. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +1 -0
  233. package/Libraries/Events/EventPolyfill.js +1 -1
  234. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +1 -0
  235. package/Libraries/Image/AssetSourceResolver.js +4 -6
  236. package/Libraries/Image/Image.android.js +63 -45
  237. package/Libraries/Image/Image.d.ts +322 -0
  238. package/Libraries/Image/Image.flow.js +64 -0
  239. package/Libraries/Image/Image.ios.js +55 -28
  240. package/Libraries/Image/Image.win32.js +54 -25
  241. package/Libraries/Image/ImageBackground.js +18 -7
  242. package/Libraries/Image/ImageInjection.js +2 -1
  243. package/Libraries/Image/ImageProps.js +88 -5
  244. package/Libraries/Image/ImageResizeMode.d.ts +49 -0
  245. package/Libraries/Image/ImageSource.d.ts +76 -0
  246. package/Libraries/Image/ImageSourceUtils.js +80 -0
  247. package/Libraries/Image/ImageUtils.js +21 -0
  248. package/Libraries/Image/ImageViewNativeComponent.js +8 -5
  249. package/Libraries/Image/NativeImageEditor.js +1 -0
  250. package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
  251. package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
  252. package/Libraries/Image/NativeImageLoaderWin32.js +1 -0
  253. package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
  254. package/Libraries/Image/NativeImageStoreIOS.js +1 -0
  255. package/Libraries/Image/TextInlineImageNativeComponent.js +4 -3
  256. package/Libraries/Image/nativeImageSource.js +2 -2
  257. package/Libraries/Image/resolveAssetSource.js +5 -5
  258. package/Libraries/Inspector/BorderBox.js +1 -1
  259. package/Libraries/Inspector/BoxInspector.js +3 -4
  260. package/Libraries/Inspector/DevtoolsOverlay.js +213 -0
  261. package/Libraries/Inspector/ElementBox.js +4 -5
  262. package/Libraries/Inspector/ElementProperties.js +10 -11
  263. package/Libraries/Inspector/Inspector.js +22 -108
  264. package/Libraries/Inspector/Inspector.win32.js +23 -109
  265. package/Libraries/Inspector/InspectorOverlay.js +5 -5
  266. package/Libraries/Inspector/InspectorOverlay.win32.js +5 -5
  267. package/Libraries/Inspector/InspectorPanel.js +12 -10
  268. package/Libraries/Inspector/NetworkOverlay.js +7 -3
  269. package/Libraries/Inspector/PerformanceOverlay.js +3 -3
  270. package/Libraries/Inspector/StyleInspector.js +2 -2
  271. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +71 -0
  272. package/Libraries/Interaction/BridgeSpyStallHandler.js +1 -1
  273. package/Libraries/Interaction/InteractionManager.d.ts +74 -0
  274. package/Libraries/Interaction/InteractionManager.js +8 -8
  275. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
  276. package/Libraries/Interaction/PanResponder.d.ts +202 -0
  277. package/Libraries/Interaction/PanResponder.flow.js +257 -0
  278. package/Libraries/Interaction/PanResponder.js +4 -3
  279. package/Libraries/JSInspector/JSInspector.js +0 -3
  280. package/Libraries/JSInspector/NetworkAgent.js +3 -3
  281. package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
  282. package/Libraries/LayoutAnimation/LayoutAnimation.js +4 -3
  283. package/Libraries/Linking/Linking.d.ts +61 -0
  284. package/Libraries/Linking/Linking.js +3 -2
  285. package/Libraries/Linking/NativeIntentAndroid.js +1 -0
  286. package/Libraries/Linking/NativeLinkingManager.js +1 -0
  287. package/Libraries/Lists/CellRenderMask.js +13 -3
  288. package/Libraries/Lists/ChildListCollection.js +72 -0
  289. package/Libraries/Lists/FillRateHelper.js +28 -17
  290. package/Libraries/Lists/FlatList.d.ts +292 -0
  291. package/Libraries/Lists/FlatList.js +70 -70
  292. package/Libraries/Lists/SectionList.d.ts +300 -0
  293. package/Libraries/Lists/SectionList.js +5 -5
  294. package/Libraries/Lists/SectionListModern.js +6 -6
  295. package/Libraries/Lists/StateSafePureComponent.js +85 -0
  296. package/Libraries/Lists/ViewabilityHelper.js +33 -12
  297. package/Libraries/Lists/VirtualizeUtils.js +17 -13
  298. package/Libraries/Lists/VirtualizedList.d.ts +317 -0
  299. package/Libraries/Lists/VirtualizedList.js +548 -890
  300. package/Libraries/Lists/VirtualizedListCellRenderer.js +259 -0
  301. package/Libraries/Lists/VirtualizedListContext.js +7 -48
  302. package/Libraries/Lists/VirtualizedListProps.js +279 -0
  303. package/Libraries/Lists/VirtualizedSectionList.js +6 -3
  304. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  305. package/Libraries/LogBox/Data/LogBoxData.js +9 -8
  306. package/Libraries/LogBox/Data/LogBoxLog.js +5 -5
  307. package/Libraries/LogBox/Data/LogBoxSymbolication.js +4 -4
  308. package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -3
  309. package/Libraries/LogBox/LogBox.d.ts +28 -0
  310. package/Libraries/LogBox/LogBox.js +11 -11
  311. package/Libraries/LogBox/LogBoxInspectorContainer.js +5 -3
  312. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  313. package/Libraries/LogBox/UI/AnsiHighlight.js +5 -3
  314. package/Libraries/LogBox/UI/LogBoxButton.js +6 -5
  315. package/Libraries/LogBox/UI/LogBoxInspector.js +6 -6
  316. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +9 -8
  317. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +3 -3
  318. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +7 -6
  319. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +6 -5
  320. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +6 -5
  321. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +7 -6
  322. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
  323. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -3
  324. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +5 -5
  325. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +5 -5
  326. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +5 -5
  327. package/Libraries/LogBox/UI/LogBoxMessage.js +3 -3
  328. package/Libraries/LogBox/UI/LogBoxNotification.js +6 -5
  329. package/Libraries/Modal/Modal.d.ts +104 -0
  330. package/Libraries/Modal/Modal.js +14 -14
  331. package/Libraries/Modal/NativeModalManager.js +1 -0
  332. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -3
  333. package/Libraries/NativeComponent/BaseViewConfig.android.js +27 -2
  334. package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -3
  335. package/Libraries/NativeComponent/BaseViewConfig.win32.js +8 -3
  336. package/Libraries/NativeComponent/NativeComponentRegistry.js +5 -4
  337. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -0
  338. package/Libraries/NativeComponent/StaticViewConfigValidator.js +1 -1
  339. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  340. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +1 -0
  341. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
  342. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
  343. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
  344. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
  345. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -2
  346. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
  347. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
  348. package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
  349. package/Libraries/Network/NativeNetworkingIOS.js +1 -0
  350. package/Libraries/Network/RCTNetworking.android.js +4 -3
  351. package/Libraries/Network/RCTNetworking.ios.js +3 -2
  352. package/Libraries/Network/RCTNetworking.win32.js +1 -0
  353. package/Libraries/Network/convertRequestBody.js +1 -2
  354. package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -1
  355. package/Libraries/NewAppScreen/components/Header.js +6 -2
  356. package/Libraries/NewAppScreen/components/HermesBadge.js +6 -2
  357. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +8 -9
  358. package/Libraries/NewAppScreen/components/ReloadInstructions.js +4 -1
  359. package/Libraries/NewAppScreen/index.js +1 -1
  360. package/Libraries/Performance/NativeJSCSamplingProfiler.js +1 -0
  361. package/Libraries/Performance/QuickPerformanceLogger.js +34 -10
  362. package/Libraries/Performance/Systrace.d.ts +66 -0
  363. package/Libraries/Performance/Systrace.js +110 -195
  364. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  365. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +115 -0
  366. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +5 -4
  367. package/Libraries/Pressability/Pressability.js +12 -10
  368. package/Libraries/Pressability/Pressability.win32.js +9 -7
  369. package/Libraries/Pressability/PressabilityDebug.js +2 -2
  370. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  371. package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +275 -0
  372. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +19 -14
  373. package/Libraries/ReactNative/AppContainer.js +17 -7
  374. package/Libraries/ReactNative/AppRegistry.d.ts +68 -0
  375. package/Libraries/ReactNative/AppRegistry.js +11 -14
  376. package/Libraries/ReactNative/BridgelessUIManager.js +4 -3
  377. package/Libraries/ReactNative/FabricUIManager.js +3 -3
  378. package/Libraries/ReactNative/I18nManager.d.ts +25 -0
  379. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
  380. package/Libraries/ReactNative/NativeI18nManager.js +1 -0
  381. package/Libraries/ReactNative/NativeUIManager.js +1 -0
  382. package/Libraries/ReactNative/PaperUIManager.js +2 -2
  383. package/Libraries/ReactNative/PaperUIManager.win32.js +1 -1
  384. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +9 -0
  385. package/Libraries/ReactNative/RendererImplementation.js +112 -0
  386. package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
  387. package/Libraries/ReactNative/RendererProxy.js +26 -0
  388. package/Libraries/ReactNative/RootTag.js +0 -1
  389. package/Libraries/ReactNative/UIManager.d.ts +157 -0
  390. package/Libraries/ReactNative/UIManager.js +1 -1
  391. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -0
  392. package/Libraries/ReactNative/renderApplication.js +38 -20
  393. package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
  394. package/Libraries/ReactNative/requireNativeComponent.js +2 -2
  395. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +10 -9
  396. package/Libraries/Renderer/implementations/ReactFabric-dev.js +312 -217
  397. package/Libraries/Renderer/implementations/ReactFabric-prod.js +212 -177
  398. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +248 -213
  399. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +311 -218
  400. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +226 -196
  401. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +262 -232
  402. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +149 -0
  403. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  404. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  405. package/Libraries/Renderer/shims/ReactNative.js +2 -2
  406. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +141 -0
  407. package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -22
  408. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +8 -8
  409. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  410. package/Libraries/Settings/NativeSettingsManager.js +1 -0
  411. package/Libraries/Settings/Settings.d.ts +18 -0
  412. package/Libraries/Share/NativeShareModule.js +1 -0
  413. package/Libraries/Share/Share.d.ts +80 -0
  414. package/Libraries/Share/Share.js +7 -5
  415. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  416. package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
  417. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  418. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
  419. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -0
  420. package/Libraries/StyleSheet/StyleSheet.d.ts +156 -0
  421. package/Libraries/StyleSheet/StyleSheet.js +15 -11
  422. package/Libraries/StyleSheet/StyleSheet.win32.js +16 -12
  423. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +332 -0
  424. package/Libraries/StyleSheet/StyleSheetTypes.js +101 -24
  425. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +2 -2
  426. package/Libraries/StyleSheet/normalizeColor.js +3 -3
  427. package/Libraries/StyleSheet/private/_TransformStyle.js +26 -24
  428. package/Libraries/StyleSheet/processAspectRatio.js +53 -0
  429. package/Libraries/StyleSheet/processColor.d.ts +16 -0
  430. package/Libraries/StyleSheet/processColor.js +3 -4
  431. package/Libraries/StyleSheet/processColorArray.js +1 -0
  432. package/Libraries/StyleSheet/processFontVariant.js +30 -0
  433. package/Libraries/StyleSheet/processTransform.js +114 -105
  434. package/Libraries/StyleSheet/splitLayoutProps.js +5 -0
  435. package/Libraries/Text/Text.d.ts +209 -0
  436. package/Libraries/Text/Text.js +94 -12
  437. package/Libraries/Text/TextNativeComponent.js +49 -41
  438. package/Libraries/Text/TextNativeComponent.win32.js +67 -48
  439. package/Libraries/Text/TextProps.js +64 -7
  440. package/Libraries/{Components/MaskedView/MaskedViewIOS.win32.js → TurboModule/RCTExport.d.ts} +3 -4
  441. package/Libraries/TurboModule/TurboModuleRegistry.d.ts +15 -0
  442. package/Libraries/TurboModule/TurboModuleRegistry.js +3 -1
  443. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
  444. package/Libraries/Types/CoreEventTypes.d.ts +263 -0
  445. package/Libraries/Types/CoreEventTypes.js +2 -1
  446. package/Libraries/Types/CoreEventTypes.win32.js +2 -1
  447. package/Libraries/Utilities/AcessibilityMapping.js +154 -0
  448. package/Libraries/Utilities/Appearance.d.ts +43 -0
  449. package/Libraries/Utilities/Appearance.js +3 -3
  450. package/Libraries/Utilities/BackHandler.android.js +3 -5
  451. package/Libraries/Utilities/BackHandler.d.ts +38 -0
  452. package/Libraries/Utilities/BackHandler.win32.js +3 -5
  453. package/Libraries/Utilities/DevSettings.d.ts +32 -0
  454. package/Libraries/Utilities/DevSettings.js +4 -2
  455. package/Libraries/Utilities/Dimensions.d.ts +79 -0
  456. package/Libraries/Utilities/Dimensions.js +2 -2
  457. package/Libraries/Utilities/Dimensions.win32.js +2 -2
  458. package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -1
  459. package/Libraries/Utilities/HMRClient.js +23 -8
  460. package/Libraries/Utilities/LoadingView.ios.js +1 -1
  461. package/Libraries/Utilities/NativeAppearance.js +1 -0
  462. package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
  463. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +1 -0
  464. package/Libraries/Utilities/NativeDeviceInfo.js +1 -0
  465. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  466. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  467. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  468. package/Libraries/Utilities/PerformanceLoggerContext.js +3 -2
  469. package/Libraries/Utilities/PixelRatio.d.ts +64 -0
  470. package/Libraries/Utilities/Platform.android.js +11 -5
  471. package/Libraries/Utilities/Platform.d.ts +102 -0
  472. package/Libraries/Utilities/Platform.ios.js +12 -5
  473. package/Libraries/Utilities/Platform.win32.js +11 -5
  474. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  475. package/Libraries/Utilities/ReactNativeTestTools.js +9 -15
  476. package/Libraries/Utilities/codegenNativeCommands.js +1 -10
  477. package/Libraries/Utilities/codegenNativeComponent.js +4 -1
  478. package/Libraries/Utilities/createPerformanceLogger.js +7 -8
  479. package/Libraries/Utilities/differ/deepDiffer.js +1 -1
  480. package/Libraries/Utilities/groupByEveryN.js +1 -1
  481. package/Libraries/Utilities/stringifySafe.js +3 -1
  482. package/Libraries/Utilities/useColorScheme.js +3 -2
  483. package/Libraries/Utilities/useRefEffect.js +1 -1
  484. package/Libraries/Vibration/NativeVibration.js +1 -0
  485. package/Libraries/Vibration/Vibration.d.ts +43 -0
  486. package/Libraries/Vibration/Vibration.js +1 -0
  487. package/Libraries/WebPerformance/NativePerformanceObserver.js +41 -0
  488. package/Libraries/WebPerformance/PerformanceObserver.js +223 -0
  489. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
  490. package/Libraries/WebSocket/WebSocket.js +11 -3
  491. package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
  492. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
  493. package/Libraries/YellowBox/YellowBoxDeprecated.js +2 -3
  494. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +2 -1
  495. package/Libraries/__tests__/ButtonWin32-test.js +16 -0
  496. package/Libraries/platform-types.d.ts +25 -0
  497. package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
  498. package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
  499. package/babel.config.js +3 -0
  500. package/flow/jest.js +2 -2
  501. package/flow-typed/npm/{react-dom_v16.x.x.js → react-dom_v17.x.x.js} +58 -31
  502. package/flow-typed/npm/yargs_v17.x.x.js +341 -0
  503. package/index.js +89 -55
  504. package/index.win32.js +89 -55
  505. package/interface.js +8 -0
  506. package/jest/react-native-env.js +18 -0
  507. package/jest/renderer.js +2 -2
  508. package/jest/setup.js +7 -9
  509. package/jest.config.js +9 -2
  510. package/overrides.json +40 -101
  511. package/package.json +34 -33
  512. package/src/Libraries/Components/TextInput/TextInput.win32.tsx +2 -1
  513. package/src/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +2 -2
  514. package/src/Libraries/Components/Touchable/TouchableWin32.Props.tsx +2 -1
  515. package/src/Libraries/Components/Touchable/TouchableWin32.tsx +1 -1
  516. package/src/Libraries/Components/View/ViewWin32.Props.ts +10 -1
  517. package/src/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +22 -0
  518. package/src/Libraries/platform-types.d.ts +25 -0
  519. package/types/index.d.ts +215 -0
  520. package/IntegrationTests/AsyncStorageTest.js +0 -261
  521. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +0 -93
  522. package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +0 -21
  523. package/Libraries/Core/setUpSystrace.js +0 -21
  524. package/Libraries/Image/ImagePickerIOS.js +0 -103
  525. package/Libraries/Image/NativeImagePickerIOS.js +0 -38
  526. package/Libraries/Lists/VirtualizedList.win32.js +0 -9
  527. package/Libraries/Lists/__tests__/CellRenderMask-test.js +0 -179
  528. package/Libraries/Lists/__tests__/FillRateHelper-test.js +0 -120
  529. package/Libraries/Lists/__tests__/FlatList-test.js +0 -155
  530. package/Libraries/Lists/__tests__/SectionList-test.js +0 -109
  531. package/Libraries/Lists/__tests__/ViewabilityHelper-test.js +0 -440
  532. package/Libraries/Lists/__tests__/VirtualizeUtils-test.js +0 -91
  533. package/Libraries/Lists/__tests__/VirtualizedList-test.js +0 -1587
  534. package/Libraries/Lists/__tests__/VirtualizedSectionList-test.js +0 -269
  535. package/Libraries/Storage/AsyncStorage.js +0 -385
  536. package/Libraries/Storage/NativeAsyncLocalStorage.js +0 -44
  537. package/Libraries/Storage/NativeAsyncSQLiteDBStorage.js +0 -44
  538. package/Libraries/Utilities/JSDevSupportModule.js +0 -37
  539. package/Libraries/Utilities/NativeJSDevSupport.js +0 -23
  540. package/rntypes/BatchedBridge.d.ts +0 -23
  541. package/rntypes/Devtools.d.ts +0 -20
  542. package/rntypes/LaunchScreen.d.ts +0 -9
  543. package/rntypes/globals.d.ts +0 -497
  544. package/rntypes/index.d.ts +0 -9754
  545. package/rntypes/legacy-properties.d.ts +0 -238
  546. package/src/Libraries/Lists/__tests__/__snapshots__/FlatList-test.js.snap +0 -427
  547. package/src/Libraries/Lists/__tests__/__snapshots__/SectionList-test.js.snap +0 -391
  548. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap +0 -4565
  549. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedSectionList-test.js.snap +0 -1153
  550. package/src/rntypes/BatchedBridge.d.ts +0 -23
  551. package/src/rntypes/Devtools.d.ts +0 -20
  552. package/src/rntypes/LaunchScreen.d.ts +0 -9
  553. package/src/rntypes/globals.d.ts +0 -497
  554. package/src/rntypes/index.d.ts +0 -9754
  555. package/src/rntypes/legacy-properties.d.ts +0 -238
  556. package/src/typings-index.ts +0 -37
  557. package/typings-index.d.ts +0 -23
  558. package/typings-index.js +0 -47
  559. package/typings-index.js.map +0 -1
@@ -8,30 +8,30 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import * as React from 'react';
11
+ import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
12
+ import type {
13
+ PressEvent,
14
+ ScrollEvent,
15
+ SyntheticEvent,
16
+ } from '../../Types/CoreEventTypes';
17
+ import type {ViewProps} from '../View/ViewPropTypes';
18
+ import type {TextInputType} from './TextInput.flow';
12
19
 
13
- import Platform from '../../Utilities/Platform';
20
+ import usePressability from '../../Pressability/usePressability';
21
+ import flattenStyle from '../../StyleSheet/flattenStyle';
14
22
  import StyleSheet, {
23
+ type ColorValue,
15
24
  type TextStyleProp,
16
25
  type ViewStyleProp,
17
- type ColorValue,
18
26
  } from '../../StyleSheet/StyleSheet';
19
27
  import Text from '../../Text/Text';
20
28
  import TextAncestor from '../../Text/TextAncestor';
29
+ import Platform from '../../Utilities/Platform';
30
+ import setAndForwardRef from '../../Utilities/setAndForwardRef';
21
31
  import TextInputState from './TextInputState';
22
32
  import invariant from 'invariant';
23
33
  import nullthrows from 'nullthrows';
24
- import setAndForwardRef from '../../Utilities/setAndForwardRef';
25
-
26
- import usePressability from '../../Pressability/usePressability';
27
-
28
- import type {ViewProps} from '../View/ViewPropTypes';
29
- import type {
30
- SyntheticEvent,
31
- ScrollEvent,
32
- PressEvent,
33
- } from '../../Types/CoreEventTypes';
34
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
34
+ import * as React from 'react';
35
35
 
36
36
  const {useLayoutEffect, useRef, useState} = React;
37
37
 
@@ -155,6 +155,16 @@ export type KeyboardType =
155
155
  // Android-only
156
156
  | 'visible-password';
157
157
 
158
+ export type InputMode =
159
+ | 'none'
160
+ | 'text'
161
+ | 'decimal'
162
+ | 'numeric'
163
+ | 'tel'
164
+ | 'search'
165
+ | 'email'
166
+ | 'url';
167
+
158
168
  export type ReturnKeyType =
159
169
  // Cross Platform
160
170
  | 'done'
@@ -173,6 +183,8 @@ export type ReturnKeyType =
173
183
  | 'route'
174
184
  | 'yahoo';
175
185
 
186
+ export type SubmitBehavior = 'submit' | 'blurAndSubmit' | 'newline';
187
+
176
188
  export type AutoCapitalize = 'none' | 'sentences' | 'words' | 'characters';
177
189
 
178
190
  export type TextContentType =
@@ -205,9 +217,48 @@ export type TextContentType =
205
217
  | 'newPassword'
206
218
  | 'oneTimeCode';
207
219
 
220
+ export type enterKeyHintType =
221
+ | 'enter'
222
+ | 'done'
223
+ | 'go'
224
+ | 'next'
225
+ | 'previous'
226
+ | 'search'
227
+ | 'send';
228
+
208
229
  type PasswordRules = string;
209
230
 
210
231
  type IOSProps = $ReadOnly<{|
232
+ /**
233
+ * Give the keyboard and the system information about the
234
+ * expected semantic meaning for the content that users enter.
235
+ * @platform ios
236
+ */
237
+ autoComplete?: ?(
238
+ | 'address-line1'
239
+ | 'address-line2'
240
+ | 'cc-number'
241
+ | 'current-password'
242
+ | 'country'
243
+ | 'email'
244
+ | 'name'
245
+ | 'additional-name'
246
+ | 'family-name'
247
+ | 'given-name'
248
+ | 'nickname'
249
+ | 'honorific-prefix'
250
+ | 'honorific-suffix'
251
+ | 'new-password'
252
+ | 'off'
253
+ | 'one-time-code'
254
+ | 'organization'
255
+ | 'organization-title'
256
+ | 'postal-code'
257
+ | 'street-address'
258
+ | 'tel'
259
+ | 'url'
260
+ | 'username'
261
+ ),
211
262
  /**
212
263
  * When the clear button should appear on the right side of the text view.
213
264
  * This property is supported only for single-line TextInput component.
@@ -301,6 +352,12 @@ type IOSProps = $ReadOnly<{|
301
352
  * @platform ios
302
353
  */
303
354
  textContentType?: ?TextContentType,
355
+
356
+ /**
357
+ * Set line break strategy on iOS.
358
+ * @platform ios
359
+ */
360
+ lineBreakStrategyIOS?: ?('none' | 'standard' | 'hangul-word' | 'push-out'),
304
361
  |}>;
305
362
 
306
363
  type AndroidProps = $ReadOnly<{|
@@ -390,6 +447,23 @@ type AndroidProps = $ReadOnly<{|
390
447
  | 'username'
391
448
  | 'username-new'
392
449
  | 'off'
450
+ // additional HTML autocomplete values
451
+ | 'address-line1'
452
+ | 'address-line2'
453
+ | 'bday'
454
+ | 'bday-day'
455
+ | 'bday-month'
456
+ | 'bday-year'
457
+ | 'country'
458
+ | 'current-password'
459
+ | 'honorific-prefix'
460
+ | 'honorific-suffix'
461
+ | 'additional-name'
462
+ | 'family-name'
463
+ | 'given-name'
464
+ | 'new-password'
465
+ | 'one-time-code'
466
+ | 'sex'
393
467
  ),
394
468
 
395
469
  /**
@@ -450,6 +524,13 @@ type AndroidProps = $ReadOnly<{|
450
524
  */
451
525
  returnKeyLabel?: ?string,
452
526
 
527
+ /**
528
+ * Sets the number of rows for a `TextInput`. Use it with multiline set to
529
+ * `true` to be able to fill the lines.
530
+ * @platform android
531
+ */
532
+ rows?: ?number,
533
+
453
534
  /**
454
535
  * When `false`, it will prevent the soft keyboard from showing when the field is focused.
455
536
  * Defaults to `true`.
@@ -502,15 +583,6 @@ export type Props = $ReadOnly<{|
502
583
  */
503
584
  allowFontScaling?: ?boolean,
504
585
 
505
- /**
506
- * If `true`, the text field will blur when submitted.
507
- * The default value is true for single-line fields and false for
508
- * multiline fields. Note that for multiline fields, setting `blurOnSubmit`
509
- * to `true` means that pressing return will blur the field and trigger the
510
- * `onSubmitEditing` event instead of inserting a newline into the field.
511
- */
512
- blurOnSubmit?: ?boolean,
513
-
514
586
  /**
515
587
  * If `true`, caret is hidden. The default value is `false`.
516
588
  *
@@ -543,6 +615,38 @@ export type Props = $ReadOnly<{|
543
615
  React.ElementRef<HostComponent<mixed>> & ImperativeMethods,
544
616
  >,
545
617
 
618
+ /**
619
+ * `enterKeyHint` defines what action label (or icon) to present for the enter key on virtual keyboards.
620
+ *
621
+ * The following values is supported:
622
+ *
623
+ * - `enter`
624
+ * - `done`
625
+ * - `go`
626
+ * - `next`
627
+ * - `previous`
628
+ * - `search`
629
+ * - `send`
630
+ */
631
+ enterKeyHint?: ?enterKeyHintType,
632
+
633
+ /**
634
+ * `inputMode` works like the `inputmode` attribute in HTML, it determines which
635
+ * keyboard to open, e.g.`numeric` and has precedence over keyboardType
636
+ *
637
+ * Support the following values:
638
+ *
639
+ * - `none`
640
+ * - `text`
641
+ * - `decimal`
642
+ * - `numeric`
643
+ * - `tel`
644
+ * - `search`
645
+ * - `email`
646
+ * - `url`
647
+ */
648
+ inputMode?: ?InputMode,
649
+
546
650
  /**
547
651
  * Determines which keyboard to open, e.g.`numeric`.
548
652
  *
@@ -716,6 +820,13 @@ export type Props = $ReadOnly<{|
716
820
  */
717
821
  placeholderTextColor?: ?ColorValue,
718
822
 
823
+ /** `readOnly` works like the `readonly` attribute in HTML.
824
+ * If `true`, text is not editable. The default value is `false`.
825
+ * See https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly
826
+ * for more details.
827
+ */
828
+ readOnly?: ?boolean,
829
+
719
830
  /**
720
831
  * Determines how the return key should look. On Android you can also use
721
832
  * `returnKeyLabel`.
@@ -775,6 +886,40 @@ export type Props = $ReadOnly<{|
775
886
  */
776
887
  selectTextOnFocus?: ?boolean,
777
888
 
889
+ /**
890
+ * If `true`, the text field will blur when submitted.
891
+ * The default value is true for single-line fields and false for
892
+ * multiline fields. Note that for multiline fields, setting `blurOnSubmit`
893
+ * to `true` means that pressing return will blur the field and trigger the
894
+ * `onSubmitEditing` event instead of inserting a newline into the field.
895
+ *
896
+ * @deprecated
897
+ * Note that `submitBehavior` now takes the place of `blurOnSubmit` and will
898
+ * override any behavior defined by `blurOnSubmit`.
899
+ * @see submitBehavior
900
+ */
901
+ blurOnSubmit?: ?boolean,
902
+
903
+ /**
904
+ * When the return key is pressed,
905
+ *
906
+ * For single line inputs:
907
+ *
908
+ * - `'newline`' defaults to `'blurAndSubmit'`
909
+ * - `undefined` defaults to `'blurAndSubmit'`
910
+ *
911
+ * For multiline inputs:
912
+ *
913
+ * - `'newline'` adds a newline
914
+ * - `undefined` defaults to `'newline'`
915
+ *
916
+ * For both single line and multiline inputs:
917
+ *
918
+ * - `'submit'` will only send a submit event and not blur the input
919
+ * - `'blurAndSubmit`' will both blur the input and send a submit event
920
+ */
921
+ submitBehavior?: ?SubmitBehavior,
922
+
778
923
  /**
779
924
  * Note that not all Text styles are supported, an incomplete list of what is not supported includes:
780
925
  *
@@ -976,8 +1121,6 @@ function InternalTextInput(props: Props): React.Node {
976
1121
  const text =
977
1122
  typeof props.value === 'string'
978
1123
  ? props.value
979
- : typeof lastNativeText === 'string'
980
- ? lastNativeText
981
1124
  : typeof props.defaultValue === 'string'
982
1125
  ? props.defaultValue
983
1126
  : '';
@@ -1187,9 +1330,31 @@ function InternalTextInput(props: Props): React.Node {
1187
1330
 
1188
1331
  let textInput = null;
1189
1332
 
1190
- // The default value for `blurOnSubmit` is true for single-line fields and
1191
- // false for multi-line fields.
1192
- const blurOnSubmit = props.blurOnSubmit ?? !props.multiline;
1333
+ const multiline = props.multiline ?? false;
1334
+
1335
+ let submitBehavior: SubmitBehavior;
1336
+ if (props.submitBehavior != null) {
1337
+ // `submitBehavior` is set explicitly
1338
+ if (!multiline && props.submitBehavior === 'newline') {
1339
+ // For single line text inputs, `'newline'` is not a valid option
1340
+ submitBehavior = 'blurAndSubmit';
1341
+ } else {
1342
+ submitBehavior = props.submitBehavior;
1343
+ }
1344
+ } else if (multiline) {
1345
+ if (props.blurOnSubmit === true) {
1346
+ submitBehavior = 'blurAndSubmit';
1347
+ } else {
1348
+ submitBehavior = 'newline';
1349
+ }
1350
+ } else {
1351
+ // Single line
1352
+ if (props.blurOnSubmit !== false) {
1353
+ submitBehavior = 'blurAndSubmit';
1354
+ } else {
1355
+ submitBehavior = 'submit';
1356
+ }
1357
+ }
1193
1358
 
1194
1359
  const accessible = props.accessible !== false;
1195
1360
  const focusable = props.focusable !== false;
@@ -1227,6 +1392,14 @@ function InternalTextInput(props: Props): React.Node {
1227
1392
  // so omitting onBlur and onFocus pressability handlers here.
1228
1393
  const {onBlur, onFocus, ...eventHandlers} = usePressability(config) || {};
1229
1394
 
1395
+ const _accessibilityState = {
1396
+ busy: props['aria-busy'] ?? props.accessibilityState?.busy,
1397
+ checked: props['aria-checked'] ?? props.accessibilityState?.checked,
1398
+ disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled,
1399
+ expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded,
1400
+ selected: props['aria-selected'] ?? props.accessibilityState?.selected,
1401
+ };
1402
+
1230
1403
  if (Platform.OS === 'ios') {
1231
1404
  const RCTTextInputView =
1232
1405
  props.multiline === true
@@ -1248,7 +1421,8 @@ function InternalTextInput(props: Props): React.Node {
1248
1421
  {...props}
1249
1422
  {...eventHandlers}
1250
1423
  accessible={accessible}
1251
- blurOnSubmit={blurOnSubmit}
1424
+ accessibilityState={_accessibilityState}
1425
+ submitBehavior={submitBehavior}
1252
1426
  caretHidden={caretHidden}
1253
1427
  dataDetectorTypes={props.dataDetectorTypes}
1254
1428
  focusable={focusable}
@@ -1270,6 +1444,8 @@ function InternalTextInput(props: Props): React.Node {
1270
1444
  } else if (Platform.OS === 'android') {
1271
1445
  const style = [props.style];
1272
1446
  const autoCapitalize = props.autoCapitalize || 'sentences';
1447
+ const _accessibilityLabelledBy =
1448
+ props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy;
1273
1449
  const placeholder = props.placeholder ?? '';
1274
1450
  let children = props.children;
1275
1451
  const childCount = React.Children.count(children);
@@ -1295,13 +1471,16 @@ function InternalTextInput(props: Props): React.Node {
1295
1471
  {...props}
1296
1472
  {...eventHandlers}
1297
1473
  accessible={accessible}
1474
+ accessibilityState={_accessibilityState}
1475
+ accessibilityLabelledBy={_accessibilityLabelledBy}
1298
1476
  autoCapitalize={autoCapitalize}
1299
- blurOnSubmit={blurOnSubmit}
1477
+ submitBehavior={submitBehavior}
1300
1478
  caretHidden={caretHidden}
1301
1479
  children={children}
1302
1480
  disableFullscreenUI={props.disableFullscreenUI}
1303
1481
  focusable={focusable}
1304
1482
  mostRecentEventCount={mostRecentEventCount}
1483
+ numberOfLines={props.rows ?? props.numberOfLines}
1305
1484
  onBlur={_onBlur}
1306
1485
  onChange={_onChange}
1307
1486
  onFocus={_onFocus}
@@ -1326,6 +1505,88 @@ function InternalTextInput(props: Props): React.Node {
1326
1505
  );
1327
1506
  }
1328
1507
 
1508
+ const enterKeyHintToReturnTypeMap = {
1509
+ enter: 'default',
1510
+ done: 'done',
1511
+ go: 'go',
1512
+ next: 'next',
1513
+ previous: 'previous',
1514
+ search: 'search',
1515
+ send: 'send',
1516
+ };
1517
+
1518
+ const inputModeToKeyboardTypeMap = {
1519
+ none: 'default',
1520
+ text: 'default',
1521
+ decimal: 'decimal-pad',
1522
+ numeric: 'number-pad',
1523
+ tel: 'phone-pad',
1524
+ search: Platform.OS === 'ios' ? 'web-search' : 'default',
1525
+ email: 'email-address',
1526
+ url: 'url',
1527
+ };
1528
+
1529
+ // Map HTML autocomplete values to Android autoComplete values
1530
+ const autoCompleteWebToAutoCompleteAndroidMap = {
1531
+ 'address-line1': 'postal-address-region',
1532
+ 'address-line2': 'postal-address-locality',
1533
+ bday: 'birthdate-full',
1534
+ 'bday-day': 'birthdate-day',
1535
+ 'bday-month': 'birthdate-month',
1536
+ 'bday-year': 'birthdate-year',
1537
+ 'cc-csc': 'cc-csc',
1538
+ 'cc-exp': 'cc-exp',
1539
+ 'cc-exp-month': 'cc-exp-month',
1540
+ 'cc-exp-year': 'cc-exp-year',
1541
+ 'cc-number': 'cc-number',
1542
+ country: 'postal-address-country',
1543
+ 'current-password': 'password',
1544
+ email: 'email',
1545
+ 'honorific-prefix': 'name-prefix',
1546
+ 'honorific-suffix': 'name-suffix',
1547
+ name: 'name',
1548
+ 'additional-name': 'name-middle',
1549
+ 'family-name': 'name-family',
1550
+ 'given-name': 'name-given',
1551
+ 'new-password': 'password-new',
1552
+ off: 'off',
1553
+ 'one-time-code': 'sms-otp',
1554
+ 'postal-code': 'postal-code',
1555
+ sex: 'gender',
1556
+ 'street-address': 'street-address',
1557
+ tel: 'tel',
1558
+ 'tel-country-code': 'tel-country-code',
1559
+ 'tel-national': 'tel-national',
1560
+ username: 'username',
1561
+ };
1562
+
1563
+ // Map HTML autocomplete values to iOS textContentType values
1564
+ const autoCompleteWebToTextContentTypeMap = {
1565
+ 'address-line1': 'streetAddressLine1',
1566
+ 'address-line2': 'streetAddressLine2',
1567
+ 'cc-number': 'creditCardNumber',
1568
+ 'current-password': 'password',
1569
+ country: 'countryName',
1570
+ email: 'emailAddress',
1571
+ name: 'name',
1572
+ 'additional-name': 'middleName',
1573
+ 'family-name': 'familyName',
1574
+ 'given-name': 'givenName',
1575
+ nickname: 'nickname',
1576
+ 'honorific-prefix': 'namePrefix',
1577
+ 'honorific-suffix': 'nameSuffix',
1578
+ 'new-password': 'newPassword',
1579
+ off: 'none',
1580
+ 'one-time-code': 'oneTimeCode',
1581
+ organization: 'organizationName',
1582
+ 'organization-title': 'jobTitle',
1583
+ 'postal-code': 'postalCode',
1584
+ 'street-address': 'fullStreetAddress',
1585
+ tel: 'telephoneNumber',
1586
+ url: 'URL',
1587
+ username: 'username',
1588
+ };
1589
+
1329
1590
  const ExportedForwardRef: React.AbstractComponent<
1330
1591
  React.ElementConfig<typeof InternalTextInput>,
1331
1592
  React.ElementRef<HostComponent<mixed>> & ImperativeMethods,
@@ -1334,23 +1595,68 @@ const ExportedForwardRef: React.AbstractComponent<
1334
1595
  allowFontScaling = true,
1335
1596
  rejectResponderTermination = true,
1336
1597
  underlineColorAndroid = 'transparent',
1598
+ autoComplete,
1599
+ textContentType,
1600
+ readOnly,
1601
+ editable,
1602
+ enterKeyHint,
1603
+ returnKeyType,
1604
+ inputMode,
1605
+ keyboardType,
1337
1606
  ...restProps
1338
1607
  },
1339
1608
  forwardedRef: ReactRefSetter<
1340
1609
  React.ElementRef<HostComponent<mixed>> & ImperativeMethods,
1341
1610
  >,
1342
1611
  ) {
1612
+ const style = flattenStyle(restProps.style);
1613
+
1614
+ if (style?.verticalAlign != null) {
1615
+ style.textAlignVertical =
1616
+ verticalAlignToTextAlignVerticalMap[style.verticalAlign];
1617
+ }
1618
+
1343
1619
  return (
1344
1620
  <InternalTextInput
1345
1621
  allowFontScaling={allowFontScaling}
1346
1622
  rejectResponderTermination={rejectResponderTermination}
1347
1623
  underlineColorAndroid={underlineColorAndroid}
1624
+ editable={readOnly !== undefined ? !readOnly : editable}
1625
+ returnKeyType={
1626
+ enterKeyHint ? enterKeyHintToReturnTypeMap[enterKeyHint] : returnKeyType
1627
+ }
1628
+ keyboardType={
1629
+ inputMode ? inputModeToKeyboardTypeMap[inputMode] : keyboardType
1630
+ }
1631
+ autoComplete={
1632
+ Platform.OS === 'android'
1633
+ ? // $FlowFixMe
1634
+ autoCompleteWebToAutoCompleteAndroidMap[autoComplete] ??
1635
+ autoComplete
1636
+ : undefined
1637
+ }
1638
+ textContentType={
1639
+ Platform.OS === 'ios' &&
1640
+ autoComplete &&
1641
+ autoComplete in autoCompleteWebToTextContentTypeMap
1642
+ ? // $FlowFixMe
1643
+ autoCompleteWebToTextContentTypeMap[autoComplete]
1644
+ : textContentType
1645
+ }
1348
1646
  {...restProps}
1349
1647
  forwardedRef={forwardedRef}
1648
+ style={style}
1350
1649
  />
1351
1650
  );
1352
1651
  });
1353
1652
 
1653
+ /**
1654
+ * Switch to `deprecated-react-native-prop-types` for compatibility with future
1655
+ * releases. This is deprecated and will be removed in the future.
1656
+ */
1657
+ ExportedForwardRef.propTypes =
1658
+ require('deprecated-react-native-prop-types').TextInputPropTypes;
1659
+
1354
1660
  // $FlowFixMe[prop-missing]
1355
1661
  ExportedForwardRef.State = {
1356
1662
  currentlyFocusedInput: TextInputState.currentlyFocusedInput,
@@ -1378,12 +1684,12 @@ const styles = StyleSheet.create({
1378
1684
  },
1379
1685
  });
1380
1686
 
1687
+ const verticalAlignToTextAlignVerticalMap = {
1688
+ auto: 'auto',
1689
+ top: 'top',
1690
+ bottom: 'bottom',
1691
+ middle: 'center',
1692
+ };
1693
+
1381
1694
  // $FlowFixMe[unclear-type] Unclear type. Using `any` type is not safe.
1382
- module.exports = ((ExportedForwardRef: any): React.AbstractComponent<
1383
- React.ElementConfig<typeof InternalTextInput>,
1384
- $ReadOnly<{|
1385
- ...React.ElementRef<HostComponent<mixed>>,
1386
- ...ImperativeMethods,
1387
- |}>,
1388
- > &
1389
- TextInputComponentStatics);
1695
+ module.exports = ((ExportedForwardRef: any): TextInputType);
@@ -17,8 +17,8 @@
17
17
  * 2. Additional work to manage selection
18
18
  * 3. Any base/default styling work
19
19
  */
20
- import React from 'react';
21
20
  import { TextInputProps } from 'react-native';
21
+ import React from 'react';
22
22
  declare class TextInput extends React.Component<TextInputProps, {}> {
23
23
  private _rafID;
24
24
  private readonly _inputRef;
@@ -24,8 +24,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
24
24
  * 2. Additional work to manage selection
25
25
  * 3. Any base/default styling work
26
26
  */
27
- const react_1 = __importDefault(require("react"));
28
27
  const react_native_1 = require("react-native");
28
+ const react_1 = __importDefault(require("react"));
29
29
  const TextAncestor = require('../../Text/TextAncestor');
30
30
  const TextInputState = require('./TextInputState');
31
31
  // RCTTextInput is the native component that win32 understands
@@ -1 +1 @@
1
- {"version":3,"file":"TextInput.win32.js","sourceRoot":"","sources":["../../../src/Libraries/Components/TextInput/TextInput.win32.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * @providesModule TextInput\n */\n'use strict';\n\n/**\n * This is a forked and slightly modified version of React Native's TextInput.\n * The fork is necessary as platform checks in the base implementation made the\n * control unusable on win32. In addition to cleaning up some of the code, this\n * fork also uses Typescript rather than Flow for type safety.\n *\n * More general documentation on this control can be found at\n * https://facebook.github.io/react-native/docs/textinput.html\n *\n * The original implementation can be found at\n * https://github.com/facebook/react-native/blob/1013a010492a7bef5ff58073a088ac924a986e9e/Libraries/Components/TextInput/TextInput.js\n *\n * This control does not support the full React Native TextInput interface yet.\n * Most of the work necessary to make that happen needs to happen on the native side.\n * Future work on the JS side may include:\n * 1. Expanded typings for some of the events\n * 2. Additional work to manage selection\n * 3. Any base/default styling work\n */\n\nimport React from 'react'\nimport {\n findNodeHandle,\n requireNativeComponent,\n TextInputProps,\n NativeMethods,\n UIManager\n} from 'react-native';\nimport {\n IBlurEvent,\n IChangeEvent,\n IFocusEvent,\n} from './TextInput.Types.win32';\n\nconst TextAncestor = require('../../Text/TextAncestor');\nconst TextInputState = require('./TextInputState');\n\ntype RCTTextInputProps = TextInputProps & {\n text: string;\n};\n\n// RCTTextInput is the native component that win32 understands\nconst RCTTextInput = requireNativeComponent<RCTTextInputProps>('RCTTextInput');\n\n// Adding typings on ViewManagers is problematic as available functionality is not known until\n// registration at runtime and would require native and js to always be in sync.\nconst TextInputViewManager: any = UIManager.getViewManagerConfig('RCTTextInput');\n\nclass TextInput extends React.Component<TextInputProps, {}> {\n // TODO: Once the native side begins supporting programmatic selection\n // this will become important for selection management\n // private _lastNativeTextSelection: any;\n\n private _rafID: number;\n\n private readonly _inputRef: React.RefObject<React.Component<RCTTextInputProps> & Readonly<NativeMethods>>;\n private _lastNativeText: string;\n private _eventCount = 0;\n\n constructor(props) {\n super(props);\n this._inputRef = React.createRef();\n }\n\n /**\n * On mount TextInput needs to register itself with TextInputState\n * and conditionally request an animation frame for focus.\n */\n public componentDidMount() {\n this._lastNativeText = this.props.value;\n\n TextInputState.registerInput(this);\n\n if (this.props.autoFocus) {\n this._rafID = requestAnimationFrame(this.focus);\n }\n }\n\n /**\n * This is an unfortunate consequence of having controlled TextInputs.\n * Tree diffing reconciliation will not always send down text values\n * This sets text explicitly.\n */\n public componentDidUpdate() {\n if ((this._lastNativeText !== this._getText())) {\n this._getText() && this.setNativeText(this._getText());\n }\n\n return;\n }\n\n /**\n * Pre-unmoun the TextInput should blur, unregister and clean up\n * the animation frame for focus (edge cases)\n */\n public componentWillUnmount() {\n // blur\n if (this.isFocused()) {\n this.blur();\n }\n\n // unregister\n TextInputState.unregisterInput(this);\n\n // cancel animationFrame\n if (this._rafID !== null) {\n cancelAnimationFrame(this._rafID);\n }\n if (this._rafID) {\n return;\n }\n return;\n }\n\n public render() {\n const props: TextInputProps = { ...this.props };\n\n // By default fontScaling is turned on.\n // win32 ignores this prop for the time being\n props.allowFontScaling = (this.props.allowFontScaling === null\n || this.props.allowFontScaling === undefined)\n ? true : this.props.allowFontScaling;\n\n return (\n <TextAncestor.Provider value={ true }>\n <RCTTextInput\n { ...props }\n ref={ this._inputRef }\n text={ this._getText() }\n onFocus={ this._onFocus }\n onBlur={ this._onBlur }\n onChange={ this._onChange }\n />\n </TextAncestor.Provider>\n );\n }\n\n /**\n * Returns true if the TextInput is focused\n */\n public isFocused(): boolean {\n return TextInputState.currentlyFocusedInput() === this;\n }\n\n /**\n * Focuses the TextInput\n */\n public focus = (): void => {\n TextInputState.setFocusedTextInput(this);\n UIManager.\n dispatchViewManagerCommand(findNodeHandle(this), TextInputViewManager.Commands.focus, null);\n }\n\n /**\n * Blurs the TextInput\n */\n public blur = (): void => {\n TextInputState.blurTextInput(this);\n UIManager.\n dispatchViewManagerCommand(findNodeHandle(this), TextInputViewManager.Commands.blur, null);\n }\n\n /**\n * Use clear for programmatic clearing of the text\n */\n public clear = (): void => {\n this.setNativeText('');\n }\n\n private readonly setEventCount = (): void => {\n UIManager.\n dispatchViewManagerCommand(findNodeHandle(this), TextInputViewManager.Commands.setEventCount,\n [ this._eventCount ]);\n }\n\n private readonly setNativeText = (val: string): void => {\n if (this._lastNativeText !== val) {\n UIManager.\n dispatchViewManagerCommand(findNodeHandle(this), TextInputViewManager.Commands.setNativeText,\n [ val ]);\n }\n }\n\n private readonly _getText = (): string | null => {\n return this.props.value || (this.props.defaultValue || null);\n }\n\n private readonly _onChange = (e: IChangeEvent): void => {\n const text = e.nativeEvent.text;\n this._eventCount = e.nativeEvent.eventCount;\n this.setEventCount();\n\n this.props.onChange && this.props.onChange(e);\n this.props.onChangeText && this.props.onChangeText(text);\n this._lastNativeText = text;\n\n this.forceUpdate();\n return;\n }\n\n private readonly _onFocus = (e: IFocusEvent): void => {\n this.focus();\n this.props.onFocus && this.props.onFocus(e);\n }\n\n private readonly _onBlur = (e: IBlurEvent): void => {\n this.props.onBlur && this.props.onBlur(e);\n }\n}\n\nexport = TextInput;\n"]}
1
+ {"version":3,"file":"TextInput.win32.js","sourceRoot":"","sources":["../../../src/Libraries/Components/TextInput/TextInput.win32.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * @providesModule TextInput\n */\n'use strict';\n\n/**\n * This is a forked and slightly modified version of React Native's TextInput.\n * The fork is necessary as platform checks in the base implementation made the\n * control unusable on win32. In addition to cleaning up some of the code, this\n * fork also uses Typescript rather than Flow for type safety.\n *\n * More general documentation on this control can be found at\n * https://facebook.github.io/react-native/docs/textinput.html\n *\n * The original implementation can be found at\n * https://github.com/facebook/react-native/blob/1013a010492a7bef5ff58073a088ac924a986e9e/Libraries/Components/TextInput/TextInput.js\n *\n * This control does not support the full React Native TextInput interface yet.\n * Most of the work necessary to make that happen needs to happen on the native side.\n * Future work on the JS side may include:\n * 1. Expanded typings for some of the events\n * 2. Additional work to manage selection\n * 3. Any base/default styling work\n */\n\n\nimport {\n findNodeHandle,\n requireNativeComponent,\n TextInputProps,\n NativeMethods,\n UIManager\n} from 'react-native';\nimport {\n IBlurEvent,\n IChangeEvent,\n IFocusEvent,\n} from './TextInput.Types.win32';\nimport React from 'react'\n\nconst TextAncestor = require('../../Text/TextAncestor');\nconst TextInputState = require('./TextInputState');\n\ntype RCTTextInputProps = TextInputProps & {\n text: string;\n};\n\n// RCTTextInput is the native component that win32 understands\nconst RCTTextInput = requireNativeComponent<RCTTextInputProps>('RCTTextInput');\n\n// Adding typings on ViewManagers is problematic as available functionality is not known until\n// registration at runtime and would require native and js to always be in sync.\nconst TextInputViewManager: any = UIManager.getViewManagerConfig('RCTTextInput');\n\nclass TextInput extends React.Component<TextInputProps, {}> {\n // TODO: Once the native side begins supporting programmatic selection\n // this will become important for selection management\n // private _lastNativeTextSelection: any;\n\n private _rafID: number;\n\n private readonly _inputRef: React.RefObject<React.Component<RCTTextInputProps> & Readonly<NativeMethods>>;\n private _lastNativeText: string;\n private _eventCount = 0;\n\n constructor(props) {\n super(props);\n this._inputRef = React.createRef();\n }\n\n /**\n * On mount TextInput needs to register itself with TextInputState\n * and conditionally request an animation frame for focus.\n */\n public componentDidMount() {\n this._lastNativeText = this.props.value;\n\n TextInputState.registerInput(this);\n\n if (this.props.autoFocus) {\n this._rafID = requestAnimationFrame(this.focus);\n }\n }\n\n /**\n * This is an unfortunate consequence of having controlled TextInputs.\n * Tree diffing reconciliation will not always send down text values\n * This sets text explicitly.\n */\n public componentDidUpdate() {\n if ((this._lastNativeText !== this._getText())) {\n this._getText() && this.setNativeText(this._getText());\n }\n\n return;\n }\n\n /**\n * Pre-unmoun the TextInput should blur, unregister and clean up\n * the animation frame for focus (edge cases)\n */\n public componentWillUnmount() {\n // blur\n if (this.isFocused()) {\n this.blur();\n }\n\n // unregister\n TextInputState.unregisterInput(this);\n\n // cancel animationFrame\n if (this._rafID !== null) {\n cancelAnimationFrame(this._rafID);\n }\n if (this._rafID) {\n return;\n }\n return;\n }\n\n public render() {\n const props: TextInputProps = { ...this.props };\n\n // By default fontScaling is turned on.\n // win32 ignores this prop for the time being\n props.allowFontScaling = (this.props.allowFontScaling === null\n || this.props.allowFontScaling === undefined)\n ? true : this.props.allowFontScaling;\n\n return (\n <TextAncestor.Provider value={ true }>\n <RCTTextInput\n { ...props }\n ref={ this._inputRef }\n text={ this._getText() }\n onFocus={ this._onFocus }\n onBlur={ this._onBlur }\n onChange={ this._onChange }\n />\n </TextAncestor.Provider>\n );\n }\n\n /**\n * Returns true if the TextInput is focused\n */\n public isFocused(): boolean {\n return TextInputState.currentlyFocusedInput() === this;\n }\n\n /**\n * Focuses the TextInput\n */\n public focus = (): void => {\n TextInputState.setFocusedTextInput(this);\n UIManager.\n dispatchViewManagerCommand(findNodeHandle(this), TextInputViewManager.Commands.focus, null);\n }\n\n /**\n * Blurs the TextInput\n */\n public blur = (): void => {\n TextInputState.blurTextInput(this);\n UIManager.\n dispatchViewManagerCommand(findNodeHandle(this), TextInputViewManager.Commands.blur, null);\n }\n\n /**\n * Use clear for programmatic clearing of the text\n */\n public clear = (): void => {\n this.setNativeText('');\n }\n\n private readonly setEventCount = (): void => {\n UIManager.\n dispatchViewManagerCommand(findNodeHandle(this), TextInputViewManager.Commands.setEventCount,\n [ this._eventCount ]);\n }\n\n private readonly setNativeText = (val: string): void => {\n if (this._lastNativeText !== val) {\n UIManager.\n dispatchViewManagerCommand(findNodeHandle(this), TextInputViewManager.Commands.setNativeText,\n [ val ]);\n }\n }\n\n private readonly _getText = (): string | null => {\n return this.props.value || (this.props.defaultValue || null);\n }\n\n private readonly _onChange = (e: IChangeEvent): void => {\n const text = e.nativeEvent.text;\n this._eventCount = e.nativeEvent.eventCount;\n this.setEventCount();\n\n this.props.onChange && this.props.onChange(e);\n this.props.onChangeText && this.props.onChangeText(text);\n this._lastNativeText = text;\n\n this.forceUpdate();\n return;\n }\n\n private readonly _onFocus = (e: IFocusEvent): void => {\n this.focus();\n this.props.onFocus && this.props.onFocus(e);\n }\n\n private readonly _onBlur = (e: IBlurEvent): void => {\n this.props.onBlur && this.props.onBlur(e);\n }\n}\n\nexport = TextInput;\n"]}
@@ -8,10 +8,10 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import * as React from 'react';
12
-
13
11
  import type {Int32} from '../../Types/CodegenTypes';
14
12
 
13
+ import * as React from 'react';
14
+
15
15
  export interface TextInputNativeCommands<T> {
16
16
  +focus: (viewRef: React.ElementRef<T>) => void;
17
17
  +blur: (viewRef: React.ElementRef<T>) => void;
@@ -12,17 +12,34 @@
12
12
  // TextInputs. All calls relating to the keyboard should be funneled
13
13
  // through here.
14
14
 
15
- const React = require('react');
16
- const Platform = require('../../Utilities/Platform');
17
- const {findNodeHandle} = require('../../Renderer/shims/ReactNative');
15
+ import type {
16
+ HostComponent,
17
+ MeasureInWindowOnSuccessCallback,
18
+ MeasureLayoutOnSuccessCallback,
19
+ MeasureOnSuccessCallback,
20
+ } from '../../Renderer/shims/ReactNativeTypes';
21
+
18
22
  import {Commands as AndroidTextInputCommands} from '../../Components/TextInput/AndroidTextInputNativeComponent';
19
23
  import {Commands as iOSTextInputCommands} from '../../Components/TextInput/RCTSingelineTextInputNativeComponent';
20
24
 
21
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
25
+ const {findNodeHandle} = require('../../ReactNative/RendererProxy');
26
+ const Platform = require('../../Utilities/Platform');
27
+ const React = require('react');
22
28
  type ComponentRef = React.ElementRef<HostComponent<mixed>>;
23
29
 
24
30
  let currentlyFocusedInputRef: ?ComponentRef = null;
25
- const inputs = new Set();
31
+ const inputs = new Set<{
32
+ blur(): void,
33
+ focus(): void,
34
+ measure(callback: MeasureOnSuccessCallback): void,
35
+ measureInWindow(callback: MeasureInWindowOnSuccessCallback): void,
36
+ measureLayout(
37
+ relativeToNativeNode: number | React.ElementRef<HostComponent<mixed>>,
38
+ onSuccess: MeasureLayoutOnSuccessCallback,
39
+ onFail?: () => void,
40
+ ): void,
41
+ setNativeProps(nativeProps: {...}): void,
42
+ }>();
26
43
 
27
44
  function currentlyFocusedInput(): ?ComponentRef {
28
45
  return currentlyFocusedInputRef;