@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
@@ -0,0 +1,257 @@
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
8
+ * @format
9
+ */
10
+
11
+ 'use strict';
12
+
13
+ import type {PressEvent} from '../Types/CoreEventTypes';
14
+
15
+ /**
16
+ * `PanResponder` reconciles several touches into a single gesture. It makes
17
+ * single-touch gestures resilient to extra touches, and can be used to
18
+ * recognize simple multi-touch gestures.
19
+ *
20
+ * By default, `PanResponder` holds an `InteractionManager` handle to block
21
+ * long-running JS events from interrupting active gestures.
22
+ *
23
+ * It provides a predictable wrapper of the responder handlers provided by the
24
+ * [gesture responder system](docs/gesture-responder-system.html).
25
+ * For each handler, it provides a new `gestureState` object alongside the
26
+ * native event object:
27
+ *
28
+ * ```
29
+ * onPanResponderMove: (event, gestureState) => {}
30
+ * ```
31
+ *
32
+ * A native event is a synthetic touch event with the following form:
33
+ *
34
+ * - `nativeEvent`
35
+ * + `changedTouches` - Array of all touch events that have changed since the last event
36
+ * + `identifier` - The ID of the touch
37
+ * + `locationX` - The X position of the touch, relative to the element
38
+ * + `locationY` - The Y position of the touch, relative to the element
39
+ * + `pageX` - The X position of the touch, relative to the root element
40
+ * + `pageY` - The Y position of the touch, relative to the root element
41
+ * + `target` - The node id of the element receiving the touch event
42
+ * + `timestamp` - A time identifier for the touch, useful for velocity calculation
43
+ * + `touches` - Array of all current touches on the screen
44
+ *
45
+ * A `gestureState` object has the following:
46
+ *
47
+ * - `stateID` - ID of the gestureState- persisted as long as there at least
48
+ * one touch on screen
49
+ * - `moveX` - the latest screen coordinates of the recently-moved touch
50
+ * - `moveY` - the latest screen coordinates of the recently-moved touch
51
+ * - `x0` - the screen coordinates of the responder grant
52
+ * - `y0` - the screen coordinates of the responder grant
53
+ * - `dx` - accumulated distance of the gesture since the touch started
54
+ * - `dy` - accumulated distance of the gesture since the touch started
55
+ * - `vx` - current velocity of the gesture
56
+ * - `vy` - current velocity of the gesture
57
+ * - `numberActiveTouches` - Number of touches currently on screen
58
+ *
59
+ * ### Basic Usage
60
+ *
61
+ * ```
62
+ * componentWillMount: function() {
63
+ * this._panResponder = PanResponder.create({
64
+ * // Ask to be the responder:
65
+ * onStartShouldSetPanResponder: (evt, gestureState) => true,
66
+ * onStartShouldSetPanResponderCapture: (evt, gestureState) => true,
67
+ * onMoveShouldSetPanResponder: (evt, gestureState) => true,
68
+ * onMoveShouldSetPanResponderCapture: (evt, gestureState) => true,
69
+ *
70
+ * onPanResponderGrant: (evt, gestureState) => {
71
+ * // The gesture has started. Show visual feedback so the user knows
72
+ * // what is happening!
73
+ *
74
+ * // gestureState.d{x,y} will be set to zero now
75
+ * },
76
+ * onPanResponderMove: (evt, gestureState) => {
77
+ * // The most recent move distance is gestureState.move{X,Y}
78
+ *
79
+ * // The accumulated gesture distance since becoming responder is
80
+ * // gestureState.d{x,y}
81
+ * },
82
+ * onPanResponderTerminationRequest: (evt, gestureState) => true,
83
+ * onPanResponderRelease: (evt, gestureState) => {
84
+ * // The user has released all touches while this view is the
85
+ * // responder. This typically means a gesture has succeeded
86
+ * },
87
+ * onPanResponderTerminate: (evt, gestureState) => {
88
+ * // Another component has become the responder, so this gesture
89
+ * // should be cancelled
90
+ * },
91
+ * onShouldBlockNativeResponder: (evt, gestureState) => {
92
+ * // Returns whether this component should block native components from becoming the JS
93
+ * // responder. Returns true by default. Is currently only supported on android.
94
+ * return true;
95
+ * },
96
+ * });
97
+ * },
98
+ *
99
+ * render: function() {
100
+ * return (
101
+ * <View {...this._panResponder.panHandlers} />
102
+ * );
103
+ * },
104
+ *
105
+ * ```
106
+ *
107
+ * ### Working Example
108
+ *
109
+ * To see it in action, try the
110
+ * [PanResponder example in RNTester](https://github.com/facebook/react-native/blob/HEAD/packages/rn-tester/js/examples/PanResponder/PanResponderExample.js)
111
+ */
112
+
113
+ export type GestureState = {|
114
+ /**
115
+ * ID of the gestureState - persisted as long as there at least one touch on screen
116
+ */
117
+ stateID: number,
118
+
119
+ /**
120
+ * The latest screen coordinates of the recently-moved touch
121
+ */
122
+ moveX: number,
123
+
124
+ /**
125
+ * The latest screen coordinates of the recently-moved touch
126
+ */
127
+ moveY: number,
128
+
129
+ /**
130
+ * The screen coordinates of the responder grant
131
+ */
132
+ x0: number,
133
+
134
+ /**
135
+ * The screen coordinates of the responder grant
136
+ */
137
+ y0: number,
138
+
139
+ /**
140
+ * Accumulated distance of the gesture since the touch started
141
+ */
142
+ dx: number,
143
+
144
+ /**
145
+ * Accumulated distance of the gesture since the touch started
146
+ */
147
+ dy: number,
148
+
149
+ /**
150
+ * Current velocity of the gesture
151
+ */
152
+ vx: number,
153
+
154
+ /**
155
+ * Current velocity of the gesture
156
+ */
157
+ vy: number,
158
+
159
+ /**
160
+ * Number of touches currently on screen
161
+ */
162
+ numberActiveTouches: number,
163
+
164
+ /**
165
+ * All `gestureState` accounts for timeStamps up until this value
166
+ *
167
+ * @private
168
+ */
169
+ _accountsForMovesUpTo: number,
170
+ |};
171
+
172
+ type ActiveCallback = (
173
+ event: PressEvent,
174
+ gestureState: GestureState,
175
+ ) => boolean;
176
+
177
+ type PassiveCallback = (event: PressEvent, gestureState: GestureState) => mixed;
178
+
179
+ type PanHandlers = {|
180
+ onMoveShouldSetResponder: (event: PressEvent) => boolean,
181
+ onMoveShouldSetResponderCapture: (event: PressEvent) => boolean,
182
+ onResponderEnd: (event: PressEvent) => void,
183
+ onResponderGrant: (event: PressEvent) => boolean,
184
+ onResponderMove: (event: PressEvent) => void,
185
+ onResponderReject: (event: PressEvent) => void,
186
+ onResponderRelease: (event: PressEvent) => void,
187
+ onResponderStart: (event: PressEvent) => void,
188
+ onResponderTerminate: (event: PressEvent) => void,
189
+ onResponderTerminationRequest: (event: PressEvent) => boolean,
190
+ onStartShouldSetResponder: (event: PressEvent) => boolean,
191
+ onStartShouldSetResponderCapture: (event: PressEvent) => boolean,
192
+ |};
193
+
194
+ type PanResponderConfig = $ReadOnly<{|
195
+ onMoveShouldSetPanResponder?: ?ActiveCallback,
196
+ onMoveShouldSetPanResponderCapture?: ?ActiveCallback,
197
+ onStartShouldSetPanResponder?: ?ActiveCallback,
198
+ onStartShouldSetPanResponderCapture?: ?ActiveCallback,
199
+ /**
200
+ * The body of `onResponderGrant` returns a bool, but the vast majority of
201
+ * callsites return void and this TODO notice is found in it:
202
+ * TODO: t7467124 investigate if this can be removed
203
+ */
204
+ onPanResponderGrant?: ?(PassiveCallback | ActiveCallback),
205
+ onPanResponderReject?: ?PassiveCallback,
206
+ onPanResponderStart?: ?PassiveCallback,
207
+ onPanResponderEnd?: ?PassiveCallback,
208
+ onPanResponderRelease?: ?PassiveCallback,
209
+ onPanResponderMove?: ?PassiveCallback,
210
+ onPanResponderTerminate?: ?PassiveCallback,
211
+ onPanResponderTerminationRequest?: ?ActiveCallback,
212
+ onShouldBlockNativeResponder?: ?ActiveCallback,
213
+ |}>;
214
+
215
+ export type PanResponderType = {
216
+ _initializeGestureState: (gestureState: GestureState) => void,
217
+ _updateGestureStateOnMove: (
218
+ gestureState: GestureState,
219
+ touchHistory: $PropertyType<PressEvent, 'touchHistory'>,
220
+ ) => void,
221
+ /**
222
+ * @param {object} config Enhanced versions of all of the responder callbacks
223
+ * that provide not only the typical `ResponderSyntheticEvent`, but also the
224
+ * `PanResponder` gesture state. Simply replace the word `Responder` with
225
+ * `PanResponder` in each of the typical `onResponder*` callbacks. For
226
+ * example, the `config` object would look like:
227
+ *
228
+ * - `onMoveShouldSetPanResponder: (e, gestureState) => {...}`
229
+ * - `onMoveShouldSetPanResponderCapture: (e, gestureState) => {...}`
230
+ * - `onStartShouldSetPanResponder: (e, gestureState) => {...}`
231
+ * - `onStartShouldSetPanResponderCapture: (e, gestureState) => {...}`
232
+ * - `onPanResponderReject: (e, gestureState) => {...}`
233
+ * - `onPanResponderGrant: (e, gestureState) => {...}`
234
+ * - `onPanResponderStart: (e, gestureState) => {...}`
235
+ * - `onPanResponderEnd: (e, gestureState) => {...}`
236
+ * - `onPanResponderRelease: (e, gestureState) => {...}`
237
+ * - `onPanResponderMove: (e, gestureState) => {...}`
238
+ * - `onPanResponderTerminate: (e, gestureState) => {...}`
239
+ * - `onPanResponderTerminationRequest: (e, gestureState) => {...}`
240
+ * - `onShouldBlockNativeResponder: (e, gestureState) => {...}`
241
+ *
242
+ * In general, for events that have capture equivalents, we update the
243
+ * gestureState once in the capture phase and can use it in the bubble phase
244
+ * as well.
245
+ *
246
+ * Be careful with onStartShould* callbacks. They only reflect updated
247
+ * `gestureState` for start/end events that bubble/capture to the Node.
248
+ * Once the node is the responder, you can rely on every start/end event
249
+ * being processed by the gesture and `gestureState` being updated
250
+ * accordingly. (numberActiveTouches) may not be totally accurate unless you
251
+ * are the responder.
252
+ */
253
+ create: (config: PanResponderConfig) => {
254
+ getInteractionHandle: () => ?number,
255
+ panHandlers: PanHandlers,
256
+ },
257
+ };
@@ -10,11 +10,12 @@
10
10
 
