@office-iss/react-native-win32 0.71.5 → 0.72.0-preview.2

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 (326) hide show
  1. package/.flowconfig +15 -3
  2. package/CHANGELOG.json +321 -45
  3. package/CHANGELOG.md +149 -26
  4. package/IntegrationTests/IntegrationTestHarnessTest.js +1 -0
  5. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +1 -1
  6. package/Libraries/Alert/Alert.d.ts +4 -4
  7. package/Libraries/Alert/Alert.win32.js +1 -0
  8. package/Libraries/Animated/Animated.d.ts +17 -6
  9. package/Libraries/Animated/NativeAnimatedHelper.js +18 -6
  10. package/Libraries/Animated/NativeAnimatedHelper.win32.js +606 -0
  11. package/Libraries/Animated/bezier.js +1 -1
  12. package/Libraries/Animated/components/AnimatedFlatList.js +8 -3
  13. package/Libraries/Animated/components/AnimatedScrollView.js +4 -1
  14. package/Libraries/Animated/components/AnimatedSectionList.js +12 -3
  15. package/Libraries/Animated/createAnimatedComponent.js +26 -239
  16. package/Libraries/Animated/nodes/AnimatedColor.js +47 -80
  17. package/Libraries/Animated/nodes/AnimatedInterpolation.js +167 -121
  18. package/Libraries/Animated/nodes/AnimatedNode.js +3 -5
  19. package/Libraries/Animated/nodes/AnimatedProps.js +7 -6
  20. package/Libraries/Animated/nodes/AnimatedStyle.js +42 -8
  21. package/Libraries/Animated/nodes/AnimatedTransform.js +1 -1
  22. package/Libraries/Animated/nodes/AnimatedValue.js +8 -12
  23. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  24. package/Libraries/Animated/useAnimatedProps.js +7 -10
  25. package/Libraries/BatchedBridge/MessageQueue.js +2 -1
  26. package/Libraries/BatchedBridge/NativeModules.d.ts +1 -1
  27. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  28. package/Libraries/Blob/Blob.js +4 -0
  29. package/Libraries/Blob/FileReader.js +30 -2
  30. package/Libraries/Blob/URL.js +3 -1
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +2 -2
  32. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -3
  33. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +2 -3
  34. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +6 -4
  35. package/Libraries/Components/Button.js +3 -2
  36. package/Libraries/Components/Button.win32.js +451 -0
  37. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  38. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
  39. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -0
  40. package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
  41. package/Libraries/Components/Pressable/Pressable.js +1 -1
  42. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -0
  43. package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -2
  44. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +1 -2
  45. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +12 -6
  46. package/Libraries/Components/ScrollView/ScrollView.d.ts +2 -2
  47. package/Libraries/Components/ScrollView/ScrollView.js +149 -91
  48. package/Libraries/Components/ScrollView/ScrollView.win32.js +1939 -0
  49. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -6
  50. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -7
  51. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -1
  52. package/Libraries/Components/StatusBar/StatusBar.js +3 -0
  53. package/Libraries/Components/Switch/Switch.js +3 -1
  54. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +21 -11
  55. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +1 -1
  56. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +11 -5
  57. package/Libraries/Components/TextInput/TextInput.Types.win32.d.ts +51 -0
  58. package/Libraries/Components/TextInput/TextInput.Types.win32.js +3 -0
  59. package/Libraries/Components/TextInput/TextInput.Types.win32.js.map +1 -0
  60. package/Libraries/Components/TextInput/TextInput.d.ts +15 -5
  61. package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
  62. package/Libraries/Components/TextInput/TextInput.js +130 -103
  63. package/Libraries/Components/TextInput/TextInput.win32.js +202 -890
  64. package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
  65. package/Libraries/Components/Touchable/Touchable.flow.js +30 -4
  66. package/Libraries/Components/Touchable/Touchable.js +6 -3
  67. package/Libraries/Components/Touchable/Touchable.win32.js +6 -3
  68. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  69. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
  70. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -0
  71. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
  72. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +1 -1
  73. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
  74. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +179 -0
  75. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
  76. package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
  77. package/Libraries/Components/View/View.js +35 -16
  78. package/Libraries/Components/View/View.win32.js +38 -16
  79. package/Libraries/Components/View/ViewAccessibility.d.ts +6 -6
  80. package/Libraries/Components/View/ViewAccessibility.js +10 -1
  81. package/Libraries/Components/View/ViewAccessibility.win32.d.ts +5 -5
  82. package/Libraries/Components/View/ViewNativeComponent.js +32 -8
  83. package/Libraries/Components/View/ViewPropTypes.d.ts +1 -1
  84. package/Libraries/Components/View/ViewPropTypes.js +1 -1
  85. package/Libraries/Components/View/ViewPropTypes.win32.d.ts +1 -1
  86. package/Libraries/Components/View/ViewPropTypes.win32.js +1 -1
  87. package/Libraries/Components/View/ViewWin32.js +2 -35
  88. package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
  89. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
  90. package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
  91. package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
  92. package/Libraries/Core/ExceptionsManager.js +2 -2
  93. package/Libraries/Core/InitializeCore.js +2 -1
  94. package/Libraries/Core/ReactNativeVersion.js +3 -3
  95. package/Libraries/Core/ReactNativeVersionCheck.js +4 -8
  96. package/Libraries/Core/ReactNativeVersionCheck.win32.js +4 -8
  97. package/Libraries/Core/Timers/JSTimers.js +1 -1
  98. package/Libraries/Core/Timers/immediateShim.js +1 -0
  99. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  100. package/Libraries/Core/setUpAlert.js +1 -1
  101. package/Libraries/Core/setUpDOM.js +18 -0
  102. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  103. package/Libraries/Core/setUpGlobals.js +5 -2
  104. package/Libraries/Core/setUpNavigator.js +6 -5
  105. package/Libraries/Core/setUpPerformance.js +23 -13
  106. package/Libraries/Core/setUpReactDevTools.js +2 -0
  107. package/Libraries/Core/setUpSegmentFetcher.js +0 -41
  108. package/Libraries/Core/setUpTimers.js +2 -2
  109. package/Libraries/DOM/Geometry/DOMRect.js +82 -0
  110. package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
  111. package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
  112. package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
  113. package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
  114. package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
  115. package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
  116. package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
  117. package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
  118. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
  119. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
  120. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
  121. package/Libraries/DevToolsSettings/DevToolsSettingsManager.win32.js +35 -0
  122. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +24 -0
  123. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
  124. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
  125. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
  126. package/Libraries/Events/EventPolyfill.js +1 -1
  127. package/Libraries/Image/AssetRegistry.js +1 -1
  128. package/Libraries/Image/AssetSourceResolver.js +3 -3
  129. package/Libraries/Image/Image.android.js +4 -1
  130. package/Libraries/Image/Image.d.ts +63 -2
  131. package/Libraries/Image/Image.ios.js +3 -0
  132. package/Libraries/Image/Image.win32.js +3 -0
  133. package/Libraries/Image/ImageBackground.js +1 -0
  134. package/Libraries/Image/ImageProps.js +1 -1
  135. package/Libraries/Image/ImageViewNativeComponent.js +4 -4
  136. package/Libraries/Image/RelativeImageStub.js +1 -1
  137. package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
  138. package/Libraries/Image/resolveAssetSource.js +1 -1
  139. package/Libraries/Inspector/DevtoolsOverlay.js +26 -19
  140. package/Libraries/Inspector/ElementBox.js +4 -1
  141. package/Libraries/Inspector/Inspector.js +5 -6
  142. package/Libraries/Inspector/Inspector.win32.js +7 -6
  143. package/Libraries/Inspector/InspectorOverlay.js +3 -3
  144. package/Libraries/Inspector/InspectorOverlay.win32.js +2 -1
  145. package/Libraries/Inspector/NetworkOverlay.js +1 -1
  146. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
  147. package/Libraries/Interaction/PanResponder.js +5 -6
  148. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
  149. package/Libraries/Linking/Linking.js +1 -4
  150. package/Libraries/Lists/FillRateHelper.js +4 -238
  151. package/Libraries/Lists/FlatList.d.ts +15 -22
  152. package/Libraries/Lists/FlatList.js +9 -6
  153. package/Libraries/Lists/SectionList.d.ts +10 -6
  154. package/Libraries/Lists/SectionList.js +5 -3
  155. package/Libraries/Lists/SectionListModern.js +3 -3
  156. package/Libraries/Lists/ViewabilityHelper.js +8 -344
  157. package/Libraries/Lists/VirtualizeUtils.js +4 -244
  158. package/Libraries/Lists/VirtualizedList.js +10 -1867
  159. package/Libraries/Lists/VirtualizedListContext.js +6 -104
  160. package/Libraries/Lists/VirtualizedSectionList.js +9 -602
  161. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
  162. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  163. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  164. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  165. package/Libraries/LogBox/LogBox.js +1 -1
  166. package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
  167. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +168 -0
  168. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +3 -0
  169. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +193 -0
  170. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
  171. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
  172. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +7 -3
  173. package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
  174. package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
  175. package/Libraries/Modal/Modal.js +2 -2
  176. package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
  177. package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
  178. package/Libraries/NativeComponent/BaseViewConfig.win32.js +43 -19
  179. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
  180. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  181. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
  182. package/Libraries/Network/RCTNetworking.android.js +2 -2
  183. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  184. package/Libraries/Network/RCTNetworking.win32.js +1 -1
  185. package/Libraries/Network/XMLHttpRequest.js +1 -1
  186. package/Libraries/Pressability/Pressability.js +10 -4
  187. package/Libraries/Pressability/Pressability.win32.js +9 -3
  188. package/Libraries/ReactNative/AppContainer.js +7 -1
  189. package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
  190. package/Libraries/ReactNative/AppRegistry.js +10 -13
  191. package/Libraries/ReactNative/FabricUIManager.js +24 -8
  192. package/Libraries/ReactNative/NativeUIManager.js +5 -5
  193. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
  194. package/Libraries/ReactNative/UIManager.js +168 -1
  195. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
  196. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  197. package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
  198. package/Libraries/ReactNative/requireNativeComponent.js +1 -1
  199. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
  200. package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
  201. package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
  202. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
  203. package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
  204. package/Libraries/Renderer/shims/ReactNativeTypes.js +6 -6
  205. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
  206. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  207. package/Libraries/Share/Share.js +1 -1
  208. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  209. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  210. package/Libraries/StyleSheet/StyleSheet.win32.js +1 -1
  211. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
  212. package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
  213. package/Libraries/StyleSheet/flattenStyle.js +2 -0
  214. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  215. package/Libraries/StyleSheet/processColor.js +1 -1
  216. package/Libraries/Text/Text.d.ts +12 -2
  217. package/Libraries/Text/Text.js +50 -41
  218. package/Libraries/Text/TextProps.js +3 -4
  219. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
  220. package/Libraries/Types/CodegenTypes.js +1 -0
  221. package/Libraries/UTFSequence.js +3 -1
  222. package/Libraries/Utilities/Appearance.d.ts +10 -0
  223. package/Libraries/Utilities/Appearance.js +13 -0
  224. package/Libraries/Utilities/Dimensions.js +1 -1
  225. package/Libraries/Utilities/Dimensions.win32.js +1 -1
  226. package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
  227. package/Libraries/Utilities/HMRClient.js +16 -10
  228. package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
  229. package/Libraries/Utilities/IPerformanceLogger.js +49 -0
  230. package/Libraries/Utilities/LoadingView.android.js +28 -11
  231. package/Libraries/Utilities/NativeAppearance.js +1 -0
  232. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
  233. package/Libraries/Utilities/PixelRatio.js +2 -2
  234. package/Libraries/Utilities/Platform.win32.js +1 -1
  235. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  236. package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
  237. package/Libraries/Utilities/codegenNativeCommands.js +2 -0
  238. package/Libraries/Utilities/createPerformanceLogger.js +55 -43
  239. package/Libraries/Utilities/stringifySafe.js +2 -7
  240. package/Libraries/Utilities/useColorScheme.win32.js +26 -0
  241. package/Libraries/Utilities/useWindowDimensions.js +3 -3
  242. package/Libraries/WebPerformance/EventCounts.js +78 -0
  243. package/Libraries/WebPerformance/MemoryInfo.js +54 -0
  244. package/Libraries/WebPerformance/NativePerformance.js +38 -0
  245. package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
  246. package/Libraries/WebPerformance/Performance.js +312 -0
  247. package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
  248. package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
  249. package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
  250. package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
  251. package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
  252. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
  253. package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
  254. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  255. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  256. package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
  257. package/Libraries/vendor/emitter/EventEmitter.js +9 -1
  258. package/flow/global.js +29 -4
  259. package/flow/jest.js +258 -164
  260. package/flow/use-sync-external-store.js +1 -0
  261. package/index.js +56 -42
  262. package/index.win32.js +56 -42
  263. package/interface.js +1 -1
  264. package/jest/local-setup.js +33 -0
  265. package/jest/mockComponent.js +4 -2
  266. package/jest/mockNativeComponent.js +1 -1
  267. package/jest/mockScrollView.js +2 -1
  268. package/jest/react-native-env.js +1 -3
  269. package/jest/setup.js +11 -8
  270. package/overrides.json +122 -85
  271. package/package.json +40 -30
  272. package/rn-get-polyfills.js +1 -1
  273. package/src/Libraries/Components/TextInput/TextInput.Types.win32.ts +68 -0
  274. package/src/Libraries/Components/Touchable/TouchableWin32.tsx +3 -3
  275. package/src/Libraries/Components/View/ViewAccessibility.win32.d.ts +5 -5
  276. package/src/Libraries/Components/View/ViewPropTypes.win32.d.ts +1 -1
  277. package/types/index.d.ts +2 -6
  278. package/types/modules/Codegen.d.ts +4 -4
  279. package/types/modules/globals.d.ts +27 -25
  280. package/types/public/DeprecatedPropertiesAlias.d.ts +0 -20
  281. package/types/public/ReactNativeRenderer.d.ts +2 -7
  282. package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
  283. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
  284. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
  285. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
  286. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
  287. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
  288. package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
  289. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
  290. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
  291. package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +0 -47
  292. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
  293. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
  294. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
  295. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
  296. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
  297. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +0 -45
  298. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
  299. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
  300. package/Libraries/Components/Slider/Slider.d.ts +0 -132
  301. package/Libraries/Components/Slider/Slider.js +0 -282
  302. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
  303. package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +0 -23
  304. package/Libraries/Interaction/Batchinator.js +0 -76
  305. package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
  306. package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
  307. package/Libraries/Interaction/PanResponder.flow.js +0 -257
  308. package/Libraries/Lists/CellRenderMask.js +0 -155
  309. package/Libraries/Lists/ChildListCollection.js +0 -72
  310. package/Libraries/Lists/StateSafePureComponent.js +0 -85
  311. package/Libraries/Lists/VirtualizedList.d.ts +0 -347
  312. package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
  313. package/Libraries/Lists/VirtualizedListProps.js +0 -279
  314. package/Libraries/Performance/PureComponentDebug.js +0 -74
  315. package/Libraries/Reliability/UserFlow.js +0 -158
  316. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
  317. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
  318. package/Libraries/Utilities/MatrixMath.js +0 -748
  319. package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
  320. package/Libraries/Utilities/clamp.js +0 -23
  321. package/Libraries/Utilities/deprecatedPropType.js +0 -36
  322. package/Libraries/Utilities/groupByEveryN.js +0 -51
  323. package/Libraries/Utilities/mergeIntoFast.js +0 -26
  324. package/Libraries/Utilities/setAndForwardRef.js +0 -71
  325. package/Libraries/Utilities/truncate.js +0 -51
  326. package/flow/JSITimerInternalType.js +0 -30
