@office-iss/react-native-win32 0.71.4 → 0.72.0-preview.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/.flowconfig +15 -3
  2. package/CHANGELOG.json +310 -40
  3. package/CHANGELOG.md +145 -23
  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/TouchableWithoutFeedback.d.ts +1 -1
  72. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
  73. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +189 -0
  74. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
  75. package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
  76. package/Libraries/Components/View/View.js +71 -45
  77. package/Libraries/Components/View/View.win32.js +38 -16
  78. package/Libraries/Components/View/ViewAccessibility.d.ts +6 -6
  79. package/Libraries/Components/View/ViewAccessibility.js +10 -1
  80. package/Libraries/Components/View/ViewAccessibility.win32.d.ts +5 -5
  81. package/Libraries/Components/View/ViewNativeComponent.js +32 -8
  82. package/Libraries/Components/View/ViewPropTypes.d.ts +1 -1
  83. package/Libraries/Components/View/ViewPropTypes.js +1 -1
  84. package/Libraries/Components/View/ViewPropTypes.win32.d.ts +1 -1
  85. package/Libraries/Components/View/ViewPropTypes.win32.js +1 -1
  86. package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
  87. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
  88. package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
  89. package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
  90. package/Libraries/Core/ExceptionsManager.js +2 -2
  91. package/Libraries/Core/InitializeCore.js +2 -1
  92. package/Libraries/Core/ReactNativeVersion.js +3 -3
  93. package/Libraries/Core/ReactNativeVersionCheck.js +1 -9
  94. package/Libraries/Core/ReactNativeVersionCheck.win32.js +1 -9
  95. package/Libraries/Core/Timers/JSTimers.js +1 -1
  96. package/Libraries/Core/Timers/immediateShim.js +1 -0
  97. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  98. package/Libraries/Core/setUpAlert.js +1 -1
  99. package/Libraries/Core/setUpDOM.js +18 -0
  100. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  101. package/Libraries/Core/setUpGlobals.js +5 -2
  102. package/Libraries/Core/setUpNavigator.js +6 -5
  103. package/Libraries/Core/setUpPerformance.js +23 -13
  104. package/Libraries/Core/setUpReactDevTools.js +2 -0
  105. package/Libraries/Core/setUpSegmentFetcher.js +0 -41
  106. package/Libraries/Core/setUpTimers.js +2 -2
  107. package/Libraries/DOM/Geometry/DOMRect.js +82 -0
  108. package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
  109. package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
  110. package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
  111. package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
  112. package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
  113. package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
  114. package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
  115. package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
  116. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
  117. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
  118. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
  119. package/Libraries/DevToolsSettings/DevToolsSettingsManager.win32.js +35 -0
  120. package/Libraries/{Utilities/NativeDevSplitBundleLoader.js → DevToolsSettings/NativeDevToolsSettingsManager.js} +7 -2
  121. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
  122. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
  123. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
  124. package/Libraries/Events/EventPolyfill.js +1 -1
  125. package/Libraries/Image/AssetRegistry.js +1 -1
  126. package/Libraries/Image/AssetSourceResolver.js +3 -3
  127. package/Libraries/Image/Image.android.js +4 -1
  128. package/Libraries/Image/Image.d.ts +63 -2
  129. package/Libraries/Image/Image.ios.js +3 -0
  130. package/Libraries/Image/Image.win32.js +3 -0
  131. package/Libraries/Image/ImageBackground.js +1 -0
  132. package/Libraries/Image/ImageProps.js +1 -1
  133. package/Libraries/Image/ImageViewNativeComponent.js +4 -4
  134. package/Libraries/Image/RelativeImageStub.js +1 -1
  135. package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
  136. package/Libraries/Image/resolveAssetSource.js +1 -1
  137. package/Libraries/Inspector/DevtoolsOverlay.js +29 -19
  138. package/Libraries/Inspector/ElementBox.js +4 -1
  139. package/Libraries/Inspector/Inspector.js +5 -6
  140. package/Libraries/Inspector/Inspector.win32.js +7 -6
  141. package/Libraries/Inspector/InspectorOverlay.js +3 -3
  142. package/Libraries/Inspector/InspectorOverlay.win32.js +2 -1
  143. package/Libraries/Inspector/NetworkOverlay.js +1 -1
  144. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
  145. package/Libraries/Interaction/PanResponder.js +5 -6
  146. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
  147. package/Libraries/Linking/Linking.js +1 -4
  148. package/Libraries/Lists/FillRateHelper.js +4 -238
  149. package/Libraries/Lists/FlatList.d.ts +15 -22
  150. package/Libraries/Lists/FlatList.js +9 -6
  151. package/Libraries/Lists/SectionList.d.ts +10 -6
  152. package/Libraries/Lists/SectionList.js +5 -3
  153. package/Libraries/Lists/SectionListModern.js +3 -3
  154. package/Libraries/Lists/ViewabilityHelper.js +8 -344
  155. package/Libraries/Lists/VirtualizeUtils.js +4 -244
  156. package/Libraries/Lists/VirtualizedList.js +10 -1867
  157. package/Libraries/Lists/VirtualizedListContext.js +6 -104
  158. package/Libraries/Lists/VirtualizedSectionList.js +9 -602
  159. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
  160. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  161. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  162. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  163. package/Libraries/LogBox/LogBox.js +1 -1
  164. package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
  165. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +168 -0
  166. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +3 -0
  167. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +193 -0
  168. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
  169. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
  170. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +7 -3
  171. package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
  172. package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
  173. package/Libraries/Modal/Modal.js +2 -2
  174. package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
  175. package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
  176. package/Libraries/NativeComponent/BaseViewConfig.win32.js +43 -19
  177. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
  178. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  179. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
  180. package/Libraries/Network/RCTNetworking.android.js +2 -2
  181. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  182. package/Libraries/Network/RCTNetworking.win32.js +1 -1
  183. package/Libraries/Network/XMLHttpRequest.js +1 -1
  184. package/Libraries/Pressability/Pressability.js +11 -5
  185. package/Libraries/Pressability/Pressability.win32.js +9 -3
  186. package/Libraries/ReactNative/AppContainer.js +7 -1
  187. package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
  188. package/Libraries/ReactNative/AppRegistry.js +10 -13
  189. package/Libraries/ReactNative/FabricUIManager.js +24 -8
  190. package/Libraries/ReactNative/NativeUIManager.js +5 -5
  191. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
  192. package/Libraries/ReactNative/UIManager.js +142 -1
  193. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
  194. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  195. package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
  196. package/Libraries/ReactNative/requireNativeComponent.js +1 -1
  197. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
  198. package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
  199. package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
  200. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
  201. package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
  202. package/Libraries/Renderer/shims/ReactNativeTypes.js +38 -20
  203. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
  204. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  205. package/Libraries/Share/Share.js +1 -1
  206. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  207. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  208. package/Libraries/StyleSheet/StyleSheet.win32.js +1 -1
  209. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
  210. package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
  211. package/Libraries/StyleSheet/flattenStyle.js +2 -0
  212. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  213. package/Libraries/StyleSheet/processColor.js +1 -1
  214. package/Libraries/Text/Text.d.ts +12 -2
  215. package/Libraries/Text/Text.js +50 -41
  216. package/Libraries/Text/TextProps.js +3 -4
  217. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
  218. package/Libraries/Types/CodegenTypes.js +1 -0
  219. package/Libraries/UTFSequence.js +3 -1
  220. package/Libraries/Utilities/Appearance.d.ts +10 -0
  221. package/Libraries/Utilities/Appearance.js +13 -0
  222. package/Libraries/Utilities/Dimensions.js +1 -1
  223. package/Libraries/Utilities/Dimensions.win32.js +1 -1
  224. package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
  225. package/Libraries/Utilities/HMRClient.js +16 -10
  226. package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
  227. package/Libraries/Utilities/IPerformanceLogger.js +49 -0
  228. package/Libraries/Utilities/LoadingView.android.js +28 -11
  229. package/Libraries/Utilities/NativeAppearance.js +1 -0
  230. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
  231. package/Libraries/Utilities/PixelRatio.js +2 -2
  232. package/Libraries/Utilities/Platform.win32.js +1 -1
  233. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  234. package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
  235. package/Libraries/Utilities/codegenNativeCommands.js +2 -0
  236. package/Libraries/Utilities/createPerformanceLogger.js +55 -43
  237. package/Libraries/Utilities/stringifySafe.js +2 -7
  238. package/Libraries/Utilities/useColorScheme.js +1 -1
  239. package/Libraries/Utilities/useWindowDimensions.js +3 -3
  240. package/Libraries/WebPerformance/EventCounts.js +78 -0
  241. package/Libraries/WebPerformance/MemoryInfo.js +54 -0
  242. package/Libraries/WebPerformance/NativePerformance.js +38 -0
  243. package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
  244. package/Libraries/WebPerformance/Performance.js +312 -0
  245. package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
  246. package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
  247. package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
  248. package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
  249. package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
  250. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
  251. package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
  252. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  253. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  254. package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
  255. package/Libraries/vendor/emitter/EventEmitter.js +9 -1
  256. package/flow/global.js +29 -4
  257. package/flow/jest.js +258 -164
  258. package/index.js +56 -42
  259. package/index.win32.js +56 -42
  260. package/interface.js +1 -1
  261. package/jest/local-setup.js +33 -0
  262. package/jest/mockComponent.js +4 -2
  263. package/jest/mockNativeComponent.js +1 -1
  264. package/jest/mockScrollView.js +2 -1
  265. package/jest/react-native-env.js +1 -3
  266. package/jest/setup.js +11 -8
  267. package/overrides.json +115 -85
  268. package/package.json +38 -28
  269. package/rn-get-polyfills.js +1 -1
  270. package/src/Libraries/Components/TextInput/TextInput.Types.win32.ts +68 -0
  271. package/src/Libraries/Components/View/ViewAccessibility.win32.d.ts +5 -5
  272. package/src/Libraries/Components/View/ViewPropTypes.win32.d.ts +1 -1
  273. package/types/index.d.ts +2 -6
  274. package/types/modules/Codegen.d.ts +4 -4
  275. package/types/modules/globals.d.ts +27 -25
  276. package/types/public/DeprecatedPropertiesAlias.d.ts +0 -20
  277. package/types/public/ReactNativeRenderer.d.ts +2 -7
  278. package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
  279. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
  280. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
  281. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
  282. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
  283. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
  284. package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
  285. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
  286. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
  287. package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +0 -47
  288. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
  289. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
  290. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
  291. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
  292. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
  293. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +0 -45
  294. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
  295. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
  296. package/Libraries/Components/Slider/Slider.d.ts +0 -132
  297. package/Libraries/Components/Slider/Slider.js +0 -282
  298. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
  299. package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +0 -23
  300. package/Libraries/Interaction/Batchinator.js +0 -76
  301. package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
  302. package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
  303. package/Libraries/Interaction/PanResponder.flow.js +0 -257
  304. package/Libraries/Lists/CellRenderMask.js +0 -155
  305. package/Libraries/Lists/ChildListCollection.js +0 -72
  306. package/Libraries/Lists/StateSafePureComponent.js +0 -85
  307. package/Libraries/Lists/VirtualizedList.d.ts +0 -347
  308. package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
  309. package/Libraries/Lists/VirtualizedListProps.js +0 -279
  310. package/Libraries/Performance/PureComponentDebug.js +0 -74
  311. package/Libraries/Reliability/UserFlow.js +0 -158
  312. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
  313. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
  314. package/Libraries/Utilities/MatrixMath.js +0 -748
  315. package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
  316. package/Libraries/Utilities/clamp.js +0 -23
  317. package/Libraries/Utilities/deprecatedPropType.js +0 -36
  318. package/Libraries/Utilities/groupByEveryN.js +0 -51
  319. package/Libraries/Utilities/mergeIntoFast.js +0 -26
  320. package/Libraries/Utilities/setAndForwardRef.js +0 -71
  321. package/Libraries/Utilities/truncate.js +0 -51
  322. package/flow/JSITimerInternalType.js +0 -30
  323. package/flow/use-sync-external-store.js +0 -19
