@office-iss/react-native-win32 0.0.0-canary.30 → 0.0.0-canary.301

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 (1512) hide show
  1. package/.eslintignore +5 -2
  2. package/.eslintrc.js +27 -2
  3. package/.flowconfig +96 -44
  4. package/CHANGELOG.json +6246 -1
  5. package/CHANGELOG.md +2486 -4
  6. package/IntegrationTests/AccessibilityManagerTest.js +24 -22
  7. package/IntegrationTests/AppEventsTest.js +49 -34
  8. package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +22 -19
  9. package/IntegrationTests/ImageCachePolicyTest.js +67 -84
  10. package/IntegrationTests/ImageSnapshotTest.js +19 -22
  11. package/IntegrationTests/IntegrationTestHarnessTest.js +36 -51
  12. package/IntegrationTests/IntegrationTestsApp.js +27 -26
  13. package/IntegrationTests/LayoutEventsTest.js +25 -21
  14. package/IntegrationTests/LoggingTestModule.js +18 -23
  15. package/IntegrationTests/PromiseTest.js +53 -44
  16. package/IntegrationTests/SimpleSnapshotTest.js +21 -28
  17. package/IntegrationTests/SyncMethodTest.js +11 -15
  18. package/IntegrationTests/TimersTest.js +25 -9
  19. package/IntegrationTests/WebSocketTest.js +7 -6
  20. package/IntegrationTests/launchWebSocketServer.sh +12 -0
  21. package/IntegrationTests/websocket_integration_test_server.js +3 -3
  22. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +87 -0
  23. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +87 -26
  24. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +5 -42
  25. package/Libraries/Alert/Alert.d.ts +94 -0
  26. package/Libraries/Alert/Alert.js +69 -22
  27. package/Libraries/Alert/Alert.win32.js +38 -13
  28. package/Libraries/Alert/NativeAlertManager.js +5 -25
  29. package/Libraries/Alert/RCTAlertManager.android.js +21 -15
  30. package/Libraries/Alert/RCTAlertManager.ios.js +12 -15
  31. package/Libraries/Alert/RCTAlertManager.js +15 -0
  32. package/Libraries/Alert/RCTAlertManager.js.flow +16 -0
  33. package/Libraries/Animated/Animated.d.ts +628 -0
  34. package/Libraries/Animated/Animated.js +18 -0
  35. package/Libraries/Animated/Animated.js.flow +12 -0
  36. package/Libraries/Animated/AnimatedEvent.js +258 -0
  37. package/Libraries/Animated/AnimatedExports.js +46 -0
  38. package/Libraries/Animated/AnimatedExports.js.flow +192 -0
  39. package/Libraries/Animated/AnimatedImplementation.js +635 -0
  40. package/Libraries/Animated/AnimatedMock.js +195 -0
  41. package/Libraries/Animated/AnimatedPlatformConfig.js +13 -0
  42. package/Libraries/Animated/Easing.d.ts +37 -0
  43. package/Libraries/Animated/Easing.js +250 -0
  44. package/Libraries/Animated/NativeAnimatedAllowlist.js +122 -0
  45. package/Libraries/Animated/NativeAnimatedModule.js +14 -0
  46. package/Libraries/Animated/NativeAnimatedTurboModule.js +14 -0
  47. package/Libraries/Animated/SpringConfig.js +98 -0
  48. package/Libraries/Animated/animations/Animation.js +201 -0
  49. package/Libraries/Animated/animations/DecayAnimation.js +122 -0
  50. package/Libraries/Animated/animations/SpringAnimation.js +373 -0
  51. package/Libraries/Animated/animations/TimingAnimation.js +176 -0
  52. package/Libraries/Animated/bezier.js +164 -0
  53. package/Libraries/Animated/components/AnimatedFlatList.js +21 -0
  54. package/Libraries/Animated/components/AnimatedImage.js +22 -0
  55. package/Libraries/Animated/components/AnimatedScrollView.js +145 -0
  56. package/Libraries/Animated/components/AnimatedSectionList.js +26 -0
  57. package/Libraries/Animated/components/AnimatedText.js +19 -0
  58. package/Libraries/Animated/components/AnimatedView.js +21 -0
  59. package/Libraries/Animated/createAnimatedComponent.js +151 -0
  60. package/Libraries/Animated/nodes/AnimatedAddition.js +71 -0
  61. package/Libraries/Animated/nodes/AnimatedColor.js +323 -0
  62. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +80 -0
  63. package/Libraries/Animated/nodes/AnimatedDivision.js +87 -0
  64. package/Libraries/Animated/nodes/AnimatedInterpolation.js +420 -0
  65. package/Libraries/Animated/nodes/AnimatedModulo.js +66 -0
  66. package/Libraries/Animated/nodes/AnimatedMultiplication.js +70 -0
  67. package/Libraries/Animated/nodes/AnimatedNode.js +180 -0
  68. package/Libraries/Animated/nodes/AnimatedObject.js +169 -0
  69. package/Libraries/Animated/nodes/AnimatedProps.js +332 -0
  70. package/Libraries/Animated/nodes/AnimatedStyle.js +256 -0
  71. package/Libraries/Animated/nodes/AnimatedSubtraction.js +71 -0
  72. package/Libraries/Animated/nodes/AnimatedTracking.js +104 -0
  73. package/Libraries/Animated/nodes/AnimatedTransform.js +202 -0
  74. package/Libraries/Animated/nodes/AnimatedValue.js +379 -0
  75. package/Libraries/Animated/nodes/AnimatedValueXY.js +240 -0
  76. package/Libraries/Animated/nodes/AnimatedWithChildren.js +85 -0
  77. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +22 -0
  78. package/Libraries/Animated/useAnimatedProps.js +18 -0
  79. package/Libraries/Animated/useAnimatedValue.d.ts +15 -0
  80. package/Libraries/Animated/useAnimatedValue.js +23 -0
  81. package/Libraries/AppState/AppState.d.ts +58 -0
  82. package/Libraries/AppState/AppState.js +113 -144
  83. package/Libraries/AppState/NativeAppState.js +5 -21
  84. package/Libraries/BatchedBridge/BatchedBridge.js +6 -4
  85. package/Libraries/BatchedBridge/MessageQueue.js +146 -119
  86. package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
  87. package/Libraries/BatchedBridge/NativeModules.js +42 -23
  88. package/Libraries/Blob/Blob.js +24 -7
  89. package/Libraries/Blob/BlobManager.js +14 -11
  90. package/Libraries/Blob/BlobRegistry.js +18 -19
  91. package/Libraries/Blob/BlobTypes.js +1 -1
  92. package/Libraries/Blob/File.js +5 -5
  93. package/Libraries/Blob/FileReader.js +96 -31
  94. package/Libraries/Blob/NativeBlobModule.js +5 -17
  95. package/Libraries/Blob/NativeFileReaderModule.js +5 -14
  96. package/Libraries/Blob/URL.js +65 -89
  97. package/Libraries/Blob/URLSearchParams.js +149 -0
  98. package/Libraries/Blob/URLSearchParams.js.flow +29 -0
  99. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +177 -0
  100. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +493 -0
  101. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +466 -96
  102. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +4 -19
  103. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +10 -0
  104. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +4 -51
  105. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +36 -0
  106. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +26 -0
  107. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js +17 -0
  108. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js.flow +20 -0
  109. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +36 -0
  110. package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
  111. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +88 -62
  112. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +4 -48
  113. package/Libraries/Components/Button/ButtonWin32.Props.d.ts +36 -36
  114. package/Libraries/Components/Button/ButtonWin32.Props.js +3 -3
  115. package/Libraries/Components/Button/ButtonWin32.Props.js.map +1 -0
  116. package/Libraries/Components/Button/ButtonWin32.d.ts +19 -19
  117. package/Libraries/Components/Button/ButtonWin32.js +83 -103
  118. package/Libraries/Components/Button/ButtonWin32.js.map +1 -0
  119. package/Libraries/Components/Button.d.ts +42 -0
  120. package/Libraries/Components/Button.js +335 -129
  121. package/Libraries/Components/Button.win32.js +463 -0
  122. package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
  123. package/Libraries/Components/Clipboard/Clipboard.js +4 -6
  124. package/Libraries/Components/Clipboard/NativeClipboard.js +4 -14
  125. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +4 -117
  126. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +47 -127
  127. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
  128. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +5 -2
  129. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +8 -3
  130. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +18 -0
  131. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +71 -0
  132. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +138 -0
  133. package/Libraries/Components/EnterString.win32.d.ts +12 -12
  134. package/Libraries/Components/EnterString.win32.js +82 -114
  135. package/Libraries/Components/EnterString.win32.js.map +1 -0
  136. package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
  137. package/Libraries/Components/Keyboard/Keyboard.js +92 -80
  138. package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
  139. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +134 -64
  140. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +4 -13
  141. package/Libraries/Components/LayoutConformance/LayoutConformance.d.ts +21 -0
  142. package/Libraries/Components/LayoutConformance/LayoutConformance.js +60 -0
  143. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +29 -0
  144. package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
  145. package/Libraries/Components/Pressable/Pressable.js +198 -76
  146. package/Libraries/Components/Pressable/Pressable.win32.js +419 -0
  147. package/Libraries/Components/Pressable/useAndroidRippleForView.js +49 -34
  148. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +32 -65
  149. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
  150. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +36 -2
  151. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +3 -26
  152. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +63 -0
  153. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +4 -78
  154. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +5 -56
  155. package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
  156. package/Libraries/Components/RefreshControl/RefreshControl.js +31 -50
  157. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +4 -21
  158. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +33 -0
  159. package/Libraries/Components/SafeAreaView/SafeAreaView.js +13 -39
  160. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +13 -41
  161. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +4 -32
  162. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +36 -21
  163. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +11 -20
  164. package/Libraries/Components/ScrollView/ScrollView.d.ts +937 -0
  165. package/Libraries/Components/ScrollView/ScrollView.js +1189 -484
  166. package/Libraries/Components/ScrollView/ScrollViewCommands.js +8 -8
  167. package/Libraries/Components/ScrollView/ScrollViewContext.js +25 -0
  168. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +166 -18
  169. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +15 -18
  170. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +222 -66
  171. package/Libraries/Components/ScrollView/processDecelerationRate.js +4 -6
  172. package/Libraries/Components/Sound/NativeSoundManager.js +4 -15
  173. package/Libraries/Components/Sound/SoundManager.js +4 -5
  174. package/Libraries/Components/StaticRenderer.js +6 -6
  175. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +4 -27
  176. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +4 -35
  177. package/Libraries/Components/StatusBar/StatusBar.d.ts +142 -0
  178. package/Libraries/Components/StatusBar/StatusBar.js +100 -89
  179. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +3 -55
  180. package/Libraries/Components/Switch/Switch.d.ts +118 -0
  181. package/Libraries/Components/Switch/Switch.js +217 -148
  182. package/Libraries/Components/Switch/SwitchNativeComponent.js +3 -49
  183. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +254 -100
  184. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
  185. package/Libraries/Components/TextInput/InputAccessoryView.js +32 -25
  186. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +3 -17
  187. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +27 -34
  188. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +22 -42
  189. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +170 -0
  190. package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +9 -8
  191. package/Libraries/Components/TextInput/Tests/TextInputTest.js +128 -126
  192. package/Libraries/Components/TextInput/Tests/TextInputTest.js.map +1 -0
  193. package/Libraries/Components/TextInput/TextInput.d.ts +1055 -0
  194. package/Libraries/Components/TextInput/TextInput.flow.js +1172 -0
  195. package/Libraries/Components/TextInput/TextInput.flow.win32.js +1206 -0
  196. package/Libraries/Components/TextInput/TextInput.js +682 -914
  197. package/Libraries/Components/TextInput/TextInput.win32.js +1108 -179
  198. package/Libraries/Components/TextInput/TextInputNativeCommands.js +29 -0
  199. package/Libraries/Components/TextInput/TextInputState.js +30 -23
  200. package/Libraries/Components/TextInput/TextInputState.win32.js +43 -32
  201. package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +26 -0
  202. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +4 -31
  203. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +13 -12
  204. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +109 -0
  205. package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +4 -30
  206. package/Libraries/Components/ToastAndroid/ToastAndroid.js +17 -0
  207. package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +109 -0
  208. package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +7 -29
  209. package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +45 -0
  210. package/Libraries/Components/Touchable/BoundingDimensions.js +14 -7
  211. package/Libraries/Components/Touchable/PooledClass.js +28 -17
  212. package/Libraries/Components/Touchable/Position.js +10 -6
  213. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.d.ts +9 -8
  214. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +344 -381
  215. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -0
  216. package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
  217. package/Libraries/Components/Touchable/Touchable.js +149 -146
  218. package/Libraries/Components/Touchable/Touchable.win32.js +992 -0
  219. package/Libraries/Components/Touchable/TouchableBounce.js +81 -63
  220. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +62 -0
  221. package/Libraries/Components/Touchable/TouchableHighlight.js +118 -75
  222. package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +119 -0
  223. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +187 -118
  224. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +307 -51
  225. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +82 -0
  226. package/Libraries/Components/Touchable/TouchableOpacity.js +161 -70
  227. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +37 -34
  228. package/Libraries/Components/Touchable/TouchableWin32.Props.js +3 -3
  229. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -0
  230. package/Libraries/Components/Touchable/TouchableWin32.Types.d.ts +114 -114
  231. package/Libraries/Components/Touchable/TouchableWin32.Types.js +3 -3
  232. package/Libraries/Components/Touchable/TouchableWin32.Types.js.map +1 -0
  233. package/Libraries/Components/Touchable/TouchableWin32.d.ts +91 -91
  234. package/Libraries/Components/Touchable/TouchableWin32.js +507 -529
  235. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -0
  236. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +151 -0
  237. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +236 -142
  238. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +4 -20
  239. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +13 -6
  240. package/Libraries/Components/View/ReactNativeStyleAttributes.js +206 -70
  241. package/Libraries/Components/View/ReactNativeViewAttributes.js +8 -4
  242. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +38 -14
  243. package/Libraries/Components/View/View.d.ts +29 -0
  244. package/Libraries/Components/View/View.js +112 -20
  245. package/Libraries/Components/View/View.win32.js +287 -0
  246. package/Libraries/Components/View/ViewAccessibility.d.ts +567 -0
  247. package/Libraries/Components/View/ViewAccessibility.js +351 -13
  248. package/Libraries/Components/View/ViewAccessibility.win32.js +421 -0
  249. package/Libraries/Components/View/ViewNativeComponent.js +15 -71
  250. package/Libraries/Components/View/ViewPropTypes.d.ts +374 -0
  251. package/Libraries/Components/View/ViewPropTypes.js +196 -178
  252. package/Libraries/Components/View/ViewPropTypes.win32.js +596 -0
  253. package/Libraries/Components/View/ViewWin32.d.ts +30 -12
  254. package/Libraries/Components/View/ViewWin32.js +130 -80
  255. package/Libraries/Core/Devtools/getDevServer.js +10 -11
  256. package/Libraries/Core/Devtools/loadBundleFromServer.js +196 -0
  257. package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +197 -0
  258. package/Libraries/Core/Devtools/openFileInEditor.js +8 -6
  259. package/Libraries/Core/Devtools/openURLInBrowser.js +8 -6
  260. package/Libraries/Core/Devtools/parseErrorStack.js +17 -26
  261. package/Libraries/Core/Devtools/parseHermesStack.js +73 -46
  262. package/Libraries/Core/Devtools/symbolicateStackTrace.js +17 -61
  263. package/Libraries/Core/ExceptionsManager.js +145 -114
  264. package/Libraries/Core/ExtendedError.js +33 -0
  265. package/Libraries/Core/InitializeCore.js +6 -19
  266. package/Libraries/Core/NativeExceptionsManager.js +5 -99
  267. package/Libraries/Core/RawEventEmitter.js +39 -0
  268. package/Libraries/Core/ReactFiberErrorDialog.js +48 -39
  269. package/Libraries/Core/ReactNativeVersion.js +41 -9
  270. package/Libraries/Core/ReactNativeVersionCheck.js +10 -9
  271. package/Libraries/Core/ReactNativeVersionCheck.win32.js +10 -9
  272. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +5 -20
  273. package/Libraries/Core/Timers/JSTimers.js +105 -129
  274. package/Libraries/Core/Timers/NativeTiming.js +5 -18
  275. package/Libraries/Core/Timers/immediateShim.js +61 -0
  276. package/Libraries/Core/Timers/queueMicrotask.js +42 -0
  277. package/Libraries/Core/checkNativeVersion.js +2 -1
  278. package/Libraries/Core/polyfillPromise.js +19 -3
  279. package/Libraries/Core/registerCallableModule.d.ts +16 -0
  280. package/Libraries/Core/registerCallableModule.js +42 -0
  281. package/Libraries/Core/setUpAlert.js +3 -3
  282. package/Libraries/Core/setUpBatchedBridge.js +21 -27
  283. package/Libraries/Core/setUpDeveloperTools.js +21 -53
  284. package/Libraries/Core/setUpErrorHandling.js +21 -19
  285. package/Libraries/Core/setUpGlobals.js +8 -6
  286. package/Libraries/Core/setUpNavigator.js +8 -7
  287. package/Libraries/Core/setUpPerformance.js +32 -0
  288. package/Libraries/Core/setUpReactDevTools.js +234 -15
  289. package/Libraries/Core/setUpReactRefresh.js +5 -7
  290. package/Libraries/Core/setUpRegeneratorRuntime.js +28 -9
  291. package/Libraries/Core/setUpSegmentFetcher.js +9 -47
  292. package/Libraries/Core/setUpTimers.js +78 -8
  293. package/Libraries/Core/setUpXHR.js +16 -13
  294. package/Libraries/Debugging/DebuggingOverlay.js +108 -0
  295. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +14 -0
  296. package/Libraries/Debugging/DebuggingOverlayRegistry.js +515 -0
  297. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +31 -0
  298. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +63 -0
  299. package/Libraries/EventEmitter/NativeEventEmitter.js +104 -41
  300. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +29 -0
  301. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +29 -68
  302. package/Libraries/EventEmitter/RCTEventEmitter.js +5 -5
  303. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
  304. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +4 -6
  305. package/Libraries/Image/AssetRegistry.js +5 -29
  306. package/Libraries/Image/AssetSourceResolver.js +95 -45
  307. package/Libraries/Image/AssetUtils.js +47 -0
  308. package/Libraries/Image/Image.android.js +181 -240
  309. package/Libraries/Image/Image.d.ts +389 -0
  310. package/Libraries/Image/Image.ios.js +151 -102
  311. package/Libraries/Image/Image.js +17 -0
  312. package/Libraries/Image/Image.js.flow +27 -0
  313. package/Libraries/Image/Image.win32.js +158 -93
  314. package/Libraries/Image/ImageAnalyticsTagContext.js +22 -0
  315. package/Libraries/Image/ImageBackground.js +32 -14
  316. package/Libraries/Image/ImageInjection.js +87 -0
  317. package/Libraries/Image/ImageProps.js +262 -61
  318. package/Libraries/Image/ImageResizeMode.d.ts +56 -0
  319. package/Libraries/Image/ImageResizeMode.js +5 -2
  320. package/Libraries/Image/ImageSource.d.ts +79 -0
  321. package/Libraries/Image/ImageSource.js +75 -23
  322. package/Libraries/Image/ImageSourceUtils.js +82 -0
  323. package/Libraries/Image/ImageTypes.d.ts +25 -25
  324. package/Libraries/Image/ImageTypes.flow.js +88 -0
  325. package/Libraries/Image/ImageTypes.js +8 -8
  326. package/Libraries/Image/ImageTypes.js.map +1 -0
  327. package/Libraries/Image/ImageUtils.js +25 -0
  328. package/Libraries/Image/ImageViewNativeComponent.js +145 -30
  329. package/Libraries/Image/NativeImageEditor.js +14 -0
  330. package/Libraries/Image/NativeImageLoaderAndroid.js +5 -31
  331. package/Libraries/Image/NativeImageLoaderIOS.js +5 -23
  332. package/Libraries/Image/NativeImageLoaderWin32.js +5 -31
  333. package/Libraries/Image/NativeImageStoreAndroid.js +14 -0
  334. package/Libraries/Image/NativeImageStoreIOS.js +14 -0
  335. package/Libraries/Image/RelativeImageStub.js +7 -4
  336. package/Libraries/Image/Tests/ImageWin32Test.d.ts +9 -8
  337. package/Libraries/Image/Tests/ImageWin32Test.js +22 -19
  338. package/Libraries/Image/Tests/ImageWin32Test.js.map +1 -0
  339. package/Libraries/Image/TextInlineImageNativeComponent.js +37 -8
  340. package/Libraries/Image/assetPaths.js +36 -0
  341. package/Libraries/Image/nativeImageSource.js +7 -9
  342. package/Libraries/Image/resolveAssetSource.js +68 -32
  343. package/Libraries/Image/resolveAssetSource.win32.js +19 -7
  344. package/Libraries/Interaction/FrameRateLogger.js +12 -24
  345. package/Libraries/Interaction/InteractionManager.d.ts +87 -0
  346. package/Libraries/Interaction/InteractionManager.js +86 -120
  347. package/Libraries/Interaction/NativeFrameRateLogger.js +5 -15
  348. package/Libraries/Interaction/PanResponder.d.ts +202 -0
  349. package/Libraries/Interaction/PanResponder.js +55 -54
  350. package/Libraries/Interaction/TouchHistoryMath.js +59 -30
  351. package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
  352. package/Libraries/LayoutAnimation/LayoutAnimation.js +115 -46
  353. package/Libraries/Linking/Linking.d.ts +61 -0
  354. package/Libraries/Linking/Linking.js +57 -47
  355. package/Libraries/Linking/NativeIntentAndroid.js +14 -0
  356. package/Libraries/Linking/NativeLinkingManager.js +14 -0
  357. package/Libraries/Lists/FillRateHelper.js +7 -233
  358. package/Libraries/Lists/FlatList.d.ts +248 -0
  359. package/Libraries/Lists/FlatList.js +219 -156
  360. package/Libraries/Lists/SectionList.d.ts +267 -0
  361. package/Libraries/Lists/SectionList.js +72 -70
  362. package/Libraries/Lists/SectionListModern.js +248 -0
  363. package/Libraries/Lists/ViewabilityHelper.js +12 -328
  364. package/Libraries/Lists/VirtualizeUtils.js +5 -236
  365. package/Libraries/Lists/VirtualizedList.js +13 -2225
  366. package/Libraries/Lists/VirtualizedListContext.js +18 -0
  367. package/Libraries/Lists/VirtualizedSectionList.js +13 -566
  368. package/Libraries/LogBox/Data/LogBoxData.js +127 -90
  369. package/Libraries/LogBox/Data/LogBoxLog.js +152 -17
  370. package/Libraries/LogBox/Data/LogBoxSymbolication.js +10 -9
  371. package/Libraries/LogBox/Data/parseLogBoxLog.js +299 -84
  372. package/Libraries/LogBox/LogBox.d.ts +28 -0
  373. package/Libraries/LogBox/LogBox.js +199 -121
  374. package/Libraries/LogBox/LogBoxInspectorContainer.js +9 -9
  375. package/Libraries/LogBox/LogBoxNotificationContainer.js +13 -10
  376. package/Libraries/LogBox/UI/AnsiHighlight.js +47 -25
  377. package/Libraries/LogBox/UI/LogBoxButton.js +15 -13
  378. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  379. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  380. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  381. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  382. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  383. package/Libraries/LogBox/UI/LogBoxInspector.js +14 -78
  384. package/Libraries/LogBox/UI/LogBoxInspectorBody.js +93 -0
  385. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +65 -39
  386. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +192 -0
  387. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +18 -54
  388. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +60 -0
  389. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +27 -81
  390. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +119 -0
  391. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +78 -0
  392. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +12 -11
  393. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +23 -18
  394. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +199 -0
  395. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
  396. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +12 -15
  397. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +141 -0
  398. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +12 -12
  399. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +120 -0
  400. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +22 -13
  401. package/Libraries/LogBox/UI/LogBoxMessage.js +100 -19
  402. package/Libraries/LogBox/UI/LogBoxNotification.js +24 -158
  403. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +65 -0
  404. package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +69 -0
  405. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +60 -0
  406. package/Libraries/LogBox/UI/LogBoxStyle.js +1 -3
  407. package/Libraries/LogBox/UI/LogBoxStyle.win32.js +65 -0
  408. package/Libraries/Modal/Modal.d.ts +122 -0
  409. package/Libraries/Modal/Modal.js +264 -128
  410. package/Libraries/Modal/NativeModalManager.js +5 -13
  411. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +5 -117
  412. package/Libraries/NativeComponent/BaseViewConfig.android.js +436 -0
  413. package/Libraries/NativeComponent/BaseViewConfig.ios.js +424 -0
  414. package/Libraries/NativeComponent/BaseViewConfig.js +17 -0
  415. package/Libraries/NativeComponent/BaseViewConfig.js.flow +14 -0
  416. package/Libraries/NativeComponent/BaseViewConfig.win32.js +415 -0
  417. package/Libraries/NativeComponent/NativeComponentRegistry.js +164 -0
  418. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +30 -0
  419. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +25 -0
  420. package/Libraries/NativeComponent/StaticViewConfigValidator.js +148 -0
  421. package/Libraries/NativeComponent/ViewConfig.js +52 -0
  422. package/Libraries/NativeComponent/ViewConfigIgnore.js +51 -0
  423. package/Libraries/NativeModules/specs/NativeDevMenu.js +5 -15
  424. package/Libraries/NativeModules/specs/NativeDevSettings.js +5 -25
  425. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +5 -11
  426. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +5 -40
  427. package/Libraries/NativeModules/specs/NativeLogBox.js +5 -12
  428. package/Libraries/NativeModules/specs/NativeRedBox.js +5 -12
  429. package/Libraries/NativeModules/specs/NativeSourceCode.js +5 -13
  430. package/Libraries/Network/FormData.js +22 -6
  431. package/Libraries/Network/NativeNetworkingAndroid.js +5 -29
  432. package/Libraries/Network/NativeNetworkingIOS.js +5 -29
  433. package/Libraries/Network/RCTNetworking.android.js +34 -22
  434. package/Libraries/Network/RCTNetworking.ios.js +23 -19
  435. package/Libraries/Network/RCTNetworking.js +17 -0
  436. package/Libraries/Network/RCTNetworking.js.flow +44 -0
  437. package/Libraries/Network/RCTNetworking.win32.js +41 -70
  438. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +57 -0
  439. package/Libraries/Network/XMLHttpRequest.js +276 -89
  440. package/Libraries/Network/convertRequestBody.js +9 -6
  441. package/Libraries/Network/fetch.js +6 -4
  442. package/Libraries/Performance/Systrace.d.ts +66 -0
  443. package/Libraries/Performance/Systrace.js +117 -172
  444. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +5 -51
  445. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +163 -0
  446. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +106 -66
  447. package/Libraries/PersonaCoin/PersonaCoin.d.ts +3 -3
  448. package/Libraries/PersonaCoin/PersonaCoin.js +16 -22
  449. package/Libraries/PersonaCoin/PersonaCoin.js.map +1 -0
  450. package/Libraries/PersonaCoin/PersonaCoinPropTypes.d.ts +2 -2
  451. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js +20 -20
  452. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js.map +1 -0
  453. package/Libraries/PersonaCoin/PersonaCoinTypes.d.ts +33 -33
  454. package/Libraries/PersonaCoin/PersonaCoinTypes.js +24 -24
  455. package/Libraries/PersonaCoin/PersonaCoinTypes.js.map +1 -0
  456. package/Libraries/Pressability/HoverState.js +5 -4
  457. package/Libraries/Pressability/HoverState.win32.js +63 -0
  458. package/Libraries/Pressability/Pressability.js +275 -181
  459. package/Libraries/Pressability/Pressability.win32.js +1093 -0
  460. package/Libraries/Pressability/PressabilityDebug.js +33 -29
  461. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +49 -0
  462. package/Libraries/Pressability/PressabilityTypes.js +18 -0
  463. package/Libraries/Pressability/usePressability.js +28 -11
  464. package/Libraries/Promise.js +7 -37
  465. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +5 -65
  466. package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +295 -0
  467. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +249 -94
  468. package/Libraries/QuirkSettings/CachingNativeQuirkSettings.js +30 -0
  469. package/Libraries/QuirkSettings/NativeQuirkSettings.js +17 -0
  470. package/Libraries/QuirkSettings/QuirkSettings.js +34 -0
  471. package/Libraries/QuirkSettings/Quirks.js +17 -0
  472. package/Libraries/ReactNative/AppContainer-dev.js +210 -0
  473. package/Libraries/ReactNative/AppContainer-prod.js +49 -0
  474. package/Libraries/ReactNative/AppContainer.js +16 -141
  475. package/Libraries/ReactNative/AppRegistry.d.ts +121 -0
  476. package/Libraries/ReactNative/AppRegistry.flow.js +49 -0
  477. package/Libraries/ReactNative/AppRegistry.js +21 -292
  478. package/Libraries/ReactNative/AppRegistry.js.flow +23 -0
  479. package/Libraries/ReactNative/AppRegistryImpl.js +307 -0
  480. package/Libraries/ReactNative/BridgelessUIManager.js +414 -0
  481. package/Libraries/ReactNative/DisplayMode.js +32 -0
  482. package/Libraries/ReactNative/FabricUIManager.js +140 -29
  483. package/Libraries/ReactNative/HeadlessJsTaskError.js +1 -3
  484. package/Libraries/ReactNative/I18nManager.d.ts +25 -0
  485. package/Libraries/ReactNative/I18nManager.js +22 -16
  486. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +5 -12
  487. package/Libraries/ReactNative/NativeI18nManager.js +5 -17
  488. package/Libraries/ReactNative/NativeUIManager.js +5 -113
  489. package/Libraries/ReactNative/PaperUIManager.js +82 -55
  490. package/Libraries/ReactNative/PaperUIManager.win32.js +210 -0
  491. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +150 -0
  492. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +152 -0
  493. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +38 -0
  494. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +511 -0
  495. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +33 -0
  496. package/Libraries/ReactNative/ReactNativeRuntimeDiagnostics.js +68 -0
  497. package/Libraries/ReactNative/RendererImplementation.js +176 -0
  498. package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
  499. package/Libraries/ReactNative/RendererProxy.js +26 -0
  500. package/Libraries/ReactNative/RootTag.d.ts +13 -0
  501. package/Libraries/ReactNative/RootTag.js +27 -0
  502. package/Libraries/ReactNative/UIManager.d.ts +114 -0
  503. package/Libraries/ReactNative/UIManager.js +180 -26
  504. package/Libraries/ReactNative/UIManagerProperties.js +6 -9
  505. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +33 -0
  506. package/Libraries/ReactNative/getNativeComponentAttributes.js +59 -31
  507. package/Libraries/ReactNative/renderApplication.js +82 -24
  508. package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
  509. package/Libraries/ReactNative/requireNativeComponent.js +10 -6
  510. package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +2 -2
  511. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +97 -21
  512. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +51 -0
  513. package/Libraries/Renderer/implementations/ReactFabric-dev.js +16364 -19918
  514. package/Libraries/Renderer/implementations/ReactFabric-prod.js +8703 -5492
  515. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +9377 -5787
  516. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +16614 -20522
  517. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +8620 -5484
  518. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +9363 -5842
  519. package/Libraries/Renderer/shims/ReactFabric.js +12 -9
  520. package/Libraries/Renderer/shims/ReactFeatureFlags.js +7 -3
  521. package/Libraries/Renderer/shims/ReactNative.js +8 -5
  522. package/Libraries/Renderer/shims/ReactNativeTypes.js +202 -118
  523. package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +261 -0
  524. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +29 -37
  525. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +10 -7
  526. package/Libraries/Settings/NativeSettingsManager.js +5 -17
  527. package/Libraries/Settings/Settings.d.ts +18 -0
  528. package/Libraries/Settings/Settings.ios.js +10 -9
  529. package/Libraries/Settings/Settings.js +27 -0
  530. package/Libraries/Settings/Settings.win32.js +20 -21
  531. package/Libraries/Settings/SettingsFallback.js +33 -0
  532. package/Libraries/Share/NativeShareModule.js +5 -15
  533. package/Libraries/Share/Share.d.ts +80 -0
  534. package/Libraries/Share/Share.js +42 -27
  535. package/Libraries/StyleSheet/EdgeInsetsPropType.js +6 -3
  536. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +11 -12
  537. package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
  538. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +54 -18
  539. package/Libraries/StyleSheet/PlatformColorValueTypes.js +15 -0
  540. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +22 -0
  541. package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +15 -5
  542. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
  543. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +12 -6
  544. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +11 -5
  545. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +2 -4
  546. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.js +2 -2
  547. package/Libraries/StyleSheet/PointPropType.js +2 -2
  548. package/Libraries/StyleSheet/Rect.js +5 -6
  549. package/Libraries/StyleSheet/StyleSheet.d.ts +150 -0
  550. package/Libraries/StyleSheet/StyleSheet.js +49 -224
  551. package/Libraries/StyleSheet/StyleSheet.js.flow +188 -0
  552. package/Libraries/StyleSheet/StyleSheetExports.js +210 -0
  553. package/Libraries/StyleSheet/StyleSheetExports.js.flow +112 -0
  554. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +573 -0
  555. package/Libraries/StyleSheet/StyleSheetTypes.js +549 -144
  556. package/Libraries/StyleSheet/flattenStyle.js +24 -9
  557. package/Libraries/StyleSheet/normalizeColor.js +12 -371
  558. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
  559. package/Libraries/StyleSheet/private/_TransformStyle.js +97 -0
  560. package/Libraries/StyleSheet/processAspectRatio.js +65 -0
  561. package/Libraries/StyleSheet/processBackgroundImage.js +819 -0
  562. package/Libraries/StyleSheet/processBoxShadow.js +212 -0
  563. package/Libraries/StyleSheet/processColor.d.ts +16 -0
  564. package/Libraries/StyleSheet/processColor.js +8 -10
  565. package/Libraries/StyleSheet/processColorArray.js +20 -9
  566. package/Libraries/StyleSheet/processFilter.js +324 -0
  567. package/Libraries/StyleSheet/processFontVariant.js +30 -0
  568. package/Libraries/StyleSheet/processTransform.js +133 -113
  569. package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
  570. package/Libraries/StyleSheet/setNormalizedColorAlpha.js +3 -3
  571. package/Libraries/StyleSheet/splitLayoutProps.js +57 -49
  572. package/Libraries/Text/Text.d.ts +313 -0
  573. package/Libraries/Text/Text.js +515 -269
  574. package/Libraries/Text/Text.win32.js +588 -0
  575. package/Libraries/Text/TextAncestor.js +5 -7
  576. package/Libraries/Text/TextAncestorContext.js +23 -0
  577. package/Libraries/Text/TextNativeComponent.js +82 -0
  578. package/Libraries/Text/TextNativeComponent.win32.js +117 -0
  579. package/Libraries/Text/TextProps.js +175 -88
  580. package/Libraries/Text/TextProps.win32.js +291 -0
  581. package/Libraries/TurboModule/RCTExport.d.ts +12 -0
  582. package/Libraries/TurboModule/RCTExport.js +3 -1
  583. package/Libraries/TurboModule/TurboModuleRegistry.d.ts +13 -0
  584. package/Libraries/TurboModule/TurboModuleRegistry.js +24 -16
  585. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +5 -27
  586. package/Libraries/Types/CodegenTypes.js +13 -5
  587. package/Libraries/Types/CodegenTypesNamespace.d.ts +45 -0
  588. package/Libraries/Types/CodegenTypesNamespace.js +15 -0
  589. package/Libraries/Types/CoreEventTypes.d.ts +268 -0
  590. package/Libraries/Types/CoreEventTypes.js +260 -92
  591. package/Libraries/Types/CoreEventTypes.win32.js +378 -0
  592. package/Libraries/Types/ReactDevToolsTypes.js +53 -0
  593. package/Libraries/Types/RootTagTypes.js +11 -0
  594. package/Libraries/Types/UIManagerJSInterface.js +16 -0
  595. package/Libraries/UTFSequence.js +10 -7
  596. package/Libraries/Utilities/Appearance.d.ts +53 -0
  597. package/Libraries/Utilities/Appearance.js +112 -63
  598. package/Libraries/Utilities/BackHandler.android.js +20 -40
  599. package/Libraries/Utilities/BackHandler.d.ts +34 -0
  600. package/Libraries/Utilities/BackHandler.ios.js +20 -110
  601. package/Libraries/Utilities/BackHandler.js +17 -0
  602. package/Libraries/Utilities/BackHandler.js.flow +25 -0
  603. package/Libraries/Utilities/BackHandler.win32.js +96 -7
  604. package/Libraries/Utilities/DevLoadingView.js +64 -0
  605. package/Libraries/Utilities/DevSettings.d.ts +32 -0
  606. package/Libraries/Utilities/DevSettings.js +69 -48
  607. package/Libraries/Utilities/DeviceInfo.js +4 -4
  608. package/Libraries/Utilities/Dimensions.d.ts +79 -0
  609. package/Libraries/Utilities/Dimensions.js +35 -49
  610. package/Libraries/Utilities/Dimensions.win32.js +112 -19
  611. package/Libraries/Utilities/FeatureDetection.js +29 -0
  612. package/Libraries/Utilities/FocusManager.win32.d.ts +12 -0
  613. package/Libraries/Utilities/FocusManager.win32.js +42 -0
  614. package/Libraries/Utilities/GlobalPerformanceLogger.js +5 -6
  615. package/Libraries/Utilities/HMRClient.js +89 -44
  616. package/Libraries/Utilities/HMRClientProdShim.js +3 -3
  617. package/Libraries/Utilities/IPerformanceLogger.d.ts +48 -0
  618. package/Libraries/Utilities/IPerformanceLogger.js +49 -0
  619. package/Libraries/Utilities/NativeAppearance.js +5 -27
  620. package/Libraries/Utilities/NativeDevLoadingView.js +5 -16
  621. package/Libraries/Utilities/NativeDeviceInfo.js +4 -41
  622. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +5 -29
  623. package/Libraries/Utilities/NativePlatformConstantsIOS.js +5 -25
  624. package/Libraries/Utilities/NativePlatformConstantsWin.js +4 -20
  625. package/Libraries/Utilities/PerformanceLoggerContext.js +17 -10
  626. package/Libraries/Utilities/PixelRatio.d.ts +64 -0
  627. package/Libraries/Utilities/PixelRatio.js +7 -7
  628. package/Libraries/Utilities/Platform.android.js +39 -21
  629. package/Libraries/Utilities/Platform.d.ts +106 -0
  630. package/Libraries/Utilities/Platform.ios.js +41 -24
  631. package/Libraries/Utilities/Platform.js +17 -0
  632. package/Libraries/Utilities/Platform.js.flow +13 -0
  633. package/Libraries/Utilities/Platform.win32.js +42 -18
  634. package/Libraries/Utilities/PlatformTypes.js +224 -0
  635. package/Libraries/Utilities/PolyfillFunctions.js +9 -11
  636. package/Libraries/Utilities/RCTLog.js +7 -6
  637. package/Libraries/Utilities/ReactNativeTestTools.js +38 -60
  638. package/Libraries/Utilities/SceneTracker.js +8 -7
  639. package/Libraries/Utilities/binaryToBase64.js +7 -5
  640. package/Libraries/Utilities/codegenNativeCommands.d.ts +18 -0
  641. package/Libraries/Utilities/codegenNativeCommands.js +11 -9
  642. package/Libraries/Utilities/codegenNativeComponent.d.ts +26 -0
  643. package/Libraries/Utilities/codegenNativeComponent.js +29 -19
  644. package/Libraries/Utilities/createPerformanceLogger.js +298 -244
  645. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +13 -7
  646. package/Libraries/Utilities/defineLazyObjectProperty.js +4 -4
  647. package/Libraries/Utilities/differ/deepDiffer.js +9 -9
  648. package/Libraries/Utilities/differ/insetsDiffer.js +5 -5
  649. package/Libraries/Utilities/differ/matricesDiffer.js +5 -4
  650. package/Libraries/Utilities/differ/pointsDiffer.js +5 -5
  651. package/Libraries/Utilities/differ/sizesDiffer.js +13 -7
  652. package/Libraries/Utilities/dismissKeyboard.js +4 -3
  653. package/Libraries/Utilities/logError.js +4 -4
  654. package/Libraries/Utilities/mapWithSeparator.js +3 -3
  655. package/Libraries/Utilities/stringifySafe.js +10 -10
  656. package/Libraries/Utilities/stringifyViewConfig.js +22 -0
  657. package/Libraries/Utilities/useColorScheme.js +11 -17
  658. package/Libraries/Utilities/useMergeRefs.js +59 -0
  659. package/Libraries/Utilities/useRefEffect.js +45 -0
  660. package/Libraries/Utilities/useWindowDimensions.js +16 -9
  661. package/Libraries/Utilities/warnOnce.js +4 -6
  662. package/Libraries/Vibration/NativeVibration.js +5 -16
  663. package/Libraries/Vibration/Vibration.d.ts +43 -0
  664. package/Libraries/Vibration/Vibration.js +19 -18
  665. package/Libraries/WebSocket/NativeWebSocketModule.js +5 -26
  666. package/Libraries/WebSocket/WebSocket.js +93 -45
  667. package/Libraries/WebSocket/WebSocketInterceptor.js +78 -31
  668. package/Libraries/__tests__/ButtonWin32-test.js +17 -0
  669. package/Libraries/platform-types.d.ts +25 -0
  670. package/Libraries/promiseRejectionTrackingOptions.js +58 -0
  671. package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
  672. package/Libraries/vendor/core/ErrorUtils.js +30 -4
  673. package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
  674. package/Libraries/vendor/emitter/EventEmitter.js +137 -191
  675. package/babel.config.js +3 -0
  676. package/flow/HermesInternalType.js +114 -0
  677. package/flow/Stringish.js +1 -1
  678. package/flow/bom.js.flow +554 -0
  679. package/flow/console.js +1 -1
  680. package/flow/cssom.js.flow +575 -0
  681. package/flow/dom.js.flow +6289 -0
  682. package/flow/global.js +88 -0
  683. package/flow/prettier.js.flow +14 -0
  684. package/flow/streams.js.flow +140 -0
  685. package/index.js +271 -502
  686. package/index.win32.js +520 -44
  687. package/interface.js +9 -13
  688. package/jest/MockNativeMethods.js +10 -4
  689. package/jest/RefreshControlMock.js +32 -0
  690. package/jest/assetFileTransformer.js +8 -5
  691. package/jest/local-setup.js +29 -0
  692. package/jest/mock.js +39 -0
  693. package/jest/mockComponent.js +65 -23
  694. package/jest/mockNativeComponent.js +51 -0
  695. package/jest/mocks/AccessibilityInfo.js +62 -0
  696. package/jest/mocks/ActivityIndicator.js +23 -0
  697. package/jest/mocks/AppState.js +19 -0
  698. package/jest/mocks/Clipboard.js +16 -0
  699. package/jest/mocks/Image.js +23 -0
  700. package/jest/mocks/InitializeCore.js +9 -0
  701. package/jest/mocks/Linking.js +28 -0
  702. package/jest/mocks/Modal.js +33 -0
  703. package/jest/mocks/NativeComponentRegistry.js +30 -0
  704. package/jest/mocks/NativeModules.js +239 -0
  705. package/jest/mocks/RefreshControl.js +31 -0
  706. package/jest/mocks/RendererProxy.js +45 -0
  707. package/jest/mocks/ScrollView.js +58 -0
  708. package/jest/mocks/Text.js +27 -0
  709. package/jest/mocks/TextInput.js +32 -0
  710. package/jest/mocks/UIManager.js +60 -0
  711. package/jest/mocks/Vibration.js +16 -0
  712. package/jest/mocks/View.js +27 -0
  713. package/jest/mocks/ViewNativeComponent.js +23 -0
  714. package/jest/mocks/requireNativeComponent.js +22 -0
  715. package/jest/mocks/useColorScheme.js +18 -0
  716. package/jest/react-native-env.js +17 -0
  717. package/jest/renderer.js +28 -22
  718. package/jest/resolver.js +32 -0
  719. package/jest/setup.js +121 -336
  720. package/jest-snapshot-resolver.js +2 -0
  721. package/jest.config.js +38 -0
  722. package/just-task.js +11 -53
  723. package/metro.config.js +5 -20
  724. package/metroShortPathAssetDataPlugin.js +15 -0
  725. package/overrides.json +314 -248
  726. package/package.json +86 -47
  727. package/react-native.config.js +2 -0
  728. package/rn-get-polyfills.js +3 -6
  729. package/saveAssetPlugin.js +45 -0
  730. package/src/private/animated/NativeAnimatedHelper.js +467 -0
  731. package/src/private/animated/NativeAnimatedHelper.win32.js +470 -0
  732. package/src/private/animated/NativeAnimatedValidation.js +64 -0
  733. package/src/private/animated/createAnimatedPropsHook.js +318 -0
  734. package/src/private/animated/createAnimatedPropsMemoHook.js +360 -0
  735. package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +31 -0
  736. package/src/private/components/scrollview/HScrollViewNativeComponents.js +29 -0
  737. package/src/private/components/scrollview/VScrollViewNativeComponents.js +24 -0
  738. package/src/private/components/virtualview/VirtualView.js +161 -0
  739. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +93 -0
  740. package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
  741. package/src/private/devsupport/devmenu/DevMenu.d.ts +20 -0
  742. package/src/private/devsupport/devmenu/DevMenu.js +31 -0
  743. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +44 -0
  744. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +131 -0
  745. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +153 -0
  746. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +126 -0
  747. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +211 -0
  748. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +67 -0
  749. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +167 -0
  750. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +628 -0
  751. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +166 -0
  752. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +77 -0
  753. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +217 -0
  754. package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +81 -0
  755. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +115 -0
  756. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +66 -0
  757. package/src/private/devsupport/devmenu/specs/NativeDevMenu.js +22 -0
  758. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +41 -0
  759. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +19 -0
  760. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +27 -0
  761. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.win32.js +19 -0
  762. package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +113 -0
  763. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +33 -0
  764. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsSettingsManager.js +22 -0
  765. package/src/private/featureflags/ReactNativeFeatureFlags.js +455 -0
  766. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +136 -0
  767. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +102 -0
  768. package/src/private/renderer/errorhandling/ErrorHandlers.js +83 -0
  769. package/src/private/setup/setUpDOM.js +76 -0
  770. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
  771. package/src/private/setup/setUpIntersectionObserver.js +27 -0
  772. package/src/private/setup/setUpMutationObserver.js +31 -0
  773. package/src/private/setup/setUpPerformanceObserver.js +71 -0
  774. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +56 -0
  775. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +124 -0
  776. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +27 -0
  777. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
  778. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +65 -0
  779. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +62 -0
  780. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +39 -0
  781. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +74 -0
  782. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +29 -0
  783. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +156 -0
  784. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +28 -0
  785. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +61 -0
  786. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +26 -0
  787. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityInfo.js +42 -0
  788. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityInfoWin32.js +48 -0
  789. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +70 -0
  790. package/src/private/specs_DEPRECATED/modules/NativeActionSheetManager.js +56 -0
  791. package/src/private/specs_DEPRECATED/modules/NativeAlertManager.js +35 -0
  792. package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +77 -0
  793. package/src/private/specs_DEPRECATED/modules/NativeAnimatedTurboModule.js +78 -0
  794. package/src/private/specs_DEPRECATED/modules/NativeAppState.js +33 -0
  795. package/src/private/specs_DEPRECATED/modules/NativeAppearance.js +30 -0
  796. package/src/private/specs_DEPRECATED/modules/NativeBlobModule.js +61 -0
  797. package/src/private/specs_DEPRECATED/modules/NativeClipboard.js +21 -0
  798. package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +24 -0
  799. package/src/private/specs_DEPRECATED/modules/NativeDevSettings.js +33 -0
  800. package/src/private/specs_DEPRECATED/modules/NativeDeviceEventManager.js +19 -0
  801. package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +59 -0
  802. package/src/private/specs_DEPRECATED/modules/NativeDialogManagerAndroid.js +48 -0
  803. package/src/private/specs_DEPRECATED/modules/NativeExceptionsManager.js +91 -0
  804. package/src/private/specs_DEPRECATED/modules/NativeFileReaderModule.js +22 -0
  805. package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +22 -0
  806. package/src/private/specs_DEPRECATED/modules/NativeHeadlessJsTaskSupport.js +20 -0
  807. package/src/private/specs_DEPRECATED/modules/NativeI18nManager.js +28 -0
  808. package/src/private/specs_DEPRECATED/modules/NativeImageEditor.js +52 -0
  809. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderAndroid.js +30 -0
  810. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +37 -0
  811. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderWin32.js +45 -0
  812. package/src/private/specs_DEPRECATED/modules/NativeImageStoreAndroid.js +26 -0
  813. package/src/private/specs_DEPRECATED/modules/NativeImageStoreIOS.js +33 -0
  814. package/src/private/specs_DEPRECATED/modules/NativeIntentAndroid.js +30 -0
  815. package/src/private/specs_DEPRECATED/modules/NativeJSCHeapCapture.js +19 -0
  816. package/src/private/specs_DEPRECATED/modules/NativeKeyboardObserver.js +20 -0
  817. package/src/private/specs_DEPRECATED/modules/NativeLinkingManager.js +27 -0
  818. package/src/private/specs_DEPRECATED/modules/NativeLogBox.js +20 -0
  819. package/src/private/specs_DEPRECATED/modules/NativeModalManager.js +21 -0
  820. package/src/private/specs_DEPRECATED/modules/NativeNetworkingAndroid.js +37 -0
  821. package/src/private/specs_DEPRECATED/modules/NativeNetworkingIOS.js +37 -0
  822. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +78 -0
  823. package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsAndroid.js +44 -0
  824. package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsIOS.js +37 -0
  825. package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsWin.js +39 -0
  826. package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +103 -0
  827. package/src/private/specs_DEPRECATED/modules/NativeRedBox.js +20 -0
  828. package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +69 -0
  829. package/src/private/specs_DEPRECATED/modules/NativeSegmentFetcher.js +28 -0
  830. package/src/private/specs_DEPRECATED/modules/NativeSettingsManager.js +25 -0
  831. package/src/private/specs_DEPRECATED/modules/NativeShareModule.js +23 -0
  832. package/src/private/specs_DEPRECATED/modules/NativeSoundManager.js +22 -0
  833. package/src/private/specs_DEPRECATED/modules/NativeSourceCode.js +36 -0
  834. package/src/private/specs_DEPRECATED/modules/NativeStatusBarManagerAndroid.js +68 -0
  835. package/src/private/specs_DEPRECATED/modules/NativeStatusBarManagerIOS.js +89 -0
  836. package/src/private/specs_DEPRECATED/modules/NativeTiming.js +26 -0
  837. package/src/private/specs_DEPRECATED/modules/NativeToastAndroid.js +38 -0
  838. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +187 -0
  839. package/src/private/specs_DEPRECATED/modules/NativeVibration.js +24 -0
  840. package/src/private/specs_DEPRECATED/modules/NativeWebSocketModule.js +34 -0
  841. package/src/private/styles/composeStyles.js +27 -0
  842. package/src/private/types/HostComponent.js +16 -0
  843. package/src/private/types/HostInstance.js +116 -0
  844. package/src/private/webapis/dom/events/CustomEvent.js +38 -0
  845. package/src/private/webapis/dom/events/Event.js +239 -0
  846. package/src/private/webapis/dom/events/EventHandlerAttributes.js +130 -0
  847. package/src/private/webapis/dom/events/EventTarget.js +439 -0
  848. package/src/private/webapis/dom/events/internals/EventInternals.js +120 -0
  849. package/src/private/webapis/dom/events/internals/EventTargetInternals.js +52 -0
  850. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +121 -0
  851. package/src/private/webapis/dom/nodes/ReactNativeElement.js +242 -0
  852. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +72 -0
  853. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +247 -0
  854. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +334 -0
  855. package/src/private/webapis/dom/nodes/ReadOnlyText.js +30 -0
  856. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +150 -0
  857. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +55 -0
  858. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +44 -0
  859. package/src/private/webapis/dom/nodes/internals/Traversal.js +54 -0
  860. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +617 -0
  861. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +85 -0
  862. package/src/private/webapis/dom/oldstylecollections/NodeList.js +107 -0
  863. package/src/private/webapis/errors/DOMException.js +166 -0
  864. package/src/private/webapis/geometry/DOMRect.js +87 -0
  865. package/src/private/webapis/geometry/DOMRectList.js +79 -0
  866. package/src/private/webapis/geometry/DOMRectReadOnly.js +194 -0
  867. package/src/private/webapis/html/events/MessageEvent.js +56 -0
  868. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +36 -0
  869. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +353 -0
  870. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +170 -0
  871. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +290 -0
  872. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +51 -0
  873. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +21 -0
  874. package/src/private/webapis/mutationobserver/MutationObserver.js +161 -0
  875. package/src/private/webapis/mutationobserver/MutationRecord.js +85 -0
  876. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +203 -0
  877. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +55 -0
  878. package/src/private/webapis/performance/EventTiming.js +141 -0
  879. package/src/private/webapis/performance/LongTasks.js +39 -0
  880. package/src/private/webapis/performance/MemoryInfo.js +57 -0
  881. package/src/private/webapis/performance/Performance.js +459 -0
  882. package/src/private/webapis/performance/PerformanceEntry.js +81 -0
  883. package/src/private/webapis/performance/PerformanceObserver.js +215 -0
  884. package/src/private/webapis/performance/ReactNativeStartupTiming.js +94 -0
  885. package/src/private/webapis/performance/ResourceTiming.js +108 -0
  886. package/src/private/webapis/performance/UserTiming.js +125 -0
  887. package/src/private/webapis/performance/UserTimingExtensibility.js.flow +38 -0
  888. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +125 -0
  889. package/src/private/webapis/performance/internals/Utilities.js +27 -0
  890. package/src/private/webapis/performance/specs/NativePerformance.js +99 -0
  891. package/src/private/webapis/structuredClone/structuredClone.js +233 -0
  892. package/src/private/webapis/utils/ArrayLikeUtils.js +46 -0
  893. package/src/private/webapis/webidl/PlatformObjects.js +59 -0
  894. package/src/private/webapis/websockets/events/CloseEvent.js +52 -0
  895. package/src/private/webapis/xhr/events/ProgressEvent.js +52 -0
  896. package/src/types/globals.d.ts +670 -0
  897. package/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +177 -0
  898. package/src-win/Libraries/Components/Button/ButtonWin32.Props.ts +45 -0
  899. package/src-win/Libraries/Components/Button/ButtonWin32.tsx +94 -0
  900. package/src-win/Libraries/Components/EnterString.win32.tsx +110 -0
  901. package/src-win/Libraries/Components/TextInput/Tests/TextInputTest.tsx +185 -0
  902. package/src-win/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +502 -0
  903. package/src-win/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +119 -0
  904. package/src-win/Libraries/Components/Touchable/TouchableWin32.Props.tsx +46 -0
  905. package/src-win/Libraries/Components/Touchable/TouchableWin32.Types.tsx +137 -0
  906. package/src-win/Libraries/Components/Touchable/TouchableWin32.tsx +624 -0
  907. package/src-win/Libraries/Components/View/ViewAccessibility.d.ts +567 -0
  908. package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +374 -0
  909. package/src-win/Libraries/Components/View/ViewWin32.d.ts +30 -0
  910. package/src-win/Libraries/Image/ImageTypes.ts +27 -0
  911. package/src-win/Libraries/Image/Tests/ImageWin32Test.tsx +22 -0
  912. package/src-win/Libraries/Image/Tests/img/dpitest.png +0 -0
  913. package/src-win/Libraries/Image/Tests/img/dpitest@1.5x.png +0 -0
  914. package/src-win/Libraries/Image/Tests/img/dpitest@2x.png +0 -0
  915. package/src-win/Libraries/Image/Tests/img/dpitest@3x.png +0 -0
  916. package/src-win/Libraries/Image/Tests/img/en-us/dpitest.png +0 -0
  917. package/src-win/Libraries/Image/Tests/img/en-us/dpitest@1.5x.png +0 -0
  918. package/src-win/Libraries/Image/Tests/img/en-us/dpitest@3x.png +0 -0
  919. package/src-win/Libraries/PersonaCoin/PersonaCoin.tsx +13 -0
  920. package/src-win/Libraries/PersonaCoin/PersonaCoinPropTypes.ts +17 -0
  921. package/src-win/Libraries/PersonaCoin/PersonaCoinTypes.ts +36 -0
  922. package/src-win/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +38 -0
  923. package/src-win/Libraries/Text/Text.d.ts +313 -0
  924. package/src-win/Libraries/Utilities/FocusManager.win32.d.ts +12 -0
  925. package/src-win/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +22 -0
  926. package/src-win/Libraries/platform-types.d.ts +25 -0
  927. package/types/index.d.ts +166 -0
  928. package/types/modules/BatchedBridge.d.ts +32 -0
  929. package/types/modules/Codegen.d.ts +80 -0
  930. package/types/modules/Devtools.d.ts +46 -0
  931. package/types/private/TimerMixin.d.ts +19 -0
  932. package/types/private/Utilities.d.ts +10 -0
  933. package/types/public/DeprecatedPropertiesAlias.d.ts +185 -0
  934. package/types/public/Insets.d.ts +15 -0
  935. package/types/public/ReactNativeRenderer.d.ts +144 -0
  936. package/types/public/ReactNativeTypes.d.ts +139 -0
  937. package/IntegrationTests/AsyncStorageTest.js +0 -217
  938. package/IntegrationTests/PropertiesUpdateTest.js +0 -29
  939. package/IntegrationTests/RCTRootViewIntegrationTestApp.js +0 -92
  940. package/IntegrationTests/ReactContentSizeUpdateTest.js +0 -91
  941. package/IntegrationTests/SizeFlexibilityUpdateTest.js +0 -108
  942. package/IntegrationTests/launchWebSocketServer.command +0 -18
  943. package/Libraries/Animated/examples/demo.html +0 -712
  944. package/Libraries/Animated/examples/pic1.jpg +0 -0
  945. package/Libraries/Animated/examples/pic2.jpg +0 -0
  946. package/Libraries/Animated/examples/pic3.jpg +0 -0
  947. package/Libraries/Animated/release/gulpfile.js +0 -155
  948. package/Libraries/Animated/src/Animated.js +0 -49
  949. package/Libraries/Animated/src/AnimatedEvent.js +0 -233
  950. package/Libraries/Animated/src/AnimatedImplementation.js +0 -712
  951. package/Libraries/Animated/src/AnimatedMock.js +0 -156
  952. package/Libraries/Animated/src/AnimatedWeb.js +0 -23
  953. package/Libraries/Animated/src/Easing.js +0 -252
  954. package/Libraries/Animated/src/NativeAnimatedHelper.js +0 -342
  955. package/Libraries/Animated/src/NativeAnimatedModule.js +0 -66
  956. package/Libraries/Animated/src/SpringConfig.js +0 -103
  957. package/Libraries/Animated/src/animations/Animation.js +0 -73
  958. package/Libraries/Animated/src/animations/DecayAnimation.js +0 -120
  959. package/Libraries/Animated/src/animations/SpringAnimation.js +0 -359
  960. package/Libraries/Animated/src/animations/TimingAnimation.js +0 -165
  961. package/Libraries/Animated/src/bezier.js +0 -153
  962. package/Libraries/Animated/src/components/AnimatedFlatList.js +0 -32
  963. package/Libraries/Animated/src/components/AnimatedImage.js +0 -25
  964. package/Libraries/Animated/src/components/AnimatedScrollView.js +0 -32
  965. package/Libraries/Animated/src/components/AnimatedSectionList.js +0 -32
  966. package/Libraries/Animated/src/components/AnimatedText.js +0 -25
  967. package/Libraries/Animated/src/components/AnimatedView.js +0 -23
  968. package/Libraries/Animated/src/createAnimatedComponent.js +0 -223
  969. package/Libraries/Animated/src/nodes/AnimatedAddition.js +0 -63
  970. package/Libraries/Animated/src/nodes/AnimatedDiffClamp.js +0 -71
  971. package/Libraries/Animated/src/nodes/AnimatedDivision.js +0 -68
  972. package/Libraries/Animated/src/nodes/AnimatedInterpolation.js +0 -373
  973. package/Libraries/Animated/src/nodes/AnimatedModulo.js +0 -62
  974. package/Libraries/Animated/src/nodes/AnimatedMultiplication.js +0 -63
  975. package/Libraries/Animated/src/nodes/AnimatedNode.js +0 -184
  976. package/Libraries/Animated/src/nodes/AnimatedProps.js +0 -176
  977. package/Libraries/Animated/src/nodes/AnimatedStyle.js +0 -127
  978. package/Libraries/Animated/src/nodes/AnimatedSubtraction.js +0 -63
  979. package/Libraries/Animated/src/nodes/AnimatedTracking.js +0 -102
  980. package/Libraries/Animated/src/nodes/AnimatedTransform.js +0 -121
  981. package/Libraries/Animated/src/nodes/AnimatedValue.js +0 -265
  982. package/Libraries/Animated/src/nodes/AnimatedValueXY.js +0 -226
  983. package/Libraries/Animated/src/nodes/AnimatedWithChildren.js +0 -87
  984. package/Libraries/Animated/src/polyfills/InteractionManager.js +0 -15
  985. package/Libraries/Animated/src/polyfills/Set.js +0 -26
  986. package/Libraries/Animated/src/polyfills/flattenStyle.js +0 -13
  987. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestConfig.js +0 -38
  988. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestModule.js +0 -22
  989. package/Libraries/Blob/__mocks__/BlobModule.js +0 -16
  990. package/Libraries/Blob/__mocks__/FileReaderModule.js +0 -20
  991. package/Libraries/BugReporting/BugReporting.js +0 -141
  992. package/Libraries/BugReporting/NativeBugReporting.js +0 -20
  993. package/Libraries/BugReporting/dumpReactTree.js +0 -151
  994. package/Libraries/BugReporting/getReactData.js +0 -178
  995. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.android.js +0 -162
  996. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.ios.js +0 -271
  997. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.win32.js +0 -33
  998. package/Libraries/Components/AppleTV/NativeTVNavigationEventEmitter.js +0 -23
  999. package/Libraries/Components/AppleTV/TVEventHandler.js +0 -52
  1000. package/Libraries/Components/CheckBox/AndroidCheckBoxNativeComponent.js +0 -74
  1001. package/Libraries/Components/CheckBox/CheckBox.android.js +0 -228
  1002. package/Libraries/Components/CheckBox/CheckBox.ios.js +0 -13
  1003. package/Libraries/Components/CheckBox/CheckBox.win32.js +0 -12
  1004. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -46
  1005. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -189
  1006. package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +0 -46
  1007. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
  1008. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -89
  1009. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  1010. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.win32.js +0 -30
  1011. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  1012. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -22
  1013. package/Libraries/Components/MaskedView/MaskedViewIOS.android.js +0 -13
  1014. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +0 -93
  1015. package/Libraries/Components/MaskedView/MaskedViewIOS.win32.js +0 -13
  1016. package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +0 -21
  1017. package/Libraries/Components/Picker/AndroidDialogPickerNativeComponent.js +0 -68
  1018. package/Libraries/Components/Picker/AndroidDropdownPickerNativeComponent.js +0 -68
  1019. package/Libraries/Components/Picker/Picker.js +0 -159
  1020. package/Libraries/Components/Picker/Picker.win32.d.ts +0 -1
  1021. package/Libraries/Components/Picker/Picker.win32.js +0 -80
  1022. package/Libraries/Components/Picker/PickerAndroid.android.js +0 -146
  1023. package/Libraries/Components/Picker/PickerAndroid.ios.js +0 -12
  1024. package/Libraries/Components/Picker/PickerAndroid.js +0 -12
  1025. package/Libraries/Components/Picker/PickerIOS.android.js +0 -14
  1026. package/Libraries/Components/Picker/PickerIOS.ios.js +0 -164
  1027. package/Libraries/Components/Picker/PickerIOS.js +0 -14
  1028. package/Libraries/Components/Picker/RCTPickerNativeComponent.js +0 -63
  1029. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js +0 -12
  1030. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -46
  1031. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -77
  1032. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +0 -8
  1033. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -35
  1034. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +0 -33
  1035. package/Libraries/Components/ScrollResponder.js +0 -773
  1036. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -77
  1037. package/Libraries/Components/ScrollView/__mocks__/ScrollViewMock.js +0 -39
  1038. package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -46
  1039. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -46
  1040. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
  1041. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.js +0 -46
  1042. package/Libraries/Components/Slider/Slider.js +0 -276
  1043. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -60
  1044. package/Libraries/Components/StaticContainer.react.js +0 -51
  1045. package/Libraries/Components/StatusBar/StatusBarIOS.js +0 -22
  1046. package/Libraries/Components/Text/TextWin32.Props.d.ts +0 -26
  1047. package/Libraries/Components/Text/TextWin32.Props.js +0 -3
  1048. package/Libraries/Components/Text/TextWin32.d.ts +0 -6
  1049. package/Libraries/Components/Text/TextWin32.js +0 -41
  1050. package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +0 -84
  1051. package/Libraries/Components/TextInput/RCTSinglelineTextInputViewConfig.js +0 -134
  1052. package/Libraries/Components/TextInput/TextInput.Types.win32.d.ts +0 -51
  1053. package/Libraries/Components/TextInput/TextInput.Types.win32.js +0 -3
  1054. package/Libraries/Components/TextInput/TextInput.win32.d.ts +0 -68
  1055. package/Libraries/Components/Touchable/TVTouchable.js +0 -55
  1056. package/Libraries/Components/Touchable/TouchableNativeFeedback.Props.d.ts +0 -7
  1057. package/Libraries/Components/Touchable/TouchableNativeFeedback.Props.js +0 -3
  1058. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.d.ts +0 -16
  1059. package/Libraries/Components/Touchable/__mocks__/ensureComponentIsNative.js +0 -12
  1060. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -26
  1061. package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -347
  1062. package/Libraries/Components/View/ReactNativeViewViewConfig.win32.js +0 -384
  1063. package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -74
  1064. package/Libraries/Components/View/Tests/ViewWin32Test.d.ts +0 -8
  1065. package/Libraries/Components/View/Tests/ViewWin32Test.js +0 -235
  1066. package/Libraries/Components/View/ViewWin32.Props.d.ts +0 -149
  1067. package/Libraries/Components/View/ViewWin32.Props.js +0 -11
  1068. package/Libraries/Core/__mocks__/ErrorUtils.js +0 -33
  1069. package/Libraries/Core/setUpSystrace.js +0 -21
  1070. package/Libraries/DeprecatedPropTypes/DeprecatedColorPropType.js +0 -76
  1071. package/Libraries/DeprecatedPropTypes/DeprecatedEdgeInsetsPropType.js +0 -28
  1072. package/Libraries/DeprecatedPropTypes/DeprecatedImagePropType.js +0 -82
  1073. package/Libraries/DeprecatedPropTypes/DeprecatedImageSourcePropType.js +0 -40
  1074. package/Libraries/DeprecatedPropTypes/DeprecatedImageStylePropTypes.js +0 -76
  1075. package/Libraries/DeprecatedPropTypes/DeprecatedLayoutPropTypes.js +0 -233
  1076. package/Libraries/DeprecatedPropTypes/DeprecatedPointPropType.js +0 -24
  1077. package/Libraries/DeprecatedPropTypes/DeprecatedShadowPropTypesIOS.js +0 -30
  1078. package/Libraries/DeprecatedPropTypes/DeprecatedStyleSheetPropType.js +0 -32
  1079. package/Libraries/DeprecatedPropTypes/DeprecatedTVViewPropTypes.js +0 -23
  1080. package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +0 -622
  1081. package/Libraries/DeprecatedPropTypes/DeprecatedTextPropTypes.js +0 -158
  1082. package/Libraries/DeprecatedPropTypes/DeprecatedTextStylePropTypes.js +0 -157
  1083. package/Libraries/DeprecatedPropTypes/DeprecatedTransformPropTypes.js +0 -99
  1084. package/Libraries/DeprecatedPropTypes/DeprecatedViewAccessibility.js +0 -44
  1085. package/Libraries/DeprecatedPropTypes/DeprecatedViewPropTypes.js +0 -408
  1086. package/Libraries/DeprecatedPropTypes/DeprecatedViewStylePropTypes.js +0 -68
  1087. package/Libraries/DeprecatedPropTypes/deprecatedCreateStrictShapeTypeChecker.js +0 -86
  1088. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +0 -25
  1089. package/Libraries/HeapCapture/HeapCapture.js +0 -31
  1090. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +0 -20
  1091. package/Libraries/Image/ImagePickerIOS.js +0 -105
  1092. package/Libraries/Image/ImageViewViewConfig.js +0 -68
  1093. package/Libraries/Image/NativeImagePickerIOS.js +0 -40
  1094. package/Libraries/Image/assetPathUtils.js +0 -91
  1095. package/Libraries/Inspector/BorderBox.js +0 -32
  1096. package/Libraries/Inspector/BoxInspector.js +0 -110
  1097. package/Libraries/Inspector/ElementBox.js +0 -138
  1098. package/Libraries/Inspector/ElementProperties.js +0 -147
  1099. package/Libraries/Inspector/Inspector.js +0 -312
  1100. package/Libraries/Inspector/Inspector.win32.js +0 -318
  1101. package/Libraries/Inspector/InspectorOverlay.js +0 -90
  1102. package/Libraries/Inspector/InspectorOverlay.win32.js +0 -91
  1103. package/Libraries/Inspector/InspectorPanel.js +0 -170
  1104. package/Libraries/Inspector/NetworkOverlay.js +0 -601
  1105. package/Libraries/Inspector/PerformanceOverlay.js +0 -63
  1106. package/Libraries/Inspector/StyleInspector.js +0 -70
  1107. package/Libraries/Inspector/resolveBoxStyle.js +0 -114
  1108. package/Libraries/Interaction/Batchinator.js +0 -76
  1109. package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -62
  1110. package/Libraries/Interaction/InteractionMixin.js +0 -55
  1111. package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
  1112. package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -93
  1113. package/Libraries/Interaction/TaskQueue.js +0 -184
  1114. package/Libraries/JSInspector/InspectorAgent.js +0 -27
  1115. package/Libraries/JSInspector/JSInspector.js +0 -36
  1116. package/Libraries/JSInspector/NetworkAgent.js +0 -300
  1117. package/Libraries/Linking/NativeLinking.js +0 -41
  1118. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +0 -117
  1119. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +0 -134
  1120. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -21
  1121. package/Libraries/Network/XHRInterceptor.js +0 -166
  1122. package/Libraries/NewAppScreen/components/Colors.js +0 -20
  1123. package/Libraries/NewAppScreen/components/DebugInstructions.js +0 -38
  1124. package/Libraries/NewAppScreen/components/Header.js +0 -55
  1125. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +0 -123
  1126. package/Libraries/NewAppScreen/components/ReloadInstructions.js +0 -36
  1127. package/Libraries/NewAppScreen/components/logo.png +0 -0
  1128. package/Libraries/NewAppScreen/index.js +0 -19
  1129. package/Libraries/Performance/NativeJSCSamplingProfiler.js +0 -20
  1130. package/Libraries/Performance/PureComponentDebug.js +0 -73
  1131. package/Libraries/Performance/QuickPerformanceLogger.js +0 -101
  1132. package/Libraries/Performance/SamplingProfiler.js +0 -39
  1133. package/Libraries/ReactNative/DummyUIManager.js +0 -123
  1134. package/Libraries/ReactNative/ReactFabricInternals.js +0 -17
  1135. package/Libraries/ReactNative/RootTagContext.js +0 -15
  1136. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  1137. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -20493
  1138. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -7440
  1139. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -7718
  1140. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -21091
  1141. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -7677
  1142. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -7955
  1143. package/Libraries/Renderer/shims/ReactTypes.js +0 -192
  1144. package/Libraries/Settings/Settings.android.js +0 -33
  1145. package/Libraries/Storage/AsyncStorage.js +0 -360
  1146. package/Libraries/Storage/NativeAsyncStorage.js +0 -44
  1147. package/Libraries/StyleSheet/PlatformColorValueTypesAndroid.android.js +0 -18
  1148. package/Libraries/StyleSheet/PlatformColorValueTypesAndroid.js +0 -17
  1149. package/Libraries/StyleSheet/StyleSheet.win32.js +0 -366
  1150. package/Libraries/StyleSheet/StyleSheetValidation.js +0 -97
  1151. package/Libraries/StyleSheet/StyleSheetValidation.win32.js +0 -102
  1152. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +0 -82
  1153. package/Libraries/Utilities/BackHandler.win32.d.ts +0 -2
  1154. package/Libraries/Utilities/DeviceInfo.win32.js +0 -21
  1155. package/Libraries/Utilities/JSDevSupportModule.js +0 -40
  1156. package/Libraries/Utilities/LoadingView.android.js +0 -29
  1157. package/Libraries/Utilities/LoadingView.ios.js +0 -40
  1158. package/Libraries/Utilities/LoadingView.js +0 -16
  1159. package/Libraries/Utilities/MatrixMath.js +0 -752
  1160. package/Libraries/Utilities/NativeJSDevSupport.js +0 -25
  1161. package/Libraries/Utilities/__mocks__/BackHandler.js +0 -50
  1162. package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +0 -16
  1163. package/Libraries/Utilities/__mocks__/PixelRatio.js +0 -25
  1164. package/Libraries/Utilities/buildStyleInterpolator.js +0 -211
  1165. package/Libraries/Utilities/clamp.js +0 -23
  1166. package/Libraries/Utilities/deprecatedPropType.js +0 -38
  1167. package/Libraries/Utilities/groupByEveryN.js +0 -51
  1168. package/Libraries/Utilities/infoLog.js +0 -19
  1169. package/Libraries/Utilities/mergeIntoFast.js +0 -26
  1170. package/Libraries/Utilities/registerGeneratedViewConfig.js +0 -83
  1171. package/Libraries/Utilities/setAndForwardRef.js +0 -71
  1172. package/Libraries/Utilities/truncate.js +0 -51
  1173. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +0 -134
  1174. package/Libraries/WebSocket/WebSocketEvent.js +0 -27
  1175. package/Libraries/WebSocket/__mocks__/event-target-shim.js +0 -27
  1176. package/Libraries/YellowBox/YellowBoxDeprecated.js +0 -75
  1177. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +0 -32
  1178. package/Libraries/polyfills/Object.es7.js +0 -58
  1179. package/Libraries/polyfills/console.js +0 -641
  1180. package/Libraries/polyfills/error-guard.js +0 -115
  1181. package/Libraries/promiseRejectionIsError.js +0 -24
  1182. package/Libraries/vendor/emitter/EmitterSubscription.js +0 -59
  1183. package/Libraries/vendor/emitter/EventSubscription.js +0 -40
  1184. package/Libraries/vendor/emitter/EventSubscriptionVendor.js +0 -101
  1185. package/RNTester/APIExamples/AccessibilityExampleWin32.d.ts +0 -8
  1186. package/RNTester/APIExamples/AccessibilityExampleWin32.js +0 -262
  1187. package/RNTester/APIExamples/ThemingModuleAPI.d.ts +0 -8
  1188. package/RNTester/APIExamples/ThemingModuleAPI.js +0 -80
  1189. package/RNTester/js/RNTesterApp.android.js +0 -363
  1190. package/RNTester/js/RNTesterApp.ios.js +0 -272
  1191. package/RNTester/js/RNTesterApp.win32.js +0 -285
  1192. package/RNTester/js/assets/bandaged.png +0 -0
  1193. package/RNTester/js/assets/bunny.png +0 -0
  1194. package/RNTester/js/assets/call.png +0 -0
  1195. package/RNTester/js/assets/dislike.png +0 -0
  1196. package/RNTester/js/assets/fist.png +0 -0
  1197. package/RNTester/js/assets/flowers.png +0 -0
  1198. package/RNTester/js/assets/flux@3x.png +0 -0
  1199. package/RNTester/js/assets/hawk.png +0 -0
  1200. package/RNTester/js/assets/heart.png +0 -0
  1201. package/RNTester/js/assets/helloworld.html +0 -25
  1202. package/RNTester/js/assets/imageMask.png +0 -0
  1203. package/RNTester/js/assets/like.png +0 -0
  1204. package/RNTester/js/assets/liking.png +0 -0
  1205. package/RNTester/js/assets/messagingtest.html +0 -28
  1206. package/RNTester/js/assets/party.png +0 -0
  1207. package/RNTester/js/assets/poke.png +0 -0
  1208. package/RNTester/js/assets/relay@3x.png +0 -0
  1209. package/RNTester/js/assets/slider-left.png +0 -0
  1210. package/RNTester/js/assets/slider-left@2x.png +0 -0
  1211. package/RNTester/js/assets/slider-right.png +0 -0
  1212. package/RNTester/js/assets/slider-right@2x.png +0 -0
  1213. package/RNTester/js/assets/slider.png +0 -0
  1214. package/RNTester/js/assets/slider@2x.png +0 -0
  1215. package/RNTester/js/assets/superlike.png +0 -0
  1216. package/RNTester/js/assets/trees.jpg +0 -0
  1217. package/RNTester/js/assets/tumblr_mfqekpMktw1rn90umo1_500.gif +0 -0
  1218. package/RNTester/js/assets/uie_comment_highlighted@2x.png +0 -0
  1219. package/RNTester/js/assets/uie_comment_normal@2x.png +0 -0
  1220. package/RNTester/js/assets/uie_thumb_big.png +0 -0
  1221. package/RNTester/js/assets/uie_thumb_normal@2x.png +0 -0
  1222. package/RNTester/js/assets/uie_thumb_selected@2x.png +0 -0
  1223. package/RNTester/js/assets/victory.png +0 -0
  1224. package/RNTester/js/components/ListExampleShared.js +0 -377
  1225. package/RNTester/js/components/ListExampleShared.win32.js +0 -384
  1226. package/RNTester/js/components/RNTesterBlock.js +0 -105
  1227. package/RNTester/js/components/RNTesterButton.js +0 -50
  1228. package/RNTester/js/components/RNTesterExampleContainer.js +0 -80
  1229. package/RNTester/js/components/RNTesterExampleFilter.js +0 -120
  1230. package/RNTester/js/components/RNTesterExampleFilter.win32.js +0 -120
  1231. package/RNTester/js/components/RNTesterExampleList.js +0 -254
  1232. package/RNTester/js/components/RNTesterPage.js +0 -76
  1233. package/RNTester/js/components/RNTesterSettingSwitchRow.js +0 -60
  1234. package/RNTester/js/components/RNTesterTheme.js +0 -90
  1235. package/RNTester/js/components/RNTesterTitle.js +0 -58
  1236. package/RNTester/js/components/TextInlineView.js +0 -207
  1237. package/RNTester/js/components/TextLegend.js +0 -248
  1238. package/RNTester/js/components/createExamplePage.js +0 -31
  1239. package/RNTester/js/examples/Accessibility/AccessibilityAndroidExample.android.js +0 -177
  1240. package/RNTester/js/examples/Accessibility/AccessibilityExample.js +0 -792
  1241. package/RNTester/js/examples/Accessibility/AccessibilityIOSExample.js +0 -72
  1242. package/RNTester/js/examples/Accessibility/check.png +0 -0
  1243. package/RNTester/js/examples/Accessibility/mixed.png +0 -0
  1244. package/RNTester/js/examples/Accessibility/uncheck.png +0 -0
  1245. package/RNTester/js/examples/ActionSheetIOS/ActionSheetIOSExample.js +0 -342
  1246. package/RNTester/js/examples/ActivityIndicator/ActivityIndicatorExample.js +0 -162
  1247. package/RNTester/js/examples/Alert/AlertExample.js +0 -158
  1248. package/RNTester/js/examples/Alert/AlertIOSExample.js +0 -204
  1249. package/RNTester/js/examples/Animated/AnimatedExample.js +0 -347
  1250. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExApp.js +0 -407
  1251. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExBobble.js +0 -171
  1252. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExChained.js +0 -120
  1253. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExScroll.js +0 -124
  1254. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExSet.js +0 -149
  1255. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExSlides.md +0 -107
  1256. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExTilt.js +0 -154
  1257. package/RNTester/js/examples/AppState/AppStateExample.js +0 -106
  1258. package/RNTester/js/examples/Appearance/AppearanceExample.js +0 -219
  1259. package/RNTester/js/examples/AsyncStorage/AsyncStorageExample.js +0 -103
  1260. package/RNTester/js/examples/Border/BorderExample.js +0 -301
  1261. package/RNTester/js/examples/BoxShadow/BoxShadowExample.js +0 -100
  1262. package/RNTester/js/examples/Button/ButtonExample.js +0 -127
  1263. package/RNTester/js/examples/CheckBox/CheckBoxExample.js +0 -148
  1264. package/RNTester/js/examples/Clipboard/ClipboardExample.js +0 -68
  1265. package/RNTester/js/examples/ColorGradientWin32Example.js +0 -109
  1266. package/RNTester/js/examples/Crash/CrashExample.js +0 -52
  1267. package/RNTester/js/examples/DatePicker/DatePickerAndroidExample.js +0 -170
  1268. package/RNTester/js/examples/DatePicker/DatePickerIOSExample.js +0 -150
  1269. package/RNTester/js/examples/DevSettings/DevSettingsExample.js +0 -47
  1270. package/RNTester/js/examples/Dimensions/DimensionsExample.js +0 -68
  1271. package/RNTester/js/examples/FlatList/FlatListExample.js +0 -287
  1272. package/RNTester/js/examples/Image/ImageCapInsetsExample.js +0 -68
  1273. package/RNTester/js/examples/Image/ImageExample.js +0 -955
  1274. package/RNTester/js/examples/InputAccessoryView/InputAccessoryViewExample.js +0 -121
  1275. package/RNTester/js/examples/JSResponderHandlerExample/JSResponderHandlerExample.js +0 -77
  1276. package/RNTester/js/examples/KeyboardAvoidingView/KeyboardAvoidingViewExample.js +0 -120
  1277. package/RNTester/js/examples/Layout/LayoutAnimationExample.js +0 -221
  1278. package/RNTester/js/examples/Layout/LayoutEventsExample.js +0 -165
  1279. package/RNTester/js/examples/Layout/LayoutExample.js +0 -206
  1280. package/RNTester/js/examples/Linking/LinkingExample.js +0 -128
  1281. package/RNTester/js/examples/MaskedView/MaskedViewExample.js +0 -236
  1282. package/RNTester/js/examples/Modal/ModalExample.js +0 -283
  1283. package/RNTester/js/examples/MultiColumn/MultiColumnExample.js +0 -189
  1284. package/RNTester/js/examples/NativeAnimation/NativeAnimationsExample.js +0 -702
  1285. package/RNTester/js/examples/NewAppScreen/NewAppScreenExample.js +0 -77
  1286. package/RNTester/js/examples/OrientationChange/OrientationChangeExample.js +0 -66
  1287. package/RNTester/js/examples/PanResponder/PanResponderExample.js +0 -154
  1288. package/RNTester/js/examples/PermissionsAndroid/PermissionsExample.js +0 -130
  1289. package/RNTester/js/examples/Picker/PickerExample.js +0 -220
  1290. package/RNTester/js/examples/Picker/PickerIOSExample.js +0 -190
  1291. package/RNTester/js/examples/PlatformColor/PlatformColorExample.js +0 -355
  1292. package/RNTester/js/examples/PointerEvents/PointerEventsExample.js +0 -240
  1293. package/RNTester/js/examples/Pressable/PressableExample.js +0 -426
  1294. package/RNTester/js/examples/ProgressBarAndroid/ProgressBarAndroidExample.android.js +0 -94
  1295. package/RNTester/js/examples/ProgressViewIOS/ProgressViewIOSExample.js +0 -103
  1296. package/RNTester/js/examples/PushNotificationIOS/PushNotificationIOSExample.js +0 -267
  1297. package/RNTester/js/examples/RCTRootView/RCTRootViewIOSExample.js +0 -95
  1298. package/RNTester/js/examples/RTL/RTLExample.js +0 -747
  1299. package/RNTester/js/examples/RefreshControl/RefreshControlExample.js +0 -127
  1300. package/RNTester/js/examples/RootViewSizeFlexibilityExample/RootViewSizeFlexibilityExampleApp.js +0 -68
  1301. package/RNTester/js/examples/SafeAreaView/SafeAreaViewExample.js +0 -137
  1302. package/RNTester/js/examples/ScrollView/ScrollViewAnimatedExample.js +0 -107
  1303. package/RNTester/js/examples/ScrollView/ScrollViewExample.js +0 -346
  1304. package/RNTester/js/examples/ScrollView/ScrollViewSimpleExample.js +0 -105
  1305. package/RNTester/js/examples/SectionList/SectionListExample.js +0 -301
  1306. package/RNTester/js/examples/SegmentedControlIOS/SegmentedControlIOSExample.js +0 -183
  1307. package/RNTester/js/examples/SetPropertiesExample/SetPropertiesExampleApp.js +0 -34
  1308. package/RNTester/js/examples/Share/ShareExample.js +0 -124
  1309. package/RNTester/js/examples/Slider/SliderExample.js +0 -136
  1310. package/RNTester/js/examples/Snapshot/SnapshotExample.js +0 -69
  1311. package/RNTester/js/examples/Snapshot/SnapshotViewIOS.android.js +0 -12
  1312. package/RNTester/js/examples/Snapshot/SnapshotViewIOS.ios.js +0 -67
  1313. package/RNTester/js/examples/StatusBar/StatusBarExample.js +0 -522
  1314. package/RNTester/js/examples/Switch/SwitchExample.js +0 -239
  1315. package/RNTester/js/examples/TVEventHandler/TVEventHandlerExample.js +0 -88
  1316. package/RNTester/js/examples/Text/TextExample.android.js +0 -864
  1317. package/RNTester/js/examples/Text/TextExample.ios.js +0 -1153
  1318. package/RNTester/js/examples/TextInput/TextInputExample.android.js +0 -424
  1319. package/RNTester/js/examples/TextInput/TextInputExample.ios.js +0 -710
  1320. package/RNTester/js/examples/TextInput/TextInputSharedExamples.js +0 -618
  1321. package/RNTester/js/examples/Timer/TimerExample.js +0 -373
  1322. package/RNTester/js/examples/ToastAndroid/ToastAndroidExample.android.js +0 -136
  1323. package/RNTester/js/examples/Touchable/TouchableExample.js +0 -664
  1324. package/RNTester/js/examples/Transform/TransformExample.js +0 -336
  1325. package/RNTester/js/examples/TransparentHitTest/TransparentHitTestExample.js +0 -50
  1326. package/RNTester/js/examples/TurboModule/SampleTurboModuleExample.js +0 -190
  1327. package/RNTester/js/examples/TurboModule/TurboModuleExample.js +0 -26
  1328. package/RNTester/js/examples/Vibration/VibrationExample.js +0 -127
  1329. package/RNTester/js/examples/View/ViewExample.js +0 -471
  1330. package/RNTester/js/examples/WebSocket/WebSocketExample.js +0 -356
  1331. package/RNTester/js/examples/WebSocket/http_test_server.js +0 -33
  1332. package/RNTester/js/examples/WebSocket/websocket_test_server.js +0 -46
  1333. package/RNTester/js/examples/XHR/XHRExample.js +0 -62
  1334. package/RNTester/js/examples/XHR/XHRExampleAbortController.js +0 -58
  1335. package/RNTester/js/examples/XHR/XHRExampleBinaryUpload.js +0 -149
  1336. package/RNTester/js/examples/XHR/XHRExampleDownload.js +0 -242
  1337. package/RNTester/js/examples/XHR/XHRExampleFetch.js +0 -133
  1338. package/RNTester/js/examples/XHR/XHRExampleHeaders.js +0 -114
  1339. package/RNTester/js/examples/XHR/XHRExampleOnTimeOut.js +0 -99
  1340. package/RNTester/js/types/RNTesterTypes.js +0 -47
  1341. package/RNTester/js/utils/RNTesterActions.js +0 -53
  1342. package/RNTester/js/utils/RNTesterList.android.js +0 -257
  1343. package/RNTester/js/utils/RNTesterList.ios.js +0 -366
  1344. package/RNTester/js/utils/RNTesterList.win32.js +0 -240
  1345. package/RNTester/js/utils/RNTesterNavigationReducer.js +0 -49
  1346. package/RNTester/js/utils/RNTesterStatePersister.js +0 -86
  1347. package/RNTester/js/utils/URIActionMap.js +0 -48
  1348. package/api-extractor.json +0 -25
  1349. package/demo/DocPagePropsList.d.ts +0 -18
  1350. package/demo/DocPagePropsList.js +0 -7
  1351. package/demo/DocPagePropsList.js.map +0 -1
  1352. package/docs/api/index.md +0 -12
  1353. package/docs/api/react-native-win32.accessibilityactionevent.md +0 -13
  1354. package/docs/api/react-native-win32.accessibilityactioninfo.md +0 -14
  1355. package/docs/api/react-native-win32.accessibilityactionname.md +0 -11
  1356. package/docs/api/react-native-win32.accessibilityannotationinfo.md +0 -16
  1357. package/docs/api/react-native-win32.accessibilitystate.md +0 -14
  1358. package/docs/api/react-native-win32.annotationtype.md +0 -11
  1359. package/docs/api/react-native-win32.ariarole.md +0 -11
  1360. package/docs/api/react-native-win32.basepropswin32.md +0 -17
  1361. package/docs/api/react-native-win32.buttonwin32._constructor_.md +0 -20
  1362. package/docs/api/react-native-win32.buttonwin32.md +0 -27
  1363. package/docs/api/react-native-win32.buttonwin32.render.md +0 -15
  1364. package/docs/api/react-native-win32.buttonwin32omitstyles.md +0 -11
  1365. package/docs/api/react-native-win32.colorgradientwin32.md +0 -15
  1366. package/docs/api/react-native-win32.cursor.md +0 -11
  1367. package/docs/api/react-native-win32.eventphase.md +0 -21
  1368. package/docs/api/react-native-win32.gradientcolorstop.md +0 -16
  1369. package/docs/api/react-native-win32.gradientcolorvaluewin32.md +0 -16
  1370. package/docs/api/react-native-win32.ibuttonwin32props.md +0 -25
  1371. package/docs/api/react-native-win32.ibuttonwin32props.onblur.md +0 -13
  1372. package/docs/api/react-native-win32.ibuttonwin32props.onfocus.md +0 -13
  1373. package/docs/api/react-native-win32.ibuttonwin32props.onmouseenter.md +0 -13
  1374. package/docs/api/react-native-win32.ibuttonwin32props.onmouseleave.md +0 -13
  1375. package/docs/api/react-native-win32.ibuttonwin32props.ontouchend.md +0 -13
  1376. package/docs/api/react-native-win32.ibuttonwin32props.ontouchstart.md +0 -13
  1377. package/docs/api/react-native-win32.ibuttonwin32props.style.md +0 -13
  1378. package/docs/api/react-native-win32.ibuttonwin32style.md +0 -13
  1379. package/docs/api/react-native-win32.ichildasfunction.md +0 -13
  1380. package/docs/api/react-native-win32.idimensions.height.md +0 -11
  1381. package/docs/api/react-native-win32.idimensions.md +0 -21
  1382. package/docs/api/react-native-win32.idimensions.width.md +0 -11
  1383. package/docs/api/react-native-win32.ihandledkeyboardevent.md +0 -11
  1384. package/docs/api/react-native-win32.ikeyboardevent.md +0 -11
  1385. package/docs/api/react-native-win32.inativekeyboardevent.altkey.md +0 -11
  1386. package/docs/api/react-native-win32.inativekeyboardevent.ctrlkey.md +0 -11
  1387. package/docs/api/react-native-win32.inativekeyboardevent.eventphase.md +0 -11
  1388. package/docs/api/react-native-win32.inativekeyboardevent.key.md +0 -11
  1389. package/docs/api/react-native-win32.inativekeyboardevent.md +0 -23
  1390. package/docs/api/react-native-win32.inativekeyboardevent.metakey.md +0 -11
  1391. package/docs/api/react-native-win32.inativekeyboardevent.shiftkey.md +0 -11
  1392. package/docs/api/react-native-win32.ipersonacoinprops.brandiconsource.md +0 -11
  1393. package/docs/api/react-native-win32.ipersonacoinprops.color.md +0 -11
  1394. package/docs/api/react-native-win32.ipersonacoinprops.disabled.md +0 -11
  1395. package/docs/api/react-native-win32.ipersonacoinprops.displayname.md +0 -11
  1396. package/docs/api/react-native-win32.ipersonacoinprops.emailaddress.md +0 -11
  1397. package/docs/api/react-native-win32.ipersonacoinprops.initials.md +0 -11
  1398. package/docs/api/react-native-win32.ipersonacoinprops.md +0 -29
  1399. package/docs/api/react-native-win32.ipersonacoinprops.onerror.md +0 -11
  1400. package/docs/api/react-native-win32.ipersonacoinprops.onload.md +0 -11
  1401. package/docs/api/react-native-win32.ipersonacoinprops.presence.md +0 -11
  1402. package/docs/api/react-native-win32.ipersonacoinprops.size.md +0 -11
  1403. package/docs/api/react-native-win32.ipersonacoinprops.source.md +0 -11
  1404. package/docs/api/react-native-win32.iposition.left.md +0 -11
  1405. package/docs/api/react-native-win32.iposition.md +0 -21
  1406. package/docs/api/react-native-win32.iposition.top.md +0 -11
  1407. package/docs/api/react-native-win32.ipressevent.md +0 -24
  1408. package/docs/api/react-native-win32.ipressinlocation.locationx.md +0 -11
  1409. package/docs/api/react-native-win32.ipressinlocation.locationy.md +0 -11
  1410. package/docs/api/react-native-win32.ipressinlocation.md +0 -23
  1411. package/docs/api/react-native-win32.ipressinlocation.pagex.md +0 -11
  1412. package/docs/api/react-native-win32.ipressinlocation.pagey.md +0 -11
  1413. package/docs/api/react-native-win32.irenderchild.md +0 -13
  1414. package/docs/api/react-native-win32.irenderstyle.md +0 -13
  1415. package/docs/api/react-native-win32.irespondersyntheticevent.md +0 -21
  1416. package/docs/api/react-native-win32.irespondersyntheticevent.touchhistory.md +0 -16
  1417. package/docs/api/react-native-win32.isignal.md +0 -13
  1418. package/docs/api/react-native-win32.istate.md +0 -13
  1419. package/docs/api/react-native-win32.istateconditions.md +0 -15
  1420. package/docs/api/react-native-win32.itextwin32props.md +0 -20
  1421. package/docs/api/react-native-win32.itextwin32props.textstyle.md +0 -25
  1422. package/docs/api/react-native-win32.itextwin32props.tooltip.md +0 -13
  1423. package/docs/api/react-native-win32.itouchablewin32props.children.md +0 -11
  1424. package/docs/api/react-native-win32.itouchablewin32props.disabled.md +0 -11
  1425. package/docs/api/react-native-win32.itouchablewin32props.filterkeys.md +0 -13
  1426. package/docs/api/react-native-win32.itouchablewin32props.md +0 -36
  1427. package/docs/api/react-native-win32.itouchablewin32props.onlongpress.md +0 -11
  1428. package/docs/api/react-native-win32.itouchablewin32props.rejectrespondertermination.md +0 -11
  1429. package/docs/api/react-native-win32.itouchablewin32props.renderstyle.md +0 -11
  1430. package/docs/api/react-native-win32.itouchablewin32props.touchablegethighlightdelayms.md +0 -11
  1431. package/docs/api/react-native-win32.itouchablewin32props.touchablegethitslop.md +0 -11
  1432. package/docs/api/react-native-win32.itouchablewin32props.touchablegetlongpressdelayms.md +0 -11
  1433. package/docs/api/react-native-win32.itouchablewin32props.touchablegetpressoutdelayms.md +0 -11
  1434. package/docs/api/react-native-win32.itouchablewin32props.touchablegetpressrectoffset.md +0 -11
  1435. package/docs/api/react-native-win32.itouchablewin32props.touchablehandleactivepressin.md +0 -11
  1436. package/docs/api/react-native-win32.itouchablewin32props.touchablehandleactivepressout.md +0 -11
  1437. package/docs/api/react-native-win32.itouchablewin32props.touchablehandlekeypress.md +0 -11
  1438. package/docs/api/react-native-win32.itouchablewin32props.touchablehandlekeypressdown.md +0 -11
  1439. package/docs/api/react-native-win32.itouchablewin32props.touchablehandlelongpress.md +0 -11
  1440. package/docs/api/react-native-win32.itouchablewin32props.touchablehandlepress.md +0 -11
  1441. package/docs/api/react-native-win32.itouchablewin32props.touchsounddisabled.md +0 -11
  1442. package/docs/api/react-native-win32.itouchablewin32state.isfocused.md +0 -11
  1443. package/docs/api/react-native-win32.itouchablewin32state.ishovered.md +0 -11
  1444. package/docs/api/react-native-win32.itouchablewin32state.ispressed.md +0 -11
  1445. package/docs/api/react-native-win32.itouchablewin32state.md +0 -20
  1446. package/docs/api/react-native-win32.itouchinfo.currentpagex.md +0 -11
  1447. package/docs/api/react-native-win32.itouchinfo.currentpagey.md +0 -11
  1448. package/docs/api/react-native-win32.itouchinfo.currenttimestamp.md +0 -11
  1449. package/docs/api/react-native-win32.itouchinfo.md +0 -29
  1450. package/docs/api/react-native-win32.itouchinfo.previouspagex.md +0 -11
  1451. package/docs/api/react-native-win32.itouchinfo.previouspagey.md +0 -11
  1452. package/docs/api/react-native-win32.itouchinfo.previoustimestamp.md +0 -11
  1453. package/docs/api/react-native-win32.itouchinfo.startpagex.md +0 -11
  1454. package/docs/api/react-native-win32.itouchinfo.startpagey.md +0 -11
  1455. package/docs/api/react-native-win32.itouchinfo.starttimestamp.md +0 -11
  1456. package/docs/api/react-native-win32.itouchinfo.touchactive.md +0 -11
  1457. package/docs/api/react-native-win32.itransitions.md +0 -15
  1458. package/docs/api/react-native-win32.iviewwin32.focus.md +0 -11
  1459. package/docs/api/react-native-win32.iviewwin32.md +0 -18
  1460. package/docs/api/react-native-win32.iviewwin32props.acceptskeyboardfocus.md +0 -16
  1461. package/docs/api/react-native-win32.iviewwin32props.accessibilityactions.md +0 -11
  1462. package/docs/api/react-native-win32.iviewwin32props.accessibilityannotation.md +0 -15
  1463. package/docs/api/react-native-win32.iviewwin32props.accessibilitylevel.md +0 -11
  1464. package/docs/api/react-native-win32.iviewwin32props.accessibilitypositioninset.md +0 -11
  1465. package/docs/api/react-native-win32.iviewwin32props.accessibilitysetsize.md +0 -11
  1466. package/docs/api/react-native-win32.iviewwin32props.animationclass.md +0 -11
  1467. package/docs/api/react-native-win32.iviewwin32props.children.md +0 -11
  1468. package/docs/api/react-native-win32.iviewwin32props.cursor.md +0 -11
  1469. package/docs/api/react-native-win32.iviewwin32props.focusable.md +0 -11
  1470. package/docs/api/react-native-win32.iviewwin32props.keydownevents.md +0 -11
  1471. package/docs/api/react-native-win32.iviewwin32props.keyupevents.md +0 -11
  1472. package/docs/api/react-native-win32.iviewwin32props.md +0 -44
  1473. package/docs/api/react-native-win32.iviewwin32props.onblur.md +0 -15
  1474. package/docs/api/react-native-win32.iviewwin32props.onblurcapture.md +0 -15
  1475. package/docs/api/react-native-win32.iviewwin32props.onfocus.md +0 -15
  1476. package/docs/api/react-native-win32.iviewwin32props.onfocuscapture.md +0 -15
  1477. package/docs/api/react-native-win32.iviewwin32props.onkeydown.md +0 -11
  1478. package/docs/api/react-native-win32.iviewwin32props.onkeydowncapture.md +0 -11
  1479. package/docs/api/react-native-win32.iviewwin32props.onkeyup.md +0 -11
  1480. package/docs/api/react-native-win32.iviewwin32props.onkeyupcapture.md +0 -11
  1481. package/docs/api/react-native-win32.iviewwin32props.onmouseenter.md +0 -11
  1482. package/docs/api/react-native-win32.iviewwin32props.onmouseleave.md +0 -11
  1483. package/docs/api/react-native-win32.iviewwin32props.tooltip.md +0 -13
  1484. package/docs/api/react-native-win32.iviewwin32props.type.md +0 -11
  1485. package/docs/api/react-native-win32.md +0 -85
  1486. package/docs/api/react-native-win32.omittedaccessibilitypropswin32.md +0 -15
  1487. package/docs/api/react-native-win32.personacoin.md +0 -11
  1488. package/docs/api/react-native-win32.personacoinpresence.md +0 -25
  1489. package/docs/api/react-native-win32.personacoinsize.md +0 -23
  1490. package/docs/api/react-native-win32.sharedaccessibilitypropsiosandwin32.md +0 -13
  1491. package/docs/api/react-native-win32.textstyle.md +0 -13
  1492. package/docs/api/react-native-win32.textwin32._constructor_.md +0 -20
  1493. package/docs/api/react-native-win32.textwin32.md +0 -25
  1494. package/docs/api/react-native-win32.textwin32.render.md +0 -15
  1495. package/docs/api/react-native-win32.textwin32omittypes.md +0 -11
  1496. package/docs/api/react-native-win32.touchablewin32._constructor_.md +0 -20
  1497. package/docs/api/react-native-win32.touchablewin32.componentwillunmount.md +0 -15
  1498. package/docs/api/react-native-win32.touchablewin32.focus.md +0 -11
  1499. package/docs/api/react-native-win32.touchablewin32.md +0 -34
  1500. package/docs/api/react-native-win32.touchablewin32.render.md +0 -15
  1501. package/docs/api/react-native-win32.usefrom.md +0 -13
  1502. package/docs/api/react-native-win32.viewwin32.md +0 -11
  1503. package/docs/api/react-native-win32.viewwin32omittypes.md +0 -11
  1504. package/etc/react-native-win32.api.md +0 -481
  1505. package/flow/Position.js +0 -16
  1506. package/flow/Promise.js +0 -47
  1507. package/flow/fbjs.js +0 -258
  1508. package/flow/jest.js +0 -1189
  1509. package/flow/use-subscription.js +0 -19
  1510. package/jest/preprocessor.js +0 -120
  1511. package/typings-index.d.ts +0 -20
  1512. package/typings-index.js +0 -40
