@office-iss/react-native-win32 0.71.5 → 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 (324) hide show
  1. package/.flowconfig +15 -3
  2. package/CHANGELOG.json +302 -47
  3. package/CHANGELOG.md +141 -27
  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/Components/View/ViewWin32.js +3 -3
  87. package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
  88. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
  89. package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
  90. package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
  91. package/Libraries/Core/ExceptionsManager.js +2 -2
  92. package/Libraries/Core/InitializeCore.js +2 -1
  93. package/Libraries/Core/ReactNativeVersion.js +3 -3
  94. package/Libraries/Core/ReactNativeVersionCheck.js +1 -9
  95. package/Libraries/Core/ReactNativeVersionCheck.win32.js +1 -9
  96. package/Libraries/Core/Timers/JSTimers.js +1 -1
  97. package/Libraries/Core/Timers/immediateShim.js +1 -0
  98. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  99. package/Libraries/Core/setUpAlert.js +1 -1
  100. package/Libraries/Core/setUpDOM.js +18 -0
  101. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  102. package/Libraries/Core/setUpGlobals.js +5 -2
  103. package/Libraries/Core/setUpNavigator.js +6 -5
  104. package/Libraries/Core/setUpPerformance.js +23 -13
  105. package/Libraries/Core/setUpReactDevTools.js +2 -0
  106. package/Libraries/Core/setUpSegmentFetcher.js +0 -41
  107. package/Libraries/Core/setUpTimers.js +2 -2
  108. package/Libraries/DOM/Geometry/DOMRect.js +82 -0
  109. package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
  110. package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
  111. package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
  112. package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
  113. package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
  114. package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
  115. package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
  116. package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
  117. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
  118. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
  119. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
  120. package/Libraries/DevToolsSettings/DevToolsSettingsManager.win32.js +35 -0
  121. package/Libraries/{Utilities/NativeDevSplitBundleLoader.js → DevToolsSettings/NativeDevToolsSettingsManager.js} +7 -2
  122. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
  123. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
  124. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
  125. package/Libraries/Events/EventPolyfill.js +1 -1
  126. package/Libraries/Image/AssetRegistry.js +1 -1
  127. package/Libraries/Image/AssetSourceResolver.js +3 -3
  128. package/Libraries/Image/Image.android.js +4 -1
  129. package/Libraries/Image/Image.d.ts +63 -2
  130. package/Libraries/Image/Image.ios.js +3 -0
  131. package/Libraries/Image/Image.win32.js +3 -0
  132. package/Libraries/Image/ImageBackground.js +1 -0
  133. package/Libraries/Image/ImageProps.js +1 -1
  134. package/Libraries/Image/ImageViewNativeComponent.js +4 -4
  135. package/Libraries/Image/RelativeImageStub.js +1 -1
  136. package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
  137. package/Libraries/Image/resolveAssetSource.js +1 -1
  138. package/Libraries/Inspector/DevtoolsOverlay.js +29 -19
  139. package/Libraries/Inspector/ElementBox.js +4 -1
  140. package/Libraries/Inspector/Inspector.js +5 -6
  141. package/Libraries/Inspector/Inspector.win32.js +7 -6
  142. package/Libraries/Inspector/InspectorOverlay.js +3 -3
  143. package/Libraries/Inspector/InspectorOverlay.win32.js +2 -1
  144. package/Libraries/Inspector/NetworkOverlay.js +1 -1
  145. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
  146. package/Libraries/Interaction/PanResponder.js +5 -6
  147. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
  148. package/Libraries/Linking/Linking.js +1 -4
  149. package/Libraries/Lists/FillRateHelper.js +4 -238
  150. package/Libraries/Lists/FlatList.d.ts +15 -22
  151. package/Libraries/Lists/FlatList.js +9 -6
  152. package/Libraries/Lists/SectionList.d.ts +10 -6
  153. package/Libraries/Lists/SectionList.js +5 -3
  154. package/Libraries/Lists/SectionListModern.js +3 -3
  155. package/Libraries/Lists/ViewabilityHelper.js +8 -344
  156. package/Libraries/Lists/VirtualizeUtils.js +4 -244
  157. package/Libraries/Lists/VirtualizedList.js +10 -1867
  158. package/Libraries/Lists/VirtualizedListContext.js +6 -104
  159. package/Libraries/Lists/VirtualizedSectionList.js +9 -602
  160. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
  161. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  162. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  163. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  164. package/Libraries/LogBox/LogBox.js +1 -1
  165. package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
  166. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +168 -0
  167. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +3 -0
  168. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +193 -0
  169. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
  170. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
  171. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +7 -3
  172. package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
  173. package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
  174. package/Libraries/Modal/Modal.js +2 -2
  175. package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
  176. package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
  177. package/Libraries/NativeComponent/BaseViewConfig.win32.js +43 -19
  178. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
  179. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  180. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
  181. package/Libraries/Network/RCTNetworking.android.js +2 -2
  182. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  183. package/Libraries/Network/RCTNetworking.win32.js +1 -1
  184. package/Libraries/Network/XMLHttpRequest.js +1 -1
  185. package/Libraries/Pressability/Pressability.js +11 -5
  186. package/Libraries/Pressability/Pressability.win32.js +9 -3
  187. package/Libraries/ReactNative/AppContainer.js +7 -1
  188. package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
  189. package/Libraries/ReactNative/AppRegistry.js +10 -13
  190. package/Libraries/ReactNative/FabricUIManager.js +24 -8
  191. package/Libraries/ReactNative/NativeUIManager.js +5 -5
  192. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
  193. package/Libraries/ReactNative/UIManager.js +142 -1
  194. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
  195. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  196. package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
  197. package/Libraries/ReactNative/requireNativeComponent.js +1 -1
  198. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
  199. package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
  200. package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
  201. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
  202. package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
  203. package/Libraries/Renderer/shims/ReactNativeTypes.js +38 -20
  204. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
  205. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  206. package/Libraries/Share/Share.js +1 -1
  207. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  208. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  209. package/Libraries/StyleSheet/StyleSheet.win32.js +1 -1
  210. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
  211. package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
  212. package/Libraries/StyleSheet/flattenStyle.js +2 -0
  213. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  214. package/Libraries/StyleSheet/processColor.js +1 -1
  215. package/Libraries/Text/Text.d.ts +12 -2
  216. package/Libraries/Text/Text.js +50 -41
  217. package/Libraries/Text/TextProps.js +3 -4
  218. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
  219. package/Libraries/Types/CodegenTypes.js +1 -0
  220. package/Libraries/UTFSequence.js +3 -1
  221. package/Libraries/Utilities/Appearance.d.ts +10 -0
  222. package/Libraries/Utilities/Appearance.js +13 -0
  223. package/Libraries/Utilities/Dimensions.js +1 -1
  224. package/Libraries/Utilities/Dimensions.win32.js +1 -1
  225. package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
  226. package/Libraries/Utilities/HMRClient.js +16 -10
  227. package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
  228. package/Libraries/Utilities/IPerformanceLogger.js +49 -0
  229. package/Libraries/Utilities/LoadingView.android.js +28 -11
  230. package/Libraries/Utilities/NativeAppearance.js +1 -0
  231. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
  232. package/Libraries/Utilities/PixelRatio.js +2 -2
  233. package/Libraries/Utilities/Platform.win32.js +1 -1
  234. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  235. package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
  236. package/Libraries/Utilities/codegenNativeCommands.js +2 -0
  237. package/Libraries/Utilities/createPerformanceLogger.js +55 -43
  238. package/Libraries/Utilities/stringifySafe.js +2 -7
  239. package/Libraries/Utilities/useColorScheme.js +1 -1
  240. package/Libraries/Utilities/useWindowDimensions.js +3 -3
  241. package/Libraries/WebPerformance/EventCounts.js +78 -0
  242. package/Libraries/WebPerformance/MemoryInfo.js +54 -0
  243. package/Libraries/WebPerformance/NativePerformance.js +38 -0
  244. package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
  245. package/Libraries/WebPerformance/Performance.js +312 -0
  246. package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
  247. package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
  248. package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
  249. package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
  250. package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
  251. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
  252. package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
  253. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  254. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  255. package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
  256. package/Libraries/vendor/emitter/EventEmitter.js +9 -1
  257. package/flow/global.js +29 -4
  258. package/flow/jest.js +258 -164
  259. package/index.js +56 -42
  260. package/index.win32.js +56 -42
  261. package/interface.js +1 -1
  262. package/jest/local-setup.js +33 -0
  263. package/jest/mockComponent.js +4 -2
  264. package/jest/mockNativeComponent.js +1 -1
  265. package/jest/mockScrollView.js +2 -1
  266. package/jest/react-native-env.js +1 -3
  267. package/jest/setup.js +11 -8
  268. package/overrides.json +115 -85
  269. package/package.json +38 -28
  270. package/rn-get-polyfills.js +1 -1
  271. package/src/Libraries/Components/TextInput/TextInput.Types.win32.ts +68 -0
  272. package/src/Libraries/Components/View/ViewAccessibility.win32.d.ts +5 -5
  273. package/src/Libraries/Components/View/ViewPropTypes.win32.d.ts +1 -1
  274. package/types/index.d.ts +2 -6
  275. package/types/modules/Codegen.d.ts +4 -4
  276. package/types/modules/globals.d.ts +27 -25
  277. package/types/public/DeprecatedPropertiesAlias.d.ts +0 -20
  278. package/types/public/ReactNativeRenderer.d.ts +2 -7
  279. package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
  280. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
  281. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
  282. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
  283. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
  284. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
  285. package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
  286. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
  287. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
  288. package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +0 -47
  289. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
  290. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
  291. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
  292. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
  293. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
  294. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +0 -45
  295. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
  296. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
  297. package/Libraries/Components/Slider/Slider.d.ts +0 -132
  298. package/Libraries/Components/Slider/Slider.js +0 -282
  299. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
  300. package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +0 -23
  301. package/Libraries/Interaction/Batchinator.js +0 -76
  302. package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
  303. package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
  304. package/Libraries/Interaction/PanResponder.flow.js +0 -257
  305. package/Libraries/Lists/CellRenderMask.js +0 -155
  306. package/Libraries/Lists/ChildListCollection.js +0 -72
  307. package/Libraries/Lists/StateSafePureComponent.js +0 -85
  308. package/Libraries/Lists/VirtualizedList.d.ts +0 -347
  309. package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
  310. package/Libraries/Lists/VirtualizedListProps.js +0 -279
  311. package/Libraries/Performance/PureComponentDebug.js +0 -74
  312. package/Libraries/Reliability/UserFlow.js +0 -158
  313. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
  314. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
  315. package/Libraries/Utilities/MatrixMath.js +0 -748
  316. package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
  317. package/Libraries/Utilities/clamp.js +0 -23
  318. package/Libraries/Utilities/deprecatedPropType.js +0 -36
  319. package/Libraries/Utilities/groupByEveryN.js +0 -51
  320. package/Libraries/Utilities/mergeIntoFast.js +0 -26
  321. package/Libraries/Utilities/setAndForwardRef.js +0 -71
  322. package/Libraries/Utilities/truncate.js +0 -51
  323. package/flow/JSITimerInternalType.js +0 -30
  324. package/flow/use-sync-external-store.js +0 -19