11
11
  'use strict';
12
12
 
13
+ import type {PressEvent} from '../Types/CoreEventTypes';
14
+ import type {PanResponderType} from './PanResponder.flow.js';
15
+
13
16
  const InteractionManager = require('./InteractionManager');
14
17
  const TouchHistoryMath = require('./TouchHistoryMath');
15
18
 
16
- import type {PressEvent} from '../Types/CoreEventTypes';
17
-
18
19
  const currentCentroidXOfTouchesChangedAfter =
19
20
  TouchHistoryMath.currentCentroidXOfTouchesChangedAfter;
20
21
  const currentCentroidYOfTouchesChangedAfter =
@@ -226,7 +227,7 @@ type PanResponderConfig = $ReadOnly<{|
226
227
  onShouldBlockNativeResponder?: ?ActiveCallback,
227
228
  |}>;
228
229
 
229
- const PanResponder = {
230
+ const PanResponder: PanResponderType = {
230
231
  /**
231
232
  *
232
233
  * A graphical explanation of the touch data flow:
@@ -19,9 +19,6 @@ interface Agent {
19
19
  // Flow doesn't support static declarations in interface
20
20
  type AgentClass = Class<Agent> & {DOMAIN: string, ...};
21
21
 
22
- declare function __registerInspectorAgent(type: AgentClass): void;
23
- declare function __inspectorTimestamp(): number;
24
-
25
22
  const JSInspector = {
26
23
  registerAgent(type: AgentClass) {
27
24
  if (global.__registerInspectorAgent) {
@@ -10,11 +10,11 @@
10
10
 
11
11
  'use strict';
12
12
 
13
+ import type EventSender from './InspectorAgent';
14
+
15
+ const XMLHttpRequest = require('../Network/XMLHttpRequest');
13
16
  const InspectorAgent = require('./InspectorAgent');
14
17
  const JSInspector = require('./JSInspector');
15
- const XMLHttpRequest = require('../Network/XMLHttpRequest');
16
-
17
- import type EventSender from './InspectorAgent';
18
18
 
19
19
  type RequestId = string;
20
20
 
@@ -0,0 +1,84 @@
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
+ * @format
8
+ */
9
+
10
+ export type LayoutAnimationType =
11
+ | 'spring'
12
+ | 'linear'
13
+ | 'easeInEaseOut'
14
+ | 'easeIn'
15
+ | 'easeOut'
16
+ | 'keyboard';
17
+
18
+ export type LayoutAnimationTypes = {
19
+ [type in LayoutAnimationType]: type;
20
+ };
21
+
22
+ export type LayoutAnimationProperty =
23
+ | 'opacity'
24
+ | 'scaleX'
25
+ | 'scaleY'
26
+ | 'scaleXY';
27
+
28
+ export type LayoutAnimationProperties = {
29
+ [prop in LayoutAnimationProperty]: prop;
30
+ };
31
+
32
+ export interface LayoutAnimationAnim {
33
+ duration?: number | undefined;
34
+ delay?: number | undefined;
35
+ springDamping?: number | undefined;
36
+ initialVelocity?: number | undefined;
37
+ type?: LayoutAnimationType | undefined;
38
+ property?: LayoutAnimationProperty | undefined;
39
+ }
40
+
41
+ export interface LayoutAnimationConfig {
42
+ duration: number;
43
+ create?: LayoutAnimationAnim | undefined;
44
+ update?: LayoutAnimationAnim | undefined;
45
+ delete?: LayoutAnimationAnim | undefined;
46
+ }
47
+
48
+ /** Automatically animates views to their new positions when the next layout happens.
49
+ * A common way to use this API is to call LayoutAnimation.configureNext before
50
+ * calling setState. */
51
+ export interface LayoutAnimationStatic {
52
+ /** Schedules an animation to happen on the next layout.
53
+ * @param config Specifies animation properties:
54
+ * `duration` in milliseconds
55
+ * `create`, config for animating in new views (see Anim type)
56
+ * `update`, config for animating views that have been updated (see Anim type)
57
+ * @param onAnimationDidEnd Called when the animation finished. Only supported on iOS.
58
+ */
59
+ configureNext: (
60
+ config: LayoutAnimationConfig,
61
+ onAnimationDidEnd?: () => void,
62
+ onAnimationDidFail?: () => void,
63
+ ) => void;
64
+ /** Helper for creating a config for configureNext. */
65
+ create: (
66
+ duration: number,
67
+ type?: LayoutAnimationType,
68
+ creationProp?: LayoutAnimationProperty,
69
+ ) => LayoutAnimationConfig;
70
+ Types: LayoutAnimationTypes;
71
+ Properties: LayoutAnimationProperties;
72
+ configChecker: (shapeTypes: {[key: string]: any}) => any;
73
+ Presets: {
74
+ easeInEaseOut: LayoutAnimationConfig;
75
+ linear: LayoutAnimationConfig;
76
+ spring: LayoutAnimationConfig;
77
+ };
78
+ easeInEaseOut: (onAnimationDidEnd?: () => void) => void;
79
+ linear: (onAnimationDidEnd?: () => void) => void;
80
+ spring: (onAnimationDidEnd?: () => void) => void;
81
+ }
82
+
83
+ export const LayoutAnimation: LayoutAnimationStatic;
84
+ export type LayoutAnimation = LayoutAnimationStatic;
@@ -10,16 +10,17 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const UIManager = require('../ReactNative/UIManager');
14
13
  import type {Spec as FabricUIManagerSpec} from '../ReactNative/FabricUIManager';
15
14
  import type {
16
15
  LayoutAnimationConfig as LayoutAnimationConfig_,
17
- LayoutAnimationType,
18
16
  LayoutAnimationProperty,
17
+ LayoutAnimationType,
19
18
  } from '../Renderer/shims/ReactNativeTypes';
20
19
 
21
- import Platform from '../Utilities/Platform';
22
20
  import ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';
21
+ import Platform from '../Utilities/Platform';
22
+
23
+ const UIManager = require('../ReactNative/UIManager');
23
24
 
24
25
  // Reexport type
25
26
  export type LayoutAnimationConfig = LayoutAnimationConfig_;
@@ -0,0 +1,61 @@
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
+ * @format
8
+ */
9
+
10
+ import {NativeEventEmitter} from '../EventEmitter/NativeEventEmitter';
11
+ import {EmitterSubscription} from '../vendor/emitter/EventEmitter';
12
+
13
+ export interface LinkingStatic extends NativeEventEmitter {
14
+ /**
15
+ * Add a handler to Linking changes by listening to the `url` event type
16
+ * and providing the handler
17
+ */
18
+ addEventListener(
19
+ type: 'url',
20
+ handler: (event: {url: string}) => void,
21
+ ): EmitterSubscription;
22
+
23
+ /**
24
+ * Try to open the given url with any of the installed apps.
25
+ * You can use other URLs, like a location (e.g. "geo:37.484847,-122.148386"), a contact, or any other URL that can be opened with the installed apps.
26
+ * NOTE: This method will fail if the system doesn't know how to open the specified URL. If you're passing in a non-http(s) URL, it's best to check {@code canOpenURL} first.
27
+ * NOTE: For web URLs, the protocol ("http://", "https://") must be set accordingly!
28
+ */
29
+ openURL(url: string): Promise<any>;
30
+
31
+ /**
32
+ * Determine whether or not an installed app can handle a given URL.
33
+ * NOTE: For web URLs, the protocol ("http://", "https://") must be set accordingly!
34
+ * NOTE: As of iOS 9, your app needs to provide the LSApplicationQueriesSchemes key inside Info.plist.
35
+ * @param URL the URL to open
36
+ */
37
+ canOpenURL(url: string): Promise<boolean>;
38
+
39
+ /**
40
+ * If the app launch was triggered by an app link with, it will give the link url, otherwise it will give null
41
+ * NOTE: To support deep linking on Android, refer http://developer.android.com/training/app-indexing/deep-linking.html#handling-intents
42
+ */
43
+ getInitialURL(): Promise<string | null>;
44
+
45
+ /**
46
+ * Open the Settings app and displays the app’s custom settings, if it has any.
47
+ */
48
+ openSettings(): Promise<void>;
49
+
50
+ /**
51
+ * Sends an Android Intent - a broad surface to express Android functions. Useful for deep-linking to settings pages,
52
+ * opening an SMS app with a message draft in place, and more. See https://developer.android.com/reference/kotlin/android/content/Intent?hl=en
53
+ */
54
+ sendIntent(
55
+ action: string,
56
+ extras?: Array<{key: string; value: string | number | boolean}>,
57
+ ): Promise<void>;
58
+ }
59
+
60
+ export const Linking: LinkingStatic;
61
+ export type Linking = LinkingStatic;
@@ -9,11 +9,12 @@
9
9
  */
10
10
 
11
11
  import type {EventSubscription} from '../vendor/emitter/EventEmitter';
12
+
12
13
  import NativeEventEmitter from '../EventEmitter/NativeEventEmitter';
13
14
  import InteractionManager from '../Interaction/InteractionManager';
14
15
  import Platform from '../Utilities/Platform';
15
- import NativeLinkingManager from './NativeLinkingManager';
16
16
  import NativeIntentAndroid from './NativeIntentAndroid';
17
+ import NativeLinkingManager from './NativeLinkingManager';
17
18
  import invariant from 'invariant';
18
19
  import nullthrows from 'nullthrows';
19
20
 
@@ -123,7 +124,7 @@ class Linking extends NativeEventEmitter<LinkingEventDefinitions> {
123
124
  }
124
125
  }
125
126
 
126
- _validateURL(url: string) {
127
+ _validateURL(url: string): void {
127
128
  invariant(
128
129
  typeof url === 'string',
129
130
  'Invalid URL: should be a string. Was: ' + url,
@@ -9,6 +9,7 @@
9
9
  */
10
10
 
11
11
  import type {TurboModule} from '../TurboModule/RCTExport';
12
+
12
13
  import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
13
14
 
14
15
  export interface Spec extends TurboModule {
@@ -9,6 +9,7 @@
9
9
  */
10
10
 
11
11
  import type {TurboModule} from '../TurboModule/RCTExport';
12
+
12
13
  import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
13
14
 
14
15
  export interface Spec extends TurboModule {
@@ -45,16 +45,22 @@ export class CellRenderMask {
45
45
  return this._regions;
46
46
  }
47
47
 
48
- addCells(cells: {first: number, last: number}) {
48
+ addCells(cells: {first: number, last: number}): void {
49
49
  invariant(
50
50
  cells.first >= 0 &&
51
51
  cells.first < this._numCells &&
52
- cells.last >= 0 &&
52
+ cells.last >= -1 &&
53
53
  cells.last < this._numCells &&
54
- cells.last >= cells.first,
54
+ cells.last >= cells.first - 1,
55
55
  'CellRenderMask.addCells called with invalid cell range',
56
56
  );
57
57
 
58
+ // VirtualizedList uses inclusive ranges, where zero-count states are
59
+ // possible. E.g. [0, -1] for no cells, starting at 0.
60
+ if (cells.last < cells.first) {
61
+ return;
62
+ }
63
+
58
64
  const [firstIntersect, firstIntersectIdx] = this._findRegion(cells.first);
59
65
  const [lastIntersect, lastIntersectIdx] = this._findRegion(cells.last);
60
66
 
@@ -110,6 +116,10 @@ export class CellRenderMask {
110
116
  );
111
117
  }
112
118
 
119
+ numCells(): number {
120
+ return this._numCells;
121
+ }
122
+
113
123
  equals(other: CellRenderMask): boolean {
114
124
  return (
115
125
  this._numCells === other._numCells &&
@@ -0,0 +1,72 @@
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
8
+ * @format
9
+ */
10
+
11
+ import invariant from 'invariant';
12
+
13
+ export default class ChildListCollection<TList> {
14
+ _cellKeyToChildren: Map<string, Set<TList>> = new Map();
15
+ _childrenToCellKey: Map<TList, string> = new Map();
16
+
17
+ add(list: TList, cellKey: string): void {
18
+ invariant(
19
+ !this._childrenToCellKey.has(list),
20
+ 'Trying to add already present child list',
21
+ );
22
+
23
+ const cellLists = this._cellKeyToChildren.get(cellKey) ?? new Set();
24
+ cellLists.add(list);
25
+ this._cellKeyToChildren.set(cellKey, cellLists);
26
+
27
+ this._childrenToCellKey.set(list, cellKey);
28
+ }
29
+
30
+ remove(list: TList): void {
31
+ const cellKey = this._childrenToCellKey.get(list);
32
+ invariant(cellKey != null, 'Trying to remove non-present child list');
33
+ this._childrenToCellKey.delete(list);
34
+
35
+ const cellLists = this._cellKeyToChildren.get(cellKey);
36
+ invariant(cellLists, '_cellKeyToChildren should contain cellKey');
37
+ cellLists.delete(list);
38
+
39
+ if (cellLists.size === 0) {
40
+ this._cellKeyToChildren.delete(cellKey);
41
+ }
42
+ }
43
+
44
+ forEach(fn: TList => void): void {
45
+ for (const listSet of this._cellKeyToChildren.values()) {
46
+ for (const list of listSet) {
47
+ fn(list);
48
+ }
49
+ }
50
+ }
51
+
52
+ forEachInCell(cellKey: string, fn: TList => void): void {
53
+ const listSet = this._cellKeyToChildren.get(cellKey) ?? [];
54
+ for (const list of listSet) {
55
+ fn(list);
56
+ }
57
+ }
58
+
59
+ anyInCell(cellKey: string, fn: TList => boolean): boolean {
60
+ const listSet = this._cellKeyToChildren.get(cellKey) ?? [];
61
+ for (const list of listSet) {
62
+ if (fn(list)) {
63
+ return true;
64
+ }
65
+ }
66
+ return false;
67
+ }
68
+
69
+ size(): number {
70
+ return this._childrenToCellKey.size;
71
+ }
72
+ }