@@ -1,259 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @flow
8
- * @format
9
- */
10
-
11
- import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
12
- import type {FocusEvent, LayoutEvent} from '../Types/CoreEventTypes';
13
- import type FillRateHelper from './FillRateHelper';
14
- import type {RenderItemType} from './VirtualizedListProps';
15
-
16
- import View from '../Components/View/View';
17
- import StyleSheet from '../StyleSheet/StyleSheet';
18
- import {VirtualizedListCellContextProvider} from './VirtualizedListContext.js';
19
- import invariant from 'invariant';
20
- import * as React from 'react';
21
-
22
- export type Props<ItemT> = {
23
- CellRendererComponent?: ?React.ComponentType<any>,
24
- ItemSeparatorComponent: ?React.ComponentType<
25
- any | {highlighted: boolean, leadingItem: ?ItemT},
26
- >,
27
- ListItemComponent?: ?(React.ComponentType<any> | React.Element<any>),
28
- cellKey: string,
29
- debug?: ?boolean,
30
- fillRateHelper: FillRateHelper,
31
- getItemLayout?: (
32
- data: any,
33
- index: number,
34
- ) => {
35
- length: number,
36
- offset: number,
37
- index: number,
38
- ...
39
- },
40
- horizontal: ?boolean,
41
- index: number,
42
- inversionStyle: ViewStyleProp,
43
- item: ItemT,
44
- onCellLayout: (event: LayoutEvent, cellKey: string, index: number) => void,
45
- onCellFocusCapture?: (event: FocusEvent) => void,
46
- onUnmount: (cellKey: string) => void,
47
- onUpdateSeparators: (
48
- cellKeys: Array<?string>,
49
- props: $Shape<SeparatorProps<ItemT>>,
50
- ) => void,
51
- prevCellKey: ?string,
52
- renderItem?: ?RenderItemType<ItemT>,
53
- ...
54
- };
55
-
56
- type SeparatorProps<ItemT> = $ReadOnly<{|
57
- highlighted: boolean,
58
- leadingItem: ?ItemT,
59
- |}>;
60
-
61
- type State<ItemT> = {
62
- separatorProps: SeparatorProps<ItemT>,
63
- ...
64
- };
65
-
66
- export default class CellRenderer<ItemT> extends React.Component<
67
- Props<ItemT>,
68
- State<ItemT>,
69
- > {
70
- state: State<ItemT> = {
71
- separatorProps: {
72
- highlighted: false,
73
- leadingItem: this.props.item,
74
- },
75
- };
76
-
77
- static getDerivedStateFromProps(
78
- props: Props<ItemT>,
79
- prevState: State<ItemT>,
80
- ): ?State<ItemT> {
81
- return {
82
- separatorProps: {
83
- ...prevState.separatorProps,
84
- leadingItem: props.item,
85
- },
86
- };
87
- }
88
-
89
- // TODO: consider factoring separator stuff out of VirtualizedList into FlatList since it's not
90
- // reused by SectionList and we can keep VirtualizedList simpler.
91
- // $FlowFixMe[missing-local-annot]
92
- _separators = {
93
- highlight: () => {
94
- const {cellKey, prevCellKey} = this.props;
95
- this.props.onUpdateSeparators([cellKey, prevCellKey], {
96
- highlighted: true,
97
- });
98
- },
99
- unhighlight: () => {
100
- const {cellKey, prevCellKey} = this.props;
101
- this.props.onUpdateSeparators([cellKey, prevCellKey], {
102
- highlighted: false,
103
- });
104
- },
105
- updateProps: (
106
- select: 'leading' | 'trailing',
107
- newProps: SeparatorProps<ItemT>,
108
- ) => {
109
- const {cellKey, prevCellKey} = this.props;
110
- this.props.onUpdateSeparators(
111
- [select === 'leading' ? prevCellKey : cellKey],
112
- newProps,
113
- );
114
- },
115
- };
116
-
117
- updateSeparatorProps(newProps: SeparatorProps<ItemT>) {
118
- this.setState(state => ({
119
- separatorProps: {...state.separatorProps, ...newProps},
120
- }));
121
- }
122
-
123
- componentWillUnmount() {
124
- this.props.onUnmount(this.props.cellKey);
125
- }
126
-
127
- _onLayout = (nativeEvent: LayoutEvent): void => {
128
- this.props.onCellLayout &&
129
- this.props.onCellLayout(
130
- nativeEvent,
131
- this.props.cellKey,
132
- this.props.index,
133
- );
134
- };
135
-
136
- _renderElement(
137
- renderItem: ?RenderItemType<ItemT>,
138
- ListItemComponent: any,
139
- item: ItemT,
140
- index: number,
141
- ): React.Node {
142
- if (renderItem && ListItemComponent) {
143
- console.warn(
144
- 'VirtualizedList: Both ListItemComponent and renderItem props are present. ListItemComponent will take' +
145
- ' precedence over renderItem.',
146
- );
147
- }
148
-
149
- if (ListItemComponent) {
150
- /* $FlowFixMe[not-a-component] (>=0.108.0 site=react_native_fb) This
151
- * comment suppresses an error found when Flow v0.108 was deployed. To
152
- * see the error, delete this comment and run Flow. */
153
- /* $FlowFixMe[incompatible-type-arg] (>=0.108.0 site=react_native_fb)
154
- * This comment suppresses an error found when Flow v0.108 was deployed.
155
- * To see the error, delete this comment and run Flow. */
156
- return React.createElement(ListItemComponent, {
157
- item,
158
- index,
159
- separators: this._separators,
160
- });
161
- }
162
-
163
- if (renderItem) {
164
- return renderItem({
165
- item,
166
- index,
167
- separators: this._separators,
168
- });
169
- }
170
-
171
- invariant(
172
- false,
173
- 'VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.',
174
- );
175
- }
176
-
177
- render(): React.Node {
178
- const {
179
- CellRendererComponent,
180
- ItemSeparatorComponent,
181
- ListItemComponent,
182
- debug,
183
- fillRateHelper,
184
- getItemLayout,
185
- horizontal,
186
- item,
187
- index,
188
- inversionStyle,
189
- onCellFocusCapture,
190
- renderItem,
191
- } = this.props;
192
- const element = this._renderElement(
193
- renderItem,
194
- ListItemComponent,
195
- item,
196
- index,
197
- );
198
-
199
- const onLayout =
200
- (getItemLayout && !debug && !fillRateHelper.enabled()) ||
201
- !this.props.onCellLayout
202
- ? undefined
203
- : this._onLayout;
204
- // NOTE: that when this is a sticky header, `onLayout` will get automatically extracted and
205
- // called explicitly by `ScrollViewStickyHeader`.
206
- const itemSeparator = React.isValidElement(ItemSeparatorComponent)
207
- ? ItemSeparatorComponent
208
- : ItemSeparatorComponent && (
209
- <ItemSeparatorComponent {...this.state.separatorProps} />
210
- );
211
- const cellStyle = inversionStyle
212
- ? horizontal
213
- ? [styles.rowReverse, inversionStyle]
214
- : [styles.columnReverse, inversionStyle]
215
- : horizontal
216
- ? [styles.row, inversionStyle]
217
- : inversionStyle;
218
- const result = !CellRendererComponent ? (
219
- <View
220
- style={cellStyle}
221
- onLayout={onLayout}
222
- onFocusCapture={onCellFocusCapture}
223
- /* $FlowFixMe[incompatible-type-arg] (>=0.89.0 site=react_native_fb) *
224
- This comment suppresses an error found when Flow v0.89 was deployed. *
225
- To see the error, delete this comment and run Flow. */
226
- >
227
- {element}
228
- {itemSeparator}
229
- </View>
230
- ) : (
231
- <CellRendererComponent
232
- {...this.props}
233
- style={cellStyle}
234
- onLayout={onLayout}
235
- onFocusCapture={onCellFocusCapture}>
236
- {element}
237
- {itemSeparator}
238
- </CellRendererComponent>
239
- );
240
-
241
- return (
242
- <VirtualizedListCellContextProvider cellKey={this.props.cellKey}>
243
- {result}
244
- </VirtualizedListCellContextProvider>
245
- );
246
- }
247
- }
248
-
249
- const styles = StyleSheet.create({
250
- row: {
251
- flexDirection: 'row',
252
- },
253
- rowReverse: {
254
- flexDirection: 'row-reverse',
255
- },
256
- columnReverse: {
257
- flexDirection: 'column-reverse',
258
- },
259
- });
@@ -1,279 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @flow
8
- * @format
9
- */
10
-
11
- import typeof ScrollView from '../Components/ScrollView/ScrollView';
12
- import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
13
- import type {
14
- ViewabilityConfig,
15
- ViewabilityConfigCallbackPair,
16
- ViewToken,
17
- } from './ViewabilityHelper';
18
-
19
- import * as React from 'react';
20
-
21
- export type Item = any;
22
-
23
- export type Separators = {
24
- highlight: () => void,
25
- unhighlight: () => void,
26
- updateProps: (select: 'leading' | 'trailing', newProps: Object) => void,
27
- ...
28
- };
29
-
30
- export type RenderItemProps<ItemT> = {
31
- item: ItemT,
32
- index: number,
33
- separators: Separators,
34
- ...
35
- };
36
-
37
- export type RenderItemType<ItemT> = (
38
- info: RenderItemProps<ItemT>,
39
- ) => React.Node;
40
-
41
- type RequiredProps = {|
42
- /**
43
- * The default accessor functions assume this is an Array<{key: string} | {id: string}> but you can override
44
- * getItem, getItemCount, and keyExtractor to handle any type of index-based data.
45
- */
46
- data?: any,
47
- /**
48
- * A generic accessor for extracting an item from any sort of data blob.
49
- */
50
- getItem: (data: any, index: number) => ?Item,
51
- /**
52
- * Determines how many items are in the data blob.
53
- */
54
- getItemCount: (data: any) => number,
55
- |};
56
- type OptionalProps = {|
57
- renderItem?: ?RenderItemType<Item>,
58
- /**
59
- * `debug` will turn on extra logging and visual overlays to aid with debugging both usage and
60
- * implementation, but with a significant perf hit.
61
- */
62
- debug?: ?boolean,
63
- /**
64
- * DEPRECATED: Virtualization provides significant performance and memory optimizations, but fully
65
- * unmounts react instances that are outside of the render window. You should only need to disable
66
- * this for debugging purposes. Defaults to false.
67
- */
68
- disableVirtualization?: ?boolean,
69
- /**
70
- * A marker property for telling the list to re-render (since it implements `PureComponent`). If
71
- * any of your `renderItem`, Header, Footer, etc. functions depend on anything outside of the
72
- * `data` prop, stick it here and treat it immutably.
73
- */
74
- extraData?: any,
75
- // e.g. height, y
76
- getItemLayout?: (
77
- data: any,
78
- index: number,
79
- ) => {
80
- length: number,
81
- offset: number,
82
- index: number,
83
- ...
84
- },
85
- horizontal?: ?boolean,
86
- /**
87
- * How many items to render in the initial batch. This should be enough to fill the screen but not
88
- * much more. Note these items will never be unmounted as part of the windowed rendering in order
89
- * to improve perceived performance of scroll-to-top actions.
90
- */
91
- initialNumToRender?: ?number,
92
- /**
93
- * Instead of starting at the top with the first item, start at `initialScrollIndex`. This
94
- * disables the "scroll to top" optimization that keeps the first `initialNumToRender` items
95
- * always rendered and immediately renders the items starting at this initial index. Requires
96
- * `getItemLayout` to be implemented.
97
- */
98
- initialScrollIndex?: ?number,
99
- /**
100
- * Reverses the direction of scroll. Uses scale transforms of -1.
101
- */
102
- inverted?: ?boolean,
103
- keyExtractor?: ?(item: Item, index: number) => string,
104
- /**
105
- * Each cell is rendered using this element. Can be a React Component Class,
106
- * or a render function. Defaults to using View.
107
- */
108
- CellRendererComponent?: ?React.ComponentType<any>,
109
- /**
110
- * Rendered in between each item, but not at the top or bottom. By default, `highlighted` and
111
- * `leadingItem` props are provided. `renderItem` provides `separators.highlight`/`unhighlight`
112
- * which will update the `highlighted` prop, but you can also add custom props with
113
- * `separators.updateProps`.
114
- */
115
- ItemSeparatorComponent?: ?React.ComponentType<any>,
116
- /**
117
- * Takes an item from `data` and renders it into the list. Example usage:
118
- *
119
- * <FlatList
120
- * ItemSeparatorComponent={Platform.OS !== 'android' && ({highlighted}) => (
121
- * <View style={[style.separator, highlighted && {marginLeft: 0}]} />
122
- * )}
123
- * data={[{title: 'Title Text', key: 'item1'}]}
124
- * ListItemComponent={({item, separators}) => (
125
- * <TouchableHighlight
126
- * onPress={() => this._onPress(item)}
127
- * onShowUnderlay={separators.highlight}
128
- * onHideUnderlay={separators.unhighlight}>
129
- * <View style={{backgroundColor: 'white'}}>
130
- * <Text>{item.title}</Text>
131
- * </View>
132
- * </TouchableHighlight>
133
- * )}
134
- * />
135
- *
136
- * Provides additional metadata like `index` if you need it, as well as a more generic
137
- * `separators.updateProps` function which let's you set whatever props you want to change the
138
- * rendering of either the leading separator or trailing separator in case the more common
139
- * `highlight` and `unhighlight` (which set the `highlighted: boolean` prop) are insufficient for
140
- * your use-case.
141
- */
142
- ListItemComponent?: ?(React.ComponentType<any> | React.Element<any>),
143
- /**
144
- * Rendered when the list is empty. Can be a React Component Class, a render function, or
145
- * a rendered element.
146
- */
147
- ListEmptyComponent?: ?(React.ComponentType<any> | React.Element<any>),
148
- /**
149
- * Rendered at the bottom of all the items. Can be a React Component Class, a render function, or
150
- * a rendered element.
151
- */
152
- ListFooterComponent?: ?(React.ComponentType<any> | React.Element<any>),
153
- /**
154
- * Styling for internal View for ListFooterComponent
155
- */
156
- ListFooterComponentStyle?: ViewStyleProp,
157
- /**
158
- * Rendered at the top of all the items. Can be a React Component Class, a render function, or
159
- * a rendered element.
160
- */
161
- ListHeaderComponent?: ?(React.ComponentType<any> | React.Element<any>),
162
- /**
163
- * Styling for internal View for ListHeaderComponent
164
- */
165
- ListHeaderComponentStyle?: ViewStyleProp,
166
- /**
167
- * The maximum number of items to render in each incremental render batch. The more rendered at
168
- * once, the better the fill rate, but responsiveness may suffer because rendering content may
169
- * interfere with responding to button taps or other interactions.
170
- */
171
- maxToRenderPerBatch?: ?number,
172
- /**
173
- * Called once when the scroll position gets within `onEndReachedThreshold` of the rendered
174
- * content.
175
- */
176
- onEndReached?: ?(info: {distanceFromEnd: number, ...}) => void,
177
- /**
178
- * How far from the end (in units of visible length of the list) the bottom edge of the
179
- * list must be from the end of the content to trigger the `onEndReached` callback.
180
- * Thus a value of 0.5 will trigger `onEndReached` when the end of the content is
181
- * within half the visible length of the list. A value of 0 will not trigger until scrolling
182
- * to the very end of the list.
183
- */
184
- onEndReachedThreshold?: ?number,
185
- /**
186
- * If provided, a standard RefreshControl will be added for "Pull to Refresh" functionality. Make
187
- * sure to also set the `refreshing` prop correctly.
188
- */
189
- onRefresh?: ?() => void,
190
- /**
191
- * Used to handle failures when scrolling to an index that has not been measured yet. Recommended
192
- * action is to either compute your own offset and `scrollTo` it, or scroll as far as possible and
193
- * then try again after more items have been rendered.
194
- */
195
- onScrollToIndexFailed?: ?(info: {
196
- index: number,
197
- highestMeasuredFrameIndex: number,
198
- averageItemLength: number,
199
- ...
200
- }) => void,
201
- /**
202
- * Called when the viewability of rows changes, as defined by the
203
- * `viewabilityConfig` prop.
204
- */
205
- onViewableItemsChanged?: ?(info: {
206
- viewableItems: Array<ViewToken>,
207
- changed: Array<ViewToken>,
208
- ...
209
- }) => void,
210
- persistentScrollbar?: ?boolean,
211
- /**
212
- * Set this when offset is needed for the loading indicator to show correctly.
213
- */
214
- progressViewOffset?: number,
215
- /**
216
- * A custom refresh control element. When set, it overrides the default
217
- * <RefreshControl> component built internally. The onRefresh and refreshing
218
- * props are also ignored. Only works for vertical VirtualizedList.
219
- */
220
- refreshControl?: ?React.Element<any>,
221
- /**
222
- * Set this true while waiting for new data from a refresh.
223
- */
224
- refreshing?: ?boolean,
225
- /**
226
- * Note: may have bugs (missing content) in some circumstances - use at your own risk.
227
- *
228
- * This may improve scroll performance for large lists.
229
- */
230
- removeClippedSubviews?: boolean,
231
- /**
232
- * Render a custom scroll component, e.g. with a differently styled `RefreshControl`.
233
- */
234
- renderScrollComponent?: (props: Object) => React.Element<any>,
235
- /**
236
- * Amount of time between low-pri item render batches, e.g. for rendering items quite a ways off
237
- * screen. Similar fill rate/responsiveness tradeoff as `maxToRenderPerBatch`.
238
- */
239
- updateCellsBatchingPeriod?: ?number,
240
- /**
241
- * See `ViewabilityHelper` for flow type and further documentation.
242
- */
243
- viewabilityConfig?: ViewabilityConfig,
244
- /**
245
- * List of ViewabilityConfig/onViewableItemsChanged pairs. A specific onViewableItemsChanged
246
- * will be called when its corresponding ViewabilityConfig's conditions are met.
247
- */
248
- viewabilityConfigCallbackPairs?: Array<ViewabilityConfigCallbackPair>,
249
- /**
250
- * Determines the maximum number of items rendered outside of the visible area, in units of
251
- * visible lengths. So if your list fills the screen, then `windowSize={21}` (the default) will
252
- * render the visible screen area plus up to 10 screens above and 10 below the viewport. Reducing
253
- * this number will reduce memory consumption and may improve performance, but will increase the
254
- * chance that fast scrolling may reveal momentary blank areas of unrendered content.
255
- */
256
- windowSize?: ?number,
257
- /**
258
- * The legacy implementation is no longer supported.
259
- */
260
- legacyImplementation?: empty,
261
- |};
262
-
263
- export type Props = {|
264
- ...React.ElementConfig<ScrollView>,
265
- ...RequiredProps,
266
- ...OptionalProps,
267
- |};
268
-
269
- /**
270
- * Subset of properties needed to calculate frame metrics
271
- */
272
- export type FrameMetricProps = {
273
- data: RequiredProps['data'],
274
- getItemCount: RequiredProps['getItemCount'],
275
- getItem: RequiredProps['getItem'],
276
- getItemLayout?: OptionalProps['getItemLayout'],
277
- keyExtractor?: OptionalProps['keyExtractor'],
278
- ...
279
- };
@@ -1,74 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @flow strict
8
- * @format
9
- */
10
-
11
- 'use strict';
12
-
13
- const React = require('react');
14
-
15
- opaque type DoNotCommitUsageOfPureComponentDebug = {...};
16
-
17
- /**
18
- * Identifies which prop or state changes triggered a re-render of a PureComponent. Usage:
19
- *
20
- * Change `extends React.PureComponent` to `extends PureComponentDebug` or inject it
21
- * everywhere by putting this line in your app setup:
22
- *
23
- * React.PureComponent = require('PureComponentDebug');
24
- *
25
- * Should only be used for local testing, and will trigger a flow failure if you try to
26
- * commit any usages.
27
- */
28
- class PureComponentDebug<
29
- P: DoNotCommitUsageOfPureComponentDebug,
30
- S: ?{...} = void,
31
- > extends React.Component<P, S> {
32
- shouldComponentUpdate(nextProps: P, nextState: S): boolean {
33
- const tag = this.constructor.name;
34
- let ret = false;
35
- const prevPropsKeys = Object.keys(this.props);
36
- const nextPropsKeys = Object.keys(nextProps);
37
- if (prevPropsKeys.length !== nextPropsKeys.length) {
38
- ret = true;
39
- console.warn(
40
- 'PureComponentDebug: different prop keys',
41
- tag,
42
- prevPropsKeys.filter(key => !nextPropsKeys.includes(key)),
43
- nextPropsKeys.filter(key => !prevPropsKeys.includes(key)),
44
- );
45
- }
46
- const prevStateKeys = Object.keys(this.state || {});
47
- const nextStateKeys = Object.keys(nextState || {});
48
- if (prevStateKeys.length !== nextStateKeys.length) {
49
- ret = true;
50
- console.warn(
51
- 'PureComponentDebug: different state keys',
52
- tag,
53
- prevStateKeys.filter(key => !nextStateKeys.includes(key)),
54
- nextStateKeys.filter(key => !prevStateKeys.includes(key)),
55
- );
56
- }
57
- for (const key in this.props) {
58
- if (this.props[key] !== nextProps[key]) {
59
- ret = true;
60
- console.warn('PureComponentDebug: different prop values', tag, key);
61
- }
62
- }
63
- for (const key in this.state) {
64
- // $FlowFixMe[incompatible-use]
65
- if (this.state[key] !== (nextState || {})[key]) {
66
- ret = true;
67
- console.warn('PureComponentDebug: different state values', tag, key);
68
- }
69
- }
70
- return ret;
71
- }
72
- }
73
-
74
- module.exports = PureComponentDebug;