@@ -16,6 +16,8 @@ import type {PlatformConfig} from '../AnimatedPlatformConfig';
16
16
  import type AnimatedNode from './AnimatedNode';
17
17
 
18
18
  import normalizeColor from '../../StyleSheet/normalizeColor';
19
+ import processColor from '../../StyleSheet/processColor';
20
+ import Easing from '../Easing';
19
21
  import NativeAnimatedHelper from '../NativeAnimatedHelper';
20
22
  import AnimatedWithChildren from './AnimatedWithChildren';
21
23
  import invariant from 'invariant';
@@ -31,39 +33,17 @@ export type InterpolationConfigType<OutputT: number | string> = $ReadOnly<{
31
33
  extrapolateRight?: ExtrapolateType,
32
34
  }>;
33
35
 
34
- const linear = (t: number) => t;
35
-
36
36
  /**
37
37
  * Very handy helper to map input ranges to output ranges with an easing
38
38
  * function and custom behavior outside of the ranges.
39
39
  */
40
- function createInterpolation<OutputT: number | string>(
41
- config: InterpolationConfigType<OutputT>,
42
- ): (input: number) => OutputT {
43
- if (config.outputRange && typeof config.outputRange[0] === 'string') {
44
- return (createInterpolationFromStringOutputRange((config: any)): any);
45
- }
46
-
40
+ function createNumericInterpolation(
41
+ config: InterpolationConfigType<number>,
42
+ ): (input: number) => number {
47
43
  const outputRange: $ReadOnlyArray<number> = (config.outputRange: any);
48
-
49
44
  const inputRange = config.inputRange;
50
45
 
51
- if (__DEV__) {
52
- checkInfiniteRange('outputRange', outputRange);
53
- checkInfiniteRange('inputRange', inputRange);
54
- checkValidInputRange(inputRange);
55
-
56
- invariant(
57
- inputRange.length === outputRange.length,
58
- 'inputRange (' +
59
- inputRange.length +
60
- ') and outputRange (' +
61
- outputRange.length +
62
- ') must have the same length',
63
- );
64
- }
65
-
66
- const easing = config.easing || linear;
46
+ const easing = config.easing || Easing.linear;
67
47
 
68
48
  let extrapolateLeft: ExtrapolateType = 'extend';
69
49
  if (config.extrapolateLeft !== undefined) {
@@ -167,24 +147,49 @@ function interpolate(
167
147
  return result;
168
148
  }
169
149
 
170
- function colorToRgba(input: string): string {
171
- let normalizedColor = normalizeColor(input);
172
- if (normalizedColor === null || typeof normalizedColor !== 'number') {
173
- return input;
174
- }
150
+ const numericComponentRegex = /[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/g;
175
151
 
176
- normalizedColor = normalizedColor || 0;
177
-
178
- const r = (normalizedColor & 0xff000000) >>> 24;
179
- const g = (normalizedColor & 0x00ff0000) >>> 16;
180
- const b = (normalizedColor & 0x0000ff00) >>> 8;
181
- const a = (normalizedColor & 0x000000ff) / 255;
152
+ // Maps string inputs an RGBA color or an array of numeric components
153
+ function mapStringToNumericComponents(
154
+ input: string,
155
+ ):
156
+ | {isColor: true, components: [number, number, number, number]}
157
+ | {isColor: false, components: $ReadOnlyArray<number | string>} {
158
+ let normalizedColor = normalizeColor(input);
159
+ invariant(
160
+ normalizedColor == null || typeof normalizedColor !== 'object',
161
+ 'PlatformColors are not supported',
162
+ );
182
163
 
183
- return `rgba(${r}, ${g}, ${b}, ${a})`;
164
+ if (typeof normalizedColor === 'number') {
165
+ normalizedColor = normalizedColor || 0;
166
+ const r = (normalizedColor & 0xff000000) >>> 24;
167
+ const g = (normalizedColor & 0x00ff0000) >>> 16;
168
+ const b = (normalizedColor & 0x0000ff00) >>> 8;
169
+ const a = (normalizedColor & 0x000000ff) / 255;
170
+ return {isColor: true, components: [r, g, b, a]};
171
+ } else {
172
+ const components: Array<string | number> = [];
173
+ let lastMatchEnd = 0;
174
+ let match: RegExp$matchResult;
175
+ while ((match = (numericComponentRegex.exec(input): any)) != null) {
176
+ if (match.index > lastMatchEnd) {
177
+ components.push(input.substring(lastMatchEnd, match.index));
178
+ }
179
+ components.push(parseFloat(match[0]));
180
+ lastMatchEnd = match.index + match[0].length;
181
+ }
182
+ invariant(
183
+ components.length > 0,
184
+ 'outputRange must contain color or value with numeric component',
185
+ );
186
+ if (lastMatchEnd < input.length) {
187
+ components.push(input.substring(lastMatchEnd, input.length));
188
+ }
189
+ return {isColor: false, components};
190
+ }
184
191
  }
185
192
 
186
- const stringShapeRegex = /[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/g;
187
-
188
193
  /**
189
194
  * Supports string shapes by extracting numbers so new values can be computed,
190
195
  * and recombines those values into new strings of the same shape. Supports
@@ -193,77 +198,70 @@ const stringShapeRegex = /[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/g;
193
198
  * rgba(123, 42, 99, 0.36) // colors
194
199
  * -45deg // values with units
195
200
  */
196
- function createInterpolationFromStringOutputRange(
201
+ function createStringInterpolation(
197
202
  config: InterpolationConfigType<string>,
198
203
  ): (input: number) => string {
199
- let outputRange: Array<string> = (config.outputRange: any);
200
- invariant(outputRange.length >= 2, 'Bad output range');
201
- outputRange = outputRange.map(colorToRgba);
202
- checkPattern(outputRange);
203
-
204
- // ['rgba(0, 100, 200, 0)', 'rgba(50, 150, 250, 0.5)']
205
- // ->
206
- // [
207
- // [0, 50],
208
- // [100, 150],
209
- // [200, 250],
210
- // [0, 0.5],
211
- // ]
212
- /* $FlowFixMe[incompatible-use] (>=0.18.0): `outputRange[0].match()` can
213
- * return `null`. Need to guard against this possibility. */
214
- const outputRanges = outputRange[0].match(stringShapeRegex).map(() => []);
215
- outputRange.forEach(value => {
216
- /* $FlowFixMe[incompatible-use] (>=0.18.0): `value.match()` can return
217
- * `null`. Need to guard against this possibility. */
218
- value.match(stringShapeRegex).forEach((number, i) => {
219
- outputRanges[i].push(+number);
220
- });
221
- });
222
-
223
- const interpolations = outputRange[0]
224
- .match(stringShapeRegex)
225
- /* $FlowFixMe[incompatible-use] (>=0.18.0): `outputRange[0].match()` can
226
- * return `null`. Need to guard against this possibility. */
227
- /* $FlowFixMe[incompatible-call] (>=0.18.0): `outputRange[0].match()` can
228
- * return `null`. Need to guard against this possibility. */
229
- .map((value, i) => {
230
- return createInterpolation({
231
- ...config,
232
- outputRange: outputRanges[i],
233
- });
234
- });
204
+ invariant(config.outputRange.length >= 2, 'Bad output range');
205
+ const outputRange = config.outputRange.map(mapStringToNumericComponents);
235
206
 
236
- // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to
237
- // round the opacity (4th column).
238
- const shouldRound = isRgbOrRgba(outputRange[0]);
239
-
240
- return input => {
241
- let i = 0;
242
- // 'rgba(0, 100, 200, 0)'
243
- // ->
244
- // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'
245
- return outputRange[0].replace(stringShapeRegex, () => {
246
- let val = +interpolations[i++](input);
247
- if (shouldRound) {
248
- val = i < 4 ? Math.round(val) : Math.round(val * 1000) / 1000;
249
- }
250
- return String(val);
251
- });
252
- };
253
- }
254
-
255
- function isRgbOrRgba(range: string) {
256
- return typeof range === 'string' && range.startsWith('rgb');
257
- }
258
-
259
- function checkPattern(arr: $ReadOnlyArray<string>) {
260
- const pattern = arr[0].replace(stringShapeRegex, '');
261
- for (let i = 1; i < arr.length; ++i) {
207
+ const isColor = outputRange[0].isColor;
208
+ if (__DEV__) {
262
209
  invariant(
263
- pattern === arr[i].replace(stringShapeRegex, ''),
264
- 'invalid pattern ' + arr[0] + ' and ' + arr[i],
210
+ outputRange.every(output => output.isColor === isColor),
211
+ 'All elements of output range should either be a color or a string with numeric components',
212
+ );
213
+ const firstOutput = outputRange[0].components;
214
+ invariant(
215
+ outputRange.every(
216
+ output => output.components.length === firstOutput.length,
217
+ ),
218
+ 'All elements of output range should have the same number of components',
219
+ );
220
+ invariant(
221
+ outputRange.every(output =>
222
+ output.components.every(
223
+ (component, i) =>
224
+ // $FlowIgnoreMe[invalid-compare]
225
+ typeof component === 'number' || component === firstOutput[i],
226
+ ),
227
+ ),
228
+ 'All elements of output range should have the same non-numeric components',
265
229
  );
266
230
  }
231
+
232
+ const numericComponents: $ReadOnlyArray<$ReadOnlyArray<number>> =
233
+ outputRange.map(output =>
234
+ isColor
235
+ ? // $FlowIgnoreMe[incompatible-call]
236
+ output.components
237
+ : // $FlowIgnoreMe[incompatible-call]
238
+ output.components.filter(c => typeof c === 'number'),
239
+ );
240
+ const interpolations = numericComponents[0].map((_, i) =>
241
+ createNumericInterpolation({
242
+ ...config,
243
+ outputRange: numericComponents.map(components => components[i]),
244
+ }),
245
+ );
246
+ if (!isColor) {
247
+ return input => {
248
+ const values = interpolations.map(interpolation => interpolation(input));
249
+ let i = 0;
250
+ return outputRange[0].components
251
+ .map(c => (typeof c === 'number' ? values[i++] : c))
252
+ .join('');
253
+ };
254
+ } else {
255
+ return input => {
256
+ const result = interpolations.map((interpolation, i) => {
257
+ const value = interpolation(input);
258
+ // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to
259
+ // round the opacity (4th column).
260
+ return i < 3 ? Math.round(value) : Math.round(value * 1000) / 1000;
261
+ });
262
+ return `rgba(${result[0]}, ${result[1]}, ${result[2]}, ${result[3]})`;
263
+ };
264
+ }
267
265
  }
268
266
 
269
267
  function findRange(input: number, inputRange: $ReadOnlyArray<number>) {
@@ -276,6 +274,24 @@ function findRange(input: number, inputRange: $ReadOnlyArray<number>) {
276
274
  return i - 1;
277
275
  }
278
276
 
277
+ function checkValidRanges<OutputT: number | string>(
278
+ inputRange: $ReadOnlyArray<number>,
279
+ outputRange: $ReadOnlyArray<OutputT>,
280
+ ) {
281
+ checkInfiniteRange('outputRange', outputRange);
282
+ checkInfiniteRange('inputRange', inputRange);
283
+ checkValidInputRange(inputRange);
284
+
285
+ invariant(
286
+ inputRange.length === outputRange.length,
287
+ 'inputRange (' +
288
+ inputRange.length +
289
+ ') and outputRange (' +
290
+ outputRange.length +
291
+ ') must have the same length',
292
+ );
293
+ }
294
+
279
295
  function checkValidInputRange(arr: $ReadOnlyArray<number>) {
280
296
  invariant(arr.length >= 2, 'inputRange must have at least 2 elements');
281
297
  const message =
@@ -285,7 +301,10 @@ function checkValidInputRange(arr: $ReadOnlyArray<number>) {
285
301
  }
286
302
  }
287
303
 
288
- function checkInfiniteRange(name: string, arr: $ReadOnlyArray<number>) {
304
+ function checkInfiniteRange<OutputT: number | string>(
305
+ name: string,
306
+ arr: $ReadOnlyArray<OutputT>,
307
+ ) {
289
308
  invariant(arr.length >= 2, name + ' must have at least 2 elements');
290
309
  invariant(
291
310
  arr.length !== 2 || arr[0] !== -Infinity || arr[1] !== Infinity,
@@ -294,6 +313,7 @@ function checkInfiniteRange(name: string, arr: $ReadOnlyArray<number>) {
294
313
  * doesn't cleanly convert to a string, like undefined, null, and object,
295
314
  * etc. If you really mean this implicit string conversion, you can do
296
315
  * something like String(myThing) */
316
+ // $FlowFixMe[unsafe-addition]
297
317
  name + 'cannot be ]-infinity;+infinity[ ' + arr,
298
318
  );
299
319
  }
@@ -301,20 +321,34 @@ function checkInfiniteRange(name: string, arr: $ReadOnlyArray<number>) {
301
321
  export default class AnimatedInterpolation<
302
322
  OutputT: number | string,
303
323
  > extends AnimatedWithChildren {
304
- // Export for testing.
305
- static __createInterpolation: (
306
- config: InterpolationConfigType<OutputT>,
307
- ) => (input: number) => OutputT = createInterpolation;
308
-
309
324
  _parent: AnimatedNode;
310
325
  _config: InterpolationConfigType<OutputT>;
311
- _interpolation: (input: number) => OutputT;
326
+ _interpolation: ?(input: number) => OutputT;
312
327
 
313
328
  constructor(parent: AnimatedNode, config: InterpolationConfigType<OutputT>) {
314
329
  super();
315
330
  this._parent = parent;
316
331
  this._config = config;
317
- this._interpolation = createInterpolation(config);
332
+
333
+ if (__DEV__) {
334
+ checkValidRanges(config.inputRange, config.outputRange);
335
+
336
+ // Create interpolation eagerly in dev, so we can signal errors faster
337
+ // even when using the native driver
338
+ this._getInterpolation();
339
+ }
340
+ }
341
+
342
+ _getInterpolation(): number => OutputT {
343
+ if (!this._interpolation) {
344
+ const config = this._config;
345
+ if (config.outputRange && typeof config.outputRange[0] === 'string') {
346
+ this._interpolation = (createStringInterpolation((config: any)): any);
347
+ } else {
348
+ this._interpolation = (createNumericInterpolation((config: any)): any);
349
+ }
350
+ }
351
+ return this._interpolation;
318
352
  }
319
353
 
320
354
  __makeNative(platformConfig: ?PlatformConfig) {
@@ -322,13 +356,13 @@ export default class AnimatedInterpolation<
322
356
  super.__makeNative(platformConfig);
323
357
  }
324
358
 
325
- __getValue(): number | string {
359
+ __getValue(): OutputT {
326
360
  const parentValue: number = this._parent.__getValue();
327
361
  invariant(
328
362
  typeof parentValue === 'number',
329
363
  'Cannot interpolate an input which is not a number.',
330
364
  );
331
- return this._interpolation(parentValue);
365
+ return this._getInterpolation()(parentValue);
332
366
  }
333
367
 
334
368
  interpolate<NewOutputT: number | string>(
@@ -346,19 +380,31 @@ export default class AnimatedInterpolation<
346
380
  super.__detach();
347
381
  }
348
382
 
349
- __transformDataType(range: $ReadOnlyArray<OutputT>): Array<any> {
350
- return range.map(NativeAnimatedHelper.transformDataType);
351
- }
352
-
353
383
  __getNativeConfig(): any {
354
384
  if (__DEV__) {
355
385
  NativeAnimatedHelper.validateInterpolation(this._config);
356
386
  }
357
387
 
388
+ // Only the `outputRange` can contain strings so we don't need to transform `inputRange` here
389
+ let outputRange = this._config.outputRange;
390
+ let outputType = null;
391
+ if (typeof outputRange[0] === 'string') {
392
+ // $FlowIgnoreMe[incompatible-cast]
393
+ outputRange = ((outputRange: $ReadOnlyArray<string>).map(value => {
394
+ const processedColor = processColor(value);
395
+ if (typeof processedColor === 'number') {
396
+ outputType = 'color';
397
+ return processedColor;
398
+ } else {
399
+ return NativeAnimatedHelper.transformDataType(value);
400
+ }
401
+ }): any);
402
+ }
403
+
358
404
  return {
359
405
  inputRange: this._config.inputRange,
360
- // Only the `outputRange` can contain strings so we don't need to transform `inputRange` here
361
- outputRange: this.__transformDataType(this._config.outputRange),
406
+ outputRange,
407
+ outputType,
362
408
  extrapolateLeft:
363
409
  this._config.extrapolateLeft || this._config.extrapolate || 'extend',
364
410
  extrapolateRight:
@@ -12,7 +12,6 @@
12
12
 
13
13
  import type {PlatformConfig} from '../AnimatedPlatformConfig';
14
14
 
15
- import ReactNativeFeatureFlags from '../../ReactNative/ReactNativeFeatureFlags';
16
15
  import NativeAnimatedHelper from '../NativeAnimatedHelper';
17
16
  import invariant from 'invariant';
18
17
 
@@ -30,9 +29,7 @@ export default class AnimatedNode {
30
29
  __nativeAnimatedValueListener: ?any;
31
30
  __attach(): void {}
32
31
  __detach(): void {
33
- if (ReactNativeFeatureFlags.removeListenersOnDetach()) {
34
- this.removeAllListeners();
35
- }
32
+ this.removeAllListeners();
36
33
  if (this.__isNative && this.__nativeTag != null) {
37
34
  NativeAnimatedHelper.API.dropAnimatedNode(this.__nativeTag);
38
35
  this.__nativeTag = undefined;
@@ -44,7 +41,7 @@ export default class AnimatedNode {
44
41
  }
45
42
  __addChild(child: AnimatedNode) {}
46
43
  __removeChild(child: AnimatedNode) {}
47
- __getChildren(): Array<AnimatedNode> {
44
+ __getChildren(): $ReadOnlyArray<AnimatedNode> {
48
45
  return [];
49
46
  }
50
47
 
@@ -186,6 +183,7 @@ export default class AnimatedNode {
186
183
  'This JS animated node type cannot be used as native animated node',
187
184
  );
188
185
  }
186
+
189
187
  toJSON(): any {
190
188
  return this.__getValue();
191
189
  }
@@ -90,14 +90,15 @@ export default class AnimatedProps extends AnimatedNode {
90
90
  }
91
91
 
92
92
  __makeNative(platformConfig: ?PlatformConfig): void {
93
+ for (const key in this._props) {
94
+ const value = this._props[key];
95
+ if (value instanceof AnimatedNode) {
96
+ value.__makeNative(platformConfig);
97
+ }
98
+ }
99
+
93
100
  if (!this.__isNative) {
94
101
  this.__isNative = true;
95
- for (const key in this._props) {
96
- const value = this._props[key];
97
- if (value instanceof AnimatedNode) {
98
- value.__makeNative(platformConfig);
99
- }
100
- }
101
102
 
102
103
  // Since this does not call the super.__makeNative, we need to store the
103
104
  // supplied platformConfig here, before calling __connectAnimatedView
@@ -13,24 +13,54 @@
13
13
  import type {PlatformConfig} from '../AnimatedPlatformConfig';
14
14
 
15
15
  import flattenStyle from '../../StyleSheet/flattenStyle';
16
+ import Platform from '../../Utilities/Platform';
16
17
  import NativeAnimatedHelper from '../NativeAnimatedHelper';
17
18
  import AnimatedNode from './AnimatedNode';
18
19
  import AnimatedTransform from './AnimatedTransform';
19
20
  import AnimatedWithChildren from './AnimatedWithChildren';
20
21
 
22
+ function createAnimatedStyle(inputStyle: any): Object {
23
+ // $FlowFixMe[underconstrained-implicit-instantiation]
24
+ const style = flattenStyle(inputStyle);
25
+ const animatedStyles: any = {};
26
+ for (const key in style) {
27
+ const value = style[key];
28
+ if (key === 'transform') {
29
+ animatedStyles[key] = new AnimatedTransform(value);
30
+ } else if (value instanceof AnimatedNode) {
31
+ animatedStyles[key] = value;
32
+ } else if (value && !Array.isArray(value) && typeof value === 'object') {
33
+ animatedStyles[key] = createAnimatedStyle(value);
34
+ }
35
+ }
36
+ return animatedStyles;
37
+ }
38
+
39
+ function createStyleWithAnimatedTransform(inputStyle: any): Object {
40
+ // $FlowFixMe[underconstrained-implicit-instantiation]
41
+ let style = flattenStyle(inputStyle) || ({}: {[string]: any});
42
+
43
+ if (style.transform) {
44
+ style = {
45
+ ...style,
46
+ transform: new AnimatedTransform(style.transform),
47
+ };
48
+ }
49
+ return style;
50
+ }
51
+
21
52
  export default class AnimatedStyle extends AnimatedWithChildren {
53
+ _inputStyle: any;
22
54
  _style: Object;
23
55
 
24
56
  constructor(style: any) {
25
57
  super();
26
- style = flattenStyle(style) || ({}: {[string]: any});
27
- if (style.transform) {
28
- style = {
29
- ...style,
30
- transform: new AnimatedTransform(style.transform),
31
- };
58
+ if (Platform.OS === 'web') {
59
+ this._inputStyle = style;
60
+ this._style = createAnimatedStyle(style);
61
+ } else {
62
+ this._style = createStyleWithAnimatedTransform(style);
32
63
  }
33
- this._style = style;
34
64
  }
35
65
 
36
66
  // Recursively get values for nested styles (like iOS's shadowOffset)
@@ -50,7 +80,11 @@ export default class AnimatedStyle extends AnimatedWithChildren {
50
80
  return updatedStyle;
51
81
  }
52
82
 
53
- __getValue(): Object {
83
+ __getValue(): Object | Array<Object> {
84
+ if (Platform.OS === 'web') {
85
+ return [this._inputStyle, this._walkStyleAndGetValues(this._style)];
86
+ }
87
+
54
88
  return this._walkStyleAndGetValues(this._style);
55
89
  }
56
90
 
@@ -68,7 +68,7 @@ export default class AnimatedTransform extends AnimatedWithChildren {
68
68
  }
69
69
 
70
70
  __getNativeConfig(): any {
71
- const transConfigs = [];
71
+ const transConfigs: Array<any> = [];
72
72
 
73
73
  this._transforms.forEach(transform => {
74
74
  for (const key in transform) {
@@ -48,21 +48,18 @@ const NativeAnimatedAPI = NativeAnimatedHelper.API;
48
48
  * this two-phases process is to deal with composite props such as
49
49
  * transform which can receive values from multiple parents.
50
50
  */
51
- function _flush(rootNode: AnimatedValue): void {
52
- const animatedStyles = new Set<AnimatedValue | AnimatedNode>();
53
- function findAnimatedStyles(node: AnimatedValue | AnimatedNode) {
54
- /* $FlowFixMe[prop-missing] (>=0.68.0 site=react_native_fb) This comment
55
- * suppresses an error found when Flow v0.68 was deployed. To see the error
56
- * delete this comment and run Flow. */
51
+ export function flushValue(rootNode: AnimatedNode): void {
52
+ const leaves = new Set<{update: () => void, ...}>();
53
+ function findAnimatedStyles(node: AnimatedNode) {
54
+ // $FlowFixMe[prop-missing]
57
55
  if (typeof node.update === 'function') {
58
- animatedStyles.add(node);
56
+ leaves.add((node: any));
59
57
  } else {
60
58
  node.__getChildren().forEach(findAnimatedStyles);
61
59
  }
62
60
  }
63
61
  findAnimatedStyles(rootNode);
64
- // $FlowFixMe[prop-missing]
65
- animatedStyles.forEach(animatedStyle => animatedStyle.update());
62
+ leaves.forEach(leaf => leaf.update());
66
63
  }
67
64
 
68
65
  /**
@@ -91,7 +88,6 @@ export default class AnimatedValue extends AnimatedWithChildren {
91
88
  _animation: ?Animation;
92
89
  _tracking: ?AnimatedTracking;
93
90
 
94
- // $FlowFixMe[missing-local-annot]
95
91
  constructor(value: number, config?: ?AnimatedValueConfig) {
96
92
  super();
97
93
  if (typeof value !== 'number') {
@@ -291,9 +287,9 @@ export default class AnimatedValue extends AnimatedWithChildren {
291
287
 
292
288
  this._value = value;
293
289
  if (flush) {
294
- _flush(this);
290
+ flushValue(this);
295
291
  }
296
- super.__callListeners(this.__getValue());
292
+ this.__callListeners(this.__getValue());
297
293
  }
298
294
 
299
295
  __getNativeConfig(): Object {
@@ -70,7 +70,7 @@ export default class AnimatedWithChildren extends AnimatedNode {
70
70
  }
71
71
  }
72
72
 
73
- __getChildren(): Array<AnimatedNode> {
73
+ __getChildren(): $ReadOnlyArray<AnimatedNode> {
74
74
  return this._children;
75
75
  }
76
76
 
@@ -10,6 +10,7 @@
10
10
 
11
11
  'use strict';
12
12
 
13
+ import {isPublicInstance as isFabricPublicInstance} from '../Renderer/public/ReactFabricPublicInstanceUtils';
13
14
  import useRefEffect from '../Utilities/useRefEffect';
14
15
  import {AnimatedEvent} from './AnimatedEvent';
15
16
  import NativeAnimatedHelper from './NativeAnimatedHelper';
@@ -52,7 +53,7 @@ export default function useAnimatedProps<TProps: {...}, TInstance>(
52
53
  // 2) Update `onUpdateRef`.
53
54
  // 3) Update listeners for `AnimatedEvent` props.
54
55
  //
55
- // Ideally, each of these would be separat "effects" so that they are not
56
+ // Ideally, each of these would be separate "effects" so that they are not
56
57
  // unnecessarily re-run when irrelevant dependencies change. For example, we
57
58
  // should be able to hoist all `AnimatedEvent` props and only do #3 if either
58
59
  // the `AnimatedEvent` props change or `instance` changes.
@@ -183,7 +184,7 @@ function getEventTarget<TInstance>(instance: TInstance): TInstance {
183
184
  // $FlowFixMe[unclear-type] - Legacy instance assumptions.
184
185
  function isFabricInstance(instance: any): boolean {
185
186
  return (
186
- hasFabricHandle(instance) ||
187
+ isFabricPublicInstance(instance) ||
187
188
  // Some components have a setNativeProps function but aren't a host component
188
189
  // such as lists like FlatList and SectionList. These should also use
189
190
  // forceUpdate in Fabric since setNativeProps doesn't exist on the underlying
@@ -192,13 +193,9 @@ function isFabricInstance(instance: any): boolean {
192
193
  // If these components end up using forwardRef then these hacks can go away
193
194
  // as instance would actually be the underlying host component and the above check
194
195
  // would be sufficient.
195
- hasFabricHandle(instance?.getNativeScrollRef?.()) ||
196
- hasFabricHandle(instance?.getScrollResponder?.()?.getNativeScrollRef?.())
196
+ isFabricPublicInstance(instance?.getNativeScrollRef?.()) ||
197
+ isFabricPublicInstance(
198
+ instance?.getScrollResponder?.()?.getNativeScrollRef?.(),
199
+ )
197
200
  );
198
201
  }
199
-
200
- // $FlowFixMe[unclear-type] - Legacy instance assumptions.
201
- function hasFabricHandle(instance: any): boolean {
202
- // eslint-disable-next-line dot-notation
203
- return instance?.['_internalInstanceHandle']?.stateNode?.canonical != null;
204
- }
@@ -207,7 +207,7 @@ class MessageQueue {
207
207
  });
208
208
  warnOnce(
209
209
  'excessive-number-of-pending-callbacks',
210
- `Please report: Excessive number of pending callbacks: ${
210
+ `Excessive number of pending callbacks: ${
211
211
  this._successCallbacks.size
212
212
  }. Some pending callbacks that might have leaked by never being called from native code: ${stringifySafe(
213
213
  info,
@@ -381,6 +381,7 @@ class MessageQueue {
381
381
  return (
382
382
  // $FlowFixMe[cannot-resolve-name]
383
383
  typeof DebuggerInternal !== 'undefined' &&
384
+ // $FlowFixMe[cannot-resolve-name]
384
385
  DebuggerInternal.shouldPauseOnThrow === true
385
386
  );
386
387
  }
@@ -8,7 +8,7 @@
8
8
  */
9
9
 
10
10
  /**
11
- * Interface for NativeModules which allows to augment NativeModules with type informations.
11
+ * Interface for NativeModules which allows to augment NativeModules with type information.
12
12
  * See react-native-sensor-manager for example.
13
13
  */
14
14
  interface NativeModulesStatic {
@@ -134,6 +134,7 @@ function genMethod(moduleID: number, methodID: number, type: MethodType) {
134
134
  const onSuccess: ?(mixed) => void = hasSuccessCallback ? lastArg : null;
135
135
  // $FlowFixMe[incompatible-type]
136
136
  const onFail: ?(mixed) => void = hasErrorCallback ? secondLastArg : null;
137
+ // $FlowFixMe[unsafe-addition]
137
138
  const callbackCount = hasSuccessCallback + hasErrorCallback;
138
139
  const newArgs = args.slice(0, args.length - callbackCount);
139
140
  if (type === 'sync') {