react-native-windows 0.71.10 → 0.72.0-preview.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.flowconfig +13 -3
- package/Directory.Build.props +19 -19
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +1 -1
- package/Libraries/Alert/Alert.d.ts +4 -4
- package/Libraries/Alert/Alert.windows.js +2 -0
- package/Libraries/Alert/NativeDialogManagerWindows.js +1 -0
- package/Libraries/Animated/Animated.d.ts +17 -6
- package/Libraries/Animated/NativeAnimatedHelper.js +18 -6
- package/Libraries/Animated/bezier.js +1 -1
- package/Libraries/Animated/components/AnimatedFlatList.js +8 -3
- package/Libraries/Animated/components/AnimatedScrollView.js +4 -1
- package/Libraries/Animated/components/AnimatedSectionList.js +12 -3
- package/Libraries/Animated/createAnimatedComponent.js +26 -239
- package/Libraries/Animated/nodes/AnimatedColor.js +47 -80
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +167 -121
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -5
- package/Libraries/Animated/nodes/AnimatedProps.js +7 -6
- package/Libraries/Animated/nodes/AnimatedStyle.js +42 -8
- package/Libraries/Animated/nodes/AnimatedTransform.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValue.js +8 -12
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
- package/Libraries/Animated/useAnimatedProps.js +7 -10
- package/Libraries/AppTheme/AppTheme.js +1 -0
- package/Libraries/AppTheme/AppThemeTypes.d.ts +1 -1
- package/Libraries/BatchedBridge/MessageQueue.js +2 -1
- package/Libraries/BatchedBridge/NativeModules.d.ts +1 -1
- package/Libraries/BatchedBridge/NativeModules.js +1 -0
- package/Libraries/Blob/Blob.js +4 -0
- package/Libraries/Blob/FileReader.js +30 -2
- package/Libraries/Blob/URL.js +3 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +2 -2
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -3
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +2 -3
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +6 -4
- package/Libraries/Components/Button.js +3 -2
- package/Libraries/Components/Button.windows.js +3 -2
- package/Libraries/Components/Clipboard/Clipboard.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
- package/Libraries/Components/Flyout/Flyout.d.ts +55 -19
- package/Libraries/Components/Flyout/Flyout.js +110 -51
- package/Libraries/Components/Flyout/FlyoutNativeComponent.js +45 -0
- package/Libraries/Components/Glyph/Glyph.d.ts +29 -12
- package/Libraries/Components/Glyph/Glyph.js +43 -30
- package/Libraries/Components/Glyph/GlyphNativeComponent.js +31 -0
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -0
- package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +2 -2
- package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
- package/Libraries/Components/Popup/Popup.d.ts +41 -19
- package/Libraries/Components/Popup/Popup.js +86 -52
- package/Libraries/Components/Popup/PopupNativeComponent.js +49 -0
- package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
- package/Libraries/Components/Pressable/Pressable.js +1 -1
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -0
- package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -2
- package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +1 -2
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +12 -6
- package/Libraries/Components/ScrollView/ScrollView.d.ts +2 -2
- package/Libraries/Components/ScrollView/ScrollView.js +149 -91
- package/Libraries/Components/ScrollView/ScrollView.windows.js +1939 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -6
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +175 -0
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -7
- package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +3 -0
- package/Libraries/Components/Switch/Switch.js +3 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +21 -11
- package/Libraries/Components/TextInput/InputAccessoryView.d.ts +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +11 -5
- package/Libraries/Components/TextInput/TextInput.d.ts +15 -5
- package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
- package/Libraries/Components/TextInput/TextInput.js +130 -103
- package/Libraries/Components/TextInput/TextInput.windows.js +152 -115
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
- package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
- package/Libraries/Components/Touchable/Touchable.flow.js +30 -4
- package/Libraries/Components/Touchable/Touchable.js +6 -3
- package/Libraries/Components/Touchable/Touchable.windows.js +6 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +2 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
- package/Libraries/Components/Touchable/TouchableOpacity.js +3 -0
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -2
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +179 -0
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
- package/Libraries/Components/View/View.js +35 -16
- package/Libraries/Components/View/View.windows.js +40 -16
- package/Libraries/Components/View/ViewAccessibility.d.ts +6 -6
- package/Libraries/Components/View/ViewAccessibility.js +10 -1
- package/Libraries/Components/View/ViewAccessibility.windows.js +9 -0
- package/Libraries/Components/View/ViewNativeComponent.js +32 -8
- package/Libraries/Components/View/ViewPropTypes.d.ts +1 -1
- package/Libraries/Components/View/ViewPropTypes.js +1 -1
- package/Libraries/Components/View/ViewPropTypes.windows.js +3 -1
- package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
- package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
- package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
- package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
- package/Libraries/Core/ExceptionsManager.js +2 -2
- package/Libraries/Core/InitializeCore.js +2 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/ReactNativeVersionCheck.js +4 -8
- package/Libraries/Core/Timers/JSTimers.js +1 -1
- package/Libraries/Core/Timers/immediateShim.js +1 -0
- package/Libraries/Core/Timers/queueMicrotask.js +1 -1
- package/Libraries/Core/setUpAlert.js +1 -1
- package/Libraries/Core/setUpDOM.js +18 -0
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpGlobals.js +5 -2
- package/Libraries/Core/setUpNavigator.js +6 -5
- package/Libraries/Core/setUpPerformance.js +23 -13
- package/Libraries/Core/setUpReactDevTools.js +2 -0
- package/Libraries/Core/setUpSegmentFetcher.js +0 -41
- package/Libraries/Core/setUpTimers.js +2 -2
- package/Libraries/DOM/Geometry/DOMRect.js +82 -0
- package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
- package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
- package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
- package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
- package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
- package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
- package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
- package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +35 -0
- package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +24 -0
- package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
- package/Libraries/Events/EventPolyfill.js +1 -1
- package/Libraries/Image/AssetRegistry.js +1 -1
- package/Libraries/Image/AssetSourceResolver.js +3 -3
- package/Libraries/Image/Image.android.js +4 -1
- package/Libraries/Image/Image.d.ts +63 -2
- package/Libraries/Image/Image.ios.js +3 -0
- package/Libraries/Image/Image.windows.js +3 -0
- package/Libraries/Image/ImageBackground.js +1 -0
- package/Libraries/Image/ImageProps.js +1 -1
- package/Libraries/Image/ImageViewNativeComponent.js +4 -4
- package/Libraries/Image/RelativeImageStub.js +1 -1
- package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
- package/Libraries/Image/resolveAssetSource.js +1 -1
- package/Libraries/Inspector/DevtoolsOverlay.js +26 -19
- package/Libraries/Inspector/ElementBox.js +4 -1
- package/Libraries/Inspector/Inspector.js +5 -6
- package/Libraries/Inspector/InspectorOverlay.js +3 -3
- package/Libraries/Inspector/NetworkOverlay.js +1 -1
- package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
- package/Libraries/Interaction/PanResponder.js +5 -6
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
- package/Libraries/Linking/Linking.js +1 -4
- package/Libraries/Lists/FillRateHelper.js +4 -238
- package/Libraries/Lists/FlatList.d.ts +15 -22
- package/Libraries/Lists/FlatList.js +9 -6
- package/Libraries/Lists/SectionList.d.ts +10 -6
- package/Libraries/Lists/SectionList.js +5 -3
- package/Libraries/Lists/SectionListModern.js +3 -3
- package/Libraries/Lists/ViewabilityHelper.js +8 -344
- package/Libraries/Lists/VirtualizeUtils.js +4 -244
- package/Libraries/Lists/VirtualizedList.js +10 -1867
- package/Libraries/Lists/VirtualizedListContext.js +6 -104
- package/Libraries/Lists/VirtualizedSectionList.js +9 -602
- package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
- package/Libraries/LogBox/Data/LogBoxData.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
- package/Libraries/LogBox/LogBox.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +167 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +172 -0
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +193 -0
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +118 -0
- package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
- package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
- package/Libraries/Modal/Modal.js +2 -2
- package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +77 -19
- package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
- package/Libraries/NativeComponent/ViewConfig.js +1 -0
- package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
- package/Libraries/Network/RCTNetworking.android.js +2 -2
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.windows.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/Pressability/Pressability.js +10 -4
- package/Libraries/Pressability/Pressability.windows.js +11 -4
- package/Libraries/ReactNative/AppContainer.js +7 -1
- package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
- package/Libraries/ReactNative/AppRegistry.js +10 -13
- package/Libraries/ReactNative/FabricUIManager.js +24 -8
- package/Libraries/ReactNative/NativeUIManager.js +5 -5
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
- package/Libraries/ReactNative/UIManager.js +168 -1
- package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
- package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
- package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
- package/Libraries/ReactNative/requireNativeComponent.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
- package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
- package/Libraries/Renderer/shims/ReactNativeTypes.js +6 -6
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
- package/Libraries/Share/Share.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
- package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
- package/Libraries/StyleSheet/flattenStyle.js +2 -0
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processColor.js +1 -1
- package/Libraries/Text/Text.d.ts +12 -2
- package/Libraries/Text/Text.js +50 -41
- package/Libraries/Text/Text.windows.js +48 -38
- package/Libraries/Text/TextProps.js +3 -4
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
- package/Libraries/Types/CodegenTypes.js +1 -0
- package/Libraries/UTFSequence.js +3 -1
- package/Libraries/Utilities/Appearance.d.ts +10 -0
- package/Libraries/Utilities/Appearance.js +13 -0
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
- package/Libraries/Utilities/HMRClient.js +16 -10
- package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
- package/Libraries/Utilities/IPerformanceLogger.js +49 -0
- package/Libraries/Utilities/LoadingView.android.js +28 -11
- package/Libraries/Utilities/NativeAppearance.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
- package/Libraries/Utilities/PixelRatio.js +2 -2
- package/Libraries/Utilities/Platform.windows.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
- package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +2 -0
- package/Libraries/Utilities/createPerformanceLogger.js +55 -43
- package/Libraries/Utilities/stringifySafe.js +2 -7
- package/Libraries/Utilities/useColorScheme.windows.js +26 -0
- package/Libraries/Utilities/useWindowDimensions.js +3 -3
- package/Libraries/WebPerformance/EventCounts.js +78 -0
- package/Libraries/WebPerformance/MemoryInfo.js +54 -0
- package/Libraries/WebPerformance/NativePerformance.js +38 -0
- package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
- package/Libraries/WebPerformance/Performance.js +312 -0
- package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
- package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
- package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
- package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
- package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
- package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
- package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
- package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
- package/Libraries/platform-types.d.ts +3 -5
- package/Libraries/vendor/core/ErrorUtils.js +1 -1
- package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
- package/Libraries/vendor/emitter/EventEmitter.js +9 -1
- package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +0 -15
- package/Microsoft.ReactNative/CompositionHwndHost.idl +6 -0
- package/Microsoft.ReactNative/CompositionRootView.idl +35 -0
- package/Microsoft.ReactNative/CompositionSwitcher.idl +19 -0
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +174 -0
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +91 -0
- package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +48 -0
- package/Microsoft.ReactNative/Fabric/AbiViewProps.h +48 -0
- package/Microsoft.ReactNative/Fabric/ComponentView.h +19 -2
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +144 -0
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +63 -0
- package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +27 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +97 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +227 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +38 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +112 -95
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +12 -8
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +0 -2
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +27 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +8 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +147 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +46 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +31 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +37 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +255 -50
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +34 -15
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +127 -47
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +11 -7
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +109 -39
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +10 -7
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +106 -0
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +63 -0
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +116 -0
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +43 -0
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +53 -38
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +12 -8
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +262 -0
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +62 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +35 -30
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +11 -9
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +9 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +2 -1
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +72 -0
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +16 -0
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +168 -0
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +49 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +19 -53
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -3
- package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +8 -9
- package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +100 -0
- package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.h +43 -0
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +61 -0
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +34 -0
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +42 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +10 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +248 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +135 -4
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +18 -240
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -17
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +13 -2
- package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +87 -0
- package/Microsoft.ReactNative/IReactContext.cpp +4 -0
- package/Microsoft.ReactNative/IReactContext.h +1 -0
- package/Microsoft.ReactNative/IReactContext.idl +5 -0
- package/Microsoft.ReactNative/IReactDispatcher.cpp +4 -0
- package/Microsoft.ReactNative/IReactDispatcher.h +1 -0
- package/Microsoft.ReactNative/IReactPackageBuilderFabric.idl +23 -0
- package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +23 -0
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -118
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -7
- package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +1 -1
- package/Microsoft.ReactNative/Modules/AlertModule.cpp +100 -4
- package/Microsoft.ReactNative/Modules/AlertModule.h +4 -0
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.cpp +9 -0
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.h +2 -0
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +7 -5
- package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +17 -3
- package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.h +1 -0
- package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +4 -0
- package/Microsoft.ReactNative/Modules/AppearanceModule.h +3 -0
- package/Microsoft.ReactNative/Modules/ClipboardModule.cpp +4 -4
- package/Microsoft.ReactNative/Modules/ClipboardModule.h +2 -2
- package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +27 -7
- package/Microsoft.ReactNative/Modules/ImageViewManagerModule.h +9 -5
- package/Microsoft.ReactNative/Modules/LinkingManagerModule.cpp +10 -12
- package/Microsoft.ReactNative/Modules/LinkingManagerModule.h +4 -4
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -1
- package/Microsoft.ReactNative/QuirkSettings.cpp +17 -0
- package/Microsoft.ReactNative/QuirkSettings.h +5 -0
- package/Microsoft.ReactNative/QuirkSettings.idl +6 -0
- package/Microsoft.ReactNative/ReactApplication.cpp +8 -0
- package/Microsoft.ReactNative/ReactApplication.h +3 -0
- package/Microsoft.ReactNative/ReactApplication.idl +3 -0
- package/Microsoft.ReactNative/ReactCoreInjection.cpp +29 -0
- package/Microsoft.ReactNative/ReactCoreInjection.h +6 -0
- package/Microsoft.ReactNative/ReactCoreInjection.idl +13 -0
- package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +7 -0
- package/Microsoft.ReactNative/ReactHost/MsoReactContext.h +1 -0
- package/Microsoft.ReactNative/ReactHost/React.h +2 -0
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +57 -16
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -0
- package/Microsoft.ReactNative/ReactInstanceSettings.h +12 -0
- package/Microsoft.ReactNative/ReactInstanceSettings.idl +6 -0
- package/Microsoft.ReactNative/ReactNativeHost.cpp +17 -0
- package/Microsoft.ReactNative/ReactPackageBuilder.cpp +18 -0
- package/Microsoft.ReactNative/ReactPackageBuilder.h +24 -1
- package/Microsoft.ReactNative/ReactRootView.cpp +2 -2
- package/Microsoft.ReactNative/RedBox.cpp +2 -1
- package/Microsoft.ReactNative/Utils/Helpers.cpp +0 -32
- package/Microsoft.ReactNative/Utils/Helpers.h +0 -8
- package/Microsoft.ReactNative/Utils/ImageUtils.cpp +69 -6
- package/Microsoft.ReactNative/Utils/ImageUtils.h +3 -1
- package/Microsoft.ReactNative/Utils/KeyboardUtils.cpp +416 -0
- package/Microsoft.ReactNative/Utils/KeyboardUtils.h +15 -0
- package/Microsoft.ReactNative/Utils/TransformableText.h +1 -0
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -9
- package/Microsoft.ReactNative/Utils/ValueUtils.h +0 -2
- package/Microsoft.ReactNative/ViewProps.idl +30 -0
- package/Microsoft.ReactNative/Views/ControlViewManager.cpp +6 -2
- package/Microsoft.ReactNative/Views/DevMenu.cpp +369 -230
- package/Microsoft.ReactNative/Views/DevMenu.h +3 -15
- package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +6 -3
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +11 -3
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +5 -1
- package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +29 -22
- package/Microsoft.ReactNative/Views/Image/ReactImage.h +2 -2
- package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +10 -405
- package/Microsoft.ReactNative/Views/KeyboardEventHandler.h +0 -3
- package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -0
- package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +2 -2
- package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +7 -0
- package/Microsoft.ReactNative/Views/ShadowNodeBase.h +3 -0
- package/Microsoft.ReactNative/Views/Text/TextHitTestUtils.cpp +6 -1
- package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +1 -0
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +38 -2
- package/Microsoft.ReactNative/Views/TextViewManager.cpp +3 -0
- package/Microsoft.ReactNative/Views/TouchEventHandler.h +0 -4
- package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +0 -8
- package/Microsoft.ReactNative/Views/ViewPanel.cpp +1 -1
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +12 -3
- package/Microsoft.ReactNative/XamlHelper.cpp +36 -0
- package/Microsoft.ReactNative/XamlHelper.h +27 -0
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +4 -4
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +4 -4
- package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +10 -8
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +3 -3
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +4 -1
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +3 -0
- package/Microsoft.ReactNative.Cxx/NativeModules.h +16 -1
- package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +2 -0
- package/Microsoft.ReactNative.Managed/packages.lock.json +5 -5
- package/PropertySheets/External/Microsoft.ReactNative.Cpp.ProjectReferences.props +3 -0
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/PropertySheets/JSEngine.props +1 -2
- package/PropertySheets/Warnings.props +1 -1
- package/ReactCommon/ReactCommon.vcxproj +2 -4
- package/ReactCommon/ReactCommon.vcxproj.filters +3 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +1 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.cpp +60 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.h +60 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +116 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +63 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +237 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +59 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +159 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +94 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +465 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +116 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +98 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +362 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +326 -0
- package/ReactCommon/Yoga.cpp +60 -127
- package/Scripts/OfficeReact.Win32.nuspec +1 -0
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +1 -0
- package/Scripts/rnw-dependencies.ps1 +14 -6
- package/Shared/Composition/CompositionSwitcher.interop.h +1 -0
- package/Shared/DevServerHelper.h +11 -2
- package/Shared/DevSettings.h +1 -0
- package/Shared/DevSupportManager.cpp +11 -1
- package/Shared/DevSupportManager.h +1 -0
- package/Shared/HermesRuntimeHolder.cpp +53 -30
- package/Shared/HermesRuntimeHolder.h +26 -11
- package/Shared/HermesSamplingProfiler.cpp +61 -8
- package/Shared/HermesSamplingProfiler.h +6 -3
- package/Shared/HermesShim.cpp +86 -82
- package/Shared/HermesShim.h +28 -8
- package/Shared/JSI/ChakraRuntime.cpp +7 -4
- package/Shared/JSI/ChakraRuntime.h +4 -4
- package/Shared/JSI/NapiJsiV8RuntimeHolder.h +2 -0
- package/Shared/JSI/RuntimeHolder.h +2 -2
- package/Shared/Logging.cpp +1 -1
- package/Shared/Modules/BlobModule.cpp +3 -4
- package/Shared/Modules/BlobModule.h +0 -4
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +13 -17
- package/Shared/Networking/OriginPolicyHttpFilter.h +11 -12
- package/Shared/Networking/WinRTWebSocketResource.cpp +59 -45
- package/Shared/OInstance.cpp +9 -2
- package/Shared/Shared.vcxitems +265 -58
- package/Shared/Shared.vcxitems.filters +312 -42
- package/Shared/V8JSIRuntimeHolder.cpp +1 -0
- package/Shared/V8JSIRuntimeHolder.h +7 -2
- package/codegen/NativeAppearanceSpec.g.h +9 -3
- package/codegen/NativeClipboardSpec.g.h +3 -3
- package/codegen/NativeDevSplitBundleLoaderSpec.g.h +3 -3
- package/codegen/NativeDevToolsSettingsManagerSpec.g.h +51 -0
- package/codegen/NativeDialogManagerWindowsSpec.g.h +2 -0
- package/codegen/NativeFileReaderModuleSpec.g.h +6 -6
- package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +3 -3
- package/codegen/NativeImageLoaderAndroidSpec.g.h +25 -9
- package/codegen/NativeImageLoaderIOSSpec.g.h +20 -12
- package/codegen/NativeIntentAndroidSpec.g.h +15 -15
- package/codegen/NativeLinkingManagerSpec.g.h +12 -12
- package/codegen/NativePerformanceObserverSpec.g.h +48 -10
- package/codegen/NativePerformanceSpec.g.h +63 -0
- package/codegen/NativePermissionsAndroidSpec.g.h +9 -9
- package/codegen/NativePlatformConstantsWinSpec.g.h +1 -1
- package/codegen/NativePushNotificationManagerIOSSpec.g.h +6 -6
- package/codegen/NativeSampleTurboModuleSpec.g.h +25 -19
- package/codegen/NativeShareModuleSpec.g.h +9 -3
- package/codegen/NativeUIManagerSpec.g.h +12 -12
- package/codegen/react/components/rnwcore/ComponentDescriptors.h +1 -2
- package/codegen/react/components/rnwcore/EventEmitters.cpp +21 -29
- package/codegen/react/components/rnwcore/EventEmitters.h +30 -30
- package/codegen/react/components/rnwcore/Props.cpp +47 -48
- package/codegen/react/components/rnwcore/Props.h +59 -166
- package/codegen/react/components/rnwcore/ShadowNodes.cpp +1 -2
- package/codegen/react/components/rnwcore/ShadowNodes.h +11 -22
- package/codegen/react/components/rnwcore/States.h +15 -30
- package/codegen/rnwcoreJSI-generated.cpp +87 -17
- package/codegen/rnwcoreJSI.h +1080 -376
- package/generate.js +6 -1
- package/include/Include.vcxitems +0 -1
- package/include/Include.vcxitems.filters +0 -3
- package/index.js +56 -42
- package/index.windows.js +56 -42
- package/interface.js +1 -1
- package/jest/local-setup.js +33 -0
- package/jest/mockComponent.js +4 -2
- package/jest/mockNativeComponent.js +1 -1
- package/jest/mockScrollView.js +2 -1
- package/jest/react-native-env.js +1 -3
- package/jest/setup.js +11 -8
- package/just-task.js +12 -5
- package/package.json +34 -31
- package/rn-get-polyfills.js +1 -1
- package/template/metro.config.js +2 -0
- package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
- package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
- package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
- package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
- package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
- package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
- package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
- package/Libraries/Components/DatePicker/DatePickerIOS.windows.js +0 -47
- package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
- package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
- package/Libraries/Components/Flyout/Flyout.js.map +0 -1
- package/Libraries/Components/Flyout/FlyoutProps.d.ts +0 -25
- package/Libraries/Components/Flyout/FlyoutProps.js +0 -3
- package/Libraries/Components/Flyout/FlyoutProps.js.map +0 -1
- package/Libraries/Components/Glyph/Glyph.js.map +0 -1
- package/Libraries/Components/Glyph/GlyphProps.d.ts +0 -16
- package/Libraries/Components/Glyph/GlyphProps.js +0 -8
- package/Libraries/Components/Glyph/GlyphProps.js.map +0 -1
- package/Libraries/Components/Popup/Popup.js.map +0 -1
- package/Libraries/Components/Popup/PopupProps.d.ts +0 -27
- package/Libraries/Components/Popup/PopupProps.js +0 -8
- package/Libraries/Components/Popup/PopupProps.js.map +0 -1
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.windows.js +0 -45
- package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
- package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
- package/Libraries/Components/Slider/Slider.d.ts +0 -132
- package/Libraries/Components/Slider/Slider.js +0 -282
- package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
- package/Libraries/Interaction/Batchinator.js +0 -76
- package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
- package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
- package/Libraries/Interaction/PanResponder.flow.js +0 -257
- package/Libraries/Lists/CellRenderMask.js +0 -155
- package/Libraries/Lists/ChildListCollection.js +0 -72
- package/Libraries/Lists/StateSafePureComponent.js +0 -85
- package/Libraries/Lists/VirtualizedList.d.ts +0 -347
- package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
- package/Libraries/Lists/VirtualizedListProps.js +0 -279
- package/Libraries/Performance/PureComponentDebug.js +0 -74
- package/Libraries/Reliability/UserFlow.js +0 -158
- package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
- package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
- package/Libraries/Utilities/MatrixMath.js +0 -748
- package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
- package/Libraries/Utilities/clamp.js +0 -23
- package/Libraries/Utilities/deprecatedPropType.js +0 -36
- package/Libraries/Utilities/groupByEveryN.js +0 -51
- package/Libraries/Utilities/mergeIntoFast.js +0 -26
- package/Libraries/Utilities/setAndForwardRef.js +0 -71
- package/Libraries/Utilities/truncate.js +0 -51
- package/Microsoft.ReactNative/Fabric/platform/react/components/image/conversions.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/ConcreteViewShadowNode.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewEventEmitter.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewProps.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/core/ConcreteComponentDescriptor.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/core/PropsParserContext.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/core/propsConversions.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/graphics/Color.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/imagemanager/primitives.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputEventEmitter.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputProps.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputShadowNode.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputState.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/conversions.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/primitives.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/propsConversions.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/States.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Float.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +0 -135
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ConcreteComponentDescriptor.h +0 -217
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/graphics/RectangleEdges.h +0 -100
- package/Shared/AsyncStorage/AsyncStorageManager.cpp +0 -149
- package/Shared/AsyncStorage/AsyncStorageManager.h +0 -71
- package/Shared/AsyncStorage/FollyDynamicConverter.cpp +0 -51
- package/Shared/AsyncStorage/FollyDynamicConverter.h +0 -24
- package/Shared/AsyncStorage/KeyValueStorage.cpp +0 -248
- package/Shared/AsyncStorage/KeyValueStorage.h +0 -50
- package/Shared/AsyncStorage/StorageFileIO.cpp +0 -160
- package/Shared/AsyncStorage/StorageFileIO.h +0 -40
- package/Shared/AsyncStorageModule.h +0 -25
- package/Shared/Modules/AsyncStorageModule.cpp +0 -87
- package/Shared/Modules/AsyncStorageModuleWin32.cpp +0 -496
- package/Shared/Modules/AsyncStorageModuleWin32.h +0 -75
- package/codegen/NativeDatePickerAndroidSpec.g.h +0 -33
- package/include/Shared/AsyncStorageModuleWin32Config.h +0 -15
- package/types/index.d.ts +0 -216
- package/types/modules/BatchedBridge.d.ts +0 -32
- package/types/modules/Codegen.d.ts +0 -74
- package/types/modules/Devtools.d.ts +0 -31
- package/types/modules/LaunchScreen.d.ts +0 -18
- package/types/modules/globals.d.ts +0 -577
- package/types/private/TimerMixin.d.ts +0 -19
- package/types/private/Utilities.d.ts +0 -10
- package/types/public/DeprecatedPropertiesAlias.d.ts +0 -205
- package/types/public/Insets.d.ts +0 -15
- package/types/public/ReactNativeRenderer.d.ts +0 -149
- package/types/public/ReactNativeTypes.d.ts +0 -143
|
@@ -5,22 +5,28 @@
|
|
|
5
5
|
|
|
6
6
|
#include "CompositionEventHandler.h"
|
|
7
7
|
|
|
8
|
-
#include <Fabric/Composition/CompositionViewComponentView.h>
|
|
9
8
|
#include <Fabric/FabricUIManagerModule.h>
|
|
9
|
+
#include <IReactContext.h>
|
|
10
|
+
#include <Views/DevMenu.h>
|
|
10
11
|
#include <Views/ShadowNodeBase.h>
|
|
11
12
|
#include <windows.h>
|
|
12
13
|
#include <windowsx.h>
|
|
14
|
+
#include "CompositionRootView.h"
|
|
15
|
+
#include "CompositionViewComponentView.h"
|
|
16
|
+
#include "RootComponentView.h"
|
|
13
17
|
|
|
14
18
|
namespace Microsoft::ReactNative {
|
|
15
19
|
|
|
16
20
|
const PointerId MOUSE_POINTER_ID = 1; // TODO ensure this is something that does not conflict with pointer point IDs.
|
|
17
21
|
|
|
22
|
+
bool IsMousePointerEvent(const facebook::react::PointerEvent &pointerEvent) {
|
|
23
|
+
return pointerEvent.pointerId == MOUSE_POINTER_ID;
|
|
24
|
+
}
|
|
25
|
+
|
|
18
26
|
bool IsViewListeningToEvent(IComponentView *view, facebook::react::ViewEvents::Offset eventType) {
|
|
19
27
|
if (view) {
|
|
20
28
|
auto const &viewProps = *std::static_pointer_cast<facebook::react::ViewProps const>(view->props());
|
|
21
|
-
return
|
|
22
|
-
// TODO why arn't the events bits being set?
|
|
23
|
-
// return viewProps.events[eventType];
|
|
29
|
+
return viewProps.events[eventType];
|
|
24
30
|
}
|
|
25
31
|
return false;
|
|
26
32
|
}
|
|
@@ -78,6 +84,18 @@ CompositionEventHandler::CompositionEventHandler(
|
|
|
78
84
|
|
|
79
85
|
CompositionEventHandler::~CompositionEventHandler() {}
|
|
80
86
|
|
|
87
|
+
facebook::react::SurfaceId CompositionEventHandler::SurfaceId() noexcept {
|
|
88
|
+
return static_cast<facebook::react::SurfaceId>(
|
|
89
|
+
winrt::get_self<winrt::Microsoft::ReactNative::implementation::CompositionRootView>(m_compRootView)->GetTag());
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
::Microsoft::ReactNative::RootComponentView &CompositionEventHandler::RootComponentView() noexcept {
|
|
93
|
+
auto rootComponentViewDescriptor = (::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties()))
|
|
94
|
+
->GetViewRegistry()
|
|
95
|
+
.componentViewDescriptorWithTag(SurfaceId());
|
|
96
|
+
return static_cast<::Microsoft::ReactNative::RootComponentView &>(*(rootComponentViewDescriptor.view));
|
|
97
|
+
}
|
|
98
|
+
|
|
81
99
|
// For DM
|
|
82
100
|
/*
|
|
83
101
|
void CompositionEventHandler::PointerDown(facebook::react::SurfaceId surfaceId, uint32_t pointerId) {
|
|
@@ -90,8 +108,7 @@ void CompositionEventHandler::PointerDown(facebook::react::SurfaceId surfaceId,
|
|
|
90
108
|
|
|
91
109
|
|
|
92
110
|
auto rootComponentViewDescriptor = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(surfaceId);
|
|
93
|
-
auto tag =
|
|
94
|
-
.hitTest({pp.Position().X, pp.Position().Y}, ptLocal);
|
|
111
|
+
auto tag = rootComponentViewDescriptor.view->hitTest({pp.Position().X, pp.Position().Y}, ptLocal);
|
|
95
112
|
|
|
96
113
|
if (tag != -1) {
|
|
97
114
|
auto hitComponentViewDescriptor = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(tag);
|
|
@@ -105,61 +122,84 @@ void CompositionEventHandler::PointerDown(facebook::react::SurfaceId surfaceId,
|
|
|
105
122
|
}
|
|
106
123
|
*/
|
|
107
124
|
|
|
108
|
-
void CompositionEventHandler::ScrollWheel(
|
|
109
|
-
facebook::react::SurfaceId surfaceId,
|
|
110
|
-
facebook::react::Point pt,
|
|
111
|
-
uint32_t delta) {
|
|
125
|
+
void CompositionEventHandler::ScrollWheel(facebook::react::Point pt, uint32_t delta) {
|
|
112
126
|
if (std::shared_ptr<FabricUIManager> fabricuiManager =
|
|
113
127
|
::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties())) {
|
|
114
128
|
facebook::react::Point ptLocal;
|
|
115
129
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
{static_cast<float>(pt.x / m_compRootView.ScaleFactor()),
|
|
121
|
-
static_cast<float>(pt.y / m_compRootView.ScaleFactor())},
|
|
122
|
-
delta);
|
|
130
|
+
RootComponentView().ScrollWheel(
|
|
131
|
+
{static_cast<float>(pt.x / m_compRootView.ScaleFactor()),
|
|
132
|
+
static_cast<float>(pt.y / m_compRootView.ScaleFactor())},
|
|
133
|
+
delta);
|
|
123
134
|
}
|
|
124
135
|
}
|
|
125
136
|
|
|
126
|
-
int64_t CompositionEventHandler::SendMessage(
|
|
127
|
-
facebook::react::SurfaceId surfaceId,
|
|
128
|
-
uint32_t msg,
|
|
129
|
-
uint64_t wParam,
|
|
130
|
-
int64_t lParam) noexcept {
|
|
137
|
+
int64_t CompositionEventHandler::SendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept {
|
|
131
138
|
switch (msg) {
|
|
132
139
|
case WM_LBUTTONDOWN: {
|
|
133
|
-
ButtonDown(
|
|
140
|
+
ButtonDown(msg, wParam, lParam);
|
|
134
141
|
return 0;
|
|
135
142
|
}
|
|
136
143
|
case WM_POINTERDOWN: {
|
|
137
|
-
PointerPressed(
|
|
144
|
+
PointerPressed(msg, wParam, lParam);
|
|
138
145
|
return 0;
|
|
139
146
|
}
|
|
140
147
|
case WM_LBUTTONUP: {
|
|
141
|
-
ButtonUp(
|
|
148
|
+
ButtonUp(msg, wParam, lParam);
|
|
142
149
|
return 0;
|
|
143
150
|
}
|
|
144
151
|
case WM_POINTERUP: {
|
|
145
|
-
PointerUp(
|
|
152
|
+
PointerUp(msg, wParam, lParam);
|
|
146
153
|
return 0;
|
|
147
154
|
}
|
|
148
155
|
case WM_MOUSEMOVE: {
|
|
149
|
-
MouseMove(
|
|
156
|
+
MouseMove(msg, wParam, lParam);
|
|
150
157
|
return 0;
|
|
151
158
|
}
|
|
159
|
+
case WM_CHAR:
|
|
160
|
+
case WM_SYSCHAR: {
|
|
161
|
+
// TODO full bubbling of events
|
|
162
|
+
if (auto focusedComponent = RootComponentView().GetFocusedComponent()) {
|
|
163
|
+
auto result = focusedComponent->sendMessage(msg, wParam, lParam);
|
|
164
|
+
if (result)
|
|
165
|
+
return result;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
152
168
|
case WM_KEYDOWN:
|
|
153
169
|
case WM_KEYUP:
|
|
154
|
-
case WM_CHAR:
|
|
155
|
-
case WM_SYSCHAR:
|
|
156
170
|
case WM_SYSKEYDOWN:
|
|
157
171
|
case WM_SYSKEYUP: {
|
|
158
|
-
|
|
159
|
-
|
|
172
|
+
// TODO full bubbling of events
|
|
173
|
+
if (auto focusedComponent = RootComponentView().GetFocusedComponent()) {
|
|
174
|
+
auto result = focusedComponent->sendMessage(msg, wParam, lParam);
|
|
160
175
|
if (result)
|
|
161
176
|
return result;
|
|
162
177
|
}
|
|
178
|
+
|
|
179
|
+
BYTE bKeys[256];
|
|
180
|
+
if (GetKeyboardState(bKeys)) {
|
|
181
|
+
bool fShift = false;
|
|
182
|
+
if (bKeys[VK_LSHIFT] & 0x80)
|
|
183
|
+
fShift = true;
|
|
184
|
+
if (bKeys[VK_RSHIFT] & 0x80)
|
|
185
|
+
fShift = true;
|
|
186
|
+
bool fCtrl = false;
|
|
187
|
+
if (bKeys[VK_LCONTROL] & 0x80)
|
|
188
|
+
fCtrl = true;
|
|
189
|
+
if (bKeys[VK_RCONTROL] & 0x80)
|
|
190
|
+
fCtrl = true;
|
|
191
|
+
if (msg == WM_KEYDOWN && wParam == VkKeyScanA('d') && fShift && fCtrl) {
|
|
192
|
+
auto contextSelf = winrt::get_self<React::implementation::ReactContext>(m_context.Handle());
|
|
193
|
+
Microsoft::ReactNative::DevMenuManager::Show(
|
|
194
|
+
Mso::CntPtr<Mso::React::IReactContext>(&contextSelf->GetInner()));
|
|
195
|
+
}
|
|
196
|
+
if (!fCtrl && msg == WM_KEYDOWN && wParam == VK_TAB) {
|
|
197
|
+
if (!RootComponentView().TryMoveFocus(!fShift)) {
|
|
198
|
+
// TODO notify rootview that host should move focus
|
|
199
|
+
}
|
|
200
|
+
return 1;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
163
203
|
return 0;
|
|
164
204
|
}
|
|
165
205
|
}
|
|
@@ -197,7 +237,7 @@ void CompositionEventHandler::HandleIncomingPointerEvent(
|
|
|
197
237
|
auto itCurrentlyHoveredViews = m_currentlyHoveredViewsPerPointer.find(pointerId);
|
|
198
238
|
if (itCurrentlyHoveredViews != m_currentlyHoveredViewsPerPointer.end()) {
|
|
199
239
|
for (auto &taggedView : itCurrentlyHoveredViews->second) {
|
|
200
|
-
if (auto
|
|
240
|
+
if (auto view = taggedView.view()) {
|
|
201
241
|
currentlyHoveredViews.push_back(view.get());
|
|
202
242
|
}
|
|
203
243
|
}
|
|
@@ -213,7 +253,7 @@ void CompositionEventHandler::HandleIncomingPointerEvent(
|
|
|
213
253
|
if (targetView != nullptr && previousTargetTag != targetView->tag()) {
|
|
214
254
|
bool shouldEmitOverEvent =
|
|
215
255
|
IsAnyViewInPathListeningToEvent(eventPathViews, facebook::react::ViewEvents::Offset::PointerOver);
|
|
216
|
-
facebook::react::SharedTouchEventEmitter eventEmitter = targetView->
|
|
256
|
+
facebook::react::SharedTouchEventEmitter eventEmitter = targetView->touchEventEmitterAtPoint(event.offsetPoint);
|
|
217
257
|
if (shouldEmitOverEvent && eventEmitter != nullptr) {
|
|
218
258
|
eventEmitter->onPointerOver(event);
|
|
219
259
|
}
|
|
@@ -224,8 +264,8 @@ void CompositionEventHandler::HandleIncomingPointerEvent(
|
|
|
224
264
|
// We only want to emit events to JS if there is a view that is currently listening to said event
|
|
225
265
|
// so we only send those event to the JS side if the element which has been entered is itself listening,
|
|
226
266
|
// or if one of its parents is listening in case those listeners care about the capturing phase. Adding the ability
|
|
227
|
-
// for native to distingusih between capturing listeners and not could be an optimization to futher reduce the
|
|
228
|
-
// of events we send to JS
|
|
267
|
+
// for native to distingusih between capturing listeners and not could be an optimization to futher reduce the
|
|
268
|
+
// number of events we send to JS
|
|
229
269
|
bool hasParentEnterListener = false;
|
|
230
270
|
|
|
231
271
|
for (auto itComponentView = eventPathViews.rbegin(); itComponentView != eventPathViews.rend();
|
|
@@ -234,7 +274,8 @@ void CompositionEventHandler::HandleIncomingPointerEvent(
|
|
|
234
274
|
auto componentView = *itComponentView;
|
|
235
275
|
bool shouldEmitEvent = componentView != nullptr &&
|
|
236
276
|
(hasParentEnterListener ||
|
|
237
|
-
IsViewListeningToEvent(componentView, facebook::react::ViewEvents::Offset::PointerEnter)
|
|
277
|
+
IsViewListeningToEvent(componentView, facebook::react::ViewEvents::Offset::PointerEnter) ||
|
|
278
|
+
IsViewListeningToEvent(componentView, facebook::react::ViewEvents::Offset::MouseEnter));
|
|
238
279
|
|
|
239
280
|
if (shouldEmitEvent &&
|
|
240
281
|
std::find(currentlyHoveredViews.begin(), currentlyHoveredViews.end(), componentView) ==
|
|
@@ -242,6 +283,9 @@ void CompositionEventHandler::HandleIncomingPointerEvent(
|
|
|
242
283
|
facebook::react::SharedTouchEventEmitter eventEmitter = componentView->touchEventEmitter();
|
|
243
284
|
if (eventEmitter) {
|
|
244
285
|
eventEmitter->onPointerEnter(event);
|
|
286
|
+
if (IsMousePointerEvent(event)) {
|
|
287
|
+
eventEmitter->onMouseEnter(event);
|
|
288
|
+
}
|
|
245
289
|
}
|
|
246
290
|
}
|
|
247
291
|
|
|
@@ -274,13 +318,15 @@ void CompositionEventHandler::HandleIncomingPointerEvent(
|
|
|
274
318
|
|
|
275
319
|
bool hasParentLeaveListener = false;
|
|
276
320
|
for (auto itComponentView = currentlyHoveredViews.rbegin(); itComponentView != currentlyHoveredViews.rend();
|
|
277
|
-
itComponentView++) { // for (RCTReactTaggedView *taggedView in [currentlyHoveredViews
|
|
321
|
+
itComponentView++) { // for (RCTReactTaggedView *taggedView in [currentlyHoveredViews
|
|
322
|
+
// reverseObjectEnumerator])
|
|
278
323
|
// {
|
|
279
324
|
auto componentView = *itComponentView;
|
|
280
325
|
|
|
281
326
|
bool shouldEmitEvent = componentView != nullptr &&
|
|
282
327
|
(hasParentLeaveListener ||
|
|
283
|
-
IsViewListeningToEvent(componentView, facebook::react::ViewEvents::Offset::PointerLeave)
|
|
328
|
+
IsViewListeningToEvent(componentView, facebook::react::ViewEvents::Offset::PointerLeave) ||
|
|
329
|
+
IsViewListeningToEvent(componentView, facebook::react::ViewEvents::Offset::MouseLeave));
|
|
284
330
|
|
|
285
331
|
if (shouldEmitEvent &&
|
|
286
332
|
std::find(eventPathViews.begin(), eventPathViews.end(), componentView) == eventPathViews.end()) {
|
|
@@ -299,6 +345,9 @@ void CompositionEventHandler::HandleIncomingPointerEvent(
|
|
|
299
345
|
facebook::react::SharedTouchEventEmitter eventEmitter = componentView->touchEventEmitter();
|
|
300
346
|
if (eventEmitter) {
|
|
301
347
|
eventEmitter->onPointerLeave(event);
|
|
348
|
+
if (IsMousePointerEvent(event)) {
|
|
349
|
+
eventEmitter->onMouseLeave(event);
|
|
350
|
+
}
|
|
302
351
|
}
|
|
303
352
|
}
|
|
304
353
|
|
|
@@ -351,7 +400,7 @@ facebook::react::PointerEvent CreatePointerEventFromIncompleteHoverData(
|
|
|
351
400
|
|
|
352
401
|
pointerEvent.clientPoint = ptScaled;
|
|
353
402
|
pointerEvent.screenPoint = ptScaled;
|
|
354
|
-
|
|
403
|
+
pointerEvent.offsetPoint = ptLocal;
|
|
355
404
|
pointerEvent.width = 1.0;
|
|
356
405
|
pointerEvent.height = 1.0;
|
|
357
406
|
pointerEvent.tiltX = 0;
|
|
@@ -367,11 +416,7 @@ facebook::react::PointerEvent CreatePointerEventFromIncompleteHoverData(
|
|
|
367
416
|
return pointerEvent;
|
|
368
417
|
}
|
|
369
418
|
|
|
370
|
-
void CompositionEventHandler::MouseMove(
|
|
371
|
-
facebook::react::SurfaceId surfaceId,
|
|
372
|
-
uint32_t msg,
|
|
373
|
-
uint64_t wParam,
|
|
374
|
-
int64_t lParam) {
|
|
419
|
+
void CompositionEventHandler::MouseMove(uint32_t msg, uint64_t wParam, int64_t lParam) {
|
|
375
420
|
int pointerId = MOUSE_POINTER_ID; // TODO pointerId
|
|
376
421
|
|
|
377
422
|
auto x = GET_X_LPARAM(lParam);
|
|
@@ -381,11 +426,9 @@ void CompositionEventHandler::MouseMove(
|
|
|
381
426
|
::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties())) {
|
|
382
427
|
facebook::react::Point ptLocal;
|
|
383
428
|
|
|
384
|
-
auto rootComponentViewDescriptor = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(surfaceId);
|
|
385
429
|
facebook::react::Point ptScaled = {
|
|
386
430
|
static_cast<float>(x / m_compRootView.ScaleFactor()), static_cast<float>(y / m_compRootView.ScaleFactor())};
|
|
387
|
-
auto tag =
|
|
388
|
-
static_cast<CompositionBaseComponentView &>(*rootComponentViewDescriptor.view).hitTest(ptScaled, ptLocal);
|
|
431
|
+
auto tag = RootComponentView().hitTest(ptScaled, ptLocal);
|
|
389
432
|
|
|
390
433
|
if (tag == -1)
|
|
391
434
|
return;
|
|
@@ -396,7 +439,8 @@ void CompositionEventHandler::MouseMove(
|
|
|
396
439
|
facebook::react::PointerEvent pointerEvent = CreatePointerEventFromIncompleteHoverData(ptScaled, ptLocal);
|
|
397
440
|
|
|
398
441
|
auto handler = [targetView, &pointerEvent](std::vector<IComponentView *> &eventPathViews) {
|
|
399
|
-
facebook::react::SharedTouchEventEmitter eventEmitter =
|
|
442
|
+
facebook::react::SharedTouchEventEmitter eventEmitter =
|
|
443
|
+
targetView ? targetView->touchEventEmitterAtPoint(pointerEvent.offsetPoint) : nullptr;
|
|
400
444
|
bool hasMoveEventListeners =
|
|
401
445
|
IsAnyViewInPathListeningToEvent(eventPathViews, facebook::react::ViewEvents::Offset::PointerMove) ||
|
|
402
446
|
IsAnyViewInPathListeningToEvent(eventPathViews, facebook::react::ViewEvents::Offset::PointerMoveCapture);
|
|
@@ -409,11 +453,7 @@ void CompositionEventHandler::MouseMove(
|
|
|
409
453
|
}
|
|
410
454
|
}
|
|
411
455
|
|
|
412
|
-
void CompositionEventHandler::PointerPressed(
|
|
413
|
-
facebook::react::SurfaceId surfaceId,
|
|
414
|
-
uint32_t msg,
|
|
415
|
-
uint64_t wParam,
|
|
416
|
-
int64_t lParam) {
|
|
456
|
+
void CompositionEventHandler::PointerPressed(uint32_t msg, uint64_t wParam, int64_t lParam) {
|
|
417
457
|
POINTER_INFO pi;
|
|
418
458
|
PointerId pointerId = GET_POINTERID_WPARAM(wParam);
|
|
419
459
|
GetPointerInfo(pointerId, &pi);
|
|
@@ -436,19 +476,17 @@ void CompositionEventHandler::PointerPressed(
|
|
|
436
476
|
::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties())) {
|
|
437
477
|
facebook::react::Point ptLocal;
|
|
438
478
|
|
|
439
|
-
auto rootComponentViewDescriptor = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(surfaceId);
|
|
440
479
|
facebook::react::Point ptScaled = {
|
|
441
480
|
static_cast<float>(pt.x / m_compRootView.ScaleFactor()),
|
|
442
481
|
static_cast<float>(pt.y / m_compRootView.ScaleFactor())};
|
|
443
|
-
auto tag =
|
|
444
|
-
static_cast<CompositionBaseComponentView &>(*rootComponentViewDescriptor.view).hitTest(ptScaled, ptLocal);
|
|
482
|
+
auto tag = RootComponentView().hitTest(ptScaled, ptLocal);
|
|
445
483
|
|
|
446
484
|
if (tag == -1)
|
|
447
485
|
return;
|
|
448
486
|
|
|
449
487
|
IComponentView *targetComponentView =
|
|
450
488
|
fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(tag).view.get();
|
|
451
|
-
static_cast<CompositionBaseComponentView *>(targetComponentView)->
|
|
489
|
+
static_cast<CompositionBaseComponentView *>(targetComponentView)->sendMessage(msg, wParam, lParam);
|
|
452
490
|
|
|
453
491
|
ActiveTouch activeTouch{0};
|
|
454
492
|
switch (pi.pointerType) {
|
|
@@ -490,15 +528,11 @@ void CompositionEventHandler::PointerPressed(
|
|
|
490
528
|
|
|
491
529
|
m_activeTouches.emplace(pointerId, activeTouch);
|
|
492
530
|
|
|
493
|
-
DispatchTouchEvent(
|
|
531
|
+
DispatchTouchEvent(eventType, pointerId);
|
|
494
532
|
}
|
|
495
533
|
}
|
|
496
534
|
|
|
497
|
-
void CompositionEventHandler::ButtonDown(
|
|
498
|
-
facebook::react::SurfaceId surfaceId,
|
|
499
|
-
uint32_t msg,
|
|
500
|
-
uint64_t wParam,
|
|
501
|
-
int64_t lParam) {
|
|
535
|
+
void CompositionEventHandler::ButtonDown(uint32_t msg, uint64_t wParam, int64_t lParam) {
|
|
502
536
|
PointerId pointerId = MOUSE_POINTER_ID;
|
|
503
537
|
|
|
504
538
|
auto staleTouch = std::find_if(m_activeTouches.begin(), m_activeTouches.end(), [pointerId](const auto &pair) {
|
|
@@ -519,24 +553,23 @@ void CompositionEventHandler::ButtonDown(
|
|
|
519
553
|
::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties())) {
|
|
520
554
|
facebook::react::Point ptLocal;
|
|
521
555
|
|
|
522
|
-
auto rootComponentViewDescriptor = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(surfaceId);
|
|
523
556
|
facebook::react::Point ptScaled = {
|
|
524
557
|
static_cast<float>(x / m_compRootView.ScaleFactor()), static_cast<float>(y / m_compRootView.ScaleFactor())};
|
|
525
|
-
auto tag =
|
|
558
|
+
auto tag = RootComponentView().hitTest(ptScaled, ptLocal);
|
|
526
559
|
|
|
527
560
|
if (tag == -1)
|
|
528
561
|
return;
|
|
529
562
|
|
|
530
563
|
IComponentView *targetComponentView =
|
|
531
564
|
fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(tag).view.get();
|
|
532
|
-
static_cast<CompositionBaseComponentView *>(targetComponentView)->
|
|
565
|
+
static_cast<CompositionBaseComponentView *>(targetComponentView)->sendMessage(msg, wParam, lParam);
|
|
533
566
|
|
|
534
567
|
ActiveTouch activeTouch{0};
|
|
535
568
|
activeTouch.touchType = UITouchType::Mouse;
|
|
536
569
|
|
|
537
570
|
auto componentView = targetComponentView;
|
|
538
571
|
while (componentView) {
|
|
539
|
-
if (auto eventEmitter = componentView->
|
|
572
|
+
if (auto eventEmitter = componentView->touchEventEmitterAtPoint(ptLocal)) {
|
|
540
573
|
activeTouch.eventEmitter = eventEmitter;
|
|
541
574
|
activeTouch.touch.target = componentView->tag();
|
|
542
575
|
// activeTouch.componentView = componentView;
|
|
@@ -559,15 +592,11 @@ void CompositionEventHandler::ButtonDown(
|
|
|
559
592
|
|
|
560
593
|
m_activeTouches.emplace(pointerId, activeTouch);
|
|
561
594
|
|
|
562
|
-
DispatchTouchEvent(
|
|
595
|
+
DispatchTouchEvent(eventType, pointerId);
|
|
563
596
|
}
|
|
564
597
|
}
|
|
565
598
|
|
|
566
|
-
void CompositionEventHandler::PointerUp(
|
|
567
|
-
facebook::react::SurfaceId surfaceId,
|
|
568
|
-
uint32_t msg,
|
|
569
|
-
uint64_t wParam,
|
|
570
|
-
int64_t lParam) {
|
|
599
|
+
void CompositionEventHandler::PointerUp(uint32_t msg, uint64_t wParam, int64_t lParam) {
|
|
571
600
|
POINTER_INFO pi;
|
|
572
601
|
PointerId pointerId = GET_POINTERID_WPARAM(wParam);
|
|
573
602
|
GetPointerInfo(pointerId, &pi);
|
|
@@ -588,30 +617,24 @@ void CompositionEventHandler::PointerUp(
|
|
|
588
617
|
::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties())) {
|
|
589
618
|
facebook::react::Point ptLocal;
|
|
590
619
|
|
|
591
|
-
auto rootComponentViewDescriptor = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(surfaceId);
|
|
592
620
|
facebook::react::Point ptScaled = {
|
|
593
621
|
static_cast<float>(pt.x / m_compRootView.ScaleFactor()),
|
|
594
622
|
static_cast<float>(pt.y / m_compRootView.ScaleFactor())};
|
|
595
|
-
auto tag =
|
|
596
|
-
static_cast<CompositionBaseComponentView &>(*rootComponentViewDescriptor.view).hitTest(ptScaled, ptLocal);
|
|
623
|
+
auto tag = RootComponentView().hitTest(ptScaled, ptLocal);
|
|
597
624
|
|
|
598
625
|
if (tag == -1)
|
|
599
626
|
return;
|
|
600
627
|
|
|
601
628
|
auto targetComponentView = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(tag).view;
|
|
602
|
-
std::static_pointer_cast<CompositionBaseComponentView>(targetComponentView)->
|
|
629
|
+
std::static_pointer_cast<CompositionBaseComponentView>(targetComponentView)->sendMessage(msg, wParam, lParam);
|
|
603
630
|
|
|
604
631
|
UpdateActiveTouch(activeTouch->second, ptScaled, ptLocal);
|
|
605
|
-
DispatchTouchEvent(
|
|
632
|
+
DispatchTouchEvent(TouchEventType::End, pointerId);
|
|
606
633
|
m_activeTouches.erase(pointerId);
|
|
607
634
|
}
|
|
608
635
|
}
|
|
609
636
|
|
|
610
|
-
void CompositionEventHandler::ButtonUp(
|
|
611
|
-
facebook::react::SurfaceId surfaceId,
|
|
612
|
-
uint32_t msg,
|
|
613
|
-
uint64_t wParam,
|
|
614
|
-
int64_t lParam) {
|
|
637
|
+
void CompositionEventHandler::ButtonUp(uint32_t msg, uint64_t wParam, int64_t lParam) {
|
|
615
638
|
int pointerId = MOUSE_POINTER_ID;
|
|
616
639
|
|
|
617
640
|
auto activeTouch = std::find_if(m_activeTouches.begin(), m_activeTouches.end(), [pointerId](const auto &pair) {
|
|
@@ -629,20 +652,18 @@ void CompositionEventHandler::ButtonUp(
|
|
|
629
652
|
::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties())) {
|
|
630
653
|
facebook::react::Point ptLocal;
|
|
631
654
|
|
|
632
|
-
auto rootComponentViewDescriptor = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(surfaceId);
|
|
633
655
|
facebook::react::Point ptScaled = {
|
|
634
656
|
static_cast<float>(x / m_compRootView.ScaleFactor()), static_cast<float>(y / m_compRootView.ScaleFactor())};
|
|
635
|
-
auto tag =
|
|
636
|
-
static_cast<CompositionBaseComponentView &>(*rootComponentViewDescriptor.view).hitTest(ptScaled, ptLocal);
|
|
657
|
+
auto tag = RootComponentView().hitTest(ptScaled, ptLocal);
|
|
637
658
|
|
|
638
659
|
if (tag == -1)
|
|
639
660
|
return;
|
|
640
661
|
|
|
641
662
|
auto targetComponentView = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(tag).view;
|
|
642
|
-
std::static_pointer_cast<CompositionBaseComponentView>(targetComponentView)->
|
|
663
|
+
std::static_pointer_cast<CompositionBaseComponentView>(targetComponentView)->sendMessage(msg, wParam, lParam);
|
|
643
664
|
|
|
644
665
|
UpdateActiveTouch(activeTouch->second, ptScaled, ptLocal);
|
|
645
|
-
DispatchTouchEvent(
|
|
666
|
+
DispatchTouchEvent(TouchEventType::End, pointerId);
|
|
646
667
|
m_activeTouches.erase(pointerId);
|
|
647
668
|
}
|
|
648
669
|
}
|
|
@@ -685,7 +706,7 @@ facebook::react::PointerEvent CompositionEventHandler::CreatePointerEventFromAct
|
|
|
685
706
|
event.pointerType = PointerTypeCStringFromUITouchType(activeTouch.touchType);
|
|
686
707
|
event.clientPoint = touch.pagePoint;
|
|
687
708
|
event.screenPoint = touch.screenPoint;
|
|
688
|
-
|
|
709
|
+
event.offsetPoint = touch.offsetPoint;
|
|
689
710
|
|
|
690
711
|
event.pressure = touch.force;
|
|
691
712
|
if (activeTouch.touchType == UITouchType::Mouse) {
|
|
@@ -723,10 +744,7 @@ facebook::react::PointerEvent CompositionEventHandler::CreatePointerEventFromAct
|
|
|
723
744
|
}
|
|
724
745
|
|
|
725
746
|
// If we have events that include multiple pointer updates, we should change arg from pointerId to vector<pointerId>
|
|
726
|
-
void CompositionEventHandler::DispatchTouchEvent(
|
|
727
|
-
facebook::react::SurfaceId surfaceId,
|
|
728
|
-
TouchEventType eventType,
|
|
729
|
-
PointerId pointerId) {
|
|
747
|
+
void CompositionEventHandler::DispatchTouchEvent(TouchEventType eventType, PointerId pointerId) {
|
|
730
748
|
auto fabricuiManager = ::Microsoft::ReactNative::FabricUIManager::FromProperties(m_context.Properties());
|
|
731
749
|
|
|
732
750
|
if (!fabricuiManager)
|
|
@@ -757,9 +775,8 @@ void CompositionEventHandler::DispatchTouchEvent(
|
|
|
757
775
|
eventType == TouchEventType::Cancel;
|
|
758
776
|
if (!shouldLeave) {
|
|
759
777
|
const auto &viewRegistry = fabricuiManager->GetViewRegistry();
|
|
760
|
-
auto rootComponentViewDescriptor = viewRegistry.componentViewDescriptorWithTag(surfaceId);
|
|
761
778
|
facebook::react::Point ptLocal;
|
|
762
|
-
auto targetTag =
|
|
779
|
+
auto targetTag = RootComponentView().hitTest(pointerEvent.clientPoint, ptLocal);
|
|
763
780
|
auto targetComponentViewDescriptor = viewRegistry.componentViewDescriptorWithTag(targetTag);
|
|
764
781
|
targetView = FindClosestFabricManagedTouchableView(targetComponentViewDescriptor.view.get());
|
|
765
782
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
|
|
4
4
|
#pragma once
|
|
5
|
+
#include <Fabric/Composition/RootComponentView.h>
|
|
5
6
|
#include <Fabric/ReactTaggedView.h>
|
|
6
7
|
#include <IReactInstance.h>
|
|
7
8
|
#include <JSValue.h>
|
|
@@ -33,16 +34,19 @@ class CompositionEventHandler {
|
|
|
33
34
|
const winrt::Microsoft::ReactNative::CompositionRootView &CompositionRootView);
|
|
34
35
|
virtual ~CompositionEventHandler();
|
|
35
36
|
|
|
36
|
-
int64_t SendMessage(
|
|
37
|
-
void ScrollWheel(facebook::react::
|
|
37
|
+
int64_t SendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept;
|
|
38
|
+
void ScrollWheel(facebook::react::Point pt, uint32_t delta);
|
|
38
39
|
void RemoveTouchHandlers();
|
|
39
40
|
|
|
40
41
|
private:
|
|
41
|
-
void ButtonDown(
|
|
42
|
-
void PointerPressed(
|
|
43
|
-
void ButtonUp(
|
|
44
|
-
void PointerUp(
|
|
45
|
-
void MouseMove(
|
|
42
|
+
void ButtonDown(uint32_t msg, uint64_t wParam, int64_t lParam);
|
|
43
|
+
void PointerPressed(uint32_t msg, uint64_t wParam, int64_t lParam);
|
|
44
|
+
void ButtonUp(uint32_t msg, uint64_t wParam, int64_t lParam);
|
|
45
|
+
void PointerUp(uint32_t msg, uint64_t wParam, int64_t lParam);
|
|
46
|
+
void MouseMove(uint32_t msg, uint64_t wParam, int64_t lParam);
|
|
47
|
+
|
|
48
|
+
facebook::react::SurfaceId SurfaceId() noexcept;
|
|
49
|
+
RootComponentView &RootComponentView() noexcept;
|
|
46
50
|
|
|
47
51
|
enum class UITouchType {
|
|
48
52
|
Mouse,
|
|
@@ -50,7 +54,7 @@ class CompositionEventHandler {
|
|
|
50
54
|
Touch,
|
|
51
55
|
};
|
|
52
56
|
enum class TouchEventType { Start = 0, End, Move, Cancel, CaptureLost, PointerEntered, PointerExited, PointerMove };
|
|
53
|
-
void DispatchTouchEvent(
|
|
57
|
+
void DispatchTouchEvent(TouchEventType eventType, PointerId pointerId);
|
|
54
58
|
void HandleIncomingPointerEvent(
|
|
55
59
|
facebook::react::PointerEvent &pe,
|
|
56
60
|
IComponentView *targetView,
|
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
#include "CompositionContextHelper.h"
|
|
15
15
|
#include "ReactNativeHost.h"
|
|
16
16
|
|
|
17
|
+
#include "CompositionRootAutomationProvider.h"
|
|
18
|
+
#include "CompositionRootView.h"
|
|
19
|
+
|
|
17
20
|
WINUSERAPI UINT WINAPI GetDpiForWindow(_In_ HWND hwnd);
|
|
18
21
|
|
|
19
22
|
namespace winrt::Microsoft::ReactNative::implementation {
|
|
@@ -70,12 +73,15 @@ double CompositionHwndHost::ScaleFactor() noexcept {
|
|
|
70
73
|
void CompositionHwndHost::UpdateSize() noexcept {
|
|
71
74
|
RECT rc;
|
|
72
75
|
if (GetClientRect(m_hwnd, &rc)) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
if (m_height != (rc.bottom - rc.top) || m_width != (rc.right - rc.left)) {
|
|
77
|
+
m_height = rc.bottom - rc.top;
|
|
78
|
+
m_width = rc.right - rc.left;
|
|
79
|
+
winrt::Windows::Foundation::Size size{
|
|
80
|
+
static_cast<float>(m_width / ScaleFactor()), static_cast<float>(m_height / ScaleFactor())};
|
|
81
|
+
m_compRootView.Size(size);
|
|
82
|
+
m_compRootView.Measure(size);
|
|
83
|
+
m_compRootView.Arrange(size);
|
|
84
|
+
}
|
|
79
85
|
}
|
|
80
86
|
}
|
|
81
87
|
|
|
@@ -121,6 +127,11 @@ LRESULT CompositionHwndHost::TranslateMessage(int msg, uint64_t wParam, int64_t
|
|
|
121
127
|
return 0;
|
|
122
128
|
}
|
|
123
129
|
|
|
130
|
+
winrt::Microsoft::ReactNative::FocusNavigationResult CompositionHwndHost::NavigateFocus(
|
|
131
|
+
const winrt::Microsoft::ReactNative::FocusNavigationRequest &request) noexcept {
|
|
132
|
+
return m_compRootView.NavigateFocus(request);
|
|
133
|
+
}
|
|
134
|
+
|
|
124
135
|
ReactNative::IReactViewHost CompositionHwndHost::ReactViewHost() const noexcept {
|
|
125
136
|
return m_reactViewHost ? m_reactViewHost : m_compRootView.ReactViewHost();
|
|
126
137
|
}
|
|
@@ -142,4 +153,14 @@ winrt::Windows::UI::Composition::Compositor CompositionHwndHost::Compositor() co
|
|
|
142
153
|
compositionContext);
|
|
143
154
|
}
|
|
144
155
|
|
|
156
|
+
IInspectable CompositionHwndHost::UiaProvider() noexcept {
|
|
157
|
+
auto compRootView = winrt::get_self<implementation::CompositionRootView>(m_compRootView);
|
|
158
|
+
auto provider = compRootView->GetUiaProvider();
|
|
159
|
+
auto pRootProvider = static_cast<CompositionRootAutomationProvider *>(provider.as<IRawElementProviderSimple>().get());
|
|
160
|
+
if (pRootProvider != nullptr) {
|
|
161
|
+
pRootProvider->SetHwnd(m_hwnd);
|
|
162
|
+
}
|
|
163
|
+
return provider;
|
|
164
|
+
}
|
|
165
|
+
|
|
145
166
|
} // namespace winrt::Microsoft::ReactNative::implementation
|
|
@@ -20,8 +20,14 @@ struct CompositionHwndHost : CompositionHwndHostT<CompositionHwndHost> {
|
|
|
20
20
|
winrt::Microsoft::ReactNative::IReactViewHost ReactViewHost() const noexcept;
|
|
21
21
|
void ReactViewHost(winrt::Microsoft::ReactNative::IReactViewHost const &value) noexcept;
|
|
22
22
|
|
|
23
|
+
// property UiaProvider
|
|
24
|
+
IInspectable UiaProvider() noexcept;
|
|
25
|
+
|
|
23
26
|
winrt::Windows::UI::Composition::Visual RootVisual() const noexcept;
|
|
24
27
|
|
|
28
|
+
winrt::Microsoft::ReactNative::FocusNavigationResult NavigateFocus(
|
|
29
|
+
const winrt::Microsoft::ReactNative::FocusNavigationRequest &request) noexcept;
|
|
30
|
+
|
|
25
31
|
LRESULT TranslateMessage(int msg, uint64_t wParam, int64_t lParam) noexcept;
|
|
26
32
|
|
|
27
33
|
private:
|
|
@@ -37,6 +43,8 @@ struct CompositionHwndHost : CompositionHwndHostT<CompositionHwndHost> {
|
|
|
37
43
|
HWND m_hwnd;
|
|
38
44
|
winrt::Microsoft::ReactNative::CompositionRootView m_compRootView{nullptr};
|
|
39
45
|
winrt::Windows::UI::Composition::Desktop::DesktopWindowTarget m_target{nullptr};
|
|
46
|
+
LONG m_height{0};
|
|
47
|
+
LONG m_width{0};
|
|
40
48
|
|
|
41
49
|
// Store locally if set before we have a rootview
|
|
42
50
|
ReactNative::IReactViewHost m_reactViewHost{nullptr};
|