@@ -10,244 +10,10 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- import type {FrameMetricProps} from './VirtualizedListProps';
13
+ import {typeof FillRateHelper as FillRateHelperType} from '@react-native/virtualized-lists';
14
14
 
15
- export type FillRateInfo = Info;
16
-
17
- class Info {
18
- any_blank_count: number = 0;
19
- any_blank_ms: number = 0;
20
- any_blank_speed_sum: number = 0;
21
- mostly_blank_count: number = 0;
22
- mostly_blank_ms: number = 0;
23
- pixels_blank: number = 0;
24
- pixels_sampled: number = 0;
25
- pixels_scrolled: number = 0;
26
- total_time_spent: number = 0;
27
- sample_count: number = 0;
28
- }
29
-
30
- type FrameMetrics = {
31
- inLayout?: boolean,
32
- length: number,
33
- offset: number,
34
- ...
35
- };
36
-
37
- const DEBUG = false;
38
-
39
- let _listeners: Array<(Info) => void> = [];
40
- let _minSampleCount = 10;
41
- let _sampleRate = DEBUG ? 1 : null;
42
-
43
- /**
44
- * A helper class for detecting when the maximem fill rate of `VirtualizedList` is exceeded.
45
- * By default the sampling rate is set to zero and this will do nothing. If you want to collect
46
- * samples (e.g. to log them), make sure to call `FillRateHelper.setSampleRate(0.0-1.0)`.
47
- *
48
- * Listeners and sample rate are global for all `VirtualizedList`s - typical usage will combine with
49
- * `SceneTracker.getActiveScene` to determine the context of the events.
50
- */
51
- class FillRateHelper {
52
- _anyBlankStartTime: ?number = null;
53
- _enabled = false;
54
- _getFrameMetrics: (index: number, props: FrameMetricProps) => ?FrameMetrics;
55
- _info: Info = new Info();
56
- _mostlyBlankStartTime: ?number = null;
57
- _samplesStartTime: ?number = null;
58
-
59
- static addListener(callback: FillRateInfo => void): {
60
- remove: () => void,
61
- ...
62
- } {
63
- if (_sampleRate === null) {
64
- console.warn('Call `FillRateHelper.setSampleRate` before `addListener`.');
65
- }
66
- _listeners.push(callback);
67
- return {
68
- remove: () => {
69
- _listeners = _listeners.filter(listener => callback !== listener);
70
- },
71
- };
72
- }
73
-
74
- static setSampleRate(sampleRate: number) {
75
- _sampleRate = sampleRate;
76
- }
77
-
78
- static setMinSampleCount(minSampleCount: number) {
79
- _minSampleCount = minSampleCount;
80
- }
81
-
82
- constructor(
83
- getFrameMetrics: (index: number, props: FrameMetricProps) => ?FrameMetrics,
84
- ) {
85
- this._getFrameMetrics = getFrameMetrics;
86
- this._enabled = (_sampleRate || 0) > Math.random();
87
- this._resetData();
88
- }
89
-
90
- activate() {
91
- if (this._enabled && this._samplesStartTime == null) {
92
- DEBUG && console.debug('FillRateHelper: activate');
93
- this._samplesStartTime = global.performance.now();
94
- }
95
- }
96
-
97
- deactivateAndFlush() {
98
- if (!this._enabled) {
99
- return;
100
- }
101
- const start = this._samplesStartTime; // const for flow
102
- if (start == null) {
103
- DEBUG &&
104
- console.debug('FillRateHelper: bail on deactivate with no start time');
105
- return;
106
- }
107
- if (this._info.sample_count < _minSampleCount) {
108
- // Don't bother with under-sampled events.
109
- this._resetData();
110
- return;
111
- }
112
- const total_time_spent = global.performance.now() - start;
113
- const info: any = {
114
- ...this._info,
115
- total_time_spent,
116
- };
117
- if (DEBUG) {
118
- const derived = {
119
- avg_blankness: this._info.pixels_blank / this._info.pixels_sampled,
120
- avg_speed: this._info.pixels_scrolled / (total_time_spent / 1000),
121
- avg_speed_when_any_blank:
122
- this._info.any_blank_speed_sum / this._info.any_blank_count,
123
- any_blank_per_min:
124
- this._info.any_blank_count / (total_time_spent / 1000 / 60),
125
- any_blank_time_frac: this._info.any_blank_ms / total_time_spent,
126
- mostly_blank_per_min:
127
- this._info.mostly_blank_count / (total_time_spent / 1000 / 60),
128
- mostly_blank_time_frac: this._info.mostly_blank_ms / total_time_spent,
129
- };
130
- for (const key in derived) {
131
- // $FlowFixMe[prop-missing]
132
- derived[key] = Math.round(1000 * derived[key]) / 1000;
133
- }
134
- console.debug('FillRateHelper deactivateAndFlush: ', {derived, info});
135
- }
136
- _listeners.forEach(listener => listener(info));
137
- this._resetData();
138
- }
139
-
140
- computeBlankness(
141
- props: {
142
- ...FrameMetricProps,
143
- initialNumToRender?: ?number,
144
- ...
145
- },
146
- cellsAroundViewport: {
147
- first: number,
148
- last: number,
149
- ...
150
- },
151
- scrollMetrics: {
152
- dOffset: number,
153
- offset: number,
154
- velocity: number,
155
- visibleLength: number,
156
- ...
157
- },
158
- ): number {
159
- if (
160
- !this._enabled ||
161
- props.getItemCount(props.data) === 0 ||
162
- cellsAroundViewport.last < cellsAroundViewport.first ||
163
- this._samplesStartTime == null
164
- ) {
165
- return 0;
166
- }
167
- const {dOffset, offset, velocity, visibleLength} = scrollMetrics;
168
-
169
- // Denominator metrics that we track for all events - most of the time there is no blankness and
170
- // we want to capture that.
171
- this._info.sample_count++;
172
- this._info.pixels_sampled += Math.round(visibleLength);
173
- this._info.pixels_scrolled += Math.round(Math.abs(dOffset));
174
- const scrollSpeed = Math.round(Math.abs(velocity) * 1000); // px / sec
175
-
176
- // Whether blank now or not, record the elapsed time blank if we were blank last time.
177
- const now = global.performance.now();
178
- if (this._anyBlankStartTime != null) {
179
- this._info.any_blank_ms += now - this._anyBlankStartTime;
180
- }
181
- this._anyBlankStartTime = null;
182
- if (this._mostlyBlankStartTime != null) {
183
- this._info.mostly_blank_ms += now - this._mostlyBlankStartTime;
184
- }
185
- this._mostlyBlankStartTime = null;
186
-
187
- let blankTop = 0;
188
- let first = cellsAroundViewport.first;
189
- let firstFrame = this._getFrameMetrics(first, props);
190
- while (
191
- first <= cellsAroundViewport.last &&
192
- (!firstFrame || !firstFrame.inLayout)
193
- ) {
194
- firstFrame = this._getFrameMetrics(first, props);
195
- first++;
196
- }
197
- // Only count blankTop if we aren't rendering the first item, otherwise we will count the header
198
- // as blank.
199
- if (firstFrame && first > 0) {
200
- blankTop = Math.min(
201
- visibleLength,
202
- Math.max(0, firstFrame.offset - offset),
203
- );
204
- }
205
- let blankBottom = 0;
206
- let last = cellsAroundViewport.last;
207
- let lastFrame = this._getFrameMetrics(last, props);
208
- while (
209
- last >= cellsAroundViewport.first &&
210
- (!lastFrame || !lastFrame.inLayout)
211
- ) {
212
- lastFrame = this._getFrameMetrics(last, props);
213
- last--;
214
- }
215
- // Only count blankBottom if we aren't rendering the last item, otherwise we will count the
216
- // footer as blank.
217
- if (lastFrame && last < props.getItemCount(props.data) - 1) {
218
- const bottomEdge = lastFrame.offset + lastFrame.length;
219
- blankBottom = Math.min(
220
- visibleLength,
221
- Math.max(0, offset + visibleLength - bottomEdge),
222
- );
223
- }
224
- const pixels_blank = Math.round(blankTop + blankBottom);
225
- const blankness = pixels_blank / visibleLength;
226
- if (blankness > 0) {
227
- this._anyBlankStartTime = now;
228
- this._info.any_blank_speed_sum += scrollSpeed;
229
- this._info.any_blank_count++;
230
- this._info.pixels_blank += pixels_blank;
231
- if (blankness > 0.5) {
232
- this._mostlyBlankStartTime = now;
233
- this._info.mostly_blank_count++;
234
- }
235
- } else if (scrollSpeed < 0.01 || Math.abs(dOffset) < 1) {
236
- this.deactivateAndFlush();
237
- }
238
- return blankness;
239
- }
240
-
241
- enabled(): boolean {
242
- return this._enabled;
243
- }
244
-
245
- _resetData() {
246
- this._anyBlankStartTime = null;
247
- this._info = new Info();
248
- this._mostlyBlankStartTime = null;
249
- this._samplesStartTime = null;
250
- }
251
- }
15
+ const FillRateHelper: FillRateHelperType =
16
+ require('@react-native/virtualized-lists').FillRateHelper;
252
17
 
