react-native-windows 0.71.8 → 0.72.0-preview.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +189 -0
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
- package/Libraries/Components/View/View.js +71 -45
- 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 +1 -9
- 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/{Utilities/NativeDevSplitBundleLoader.js → DevToolsSettings/NativeDevToolsSettingsManager.js} +7 -2
- 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 +29 -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 +11 -5
- 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 +142 -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 +38 -20
- 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.js +1 -1
- 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 +12 -4
- 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/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 -25
- package/codegen/rnwcoreJSI.h +1077 -417
- 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 +32 -29
- 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/codegen/NativeDevSplitBundleLoaderSpec.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
|
@@ -7,45 +7,52 @@
|
|
|
7
7
|
#include "CompositionViewComponentView.h"
|
|
8
8
|
|
|
9
9
|
#include <UI.Xaml.Controls.h>
|
|
10
|
+
#include <Utils/KeyboardUtils.h>
|
|
10
11
|
#include <Utils/ValueUtils.h>
|
|
11
12
|
#include <Views/FrameworkElementTransferProperties.h>
|
|
12
13
|
#include <winrt/Windows.UI.Composition.h>
|
|
13
14
|
#include "CompositionContextHelper.h"
|
|
15
|
+
#include "CompositionDynamicAutomationProvider.h"
|
|
14
16
|
#include "CompositionHelpers.h"
|
|
17
|
+
#include "RootComponentView.h"
|
|
15
18
|
#include "d2d1helper.h"
|
|
16
19
|
|
|
17
20
|
namespace Microsoft::ReactNative {
|
|
18
21
|
|
|
19
|
-
// TODO where should we store focus - a more complete focus management needs to be added in the future
|
|
20
|
-
static CompositionBaseComponentView *g_focusedComponent = nullptr;
|
|
21
|
-
|
|
22
|
-
CompositionBaseComponentView *GetFocusedComponent() noexcept {
|
|
23
|
-
return g_focusedComponent;
|
|
24
|
-
}
|
|
25
|
-
void SetFocusedComponent(CompositionBaseComponentView *value) noexcept {
|
|
26
|
-
if (g_focusedComponent == value)
|
|
27
|
-
return;
|
|
28
|
-
|
|
29
|
-
if (g_focusedComponent) {
|
|
30
|
-
g_focusedComponent->onFocusLost();
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
if (value)
|
|
34
|
-
value->onFocusGained();
|
|
35
|
-
|
|
36
|
-
g_focusedComponent = value;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
22
|
CompositionBaseComponentView::CompositionBaseComponentView(
|
|
40
23
|
const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
|
|
41
24
|
facebook::react::Tag tag)
|
|
42
|
-
: m_tag(tag), m_compContext(compContext) {
|
|
25
|
+
: m_tag(tag), m_compContext(compContext) {
|
|
26
|
+
m_outerVisual = compContext.CreateSpriteVisual(); // TODO could be a raw ContainerVisual if we had a
|
|
27
|
+
// CreateContainerVisual in ICompositionContext
|
|
28
|
+
m_focusVisual = compContext.CreateFocusVisual();
|
|
29
|
+
m_outerVisual.InsertAt(m_focusVisual.InnerVisual(), 0);
|
|
30
|
+
}
|
|
43
31
|
|
|
44
32
|
facebook::react::Tag CompositionBaseComponentView::tag() const noexcept {
|
|
45
33
|
return m_tag;
|
|
46
34
|
}
|
|
47
35
|
|
|
36
|
+
RootComponentView *CompositionBaseComponentView::rootComponentView() noexcept {
|
|
37
|
+
if (m_parent)
|
|
38
|
+
return m_parent->rootComponentView();
|
|
39
|
+
|
|
40
|
+
assert(false);
|
|
41
|
+
return nullptr;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const std::vector<IComponentView *> &CompositionBaseComponentView::children() const noexcept {
|
|
45
|
+
return m_children;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
48
|
void CompositionBaseComponentView::parent(IComponentView *parent) noexcept {
|
|
49
|
+
if (!parent) {
|
|
50
|
+
auto root = rootComponentView();
|
|
51
|
+
if (root->GetFocusedComponent() == this) {
|
|
52
|
+
root->SetFocusedComponent(nullptr); // TODO need move focus logic - where should focus go?
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
49
56
|
m_parent = parent;
|
|
50
57
|
}
|
|
51
58
|
|
|
@@ -53,9 +60,32 @@ IComponentView *CompositionBaseComponentView::parent() const noexcept {
|
|
|
53
60
|
return m_parent;
|
|
54
61
|
}
|
|
55
62
|
|
|
56
|
-
|
|
63
|
+
bool CompositionBaseComponentView::runOnChildren(bool forward, Mso::Functor<bool(IComponentView &)> &fn) noexcept {
|
|
64
|
+
if (forward) {
|
|
65
|
+
for (auto it = m_children.begin(); it != m_children.end(); ++it) {
|
|
66
|
+
if (fn(**it))
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
} else {
|
|
70
|
+
for (auto it = m_children.rbegin(); it != m_children.rend(); ++it) {
|
|
71
|
+
if (fn(**it))
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
void CompositionBaseComponentView::onFocusLost() noexcept {
|
|
79
|
+
m_eventEmitter->onBlur();
|
|
80
|
+
showFocusVisual(false);
|
|
81
|
+
}
|
|
57
82
|
|
|
58
|
-
void CompositionBaseComponentView::onFocusGained() noexcept {
|
|
83
|
+
void CompositionBaseComponentView::onFocusGained() noexcept {
|
|
84
|
+
m_eventEmitter->onFocus();
|
|
85
|
+
if (m_enableFocusVisual) {
|
|
86
|
+
showFocusVisual(true);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
59
89
|
|
|
60
90
|
void CompositionBaseComponentView::updateEventEmitter(
|
|
61
91
|
facebook::react::EventEmitter::Shared const &eventEmitter) noexcept {
|
|
@@ -63,10 +93,49 @@ void CompositionBaseComponentView::updateEventEmitter(
|
|
|
63
93
|
}
|
|
64
94
|
|
|
65
95
|
void CompositionBaseComponentView::handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept {
|
|
96
|
+
if (commandName == "focus") {
|
|
97
|
+
if (auto root = rootComponentView()) {
|
|
98
|
+
root->SetFocusedComponent(this);
|
|
99
|
+
}
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (commandName == "blur") {
|
|
103
|
+
if (auto root = rootComponentView()) {
|
|
104
|
+
root->SetFocusedComponent(nullptr); // Todo store this component as previously focused element
|
|
105
|
+
}
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
66
108
|
assert(false); // Unhandled command
|
|
67
109
|
}
|
|
68
110
|
|
|
69
|
-
int64_t CompositionBaseComponentView::
|
|
111
|
+
int64_t CompositionBaseComponentView::sendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept {
|
|
112
|
+
if (msg == WM_KEYUP || msg == WM_KEYDOWN) {
|
|
113
|
+
facebook::react::KeyboardEvent event;
|
|
114
|
+
BYTE bKeys[256];
|
|
115
|
+
if (GetKeyboardState(bKeys)) {
|
|
116
|
+
if (bKeys[VK_LSHIFT] & 0x80 || bKeys[VK_RSHIFT] & 0x80) {
|
|
117
|
+
event.shiftKey = true;
|
|
118
|
+
}
|
|
119
|
+
if (bKeys[VK_LCONTROL] & 0x80 || bKeys[VK_RCONTROL] & 0x80) {
|
|
120
|
+
event.ctrlKey = true;
|
|
121
|
+
}
|
|
122
|
+
if (bKeys[VK_LMENU] & 0x80 || bKeys[VK_RMENU] & 0x80) {
|
|
123
|
+
event.altKey = true;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
event.metaKey = (GetKeyState(VK_LWIN) < 0) || (GetKeyState(VK_RWIN) < 0);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
event.key = FromVirtualKey(
|
|
130
|
+
static_cast<winrt::Windows::System::VirtualKey>(wParam), event.shiftKey, !!(GetKeyState(VK_CAPITAL) & 1));
|
|
131
|
+
event.code = CodeFromVirtualKey(static_cast<winrt::Windows::System::VirtualKey>(wParam));
|
|
132
|
+
if (msg == WM_KEYUP) {
|
|
133
|
+
m_eventEmitter->onKeyUp(event);
|
|
134
|
+
} else {
|
|
135
|
+
m_eventEmitter->onKeyDown(event);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
70
139
|
return 0;
|
|
71
140
|
}
|
|
72
141
|
|
|
@@ -640,11 +709,11 @@ void DrawAllBorderLayers(
|
|
|
640
709
|
spTextures[5],
|
|
641
710
|
{borderWidths.left + borderRadii.bottomLeft,
|
|
642
711
|
textureHeight - borderWidths.bottom,
|
|
643
|
-
textureWidth - (borderWidths.right + borderRadii.
|
|
712
|
+
textureWidth - (borderWidths.right + borderRadii.bottomRight),
|
|
644
713
|
textureHeight},
|
|
645
714
|
{AnchorPosition::Left, AnchorPosition::Bottom},
|
|
646
715
|
{borderWidths.left + borderRadii.bottomLeft, -borderWidths.bottom},
|
|
647
|
-
{-(borderWidths.right + borderRadii.bottomLeft + borderWidths.left + borderRadii.
|
|
716
|
+
{-(borderWidths.right + borderRadii.bottomLeft + borderWidths.left + borderRadii.bottomRight),
|
|
648
717
|
borderWidths.bottom},
|
|
649
718
|
{1.0f, 0.0f},
|
|
650
719
|
borderWidths.bottom,
|
|
@@ -933,6 +1002,19 @@ void CompositionBaseComponentView::UpdateSpecialBorderLayers(
|
|
|
933
1002
|
}
|
|
934
1003
|
}
|
|
935
1004
|
|
|
1005
|
+
winrt::Microsoft::ReactNative::Composition::IVisual CompositionBaseComponentView::OuterVisual() const noexcept {
|
|
1006
|
+
return m_outerVisual ? m_outerVisual : Visual();
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
void CompositionBaseComponentView::showFocusVisual(bool show) noexcept {
|
|
1010
|
+
if (show) {
|
|
1011
|
+
assert(m_enableFocusVisual);
|
|
1012
|
+
m_focusVisual.IsFocused(true);
|
|
1013
|
+
} else {
|
|
1014
|
+
m_focusVisual.IsFocused(false);
|
|
1015
|
+
}
|
|
1016
|
+
}
|
|
1017
|
+
|
|
936
1018
|
void CompositionBaseComponentView::updateBorderProps(
|
|
937
1019
|
const facebook::react::ViewProps &oldViewProps,
|
|
938
1020
|
const facebook::react::ViewProps &newViewProps) noexcept {
|
|
@@ -941,6 +1023,11 @@ void CompositionBaseComponentView::updateBorderProps(
|
|
|
941
1023
|
oldViewProps.borderStyles != newViewProps.borderStyles) {
|
|
942
1024
|
m_needsBorderUpdate = true;
|
|
943
1025
|
}
|
|
1026
|
+
|
|
1027
|
+
m_enableFocusVisual = newViewProps.enableFocusRing;
|
|
1028
|
+
if (!m_enableFocusVisual) {
|
|
1029
|
+
showFocusVisual(false);
|
|
1030
|
+
}
|
|
944
1031
|
}
|
|
945
1032
|
|
|
946
1033
|
void CompositionBaseComponentView::updateBorderLayoutMetrics(
|
|
@@ -964,10 +1051,19 @@ void CompositionBaseComponentView::updateBorderLayoutMetrics(
|
|
|
964
1051
|
Visual().as<Composition::IVisualInterop>()->SetClippingPath(pathGeometry.get());
|
|
965
1052
|
}
|
|
966
1053
|
|
|
967
|
-
if (
|
|
968
|
-
m_needsBorderUpdate =
|
|
969
|
-
UpdateSpecialBorderLayers(layoutMetrics, viewProps);
|
|
1054
|
+
if (m_layoutMetrics != layoutMetrics) {
|
|
1055
|
+
m_needsBorderUpdate = true;
|
|
970
1056
|
}
|
|
1057
|
+
|
|
1058
|
+
m_focusVisual.ScaleFactor(layoutMetrics.pointScaleFactor);
|
|
1059
|
+
OuterVisual().Size(
|
|
1060
|
+
{layoutMetrics.frame.size.width * layoutMetrics.pointScaleFactor,
|
|
1061
|
+
layoutMetrics.frame.size.height * layoutMetrics.pointScaleFactor});
|
|
1062
|
+
OuterVisual().Offset({
|
|
1063
|
+
layoutMetrics.frame.origin.x * layoutMetrics.pointScaleFactor,
|
|
1064
|
+
layoutMetrics.frame.origin.y * layoutMetrics.pointScaleFactor,
|
|
1065
|
+
0.0f,
|
|
1066
|
+
});
|
|
971
1067
|
}
|
|
972
1068
|
|
|
973
1069
|
void CompositionBaseComponentView::indexOffsetForBorder(uint32_t &index) const noexcept {
|
|
@@ -976,6 +1072,11 @@ void CompositionBaseComponentView::indexOffsetForBorder(uint32_t &index) const n
|
|
|
976
1072
|
|
|
977
1073
|
void CompositionBaseComponentView::OnRenderingDeviceLost() noexcept {}
|
|
978
1074
|
|
|
1075
|
+
std::vector<facebook::react::ComponentDescriptorProvider>
|
|
1076
|
+
CompositionBaseComponentView::supplementalComponentDescriptorProviders() noexcept {
|
|
1077
|
+
return {};
|
|
1078
|
+
}
|
|
1079
|
+
|
|
979
1080
|
comp::CompositionPropertySet CompositionBaseComponentView::EnsureCenterPointPropertySet() noexcept {
|
|
980
1081
|
if (m_centerPropSet == nullptr) {
|
|
981
1082
|
auto compositor =
|
|
@@ -1031,10 +1132,23 @@ void CompositionBaseComponentView::EnsureTransformMatrixFacade() noexcept {
|
|
|
1031
1132
|
.CreateExpressionAnimation(
|
|
1032
1133
|
L"Matrix4x4.CreateFromScale(PS.dpiScale3Inv) * Matrix4x4.CreateFromTranslation(PS.translation) * PS.transform * Matrix4x4.CreateFromScale(PS.dpiScale3)");
|
|
1033
1134
|
expression.SetReferenceParameter(L"PS", centerPointPropSet);
|
|
1034
|
-
winrt::Microsoft::ReactNative::Composition::implementation::CompositionContextHelper::InnerVisual(
|
|
1135
|
+
winrt::Microsoft::ReactNative::Composition::implementation::CompositionContextHelper::InnerVisual(OuterVisual())
|
|
1035
1136
|
.StartAnimation(L"TransformMatrix", expression);
|
|
1036
1137
|
}
|
|
1037
1138
|
|
|
1139
|
+
facebook::react::SharedTouchEventEmitter CompositionBaseComponentView::touchEventEmitter() noexcept {
|
|
1140
|
+
return m_eventEmitter;
|
|
1141
|
+
}
|
|
1142
|
+
|
|
1143
|
+
facebook::react::SharedTouchEventEmitter CompositionBaseComponentView::touchEventEmitterAtPoint(
|
|
1144
|
+
facebook::react::Point /*pt*/) noexcept {
|
|
1145
|
+
return m_eventEmitter;
|
|
1146
|
+
}
|
|
1147
|
+
|
|
1148
|
+
bool CompositionBaseComponentView::focusable() const noexcept {
|
|
1149
|
+
return false;
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1038
1152
|
CompositionViewComponentView::CompositionViewComponentView(
|
|
1039
1153
|
const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
|
|
1040
1154
|
facebook::react::Tag tag)
|
|
@@ -1042,34 +1156,36 @@ CompositionViewComponentView::CompositionViewComponentView(
|
|
|
1042
1156
|
static auto const defaultProps = std::make_shared<facebook::react::ViewProps const>();
|
|
1043
1157
|
m_props = defaultProps;
|
|
1044
1158
|
m_visual = m_compContext.CreateSpriteVisual();
|
|
1159
|
+
OuterVisual().InsertAt(m_visual, 0);
|
|
1045
1160
|
}
|
|
1046
1161
|
|
|
1047
|
-
std::
|
|
1048
|
-
|
|
1049
|
-
|
|
1162
|
+
std::shared_ptr<CompositionViewComponentView> CompositionViewComponentView::Create(
|
|
1163
|
+
const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
|
|
1164
|
+
facebook::react::Tag tag) noexcept {
|
|
1165
|
+
return std::shared_ptr<CompositionViewComponentView>(new CompositionViewComponentView(compContext, tag));
|
|
1050
1166
|
}
|
|
1051
1167
|
|
|
1052
1168
|
void CompositionViewComponentView::mountChildComponentView(
|
|
1053
|
-
|
|
1169
|
+
IComponentView &childComponentView,
|
|
1054
1170
|
uint32_t index) noexcept {
|
|
1055
1171
|
m_children.insert(std::next(m_children.begin(), index), &childComponentView);
|
|
1056
1172
|
|
|
1057
1173
|
indexOffsetForBorder(index);
|
|
1058
1174
|
|
|
1059
|
-
|
|
1175
|
+
childComponentView.parent(this);
|
|
1060
1176
|
|
|
1061
|
-
m_visual.InsertAt(static_cast<
|
|
1177
|
+
m_visual.InsertAt(static_cast<CompositionBaseComponentView &>(childComponentView).OuterVisual(), index);
|
|
1062
1178
|
}
|
|
1063
1179
|
|
|
1064
1180
|
void CompositionViewComponentView::unmountChildComponentView(
|
|
1065
|
-
|
|
1181
|
+
IComponentView &childComponentView,
|
|
1066
1182
|
uint32_t index) noexcept {
|
|
1067
1183
|
m_children.erase(std::next(m_children.begin(), index));
|
|
1068
1184
|
|
|
1069
1185
|
indexOffsetForBorder(index);
|
|
1070
1186
|
|
|
1071
|
-
|
|
1072
|
-
m_visual.Remove(static_cast<
|
|
1187
|
+
childComponentView.parent(nullptr);
|
|
1188
|
+
m_visual.Remove(static_cast<CompositionBaseComponentView &>(childComponentView).OuterVisual());
|
|
1073
1189
|
}
|
|
1074
1190
|
|
|
1075
1191
|
void CompositionViewComponentView::updateProps(
|
|
@@ -1105,6 +1221,23 @@ void CompositionViewComponentView::updateProps(
|
|
|
1105
1221
|
m_visual.Shadow(shadow);
|
|
1106
1222
|
}
|
|
1107
1223
|
|
|
1224
|
+
if (oldViewProps.backfaceVisibility != newViewProps.backfaceVisibility) {
|
|
1225
|
+
static_assert(
|
|
1226
|
+
static_cast<facebook::react::BackfaceVisibility>(
|
|
1227
|
+
winrt::Microsoft::ReactNative::Composition::BackfaceVisibility::Inherit) ==
|
|
1228
|
+
facebook::react::BackfaceVisibility::Auto);
|
|
1229
|
+
static_assert(
|
|
1230
|
+
static_cast<facebook::react::BackfaceVisibility>(
|
|
1231
|
+
winrt::Microsoft::ReactNative::Composition::BackfaceVisibility::Visible) ==
|
|
1232
|
+
facebook::react::BackfaceVisibility::Visible);
|
|
1233
|
+
static_assert(
|
|
1234
|
+
static_cast<facebook::react::BackfaceVisibility>(
|
|
1235
|
+
winrt::Microsoft::ReactNative::Composition::BackfaceVisibility::Hidden) ==
|
|
1236
|
+
facebook::react::BackfaceVisibility::Hidden);
|
|
1237
|
+
m_visual.BackfaceVisibility(
|
|
1238
|
+
static_cast<winrt::Microsoft::ReactNative::Composition::BackfaceVisibility>(newViewProps.backfaceVisibility));
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1108
1241
|
// Transform - TODO doesn't handle multiple of the same kind of transform -- Doesn't handle hittesting updates
|
|
1109
1242
|
if (oldViewProps.transform != newViewProps.transform) {
|
|
1110
1243
|
winrt::Windows::Foundation::Numerics::float4x4 transformMatrix;
|
|
@@ -1159,10 +1292,6 @@ facebook::react::Tag CompositionViewComponentView::hitTest(facebook::react::Poin
|
|
|
1159
1292
|
return -1;
|
|
1160
1293
|
}
|
|
1161
1294
|
|
|
1162
|
-
facebook::react::SharedTouchEventEmitter CompositionViewComponentView::touchEventEmitter() noexcept {
|
|
1163
|
-
return m_eventEmitter;
|
|
1164
|
-
}
|
|
1165
|
-
|
|
1166
1295
|
bool CompositionViewComponentView::ScrollWheel(facebook::react::Point pt, int32_t delta) noexcept {
|
|
1167
1296
|
facebook::react::Point ptLocal{pt.x - m_layoutMetrics.frame.origin.x, pt.y - m_layoutMetrics.frame.origin.y};
|
|
1168
1297
|
|
|
@@ -1185,7 +1314,7 @@ void CompositionViewComponentView::updateLayoutMetrics(
|
|
|
1185
1314
|
facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept {
|
|
1186
1315
|
// Set Position & Size Properties
|
|
1187
1316
|
if ((layoutMetrics.displayType != m_layoutMetrics.displayType)) {
|
|
1188
|
-
|
|
1317
|
+
OuterVisual().IsVisible(layoutMetrics.displayType != facebook::react::DisplayType::None);
|
|
1189
1318
|
}
|
|
1190
1319
|
|
|
1191
1320
|
updateBorderLayoutMetrics(layoutMetrics, *m_props);
|
|
@@ -1196,14 +1325,14 @@ void CompositionViewComponentView::updateLayoutMetrics(
|
|
|
1196
1325
|
m_visual.Size(
|
|
1197
1326
|
{layoutMetrics.frame.size.width * layoutMetrics.pointScaleFactor,
|
|
1198
1327
|
layoutMetrics.frame.size.height * layoutMetrics.pointScaleFactor});
|
|
1199
|
-
m_visual.Offset({
|
|
1200
|
-
layoutMetrics.frame.origin.x * layoutMetrics.pointScaleFactor,
|
|
1201
|
-
layoutMetrics.frame.origin.y * layoutMetrics.pointScaleFactor,
|
|
1202
|
-
0.0f,
|
|
1203
|
-
});
|
|
1204
1328
|
}
|
|
1205
1329
|
|
|
1206
|
-
void CompositionViewComponentView::finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept {
|
|
1330
|
+
void CompositionViewComponentView::finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept {
|
|
1331
|
+
if (m_needsBorderUpdate) {
|
|
1332
|
+
m_needsBorderUpdate = false;
|
|
1333
|
+
UpdateSpecialBorderLayers(m_layoutMetrics, *m_props);
|
|
1334
|
+
}
|
|
1335
|
+
}
|
|
1207
1336
|
|
|
1208
1337
|
void CompositionViewComponentView::prepareForRecycle() noexcept {}
|
|
1209
1338
|
facebook::react::Props::Shared CompositionViewComponentView::props() noexcept {
|
|
@@ -1214,4 +1343,80 @@ winrt::Microsoft::ReactNative::Composition::IVisual CompositionViewComponentView
|
|
|
1214
1343
|
return m_visual;
|
|
1215
1344
|
}
|
|
1216
1345
|
|
|
1346
|
+
bool CompositionViewComponentView::focusable() const noexcept {
|
|
1347
|
+
return m_props->focusable;
|
|
1348
|
+
}
|
|
1349
|
+
|
|
1350
|
+
IComponentView *lastDeepChild(IComponentView &view) noexcept {
|
|
1351
|
+
auto current = &view;
|
|
1352
|
+
while (current) {
|
|
1353
|
+
auto children = current->children();
|
|
1354
|
+
auto itLastChild = children.rbegin();
|
|
1355
|
+
if (itLastChild == children.rend()) {
|
|
1356
|
+
break;
|
|
1357
|
+
}
|
|
1358
|
+
current = *itLastChild;
|
|
1359
|
+
}
|
|
1360
|
+
return current;
|
|
1361
|
+
}
|
|
1362
|
+
|
|
1363
|
+
bool walkTree(IComponentView &view, bool forward, Mso::Functor<bool(IComponentView &)> &fn) noexcept {
|
|
1364
|
+
if (forward) {
|
|
1365
|
+
if (fn(view)) {
|
|
1366
|
+
return true;
|
|
1367
|
+
}
|
|
1368
|
+
|
|
1369
|
+
for (auto it = view.children().begin(); it != view.children().end(); ++it) {
|
|
1370
|
+
if (fn(**it))
|
|
1371
|
+
return true;
|
|
1372
|
+
}
|
|
1373
|
+
|
|
1374
|
+
auto current = &view;
|
|
1375
|
+
auto parent = current->parent();
|
|
1376
|
+
while (parent) {
|
|
1377
|
+
auto &parentsChildren = parent->children();
|
|
1378
|
+
auto itNextView = std::find(parentsChildren.begin(), parentsChildren.end(), current);
|
|
1379
|
+
assert(itNextView != parentsChildren.end());
|
|
1380
|
+
++itNextView;
|
|
1381
|
+
if (itNextView != parentsChildren.end()) {
|
|
1382
|
+
return walkTree(**itNextView, true, fn);
|
|
1383
|
+
}
|
|
1384
|
+
current = parent;
|
|
1385
|
+
parent = current->parent();
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1388
|
+
} else {
|
|
1389
|
+
auto current = &view;
|
|
1390
|
+
auto parent = current->parent();
|
|
1391
|
+
while (parent) {
|
|
1392
|
+
auto &parentsChildren = parent->children();
|
|
1393
|
+
auto itNextView = std::find(parentsChildren.rbegin(), parentsChildren.rend(), current);
|
|
1394
|
+
assert(itNextView != parentsChildren.rend());
|
|
1395
|
+
auto index = std::distance(parentsChildren.rbegin(), itNextView);
|
|
1396
|
+
++itNextView;
|
|
1397
|
+
if (itNextView != parentsChildren.rend()) {
|
|
1398
|
+
auto lastChild = lastDeepChild(**itNextView);
|
|
1399
|
+
if (fn(*lastChild))
|
|
1400
|
+
return true;
|
|
1401
|
+
return walkTree(*lastChild, false, fn);
|
|
1402
|
+
}
|
|
1403
|
+
|
|
1404
|
+
if (fn(*parent)) {
|
|
1405
|
+
return true;
|
|
1406
|
+
}
|
|
1407
|
+
current = parent;
|
|
1408
|
+
parent = current->parent();
|
|
1409
|
+
}
|
|
1410
|
+
}
|
|
1411
|
+
return false;
|
|
1412
|
+
}
|
|
1413
|
+
|
|
1414
|
+
winrt::IInspectable CompositionBaseComponentView::EnsureUiaProvider() noexcept {
|
|
1415
|
+
if (m_uiaProvider == nullptr) {
|
|
1416
|
+
m_uiaProvider = winrt::make<winrt::Microsoft::ReactNative::implementation::CompositionDynamicAutomationProvider>(
|
|
1417
|
+
shared_from_this());
|
|
1418
|
+
}
|
|
1419
|
+
return m_uiaProvider;
|
|
1420
|
+
}
|
|
1421
|
+
|
|
1217
1422
|
} // namespace Microsoft::ReactNative
|
|
@@ -14,11 +14,8 @@ namespace Microsoft::ReactNative {
|
|
|
14
14
|
struct CompositionBaseComponentView;
|
|
15
15
|
struct CompContext;
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
CompositionBaseComponentView
|
|
19
|
-
void SetFocusedComponent(CompositionBaseComponentView *value) noexcept;
|
|
20
|
-
|
|
21
|
-
struct CompositionBaseComponentView : public IComponentView {
|
|
17
|
+
struct CompositionBaseComponentView : public IComponentView,
|
|
18
|
+
public std::enable_shared_from_this<CompositionBaseComponentView> {
|
|
22
19
|
static constexpr size_t SpecialBorderLayerCount = 8;
|
|
23
20
|
|
|
24
21
|
CompositionBaseComponentView(
|
|
@@ -26,18 +23,27 @@ struct CompositionBaseComponentView : public IComponentView {
|
|
|
26
23
|
facebook::react::Tag tag);
|
|
27
24
|
|
|
28
25
|
virtual winrt::Microsoft::ReactNative::Composition::IVisual Visual() const noexcept = 0;
|
|
26
|
+
// Visual that should be parented to this ComponentView's parent
|
|
27
|
+
virtual winrt::Microsoft::ReactNative::Composition::IVisual OuterVisual() const noexcept;
|
|
29
28
|
void updateEventEmitter(facebook::react::EventEmitter::Shared const &eventEmitter) noexcept override;
|
|
30
29
|
const facebook::react::SharedViewEventEmitter &GetEventEmitter() const noexcept;
|
|
31
30
|
void handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept override;
|
|
31
|
+
RootComponentView *rootComponentView() noexcept override;
|
|
32
|
+
const std::vector<IComponentView *> &children() const noexcept override;
|
|
32
33
|
void parent(IComponentView *parent) noexcept override;
|
|
33
34
|
IComponentView *parent() const noexcept override;
|
|
35
|
+
bool runOnChildren(bool forward, Mso::Functor<bool(IComponentView &)> &fn) noexcept override;
|
|
34
36
|
void onFocusLost() noexcept override;
|
|
35
37
|
void onFocusGained() noexcept override;
|
|
36
|
-
|
|
38
|
+
bool focusable() const noexcept override;
|
|
39
|
+
std::vector<facebook::react::ComponentDescriptorProvider> supplementalComponentDescriptorProviders() noexcept
|
|
40
|
+
override;
|
|
41
|
+
facebook::react::SharedTouchEventEmitter touchEventEmitter() noexcept override;
|
|
42
|
+
facebook::react::SharedTouchEventEmitter touchEventEmitterAtPoint(facebook::react::Point pt) noexcept override;
|
|
37
43
|
facebook::react::Tag tag() const noexcept override;
|
|
44
|
+
int64_t sendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept override;
|
|
38
45
|
|
|
39
46
|
virtual bool ScrollWheel(facebook::react::Point pt, int32_t delta) noexcept;
|
|
40
|
-
virtual int64_t SendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept;
|
|
41
47
|
RECT getClientRect() const noexcept override;
|
|
42
48
|
|
|
43
49
|
void indexOffsetForBorder(uint32_t &index) const noexcept;
|
|
@@ -53,6 +59,8 @@ struct CompositionBaseComponentView : public IComponentView {
|
|
|
53
59
|
comp::CompositionPropertySet EnsureCenterPointPropertySet() noexcept;
|
|
54
60
|
void EnsureTransformMatrixFacade() noexcept;
|
|
55
61
|
|
|
62
|
+
winrt::IInspectable EnsureUiaProvider() noexcept override;
|
|
63
|
+
|
|
56
64
|
protected:
|
|
57
65
|
std::array<winrt::Microsoft::ReactNative::Composition::SpriteVisual, SpecialBorderLayerCount>
|
|
58
66
|
FindSpecialBorderLayers() const noexcept;
|
|
@@ -65,28 +73,34 @@ struct CompositionBaseComponentView : public IComponentView {
|
|
|
65
73
|
const facebook::react::ViewProps &viewProps) noexcept;
|
|
66
74
|
void UpdateCenterPropertySet() noexcept;
|
|
67
75
|
|
|
76
|
+
winrt::IInspectable m_uiaProvider{nullptr};
|
|
68
77
|
winrt::Microsoft::ReactNative::Composition::ICompositionContext m_compContext;
|
|
69
78
|
comp::CompositionPropertySet m_centerPropSet{nullptr};
|
|
70
79
|
const facebook::react::Tag m_tag;
|
|
71
80
|
facebook::react::SharedViewEventEmitter m_eventEmitter;
|
|
72
|
-
std::vector<
|
|
81
|
+
std::vector<IComponentView *> m_children;
|
|
73
82
|
IComponentView *m_parent{nullptr};
|
|
74
83
|
facebook::react::LayoutMetrics m_layoutMetrics;
|
|
75
84
|
bool m_needsBorderUpdate{false};
|
|
76
85
|
bool m_hasTransformMatrixFacade{false};
|
|
86
|
+
bool m_enableFocusVisual{false};
|
|
77
87
|
uint8_t m_numBorderVisuals{0};
|
|
88
|
+
|
|
89
|
+
private:
|
|
90
|
+
void showFocusVisual(bool show) noexcept;
|
|
91
|
+
winrt::Microsoft::ReactNative::Composition::IFocusVisual m_focusVisual{nullptr};
|
|
92
|
+
winrt::Microsoft::ReactNative::Composition::IVisual m_outerVisual{nullptr};
|
|
78
93
|
};
|
|
79
94
|
|
|
80
95
|
struct CompositionViewComponentView : public CompositionBaseComponentView {
|
|
81
96
|
using Super = CompositionBaseComponentView;
|
|
82
|
-
|
|
97
|
+
|
|
98
|
+
[[nodiscard]] static std::shared_ptr<CompositionViewComponentView> Create(
|
|
83
99
|
const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
|
|
84
|
-
facebook::react::Tag tag);
|
|
100
|
+
facebook::react::Tag tag) noexcept;
|
|
85
101
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
void mountChildComponentView(const IComponentView &childComponentView, uint32_t index) noexcept override;
|
|
89
|
-
void unmountChildComponentView(const IComponentView &childComponentView, uint32_t index) noexcept override;
|
|
102
|
+
void mountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept override;
|
|
103
|
+
void unmountChildComponentView(IComponentView &childComponentView, uint32_t index) noexcept override;
|
|
90
104
|
void updateProps(facebook::react::Props::Shared const &props, facebook::react::Props::Shared const &oldProps) noexcept
|
|
91
105
|
override;
|
|
92
106
|
void updateState(facebook::react::State::Shared const &state, facebook::react::State::Shared const &oldState) noexcept
|
|
@@ -96,7 +110,7 @@ struct CompositionViewComponentView : public CompositionBaseComponentView {
|
|
|
96
110
|
facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept override;
|
|
97
111
|
void finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept override;
|
|
98
112
|
void prepareForRecycle() noexcept override;
|
|
99
|
-
|
|
113
|
+
bool focusable() const noexcept override;
|
|
100
114
|
|
|
101
115
|
facebook::react::Props::Shared props() noexcept override;
|
|
102
116
|
|
|
@@ -105,6 +119,11 @@ struct CompositionViewComponentView : public CompositionBaseComponentView {
|
|
|
105
119
|
|
|
106
120
|
winrt::Microsoft::ReactNative::Composition::IVisual Visual() const noexcept override;
|
|
107
121
|
|
|
122
|
+
protected:
|
|
123
|
+
CompositionViewComponentView(
|
|
124
|
+
const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
|
|
125
|
+
facebook::react::Tag tag);
|
|
126
|
+
|
|
108
127
|
private:
|
|
109
128
|
facebook::react::SharedViewProps m_props;
|
|
110
129
|
winrt::Microsoft::ReactNative::Composition::SpriteVisual m_visual{nullptr};
|