@@ -1,2237 +1,25 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @flow
7
+ * @flow strict-local
8
8
  * @format
9
9
  */
10
10
 
11
11
  'use strict';
12
12
 
13
- const Batchinator = require('../Interaction/Batchinator');
14
- const FillRateHelper = require('./FillRateHelper');
15
- const PropTypes = require('prop-types');
16
- const React = require('react');
17
- const ReactNative = require('../Renderer/shims/ReactNative');
18
- const RefreshControl = require('../Components/RefreshControl/RefreshControl');
19
- const ScrollView = require('../Components/ScrollView/ScrollView');
20
- const StyleSheet = require('../StyleSheet/StyleSheet');
21
- const View = require('../Components/View/View');
22
- const ViewabilityHelper = require('./ViewabilityHelper');
13
+ import VirtualizedLists from '@react-native/virtualized-lists';
23
14
 
24
- const flattenStyle = require('../StyleSheet/flattenStyle');
25
- const infoLog = require('../Utilities/infoLog');
26
- const invariant = require('invariant');
27
- const warning = require('fbjs/lib/warning');
15
+ type VirtualizedListType = typeof VirtualizedLists.VirtualizedList;
16
+ const VirtualizedListComponent: VirtualizedListType =
17
+ VirtualizedLists.VirtualizedList;
28
18
 