18
+ export type {FillRateInfo} from '@react-native/virtualized-lists';
253
19
  module.exports = FillRateHelper;
@@ -12,7 +12,7 @@ import type {
12
12
  ListRenderItem,
13
13
  ViewToken,
14
14
  VirtualizedListProps,
15
- } from './VirtualizedList';
15
+ } from '@react-native/virtualized-lists';
16
16
  import type {ScrollViewComponent} from '../Components/ScrollView/ScrollView';
17
17
  import type {StyleProp} from '../StyleSheet/StyleSheet';
18
18
  import type {ViewStyle} from '../StyleSheet/StyleSheetTypes';
@@ -41,7 +41,7 @@ export interface FlatListProps<ItemT> extends VirtualizedListProps<ItemT> {
41
41
 
42
42
  /**
43
43
  * An array (or array-like list) of items to render. Other data types can be
44
- * used by targetting VirtualizedList directly.
44
+ * used by targeting VirtualizedList directly.
45
45
  */
46
46
  data: ArrayLike<ItemT> | null | undefined;
47
47
 
@@ -50,7 +50,7 @@ export interface FlatListProps<ItemT> extends VirtualizedListProps<ItemT> {
50
50
  * If any of your `renderItem`, Header, Footer, etc. functions depend on anything outside of the `data` prop,
51
51
  * stick it here and treat it immutably.
52
52
  */
53
- extraData?: any;
53
+ extraData?: any | undefined;
54
54
 
55
55
  /**
56
56
  * `getItemLayout` is an optional optimization that lets us skip measurement of dynamic
@@ -66,7 +66,7 @@ export interface FlatListProps<ItemT> extends VirtualizedListProps<ItemT> {
66
66
  */
67
67
  getItemLayout?:
68
68
  | ((
69
- data: Array<ItemT> | null | undefined,
69
+ data: ArrayLike<ItemT> | null | undefined,
70
70
  index: number,
71
71
  ) => {length: number; offset: number; index: number})
72
72
  | undefined;
@@ -104,19 +104,6 @@ export interface FlatListProps<ItemT> extends VirtualizedListProps<ItemT> {
104
104
  */
105
105
  numColumns?: number | undefined;
106
106
 
107
- /**
108
- * Called once when the scroll position gets within onEndReachedThreshold of the rendered content.
109
- */
110
- onEndReached?: ((info: {distanceFromEnd: number}) => void) | null | undefined;
111
-
112
- /**
113
- * How far from the end (in units of visible length of the list) the bottom edge of the
114
- * list must be from the end of the content to trigger the `onEndReached` callback.
115
- * Thus a value of 0.5 will trigger `onEndReached` when the end of the content is
116
- * within half the visible length of the list.
117
- */
118
- onEndReachedThreshold?: number | null | undefined;
119
-
120
107
  /**
121
108
  * If provided, a standard RefreshControl will be added for "Pull to Refresh" functionality.
122
109
  * Make sure to also set the refreshing prop correctly.
@@ -145,7 +132,7 @@ export interface FlatListProps<ItemT> extends VirtualizedListProps<ItemT> {
145
132
  * _renderItem = ({item}) => (
146
133
  * <TouchableOpacity onPress={() => this._onPress(item)}>
147
134
  * <Text>{item.title}</Text>
148
- * <TouchableOpacity/>
135
+ * </TouchableOpacity>
149
136
  * );
150
137
  * ...
151
138
  * <FlatList data={[{title: 'Title Text', key: 'item1'}]} renderItem={this._renderItem} />
@@ -157,7 +144,7 @@ export interface FlatListProps<ItemT> extends VirtualizedListProps<ItemT> {
157
144
  /**
158
145
  * See `ViewabilityHelper` for flow type and further documentation.
159
146
  */
160
- viewabilityConfig?: any;
147
+ viewabilityConfig?: any | undefined;
161
148
 
162
149
  /**
163
150
  * Note: may have bugs (missing content) in some circumstances - use at your own risk.
@@ -179,9 +166,10 @@ export interface FlatListProps<ItemT> extends VirtualizedListProps<ItemT> {
179
166
  fadingEdgeLength?: number | undefined;
180
167
  }
181
168
 
182
- export class FlatList<ItemT = any> extends React.Component<
183
- FlatListProps<ItemT>
184
- > {
169
+ export abstract class FlatListComponent<
170
+ ItemT,
171
+ Props,
172
+ > extends React.Component<Props> {
185
173
  /**
186
174
  * Scrolls to the end of the content. May be janky without `getItemLayout` prop.
187
175
  */
@@ -249,3 +237,8 @@ export class FlatList<ItemT = any> extends React.Component<
249
237
  // TODO: use `unknown` instead of `any` for Typescript >= 3.0
250
238
  setNativeProps: (props: {[key: string]: any}) => void;
251
239
  }
240
+
241
+ export class FlatList<ItemT = any> extends FlatListComponent<
242
+ ItemT,
243
+ FlatListProps<ItemT>
244
+ > {}
@@ -11,14 +11,17 @@
11
11
  import typeof ScrollViewNativeComponent from '../Components/ScrollView/ScrollViewNativeComponent';
12
12
  import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
13
13
  import type {
14
+ RenderItemProps,
15
+ RenderItemType,
14
16
  ViewabilityConfigCallbackPair,
15
17
  ViewToken,
16
- } from './ViewabilityHelper';
17
- import type {RenderItemProps, RenderItemType} from './VirtualizedList';
18
+ } from '@react-native/virtualized-lists';
18
19
 
19
20
  import {type ScrollResponderType} from '../Components/ScrollView/ScrollView';
20
- import VirtualizedList from './VirtualizedList';
21
- import {keyExtractor as defaultKeyExtractor} from './VirtualizeUtils';
21
+ import {
22
+ VirtualizedList,
23
+ keyExtractor as defaultKeyExtractor,
24
+ } from '@react-native/virtualized-lists';
22
25
  import memoizeOne from 'memoize-one';
23
26
 
24
27
  const View = require('../Components/View/View');
@@ -31,7 +34,7 @@ const React = require('react');
31
34
  type RequiredProps<ItemT> = {|
32
35
  /**
33
36
  * An array (or array-like list) of items to render. Other data types can be
34
- * used by targetting VirtualizedList directly.
37
+ * used by targeting VirtualizedList directly.
35
38
  */
36
39
  data: ?$ArrayLike<ItemT>,
37
40
  |};
@@ -88,7 +91,7 @@ type OptionalProps<ItemT> = {|
88
91
  * specify `ItemSeparatorComponent`.
89
92
  */
90
93
  getItemLayout?: (
91
- data: ?Array<ItemT>,
94
+ data: ?$ArrayLike<ItemT>,
92
95
  index: number,
93
96
  ) => {
94
97
  length: number,
@@ -11,7 +11,7 @@ import type * as React from 'react';
11
11
  import type {
12
12
  ListRenderItemInfo,
13
13
  VirtualizedListWithoutRenderItemProps,
14
- } from './VirtualizedList';
14
+ } from '@react-native/virtualized-lists';
15
15
  import type {
16
16
  ScrollView,
17
17
  ScrollViewProps,
@@ -75,7 +75,7 @@ export interface SectionListProps<ItemT, SectionT = DefaultSectionT>
75
75
  * If any of your `renderItem`, Header, Footer, etc. functions depend on anything outside of the `data` prop,
76
76
  * stick it here and treat it immutably.
77
77
  */
78
- extraData?: any;
78
+ extraData?: any | undefined;
79
79
 
80
80
  /**
81
81
  * `getItemLayout` is an optional optimization that lets us skip measurement of dynamic
@@ -210,10 +210,9 @@ export interface SectionListScrollParams {
210
210
  viewPosition?: number | undefined;
211
211
  }
212
212
 
213
- export class SectionList<
214
- ItemT = any,
215
- SectionT = DefaultSectionT,
216
- > extends React.Component<SectionListProps<ItemT, SectionT>> {
213
+ export abstract class SectionListComponent<
214
+ Props,
215
+ > extends React.Component<Props> {
217
216
  /**
218
217
  * Scrolls to the item at the specified sectionIndex and itemIndex (within the section)
219
218
  * positioned in the viewable area such that viewPosition 0 places it at the top
@@ -246,6 +245,11 @@ export class SectionList<
246
245
  getScrollableNode(): NodeHandle | undefined;
247
246
  }
248
247
 
248
+ export class SectionList<
249
+ ItemT = any,
250
+ SectionT = DefaultSectionT,
251
+ > extends SectionListComponent<SectionListProps<ItemT, SectionT>> {}
252
+
249
253
  /* This definition is deprecated because it extends the wrong base type */
250
254
  export interface SectionListStatic<ItemT, SectionT = DefaultSectionT>
251
255
  extends React.ComponentClass<SectionListProps<ItemT, SectionT>> {
@@ -12,13 +12,13 @@
12
12
 
13
13
  import type {ScrollResponderType} from '../Components/ScrollView/ScrollView';
14
14
  import type {
15
- Props as VirtualizedSectionListProps,
16
15
  ScrollToLocationParamsType,
17
16
  SectionBase as _SectionBase,
18
- } from './VirtualizedSectionList';
17
+ VirtualizedSectionListProps,
18
+ } from '@react-native/virtualized-lists';
19
19
 
20
20
  import Platform from '../Utilities/Platform';
21
- import VirtualizedSectionList from './VirtualizedSectionList';
21
+ import {VirtualizedSectionList} from '@react-native/virtualized-lists';
22
22
  import * as React from 'react';
23
23
 
24
24
  type Item = any;
@@ -248,7 +248,9 @@ export default class SectionList<
248
248
  {...restProps}
249
249
  stickySectionHeadersEnabled={stickySectionHeadersEnabled}
250
250
  ref={this._captureRef}
251
+ // $FlowFixMe[missing-local-annot]
251
252
  getItemCount={items => items.length}
253
+ // $FlowFixMe[missing-local-annot]
252
254
  getItem={(items, index) => items[index]}
253
255
  />
254
256
  );
@@ -12,14 +12,14 @@
12
12
 
13
13
  import type {ScrollResponderType} from '../Components/ScrollView/ScrollView';
14
14
  import type {
15
- Props as VirtualizedSectionListProps,
16
15
  ScrollToLocationParamsType,
17
16
  SectionBase as _SectionBase,
18
- } from './VirtualizedSectionList';
17
+ VirtualizedSectionListProps,
18
+ } from '@react-native/virtualized-lists';
19
19
  import type {AbstractComponent, Element, ElementRef} from 'react';
20
20
 
21
21
  import Platform from '../Utilities/Platform';
22
- import VirtualizedSectionList from './VirtualizedSectionList';
22
+ import {VirtualizedSectionList} from '@react-native/virtualized-lists';
23
23
  import React, {forwardRef, useImperativeHandle, useRef} from 'react';
24
24
 
25
25
  type Item = any;