react-native-windows 0.70.7 → 0.71.0-preview.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.flowconfig +3 -6
- package/Directory.Build.props +2 -2
- package/Folly/Folly.vcxproj +4 -2
- package/Folly/Folly.vcxproj.filters +7 -3
- package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +59 -43
- package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +192 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +7 -5
- package/Folly/cgmanifest.json +2 -1
- package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +80 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +4 -3
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
- package/Libraries/Alert/Alert.d.ts +90 -0
- package/Libraries/Alert/Alert.js +7 -1
- package/Libraries/Alert/Alert.windows.js +2 -1
- package/Libraries/Alert/NativeAlertManager.js +2 -0
- package/Libraries/Alert/RCTAlertManager.ios.js +2 -1
- package/Libraries/Animated/Animated.d.ts +587 -0
- package/Libraries/Animated/Animated.js +13 -11
- package/Libraries/Animated/AnimatedEvent.js +12 -17
- package/Libraries/Animated/AnimatedImplementation.js +21 -23
- package/Libraries/Animated/AnimatedMock.js +11 -13
- package/Libraries/Animated/AnimatedWeb.js +2 -2
- package/Libraries/Animated/Easing.d.ts +37 -0
- package/Libraries/Animated/Easing.js +2 -2
- package/Libraries/Animated/NativeAnimatedHelper.js +32 -22
- package/Libraries/Animated/NativeAnimatedModule.js +1 -0
- package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
- package/Libraries/Animated/SpringConfig.js +2 -7
- package/Libraries/Animated/animations/Animation.js +3 -4
- package/Libraries/Animated/animations/DecayAnimation.js +5 -8
- package/Libraries/Animated/animations/SpringAnimation.js +9 -14
- package/Libraries/Animated/animations/TimingAnimation.js +9 -13
- package/Libraries/Animated/bezier.js +2 -2
- package/Libraries/Animated/components/AnimatedFlatList.js +5 -6
- package/Libraries/Animated/components/AnimatedImage.js +5 -6
- package/Libraries/Animated/components/AnimatedScrollView.js +110 -14
- package/Libraries/Animated/components/AnimatedSectionList.js +4 -5
- package/Libraries/Animated/components/AnimatedText.js +5 -6
- package/Libraries/Animated/components/AnimatedView.js +5 -6
- package/Libraries/Animated/createAnimatedComponent.js +13 -20
- package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +2 -2
- package/Libraries/Animated/nodes/AnimatedAddition.js +6 -8
- package/Libraries/Animated/nodes/AnimatedColor.js +7 -7
- package/Libraries/Animated/nodes/AnimatedDiffClamp.js +6 -8
- package/Libraries/Animated/nodes/AnimatedDivision.js +7 -9
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +7 -10
- package/Libraries/Animated/nodes/AnimatedModulo.js +6 -8
- package/Libraries/Animated/nodes/AnimatedMultiplication.js +7 -9
- package/Libraries/Animated/nodes/AnimatedNode.js +10 -8
- package/Libraries/Animated/nodes/AnimatedProps.js +12 -30
- package/Libraries/Animated/nodes/AnimatedStyle.js +12 -22
- package/Libraries/Animated/nodes/AnimatedSubtraction.js +7 -9
- package/Libraries/Animated/nodes/AnimatedTracking.js +8 -12
- package/Libraries/Animated/nodes/AnimatedTransform.js +38 -31
- package/Libraries/Animated/nodes/AnimatedValue.js +9 -10
- package/Libraries/Animated/nodes/AnimatedValueXY.js +4 -7
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +4 -5
- package/Libraries/Animated/useAnimatedProps.js +8 -16
- package/Libraries/Animated/useAnimatedValue.d.ts +15 -0
- package/Libraries/Animated/useAnimatedValue.js +25 -0
- package/Libraries/AppState/AppState.d.ts +58 -0
- package/Libraries/AppState/AppState.js +3 -7
- package/Libraries/AppState/NativeAppState.js +1 -0
- package/Libraries/BatchedBridge/MessageQueue.js +9 -5
- package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
- package/Libraries/BatchedBridge/NativeModules.js +1 -0
- package/Libraries/Blob/BlobManager.js +5 -3
- package/Libraries/Blob/File.js +2 -3
- package/Libraries/Blob/FileReader.js +6 -5
- package/Libraries/Blob/NativeBlobModule.js +1 -0
- package/Libraries/Blob/NativeFileReaderModule.js +1 -0
- package/Libraries/Blob/URL.js +11 -9
- package/Libraries/BugReporting/NativeBugReporting.js +1 -0
- package/Libraries/BugReporting/getReactData.js +1 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +128 -0
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +208 -0
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +40 -8
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +40 -8
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -0
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +5 -0
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +58 -0
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +7 -8
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
- package/Libraries/Components/Button.d.ts +42 -0
- package/Libraries/Components/Button.flow.js +265 -0
- package/Libraries/Components/Button.js +62 -18
- package/Libraries/Components/Button.windows.js +62 -18
- package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
- package/Libraries/Components/Clipboard/NativeClipboard.js +1 -0
- package/Libraries/Components/DatePicker/DatePickerIOS.android.js +4 -2
- package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +92 -0
- package/Libraries/Components/{MaskedView/MaskedViewIOS.android.js → DatePicker/DatePickerIOS.flow.android.js} +3 -2
- package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +113 -0
- package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +8 -7
- package/Libraries/Components/DatePicker/DatePickerIOS.windows.js +4 -2
- package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +7 -6
- package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +1 -0
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +9 -8
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +13 -14
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
- package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
- package/Libraries/Components/Keyboard/Keyboard.js +35 -8
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +35 -15
- package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -0
- package/Libraries/Components/Popup/PopupProps.d.ts +1 -0
- package/Libraries/Components/Popup/PopupProps.js.map +1 -1
- package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
- package/Libraries/Components/Pressable/Pressable.js +73 -15
- package/Libraries/Components/Pressable/Pressable.windows.js +78 -20
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +6 -3
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +3 -3
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +1 -1
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +62 -0
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +4 -4
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.windows.js +1 -1
- package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +2 -2
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +5 -6
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +4 -4
- package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
- package/Libraries/Components/RefreshControl/RefreshControl.js +4 -3
- package/Libraries/Components/RefreshControl/RefreshControl.windows.js +4 -3
- package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +2 -3
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -1
- package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +24 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +19 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +5 -4
- package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +5 -4
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -1
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +2 -1
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +2 -1
- package/Libraries/Components/ScrollView/ScrollView.d.ts +911 -0
- package/Libraries/Components/ScrollView/ScrollView.js +87 -52
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +3 -3
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +2 -1
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +3 -3
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +243 -269
- package/Libraries/Components/Slider/Slider.d.ts +132 -0
- package/Libraries/Components/Slider/Slider.js +9 -9
- package/Libraries/Components/Slider/SliderNativeComponent.js +4 -5
- package/Libraries/Components/Sound/NativeSoundManager.js +1 -0
- package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -0
- package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -0
- package/Libraries/Components/StatusBar/StatusBar.d.ts +138 -0
- package/Libraries/Components/StatusBar/StatusBar.js +7 -7
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +10 -10
- package/Libraries/Components/Switch/Switch.d.ts +115 -0
- package/Libraries/Components/Switch/Switch.js +7 -7
- package/Libraries/Components/Switch/SwitchNativeComponent.js +9 -4
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +40 -12
- package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
- package/Libraries/Components/TextInput/InputAccessoryView.js +3 -4
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -1
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +3 -2
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +3 -2
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +840 -0
- package/Libraries/Components/TextInput/TextInput.flow.js +1057 -0
- package/Libraries/Components/TextInput/TextInput.js +344 -38
- package/Libraries/Components/TextInput/TextInput.windows.js +348 -38
- package/Libraries/Components/TextInput/TextInputNativeCommands.js +2 -2
- package/Libraries/Components/TextInput/TextInputState.js +22 -5
- package/Libraries/Components/TextInput/TextInputState.windows.js +22 -5
- package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -0
- package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +47 -0
- package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
- package/Libraries/Components/Touchable/Touchable.flow.js +258 -0
- package/Libraries/Components/Touchable/Touchable.js +12 -12
- package/Libraries/Components/Touchable/Touchable.windows.js +12 -12
- package/Libraries/Components/Touchable/TouchableBounce.js +44 -10
- package/Libraries/Components/Touchable/TouchableHighlight.d.ts +68 -0
- package/Libraries/Components/Touchable/TouchableHighlight.js +32 -9
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +32 -9
- package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +114 -0
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +54 -20
- package/Libraries/Components/Touchable/TouchableOpacity.d.ts +109 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +54 -16
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +54 -16
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +143 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +64 -10
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +64 -10
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -1
- package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +13 -2
- package/Libraries/Components/View/View.d.ts +29 -0
- package/Libraries/Components/View/View.js +91 -8
- package/Libraries/Components/View/View.windows.js +181 -94
- package/Libraries/Components/View/ViewAccessibility.d.ts +360 -0
- package/Libraries/Components/View/ViewAccessibility.js +70 -1
- package/Libraries/Components/View/ViewAccessibility.windows.js +69 -0
- package/Libraries/Components/View/ViewNativeComponent.js +3 -3
- package/Libraries/Components/View/ViewPropTypes.d.ts +245 -0
- package/Libraries/Components/View/ViewPropTypes.js +105 -13
- package/Libraries/Components/View/ViewPropTypes.windows.js +105 -13
- package/Libraries/Core/Devtools/openFileInEditor.js +3 -0
- package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
- package/Libraries/Core/ExceptionsManager.js +8 -0
- package/Libraries/Core/ExtendedError.js +11 -8
- package/Libraries/Core/InitializeCore.js +2 -1
- package/Libraries/Core/NativeExceptionsManager.js +3 -4
- package/Libraries/Core/RawEventEmitter.js +2 -1
- package/Libraries/Core/ReactFiberErrorDialog.js +2 -2
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/ReactNativeVersionCheck.js +1 -0
- package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
- package/Libraries/Core/Timers/JSTimers.js +13 -11
- package/Libraries/Core/Timers/NativeTiming.js +1 -0
- package/Libraries/Core/setUpBatchedBridge.js +1 -5
- package/Libraries/Core/setUpDeveloperTools.js +4 -6
- package/Libraries/Core/setUpReactDevTools.js +4 -1
- package/Libraries/Core/setUpRegeneratorRuntime.js +1 -1
- package/Libraries/Core/setUpTimers.js +1 -1
- package/Libraries/EventEmitter/NativeEventEmitter.d.ts +70 -0
- package/Libraries/EventEmitter/NativeEventEmitter.js +1 -0
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +30 -0
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
- package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
- package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +1 -0
- package/Libraries/Events/EventPolyfill.js +1 -1
- package/Libraries/HeapCapture/NativeJSCHeapCapture.js +1 -0
- package/Libraries/Image/AssetSourceResolver.js +4 -6
- package/Libraries/Image/Image.android.js +63 -45
- package/Libraries/Image/Image.d.ts +322 -0
- package/Libraries/Image/Image.flow.js +64 -0
- package/Libraries/Image/Image.ios.js +55 -28
- package/Libraries/Image/Image.windows.js +56 -30
- package/Libraries/Image/ImageBackground.js +18 -7
- package/Libraries/Image/ImageInjection.js +2 -1
- package/Libraries/Image/ImageProps.js +88 -5
- package/Libraries/Image/ImageResizeMode.d.ts +49 -0
- package/Libraries/Image/ImageSource.d.ts +76 -0
- package/Libraries/Image/ImageSourceUtils.js +80 -0
- package/Libraries/Image/ImageUtils.js +21 -0
- package/Libraries/Image/ImageViewNativeComponent.js +8 -5
- package/Libraries/Image/NativeImageEditor.js +1 -0
- package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
- package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
- package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
- package/Libraries/Image/NativeImageStoreIOS.js +1 -0
- package/Libraries/Image/TextInlineImageNativeComponent.js +4 -3
- package/Libraries/Image/nativeImageSource.js +2 -2
- package/Libraries/Image/resolveAssetSource.js +5 -5
- package/Libraries/Inspector/BorderBox.js +1 -1
- package/Libraries/Inspector/BoxInspector.js +3 -4
- package/Libraries/Inspector/DevtoolsOverlay.js +213 -0
- package/Libraries/Inspector/ElementBox.js +4 -5
- package/Libraries/Inspector/ElementProperties.js +10 -11
- package/Libraries/Inspector/Inspector.js +22 -108
- package/Libraries/Inspector/InspectorOverlay.js +5 -5
- package/Libraries/Inspector/InspectorPanel.js +12 -10
- package/Libraries/Inspector/NetworkOverlay.js +7 -3
- package/Libraries/Inspector/PerformanceOverlay.js +3 -3
- package/Libraries/Inspector/StyleInspector.js +2 -2
- package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +71 -0
- package/Libraries/Interaction/BridgeSpyStallHandler.js +1 -1
- package/Libraries/Interaction/InteractionManager.d.ts +74 -0
- package/Libraries/Interaction/InteractionManager.js +8 -8
- package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
- package/Libraries/Interaction/PanResponder.d.ts +202 -0
- package/Libraries/Interaction/PanResponder.flow.js +257 -0
- package/Libraries/Interaction/PanResponder.js +4 -3
- package/Libraries/JSInspector/JSInspector.js +0 -3
- package/Libraries/JSInspector/NetworkAgent.js +3 -3
- package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
- package/Libraries/LayoutAnimation/LayoutAnimation.js +4 -3
- package/Libraries/Linking/Linking.d.ts +61 -0
- package/Libraries/Linking/Linking.js +3 -2
- package/Libraries/Linking/NativeIntentAndroid.js +1 -0
- package/Libraries/Linking/NativeLinkingManager.js +1 -0
- package/Libraries/Lists/CellRenderMask.js +13 -3
- package/Libraries/Lists/ChildListCollection.js +72 -0
- package/Libraries/Lists/FillRateHelper.js +28 -17
- package/Libraries/Lists/FlatList.d.ts +292 -0
- package/Libraries/Lists/FlatList.js +70 -70
- package/Libraries/Lists/SectionList.d.ts +300 -0
- package/Libraries/Lists/SectionList.js +5 -5
- package/Libraries/Lists/SectionListModern.js +6 -6
- package/Libraries/Lists/StateSafePureComponent.js +85 -0
- package/Libraries/Lists/ViewabilityHelper.js +33 -12
- package/Libraries/Lists/VirtualizeUtils.js +17 -13
- package/Libraries/Lists/VirtualizedList.d.ts +317 -0
- package/Libraries/Lists/VirtualizedList.js +548 -890
- package/Libraries/Lists/VirtualizedListCellRenderer.js +259 -0
- package/Libraries/Lists/VirtualizedListContext.js +7 -48
- package/Libraries/Lists/VirtualizedListProps.js +279 -0
- package/Libraries/Lists/VirtualizedSectionList.js +6 -3
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
- package/Libraries/LogBox/Data/LogBoxData.js +9 -8
- package/Libraries/LogBox/Data/LogBoxLog.js +5 -5
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +4 -4
- package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -3
- package/Libraries/LogBox/LogBox.d.ts +28 -0
- package/Libraries/LogBox/LogBox.js +11 -11
- package/Libraries/LogBox/LogBoxInspectorContainer.js +5 -3
- package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
- package/Libraries/LogBox/UI/AnsiHighlight.js +5 -3
- package/Libraries/LogBox/UI/LogBoxButton.js +6 -5
- package/Libraries/LogBox/UI/LogBoxInspector.js +6 -6
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +9 -8
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +3 -3
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +7 -6
- package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +6 -5
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +7 -6
- package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -3
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +5 -5
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +5 -5
- package/Libraries/LogBox/UI/LogBoxMessage.js +3 -3
- package/Libraries/LogBox/UI/LogBoxNotification.js +6 -5
- package/Libraries/Modal/Modal.d.ts +104 -0
- package/Libraries/Modal/Modal.js +14 -14
- package/Libraries/Modal/NativeModalManager.js +1 -0
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -3
- package/Libraries/NativeComponent/BaseViewConfig.android.js +27 -2
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -3
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +8 -3
- package/Libraries/NativeComponent/NativeComponentRegistry.js +5 -4
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -0
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +1 -1
- package/Libraries/NativeComponent/ViewConfig.js +1 -0
- package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +1 -0
- package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
- package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
- package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
- package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
- package/Libraries/NativeModules/specs/NativeLogBox.js +3 -2
- package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
- package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
- package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
- package/Libraries/Network/NativeNetworkingIOS.js +1 -0
- package/Libraries/Network/RCTNetworking.android.js +4 -3
- package/Libraries/Network/RCTNetworking.ios.js +3 -2
- package/Libraries/Network/RCTNetworking.windows.js +1 -0
- package/Libraries/Network/convertRequestBody.js +1 -2
- package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -1
- package/Libraries/NewAppScreen/components/Header.js +6 -2
- package/Libraries/NewAppScreen/components/HermesBadge.js +6 -2
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +8 -9
- package/Libraries/NewAppScreen/components/ReloadInstructions.js +4 -1
- package/Libraries/NewAppScreen/index.js +1 -1
- package/Libraries/Performance/NativeJSCSamplingProfiler.js +1 -0
- package/Libraries/Performance/QuickPerformanceLogger.js +34 -10
- package/Libraries/Performance/Systrace.d.ts +66 -0
- package/Libraries/Performance/Systrace.js +110 -195
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +115 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +5 -4
- package/Libraries/Pressability/Pressability.js +12 -10
- package/Libraries/Pressability/Pressability.windows.js +21 -12
- package/Libraries/Pressability/PressabilityDebug.js +2 -2
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
- package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +275 -0
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +19 -14
- package/Libraries/ReactNative/AppContainer.js +17 -7
- package/Libraries/ReactNative/AppRegistry.d.ts +68 -0
- package/Libraries/ReactNative/AppRegistry.js +11 -14
- package/Libraries/ReactNative/BridgelessUIManager.js +4 -3
- package/Libraries/ReactNative/FabricUIManager.js +3 -3
- package/Libraries/ReactNative/I18nManager.d.ts +25 -0
- package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
- package/Libraries/ReactNative/NativeI18nManager.js +1 -0
- package/Libraries/ReactNative/NativeUIManager.js +1 -0
- package/Libraries/ReactNative/PaperUIManager.js +2 -2
- package/Libraries/ReactNative/PaperUIManager.windows.js +1 -1
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +9 -0
- package/Libraries/ReactNative/RendererImplementation.js +112 -0
- package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
- package/Libraries/ReactNative/RendererProxy.js +26 -0
- package/Libraries/ReactNative/RootTag.js +0 -1
- package/Libraries/ReactNative/UIManager.d.ts +157 -0
- package/Libraries/ReactNative/UIManager.js +1 -1
- package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -0
- package/Libraries/ReactNative/renderApplication.js +38 -20
- package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
- package/Libraries/ReactNative/requireNativeComponent.js +2 -2
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +10 -9
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +312 -217
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +212 -177
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +248 -213
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +311 -218
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +226 -196
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +262 -232
- package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +149 -0
- package/Libraries/Renderer/shims/ReactFabric.js +2 -2
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
- package/Libraries/Renderer/shims/ReactNative.js +2 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +141 -0
- package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -22
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +8 -8
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
- package/Libraries/Settings/NativeSettingsManager.js +1 -0
- package/Libraries/Settings/Settings.d.ts +18 -0
- package/Libraries/Share/NativeShareModule.js +1 -0
- package/Libraries/Share/Share.d.ts +80 -0
- package/Libraries/Share/Share.js +7 -5
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -0
- package/Libraries/StyleSheet/StyleSheet.d.ts +156 -0
- package/Libraries/StyleSheet/StyleSheet.js +15 -11
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +332 -0
- package/Libraries/StyleSheet/StyleSheetTypes.js +101 -24
- package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +2 -2
- package/Libraries/StyleSheet/normalizeColor.js +3 -3
- package/Libraries/StyleSheet/private/_TransformStyle.js +26 -24
- package/Libraries/StyleSheet/processAspectRatio.js +53 -0
- package/Libraries/StyleSheet/processColor.d.ts +16 -0
- package/Libraries/StyleSheet/processColor.js +3 -4
- package/Libraries/StyleSheet/processColorArray.js +1 -0
- package/Libraries/StyleSheet/processFontVariant.js +30 -0
- package/Libraries/StyleSheet/processTransform.js +114 -105
- package/Libraries/StyleSheet/splitLayoutProps.js +5 -0
- package/Libraries/Text/Text.d.ts +209 -0
- package/Libraries/Text/Text.js +94 -12
- package/Libraries/Text/Text.windows.js +87 -11
- package/Libraries/Text/TextNativeComponent.js +49 -41
- package/Libraries/Text/TextProps.js +64 -7
- package/Libraries/TurboModule/RCTExport.d.ts +12 -0
- package/Libraries/TurboModule/TurboModuleRegistry.d.ts +15 -0
- package/Libraries/TurboModule/TurboModuleRegistry.js +3 -1
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
- package/Libraries/Types/CoreEventTypes.d.ts +263 -0
- package/Libraries/Types/CoreEventTypes.js +2 -1
- package/Libraries/Types/CoreEventTypes.windows.js +2 -1
- package/Libraries/Utilities/AcessibilityMapping.js +154 -0
- package/Libraries/Utilities/Appearance.d.ts +43 -0
- package/Libraries/Utilities/Appearance.js +3 -3
- package/Libraries/Utilities/BackHandler.android.js +3 -5
- package/Libraries/Utilities/BackHandler.d.ts +38 -0
- package/Libraries/Utilities/BackHandler.windows.js +3 -5
- package/Libraries/Utilities/DevSettings.d.ts +32 -0
- package/Libraries/Utilities/DevSettings.js +4 -2
- package/Libraries/Utilities/Dimensions.d.ts +79 -0
- package/Libraries/Utilities/Dimensions.js +2 -2
- package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -1
- package/Libraries/Utilities/HMRClient.js +23 -8
- package/Libraries/Utilities/LoadingView.ios.js +1 -1
- package/Libraries/Utilities/NativeAppearance.js +1 -0
- package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
- package/Libraries/Utilities/NativeDevSplitBundleLoader.js +1 -0
- package/Libraries/Utilities/NativeDeviceInfo.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
- package/Libraries/Utilities/PerformanceLoggerContext.js +3 -2
- package/Libraries/Utilities/PixelRatio.d.ts +64 -0
- package/Libraries/Utilities/Platform.android.js +11 -5
- package/Libraries/Utilities/Platform.d.ts +102 -0
- package/Libraries/Utilities/Platform.ios.js +12 -5
- package/Libraries/Utilities/Platform.windows.js +11 -5
- package/Libraries/Utilities/PolyfillFunctions.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +9 -15
- package/Libraries/Utilities/codegenNativeCommands.js +1 -10
- package/Libraries/Utilities/codegenNativeComponent.js +4 -1
- package/Libraries/Utilities/createPerformanceLogger.js +7 -8
- package/Libraries/Utilities/differ/deepDiffer.js +1 -1
- package/Libraries/Utilities/groupByEveryN.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +3 -1
- package/Libraries/Utilities/useColorScheme.js +3 -2
- package/Libraries/Utilities/useRefEffect.js +1 -1
- package/Libraries/Vibration/NativeVibration.js +1 -0
- package/Libraries/Vibration/Vibration.d.ts +43 -0
- package/Libraries/Vibration/Vibration.js +1 -0
- package/Libraries/WebPerformance/NativePerformanceObserver.js +41 -0
- package/Libraries/WebPerformance/PerformanceObserver.js +223 -0
- package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
- package/Libraries/WebSocket/WebSocket.js +11 -3
- package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
- package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
- package/Libraries/YellowBox/YellowBoxDeprecated.js +2 -3
- package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +2 -1
- package/Libraries/__tests__/ViewWindows-test.js +16 -0
- package/Libraries/platform-types.d.ts +17 -0
- package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
- package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
- package/Microsoft.ReactNative/ABIViewManager.cpp +19 -1
- package/Microsoft.ReactNative/ABIViewManager.h +9 -0
- package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +4 -43
- package/Microsoft.ReactNative/Base/CoreNativeModules.h +0 -2
- package/Microsoft.ReactNative/CompositionContext.idl +31 -0
- package/Microsoft.ReactNative/CompositionHwndHost.idl +33 -0
- package/Microsoft.ReactNative/CompositionRootView.idl +45 -0
- package/Microsoft.ReactNative/CompositionSwitcher.idl +123 -0
- package/Microsoft.ReactNative/CompositionUIService.idl +24 -0
- package/Microsoft.ReactNative/Fabric/ComponentView.h +10 -0
- package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +83 -0
- package/Microsoft.ReactNative/Fabric/{ComponentViewRegistry.h → Composition/ComponentViewRegistry.h} +9 -12
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +816 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +33 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +833 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +116 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.cpp +137 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +44 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +145 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +49 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +359 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +81 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService.cpp +27 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService.h +23 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +1217 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +113 -0
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +332 -0
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +90 -0
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +415 -0
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +62 -0
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +355 -0
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +103 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +177 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1076 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +99 -0
- package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputEventEmitter.cpp +0 -0
- package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputEventEmitter.h +0 -0
- package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputProps.cpp +1 -31
- package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputProps.h +15 -28
- package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputShadowNode.cpp +16 -14
- package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputShadowNode.h +3 -3
- package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputState.cpp +27 -10
- package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputState.h +5 -16
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +65 -157
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +10 -9
- package/Microsoft.ReactNative/Fabric/IComponentViewRegistry.h +34 -0
- package/Microsoft.ReactNative/Fabric/ImageManager.cpp +5 -7
- package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +23 -8
- package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +35 -0
- package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +125 -0
- package/Microsoft.ReactNative/Fabric/WindowsImageManager.h +20 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/States.h +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rnwcore/States.h +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +4 -6
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +17 -0
- package/Microsoft.ReactNative/INativeUIManager.h +1 -1
- package/Microsoft.ReactNative/IReactPackageBuilder.idl +6 -9
- package/Microsoft.ReactNative/IViewManager.idl +14 -0
- package/Microsoft.ReactNative/IViewManagerCore.idl +1 -0
- package/Microsoft.ReactNative/JsiApi.cpp +94 -0
- package/Microsoft.ReactNative/JsiApi.h +13 -0
- package/Microsoft.ReactNative/JsiApi.idl +13 -0
- package/Microsoft.ReactNative/LayoutService.cpp +51 -0
- package/Microsoft.ReactNative/LayoutService.h +32 -0
- package/Microsoft.ReactNative/LayoutService.idl +41 -0
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +32 -20
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +11 -1
- package/Microsoft.ReactNative/Modules/Animated/AdditionAnimatedNode.cpp +33 -16
- package/Microsoft.ReactNative/Modules/Animated/AdditionAnimatedNode.h +3 -2
- package/Microsoft.ReactNative/Modules/Animated/AnimatedNode.cpp +17 -2
- package/Microsoft.ReactNative/Modules/Animated/AnimatedNode.h +19 -1
- package/Microsoft.ReactNative/Modules/Animated/AnimatedPlatformConfig.cpp +23 -0
- package/Microsoft.ReactNative/Modules/Animated/AnimatedPlatformConfig.h +17 -0
- package/Microsoft.ReactNative/Modules/Animated/AnimationDriver.cpp +49 -18
- package/Microsoft.ReactNative/Modules/Animated/AnimationDriver.h +29 -7
- package/Microsoft.ReactNative/Modules/Animated/AnimationUtils.h +45 -0
- package/Microsoft.ReactNative/Modules/Animated/CalculatedAnimationDriver.cpp +6 -5
- package/Microsoft.ReactNative/Modules/Animated/CalculatedAnimationDriver.h +1 -3
- package/Microsoft.ReactNative/Modules/Animated/DecayAnimationDriver.cpp +31 -5
- package/Microsoft.ReactNative/Modules/Animated/DecayAnimationDriver.h +3 -1
- package/Microsoft.ReactNative/Modules/Animated/DiffClampAnimatedNode.cpp +30 -15
- package/Microsoft.ReactNative/Modules/Animated/DiffClampAnimatedNode.h +4 -2
- package/Microsoft.ReactNative/Modules/Animated/DivisionAnimatedNode.cpp +43 -20
- package/Microsoft.ReactNative/Modules/Animated/DivisionAnimatedNode.h +3 -2
- package/Microsoft.ReactNative/Modules/Animated/EventAnimationDriver.cpp +2 -2
- package/Microsoft.ReactNative/Modules/Animated/EventAnimationDriver.h +1 -1
- package/Microsoft.ReactNative/Modules/Animated/FrameAnimationDriver.cpp +45 -8
- package/Microsoft.ReactNative/Modules/Animated/FrameAnimationDriver.h +7 -2
- package/Microsoft.ReactNative/Modules/Animated/InterpolationAnimatedNode.cpp +76 -38
- package/Microsoft.ReactNative/Modules/Animated/InterpolationAnimatedNode.h +6 -5
- package/Microsoft.ReactNative/Modules/Animated/ModulusAnimatedNode.cpp +25 -13
- package/Microsoft.ReactNative/Modules/Animated/ModulusAnimatedNode.h +4 -2
- package/Microsoft.ReactNative/Modules/Animated/MultiplicationAnimatedNode.cpp +33 -16
- package/Microsoft.ReactNative/Modules/Animated/MultiplicationAnimatedNode.h +3 -2
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.cpp +245 -209
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.h +91 -41
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +336 -82
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +33 -10
- package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +185 -57
- package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.h +28 -5
- package/Microsoft.ReactNative/Modules/Animated/SpringAnimationDriver.cpp +72 -20
- package/Microsoft.ReactNative/Modules/Animated/SpringAnimationDriver.h +8 -4
- package/Microsoft.ReactNative/Modules/Animated/StyleAnimatedNode.cpp +20 -5
- package/Microsoft.ReactNative/Modules/Animated/StyleAnimatedNode.h +3 -2
- package/Microsoft.ReactNative/Modules/Animated/SubtractionAnimatedNode.cpp +42 -20
- package/Microsoft.ReactNative/Modules/Animated/SubtractionAnimatedNode.h +3 -1
- package/Microsoft.ReactNative/Modules/Animated/TrackingAnimatedNode.cpp +20 -11
- package/Microsoft.ReactNative/Modules/Animated/TrackingAnimatedNode.h +5 -6
- package/Microsoft.ReactNative/Modules/Animated/TransformAnimatedNode.cpp +36 -9
- package/Microsoft.ReactNative/Modules/Animated/TransformAnimatedNode.h +5 -2
- package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.cpp +60 -32
- package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.h +11 -4
- package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +58 -37
- package/Microsoft.ReactNative/Modules/AppearanceModule.h +25 -32
- package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +3 -1
- package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +42 -10
- package/Microsoft.ReactNative/Modules/LogBoxModule.cpp +157 -39
- package/Microsoft.ReactNative/Modules/LogBoxModule.h +6 -0
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +72 -85
- package/Microsoft.ReactNative/Modules/NativeUIManager.h +8 -4
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +7 -19
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +1 -0
- package/Microsoft.ReactNative/Modules/TimingModule.cpp +48 -87
- package/Microsoft.ReactNative/Modules/TimingModule.h +20 -30
- package/Microsoft.ReactNative/QuirkSettings.cpp +22 -0
- package/Microsoft.ReactNative/QuirkSettings.h +9 -0
- package/Microsoft.ReactNative/QuirkSettings.idl +7 -0
- package/Microsoft.ReactNative/ReactCoreInjection.cpp +7 -2
- package/Microsoft.ReactNative/ReactCoreInjection.h +4 -1
- package/Microsoft.ReactNative/ReactCoreInjection.idl +4 -1
- package/Microsoft.ReactNative/ReactHost/React.h +0 -3
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +28 -23
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +0 -3
- package/Microsoft.ReactNative/ReactNativeHost.cpp +2 -1
- package/Microsoft.ReactNative/ReactPackageBuilder.cpp +8 -3
- package/Microsoft.ReactNative/ReactPackageBuilder.h +4 -3
- package/Microsoft.ReactNative/ReactRootView.cpp +3 -75
- package/Microsoft.ReactNative/ReactRootView.h +0 -6
- package/Microsoft.ReactNative/ReactRootView.idl +1 -9
- package/Microsoft.ReactNative/RedBox.cpp +69 -8
- package/Microsoft.ReactNative/RedBox.h +2 -0
- package/Microsoft.ReactNative/RedBoxHandler.cpp +3 -1
- package/Microsoft.ReactNative/Utils/Helpers.cpp +13 -0
- package/Microsoft.ReactNative/Utils/Helpers.h +1 -0
- package/Microsoft.ReactNative/Utils/ImageUtils.cpp +94 -0
- package/Microsoft.ReactNative/Utils/ImageUtils.h +35 -0
- package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +3 -2
- package/Microsoft.ReactNative/Utils/PropertyUtils.h +31 -9
- package/Microsoft.ReactNative/Views/ControlViewManager.cpp +19 -0
- package/Microsoft.ReactNative/Views/ControlViewManager.h +7 -0
- package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +8 -4
- package/Microsoft.ReactNative/Views/ICompositionRootView.h +19 -0
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +14 -0
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +7 -0
- package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +8 -76
- package/Microsoft.ReactNative/Views/Image/ReactImage.h +1 -23
- package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +16 -3
- package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -2
- package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +1 -3
- package/Microsoft.ReactNative/Views/ShadowNodeBase.h +10 -1
- package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +0 -12
- package/Microsoft.ReactNative/Views/ShadowNodeRegistry.h +2 -4
- package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +1 -7
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +58 -42
- package/Microsoft.ReactNative/Views/TextViewManager.cpp +47 -31
- package/Microsoft.ReactNative/Views/TextViewManager.h +2 -0
- package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +22 -247
- package/Microsoft.ReactNative/Views/TouchEventHandler.h +1 -6
- package/Microsoft.ReactNative/Views/ViewControl.cpp +2 -2
- package/Microsoft.ReactNative/Views/ViewControl.h +1 -1
- package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +25 -13
- package/Microsoft.ReactNative/Views/ViewManagerBase.h +4 -0
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +74 -35
- package/Microsoft.ReactNative/Views/ViewViewManager.h +1 -0
- package/Microsoft.ReactNative/Views/cppwinrt/ViewPanel.idl +4 -4
- package/Microsoft.ReactNative/XamlHelper.cpp +13 -0
- package/Microsoft.ReactNative/XamlHelper.h +4 -0
- package/Microsoft.ReactNative/XamlHelper.idl +9 -0
- package/Microsoft.ReactNative/XamlUIService.cpp +16 -0
- package/Microsoft.ReactNative/XamlUIService.h +2 -0
- package/Microsoft.ReactNative/XamlUIService.idl +4 -0
- package/Microsoft.ReactNative/XamlView.cpp +10 -0
- package/Microsoft.ReactNative/XamlView.h +7 -2
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +76 -0
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +13 -0
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +71 -2
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +3 -3
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +1 -2
- package/Microsoft.ReactNative.Cxx/ModuleRegistration.cpp +14 -4
- package/Microsoft.ReactNative.Cxx/ModuleRegistration.h +5 -2
- package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +2 -0
- package/Microsoft.ReactNative.Cxx/TurboModuleProvider.h +1 -2
- package/Microsoft.ReactNative.Managed/IReactPromise.cs +0 -20
- package/Microsoft.ReactNative.Managed/JSValue.cs +1 -1
- package/Microsoft.ReactNative.Managed/JSValueReader.cs +438 -444
- package/Microsoft.ReactNative.Managed/JSValueWriter.cs +8 -7
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +22 -7
- package/Microsoft.ReactNative.Managed/ReactAttributes.cs +16 -0
- package/Microsoft.ReactNative.Managed/ReactConstantProvider.cs +5 -0
- package/Microsoft.ReactNative.Managed/ReactContext.cs +19 -2
- package/Microsoft.ReactNative.Managed/ReactDispatcher.cs +34 -0
- package/Microsoft.ReactNative.Managed/ReactError.cs +36 -0
- package/Microsoft.ReactNative.Managed/ReactNotificationArgsOf.cs +23 -0
- package/Microsoft.ReactNative.Managed/ReactNotificationHandlerOf.cs +7 -0
- package/Microsoft.ReactNative.Managed/ReactNotificationIdOf.cs +44 -0
- package/Microsoft.ReactNative.Managed/ReactNotificationService.cs +146 -0
- package/Microsoft.ReactNative.Managed/ReactNotificationSubscription.cs +43 -0
- package/Microsoft.ReactNative.Managed/ReactNotificationSubscriptionRevoker.cs +64 -0
- package/Microsoft.ReactNative.Managed/ReactPromise.cs +123 -81
- package/Microsoft.ReactNative.Managed/ReactPropertyBag.cs +91 -0
- package/Microsoft.ReactNative.Managed/ReactPropertyIdOf.cs +44 -0
- package/Microsoft.ReactNative.Managed/ReactPropertyName.cs +39 -0
- package/Microsoft.ReactNative.Managed/ReactPropertyNamespace.cs +26 -0
- package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +44 -0
- package/Microsoft.ReactNative.Managed/ReactTaskExtensions.cs +15 -4
- package/Microsoft.ReactNative.Managed/packages.lock.json +51 -2
- package/Microsoft.ReactNative.Managed.CodeGen/App.cs +1 -1
- package/Microsoft.ReactNative.Managed.CodeGen/CodeAnalyzer.cs +793 -731
- package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Module.cs +81 -44
- package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Serializers.cs +57 -18
- package/Microsoft.ReactNative.Managed.CodeGen/DiagnosticDescriptors.cs +36 -4
- package/Microsoft.ReactNative.Managed.CodeGen/Microsoft.ReactNative.Managed.CodeGen.csproj +5 -5
- package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactAssembly.cs +3 -3
- package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactGetConstants.cs +17 -0
- package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactMethod.cs +11 -2
- package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactModule.cs +2 -0
- package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactTypes.cs +10 -4
- package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Debug.pubxml +1 -1
- package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Release.pubxml +1 -1
- package/Microsoft.ReactNative.Managed.CodeGen/ReactNativeNames.cs +29 -3
- package/Microsoft.ReactNative.Managed.CodeGen/SyntaxHelpers.cs +6 -0
- package/Mso/smartPtr/cntPtr.h +21 -21
- package/PropertySheets/Codegen.props +15 -0
- package/PropertySheets/Codegen.targets +19 -0
- package/PropertySheets/CppAppConsumeCSharpModule.props +3 -0
- package/PropertySheets/External/Microsoft.ReactNative.CSharp.Dependencies.props +17 -0
- package/PropertySheets/External/Microsoft.ReactNative.Common.props +3 -0
- package/PropertySheets/External/Microsoft.ReactNative.Cpp.ProjectReferences.props +0 -3
- package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.props +1 -0
- package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.targets +3 -0
- package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpLib.targets +1 -0
- package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.props +1 -0
- package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.targets +3 -0
- package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppLib.targets +1 -0
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharp.PackageReferences.props +11 -0
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.props +1 -0
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.targets +51 -0
- package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +10 -1
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/PropertySheets/JSEngine.props +10 -3
- package/PropertySheets/ManagedCodeGen/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
- package/PropertySheets/NewAPIDeclarations.props +25 -0
- package/PropertySheets/React.Cpp.props +2 -2
- package/PropertySheets/WinUI.props +1 -1
- package/README.md +2 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ConcreteComponentDescriptor.h +2 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBufferBuilder.cpp +182 -0
- package/ReactCommon/Yoga.cpp +76 -29
- package/Scripts/IntegrationTests.ps1 +1 -1
- package/Scripts/JustMyXaml.ps1 +8 -8
- package/Scripts/Microsoft.ReactNative.Managed.nuspec +1 -1
- package/Scripts/Microsoft.ReactNative.WindowsAppSDK.nuspec +3 -3
- package/Scripts/OfficeReact.Win32.nuspec +2 -0
- package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +31 -1
- package/Scripts/UnitTest.ps1 +1 -1
- package/Scripts/rnw-dependencies.ps1 +317 -162
- package/Shared/Composition/CompositionSwitcher.interop.h +39 -0
- package/Shared/HermesShim.h +1 -1
- package/Shared/JSI/ChakraRuntime.cpp +42 -0
- package/Shared/JSI/ChakraRuntime.h +13 -0
- package/Shared/JSI/NapiJsiV8RuntimeHolder.h +0 -2
- package/Shared/Modules/HttpModule.cpp +19 -4
- package/Shared/Networking/IHttpResource.h +126 -0
- package/Shared/Networking/IWebSocketResource.h +1 -0
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +6 -6
- package/Shared/Networking/WinRTHttpResource.cpp +161 -32
- package/Shared/Networking/WinRTHttpResource.h +10 -0
- package/Shared/OInstance.cpp +4 -8
- package/Shared/Shared.vcxitems +37 -5
- package/Shared/Shared.vcxitems.filters +1 -12
- package/Shared/V8JSIRuntimeHolder.h +0 -2
- package/codegen/NativeAccessibilityInfoSpec.g.h +12 -12
- package/codegen/NativeAccessibilityManagerSpec.g.h +37 -31
- package/codegen/NativeActionSheetManagerSpec.g.h +6 -6
- package/codegen/NativeAlertManagerSpec.g.h +4 -2
- package/codegen/NativeAnimatedModuleSpec.g.h +48 -48
- package/codegen/NativeAnimatedTurboModuleSpec.g.h +48 -48
- package/codegen/NativeAnimationsDebugModuleSpec.g.h +4 -4
- package/codegen/NativeAppStateSpec.g.h +6 -6
- package/codegen/NativeAppearanceSpec.g.h +6 -6
- package/codegen/NativeBlobModuleSpec.g.h +12 -12
- package/codegen/NativeBugReportingSpec.g.h +6 -6
- package/codegen/NativeClipboardSpec.g.h +4 -4
- package/codegen/NativeDatePickerAndroidSpec.g.h +2 -2
- package/codegen/NativeDevLoadingViewSpec.g.h +4 -4
- package/codegen/NativeDevMenuSpec.g.h +10 -10
- package/codegen/NativeDevSettingsSpec.g.h +22 -22
- package/codegen/NativeDevSplitBundleLoaderSpec.g.h +2 -2
- package/codegen/NativeDeviceEventManagerSpec.g.h +2 -2
- package/codegen/NativeDialogManagerAndroidSpec.g.h +2 -2
- package/codegen/NativeDialogManagerWindowsSpec.g.h +2 -2
- package/codegen/NativeExceptionsManagerSpec.g.h +10 -10
- package/codegen/NativeFileReaderModuleSpec.g.h +4 -4
- package/codegen/NativeFrameRateLoggerSpec.g.h +8 -8
- package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +4 -4
- package/codegen/NativeI18nManagerSpec.g.h +6 -6
- package/codegen/NativeImageEditorSpec.g.h +2 -2
- package/codegen/NativeImageLoaderAndroidSpec.g.h +10 -10
- package/codegen/NativeImageLoaderIOSSpec.g.h +10 -10
- package/codegen/NativeImageStoreAndroidSpec.g.h +2 -2
- package/codegen/NativeImageStoreIOSSpec.g.h +8 -8
- package/codegen/NativeIntentAndroidSpec.g.h +10 -10
- package/codegen/NativeJSCHeapCaptureSpec.g.h +2 -2
- package/codegen/NativeJSCSamplingProfilerSpec.g.h +2 -2
- package/codegen/NativeKeyboardObserverSpec.g.h +4 -4
- package/codegen/NativeLinkingManagerSpec.g.h +12 -12
- package/codegen/NativeLogBoxSpec.g.h +4 -4
- package/codegen/NativeModalManagerSpec.g.h +4 -4
- package/codegen/NativeNetworkingAndroidSpec.g.h +10 -10
- package/codegen/NativeNetworkingIOSSpec.g.h +10 -10
- package/codegen/NativePerformanceObserverSpec.g.h +69 -0
- package/codegen/NativePermissionsAndroidSpec.g.h +8 -8
- package/codegen/NativePlatformConstantsAndroidSpec.g.h +2 -2
- package/codegen/NativePushNotificationManagerIOSSpec.g.h +36 -36
- package/codegen/NativeRedBoxSpec.g.h +4 -4
- package/codegen/NativeSampleTurboModuleSpec.g.h +22 -22
- package/codegen/NativeSegmentFetcherSpec.g.h +4 -4
- package/codegen/NativeSettingsManagerSpec.g.h +4 -4
- package/codegen/NativeShareModuleSpec.g.h +2 -2
- package/codegen/NativeSoundManagerSpec.g.h +2 -2
- package/codegen/NativeStatusBarManagerAndroidSpec.g.h +8 -8
- package/codegen/NativeStatusBarManagerIOSSpec.g.h +12 -12
- package/codegen/NativeTimingSpec.g.h +6 -6
- package/codegen/NativeToastAndroidSpec.g.h +6 -6
- package/codegen/NativeUIManagerSpec.g.h +50 -50
- package/codegen/NativeVibrationSpec.g.h +6 -6
- package/codegen/NativeWebSocketModuleSpec.g.h +14 -14
- package/codegen/react/components/rnwcore/ComponentDescriptors.h +3 -4
- package/codegen/react/components/rnwcore/EventEmitters.cpp +5 -4
- package/codegen/react/components/rnwcore/EventEmitters.h +21 -26
- package/codegen/react/components/rnwcore/Props.cpp +3 -10
- package/codegen/react/components/rnwcore/Props.h +19 -28
- package/codegen/react/components/rnwcore/ShadowNodes.cpp +3 -4
- package/codegen/react/components/rnwcore/ShadowNodes.h +36 -30
- package/codegen/react/components/rnwcore/States.cpp +18 -0
- package/codegen/react/components/rnwcore/States.h +156 -0
- package/codegen/rnwcoreJSI-generated.cpp +1670 -0
- package/codegen/rnwcoreJSI.h +5620 -0
- package/fmt/cgmanifest.json +1 -0
- package/fmt/fmt.vcxproj +2 -1
- package/index.js +89 -55
- package/index.windows.js +89 -55
- package/interface.js +8 -0
- package/jest/react-native-env.js +18 -0
- package/jest/renderer.js +2 -2
- package/jest/setup.js +7 -9
- package/just-task.js +5 -1
- package/package.json +37 -37
- package/template/cpp-app/proj/MyApp.sln +2 -2
- package/template/cpp-app/proj/MyApp.vcxproj +3 -3
- package/template/cpp-app/src/ReactPackageProvider.cpp +1 -1
- package/template/cpp-lib/proj/MyLib.sln +2 -2
- package/template/cpp-lib/proj/MyLib.vcxproj +3 -3
- package/template/cpp-lib/src/ReactPackageProvider.cpp +1 -1
- package/template/cs-app/proj/MyApp.csproj +10 -8
- package/template/cs-app/proj/MyApp.sln +2 -2
- package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +3 -3
- package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +2 -1
- package/template/cs-app-WinAppSDK/proj/MyApp.csproj +19 -15
- package/template/cs-app-WinAppSDK/proj/MyApp.sln +2 -2
- package/template/cs-lib/proj/MyLib.csproj +14 -8
- package/template/cs-lib/proj/MyLib.sln +2 -2
- package/template/shared-app/proj/ExperimentalFeatures.props +2 -0
- package/template/shared-lib/proj/ExperimentalFeatures.props +2 -0
- package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +0 -93
- package/Libraries/Components/MaskedView/MaskedViewIOS.windows.js +0 -9
- package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +0 -21
- package/Libraries/Core/setUpSystrace.js +0 -21
- package/Libraries/Image/ImagePickerIOS.js +0 -103
- package/Libraries/Image/NativeImagePickerIOS.js +0 -38
- package/Libraries/Lists/VirtualizedList.windows.js +0 -9
- package/Libraries/Lists/__tests__/CellRenderMask-test.js +0 -179
- package/Libraries/Lists/__tests__/FillRateHelper-test.js +0 -120
- package/Libraries/Lists/__tests__/FlatList-test.js +0 -155
- package/Libraries/Lists/__tests__/SectionList-test.js +0 -109
- package/Libraries/Lists/__tests__/ViewabilityHelper-test.js +0 -440
- package/Libraries/Lists/__tests__/VirtualizeUtils-test.js +0 -91
- package/Libraries/Lists/__tests__/VirtualizedList-test.js +0 -1587
- package/Libraries/Lists/__tests__/VirtualizedSectionList-test.js +0 -269
- package/Libraries/Storage/AsyncStorage.js +0 -385
- package/Libraries/Storage/NativeAsyncLocalStorage.js +0 -44
- package/Libraries/Storage/NativeAsyncSQLiteDBStorage.js +0 -44
- package/Libraries/StyleSheet/processTransform.windows.js +0 -274
- package/Libraries/Utilities/JSDevSupportModule.js +0 -37
- package/Libraries/Utilities/NativeJSDevSupport.js +0 -23
- package/Microsoft.ReactNative/Fabric/ActivityIndicatorComponentView.cpp +0 -81
- package/Microsoft.ReactNative/Fabric/ActivityIndicatorComponentView.h +0 -46
- package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.cpp +0 -118
- package/Microsoft.ReactNative/Fabric/ImageComponentView.cpp +0 -138
- package/Microsoft.ReactNative/Fabric/ImageComponentView.h +0 -49
- package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +0 -160
- package/Microsoft.ReactNative/Fabric/ParagraphComponentView.h +0 -40
- package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +0 -200
- package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.h +0 -62
- package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +0 -107
- package/Microsoft.ReactNative/Fabric/SliderComponentView.h +0 -51
- package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +0 -109
- package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +0 -52
- package/Microsoft.ReactNative/Fabric/TextComponentView.cpp +0 -98
- package/Microsoft.ReactNative/Fabric/TextComponentView.h +0 -39
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentDescriptor.h +0 -197
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +0 -308
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +0 -52
- package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +0 -229
- package/Microsoft.ReactNative/Fabric/ViewComponentView.h +0 -56
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.cpp +0 -46
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.h +0 -30
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +0 -145
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +0 -344
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/BaseTextProps.cpp +0 -313
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +0 -455
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/PropsMacros.h +0 -91
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/CompactValue.h +0 -206
- package/codegen/NativeAsyncLocalStorageSpec.g.h +0 -111
- package/codegen/NativeAsyncSQLiteDBStorageSpec.g.h +0 -111
- package/codegen/NativeImagePickerIOSSpec.g.h +0 -79
- package/codegen/NativeJSDevSupportSpec.g.h +0 -57
- package/rntypes/BatchedBridge.d.ts +0 -23
- package/rntypes/Devtools.d.ts +0 -20
- package/rntypes/LaunchScreen.d.ts +0 -9
- package/rntypes/globals.d.ts +0 -497
- package/rntypes/index.d.ts +0 -9754
- package/rntypes/legacy-properties.d.ts +0 -238
- package/typings-index.d.ts +0 -19
- package/typings-index.js +0 -44
- package/typings-index.js.map +0 -1
|
@@ -25,12 +25,41 @@
|
|
|
25
25
|
#include <Modules/NativeUIManager.h>
|
|
26
26
|
#include <Modules/PaperUIManagerModule.h>
|
|
27
27
|
#include <Windows.Foundation.h>
|
|
28
|
+
#include <queue>
|
|
29
|
+
|
|
30
|
+
#ifdef USE_FABRIC
|
|
31
|
+
#include <Fabric/Composition/CompositionContextHelper.h>
|
|
32
|
+
#include <Fabric/Composition/CompositionUIService.h>
|
|
33
|
+
#endif
|
|
28
34
|
|
|
29
35
|
namespace Microsoft::ReactNative {
|
|
36
|
+
|
|
37
|
+
NativeAnimatedNodeManager::NativeAnimatedNodeManager(winrt::Microsoft::ReactNative::ReactContext const &reactContext)
|
|
38
|
+
: m_context(reactContext) {}
|
|
39
|
+
|
|
40
|
+
const winrt::Microsoft::ReactNative::ReactContext &NativeAnimatedNodeManager::ReactContext() const noexcept {
|
|
41
|
+
return m_context;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
comp::Compositor NativeAnimatedNodeManager::Compositor() const noexcept {
|
|
45
|
+
#ifdef USE_FABRIC
|
|
46
|
+
auto compositionContext =
|
|
47
|
+
winrt::Microsoft::ReactNative::Composition::implementation::CompositionUIService::GetCompositionContext(
|
|
48
|
+
m_context.Properties().Handle());
|
|
49
|
+
if (compositionContext) {
|
|
50
|
+
return winrt::Microsoft::ReactNative::Composition::implementation::CompositionContextHelper::InnerCompositor(
|
|
51
|
+
compositionContext);
|
|
52
|
+
}
|
|
53
|
+
#endif
|
|
54
|
+
// TODO: Islands - need to get the XamlView associated with this animation in order to
|
|
55
|
+
// use the compositor Microsoft::ReactNative::GetCompositor(xamlView)
|
|
56
|
+
return Microsoft::ReactNative::GetCompositor();
|
|
57
|
+
}
|
|
58
|
+
|
|
30
59
|
void NativeAnimatedNodeManager::CreateAnimatedNode(
|
|
31
60
|
int64_t tag,
|
|
32
|
-
const
|
|
33
|
-
const
|
|
61
|
+
const ::React::JSValueObject &config,
|
|
62
|
+
const winrt::Microsoft::ReactNative::ReactContext &context,
|
|
34
63
|
const std::shared_ptr<NativeAnimatedNodeManager> &manager) {
|
|
35
64
|
if (m_transformNodes.count(tag) > 0 || m_propsNodes.count(tag) > 0 || m_styleNodes.count(tag) > 0 ||
|
|
36
65
|
m_valueNodes.count(tag) > 0) {
|
|
@@ -38,7 +67,7 @@ void NativeAnimatedNodeManager::CreateAnimatedNode(
|
|
|
38
67
|
return;
|
|
39
68
|
}
|
|
40
69
|
|
|
41
|
-
switch (const auto type = AnimatedNodeTypeFromString(config
|
|
70
|
+
switch (const auto type = AnimatedNodeTypeFromString(config["type"].AsString())) {
|
|
42
71
|
case AnimatedNodeType::Style: {
|
|
43
72
|
m_styleNodes.emplace(tag, std::make_unique<StyleAnimatedNode>(tag, config, manager));
|
|
44
73
|
break;
|
|
@@ -94,29 +123,50 @@ void NativeAnimatedNodeManager::CreateAnimatedNode(
|
|
|
94
123
|
}
|
|
95
124
|
}
|
|
96
125
|
|
|
97
|
-
void NativeAnimatedNodeManager::GetValue(
|
|
126
|
+
void NativeAnimatedNodeManager::GetValue(
|
|
127
|
+
int64_t animatedNodeTag,
|
|
128
|
+
std::function<void(double)> const &saveValueCallback) {
|
|
98
129
|
if (const auto valueNode = m_valueNodes.at(animatedNodeTag).get()) {
|
|
99
|
-
saveValueCallback(
|
|
130
|
+
saveValueCallback(valueNode->Value());
|
|
100
131
|
}
|
|
101
132
|
}
|
|
102
133
|
|
|
103
134
|
void NativeAnimatedNodeManager::ConnectAnimatedNodeToView(int64_t propsNodeTag, int64_t viewTag) {
|
|
104
|
-
m_propsNodes.at(propsNodeTag)
|
|
135
|
+
const auto &propsNode = m_propsNodes.at(propsNodeTag);
|
|
136
|
+
propsNode->ConnectToView(viewTag);
|
|
137
|
+
if (!propsNode->UseComposition()) {
|
|
138
|
+
m_updatedNodes.insert(propsNodeTag);
|
|
139
|
+
EnsureRendering();
|
|
140
|
+
}
|
|
105
141
|
}
|
|
106
142
|
|
|
107
143
|
void NativeAnimatedNodeManager::DisconnectAnimatedNodeToView(int64_t propsNodeTag, int64_t viewTag) {
|
|
108
144
|
m_propsNodes.at(propsNodeTag)->DisconnectFromView(viewTag);
|
|
109
145
|
}
|
|
110
146
|
|
|
147
|
+
void NativeAnimatedNodeManager::RestoreDefaultValues(int64_t tag) {
|
|
148
|
+
if (const auto propsNode = GetPropsAnimatedNode(tag)) {
|
|
149
|
+
propsNode->RestoreDefaultValues();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
111
153
|
void NativeAnimatedNodeManager::ConnectAnimatedNode(int64_t parentNodeTag, int64_t childNodeTag) {
|
|
112
154
|
if (const auto parentNode = GetAnimatedNode(parentNodeTag)) {
|
|
113
155
|
parentNode->AddChild(childNodeTag);
|
|
156
|
+
if (!parentNode->UseComposition()) {
|
|
157
|
+
m_updatedNodes.insert(childNodeTag);
|
|
158
|
+
EnsureRendering();
|
|
159
|
+
}
|
|
114
160
|
}
|
|
115
161
|
}
|
|
116
162
|
|
|
117
163
|
void NativeAnimatedNodeManager::DisconnectAnimatedNode(int64_t parentNodeTag, int64_t childNodeTag) {
|
|
118
164
|
if (const auto parentNode = GetAnimatedNode(parentNodeTag)) {
|
|
119
165
|
parentNode->RemoveChild(childNodeTag);
|
|
166
|
+
if (!parentNode->UseComposition()) {
|
|
167
|
+
m_updatedNodes.insert(childNodeTag);
|
|
168
|
+
EnsureRendering();
|
|
169
|
+
}
|
|
120
170
|
}
|
|
121
171
|
}
|
|
122
172
|
|
|
@@ -125,33 +175,38 @@ void NativeAnimatedNodeManager::StopAnimation(int64_t animationId, bool isTracki
|
|
|
125
175
|
if (const auto animation = m_activeAnimations.at(animationId)) {
|
|
126
176
|
animation->StopAnimation(isTrackingAnimation);
|
|
127
177
|
|
|
128
|
-
//
|
|
129
|
-
//
|
|
130
|
-
//
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
178
|
+
// We need to update the node manager state for composition animations
|
|
179
|
+
// to ensure new animations on the same animated value do not start until
|
|
180
|
+
// the completion callback has fired for the stopped animation.
|
|
181
|
+
if (animation->UseComposition()) {
|
|
182
|
+
// Insert the animation into the pending completion set to ensure it is
|
|
183
|
+
// not destroyed before the callback occurs. It's safe to assume the
|
|
184
|
+
// scoped batch completion callback has not run, since if it had, the
|
|
185
|
+
// animation would have been removed from the set of active animations.
|
|
186
|
+
m_pendingCompletionAnimations.insert({animationId, animation});
|
|
187
|
+
|
|
188
|
+
const auto nodeTag = animation->AnimatedValueTag();
|
|
189
|
+
if (nodeTag != -1) {
|
|
190
|
+
const auto deferredAnimation = m_deferredAnimationForValues.find(nodeTag);
|
|
191
|
+
if (deferredAnimation != m_deferredAnimationForValues.end()) {
|
|
192
|
+
// We can assume that the currently deferred animation is the one
|
|
193
|
+
// being stopped given the constraint that only one animation can
|
|
194
|
+
// be active for a given value node.
|
|
195
|
+
assert(deferredAnimation->second == animationId);
|
|
196
|
+
// If the animation is deferred, just remove the deferred animation
|
|
197
|
+
// entry as two animations cannot animate the same value concurrently.
|
|
198
|
+
m_deferredAnimationForValues.erase(nodeTag);
|
|
199
|
+
} else {
|
|
200
|
+
// Since only one animation can be active at a time, there shouldn't
|
|
201
|
+
// be any stopped animations for the value node if the animation has
|
|
202
|
+
// not been deferred.
|
|
203
|
+
assert(!m_valuesWithStoppedAnimation.count(nodeTag));
|
|
204
|
+
// In this case, add the value tag to the set of values with stopped
|
|
205
|
+
// animations. This is used to optimize the lookup when determining
|
|
206
|
+
// if an animation needs to be deferred (rather than iterating over
|
|
207
|
+
// the map of pending completion animations).
|
|
208
|
+
m_valuesWithStoppedAnimation.insert(nodeTag);
|
|
209
|
+
}
|
|
155
210
|
}
|
|
156
211
|
}
|
|
157
212
|
|
|
@@ -166,8 +221,9 @@ void NativeAnimatedNodeManager::RestartTrackingAnimatedNode(
|
|
|
166
221
|
const std::shared_ptr<NativeAnimatedNodeManager> &manager) {
|
|
167
222
|
if (m_activeAnimations.count(animationId)) {
|
|
168
223
|
if (const auto animation = m_activeAnimations.at(animationId).get()) {
|
|
224
|
+
assert(animation->UseComposition());
|
|
169
225
|
auto const animatedValueTag = animation->AnimatedValueTag();
|
|
170
|
-
auto const animationConfig = animation->AnimationConfig();
|
|
226
|
+
auto const &animationConfig = animation->AnimationConfig();
|
|
171
227
|
auto const endCallback = animation->EndCallback();
|
|
172
228
|
animation->StopAnimation(true);
|
|
173
229
|
m_activeAnimations.erase(animationId);
|
|
@@ -187,40 +243,35 @@ void NativeAnimatedNodeManager::StartTrackingAnimatedNode(
|
|
|
187
243
|
int64_t animationId,
|
|
188
244
|
int64_t animatedNodeTag,
|
|
189
245
|
int64_t animatedToValueTag,
|
|
190
|
-
const
|
|
191
|
-
const
|
|
246
|
+
const winrt::Microsoft::ReactNative::JSValueObject &animationConfig,
|
|
247
|
+
const EndCallback &endCallback,
|
|
192
248
|
const std::shared_ptr<NativeAnimatedNodeManager> &manager,
|
|
193
249
|
bool track) {
|
|
194
|
-
auto updatedAnimationConfig = animationConfig;
|
|
250
|
+
auto updatedAnimationConfig = animationConfig.Copy();
|
|
195
251
|
for (auto &item : m_activeAnimations) {
|
|
196
252
|
if (item.second->AnimatedValueTag() == animatedToValueTag) {
|
|
197
|
-
updatedAnimationConfig
|
|
198
|
-
|
|
199
|
-
switch (AnimationTypeFromString(animationConfig
|
|
200
|
-
case AnimationType::Frames:
|
|
253
|
+
updatedAnimationConfig[s_toValueIdName] = item.second->ToValue();
|
|
254
|
+
|
|
255
|
+
switch (AnimationTypeFromString(animationConfig["type"].AsString())) {
|
|
256
|
+
case AnimationType::Frames: {
|
|
257
|
+
winrt::Microsoft::ReactNative::JSValueArray frames;
|
|
258
|
+
for (auto const &frame : animationConfig["frames"].AsArray()) {
|
|
259
|
+
frames.push_back(0.0);
|
|
260
|
+
}
|
|
261
|
+
for (auto const &frame : item.second->Frames()) {
|
|
262
|
+
frames.push_back(frame);
|
|
263
|
+
}
|
|
201
264
|
updatedAnimationConfig.insert(
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
frames.push_back(frame);
|
|
210
|
-
}
|
|
211
|
-
return frames;
|
|
212
|
-
}());
|
|
213
|
-
break;
|
|
214
|
-
case AnimationType::Spring:
|
|
265
|
+
std::make_pair(s_framesName, winrt::Microsoft::ReactNative::JSValue(std::move(frames))));
|
|
266
|
+
} break;
|
|
267
|
+
case AnimationType::Spring: {
|
|
268
|
+
winrt::Microsoft::ReactNative::JSValueArray frames;
|
|
269
|
+
for (auto const &frame : item.second->Frames()) {
|
|
270
|
+
frames.push_back(frame);
|
|
271
|
+
}
|
|
215
272
|
updatedAnimationConfig.insert(
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
for (auto const &frame : activeFrames) {
|
|
219
|
-
dynamicToValues.push_back(frame);
|
|
220
|
-
}
|
|
221
|
-
return dynamicToValues;
|
|
222
|
-
}());
|
|
223
|
-
break;
|
|
273
|
+
std::make_pair(s_dynamicToValuesName, winrt::Microsoft::ReactNative::JSValue(std::move(frames))));
|
|
274
|
+
} break;
|
|
224
275
|
// Animated.Decay does not have a to value,
|
|
225
276
|
// so they cannot track other nodes. So we'll never
|
|
226
277
|
// have a decay tracking node.
|
|
@@ -242,10 +293,10 @@ void NativeAnimatedNodeManager::StartTrackingAnimatedNode(
|
|
|
242
293
|
void NativeAnimatedNodeManager::StartAnimatingNode(
|
|
243
294
|
int64_t animationId,
|
|
244
295
|
int64_t animatedNodeTag,
|
|
245
|
-
const
|
|
246
|
-
const
|
|
296
|
+
const winrt::Microsoft::ReactNative::JSValueObject &animationConfig,
|
|
297
|
+
const EndCallback &endCallback,
|
|
247
298
|
const std::shared_ptr<NativeAnimatedNodeManager> &manager) {
|
|
248
|
-
switch (AnimationTypeFromString(animationConfig
|
|
299
|
+
switch (AnimationTypeFromString(animationConfig["type"].AsString())) {
|
|
249
300
|
case AnimationType::Decay:
|
|
250
301
|
m_activeAnimations.emplace(
|
|
251
302
|
animationId,
|
|
@@ -257,14 +308,15 @@ void NativeAnimatedNodeManager::StartAnimatingNode(
|
|
|
257
308
|
std::make_shared<FrameAnimationDriver>(animationId, animatedNodeTag, endCallback, animationConfig, manager));
|
|
258
309
|
break;
|
|
259
310
|
case AnimationType::Spring: {
|
|
260
|
-
folly::dynamic dynamicValues = [animationConfig]() {
|
|
261
|
-
const auto dynamicValues = animationConfig.count(s_dynamicToValuesName);
|
|
262
|
-
return dynamicValues ? animationConfig.at(s_dynamicToValuesName) : folly::dynamic::array();
|
|
263
|
-
}();
|
|
264
311
|
m_activeAnimations.emplace(
|
|
265
312
|
animationId,
|
|
266
313
|
std::make_shared<SpringAnimationDriver>(
|
|
267
|
-
animationId,
|
|
314
|
+
animationId,
|
|
315
|
+
animatedNodeTag,
|
|
316
|
+
endCallback,
|
|
317
|
+
animationConfig,
|
|
318
|
+
manager,
|
|
319
|
+
animationConfig[s_dynamicToValuesName].AsArray()));
|
|
268
320
|
break;
|
|
269
321
|
}
|
|
270
322
|
default:
|
|
@@ -275,14 +327,19 @@ void NativeAnimatedNodeManager::StartAnimatingNode(
|
|
|
275
327
|
// If the animated value node has any stopped animations, defer start until
|
|
276
328
|
// all stopped animations fire completion callback and have latest values.
|
|
277
329
|
if (m_activeAnimations.count(animationId)) {
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
330
|
+
const auto &animation = m_activeAnimations.at(animationId);
|
|
331
|
+
if (animation->UseComposition()) {
|
|
332
|
+
if (m_valuesWithStoppedAnimation.count(animatedNodeTag)) {
|
|
333
|
+
// Since only one animation can be active per value at a time, there will
|
|
334
|
+
// not be any other deferred animations for the value node.
|
|
335
|
+
assert(!m_deferredAnimationForValues.count(animatedNodeTag));
|
|
336
|
+
// Add the animation to the deferred animation map for the value tag.
|
|
337
|
+
m_deferredAnimationForValues.insert({animatedNodeTag, animationId});
|
|
338
|
+
} else {
|
|
339
|
+
StartAnimationAndTrackingNodes(animationId, animatedNodeTag, manager);
|
|
340
|
+
}
|
|
284
341
|
} else {
|
|
285
|
-
|
|
342
|
+
EnsureRendering();
|
|
286
343
|
}
|
|
287
344
|
}
|
|
288
345
|
}
|
|
@@ -292,17 +349,27 @@ void NativeAnimatedNodeManager::DropAnimatedNode(int64_t tag) {
|
|
|
292
349
|
m_propsNodes.erase(tag);
|
|
293
350
|
m_styleNodes.erase(tag);
|
|
294
351
|
m_transformNodes.erase(tag);
|
|
352
|
+
m_updatedNodes.erase(tag);
|
|
295
353
|
}
|
|
296
354
|
|
|
297
355
|
void NativeAnimatedNodeManager::SetAnimatedNodeValue(int64_t tag, double value) {
|
|
298
356
|
if (const auto valueNode = m_valueNodes.at(tag).get()) {
|
|
299
357
|
valueNode->RawValue(static_cast<float>(value));
|
|
358
|
+
if (!valueNode->UseComposition()) {
|
|
359
|
+
StopAnimationsForNode(tag);
|
|
360
|
+
m_updatedNodes.insert(tag);
|
|
361
|
+
EnsureRendering();
|
|
362
|
+
}
|
|
300
363
|
}
|
|
301
364
|
}
|
|
302
365
|
|
|
303
366
|
void NativeAnimatedNodeManager::SetAnimatedNodeOffset(int64_t tag, double offset) {
|
|
304
367
|
if (const auto valueNode = m_valueNodes.at(tag).get()) {
|
|
305
368
|
valueNode->Offset(static_cast<float>(offset));
|
|
369
|
+
if (!valueNode->UseComposition()) {
|
|
370
|
+
m_updatedNodes.insert(tag);
|
|
371
|
+
EnsureRendering();
|
|
372
|
+
}
|
|
306
373
|
}
|
|
307
374
|
}
|
|
308
375
|
|
|
@@ -318,13 +385,25 @@ void NativeAnimatedNodeManager::ExtractAnimatedNodeOffset(int64_t tag) {
|
|
|
318
385
|
}
|
|
319
386
|
}
|
|
320
387
|
|
|
388
|
+
void NativeAnimatedNodeManager::StartListeningToAnimatedNodeValue(int64_t tag, const ValueListenerCallback &callback) {
|
|
389
|
+
if (const auto valueNode = m_valueNodes.at(tag).get()) {
|
|
390
|
+
valueNode->ValueListener(callback);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
void NativeAnimatedNodeManager::StopListeningToAnimatedNodeValue(int64_t tag) {
|
|
395
|
+
if (const auto valueNode = m_valueNodes.at(tag).get()) {
|
|
396
|
+
valueNode->ValueListener(nullptr);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
|
|
321
400
|
void NativeAnimatedNodeManager::AddAnimatedEventToView(
|
|
322
401
|
int64_t viewTag,
|
|
323
402
|
const std::string &eventName,
|
|
324
|
-
const
|
|
403
|
+
const ReactNativeSpecs::AnimatedModuleSpec_EventMapping &eventMapping,
|
|
325
404
|
const std::shared_ptr<NativeAnimatedNodeManager> &manager) {
|
|
326
|
-
const auto valueNodeTag = static_cast<int64_t>(eventMapping.
|
|
327
|
-
const auto pathList = eventMapping.
|
|
405
|
+
const auto valueNodeTag = eventMapping.animatedValueTag ? static_cast<int64_t>(*eventMapping.animatedValueTag) : 0;
|
|
406
|
+
const auto pathList = eventMapping.nativeEventPath;
|
|
328
407
|
|
|
329
408
|
const auto key = std::make_tuple(viewTag, eventName);
|
|
330
409
|
if (m_eventDrivers.count(key)) {
|
|
@@ -375,10 +454,13 @@ void NativeAnimatedNodeManager::ProcessDelayedPropsNodes() {
|
|
|
375
454
|
|
|
376
455
|
void NativeAnimatedNodeManager::AddDelayedPropsNode(
|
|
377
456
|
int64_t propsNodeTag,
|
|
378
|
-
const
|
|
457
|
+
const winrt::Microsoft::ReactNative::ReactContext &context) {
|
|
458
|
+
#if DEBUG
|
|
459
|
+
assert(m_propsNodes.at(propsNodeTag)->UseComposition());
|
|
460
|
+
#endif
|
|
379
461
|
m_delayedPropsNodes.push_back(propsNodeTag);
|
|
380
462
|
if (m_delayedPropsNodes.size() <= 1) {
|
|
381
|
-
if (const auto uiManger = Microsoft::ReactNative::GetNativeUIManager(
|
|
463
|
+
if (const auto uiManger = Microsoft::ReactNative::GetNativeUIManager(context).lock()) {
|
|
382
464
|
uiManger->AddBatchCompletedCallback([this]() { ProcessDelayedPropsNodes(); });
|
|
383
465
|
}
|
|
384
466
|
}
|
|
@@ -480,4 +562,176 @@ void NativeAnimatedNodeManager::StartAnimationAndTrackingNodes(
|
|
|
480
562
|
}
|
|
481
563
|
}
|
|
482
564
|
}
|
|
565
|
+
|
|
566
|
+
void NativeAnimatedNodeManager::RunUpdates(winrt::TimeSpan renderingTime) {
|
|
567
|
+
auto hasFinishedAnimations = false;
|
|
568
|
+
std::unordered_set<int64_t> updatingNodes{};
|
|
569
|
+
updatingNodes = std::move(m_updatedNodes);
|
|
570
|
+
|
|
571
|
+
// Increment animation drivers
|
|
572
|
+
for (auto id : m_activeAnimationIds) {
|
|
573
|
+
auto &animation = m_activeAnimations.at(id);
|
|
574
|
+
animation->RunAnimationStep(renderingTime);
|
|
575
|
+
updatingNodes.insert(animation->AnimatedValueTag());
|
|
576
|
+
if (animation->IsComplete()) {
|
|
577
|
+
hasFinishedAnimations = true;
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
UpdateNodes(updatingNodes);
|
|
582
|
+
|
|
583
|
+
if (hasFinishedAnimations) {
|
|
584
|
+
for (auto id : m_activeAnimationIds) {
|
|
585
|
+
auto &animation = m_activeAnimations.at(id);
|
|
586
|
+
if (animation->IsComplete()) {
|
|
587
|
+
animation->DoCallback(true);
|
|
588
|
+
m_activeAnimations.erase(id);
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
void NativeAnimatedNodeManager::EnsureRendering() {
|
|
595
|
+
m_renderingRevoker =
|
|
596
|
+
xaml::Media::CompositionTarget::Rendering(winrt::auto_revoke, {this, &NativeAnimatedNodeManager::OnRendering});
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
void NativeAnimatedNodeManager::OnRendering(winrt::IInspectable const &sender, winrt::IInspectable const &args) {
|
|
600
|
+
// The `UpdateActiveAnimationIds` method only tracks animations where
|
|
601
|
+
// composition is not used, so if only UI.Composition animations are active,
|
|
602
|
+
// this rendering callback will not run.
|
|
603
|
+
UpdateActiveAnimationIds();
|
|
604
|
+
if (m_activeAnimationIds.size() > 0 || m_updatedNodes.size() > 0) {
|
|
605
|
+
if (const auto renderingArgs = args.try_as<xaml::Media::RenderingEventArgs>()) {
|
|
606
|
+
RunUpdates(renderingArgs.RenderingTime());
|
|
607
|
+
}
|
|
608
|
+
} else {
|
|
609
|
+
m_renderingRevoker.revoke();
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
void NativeAnimatedNodeManager::StopAnimationsForNode(int64_t tag) {
|
|
614
|
+
UpdateActiveAnimationIds();
|
|
615
|
+
for (auto id : m_activeAnimationIds) {
|
|
616
|
+
auto &animation = m_activeAnimations.at(id);
|
|
617
|
+
if (tag == animation->AnimatedValueTag()) {
|
|
618
|
+
animation->DoCallback(false);
|
|
619
|
+
m_activeAnimations.erase(id);
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
void NativeAnimatedNodeManager::UpdateActiveAnimationIds() {
|
|
625
|
+
m_activeAnimationIds.clear();
|
|
626
|
+
for (const auto &pair : m_activeAnimations) {
|
|
627
|
+
if (!pair.second->UseComposition()) {
|
|
628
|
+
m_activeAnimationIds.push_back(pair.first);
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
void NativeAnimatedNodeManager::UpdateNodes(std::unordered_set<int64_t> &nodes) {
|
|
634
|
+
auto activeNodesCount = 0;
|
|
635
|
+
auto updatedNodesCount = 0;
|
|
636
|
+
|
|
637
|
+
// BFS state
|
|
638
|
+
std::unordered_map<int64_t, int64_t> bfsColors;
|
|
639
|
+
std::unordered_map<int64_t, int64_t> incomingNodeCounts;
|
|
640
|
+
|
|
641
|
+
// STEP 1.
|
|
642
|
+
// BFS over graph of nodes starting from IDs in `nodes` argument and IDs that are attached to
|
|
643
|
+
// active animations (from `m_activeAnimations)`. Update `incomingNodeCounts` map for each node
|
|
644
|
+
// during that BFS. Store number of visited nodes in `activeNodesCount`. We "execute" active
|
|
645
|
+
// animations as a part of this step.
|
|
646
|
+
|
|
647
|
+
m_animatedGraphBFSColor++; /* use new color */
|
|
648
|
+
if (m_animatedGraphBFSColor == 0) {
|
|
649
|
+
// value "0" is used as an initial color for a new node, using it in BFS may cause some nodes to be skipped.
|
|
650
|
+
m_animatedGraphBFSColor++;
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
std::queue<int64_t> nodesQueue{};
|
|
654
|
+
for (auto id : nodes) {
|
|
655
|
+
if (!bfsColors.count(id) || bfsColors.at(id) != m_animatedGraphBFSColor) {
|
|
656
|
+
bfsColors[id] = m_animatedGraphBFSColor;
|
|
657
|
+
activeNodesCount++;
|
|
658
|
+
nodesQueue.push(id);
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
while (nodesQueue.size() > 0) {
|
|
663
|
+
auto id = nodesQueue.front();
|
|
664
|
+
nodesQueue.pop();
|
|
665
|
+
if (auto node = GetAnimatedNode(id)) {
|
|
666
|
+
for (auto &childId : node->Children()) {
|
|
667
|
+
if (!incomingNodeCounts.count(childId)) {
|
|
668
|
+
incomingNodeCounts[childId] = 1;
|
|
669
|
+
} else {
|
|
670
|
+
incomingNodeCounts.at(childId)++;
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
if (!bfsColors.count(childId) || bfsColors.at(childId) != m_animatedGraphBFSColor) {
|
|
674
|
+
bfsColors[childId] = m_animatedGraphBFSColor;
|
|
675
|
+
activeNodesCount++;
|
|
676
|
+
nodesQueue.push(childId);
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
// STEP 2
|
|
683
|
+
// BFS over the graph of active nodes in topological order -> visit node only when all its
|
|
684
|
+
// "predecessors" in the graph have already been visited. It is important to visit nodes in that
|
|
685
|
+
// order as they may often use values of their predecessors in order to calculate "next state"
|
|
686
|
+
// of their own. We start by determining the starting set of nodes by looking for nodes with
|
|
687
|
+
// `incomingNodeCounts[id] = 0` (those can only be the ones that we start BFS in the previous
|
|
688
|
+
// step). We store number of visited nodes in this step in `updatedNodesCount`
|
|
689
|
+
|
|
690
|
+
m_animatedGraphBFSColor++;
|
|
691
|
+
if (m_animatedGraphBFSColor == 0) {
|
|
692
|
+
// see reasoning for this check a few lines above
|
|
693
|
+
m_animatedGraphBFSColor++;
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
// find nodes with zero "incoming nodes", those can be either nodes from `m_updatedNodes` or
|
|
697
|
+
// ones connected to active animations
|
|
698
|
+
for (auto id : nodes) {
|
|
699
|
+
if (!incomingNodeCounts.count(id) ||
|
|
700
|
+
incomingNodeCounts.at(id) == 0 && bfsColors.at(id) != m_animatedGraphBFSColor) {
|
|
701
|
+
bfsColors[id] = m_animatedGraphBFSColor;
|
|
702
|
+
updatedNodesCount++;
|
|
703
|
+
nodesQueue.push(id);
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
// Run main "update" loop
|
|
708
|
+
while (nodesQueue.size() > 0) {
|
|
709
|
+
auto id = nodesQueue.front();
|
|
710
|
+
nodesQueue.pop();
|
|
711
|
+
if (auto node = GetAnimatedNode(id)) {
|
|
712
|
+
node->Update();
|
|
713
|
+
if (auto propsNode = GetPropsAnimatedNode(id)) {
|
|
714
|
+
propsNode->UpdateView();
|
|
715
|
+
} else if (auto valueNode = GetValueAnimatedNode(id)) {
|
|
716
|
+
valueNode->OnValueUpdate();
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
for (auto &childId : node->Children()) {
|
|
720
|
+
auto &incomingCount = incomingNodeCounts.at(childId);
|
|
721
|
+
auto &bfsColor = bfsColors.at(childId);
|
|
722
|
+
incomingCount--;
|
|
723
|
+
if (bfsColor != m_animatedGraphBFSColor && incomingCount == 0) {
|
|
724
|
+
bfsColor = m_animatedGraphBFSColor;
|
|
725
|
+
updatedNodesCount++;
|
|
726
|
+
nodesQueue.push(childId);
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
// Verify that we've visited *all* active nodes. Throw otherwise as this would mean there is a
|
|
733
|
+
// cycle in animated node graph. We also take advantage of the fact that all active nodes are
|
|
734
|
+
// visited in the step above so that `incomingNodeCounts` for all node IDs are set to zero
|
|
735
|
+
assert(activeNodesCount == updatedNodesCount);
|
|
736
|
+
}
|
|
483
737
|
} // namespace Microsoft::ReactNative
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// Licensed under the MIT License.
|
|
6
6
|
|
|
7
7
|
#include <IReactInstance.h>
|
|
8
|
+
#include <UI.Xaml.Media.h>
|
|
8
9
|
#include <cxxreact/CxxModule.h>
|
|
9
10
|
#include <folly/dynamic.h>
|
|
10
11
|
#include "AnimatedNode.h"
|
|
@@ -16,6 +17,8 @@
|
|
|
16
17
|
#include "TransformAnimatedNode.h"
|
|
17
18
|
#include "ValueAnimatedNode.h"
|
|
18
19
|
|
|
20
|
+
#include "codegen/NativeAnimatedModuleSpec.g.h"
|
|
21
|
+
|
|
19
22
|
namespace Microsoft::ReactNative {
|
|
20
23
|
/// <summary>
|
|
21
24
|
/// This is the main class that coordinates how native animated JS
|
|
@@ -27,7 +30,8 @@ namespace Microsoft::ReactNative {
|
|
|
27
30
|
///
|
|
28
31
|
/// </summary>
|
|
29
32
|
|
|
30
|
-
typedef std::function<void(
|
|
33
|
+
typedef std::function<void(bool)> EndCallback;
|
|
34
|
+
typedef std::function<void(double)> ValueListenerCallback;
|
|
31
35
|
|
|
32
36
|
class AnimatedNode;
|
|
33
37
|
class StyleAnimatedNode;
|
|
@@ -39,14 +43,18 @@ class AnimationDriver;
|
|
|
39
43
|
class EventAnimationDriver;
|
|
40
44
|
class NativeAnimatedNodeManager {
|
|
41
45
|
public:
|
|
46
|
+
NativeAnimatedNodeManager(winrt::Microsoft::ReactNative::ReactContext const &reactContext);
|
|
47
|
+
const winrt::Microsoft::ReactNative::ReactContext &ReactContext() const noexcept;
|
|
48
|
+
comp::Compositor Compositor() const noexcept;
|
|
42
49
|
void CreateAnimatedNode(
|
|
43
50
|
int64_t tag,
|
|
44
|
-
const
|
|
45
|
-
const
|
|
51
|
+
const winrt::Microsoft::ReactNative::JSValueObject &config,
|
|
52
|
+
const winrt::Microsoft::ReactNative::ReactContext &context,
|
|
46
53
|
const std::shared_ptr<NativeAnimatedNodeManager> &manager);
|
|
47
|
-
void GetValue(int64_t animatedNodeTag, const
|
|
54
|
+
void GetValue(int64_t animatedNodeTag, std::function<void(double)> const &endCallback);
|
|
48
55
|
void ConnectAnimatedNodeToView(int64_t propsNodeTag, int64_t viewTag);
|
|
49
56
|
void DisconnectAnimatedNodeToView(int64_t propsNodeTag, int64_t viewTag);
|
|
57
|
+
void RestoreDefaultValues(int64_t tag);
|
|
50
58
|
void ConnectAnimatedNode(int64_t parentNodeTag, int64_t childNodeTag);
|
|
51
59
|
void DisconnectAnimatedNode(int64_t parentNodeTag, int64_t childNodeTag);
|
|
52
60
|
void StopAnimation(int64_t animationId, bool isTrackingAnimation = false);
|
|
@@ -58,29 +66,31 @@ class NativeAnimatedNodeManager {
|
|
|
58
66
|
int64_t animationId,
|
|
59
67
|
int64_t animatedNodeTag,
|
|
60
68
|
int64_t animatedToValueTag,
|
|
61
|
-
const
|
|
62
|
-
const
|
|
69
|
+
const winrt::Microsoft::ReactNative::JSValueObject &animationConfig,
|
|
70
|
+
const EndCallback &endCallback,
|
|
63
71
|
const std::shared_ptr<NativeAnimatedNodeManager> &manager,
|
|
64
72
|
bool track = true);
|
|
65
73
|
void StartAnimatingNode(
|
|
66
74
|
int64_t animationId,
|
|
67
75
|
int64_t animatedNodeTag,
|
|
68
|
-
const
|
|
69
|
-
const
|
|
76
|
+
const winrt::Microsoft::ReactNative::JSValueObject &animationConfig,
|
|
77
|
+
const EndCallback &endCallback,
|
|
70
78
|
const std::shared_ptr<NativeAnimatedNodeManager> &manager);
|
|
71
79
|
void DropAnimatedNode(int64_t tag);
|
|
72
80
|
void SetAnimatedNodeValue(int64_t tag, double value);
|
|
73
81
|
void SetAnimatedNodeOffset(int64_t tag, double offset);
|
|
74
82
|
void FlattenAnimatedNodeOffset(int64_t tag);
|
|
75
83
|
void ExtractAnimatedNodeOffset(int64_t tag);
|
|
84
|
+
void StartListeningToAnimatedNodeValue(int64_t tag, const ValueListenerCallback &callback);
|
|
85
|
+
void StopListeningToAnimatedNodeValue(int64_t tag);
|
|
76
86
|
void AddAnimatedEventToView(
|
|
77
87
|
int64_t viewTag,
|
|
78
88
|
const std::string &eventName,
|
|
79
|
-
const
|
|
89
|
+
const ReactNativeSpecs::AnimatedModuleSpec_EventMapping &eventMapping,
|
|
80
90
|
const std::shared_ptr<NativeAnimatedNodeManager> &manager);
|
|
81
91
|
void RemoveAnimatedEventFromView(int64_t viewTag, const std::string &eventName, int64_t animatedValueTag);
|
|
82
92
|
void ProcessDelayedPropsNodes();
|
|
83
|
-
void AddDelayedPropsNode(int64_t propsNodeTag, const
|
|
93
|
+
void AddDelayedPropsNode(int64_t propsNodeTag, const winrt::Microsoft::ReactNative::ReactContext &context);
|
|
84
94
|
|
|
85
95
|
AnimatedNode *GetAnimatedNode(int64_t tag);
|
|
86
96
|
ValueAnimatedNode *GetValueAnimatedNode(int64_t tag);
|
|
@@ -100,6 +110,13 @@ class NativeAnimatedNodeManager {
|
|
|
100
110
|
const std::shared_ptr<NativeAnimatedNodeManager> &manager);
|
|
101
111
|
|
|
102
112
|
private:
|
|
113
|
+
void EnsureRendering();
|
|
114
|
+
void OnRendering(winrt::IInspectable const &sender, winrt::IInspectable const &args);
|
|
115
|
+
void RunUpdates(winrt::TimeSpan renderingTime);
|
|
116
|
+
void StopAnimationsForNode(int64_t tag);
|
|
117
|
+
void UpdateActiveAnimationIds();
|
|
118
|
+
void UpdateNodes(std::unordered_set<int64_t> &nodes);
|
|
119
|
+
|
|
103
120
|
std::unordered_map<int64_t, std::unique_ptr<ValueAnimatedNode>> m_valueNodes{};
|
|
104
121
|
std::unordered_map<int64_t, std::unique_ptr<PropsAnimatedNode>> m_propsNodes{};
|
|
105
122
|
std::unordered_map<int64_t, std::unique_ptr<StyleAnimatedNode>> m_styleNodes{};
|
|
@@ -113,6 +130,12 @@ class NativeAnimatedNodeManager {
|
|
|
113
130
|
std::unordered_map<int64_t, int64_t> m_deferredAnimationForValues{};
|
|
114
131
|
std::vector<std::tuple<int64_t, int64_t>> m_trackingAndLeadNodeTags{};
|
|
115
132
|
std::vector<int64_t> m_delayedPropsNodes{};
|
|
133
|
+
winrt::Microsoft::ReactNative::ReactContext m_context;
|
|
134
|
+
|
|
135
|
+
std::unordered_set<int64_t> m_updatedNodes{};
|
|
136
|
+
std::vector<int64_t> m_activeAnimationIds{};
|
|
137
|
+
int64_t m_animatedGraphBFSColor{};
|
|
138
|
+
xaml::Media::CompositionTarget::Rendering_revoker m_renderingRevoker;
|
|
116
139
|
|
|
117
140
|
static constexpr std::string_view s_toValueIdName{"toValue"};
|
|
118
141
|
static constexpr std::string_view s_framesName{"frames"};
|