29
- const {computeWindowedRenderLimits} = require('./VirtualizeUtils');
30
-
31
- import type {ScrollResponderType} from '../Components/ScrollView/ScrollView';
32
- import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
33
- import type {
34
- ViewabilityConfig,
35
- ViewToken,
36
- ViewabilityConfigCallbackPair,
37
- } from './ViewabilityHelper';
38
-
39
- type Item = any;
40
-
41
- export type Separators = {
42
- highlight: () => void,
43
- unhighlight: () => void,
44
- updateProps: (select: 'leading' | 'trailing', newProps: Object) => void,
45
- ...
46
- };
47
-
48
- export type RenderItemProps<ItemT> = {
49
- item: ItemT,
50
- index: number,
51
- separators: Separators,
52
- ...
53
- };
54
-
55
- export type RenderItemType<ItemT> = (
56
- info: RenderItemProps<ItemT>,
57
- ) => React.Node;
58
-
59
- type ViewabilityHelperCallbackTuple = {
60
- viewabilityHelper: ViewabilityHelper,
61
- onViewableItemsChanged: (info: {
62
- viewableItems: Array<ViewToken>,
63
- changed: Array<ViewToken>,
64
- ...
65
- }) => void,
66
- ...
67
- };
68
-
69
- type RequiredProps = {|
70
- /**
71
- * The default accessor functions assume this is an Array<{key: string} | {id: string}> but you can override
72
- * getItem, getItemCount, and keyExtractor to handle any type of index-based data.
73
- */
74
- data?: any,
75
- /**
76
- * A generic accessor for extracting an item from any sort of data blob.
77
- */
78
- getItem: (data: any, index: number) => ?Item,
79
- /**
80
- * Determines how many items are in the data blob.
81
- */
82
- getItemCount: (data: any) => number,
83
- |};
84
- type OptionalProps = {|
85
- renderItem?: ?RenderItemType<Item>,
86
- /**
87
- * `debug` will turn on extra logging and visual overlays to aid with debugging both usage and
88
- * implementation, but with a significant perf hit.
89
- */
90
- debug?: ?boolean,
91
- /**
92
- * DEPRECATED: Virtualization provides significant performance and memory optimizations, but fully
93
- * unmounts react instances that are outside of the render window. You should only need to disable
94
- * this for debugging purposes.
95
- */
96
- disableVirtualization?: ?boolean,
97
- /**
98
- * A marker property for telling the list to re-render (since it implements `PureComponent`). If
99
- * any of your `renderItem`, Header, Footer, etc. functions depend on anything outside of the
100
- * `data` prop, stick it here and treat it immutably.
101
- */
102
- extraData?: any,
103
- // e.g. height, y
104
- getItemLayout?: (
105
- data: any,
106
- index: number,
107
- ) => {
108
- length: number,
109
- offset: number,
110
- index: number,
111
- ...
112
- },
113
- horizontal?: ?boolean,
114
- /**
115
- * How many items to render in the initial batch. This should be enough to fill the screen but not
116
- * much more. Note these items will never be unmounted as part of the windowed rendering in order
117
- * to improve perceived performance of scroll-to-top actions.
118
- */
119
- initialNumToRender: number,
120
- /**
121
- * Instead of starting at the top with the first item, start at `initialScrollIndex`. This
122
- * disables the "scroll to top" optimization that keeps the first `initialNumToRender` items
123
- * always rendered and immediately renders the items starting at this initial index. Requires
124
- * `getItemLayout` to be implemented.
125
- */
126
- initialScrollIndex?: ?number,
127
- /**
128
- * Reverses the direction of scroll. Uses scale transforms of -1.
129
- */
130
- inverted?: ?boolean,
131
- keyExtractor: (item: Item, index: number) => string,
132
- /**
133
- * Each cell is rendered using this element. Can be a React Component Class,
134
- * or a render function. Defaults to using View.
135
- */
136
- CellRendererComponent?: ?React.ComponentType<any>,
137
- /**
138
- * Rendered in between each item, but not at the top or bottom. By default, `highlighted` and
139
- * `leadingItem` props are provided. `renderItem` provides `separators.highlight`/`unhighlight`
140
- * which will update the `highlighted` prop, but you can also add custom props with
141
- * `separators.updateProps`.
142
- */
143
- ItemSeparatorComponent?: ?React.ComponentType<any>,
144
- /**
145
- * Takes an item from `data` and renders it into the list. Example usage:
146
- *
147
- * <FlatList
148
- * ItemSeparatorComponent={Platform.OS !== 'android' && ({highlighted}) => (
149
- * <View style={[style.separator, highlighted && {marginLeft: 0}]} />
150
- * )}
151
- * data={[{title: 'Title Text', key: 'item1'}]}
152
- * ListItemComponent={({item, separators}) => (
153
- * <TouchableHighlight
154
- * onPress={() => this._onPress(item)}
155
- * onShowUnderlay={separators.highlight}
156
- * onHideUnderlay={separators.unhighlight}>
157
- * <View style={{backgroundColor: 'white'}}>
158
- * <Text>{item.title}</Text>
159
- * </View>
160
- * </TouchableHighlight>
161
- * )}
162
- * />
163
- *
164
- * Provides additional metadata like `index` if you need it, as well as a more generic
165
- * `separators.updateProps` function which let's you set whatever props you want to change the
166
- * rendering of either the leading separator or trailing separator in case the more common
167
- * `highlight` and `unhighlight` (which set the `highlighted: boolean` prop) are insufficient for
168
- * your use-case.
169
- */
170
- ListItemComponent?: ?(React.ComponentType<any> | React.Element<any>),
171
- /**
172
- * Rendered when the list is empty. Can be a React Component Class, a render function, or
173
- * a rendered element.
174
- */
175
- ListEmptyComponent?: ?(React.ComponentType<any> | React.Element<any>),
176
- /**
177
- * Rendered at the bottom of all the items. Can be a React Component Class, a render function, or
178
- * a rendered element.
179
- */
180
- ListFooterComponent?: ?(React.ComponentType<any> | React.Element<any>),
181
- /**
182
- * Styling for internal View for ListFooterComponent
183
- */
184
- ListFooterComponentStyle?: ViewStyleProp,
185
- /**
186
- * Rendered at the top of all the items. Can be a React Component Class, a render function, or
187
- * a rendered element.
188
- */
189
- ListHeaderComponent?: ?(React.ComponentType<any> | React.Element<any>),
190
- /**
191
- * Styling for internal View for ListHeaderComponent
192
- */
193
- ListHeaderComponentStyle?: ViewStyleProp,
194
- /**
195
- * A unique identifier for this list. If there are multiple VirtualizedLists at the same level of
196
- * nesting within another VirtualizedList, this key is necessary for virtualization to
197
- * work properly.
198
- */
199
- listKey?: string,
200
- /**
201
- * The maximum number of items to render in each incremental render batch. The more rendered at
202
- * once, the better the fill rate, but responsiveness may suffer because rendering content may
203
- * interfere with responding to button taps or other interactions.
204
- */
205
- maxToRenderPerBatch: number,
206
- /**
207
- * Called once when the scroll position gets within `onEndReachedThreshold` of the rendered
208
- * content.
209
- */
210
- onEndReached?: ?(info: {distanceFromEnd: number, ...}) => void,
211
- /**
212
- * How far from the end (in units of visible length of the list) the bottom edge of the
213
- * list must be from the end of the content to trigger the `onEndReached` callback.
214
- * Thus a value of 0.5 will trigger `onEndReached` when the end of the content is
215
- * within half the visible length of the list.
216
- */
217
- onEndReachedThreshold?: ?number,
218
- /**
219
- * If provided, a standard RefreshControl will be added for "Pull to Refresh" functionality. Make
220
- * sure to also set the `refreshing` prop correctly.
221
- */
222
- onRefresh?: ?() => void,
223
- /**
224
- * Used to handle failures when scrolling to an index that has not been measured yet. Recommended
225
- * action is to either compute your own offset and `scrollTo` it, or scroll as far as possible and
226
- * then try again after more items have been rendered.
227
- */
228
- onScrollToIndexFailed?: ?(info: {
229
- index: number,
230
- highestMeasuredFrameIndex: number,
231
- averageItemLength: number,
232
- ...
233
- }) => void,
234
- /**
235
- * Called when the viewability of rows changes, as defined by the
236
- * `viewabilityConfig` prop.
237
- */
238
- onViewableItemsChanged?: ?(info: {
239
- viewableItems: Array<ViewToken>,
240
- changed: Array<ViewToken>,
241
- ...
242
- }) => void,
243
- persistentScrollbar?: ?boolean,
244
- /**
245
- * Set this when offset is needed for the loading indicator to show correctly.
246
- * @platform android
247
- */
248
- progressViewOffset?: number,
249
- /**
250
- * A custom refresh control element. When set, it overrides the default
251
- * <RefreshControl> component built internally. The onRefresh and refreshing
252
- * props are also ignored. Only works for vertical VirtualizedList.
253
- */
254
- refreshControl?: ?React.Element<any>,
255
- /**
256
- * Set this true while waiting for new data from a refresh.
257
- */
258
- refreshing?: ?boolean,
259
- /**
260
- * Note: may have bugs (missing content) in some circumstances - use at your own risk.
261
- *
262
- * This may improve scroll performance for large lists.
263
- */
264
- removeClippedSubviews?: boolean,
265
- /**
266
- * Render a custom scroll component, e.g. with a differently styled `RefreshControl`.
267
- */
268
- renderScrollComponent?: (props: Object) => React.Element<any>,
269
- /**
270
- * Amount of time between low-pri item render batches, e.g. for rendering items quite a ways off
271
- * screen. Similar fill rate/responsiveness tradeoff as `maxToRenderPerBatch`.
272
- */
273
- updateCellsBatchingPeriod: number,
274
- /**
275
- * See `ViewabilityHelper` for flow type and further documentation.
276
- */
277
- viewabilityConfig?: ViewabilityConfig,
278
- /**
279
- * List of ViewabilityConfig/onViewableItemsChanged pairs. A specific onViewableItemsChanged
280
- * will be called when its corresponding ViewabilityConfig's conditions are met.
281
- */
282
- viewabilityConfigCallbackPairs?: Array<ViewabilityConfigCallbackPair>,
283
- /**
284
- * Determines the maximum number of items rendered outside of the visible area, in units of
285
- * visible lengths. So if your list fills the screen, then `windowSize={21}` (the default) will
286
- * render the visible screen area plus up to 10 screens above and 10 below the viewport. Reducing
287
- * this number will reduce memory consumption and may improve performance, but will increase the
288
- * chance that fast scrolling may reveal momentary blank areas of unrendered content.
289
- */
290
- windowSize: number,
291
- /**
292
- * The legacy implementation is no longer supported.
293
- */
294
- legacyImplementation?: empty,
295
- |};
296
-
297
- type Props = {|
298
- ...React.ElementConfig<typeof ScrollView>,
299
- ...RequiredProps,
300
- ...OptionalProps,
301
- |};
302
-
303
- type DefaultProps = {|
304
- disableVirtualization: boolean,
305
- horizontal: boolean,
306
- initialNumToRender: number,
307
- keyExtractor: (item: Item, index: number) => string,
308
- maxToRenderPerBatch: number,
309
- onEndReachedThreshold: number,
310
- scrollEventThrottle: number,
311
- updateCellsBatchingPeriod: number,
312
- windowSize: number,
313
- |};
314
-
315
- let _usedIndexForKey = false;
316
- let _keylessItemComponentName: string = '';
317
-
318
- type Frame = {
319
- offset: number,
320
- length: number,
321
- index: number,
322
- inLayout: boolean,
323
- ...
324
- };
325
-
326
- type ChildListState = {
327
- first: number,
328
- last: number,
329
- frames: {[key: number]: Frame, ...},
330
- ...
331
- };
332
-
333
- type State = {
334
- first: number,
335
- last: number,
336
- ...
337
- };
338
-
339
- // Data propagated through nested lists (regardless of orientation) that is
340
- // useful for producing diagnostics for usage errors involving nesting (e.g
341
- // missing/duplicate keys).
342
- type ListDebugInfo = {
343
- cellKey: string,
344
- listKey: string,
345
- parent: ?ListDebugInfo,
346
- // We include all ancestors regardless of orientation, so this is not always
347
- // identical to the child's orientation.
348
- horizontal: boolean,
349
- };
350
-
351
- /**
352
- * Base implementation for the more convenient [`<FlatList>`](https://reactnative.dev/docs/flatlist.html)
353
- * and [`<SectionList>`](https://reactnative.dev/docs/sectionlist.html) components, which are also better
354
- * documented. In general, this should only really be used if you need more flexibility than
355
- * `FlatList` provides, e.g. for use with immutable data instead of plain arrays.
356
- *
357
- * Virtualization massively improves memory consumption and performance of large lists by
358
- * maintaining a finite render window of active items and replacing all items outside of the render
359
- * window with appropriately sized blank space. The window adapts to scrolling behavior, and items
360
- * are rendered incrementally with low-pri (after any running interactions) if they are far from the
361
- * visible area, or with hi-pri otherwise to minimize the potential of seeing blank space.
362
- *
363
- * Some caveats:
364
- *
365
- * - Internal state is not preserved when content scrolls out of the render window. Make sure all
366
- * your data is captured in the item data or external stores like Flux, Redux, or Relay.
367
- * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-
368
- * equal. Make sure that everything your `renderItem` function depends on is passed as a prop
369
- * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on
370
- * changes. This includes the `data` prop and parent component state.
371
- * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously
372
- * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see
373
- * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,
374
- * and we are working on improving it behind the scenes.
375
- * - By default, the list looks for a `key` or `id` prop on each item and uses that for the React key.
376
- * Alternatively, you can provide a custom `keyExtractor` prop.
377
- *
378
- */
379
- class VirtualizedList extends React.PureComponent<Props, State> {
380
- props: Props;
381
-
382
- // scrollToEnd may be janky without getItemLayout prop
383
- scrollToEnd(params?: ?{animated?: ?boolean, ...}) {
384
- const animated = params ? params.animated : true;
385
- const veryLast = this.props.getItemCount(this.props.data) - 1;
386
- const frame = this._getFrameMetricsApprox(veryLast);
387
- const offset = Math.max(
388
- 0,
389
- frame.offset +
390
- frame.length +
391
- this._footerLength -
392
- this._scrollMetrics.visibleLength,
393
- );
394
-
395
- if (this._scrollRef == null) {
396
- return;
397
- }
398
-
399
- this._scrollRef.scrollTo(
400
- this.props.horizontal ? {x: offset, animated} : {y: offset, animated},
401
- );
402
- }
403
-
404
- // scrollToIndex may be janky without getItemLayout prop
405
- scrollToIndex(params: {
406
- animated?: ?boolean,
407
- index: number,
408
- viewOffset?: number,
409
- viewPosition?: number,
410
- ...
411
- }) {
412
- const {
413
- data,
414
- horizontal,
415
- getItemCount,
416
- getItemLayout,
417
- onScrollToIndexFailed,
418
- } = this.props;
419
- const {animated, index, viewOffset, viewPosition} = params;
420
- invariant(
421
- index >= 0 && index < getItemCount(data),
422
- `scrollToIndex out of range: requested index ${index} but maximum is ${getItemCount(
423
- data,
424
- ) - 1}`,
425
- );
426
- if (!getItemLayout && index > this._highestMeasuredFrameIndex) {
427
- invariant(
428
- !!onScrollToIndexFailed,
429
- 'scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, ' +
430
- 'otherwise there is no way to know the location of offscreen indices or handle failures.',
431
- );
432
- onScrollToIndexFailed({
433
- averageItemLength: this._averageCellLength,
434
- highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,
435
- index,
436
- });
437
- return;
438
- }
439
- const frame = this._getFrameMetricsApprox(index);
440
- const offset =
441
- Math.max(
442
- 0,
443
- frame.offset -
444
- (viewPosition || 0) *
445
- (this._scrollMetrics.visibleLength - frame.length),
446
- ) - (viewOffset || 0);
447
-
448
- if (this._scrollRef == null) {
449
- return;
450
- }
451
-
452
- this._scrollRef.scrollTo(
453
- horizontal ? {x: offset, animated} : {y: offset, animated},
454
- );
455
- }
456
-
457
- // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -
458
- // use scrollToIndex instead if possible.
459
- scrollToItem(params: {
460
- animated?: ?boolean,
461
- item: Item,
462
- viewPosition?: number,
463
- ...
464
- }) {
465
- const {item} = params;
466
- const {data, getItem, getItemCount} = this.props;
467
- const itemCount = getItemCount(data);
468
- for (let index = 0; index < itemCount; index++) {
469
- if (getItem(data, index) === item) {
470
- this.scrollToIndex({...params, index});
471
- break;
472
- }
473
- }
474
- }
475
-
476
- /**
477
- * Scroll to a specific content pixel offset in the list.
478
- *
479
- * Param `offset` expects the offset to scroll to.
480
- * In case of `horizontal` is true, the offset is the x-value,
481
- * in any other case the offset is the y-value.
482
- *
483
- * Param `animated` (`true` by default) defines whether the list
484
- * should do an animation while scrolling.
485
- */
486
- scrollToOffset(params: {animated?: ?boolean, offset: number, ...}) {
487
- const {animated, offset} = params;
488
-
489
- if (this._scrollRef == null) {
490
- return;
491
- }
492
-
493
- this._scrollRef.scrollTo(
494
- this.props.horizontal ? {x: offset, animated} : {y: offset, animated},
495
- );
496
- }
497
-
498
- recordInteraction() {
499
- this._nestedChildLists.forEach(childList => {
500
- childList.ref && childList.ref.recordInteraction();
501
- });
502
- this._viewabilityTuples.forEach(t => {
503
- t.viewabilityHelper.recordInteraction();
504
- });
505
- this._updateViewableItems(this.props.data);
506
- }
507
-
508
- flashScrollIndicators() {
509
- if (this._scrollRef == null) {
510
- return;
511
- }
512
-
513
- this._scrollRef.flashScrollIndicators();
514
- }
515
-
516
- /**
517
- * Provides a handle to the underlying scroll responder.
518
- * Note that `this._scrollRef` might not be a `ScrollView`, so we
519
- * need to check that it responds to `getScrollResponder` before calling it.
520
- */
521
- getScrollResponder(): ?ScrollResponderType {
522
- if (this._scrollRef && this._scrollRef.getScrollResponder) {
523
- return this._scrollRef.getScrollResponder();
524
- }
525
- }
526
-
527
- getScrollableNode(): ?number {
528
- if (this._scrollRef && this._scrollRef.getScrollableNode) {
529
- return this._scrollRef.getScrollableNode();
530
- } else {
531
- return ReactNative.findNodeHandle(this._scrollRef);
532
- }
533
- }
534
-
535
- getScrollRef():
536
- | ?React.ElementRef<typeof ScrollView>
537
- | ?React.ElementRef<typeof View> {
538
- if (this._scrollRef && this._scrollRef.getScrollRef) {
539
- return this._scrollRef.getScrollRef();
540
- } else {
541
- return this._scrollRef;
542
- }
543
- }
544
-
545
- setNativeProps(props: Object) {
546
- if (this._scrollRef) {
547
- this._scrollRef.setNativeProps(props);
548
- }
549
- }
550
-
551
- static defaultProps: DefaultProps = {
552
- disableVirtualization: false,
553
- horizontal: false,
554
- initialNumToRender: 10,
555
- keyExtractor: (item: Item, index: number) => {
556
- if (item.key != null) {
557
- return item.key;
558
- }
559
- if (item.id != null) {
560
- return item.id;
561
- }
562
- _usedIndexForKey = true;
563
- if (item.type && item.type.displayName) {
564
- _keylessItemComponentName = item.type.displayName;
565
- }
566
- return String(index);
567
- },
568
- maxToRenderPerBatch: 10,
569
- onEndReachedThreshold: 2, // multiples of length
570
- scrollEventThrottle: 50,
571
- updateCellsBatchingPeriod: 50,
572
- windowSize: 21, // multiples of length
573
- };
574
-
575
- static contextTypes:
576
- | any
577
- | {|
578
- virtualizedCell: {|
579
- cellKey: React$PropType$Primitive<string>,
580
- |},
581
- virtualizedList: {|
582
- getScrollMetrics: React$PropType$Primitive<Function>,
583
- horizontal: React$PropType$Primitive<boolean>,
584
- getOutermostParentListRef: React$PropType$Primitive<Function>,
585
- getNestedChildState: React$PropType$Primitive<Function>,
586
- registerAsNestedChild: React$PropType$Primitive<Function>,
587
- unregisterAsNestedChild: React$PropType$Primitive<Function>,
588
- debugInfo: {|
589
- listKey: React$PropType$Primitive<string>,
590
- cellKey: React$PropType$Primitive<string>,
591
- |},
592
- |},
593
- |} = {
594
- virtualizedCell: PropTypes.shape({
595
- cellKey: PropTypes.string,
596
- }),
597
- virtualizedList: PropTypes.shape({
598
- getScrollMetrics: PropTypes.func,
599
- horizontal: PropTypes.bool,
600
- getOutermostParentListRef: PropTypes.func,
601
- getNestedChildState: PropTypes.func,
602
- registerAsNestedChild: PropTypes.func,
603
- unregisterAsNestedChild: PropTypes.func,
604
- debugInfo: PropTypes.shape({
605
- listKey: PropTypes.string,
606
- cellKey: PropTypes.string,
607
- }),
608
- }),
609
- };
610
-
611
- static childContextTypes:
612
- | any
613
- | {|
614
- getScrollMetrics: React$PropType$Primitive<Function>,
615
- horizontal: React$PropType$Primitive<boolean>,
616
- getOutermostParentListRef: React$PropType$Primitive<Function>,
617
- getNestedChildState: React$PropType$Primitive<Function>,
618
- registerAsNestedChild: React$PropType$Primitive<Function>,
619
- unregisterAsNestedChild: React$PropType$Primitive<Function>,
620
- |} = {
621
- virtualizedList: PropTypes.shape({
622
- getScrollMetrics: PropTypes.func,
623
- horizontal: PropTypes.bool,
624
- getOutermostParentListRef: PropTypes.func,
625
- getNestedChildState: PropTypes.func,
626
- registerAsNestedChild: PropTypes.func,
627
- unregisterAsNestedChild: PropTypes.func,
628
- }),
629
- };
630
-
631
- getChildContext(): {|
632
- virtualizedList: {
633
- getScrollMetrics: () => {
634
- contentLength: number,
635
- dOffset: number,
636
- dt: number,
637
- offset: number,
638
- timestamp: number,
639
- velocity: number,
640
- visibleLength: number,
641
- ...
642
- },
643
- horizontal: ?boolean,
644
- getOutermostParentListRef: Function,
645
- getNestedChildState: string => ?ChildListState,
646
- registerAsNestedChild: ({
647
- cellKey: string,
648
- key: string,
649
- ref: VirtualizedList,
650
- parentDebugInfo: ListDebugInfo,
651
- ...
652
- }) => ?ChildListState,
653
- unregisterAsNestedChild: ({
654
- key: string,
655
- state: ChildListState,
656
- ...
657
- }) => void,
658
- debugInfo: ListDebugInfo,
659
- ...
660
- },
661
- |} {
662
- return {
663
- virtualizedList: {
664
- getScrollMetrics: this._getScrollMetrics,
665
- horizontal: this.props.horizontal,
666
- getOutermostParentListRef: this._getOutermostParentListRef,
667
- getNestedChildState: this._getNestedChildState,
668
- registerAsNestedChild: this._registerAsNestedChild,
669
- unregisterAsNestedChild: this._unregisterAsNestedChild,
670
- debugInfo: this._getDebugInfo(),
671
- },
672
- };
673
- }
674
-
675
- _getCellKey(): string {
676
- return (
677
- (this.context.virtualizedCell && this.context.virtualizedCell.cellKey) ||
678
- 'rootList'
679
- );
680
- }
681
-
682
- _getListKey(): string {
683
- return this.props.listKey || this._getCellKey();
684
- }
685
-
686
- _getDebugInfo(): ListDebugInfo {
687
- return {
688
- listKey: this._getListKey(),
689
- cellKey: this._getCellKey(),
690
- horizontal: !!this.props.horizontal,
691
- parent: this.context.virtualizedList
692
- ? this.context.virtualizedList.debugInfo
693
- : null,
694
- };
695
- }
696
-
697
- _getScrollMetrics = () => {
698
- return this._scrollMetrics;
699
- };
700
-
701
- hasMore(): boolean {
702
- return this._hasMore;
703
- }
704
-
705
- _getOutermostParentListRef = () => {
706
- if (this._isNestedWithSameOrientation()) {
707
- return this.context.virtualizedList.getOutermostParentListRef();
708
- } else {
709
- return this;
710
- }
711
- };
712
-
713
- _getNestedChildState = (key: string): ?ChildListState => {
714
- const existingChildData = this._nestedChildLists.get(key);
715
- return existingChildData && existingChildData.state;
716
- };
717
-
718
- _registerAsNestedChild = (childList: {
719
- cellKey: string,
720
- key: string,
721
- ref: VirtualizedList,
722
- parentDebugInfo: ListDebugInfo,
723
- ...
724
- }): ?ChildListState => {
725
- // Register the mapping between this child key and the cellKey for its cell
726
- const childListsInCell =
727
- this._cellKeysToChildListKeys.get(childList.cellKey) || new Set();
728
- childListsInCell.add(childList.key);
729
- this._cellKeysToChildListKeys.set(childList.cellKey, childListsInCell);
730
- const existingChildData = this._nestedChildLists.get(childList.key);
731
- if (existingChildData && existingChildData.ref !== null) {
732
- console.error(
733
- 'A VirtualizedList contains a cell which itself contains ' +
734
- 'more than one VirtualizedList of the same orientation as the parent ' +
735
- 'list. You must pass a unique listKey prop to each sibling list.\n\n' +
736
- describeNestedLists({
737
- ...childList,
738
- // We're called from the child's componentDidMount, so it's safe to
739
- // read the child's props here (albeit weird).
740
- horizontal: !!childList.ref.props.horizontal,
741
- }),
742
- );
743
- }
744
- this._nestedChildLists.set(childList.key, {
745
- ref: childList.ref,
746
- state: null,
747
- });
748
-
749
- if (this._hasInteracted) {
750
- childList.ref.recordInteraction();
751
- }
752
- };
753
-
754
- _unregisterAsNestedChild = (childList: {
755
- key: string,
756
- state: ChildListState,
757
- ...
758
- }): void => {
759
- this._nestedChildLists.set(childList.key, {
760
- ref: null,
761
- state: childList.state,
762
- });
763
- };
764
-
765
- state: State;
766
-
767
- constructor(props: Props, context: Object) {
768
- super(props, context);
769
- invariant(
770
- // $FlowFixMe
771
- !props.onScroll || !props.onScroll.__isNative,
772
- 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent ' +
773
- 'to support native onScroll events with useNativeDriver',
774
- );
775
-
776
- invariant(
777
- props.windowSize > 0,
778
- 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.',
779
- );
780
-
781
- this._fillRateHelper = new FillRateHelper(this._getFrameMetrics);
782
- this._updateCellsToRenderBatcher = new Batchinator(
783
- this._updateCellsToRender,
784
- this.props.updateCellsBatchingPeriod,
785
- );
786
-
787
- if (this.props.viewabilityConfigCallbackPairs) {
788
- this._viewabilityTuples = this.props.viewabilityConfigCallbackPairs.map(
789
- pair => ({
790
- viewabilityHelper: new ViewabilityHelper(pair.viewabilityConfig),
791
- onViewableItemsChanged: pair.onViewableItemsChanged,
792
- }),
793
- );
794
- } else if (this.props.onViewableItemsChanged) {
795
- this._viewabilityTuples.push({
796
- viewabilityHelper: new ViewabilityHelper(this.props.viewabilityConfig),
797
- onViewableItemsChanged: this.props.onViewableItemsChanged,
798
- });
799
- }
800
-
801
- let initialState = {
802
- first: this.props.initialScrollIndex || 0,
803
- last:
804
- Math.min(
805
- this.props.getItemCount(this.props.data),
806
- (this.props.initialScrollIndex || 0) + this.props.initialNumToRender,
807
- ) - 1,
808
- };
809
-
810
- if (this._isNestedWithSameOrientation()) {
811
- const storedState = this.context.virtualizedList.getNestedChildState(
812
- this._getListKey(),
813
- );
814
- if (storedState) {
815
- initialState = storedState;
816
- this.state = storedState;
817
- this._frames = storedState.frames;
818
- }
819
- }
820
-
821
- this.state = initialState;
822
- }
823
-
824
- componentDidMount() {
825
- if (this._isNestedWithSameOrientation()) {
826
- this.context.virtualizedList.registerAsNestedChild({
827
- cellKey: this._getCellKey(),
828
- key: this._getListKey(),
829
- ref: this,
830
- // NOTE: When the child mounts (here) it's not necessarily safe to read
831
- // the parent's props. This is why we explicitly propagate debugInfo
832
- // "down" via context and "up" again via this method call on the
833
- // parent.
834
- parentDebugInfo: this.context.virtualizedList.debugInfo,
835
- });
836
- }
837
- }
838
-
839
- componentWillUnmount() {
840
- if (this._isNestedWithSameOrientation()) {
841
- this.context.virtualizedList.unregisterAsNestedChild({
842
- key: this._getListKey(),
843
- state: {
844
- first: this.state.first,
845
- last: this.state.last,
846
- frames: this._frames,
847
- },
848
- });
849
- }
850
- this._updateViewableItems(null);
851
- this._updateCellsToRenderBatcher.dispose({abort: true});
852
- this._viewabilityTuples.forEach(tuple => {
853
- tuple.viewabilityHelper.dispose();
854
- });
855
- this._fillRateHelper.deactivateAndFlush();
856
- }
857
-
858
- static getDerivedStateFromProps(newProps: Props, prevState: State): State {
859
- const {data, getItemCount, maxToRenderPerBatch} = newProps;
860
- // first and last could be stale (e.g. if a new, shorter items props is passed in), so we make
861
- // sure we're rendering a reasonable range here.
862
- return {
863
- first: Math.max(
864
- 0,
865
- Math.min(prevState.first, getItemCount(data) - 1 - maxToRenderPerBatch),
866
- ),
867
- last: Math.max(0, Math.min(prevState.last, getItemCount(data) - 1)),
868
- };
869
- }
870
-
871
- _pushCells(
872
- cells: Array<Object>,
873
- stickyHeaderIndices: Array<number>,
874
- stickyIndicesFromProps: Set<number>,
875
- first: number,
876
- last: number,
877
- inversionStyle: ViewStyleProp,
878
- ) {
879
- const {
880
- CellRendererComponent,
881
- ItemSeparatorComponent,
882
- data,
883
- getItem,
884
- getItemCount,
885
- horizontal,
886
- keyExtractor,
887
- } = this.props;
888
- const stickyOffset = this.props.ListHeaderComponent ? 1 : 0;
889
- const end = getItemCount(data) - 1;
890
- let prevCellKey;
891
- last = Math.min(end, last);
892
- for (let ii = first; ii <= last; ii++) {
893
- const item = getItem(data, ii);
894
- const key = keyExtractor(item, ii);
895
- this._indicesToKeys.set(ii, key);
896
- if (stickyIndicesFromProps.has(ii + stickyOffset)) {
897
- stickyHeaderIndices.push(cells.length);
898
- }
899
- cells.push(
900
- <CellRenderer
901
- CellRendererComponent={CellRendererComponent}
902
- ItemSeparatorComponent={ii < end ? ItemSeparatorComponent : undefined}
903
- cellKey={key}
904
- fillRateHelper={this._fillRateHelper}
905
- horizontal={horizontal}
906
- index={ii}
907
- inversionStyle={inversionStyle}
908
- item={item}
909
- key={key}
910
- prevCellKey={prevCellKey}
911
- onUpdateSeparators={this._onUpdateSeparators}
912
- onLayout={e => this._onCellLayout(e, key, ii)}
913
- onUnmount={this._onCellUnmount}
914
- parentProps={this.props}
915
- ref={ref => {
916
- this._cellRefs[key] = ref;
917
- }}
918
- />,
919
- );
920
- prevCellKey = key;
921
- }
922
- }
923
-
924
- _onUpdateSeparators = (keys: Array<?string>, newProps: Object) => {
925
- keys.forEach(key => {
926
- const ref = key != null && this._cellRefs[key];
927
- ref && ref.updateSeparatorProps(newProps);
928
- });
929
- };
930
-
931
- _isVirtualizationDisabled(): boolean {
932
- return this.props.disableVirtualization || false;
933
- }
934
-
935
- _isNestedWithSameOrientation(): boolean {
936
- const nestedContext = this.context.virtualizedList;
937
- return !!(
938
- nestedContext && !!nestedContext.horizontal === !!this.props.horizontal
939
- );
940
- }
941
-
942
- render(): React.Node {
943
- if (__DEV__) {
944
- const flatStyles = flattenStyle(this.props.contentContainerStyle);
945
- warning(
946
- flatStyles == null || flatStyles.flexWrap !== 'wrap',
947
- '`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.' +
948
- 'Consider using `numColumns` with `FlatList` instead.',
949
- );
950
- }
951
- const {
952
- ListEmptyComponent,
953
- ListFooterComponent,
954
- ListHeaderComponent,
955
- } = this.props;
956
- const {data, horizontal} = this.props;
957
- const isVirtualizationDisabled = this._isVirtualizationDisabled();
958
- const inversionStyle = this.props.inverted
959
- ? this.props.horizontal
960
- ? styles.horizontallyInverted
961
- : styles.verticallyInverted
962
- : null;
963
- const cells = [];
964
- const stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices);
965
- const stickyHeaderIndices = [];
966
- if (ListHeaderComponent) {
967
- if (stickyIndicesFromProps.has(0)) {
968
- stickyHeaderIndices.push(0);
969
- }
970
- const element = React.isValidElement(ListHeaderComponent) ? (
971
- ListHeaderComponent
972
- ) : (
973
- // $FlowFixMe
974
- <ListHeaderComponent />
975
- );
976
- cells.push(
977
- <VirtualizedCellWrapper
978
- cellKey={this._getCellKey() + '-header'}
979
- key="$header">
980
- <View
981
- onLayout={this._onLayoutHeader}
982
- style={StyleSheet.compose(
983
- inversionStyle,
984
- this.props.ListHeaderComponentStyle,
985
- )}>
986
- {
987
- // $FlowFixMe - Typing ReactNativeComponent revealed errors
988
- element
989
- }
990
- </View>
991
- </VirtualizedCellWrapper>,
992
- );
993
- }
994
- const itemCount = this.props.getItemCount(data);
995
- if (itemCount > 0) {
996
- _usedIndexForKey = false;
997
- _keylessItemComponentName = '';
998
- const spacerKey = !horizontal ? 'height' : 'width';
999
- const lastInitialIndex = this.props.initialScrollIndex
1000
- ? -1
1001
- : this.props.initialNumToRender - 1;
1002
- const {first, last} = this.state;
1003
- this._pushCells(
1004
- cells,
1005
- stickyHeaderIndices,
1006
- stickyIndicesFromProps,
1007
- 0,
1008
- lastInitialIndex,
1009
- inversionStyle,
1010
- );
1011
- const firstAfterInitial = Math.max(lastInitialIndex + 1, first);
1012
- if (!isVirtualizationDisabled && first > lastInitialIndex + 1) {
1013
- let insertedStickySpacer = false;
1014
- if (stickyIndicesFromProps.size > 0) {
1015
- const stickyOffset = ListHeaderComponent ? 1 : 0;
1016
- // See if there are any sticky headers in the virtualized space that we need to render.
1017
- for (let ii = firstAfterInitial - 1; ii > lastInitialIndex; ii--) {
1018
- if (stickyIndicesFromProps.has(ii + stickyOffset)) {
1019
- const initBlock = this._getFrameMetricsApprox(lastInitialIndex);
1020
- const stickyBlock = this._getFrameMetricsApprox(ii);
1021
- const leadSpace =
1022
- stickyBlock.offset -
1023
- initBlock.offset -
1024
- (this.props.initialScrollIndex ? 0 : initBlock.length);
1025
- cells.push(
1026
- /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment
1027
- * suppresses an error found when Flow v0.111 was deployed. To
1028
- * see the error, delete this comment and run Flow. */
1029
- <View key="$sticky_lead" style={{[spacerKey]: leadSpace}} />,
1030
- );
1031
- this._pushCells(
1032
- cells,
1033
- stickyHeaderIndices,
1034
- stickyIndicesFromProps,
1035
- ii,
1036
- ii,
1037
- inversionStyle,
1038
- );
1039
- const trailSpace =
1040
- this._getFrameMetricsApprox(first).offset -
1041
- (stickyBlock.offset + stickyBlock.length);
1042
- cells.push(
1043
- /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment
1044
- * suppresses an error found when Flow v0.111 was deployed. To
1045
- * see the error, delete this comment and run Flow. */
1046
- <View key="$sticky_trail" style={{[spacerKey]: trailSpace}} />,
1047
- );
1048
- insertedStickySpacer = true;
1049
- break;
1050
- }
1051
- }
1052
- }
1053
- if (!insertedStickySpacer) {
1054
- const initBlock = this._getFrameMetricsApprox(lastInitialIndex);
1055
- const firstSpace =
1056
- this._getFrameMetricsApprox(first).offset -
1057
- (initBlock.offset + initBlock.length);
1058
- cells.push(
1059
- /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment
1060
- * suppresses an error found when Flow v0.111 was deployed. To see
1061
- * the error, delete this comment and run Flow. */
1062
- <View key="$lead_spacer" style={{[spacerKey]: firstSpace}} />,
1063
- );
1064
- }
1065
- }
1066
- this._pushCells(
1067
- cells,
1068
- stickyHeaderIndices,
1069
- stickyIndicesFromProps,
1070
- firstAfterInitial,
1071
- last,
1072
- inversionStyle,
1073
- );
1074
- if (!this._hasWarned.keys && _usedIndexForKey) {
1075
- console.warn(
1076
- 'VirtualizedList: missing keys for items, make sure to specify a key or id property on each ' +
1077
- 'item or provide a custom keyExtractor.',
1078
- _keylessItemComponentName,
1079
- );
1080
- this._hasWarned.keys = true;
1081
- }
1082
- if (!isVirtualizationDisabled && last < itemCount - 1) {
1083
- const lastFrame = this._getFrameMetricsApprox(last);
1084
- // Without getItemLayout, we limit our tail spacer to the _highestMeasuredFrameIndex to
1085
- // prevent the user for hyperscrolling into un-measured area because otherwise content will
1086
- // likely jump around as it renders in above the viewport.
1087
- const end = this.props.getItemLayout
1088
- ? itemCount - 1
1089
- : Math.min(itemCount - 1, this._highestMeasuredFrameIndex);
1090
- const endFrame = this._getFrameMetricsApprox(end);
1091
- const tailSpacerLength =
1092
- endFrame.offset +
1093
- endFrame.length -
1094
- (lastFrame.offset + lastFrame.length);
1095
- cells.push(
1096
- /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment suppresses
1097
- * an error found when Flow v0.111 was deployed. To see the error,
1098
- * delete this comment and run Flow. */
1099
- <View key="$tail_spacer" style={{[spacerKey]: tailSpacerLength}} />,
1100
- );
1101
- }
1102
- } else if (ListEmptyComponent) {
1103
- const element: React.Element<any> = ((React.isValidElement(
1104
- ListEmptyComponent,
1105
- ) ? (
1106
- ListEmptyComponent
1107
- ) : (
1108
- // $FlowFixMe
1109
- <ListEmptyComponent />
1110
- )): any);
1111
- cells.push(
1112
- React.cloneElement(element, {
1113
- key: '$empty',
1114
- onLayout: event => {
1115
- this._onLayoutEmpty(event);
1116
- if (element.props.onLayout) {
1117
- element.props.onLayout(event);
1118
- }
1119
- },
1120
- style: StyleSheet.compose(
1121
- inversionStyle,
1122
- element.props.style,
1123
- ),
1124
- }),
1125
- );
1126
- }
1127
- if (ListFooterComponent) {
1128
- const element = React.isValidElement(ListFooterComponent) ? (
1129
- ListFooterComponent
1130
- ) : (
1131
- // $FlowFixMe
1132
- <ListFooterComponent />
1133
- );
1134
- cells.push(
1135
- <VirtualizedCellWrapper
1136
- cellKey={this._getFooterCellKey()}
1137
- key="$footer">
1138
- <View
1139
- onLayout={this._onLayoutFooter}
1140
- style={StyleSheet.compose(
1141
- inversionStyle,
1142
- this.props.ListFooterComponentStyle,
1143
- )}>
1144
- {
1145
- // $FlowFixMe - Typing ReactNativeComponent revealed errors
1146
- element
1147
- }
1148
- </View>
1149
- </VirtualizedCellWrapper>,
1150
- );
1151
- }
1152
- const scrollProps = {
1153
- ...this.props,
1154
- onContentSizeChange: this._onContentSizeChange,
1155
- onLayout: this._onLayout,
1156
- onScroll: this._onScroll,
1157
- onScrollBeginDrag: this._onScrollBeginDrag,
1158
- onScrollEndDrag: this._onScrollEndDrag,
1159
- onMomentumScrollEnd: this._onMomentumScrollEnd,
1160
- scrollEventThrottle: this.props.scrollEventThrottle, // TODO: Android support
1161
- invertStickyHeaders:
1162
- this.props.invertStickyHeaders !== undefined
1163
- ? this.props.invertStickyHeaders
1164
- : this.props.inverted,
1165
- stickyHeaderIndices,
1166
- style: inversionStyle
1167
- ? [inversionStyle, this.props.style]
1168
- : this.props.style,
1169
- };
1170
-
1171
- this._hasMore =
1172
- this.state.last < this.props.getItemCount(this.props.data) - 1;
1173
-
1174
- const innerRet = React.cloneElement(
1175
- (this.props.renderScrollComponent || this._defaultRenderScrollComponent)(
1176
- scrollProps,
1177
- ),
1178
- {
1179
- ref: this._captureScrollRef,
1180
- },
1181
- cells,
1182
- );
1183
- let ret = innerRet;
1184
- if (__DEV__) {
1185
- ret = (
1186
- <ScrollView.Context.Consumer>
1187
- {scrollContext => {
1188
- if (
1189
- scrollContext != null &&
1190
- !scrollContext.horizontal === !this.props.horizontal &&
1191
- !this._hasWarned.nesting &&
1192
- this.context.virtualizedList == null
1193
- ) {
1194
- // TODO (T46547044): use React.warn once 16.9 is sync'd: https://github.com/facebook/react/pull/15170
1195
- console.warn(
1196
- 'VirtualizedLists should never be nested inside plain ScrollViews with the same ' +
1197
- 'orientation - use another VirtualizedList-backed container instead.',
1198
- );
1199
- this._hasWarned.nesting = true;
1200
- }
1201
- return innerRet;
1202
- }}
1203
- </ScrollView.Context.Consumer>
1204
- );
1205
- }
1206
- if (this.props.debug) {
1207
- return (
1208
- <View style={styles.debug}>
1209
- {ret}
1210
- {this._renderDebugOverlay()}
1211
- </View>
1212
- );
1213
- } else {
1214
- return ret;
1215
- }
1216
- }
1217
-
1218
- componentDidUpdate(prevProps: Props) {
1219
- const {data, extraData} = this.props;
1220
- if (data !== prevProps.data || extraData !== prevProps.extraData) {
1221
- this._hasDataChangedSinceEndReached = true;
1222
-
1223
- // clear the viewableIndices cache to also trigger
1224
- // the onViewableItemsChanged callback with the new data
1225
- this._viewabilityTuples.forEach(tuple => {
1226
- tuple.viewabilityHelper.resetViewableIndices();
1227
- });
1228
- }
1229
- // The `this._hiPriInProgress` is guaranteeing a hiPri cell update will only happen
1230
- // once per fiber update. The `_scheduleCellsToRenderUpdate` will set it to true
1231
- // if a hiPri update needs to perform. If `componentDidUpdate` is triggered with
1232
- // `this._hiPriInProgress=true`, means it's triggered by the hiPri update. The
1233
- // `_scheduleCellsToRenderUpdate` will check this condition and not perform
1234
- // another hiPri update.
1235
- const hiPriInProgress = this._hiPriInProgress;
1236
- this._scheduleCellsToRenderUpdate();
1237
- // Make sure setting `this._hiPriInProgress` back to false after `componentDidUpdate`
1238
- // is triggered with `this._hiPriInProgress = true`
1239
- if (hiPriInProgress) {
1240
- this._hiPriInProgress = false;
1241
- }
1242
- }
1243
-
1244
- _averageCellLength = 0;
1245
- // Maps a cell key to the set of keys for all outermost child lists within that cell
1246
- _cellKeysToChildListKeys: Map<string, Set<string>> = new Map();
1247
- _cellRefs = {};
1248
- _fillRateHelper: FillRateHelper;
1249
- _frames = {};
1250
- _footerLength = 0;
1251
- _hasDataChangedSinceEndReached = true;
1252
- _hasDoneInitialScroll = false;
1253
- _hasInteracted = false;
1254
- _hasMore = false;
1255
- _hasWarned = {};
1256
- _headerLength = 0;
1257
- _hiPriInProgress: boolean = false; // flag to prevent infinite hiPri cell limit update
1258
- _highestMeasuredFrameIndex = 0;
1259
- _indicesToKeys: Map<number, string> = new Map();
1260
- _nestedChildLists: Map<
1261
- string,
1262
- {
1263
- ref: ?VirtualizedList,
1264
- state: ?ChildListState,
1265
- ...
1266
- },
1267
- > = new Map();
1268
- _offsetFromParentVirtualizedList: number = 0;
1269
- _prevParentOffset: number = 0;
1270
- _scrollMetrics = {
1271
- contentLength: 0,
1272
- dOffset: 0,
1273
- dt: 10,
1274
- offset: 0,
1275
- timestamp: 0,
1276
- velocity: 0,
1277
- visibleLength: 0,
1278
- };
1279
- _scrollRef: ?React.ElementRef<any> = null;
1280
- _sentEndForContentLength = 0;
1281
- _totalCellLength = 0;
1282
- _totalCellsMeasured = 0;
1283
- _updateCellsToRenderBatcher: Batchinator;
1284
- _viewabilityTuples: Array<ViewabilityHelperCallbackTuple> = [];
1285
-
1286
- _captureScrollRef = ref => {
1287
- this._scrollRef = ref;
1288
- };
1289
-
1290
- _computeBlankness() {
1291
- this._fillRateHelper.computeBlankness(
1292
- this.props,
1293
- this.state,
1294
- this._scrollMetrics,
1295
- );
1296
- }
1297
-
1298
- _defaultRenderScrollComponent = props => {
1299
- const onRefresh = props.onRefresh;
1300
- if (this._isNestedWithSameOrientation()) {
1301
- // $FlowFixMe - Typing ReactNativeComponent revealed errors
1302
- return <View {...props} />;
1303
- } else if (onRefresh) {
1304
- invariant(
1305
- typeof props.refreshing === 'boolean',
1306
- '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' +
1307
- /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment suppresses
1308
- * an error found when Flow v0.111 was deployed. To see the error,
1309
- * delete this comment and run Flow. */
1310
- JSON.stringify(props.refreshing) +
1311
- '`',
1312
- );
1313
- return (
1314
- // $FlowFixMe Invalid prop usage
1315
- <ScrollView
1316
- {...props}
1317
- refreshControl={
1318
- props.refreshControl == null ? (
1319
- <RefreshControl
1320
- refreshing={props.refreshing}
1321
- onRefresh={onRefresh}
1322
- progressViewOffset={props.progressViewOffset}
1323
- />
1324
- ) : (
1325
- props.refreshControl
1326
- )
1327
- }
1328
- />
1329
- );
1330
- } else {
1331
- // $FlowFixMe Invalid prop usage
1332
- return <ScrollView {...props} />;
1333
- }
1334
- };
1335
-
1336
- _onCellLayout(e, cellKey, index) {
1337
- const layout = e.nativeEvent.layout;
1338
- const next = {
1339
- offset: this._selectOffset(layout),
1340
- length: this._selectLength(layout),
1341
- index,
1342
- inLayout: true,
1343
- };
1344
- const curr = this._frames[cellKey];
1345
- if (
1346
- !curr ||
1347
- next.offset !== curr.offset ||
1348
- next.length !== curr.length ||
1349
- index !== curr.index
1350
- ) {
1351
- this._totalCellLength += next.length - (curr ? curr.length : 0);
1352
- this._totalCellsMeasured += curr ? 0 : 1;
1353
- this._averageCellLength =
1354
- this._totalCellLength / this._totalCellsMeasured;
1355
- this._frames[cellKey] = next;
1356
- this._highestMeasuredFrameIndex = Math.max(
1357
- this._highestMeasuredFrameIndex,
1358
- index,
1359
- );
1360
- this._scheduleCellsToRenderUpdate();
1361
- } else {
1362
- this._frames[cellKey].inLayout = true;
1363
- }
1364
-
1365
- this._triggerRemeasureForChildListsInCell(cellKey);
1366
-
1367
- this._computeBlankness();
1368
- this._updateViewableItems(this.props.data);
1369
- }
1370
-
1371
- _onCellUnmount = (cellKey: string) => {
1372
- const curr = this._frames[cellKey];
1373
- if (curr) {
1374
- this._frames[cellKey] = {...curr, inLayout: false};
1375
- }
1376
- };
1377
-
1378
- _triggerRemeasureForChildListsInCell(cellKey: string): void {
1379
- const childListKeys = this._cellKeysToChildListKeys.get(cellKey);
1380
- if (childListKeys) {
1381
- for (let childKey of childListKeys) {
1382
- const childList = this._nestedChildLists.get(childKey);
1383
- childList &&
1384
- childList.ref &&
1385
- childList.ref.measureLayoutRelativeToContainingList();
1386
- }
1387
- }
1388
- }
1389
-
1390
- measureLayoutRelativeToContainingList(): void {
1391
- // TODO (T35574538): findNodeHandle sometimes crashes with "Unable to find
1392
- // node on an unmounted component" during scrolling
1393
- try {
1394
- if (!this._scrollRef) {
1395
- return;
1396
- }
1397
- // We are assuming that getOutermostParentListRef().getScrollRef()
1398
- // is a non-null reference to a ScrollView
1399
- this._scrollRef.measureLayout(
1400
- this.context.virtualizedList
1401
- .getOutermostParentListRef()
1402
- .getScrollRef()
1403
- .getNativeScrollRef(),
1404
- (x, y, width, height) => {
1405
- this._offsetFromParentVirtualizedList = this._selectOffset({x, y});
1406
- this._scrollMetrics.contentLength = this._selectLength({
1407
- width,
1408
- height,
1409
- });
1410
- const scrollMetrics = this._convertParentScrollMetrics(
1411
- this.context.virtualizedList.getScrollMetrics(),
1412
- );
1413
- this._scrollMetrics.visibleLength = scrollMetrics.visibleLength;
1414
- this._scrollMetrics.offset = scrollMetrics.offset;
1415
- },
1416
- error => {
1417
- console.warn(
1418
- "VirtualizedList: Encountered an error while measuring a list's" +
1419
- ' offset from its containing VirtualizedList.',
1420
- );
1421
- },
1422
- );
1423
- } catch (error) {
1424
- console.warn(
1425
- 'measureLayoutRelativeToContainingList threw an error',
1426
- error.stack,
1427
- );
1428
- }
1429
- }
1430
-
1431
- _onLayout = (e: Object) => {
1432
- if (this._isNestedWithSameOrientation()) {
1433
- // Need to adjust our scroll metrics to be relative to our containing
1434
- // VirtualizedList before we can make claims about list item viewability
1435
- this.measureLayoutRelativeToContainingList();
1436
- } else {
1437
- this._scrollMetrics.visibleLength = this._selectLength(
1438
- e.nativeEvent.layout,
1439
- );
1440
- }
1441
- this.props.onLayout && this.props.onLayout(e);
1442
- this._scheduleCellsToRenderUpdate();
1443
- this._maybeCallOnEndReached();
1444
- };
1445
-
1446
- _onLayoutEmpty = e => {
1447
- this.props.onLayout && this.props.onLayout(e);
1448
- };
1449
-
1450
- _getFooterCellKey(): string {
1451
- return this._getCellKey() + '-footer';
1452
- }
1453
-
1454
- _onLayoutFooter = e => {
1455
- this._triggerRemeasureForChildListsInCell(this._getFooterCellKey());
1456
- this._footerLength = this._selectLength(e.nativeEvent.layout);
1457
- };
1458
-
1459
- _onLayoutHeader = e => {
1460
- this._headerLength = this._selectLength(e.nativeEvent.layout);
1461
- };
1462
-
1463
- _renderDebugOverlay() {
1464
- const normalize =
1465
- this._scrollMetrics.visibleLength /
1466
- (this._scrollMetrics.contentLength || 1);
1467
- const framesInLayout = [];
1468
- const itemCount = this.props.getItemCount(this.props.data);
1469
- for (let ii = 0; ii < itemCount; ii++) {
1470
- const frame = this._getFrameMetricsApprox(ii);
1471
- /* $FlowFixMe(>=0.68.0 site=react_native_fb) This comment suppresses an
1472
- * error found when Flow v0.68 was deployed. To see the error delete this
1473
- * comment and run Flow. */
1474
- if (frame.inLayout) {
1475
- framesInLayout.push(frame);
1476
- }
1477
- }
1478
- const windowTop = this._getFrameMetricsApprox(this.state.first).offset;
1479
- const frameLast = this._getFrameMetricsApprox(this.state.last);
1480
- const windowLen = frameLast.offset + frameLast.length - windowTop;
1481
- const visTop = this._scrollMetrics.offset;
1482
- const visLen = this._scrollMetrics.visibleLength;
1483
-
1484
- return (
1485
- <View style={[styles.debugOverlayBase, styles.debugOverlay]}>
1486
- {framesInLayout.map((f, ii) => (
1487
- <View
1488
- key={'f' + ii}
1489
- style={[
1490
- styles.debugOverlayBase,
1491
- styles.debugOverlayFrame,
1492
- {
1493
- top: f.offset * normalize,
1494
- height: f.length * normalize,
1495
- },
1496
- ]}
1497
- />
1498
- ))}
1499
- <View
1500
- style={[
1501
- styles.debugOverlayBase,
1502
- styles.debugOverlayFrameLast,
1503
- {
1504
- top: windowTop * normalize,
1505
- height: windowLen * normalize,
1506
- },
1507
- ]}
1508
- />
1509
- <View
1510
- style={[
1511
- styles.debugOverlayBase,
1512
- styles.debugOverlayFrameVis,
1513
- {
1514
- top: visTop * normalize,
1515
- height: visLen * normalize,
1516
- },
1517
- ]}
1518
- />
1519
- </View>
1520
- );
1521
- }
1522
-
1523
- _selectLength(
1524
- metrics: $ReadOnly<{
1525
- height: number,
1526
- width: number,
1527
- ...
1528
- }>,
1529
- ): number {
1530
- return !this.props.horizontal ? metrics.height : metrics.width;
1531
- }
1532
-
1533
- _selectOffset(
1534
- metrics: $ReadOnly<{
1535
- x: number,
1536
- y: number,
1537
- ...
1538
- }>,
1539
- ): number {
1540
- return !this.props.horizontal ? metrics.y : metrics.x;
1541
- }
1542
-
1543
- _maybeCallOnEndReached() {
1544
- const {
1545
- data,
1546
- getItemCount,
1547
- onEndReached,
1548
- onEndReachedThreshold,
1549
- } = this.props;
1550
- const {contentLength, visibleLength, offset} = this._scrollMetrics;
1551
- const distanceFromEnd = contentLength - visibleLength - offset;
1552
- if (
1553
- onEndReached &&
1554
- this.state.last === getItemCount(data) - 1 &&
1555
- /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an
1556
- * error found when Flow v0.63 was deployed. To see the error delete this
1557
- * comment and run Flow. */
1558
- distanceFromEnd < onEndReachedThreshold * visibleLength &&
1559
- (this._hasDataChangedSinceEndReached ||
1560
- this._scrollMetrics.contentLength !== this._sentEndForContentLength)
1561
- ) {
1562
- // Only call onEndReached once for a given dataset + content length.
1563
- this._hasDataChangedSinceEndReached = false;
1564
- this._sentEndForContentLength = this._scrollMetrics.contentLength;
1565
- onEndReached({distanceFromEnd});
1566
- }
1567
- }
1568
-
1569
- _onContentSizeChange = (width: number, height: number) => {
1570
- if (
1571
- width > 0 &&
1572
- height > 0 &&
1573
- this.props.initialScrollIndex != null &&
1574
- this.props.initialScrollIndex > 0 &&
1575
- !this._hasDoneInitialScroll
1576
- ) {
1577
- this.scrollToIndex({
1578
- animated: false,
1579
- index: this.props.initialScrollIndex,
1580
- });
1581
- this._hasDoneInitialScroll = true;
1582
- }
1583
- if (this.props.onContentSizeChange) {
1584
- this.props.onContentSizeChange(width, height);
1585
- }
1586
- this._scrollMetrics.contentLength = this._selectLength({height, width});
1587
- this._scheduleCellsToRenderUpdate();
1588
- this._maybeCallOnEndReached();
1589
- };
1590
-
1591
- /* Translates metrics from a scroll event in a parent VirtualizedList into
1592
- * coordinates relative to the child list.
1593
- */
1594
- _convertParentScrollMetrics = (metrics: {
1595
- visibleLength: number,
1596
- offset: number,
1597
- ...
1598
- }) => {
1599
- // Offset of the top of the nested list relative to the top of its parent's viewport
1600
- const offset = metrics.offset - this._offsetFromParentVirtualizedList;
1601
- // Child's visible length is the same as its parent's
1602
- const visibleLength = metrics.visibleLength;
1603
- const dOffset = offset - this._scrollMetrics.offset;
1604
- const contentLength = this._scrollMetrics.contentLength;
1605
-
1606
- return {
1607
- visibleLength,
1608
- contentLength,
1609
- offset,
1610
- dOffset,
1611
- };
1612
- };
1613
-
1614
- _onScroll = (e: Object) => {
1615
- this._nestedChildLists.forEach(childList => {
1616
- childList.ref && childList.ref._onScroll(e);
1617
- });
1618
- if (this.props.onScroll) {
1619
- this.props.onScroll(e);
1620
- }
1621
- const timestamp = e.timeStamp;
1622
- let visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement);
1623
- let contentLength = this._selectLength(e.nativeEvent.contentSize);
1624
- let offset = this._selectOffset(e.nativeEvent.contentOffset);
1625
- let dOffset = offset - this._scrollMetrics.offset;
1626
-
1627
- if (this._isNestedWithSameOrientation()) {
1628
- if (this._scrollMetrics.contentLength === 0) {
1629
- // Ignore scroll events until onLayout has been called and we
1630
- // know our offset from our offset from our parent
1631
- return;
1632
- }
1633
- ({
1634
- visibleLength,
1635
- contentLength,
1636
- offset,
1637
- dOffset,
1638
- } = this._convertParentScrollMetrics({
1639
- visibleLength,
1640
- offset,
1641
- }));
1642
- }
1643
-
1644
- const dt = this._scrollMetrics.timestamp
1645
- ? Math.max(1, timestamp - this._scrollMetrics.timestamp)
1646
- : 1;
1647
- const velocity = dOffset / dt;
1648
-
1649
- if (
1650
- dt > 500 &&
1651
- this._scrollMetrics.dt > 500 &&
1652
- contentLength > 5 * visibleLength &&
1653
- !this._hasWarned.perf
1654
- ) {
1655
- infoLog(
1656
- 'VirtualizedList: You have a large list that is slow to update - make sure your ' +
1657
- 'renderItem function renders components that follow React performance best practices ' +
1658
- 'like PureComponent, shouldComponentUpdate, etc.',
1659
- {dt, prevDt: this._scrollMetrics.dt, contentLength},
1660
- );
1661
- this._hasWarned.perf = true;
1662
- }
1663
- this._scrollMetrics = {
1664
- contentLength,
1665
- dt,
1666
- dOffset,
1667
- offset,
1668
- timestamp,
1669
- velocity,
1670
- visibleLength,
1671
- };
1672
- this._updateViewableItems(this.props.data);
1673
- if (!this.props) {
1674
- return;
1675
- }
1676
- this._maybeCallOnEndReached();
1677
- if (velocity !== 0) {
1678
- this._fillRateHelper.activate();
1679
- }
1680
- this._computeBlankness();
1681
- this._scheduleCellsToRenderUpdate();
1682
- };
1683
-
1684
- _scheduleCellsToRenderUpdate() {
1685
- const {first, last} = this.state;
1686
- const {offset, visibleLength, velocity} = this._scrollMetrics;
1687
- const itemCount = this.props.getItemCount(this.props.data);
1688
- let hiPri = false;
1689
- const scrollingThreshold =
1690
- /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an
1691
- * error found when Flow v0.63 was deployed. To see the error delete
1692
- * this comment and run Flow. */
1693
- (this.props.onEndReachedThreshold * visibleLength) / 2;
1694
- // Mark as high priority if we're close to the start of the first item
1695
- // But only if there are items before the first rendered item
1696
- if (first > 0) {
1697
- const distTop = offset - this._getFrameMetricsApprox(first).offset;
1698
- hiPri =
1699
- hiPri || distTop < 0 || (velocity < -2 && distTop < scrollingThreshold);
1700
- }
1701
- // Mark as high priority if we're close to the end of the last item
1702
- // But only if there are items after the last rendered item
1703
- if (last < itemCount - 1) {
1704
- const distBottom =
1705
- this._getFrameMetricsApprox(last).offset - (offset + visibleLength);
1706
- hiPri =
1707
- hiPri ||
1708
- distBottom < 0 ||
1709
- (velocity > 2 && distBottom < scrollingThreshold);
1710
- }
1711
- // Only trigger high-priority updates if we've actually rendered cells,
1712
- // and with that size estimate, accurately compute how many cells we should render.
1713
- // Otherwise, it would just render as many cells as it can (of zero dimension),
1714
- // each time through attempting to render more (limited by maxToRenderPerBatch),
1715
- // starving the renderer from actually laying out the objects and computing _averageCellLength.
1716
- // If this is triggered in an `componentDidUpdate` followed by a hiPri cellToRenderUpdate
1717
- // We shouldn't do another hipri cellToRenderUpdate
1718
- if (
1719
- hiPri &&
1720
- (this._averageCellLength || this.props.getItemLayout) &&
1721
- !this._hiPriInProgress
1722
- ) {
1723
- this._hiPriInProgress = true;
1724
- // Don't worry about interactions when scrolling quickly; focus on filling content as fast
1725
- // as possible.
1726
- this._updateCellsToRenderBatcher.dispose({abort: true});
1727
- this._updateCellsToRender();
1728
- return;
1729
- } else {
1730
- this._updateCellsToRenderBatcher.schedule();
1731
- }
1732
- }
1733
-
1734
- _onScrollBeginDrag = (e): void => {
1735
- this._nestedChildLists.forEach(childList => {
1736
- childList.ref && childList.ref._onScrollBeginDrag(e);
1737
- });
1738
- this._viewabilityTuples.forEach(tuple => {
1739
- tuple.viewabilityHelper.recordInteraction();
1740
- });
1741
- this._hasInteracted = true;
1742
- this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);
1743
- };
1744
-
1745
- _onScrollEndDrag = (e): void => {
1746
- const {velocity} = e.nativeEvent;
1747
- if (velocity) {
1748
- this._scrollMetrics.velocity = this._selectOffset(velocity);
1749
- }
1750
- this._computeBlankness();
1751
- this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);
1752
- };
1753
-
1754
- _onMomentumScrollEnd = (e): void => {
1755
- this._scrollMetrics.velocity = 0;
1756
- this._computeBlankness();
1757
- this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);
1758
- };
1759
-
1760
- _updateCellsToRender = () => {
1761
- const {data, getItemCount, onEndReachedThreshold} = this.props;
1762
- const isVirtualizationDisabled = this._isVirtualizationDisabled();
1763
- this._updateViewableItems(data);
1764
- if (!data) {
1765
- return;
1766
- }
1767
- this.setState(state => {
1768
- let newState;
1769
- const {contentLength, offset, visibleLength} = this._scrollMetrics;
1770
- if (!isVirtualizationDisabled) {
1771
- // If we run this with bogus data, we'll force-render window {first: 0, last: 0},
1772
- // and wipe out the initialNumToRender rendered elements.
1773
- // So let's wait until the scroll view metrics have been set up. And until then,
1774
- // we will trust the initialNumToRender suggestion
1775
- if (visibleLength > 0 && contentLength > 0) {
1776
- // If we have a non-zero initialScrollIndex and run this before we've scrolled,
1777
- // we'll wipe out the initialNumToRender rendered elements starting at initialScrollIndex.
1778
- // So let's wait until we've scrolled the view to the right place. And until then,
1779
- // we will trust the initialScrollIndex suggestion.
1780
- if (!this.props.initialScrollIndex || this._scrollMetrics.offset) {
1781
- newState = computeWindowedRenderLimits(
1782
- this.props,
1783
- state,
1784
- this._getFrameMetricsApprox,
1785
- this._scrollMetrics,
1786
- );
1787
- }
1788
- }
1789
- } else {
1790
- const distanceFromEnd = contentLength - visibleLength - offset;
1791
- const renderAhead =
1792
- /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses
1793
- * an error found when Flow v0.63 was deployed. To see the error
1794
- * delete this comment and run Flow. */
1795
- distanceFromEnd < onEndReachedThreshold * visibleLength
1796
- ? this.props.maxToRenderPerBatch
1797
- : 0;
1798
- newState = {
1799
- first: 0,
1800
- last: Math.min(state.last + renderAhead, getItemCount(data) - 1),
1801
- };
1802
- }
1803
- if (newState && this._nestedChildLists.size > 0) {
1804
- const newFirst = newState.first;
1805
- const newLast = newState.last;
1806
- // If some cell in the new state has a child list in it, we should only render
1807
- // up through that item, so that we give that list a chance to render.
1808
- // Otherwise there's churn from multiple child lists mounting and un-mounting
1809
- // their items.
1810
- for (let ii = newFirst; ii <= newLast; ii++) {
1811
- const cellKeyForIndex = this._indicesToKeys.get(ii);
1812
- const childListKeys =
1813
- cellKeyForIndex &&
1814
- this._cellKeysToChildListKeys.get(cellKeyForIndex);
1815
- if (!childListKeys) {
1816
- continue;
1817
- }
1818
- let someChildHasMore = false;
1819
- // For each cell, need to check whether any child list in it has more elements to render
1820
- for (let childKey of childListKeys) {
1821
- const childList = this._nestedChildLists.get(childKey);
1822
- if (childList && childList.ref && childList.ref.hasMore()) {
1823
- someChildHasMore = true;
1824
- break;
1825
- }
1826
- }
1827
- if (someChildHasMore) {
1828
- newState.last = ii;
1829
- break;
1830
- }
1831
- }
1832
- }
1833
- if (
1834
- newState != null &&
1835
- newState.first === state.first &&
1836
- newState.last === state.last
1837
- ) {
1838
- newState = null;
1839
- }
1840
- return newState;
1841
- });
1842
- };
1843
-
1844
- _createViewToken = (index: number, isViewable: boolean) => {
1845
- const {data, getItem, keyExtractor} = this.props;
1846
- const item = getItem(data, index);
1847
- return {index, item, key: keyExtractor(item, index), isViewable};
1848
- };
1849
-
1850
- _getFrameMetricsApprox = (
1851
- index: number,
1852
- ): {
1853
- length: number,
1854
- offset: number,
1855
- ...
1856
- } => {
1857
- const frame = this._getFrameMetrics(index);
1858
- if (frame && frame.index === index) {
1859
- // check for invalid frames due to row re-ordering
1860
- return frame;
1861
- } else {
1862
- const {getItemLayout} = this.props;
1863
- invariant(
1864
- !getItemLayout,
1865
- 'Should not have to estimate frames when a measurement metrics function is provided',
1866
- );
1867
- return {
1868
- length: this._averageCellLength,
1869
- offset: this._averageCellLength * index,
1870
- };
1871
- }
1872
- };
1873
-
1874
- _getFrameMetrics = (
1875
- index: number,
1876
- ): ?{
1877
- length: number,
1878
- offset: number,
1879
- index: number,
1880
- inLayout?: boolean,
1881
- ...
1882
- } => {
1883
- const {
1884
- data,
1885
- getItem,
1886
- getItemCount,
1887
- getItemLayout,
1888
- keyExtractor,
1889
- } = this.props;
1890
- invariant(
1891
- getItemCount(data) > index,
1892
- 'Tried to get frame for out of range index ' + index,
1893
- );
1894
- const item = getItem(data, index);
1895
- let frame = item && this._frames[keyExtractor(item, index)];
1896
- if (!frame || frame.index !== index) {
1897
- if (getItemLayout) {
1898
- frame = getItemLayout(data, index);
1899
- if (__DEV__) {
1900
- const frameType = PropTypes.shape({
1901
- length: PropTypes.number.isRequired,
1902
- offset: PropTypes.number.isRequired,
1903
- index: PropTypes.number.isRequired,
1904
- }).isRequired;
1905
- PropTypes.checkPropTypes(
1906
- {frame: frameType},
1907
- {frame},
1908
- 'frame',
1909
- 'VirtualizedList.getItemLayout',
1910
- );
1911
- }
1912
- }
1913
- }
1914
- /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an
1915
- * error found when Flow v0.63 was deployed. To see the error delete this
1916
- * comment and run Flow. */
1917
- return frame;
1918
- };
1919
-
1920
- _updateViewableItems(data: any) {
1921
- const {getItemCount} = this.props;
1922
-
1923
- this._viewabilityTuples.forEach(tuple => {
1924
- tuple.viewabilityHelper.onUpdate(
1925
- getItemCount(data),
1926
- this._scrollMetrics.offset,
1927
- this._scrollMetrics.visibleLength,
1928
- this._getFrameMetrics,
1929
- this._createViewToken,
1930
- tuple.onViewableItemsChanged,
1931
- this.state,
1932
- );
1933
- });
1934
- }
1935
- }
1936
-
1937
- type CellRendererProps = {
1938
- CellRendererComponent?: ?React.ComponentType<any>,
1939
- ItemSeparatorComponent: ?React.ComponentType<*>,
1940
- cellKey: string,
1941
- fillRateHelper: FillRateHelper,
1942
- horizontal: ?boolean,
1943
- index: number,
1944
- inversionStyle: ViewStyleProp,
1945
- item: Item,
1946
- // This is extracted by ScrollViewStickyHeader
1947
- onLayout: (event: Object) => void,
1948
- onUnmount: (cellKey: string) => void,
1949
- onUpdateSeparators: (cellKeys: Array<?string>, props: Object) => void,
1950
- parentProps: {
1951
- // e.g. height, y,
1952
- getItemLayout?: (
1953
- data: any,
1954
- index: number,
1955
- ) => {
1956
- length: number,
1957
- offset: number,
1958
- index: number,
1959
- ...
1960
- },
1961
- renderItem?: ?RenderItemType<Item>,
1962
- ListItemComponent?: ?(React.ComponentType<any> | React.Element<any>),
1963
- ...
1964
- },
1965
- prevCellKey: ?string,
1966
- ...
1967
- };
1968
-
1969
- type CellRendererState = {
1970
- separatorProps: $ReadOnly<{|
1971
- highlighted: boolean,
1972
- leadingItem: ?Item,
1973
- |}>,
1974
- ...
1975
- };
1976
-
1977
- class CellRenderer extends React.Component<
1978
- CellRendererProps,
1979
- CellRendererState,
1980
- > {
1981
- state = {
1982
- separatorProps: {
1983
- highlighted: false,
1984
- leadingItem: this.props.item,
1985
- },
1986
- };
1987
-
1988
- static childContextTypes = {
1989
- virtualizedCell: PropTypes.shape({
1990
- cellKey: PropTypes.string,
1991
- }),
1992
- };
1993
-
1994
- static getDerivedStateFromProps(
1995
- props: CellRendererProps,
1996
- prevState: CellRendererState,
1997
- ): ?CellRendererState {
1998
- return {
1999
- separatorProps: {
2000
- ...prevState.separatorProps,
2001
- leadingItem: props.item,
2002
- },
2003
- };
2004
- }
2005
-
2006
- getChildContext() {
2007
- return {
2008
- virtualizedCell: {
2009
- cellKey: this.props.cellKey,
2010
- },
2011
- };
2012
- }
2013
-
2014
- // TODO: consider factoring separator stuff out of VirtualizedList into FlatList since it's not
2015
- // reused by SectionList and we can keep VirtualizedList simpler.
2016
- _separators = {
2017
- highlight: () => {
2018
- const {cellKey, prevCellKey} = this.props;
2019
- this.props.onUpdateSeparators([cellKey, prevCellKey], {
2020
- highlighted: true,
2021
- });
2022
- },
2023
- unhighlight: () => {
2024
- const {cellKey, prevCellKey} = this.props;
2025
- this.props.onUpdateSeparators([cellKey, prevCellKey], {
2026
- highlighted: false,
2027
- });
2028
- },
2029
- updateProps: (select: 'leading' | 'trailing', newProps: Object) => {
2030
- const {cellKey, prevCellKey} = this.props;
2031
- this.props.onUpdateSeparators(
2032
- [select === 'leading' ? prevCellKey : cellKey],
2033
- newProps,
2034
- );
2035
- },
2036
- };
2037
-
2038
- updateSeparatorProps(newProps: Object) {
2039
- this.setState(state => ({
2040
- separatorProps: {...state.separatorProps, ...newProps},
2041
- }));
2042
- }
2043
-
2044
- componentWillUnmount() {
2045
- this.props.onUnmount(this.props.cellKey);
2046
- }
2047
-
2048
- _renderElement(renderItem, ListItemComponent, item, index) {
2049
- if (renderItem && ListItemComponent) {
2050
- console.warn(
2051
- 'VirtualizedList: Both ListItemComponent and renderItem props are present. ListItemComponent will take' +
2052
- ' precedence over renderItem.',
2053
- );
2054
- }
2055
-
2056
- if (ListItemComponent) {
2057
- /* $FlowFixMe(>=0.108.0 site=react_native_fb) This comment suppresses an
2058
- * error found when Flow v0.108 was deployed. To see the error, delete
2059
- * this comment and run Flow. */
2060
- return React.createElement(ListItemComponent, {
2061
- item,
2062
- index,
2063
- separators: this._separators,
2064
- });
2065
- }
2066
-
2067
- if (renderItem) {
2068
- return renderItem({
2069
- item,
2070
- index,
2071
- separators: this._separators,
2072
- });
2073
- }
2074
-
2075
- invariant(
2076
- false,
2077
- 'VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.',
2078
- );
2079
- }
2080
-
2081
- render() {
2082
- const {
2083
- CellRendererComponent,
2084
- ItemSeparatorComponent,
2085
- fillRateHelper,
2086
- horizontal,
2087
- item,
2088
- index,
2089
- inversionStyle,
2090
- parentProps,
2091
- } = this.props;
2092
- const {renderItem, getItemLayout, ListItemComponent} = parentProps;
2093
- const element = this._renderElement(
2094
- renderItem,
2095
- ListItemComponent,
2096
- item,
2097
- index,
2098
- );
2099
-
2100
- const onLayout =
2101
- /* $FlowFixMe(>=0.68.0 site=react_native_fb) This comment suppresses an
2102
- * error found when Flow v0.68 was deployed. To see the error delete this
2103
- * comment and run Flow. */
2104
- getItemLayout && !parentProps.debug && !fillRateHelper.enabled()
2105
- ? undefined
2106
- : this.props.onLayout;
2107
- // NOTE: that when this is a sticky header, `onLayout` will get automatically extracted and
2108
- // called explicitly by `ScrollViewStickyHeader`.
2109
- const itemSeparator = ItemSeparatorComponent && (
2110
- <ItemSeparatorComponent {...this.state.separatorProps} />
2111
- );
2112
- const cellStyle = inversionStyle
2113
- ? horizontal
2114
- ? [styles.rowReverse, inversionStyle]
2115
- : [styles.columnReverse, inversionStyle]
2116
- : horizontal
2117
- ? [styles.row, inversionStyle]
2118
- : inversionStyle;
2119
- if (!CellRendererComponent) {
2120
- return (
2121
- /* $FlowFixMe(>=0.89.0 site=react_native_fb) This comment suppresses an
2122
- * error found when Flow v0.89 was deployed. To see the error, delete
2123
- * this comment and run Flow. */
2124
- <View style={cellStyle} onLayout={onLayout}>
2125
- {element}
2126
- {itemSeparator}
2127
- </View>
2128
- );
2129
- }
2130
- return (
2131
- <CellRendererComponent
2132
- {...this.props}
2133
- style={cellStyle}
2134
- onLayout={onLayout}>
2135
- {element}
2136
- {itemSeparator}
2137
- </CellRendererComponent>
2138
- );
2139
- }
2140
- }
2141
-
2142
- class VirtualizedCellWrapper extends React.Component<{
2143
- cellKey: string,
2144
- children: React.Node,
2145
- ...
2146
- }> {
2147
- static childContextTypes = {
2148
- virtualizedCell: PropTypes.shape({
2149
- cellKey: PropTypes.string,
2150
- }),
2151
- };
2152
-
2153
- getChildContext() {
2154
- return {
2155
- virtualizedCell: {
2156
- cellKey: this.props.cellKey,
2157
- },
2158
- };
2159
- }
2160
-
2161
- render() {
2162
- return this.props.children;
2163
- }
2164
- }
2165
-
2166
- function describeNestedLists(childList: {
2167
- +cellKey: string,
2168
- +key: string,
2169
- +ref: VirtualizedList,
2170
- +parentDebugInfo: ListDebugInfo,
2171
- +horizontal: boolean,
2172
- ...
2173
- }) {
2174
- let trace =
2175
- 'VirtualizedList trace:\n' +
2176
- ` Child (${childList.horizontal ? 'horizontal' : 'vertical'}):\n` +
2177
- ` listKey: ${childList.key}\n` +
2178
- ` cellKey: ${childList.cellKey}`;
2179
-
2180
- let debugInfo = childList.parentDebugInfo;
2181
- while (debugInfo) {
2182
- trace +=
2183
- `\n Parent (${debugInfo.horizontal ? 'horizontal' : 'vertical'}):\n` +
2184
- ` listKey: ${debugInfo.listKey}\n` +
2185
- ` cellKey: ${debugInfo.cellKey}`;
2186
- debugInfo = debugInfo.parent;
2187
- }
2188
- return trace;
2189
- }
2190
-
2191
- const styles = StyleSheet.create({
2192
- verticallyInverted: {
2193
- transform: [{scaleY: -1}],
2194
- },
2195
- horizontallyInverted: {
2196
- transform: [{scaleX: -1}],
2197
- },
2198
- row: {
2199
- flexDirection: 'row',
2200
- },
2201
- rowReverse: {
2202
- flexDirection: 'row-reverse',
2203
- },
2204
- columnReverse: {
2205
- flexDirection: 'column-reverse',
2206
- },
2207
- debug: {
2208
- flex: 1,
2209
- },
2210
- debugOverlayBase: {
2211
- position: 'absolute',
2212
- top: 0,
2213
- right: 0,
2214
- },
2215
- debugOverlay: {
2216
- bottom: 0,
2217
- width: 20,
2218
- borderColor: 'blue',
2219
- borderWidth: 1,
2220
- },
2221
- debugOverlayFrame: {
2222
- left: 0,
2223
- backgroundColor: 'orange',
2224
- },
2225
- debugOverlayFrameLast: {
2226
- left: 0,
2227
- borderColor: 'green',
2228
- borderWidth: 2,
2229
- },
2230
- debugOverlayFrameVis: {
2231
- left: 0,
2232
- borderColor: 'red',
2233
- borderWidth: 2,
2234
- },
2235
- });
2236
-
2237
- module.exports = VirtualizedList;
19
+ export type {
20
+ ListRenderItemInfo,
21
+ ListRenderItem,
22
+ Separators,
23
+ VirtualizedListProps,
24
+ } from '@react-native/virtualized-lists';
25
+ export default VirtualizedListComponent;