react-native-windows 0.72.14 → 0.73.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 +16 -5
- package/Chakra/ChakraHelpers.cpp +1 -1
- package/Chakra/ChakraUtils.cpp +1 -1
- package/Chakra/ChakraValue.h +1 -1
- package/Common/packages.lock.json +13 -0
- package/Directory.Build.props +6 -2
- package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1 -10
- package/Folly/TEMP_UntilFollyUpdate/hash/Hash.h +1016 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +1 -1
- package/Folly/cgmanifest.json +1 -1
- package/Folly/packages.lock.json +23 -0
- package/Libraries/Animated/Animated.js +1 -1
- package/Libraries/Animated/AnimatedImplementation.js +1 -1
- package/Libraries/Animated/NativeAnimatedHelper.js +14 -10
- package/Libraries/Animated/NativeAnimatedModule.js +6 -2
- package/Libraries/Animated/NativeAnimatedTurboModule.js +7 -4
- package/Libraries/Animated/animations/Animation.js +57 -3
- package/Libraries/Animated/animations/DecayAnimation.js +9 -0
- package/Libraries/Animated/animations/SpringAnimation.js +8 -0
- package/Libraries/Animated/animations/TimingAnimation.js +8 -0
- package/Libraries/Animated/components/AnimatedFlatList.js +2 -1
- package/Libraries/Animated/components/AnimatedScrollView.js +2 -0
- package/Libraries/Animated/components/AnimatedSectionList.js +2 -1
- package/Libraries/Animated/createAnimatedComponent.js +1 -0
- package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
- package/Libraries/Animated/nodes/AnimatedObject.js +146 -0
- package/Libraries/Animated/nodes/AnimatedProps.js +19 -7
- package/Libraries/Animated/nodes/AnimatedStyle.js +29 -55
- package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -17
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +17 -0
- package/Libraries/Animated/useAnimatedProps.js +9 -10
- package/Libraries/AppState/AppState.d.ts +1 -1
- package/Libraries/AppState/NativeAppState.js +8 -4
- package/Libraries/AppTheme/AppTheme.js +5 -5
- package/Libraries/BatchedBridge/MessageQueue.js +45 -36
- package/Libraries/Blob/Blob.js +6 -2
- package/Libraries/Blob/BlobManager.js +9 -10
- package/Libraries/Blob/BlobRegistry.js +14 -9
- package/Libraries/Blob/File.js +1 -1
- package/Libraries/Blob/FileReader.js +1 -2
- package/Libraries/Components/Clipboard/Clipboard.d.ts +4 -4
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -1
- package/Libraries/Components/Glyph/Glyph.js +1 -1
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +26 -6
- package/Libraries/Components/Keyboard/KeyboardExt.d.ts +4 -1
- package/Libraries/Components/Keyboard/KeyboardExt.js +3 -0
- package/Libraries/Components/Keyboard/KeyboardExt.js.map +1 -1
- package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +4 -29
- package/Libraries/Components/Keyboard/KeyboardExtProps.js +0 -17
- package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
- package/Libraries/Components/Pressable/Pressable.js +3 -2
- package/Libraries/Components/Pressable/Pressable.windows.js +4 -3
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +20 -0
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.windows.js +7 -1
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +7 -7
- package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +7 -10
- package/Libraries/Components/ScrollView/ScrollView.js +3 -1
- package/Libraries/Components/ScrollView/ScrollView.windows.js +3 -1
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +39 -46
- package/Libraries/Components/Switch/Switch.js +1 -0
- package/Libraries/Components/Switch/Switch.windows.js +259 -0
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
- package/Libraries/Components/TextInput/TextInput.d.ts +49 -7
- package/Libraries/Components/TextInput/TextInput.flow.js +43 -10
- package/Libraries/Components/TextInput/TextInput.js +62 -10
- package/Libraries/Components/TextInput/TextInput.windows.js +100 -14
- package/Libraries/Components/ToastAndroid/{ToastAndroid.ios.js → ToastAndroid.js} +9 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.windows.js +9 -1
- package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +1 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableOpacity.js +4 -1
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -0
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +16 -6
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +9 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
- package/Libraries/Components/View/View.js +46 -32
- package/Libraries/Components/View/View.windows.js +23 -7
- package/Libraries/Components/View/ViewAccessibility.d.ts +27 -1
- package/Libraries/Components/View/ViewAccessibility.windows.js +3 -0
- package/Libraries/Components/View/ViewNativeComponent.js +1 -0
- package/Libraries/Components/View/ViewPropTypes.d.ts +104 -1
- package/Libraries/Components/View/ViewPropTypes.js +18 -3
- package/Libraries/Components/View/ViewPropTypes.windows.js +33 -3
- package/Libraries/Core/Devtools/loadBundleFromServer.js +152 -0
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -1
- package/Libraries/Core/ExceptionsManager.js +16 -7
- package/Libraries/Core/ExtendedError.js +12 -0
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/ReactNativeVersionCheck.js +0 -2
- package/Libraries/Core/__mocks__/NativeExceptionsManager.js +20 -0
- package/Libraries/Core/setUpDeveloperTools.js +5 -1
- package/Libraries/Core/setUpIntersectionObserver.js +16 -0
- package/Libraries/Core/setUpMutationObserver.js +16 -0
- package/Libraries/Core/setUpPerformance.js +6 -13
- package/Libraries/Core/setUpPerformanceObserver.js +16 -0
- package/Libraries/Core/setUpRegeneratorRuntime.js +4 -2
- package/Libraries/DOM/Nodes/ReactNativeElement.js +135 -18
- package/Libraries/DOM/Nodes/ReadOnlyCharacterData.js +72 -0
- package/Libraries/DOM/Nodes/ReadOnlyElement.js +209 -21
- package/Libraries/DOM/Nodes/ReadOnlyNode.js +206 -17
- package/Libraries/DOM/Nodes/ReadOnlyText.js +30 -0
- package/Libraries/DOM/Nodes/Utilities/Traversal.js +54 -0
- package/Libraries/EventEmitter/NativeEventEmitter.d.ts +0 -6
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +15 -4
- package/Libraries/Image/Image.android.js +8 -2
- package/Libraries/Image/Image.d.ts +1 -1
- package/Libraries/Image/Image.ios.js +4 -1
- package/Libraries/Image/Image.windows.js +6 -3
- package/Libraries/Image/ImageBackground.js +3 -0
- package/Libraries/Inspector/DevtoolsOverlay.js +6 -3
- package/Libraries/Inspector/NetworkOverlay.js +2 -2
- package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -5
- package/Libraries/Interaction/PanResponder.js +1 -4
- package/Libraries/IntersectionObserver/IntersectionObserver.js +252 -0
- package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +140 -0
- package/Libraries/IntersectionObserver/IntersectionObserverManager.js +221 -0
- package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +41 -0
- package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +162 -0
- package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +2 -1
- package/Libraries/Lists/FlatList.js +15 -5
- package/Libraries/Lists/SectionList.js +4 -0
- package/Libraries/LogBox/Data/LogBoxLog.js +4 -1
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +5 -2
- package/Libraries/LogBox/Data/parseLogBoxLog.js +57 -20
- package/Libraries/LogBox/UI/AnsiHighlight.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +24 -31
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxMessage.js +4 -7
- package/Libraries/MutationObserver/MutationObserver.js +184 -0
- package/Libraries/MutationObserver/MutationObserverManager.js +218 -0
- package/Libraries/MutationObserver/MutationRecord.js +82 -0
- package/Libraries/MutationObserver/NativeMutationObserver.js +58 -0
- package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +327 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +18 -3
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +33 -0
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +34 -4
- package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -5
- package/Libraries/NativeModules/specs/NativeSourceCode.js +6 -6
- package/Libraries/Network/RCTNetworking.android.js +2 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -4
- package/Libraries/NewAppScreen/components/DebugInstructions.windows.js +2 -2
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +9 -2
- package/Libraries/Performance/QuickPerformanceLogger.js +1 -1
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -1
- package/Libraries/Pressability/Pressability.js +28 -3
- package/Libraries/Pressability/Pressability.windows.js +30 -5
- package/Libraries/ReactNative/AppContainer.js +2 -3
- package/Libraries/ReactNative/AppRegistry.d.ts +0 -5
- package/Libraries/ReactNative/AppRegistry.js +66 -53
- package/Libraries/ReactNative/BridgelessUIManager.js +38 -9
- package/Libraries/ReactNative/FabricUIManager.js +143 -34
- package/Libraries/ReactNative/I18nManager.js +5 -11
- package/Libraries/ReactNative/NativeI18nManager.js +7 -5
- package/Libraries/ReactNative/PaperUIManager.windows.js +2 -2
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +151 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +81 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +492 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +32 -0
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +19 -3
- package/Libraries/ReactNative/UIManager.js +8 -0
- package/Libraries/ReactNative/__mocks__/FabricUIManager.js +648 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +38 -2
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +27 -27
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +27 -27
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -3
- package/Libraries/Renderer/shims/ReactFabric.js +5 -6
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -3
- package/Libraries/Renderer/shims/ReactNative.js +2 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.js +35 -17
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -3
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -3
- package/Libraries/Settings/{Settings.android.js → Settings.js} +4 -4
- package/Libraries/Share/Share.d.ts +3 -9
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +9 -4
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +28 -13
- package/Libraries/StyleSheet/PlatformColorValueTypes.windows.js +10 -6
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.d.ts +10 -1
- package/Libraries/StyleSheet/StyleSheet.js +3 -0
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +31 -17
- package/Libraries/StyleSheet/StyleSheetTypes.js +90 -6
- package/Libraries/StyleSheet/flattenStyle.js +4 -0
- package/Libraries/StyleSheet/private/_TransformStyle.js +16 -2
- package/Libraries/StyleSheet/processColor.js +1 -2
- package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
- package/Libraries/StyleSheet/splitLayoutProps.js +1 -0
- package/Libraries/Text/Text.d.ts +5 -5
- package/Libraries/Text/Text.js +17 -10
- package/Libraries/Text/Text.windows.js +53 -20
- package/Libraries/Text/TextProps.windows.js +275 -0
- package/Libraries/TurboModule/TurboModuleRegistry.js +47 -7
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
- package/Libraries/Types/CoreEventTypes.d.ts +5 -2
- package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -12
- package/Libraries/Utilities/NativeDeviceInfo.js +8 -9
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +23 -18
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +16 -13
- package/Libraries/Utilities/NativePlatformConstantsWin.js +13 -10
- package/Libraries/Utilities/PerformanceLoggerContext.js +1 -1
- package/Libraries/Utilities/Platform.android.js +12 -8
- package/Libraries/Utilities/Platform.d.ts +1 -0
- package/Libraries/Utilities/Platform.flow.js +84 -0
- package/Libraries/Utilities/Platform.flow.windows.js +111 -0
- package/Libraries/Utilities/Platform.ios.js +12 -8
- package/Libraries/Utilities/Platform.windows.js +12 -8
- package/Libraries/Utilities/PolyfillFunctions.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -2
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/createPerformanceLogger.js +63 -32
- package/Libraries/Utilities/useColorScheme.js +7 -8
- package/Libraries/WebPerformance/MemoryInfo.js +1 -1
- package/Libraries/WebPerformance/NativePerformance.js +3 -8
- package/Libraries/WebPerformance/NativePerformanceObserver.js +4 -0
- package/Libraries/WebPerformance/Performance.js +42 -15
- package/Libraries/WebPerformance/PerformanceEntry.js +14 -6
- package/Libraries/WebPerformance/PerformanceEventTiming.js +18 -1
- package/Libraries/WebPerformance/ReactNativeStartupTiming.js +40 -14
- package/Libraries/WebPerformance/__mocks__/NativePerformance.js +4 -2
- package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +21 -3
- package/Libraries/__tests__/ViewWindows-test.js +3 -3
- package/Libraries/platform-types.d.ts +6 -2
- package/Libraries/promiseRejectionTrackingOptions.js +1 -3
- package/Libraries/vendor/emitter/EventEmitter.js +17 -17
- package/Microsoft.ReactNative/Composition.Input.idl +103 -0
- package/Microsoft.ReactNative/CompositionContext.idl +31 -8
- package/Microsoft.ReactNative/CompositionRootView.idl +8 -4
- package/Microsoft.ReactNative/CompositionSwitcher.idl +28 -17
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +15 -28
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +7 -10
- package/Microsoft.ReactNative/Fabric/ComponentView.h +42 -4
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +57 -4
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +22 -1
- package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.cpp +137 -0
- package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.h +59 -0
- package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +8 -2
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +575 -0
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +170 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +890 -226
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +38 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +79 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +130 -27
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +6 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +382 -228
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +35 -8
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +46 -8
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +5 -21
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +232 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +36 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +51 -14
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +15 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView_emptyimpl.cpp +123 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +18 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +333 -137
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +52 -8
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +32 -26
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +5 -3
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +183 -175
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +7 -4
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +101 -2
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +46 -2
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +36 -9
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +8 -2
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +247 -42
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +25 -8
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +78 -50
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +12 -4
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +26 -28
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +429 -89
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +24 -3
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +1 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -2
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +5 -7
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -6
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -7
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +1 -17
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +74 -3
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +12 -0
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +53 -59
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +3 -2
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +5 -4
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -1
- package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +1 -1
- package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +3 -4
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformTouch.h +10 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +59 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.h +31 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +69 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +25 -2
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +23 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/KeyEvent.h +113 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/WindowsViewEvents.h +75 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +18 -21
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +158 -7
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +15 -17
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +1 -1
- package/Microsoft.ReactNative/GlyphViewManager.cpp +1 -1
- package/Microsoft.ReactNative/IJSValueReader.idl +2 -2
- package/Microsoft.ReactNative/IJSValueWriter.idl +2 -2
- package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +23 -1
- package/Microsoft.ReactNative/IReactContext.cpp +1 -1
- package/Microsoft.ReactNative/IReactNotificationService.cpp +4 -3
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -4
- package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +1 -2
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +1 -1
- package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +3 -4
- package/Microsoft.ReactNative/Modules/AppStateModule.cpp +1 -1
- package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -2
- package/Microsoft.ReactNative/Modules/AppearanceModule.h +1 -1
- package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +4 -2
- package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +1 -1
- package/Microsoft.ReactNative/Modules/I18nManagerModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/I18nManagerModule.h +1 -1
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -15
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +10 -6
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +4 -1
- package/Microsoft.ReactNative/QuirkSettings.idl +1 -1
- package/Microsoft.ReactNative/ReactApplication.cpp +13 -11
- package/Microsoft.ReactNative/ReactApplication.h +4 -4
- package/Microsoft.ReactNative/ReactCoreInjection.h +6 -5
- package/Microsoft.ReactNative/ReactHost/JSCallInvokerScheduler.cpp +2 -2
- package/Microsoft.ReactNative/ReactHost/MsoUtils.cpp +1 -1
- package/Microsoft.ReactNative/ReactHost/React.h +3 -6
- package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -16
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +8 -16
- package/Microsoft.ReactNative/ReactInstanceSettings.cpp +6 -5
- package/Microsoft.ReactNative/ReactInstanceSettings.h +7 -7
- package/Microsoft.ReactNative/ReactNativeHost.h +4 -4
- package/Microsoft.ReactNative/ReactRootView.cpp +5 -4
- package/Microsoft.ReactNative/ReactRootView.h +2 -2
- package/Microsoft.ReactNative/ReactSupport.h +1 -1
- package/Microsoft.ReactNative/RedBox.cpp +1 -1
- package/Microsoft.ReactNative/RedBoxHandler.idl +1 -1
- package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +1 -1
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +49 -21
- package/Microsoft.ReactNative/Utils/ValueUtils.h +2 -1
- package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +31 -59
- package/Microsoft.ReactNative/Views/DynamicAutomationPeer.h +3 -4
- package/Microsoft.ReactNative/Views/DynamicAutomationProperties.cpp +15 -46
- package/Microsoft.ReactNative/Views/DynamicAutomationProperties.h +5 -13
- package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +4 -4
- package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +2 -8
- package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +127 -86
- package/Microsoft.ReactNative/Views/ICompositionRootView.h +1 -1
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
- package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +2 -2
- package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +1 -1
- package/Microsoft.ReactNative/Views/SIPEventHandler.cpp +5 -5
- package/Microsoft.ReactNative/Views/SIPEventHandler.h +1 -1
- package/Microsoft.ReactNative/Views/ShadowNodeBase.h +8 -5
- package/Microsoft.ReactNative/Views/SwitchViewManager.cpp +2 -2
- package/Microsoft.ReactNative/Views/Text/TextTransformVisitor.cpp +1 -1
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +32 -14
- package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +1 -1
- package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +14 -2
- package/Microsoft.ReactNative/Views/ViewManagerBase.h +1 -1
- package/Microsoft.ReactNative/Views/ViewPanel.cpp +20 -219
- package/Microsoft.ReactNative/Views/ViewPanel.h +0 -30
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +17 -158
- package/Microsoft.ReactNative/Views/cppwinrt/DynamicAutomationPeer.idl +9 -12
- package/Microsoft.ReactNative/Views/cppwinrt/ViewPanel.idl +1 -9
- package/Microsoft.ReactNative/XamlHelper.cpp +1 -1
- package/Microsoft.ReactNative/XamlHelper.h +1 -1
- package/Microsoft.ReactNative/packages.lock.json +128 -0
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/JsiApiContext.cpp +2 -2
- package/Microsoft.ReactNative.Cxx/JSValue.h +2 -2
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +0 -1
- package/Microsoft.ReactNative.Cxx/NativeModules.h +4 -4
- package/Microsoft.ReactNative.Cxx/ReactHandleHelper.h +1 -1
- package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +2 -2
- package/Microsoft.ReactNative.Cxx/ReactNotificationService.h +10 -9
- package/Microsoft.ReactNative.Cxx/ReactPropertyBag.h +13 -12
- package/Microsoft.ReactNative.Managed/JSValueReaderGenerator.cs +5 -5
- package/Microsoft.ReactNative.Managed/JSValueWriterGenerator.cs +5 -5
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +8 -2
- package/Microsoft.ReactNative.Managed/ReactPackageBuilderExtensions.cs +1 -1
- package/Microsoft.ReactNative.Managed/ReflectionReactPackageProvider.cs +1 -1
- package/Microsoft.ReactNative.Managed/packages.lock.json +9 -9
- package/Microsoft.ReactNative.Managed.CodeGen/CodeAnalyzer.cs +2 -0
- package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Module.cs +4 -2
- package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.ViewManager.cs +1 -1
- package/Microsoft.ReactNative.Managed.CodeGen/DiagnosticDescriptors.cs +1 -1
- package/Microsoft.ReactNative.Managed.CodeGen/packages.lock.json +3197 -0
- package/Mso/compilerAdapters/compilerFeatures.h +1 -1
- package/Mso/compilerAdapters/functionDecorations.h +6 -6
- package/Mso/debugAssertApi/debugAssertDetails.h +1 -1
- package/Mso/dispatchQueue/dispatchQueue.h +3 -3
- package/Mso/motifCpp/motifCppTest.h +1 -1
- package/Mso/motifCpp/testCheck.h +1 -1
- package/Mso/oacr/oacr.h +1 -1
- package/Mso/smartPtr/smartPointerBase.h +1 -1
- package/Mso/src/dispatchQueue/looperScheduler.cpp +2 -2
- package/Mso/src/dispatchQueue/queueService.cpp +1 -1
- package/Mso/src/dispatchQueue/taskQueue.h +1 -1
- package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +2 -2
- package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +122 -45
- package/Mso/src/eventWaitHandle/eventWaitHandleImpl_win.cpp +2 -2
- package/Mso/src/future/futureImpl.cpp +5 -5
- package/Mso/src/future/futureImpl.h +1 -1
- package/PropertySheets/External/Microsoft.ReactNative.Common.props +3 -0
- package/PropertySheets/External/{Microsoft.ReactNative.WinAppSDK.Common.props → Microsoft.ReactNative.Composition.Common.props} +2 -2
- package/PropertySheets/External/{Microsoft.ReactNative.WinAppSDK.CSharpApp.props → Microsoft.ReactNative.Composition.CppApp.props} +7 -10
- package/PropertySheets/External/Microsoft.ReactNative.Composition.CppApp.targets +19 -0
- package/PropertySheets/External/Microsoft.ReactNative.Composition.Package.props +14 -0
- package/PropertySheets/External/Microsoft.ReactNative.Composition.Package.targets +18 -0
- package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +1 -1
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/PropertySheets/HybridCRT.props +34 -0
- package/PropertySheets/JSEngine.props +1 -2
- package/PropertySheets/React.Cpp.props +0 -1
- package/PropertySheets/Warnings.props +1 -1
- package/PropertySheets/WinUI.props +1 -1
- package/ReactCommon/ReactCommon.vcxproj +15 -9
- package/ReactCommon/ReactCommon.vcxproj.filters +0 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +32 -5
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +20 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaLayoutableShadowNode.cpp +1038 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +228 -38
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +895 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/ShadowTree.cpp +543 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManagerBinding.cpp +1509 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/bits/NumericBitfield.h +67 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +93 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +88 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +606 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.h +344 -0
- package/ReactCommon/Yoga.cpp +497 -3895
- package/ReactCommon/packages.lock.json +30 -0
- package/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1 +22 -0
- package/Scripts/OfficeReact.Win32.nuspec +1 -0
- package/Scripts/rnw-dependencies.ps1 +79 -26
- package/Shared/BaseScriptStoreImpl.cpp +42 -13
- package/Shared/BaseScriptStoreImpl.h +1 -1
- package/Shared/Composition/AutoDraw.h +36 -0
- package/Shared/CxxMessageQueue.cpp +1 -1
- package/Shared/DevSettings.h +3 -0
- package/Shared/DevSupportManager.h +1 -1
- package/Shared/Hasher.cpp +64 -0
- package/Shared/Hasher.h +24 -0
- package/Shared/HermesRuntimeHolder.cpp +6 -6
- package/Shared/IDevSupportManager.h +1 -1
- package/Shared/JSI/ChakraApi.cpp +1 -1
- package/Shared/JSI/ChakraRuntime.cpp +10 -10
- package/Shared/JSI/ChakraRuntime.h +6 -6
- package/Shared/JSI/V8RuntimeHolder.cpp +1 -1
- package/Shared/Modules/IRequestBodyHandler.h +1 -1
- package/Shared/Modules/IUriHandler.h +1 -1
- package/Shared/Modules/PlatformConstantsModule.cpp +1 -1
- package/Shared/Modules/WebSocketModule.cpp +1 -1
- package/Shared/Networking/DefaultBlobResource.cpp +2 -2
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +22 -16
- package/Shared/Networking/OriginPolicyHttpFilter.h +12 -11
- package/Shared/OInstance.cpp +9 -23
- package/Shared/OInstance.h +1 -1
- package/Shared/PackagerConnection.h +1 -1
- package/Shared/SafeLoadLibrary.cpp +8 -44
- package/Shared/SafeLoadLibrary.h +1 -5
- package/Shared/Shared.vcxitems +50 -20
- package/Shared/Shared.vcxitems.filters +26 -17
- package/Shared/Threading/BatchingQueueThread.cpp +5 -5
- package/Shared/Threading/BatchingQueueThread.h +4 -4
- package/Shared/TurboModuleManager.cpp +1 -1
- package/Shared/Utils.cpp +1 -1
- package/Shared/tracing/fbsystrace.h +1 -1
- package/codegen/NativeAnimatedModuleSpec.g.h +2 -0
- package/codegen/NativeAnimatedTurboModuleSpec.g.h +2 -0
- package/codegen/NativeAppStateSpec.g.h +11 -21
- package/codegen/NativeDeviceInfoSpec.g.h +4 -14
- package/codegen/NativeI18nManagerSpec.g.h +6 -16
- package/codegen/NativeIntersectionObserverSpec.g.h +96 -0
- package/codegen/NativeMutationObserverSpec.g.h +90 -0
- package/codegen/NativePerformanceObserverSpec.g.h +19 -13
- package/codegen/NativePerformanceSpec.g.h +6 -23
- package/codegen/NativePlatformConstantsAndroidSpec.g.h +22 -30
- package/codegen/NativePlatformConstantsIOSSpec.g.h +17 -25
- package/codegen/NativePlatformConstantsWinSpec.g.h +14 -22
- package/codegen/NativeSampleTurboModuleSpec.g.h +36 -0
- package/codegen/NativeSourceCodeSpec.g.h +3 -13
- package/codegen/react/components/rnwcore/EventEmitters.cpp +85 -58
- package/codegen/react/components/rnwcore/EventEmitters.h +17 -35
- package/codegen/react/components/rnwcore/Props.h +16 -17
- package/codegen/rnwcoreJSI-generated.cpp +1462 -319
- package/codegen/rnwcoreJSI.h +1609 -462
- package/fmt/packages.lock.json +13 -0
- package/index.windows.js +3 -3
- package/{Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js → jest/ReactNativeInternalFeatureFlagsMock.js} +2 -1
- package/jest/__tests__/setup-test.js +18 -0
- package/jest/mockModal.js +6 -4
- package/jest/setup.js +61 -30
- package/just-task.js +1 -0
- package/package.json +37 -42
- package/template/cs-app/proj/MyApp.csproj +0 -1
- package/template/cs-lib/proj/MyLib.csproj +0 -1
- package/templates/.clang-format +4 -0
- package/templates/cpp-app/metro.config.js +51 -0
- package/templates/cpp-app/template.config.js +119 -0
- package/templates/cpp-app/windows/ExperimentalFeatures.props +12 -0
- package/templates/cpp-app/windows/MyApp/MyApp.cpp +284 -0
- package/templates/cpp-app/windows/MyApp/MyApp.h +3 -0
- package/templates/cpp-app/windows/MyApp/MyApp.ico +0 -0
- package/templates/cpp-app/windows/MyApp/MyApp.rc +0 -0
- package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +142 -0
- package/templates/cpp-app/windows/MyApp/MyApp.vcxproj.filters +55 -0
- package/templates/cpp-app/windows/MyApp/_gitignore +1 -0
- package/templates/cpp-app/windows/MyApp/pch.cpp +1 -0
- package/templates/cpp-app/windows/MyApp/pch.h +35 -0
- package/templates/cpp-app/windows/MyApp/resource.h +18 -0
- package/templates/cpp-app/windows/MyApp/small.ico +0 -0
- package/templates/cpp-app/windows/MyApp/targetver.h +8 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/LockScreenLogo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/SplashScreen.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Square150x150Logo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Square44x44Logo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Square44x44Logo.targetsize-24_altform-unplated.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/StoreLogo.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Wide310x150Logo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/MyApp.Package.wapproj +78 -0
- package/{template/cs-app-WinAppSDK/MyApp → templates/cpp-app/windows/MyApp.Package}/Package.appxmanifest +9 -8
- package/templates/cpp-app/windows/MyApp.sln +176 -0
- package/templates/cpp-app/windows/_gitignore +41 -0
- package/templates/old/generateWrapper.js +67 -0
- package/templates/old/uwp-cpp-app/template.config.js +15 -0
- package/templates/old/uwp-cpp-lib/template.config.js +15 -0
- package/templates/old/uwp-cs-app/template.config.js +15 -0
- package/templates/old/uwp-cs-lib/template.config.js +15 -0
- package/types/experimental.d.ts +44 -0
- package/types/index.d.ts +2 -1
- package/types/modules/Devtools.d.ts +1 -0
- package/types/modules/globals.d.ts +16 -1
- package/Libraries/Components/View/ViewWindows.d.ts +0 -19
- package/Libraries/Components/View/ViewWindows.js +0 -22
- package/Libraries/Components/View/ViewWindows.js.map +0 -1
- package/Libraries/Components/View/ViewWindowsProps.d.ts +0 -69
- package/Libraries/Components/View/ViewWindowsProps.js +0 -8
- package/Libraries/Components/View/ViewWindowsProps.js.map +0 -1
- package/Libraries/Utilities/AcessibilityMapping.js +0 -154
- package/Libraries/Utilities/NativeDevSplitBundleLoader.js +0 -19
- package/Libraries/Utilities/useColorScheme.windows.js +0 -26
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +0 -61
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +0 -34
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +0 -42
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharp.PackageReferences.props +0 -11
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.targets +0 -51
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +0 -237
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +0 -59
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +0 -159
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +0 -94
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +0 -465
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +0 -116
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +0 -98
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +0 -326
- package/Scripts/Microsoft.ReactNative.WindowsAppSDK.nuspec +0 -30
- package/Shared/V8JSIRuntimeHolder.cpp +0 -71
- package/Shared/V8JSIRuntimeHolder.h +0 -56
- package/codegen/NativeDevSplitBundleLoaderSpec.g.h +0 -34
- package/template/cs-app-WinAppSDK/MyApp/App.xaml +0 -16
- package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +0 -70
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +0 -14
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +0 -38
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +0 -19
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +0 -19
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +0 -19
- package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +0 -10
- package/template/cs-app-WinAppSDK/MyApp/app.manifest +0 -15
- package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +0 -24
- package/template/cs-app-WinAppSDK/proj/MyApp.csproj +0 -53
- package/template/cs-app-WinAppSDK/proj/MyApp.sln +0 -43
- package/template/cs-app-WinAppSDK/proj/NuGet_Config +0 -19
- /package/Libraries/Components/DrawerAndroid/{DrawerLayoutAndroid.ios.js → DrawerLayoutAndroid.js} +0 -0
- /package/Libraries/{Renderer/public → ReactNative/ReactFabricPublicInstance}/ReactFabricPublicInstanceUtils.js +0 -0
|
@@ -43,12 +43,31 @@ struct WindowsTextInputComponentView : CompositionBaseComponentView {
|
|
|
43
43
|
facebook::react::Props::Shared props() noexcept override;
|
|
44
44
|
void handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept override;
|
|
45
45
|
int64_t sendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept override;
|
|
46
|
-
facebook::react::Tag hitTest(
|
|
46
|
+
facebook::react::Tag hitTest(
|
|
47
|
+
facebook::react::Point pt,
|
|
48
|
+
facebook::react::Point &localPt,
|
|
49
|
+
bool ignorePointerEvents = false) const noexcept override;
|
|
47
50
|
void OnRenderingDeviceLost() noexcept override;
|
|
48
51
|
winrt::Microsoft::ReactNative::Composition::IVisual Visual() const noexcept override;
|
|
49
52
|
void onFocusLost() noexcept override;
|
|
50
53
|
void onFocusGained() noexcept override;
|
|
51
54
|
bool focusable() const noexcept override;
|
|
55
|
+
std::string DefaultControlType() const noexcept override;
|
|
56
|
+
std::string DefaultAccessibleName() const noexcept override;
|
|
57
|
+
std::string DefaultHelpText() const noexcept override;
|
|
58
|
+
void onPointerPressed(
|
|
59
|
+
const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept override;
|
|
60
|
+
void onPointerReleased(
|
|
61
|
+
const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept override;
|
|
62
|
+
void onPointerMoved(
|
|
63
|
+
const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept override;
|
|
64
|
+
|
|
65
|
+
void onKeyDown(
|
|
66
|
+
const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
|
|
67
|
+
const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept;
|
|
68
|
+
void onKeyUp(
|
|
69
|
+
const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
|
|
70
|
+
const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept;
|
|
52
71
|
|
|
53
72
|
private:
|
|
54
73
|
WindowsTextInputComponentView(
|
|
@@ -67,6 +86,7 @@ struct WindowsTextInputComponentView : CompositionBaseComponentView {
|
|
|
67
86
|
void ensureDrawingSurface() noexcept;
|
|
68
87
|
void DrawText() noexcept;
|
|
69
88
|
void ShowCaret(bool show) noexcept;
|
|
89
|
+
winrt::com_ptr<::IDWriteTextLayout> CreatePlaceholderLayout();
|
|
70
90
|
void UpdateCharFormat() noexcept;
|
|
71
91
|
void UpdateParaFormat() noexcept;
|
|
72
92
|
void UpdateText(const std::string &str) noexcept;
|
|
@@ -75,10 +95,10 @@ struct WindowsTextInputComponentView : CompositionBaseComponentView {
|
|
|
75
95
|
std::string GetTextFromRichEdit() const noexcept;
|
|
76
96
|
|
|
77
97
|
winrt::Windows::UI::Composition::CompositionSurfaceBrush m_brush{nullptr};
|
|
78
|
-
winrt::Microsoft::ReactNative::Composition::
|
|
98
|
+
winrt::Microsoft::ReactNative::Composition::ISpriteVisual m_visual{nullptr};
|
|
79
99
|
winrt::Microsoft::ReactNative::Composition::ICaretVisual m_caretVisual{nullptr};
|
|
80
100
|
winrt::Microsoft::ReactNative::ReactContext m_context;
|
|
81
|
-
winrt::Microsoft::ReactNative::Composition::
|
|
101
|
+
winrt::Microsoft::ReactNative::Composition::IDrawingSurfaceBrush m_drawingSurface{nullptr};
|
|
82
102
|
|
|
83
103
|
// Used by ITextHost impl
|
|
84
104
|
CHARFORMAT2W m_cf;
|
|
@@ -89,6 +109,7 @@ struct WindowsTextInputComponentView : CompositionBaseComponentView {
|
|
|
89
109
|
unsigned int m_imgWidth{0}, m_imgHeight{0};
|
|
90
110
|
std::shared_ptr<facebook::react::WindowsTextInputProps const> m_props;
|
|
91
111
|
std::shared_ptr<facebook::react::WindowsTextInputShadowNode::ConcreteState const> m_state;
|
|
112
|
+
RECT m_rcClient;
|
|
92
113
|
int m_mostRecentEventCount{0};
|
|
93
114
|
int m_nativeEventCount{0};
|
|
94
115
|
bool m_comingFromJS{false};
|
|
@@ -32,6 +32,7 @@ WindowsTextInputProps::WindowsTextInputProps(
|
|
|
32
32
|
placeholderTextColor(
|
|
33
33
|
convertRawProp(context, rawProps, "placeholderTextColor", sourceProps.placeholderTextColor, {})),
|
|
34
34
|
scrollEnabled(convertRawProp(context, rawProps, "scrollEnabled", sourceProps.scrollEnabled, {true})),
|
|
35
|
+
cursorColor(convertRawProp(context, rawProps, "cursorColor", sourceProps.cursorColor, {})),
|
|
35
36
|
selection(convertRawProp(context, rawProps, "selection", sourceProps.selection, {})),
|
|
36
37
|
selectionColor(convertRawProp(context, rawProps, "selectionColor", sourceProps.selectionColor, {})),
|
|
37
38
|
selectTextOnFocus(convertRawProp(context, rawProps, "selectTextOnFocus", sourceProps.selectTextOnFocus, {false})),
|
|
@@ -16,7 +16,7 @@ struct CompWindowsTextInputSelectionStruct {
|
|
|
16
16
|
|
|
17
17
|
static inline void
|
|
18
18
|
fromRawValue(const PropsParserContext &context, const RawValue &value, CompWindowsTextInputSelectionStruct &result) {
|
|
19
|
-
auto map = (
|
|
19
|
+
auto map = (std::unordered_map<std::string, RawValue>)value;
|
|
20
20
|
|
|
21
21
|
auto tmp_start = map.find("start");
|
|
22
22
|
if (tmp_start != map.end()) {
|
|
@@ -44,7 +44,7 @@ static inline void fromRawValue(
|
|
|
44
44
|
const PropsParserContext &context,
|
|
45
45
|
const RawValue &value,
|
|
46
46
|
CompWindowsTextInputSubmitKeyEventsStruct &result) {
|
|
47
|
-
auto map = (
|
|
47
|
+
auto map = (std::unordered_map<std::string, RawValue>)value;
|
|
48
48
|
|
|
49
49
|
auto tmp_altKey = map.find("altKey");
|
|
50
50
|
if (tmp_altKey != map.end()) {
|
|
@@ -103,6 +103,7 @@ class WindowsTextInputProps final : public ViewProps, public BaseTextProps {
|
|
|
103
103
|
std::string placeholder{};
|
|
104
104
|
SharedColor placeholderTextColor{};
|
|
105
105
|
bool scrollEnabled{true};
|
|
106
|
+
SharedColor cursorColor{};
|
|
106
107
|
CompWindowsTextInputSelectionStruct selection{};
|
|
107
108
|
SharedColor selectionColor{};
|
|
108
109
|
bool selectTextOnFocus{false};
|
|
@@ -86,7 +86,7 @@ void WindowsTextInputShadowNode::setTextLayoutManager(SharedTextLayoutManager te
|
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
AttributedString WindowsTextInputShadowNode::getMostRecentAttributedString() const {
|
|
89
|
-
auto
|
|
89
|
+
const auto &state = getStateData();
|
|
90
90
|
|
|
91
91
|
auto reactTreeAttributedString = getAttributedString();
|
|
92
92
|
|
|
@@ -104,7 +104,7 @@ void WindowsTextInputShadowNode::updateStateIfNeeded() {
|
|
|
104
104
|
ensureUnsealed();
|
|
105
105
|
|
|
106
106
|
auto reactTreeAttributedString = getAttributedString();
|
|
107
|
-
auto
|
|
107
|
+
const auto &state = getStateData();
|
|
108
108
|
|
|
109
109
|
// Tree is often out of sync with the value of the TextInput.
|
|
110
110
|
// This is by design - don't change the value of the TextInput in the State,
|
|
@@ -141,9 +141,7 @@ void WindowsTextInputShadowNode::updateStateIfNeeded() {
|
|
|
141
141
|
newEventCount,
|
|
142
142
|
newAttributedString,
|
|
143
143
|
reactTreeAttributedString,
|
|
144
|
-
{},
|
|
145
|
-
defaultTextAttributes,
|
|
146
|
-
ShadowView(*this),
|
|
144
|
+
{},
|
|
147
145
|
state.defaultThemePaddingStart,
|
|
148
146
|
state.defaultThemePaddingEnd,
|
|
149
147
|
state.defaultThemePaddingTop,
|
|
@@ -153,8 +151,8 @@ void WindowsTextInputShadowNode::updateStateIfNeeded() {
|
|
|
153
151
|
#pragma mark - LayoutableShadowNode
|
|
154
152
|
|
|
155
153
|
Size WindowsTextInputShadowNode::measureContent(
|
|
156
|
-
LayoutContext
|
|
157
|
-
LayoutConstraints
|
|
154
|
+
const LayoutContext & /*layoutContext*/,
|
|
155
|
+
const LayoutConstraints &layoutConstraints) const {
|
|
158
156
|
if (getStateData().cachedAttributedStringId != 0) {
|
|
159
157
|
return m_textLayoutManager
|
|
160
158
|
->measureCachedSpannableById(
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
#pragma once
|
|
5
5
|
|
|
6
|
-
#include <butter/map.h>
|
|
7
6
|
#include <react/renderer/components/rnwcore/EventEmitters.h>
|
|
7
|
+
#include <unordered_map>
|
|
8
8
|
#include "WindowsTextInputEventEmitter.h"
|
|
9
9
|
#include "WindowsTextInputProps.h"
|
|
10
10
|
#include "WindowsTextInputState.h"
|
|
@@ -15,8 +15,7 @@
|
|
|
15
15
|
#include <react/renderer/attributedstring/AttributedString.h>
|
|
16
16
|
#include <react/renderer/textlayoutmanager/TextLayoutManager.h>
|
|
17
17
|
|
|
18
|
-
namespace facebook {
|
|
19
|
-
namespace react {
|
|
18
|
+
namespace facebook::react {
|
|
20
19
|
|
|
21
20
|
extern const char WindowsTextInputComponentName[];
|
|
22
21
|
|
|
@@ -55,7 +54,7 @@ class WindowsTextInputShadowNode final : public ConcreteViewShadowNode<
|
|
|
55
54
|
|
|
56
55
|
#pragma mark - LayoutableShadowNode
|
|
57
56
|
|
|
58
|
-
Size measureContent(LayoutContext
|
|
57
|
+
Size measureContent(const LayoutContext &layoutContext, const LayoutConstraints &layoutConstraints) const override;
|
|
59
58
|
void layout(LayoutContext layoutContext) override;
|
|
60
59
|
|
|
61
60
|
private:
|
|
@@ -81,5 +80,4 @@ class WindowsTextInputShadowNode final : public ConcreteViewShadowNode<
|
|
|
81
80
|
mutable std::optional<AttributedString> m_cachedAttributedString{};
|
|
82
81
|
};
|
|
83
82
|
|
|
84
|
-
} // namespace react
|
|
85
|
-
} // namespace facebook
|
|
83
|
+
} // namespace facebook::react
|
|
@@ -21,8 +21,6 @@ WindowsTextInputState::WindowsTextInputState(
|
|
|
21
21
|
AttributedString attributedString,
|
|
22
22
|
AttributedString reactTreeAttributedString,
|
|
23
23
|
ParagraphAttributes paragraphAttributes,
|
|
24
|
-
TextAttributes defaultTextAttributes,
|
|
25
|
-
ShadowView defaultParentShadowView,
|
|
26
24
|
float defaultThemePaddingStart,
|
|
27
25
|
float defaultThemePaddingEnd,
|
|
28
26
|
float defaultThemePaddingTop,
|
|
@@ -31,21 +29,17 @@ WindowsTextInputState::WindowsTextInputState(
|
|
|
31
29
|
attributedString(std::move(attributedString)),
|
|
32
30
|
reactTreeAttributedString(std::move(reactTreeAttributedString)),
|
|
33
31
|
paragraphAttributes(std::move(paragraphAttributes)),
|
|
34
|
-
defaultTextAttributes(std::move(defaultTextAttributes)),
|
|
35
|
-
defaultParentShadowView(std::move(defaultParentShadowView)),
|
|
36
32
|
defaultThemePaddingStart(defaultThemePaddingStart),
|
|
37
33
|
defaultThemePaddingEnd(defaultThemePaddingEnd),
|
|
38
34
|
defaultThemePaddingTop(defaultThemePaddingTop),
|
|
39
35
|
defaultThemePaddingBottom(defaultThemePaddingBottom) {}
|
|
40
36
|
|
|
41
|
-
WindowsTextInputState::WindowsTextInputState(WindowsTextInputState
|
|
37
|
+
WindowsTextInputState::WindowsTextInputState(const WindowsTextInputState &previousState, const folly::dynamic &data)
|
|
42
38
|
: mostRecentEventCount(data.getDefault("mostRecentEventCount", previousState.mostRecentEventCount).getInt()),
|
|
43
39
|
cachedAttributedStringId(data.getDefault("opaqueCacheId", previousState.cachedAttributedStringId).getInt()),
|
|
44
40
|
attributedString(previousState.attributedString),
|
|
45
41
|
reactTreeAttributedString(previousState.reactTreeAttributedString),
|
|
46
42
|
paragraphAttributes(previousState.paragraphAttributes),
|
|
47
|
-
defaultTextAttributes(previousState.defaultTextAttributes),
|
|
48
|
-
defaultParentShadowView(previousState.defaultParentShadowView),
|
|
49
43
|
defaultThemePaddingStart(
|
|
50
44
|
data.getDefault("themePaddingStart", previousState.defaultThemePaddingStart).getDouble()),
|
|
51
45
|
defaultThemePaddingEnd(data.getDefault("themePaddingEnd", previousState.defaultThemePaddingEnd).getDouble()),
|
|
@@ -44,20 +44,6 @@ class WindowsTextInputState final {
|
|
|
44
44
|
*/
|
|
45
45
|
ParagraphAttributes paragraphAttributes{};
|
|
46
46
|
|
|
47
|
-
/**
|
|
48
|
-
* Default TextAttributes used if we need to construct a new Fragment.
|
|
49
|
-
* Only used if text is inserted into an AttributedString with no existing
|
|
50
|
-
* Fragments.
|
|
51
|
-
*/
|
|
52
|
-
TextAttributes defaultTextAttributes;
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Default parent ShadowView used if we need to construct a new Fragment.
|
|
56
|
-
* Only used if text is inserted into an AttributedString with no existing
|
|
57
|
-
* Fragments.
|
|
58
|
-
*/
|
|
59
|
-
ShadowView defaultParentShadowView;
|
|
60
|
-
|
|
61
47
|
/**
|
|
62
48
|
* Communicates Android theme padding back to the ShadowNode / Component
|
|
63
49
|
* Descriptor for layout.
|
|
@@ -72,15 +58,13 @@ class WindowsTextInputState final {
|
|
|
72
58
|
AttributedString attributedString,
|
|
73
59
|
AttributedString reactTreeAttributedString,
|
|
74
60
|
ParagraphAttributes paragraphAttributes,
|
|
75
|
-
TextAttributes defaultTextAttributes,
|
|
76
|
-
ShadowView defaultParentShadowView,
|
|
77
61
|
float defaultThemePaddingStart,
|
|
78
62
|
float defaultThemePaddingEnd,
|
|
79
63
|
float defaultThemePaddingTop,
|
|
80
64
|
float defaultThemePaddingBottom);
|
|
81
65
|
|
|
82
66
|
WindowsTextInputState() = default;
|
|
83
|
-
WindowsTextInputState(WindowsTextInputState
|
|
67
|
+
WindowsTextInputState(const WindowsTextInputState &previousState, const folly::dynamic &data);
|
|
84
68
|
folly::dynamic getDynamic() const;
|
|
85
69
|
MapBuffer getMapBuffer() const;
|
|
86
70
|
};
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
#include "pch.h"
|
|
2
2
|
#include "UiaHelpers.h"
|
|
3
3
|
#include <Fabric/Composition/CompositionViewComponentView.h>
|
|
4
|
+
#include <atlcomcli.h>
|
|
4
5
|
#include <inspectable.h>
|
|
6
|
+
#include "CompositionRootAutomationProvider.h"
|
|
7
|
+
#include "RootComponentView.h"
|
|
5
8
|
|
|
6
9
|
namespace winrt::Microsoft::ReactNative::implementation {
|
|
7
10
|
|
|
@@ -61,12 +64,80 @@ HRESULT UiaNavigateHelper(
|
|
|
61
64
|
} break;
|
|
62
65
|
}
|
|
63
66
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
uiaProvider.as(spFragment);
|
|
67
|
+
auto spFragment = uiaProvider.try_as<IRawElementProviderFragment>();
|
|
68
|
+
if (spFragment != nullptr) {
|
|
67
69
|
retVal = spFragment.detach();
|
|
68
70
|
}
|
|
71
|
+
|
|
69
72
|
return S_OK;
|
|
70
73
|
}
|
|
71
74
|
|
|
75
|
+
HRESULT UiaGetBoundingRectangleHelper(::Microsoft::ReactNative::ReactTaggedView &view, UiaRect &rect) noexcept {
|
|
76
|
+
auto strongView = view.view();
|
|
77
|
+
|
|
78
|
+
if (strongView == nullptr) {
|
|
79
|
+
return UIA_E_ELEMENTNOTAVAILABLE;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
auto clientRect = strongView->getClientRect();
|
|
83
|
+
|
|
84
|
+
rect.left = clientRect.left;
|
|
85
|
+
rect.top = clientRect.top;
|
|
86
|
+
rect.width = clientRect.right - clientRect.left;
|
|
87
|
+
rect.height = clientRect.bottom - clientRect.top;
|
|
88
|
+
|
|
89
|
+
return S_OK;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
HRESULT UiaSetFocusHelper(::Microsoft::ReactNative::ReactTaggedView &view) noexcept {
|
|
93
|
+
auto strongView = view.view();
|
|
94
|
+
|
|
95
|
+
if (!strongView)
|
|
96
|
+
return UIA_E_ELEMENTNOTAVAILABLE;
|
|
97
|
+
|
|
98
|
+
auto rootCV = strongView->rootComponentView();
|
|
99
|
+
if (rootCV == nullptr)
|
|
100
|
+
return UIA_E_ELEMENTNOTAVAILABLE;
|
|
101
|
+
|
|
102
|
+
return rootCV->TrySetFocusedComponent(*strongView) ? S_OK : E_FAIL;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
bool WasUiaPropertyAdvised(winrt::com_ptr<IRawElementProviderSimple> &providerSimple, PROPERTYID propId) noexcept {
|
|
106
|
+
auto spFragment = providerSimple.try_as<IRawElementProviderFragment>();
|
|
107
|
+
if (spFragment == nullptr)
|
|
108
|
+
return false;
|
|
109
|
+
|
|
110
|
+
winrt::com_ptr<IRawElementProviderFragmentRoot> spFragmentRoot;
|
|
111
|
+
spFragment->get_FragmentRoot(spFragmentRoot.put());
|
|
112
|
+
if (spFragmentRoot == nullptr)
|
|
113
|
+
return false;
|
|
114
|
+
|
|
115
|
+
auto rootProvider = static_cast<CompositionRootAutomationProvider *>(spFragmentRoot.get());
|
|
116
|
+
|
|
117
|
+
return rootProvider->WasPropertyAdvised(propId);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
void UpdateUiaProperty(winrt::IInspectable provider, PROPERTYID propId, bool oldValue, bool newValue) noexcept {
|
|
121
|
+
auto spProviderSimple = provider.try_as<IRawElementProviderSimple>();
|
|
122
|
+
|
|
123
|
+
if (spProviderSimple == nullptr || oldValue == newValue || !WasUiaPropertyAdvised(spProviderSimple, propId))
|
|
124
|
+
return;
|
|
125
|
+
|
|
126
|
+
UiaRaiseAutomationPropertyChangedEvent(spProviderSimple.get(), propId, CComVariant(oldValue), CComVariant(newValue));
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
void UpdateUiaProperty(
|
|
130
|
+
winrt::IInspectable provider,
|
|
131
|
+
PROPERTYID propId,
|
|
132
|
+
const std::string &oldValue,
|
|
133
|
+
const std::string &newValue) noexcept {
|
|
134
|
+
auto spProviderSimple = provider.try_as<IRawElementProviderSimple>();
|
|
135
|
+
|
|
136
|
+
if (spProviderSimple == nullptr || oldValue == newValue || !WasUiaPropertyAdvised(spProviderSimple, propId))
|
|
137
|
+
return;
|
|
138
|
+
|
|
139
|
+
UiaRaiseAutomationPropertyChangedEvent(
|
|
140
|
+
spProviderSimple.get(), propId, CComVariant(oldValue.c_str()), CComVariant(newValue.c_str()));
|
|
141
|
+
}
|
|
142
|
+
|
|
72
143
|
} // namespace winrt::Microsoft::ReactNative::implementation
|
|
@@ -13,4 +13,16 @@ UiaNavigateHelper(
|
|
|
13
13
|
NavigateDirection direction,
|
|
14
14
|
IRawElementProviderFragment *&retVal) noexcept;
|
|
15
15
|
|
|
16
|
+
HRESULT UiaGetBoundingRectangleHelper(::Microsoft::ReactNative::ReactTaggedView &view, UiaRect &rect) noexcept;
|
|
17
|
+
|
|
18
|
+
HRESULT UiaSetFocusHelper(::Microsoft::ReactNative::ReactTaggedView &view) noexcept;
|
|
19
|
+
|
|
20
|
+
void UpdateUiaProperty(winrt::IInspectable provider, PROPERTYID propId, bool oldValue, bool newValue) noexcept;
|
|
21
|
+
|
|
22
|
+
void UpdateUiaProperty(
|
|
23
|
+
winrt::IInspectable provider,
|
|
24
|
+
PROPERTYID propId,
|
|
25
|
+
const std::string &oldValue,
|
|
26
|
+
const std::string &newValue) noexcept;
|
|
27
|
+
|
|
16
28
|
} // namespace winrt::Microsoft::ReactNative::implementation
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
#include "UnimplementedNativeViewComponentView.h"
|
|
8
8
|
|
|
9
9
|
#include <Fabric/DWriteHelpers.h>
|
|
10
|
+
#include "Composition/AutoDraw.h"
|
|
10
11
|
#include "CompositionDynamicAutomationProvider.h"
|
|
11
12
|
#include "Unicode.h"
|
|
12
13
|
|
|
@@ -30,15 +31,11 @@ std::shared_ptr<UnimplementedNativeViewComponentView> UnimplementedNativeViewCom
|
|
|
30
31
|
|
|
31
32
|
void UnimplementedNativeViewComponentView::mountChildComponentView(
|
|
32
33
|
IComponentView &childComponentView,
|
|
33
|
-
uint32_t index) noexcept {
|
|
34
|
-
assert(false);
|
|
35
|
-
}
|
|
34
|
+
uint32_t index) noexcept {}
|
|
36
35
|
|
|
37
36
|
void UnimplementedNativeViewComponentView::unmountChildComponentView(
|
|
38
37
|
IComponentView &childComponentView,
|
|
39
|
-
uint32_t index) noexcept {
|
|
40
|
-
assert(false);
|
|
41
|
-
}
|
|
38
|
+
uint32_t index) noexcept {}
|
|
42
39
|
|
|
43
40
|
void UnimplementedNativeViewComponentView::updateProps(
|
|
44
41
|
facebook::react::Props::Shared const &props,
|
|
@@ -62,16 +59,15 @@ void UnimplementedNativeViewComponentView::updateLayoutMetrics(
|
|
|
62
59
|
|
|
63
60
|
winrt::Windows::Foundation::Size surfaceSize = {
|
|
64
61
|
width * m_layoutMetrics.pointScaleFactor, height * m_layoutMetrics.pointScaleFactor};
|
|
65
|
-
auto drawingSurface = m_compContext.
|
|
62
|
+
auto drawingSurface = m_compContext.CreateDrawingSurfaceBrush(
|
|
66
63
|
surfaceSize,
|
|
67
64
|
winrt::Windows::Graphics::DirectX::DirectXPixelFormat::B8G8R8A8UIntNormalized,
|
|
68
65
|
winrt::Windows::Graphics::DirectX::DirectXAlphaMode::Premultiplied);
|
|
69
66
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
m_visual.Brush(surfaceBrush);
|
|
67
|
+
drawingSurface.HorizontalAlignmentRatio(0.f);
|
|
68
|
+
drawingSurface.VerticalAlignmentRatio(0.f);
|
|
69
|
+
drawingSurface.Stretch(winrt::Microsoft::ReactNative::Composition::CompositionStretch::None);
|
|
70
|
+
m_visual.Brush(drawingSurface);
|
|
75
71
|
m_visual.Size(surfaceSize);
|
|
76
72
|
m_visual.Offset({
|
|
77
73
|
layoutMetrics.frame.origin.x * layoutMetrics.pointScaleFactor,
|
|
@@ -79,52 +75,49 @@ void UnimplementedNativeViewComponentView::updateLayoutMetrics(
|
|
|
79
75
|
0.0f,
|
|
80
76
|
});
|
|
81
77
|
|
|
82
|
-
winrt::com_ptr<ID2D1DeviceContext> d2dDeviceContext;
|
|
83
78
|
POINT offset;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
winrt::check_hresult(drawingSurfaceInterop->EndDraw());
|
|
79
|
+
{
|
|
80
|
+
::Microsoft::ReactNative::Composition::AutoDrawDrawingSurface autoDraw(drawingSurface, &offset);
|
|
81
|
+
if (auto d2dDeviceContext = autoDraw.GetRenderTarget()) {
|
|
82
|
+
d2dDeviceContext->Clear(D2D1::ColorF(D2D1::ColorF::Red, 0.3f));
|
|
83
|
+
assert(d2dDeviceContext->GetUnitMode() == D2D1_UNIT_MODE_DIPS);
|
|
84
|
+
const auto dpi = m_layoutMetrics.pointScaleFactor * 96.0f;
|
|
85
|
+
float oldDpiX, oldDpiY;
|
|
86
|
+
d2dDeviceContext->GetDpi(&oldDpiX, &oldDpiY);
|
|
87
|
+
d2dDeviceContext->SetDpi(dpi, dpi);
|
|
88
|
+
|
|
89
|
+
float offsetX = static_cast<float>(offset.x / m_layoutMetrics.pointScaleFactor);
|
|
90
|
+
float offsetY = static_cast<float>(offset.y / m_layoutMetrics.pointScaleFactor);
|
|
91
|
+
|
|
92
|
+
winrt::com_ptr<IDWriteTextFormat> spTextFormat;
|
|
93
|
+
winrt::check_hresult(Microsoft::ReactNative::DWriteFactory()->CreateTextFormat(
|
|
94
|
+
L"Segoe UI",
|
|
95
|
+
nullptr, // Font collection (nullptr sets it to use the system font collection).
|
|
96
|
+
DWRITE_FONT_WEIGHT_REGULAR,
|
|
97
|
+
DWRITE_FONT_STYLE_NORMAL,
|
|
98
|
+
DWRITE_FONT_STRETCH_NORMAL,
|
|
99
|
+
12,
|
|
100
|
+
L"",
|
|
101
|
+
spTextFormat.put()));
|
|
102
|
+
|
|
103
|
+
winrt::com_ptr<ID2D1SolidColorBrush> textBrush;
|
|
104
|
+
winrt::check_hresult(
|
|
105
|
+
d2dDeviceContext->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::White), textBrush.put()));
|
|
106
|
+
|
|
107
|
+
const D2D1_RECT_F rect = {
|
|
108
|
+
static_cast<float>(offset.x), static_cast<float>(offset.y), width + offset.x, height + offset.y};
|
|
109
|
+
// const D2D1_RECT_F rect = {0.f, 0.f, width, height};
|
|
110
|
+
|
|
111
|
+
auto label = Microsoft::Common::Unicode::Utf8ToUtf16(std::string("Unimplemented component: ") + m_props->name);
|
|
112
|
+
d2dDeviceContext->DrawText(
|
|
113
|
+
label.c_str(),
|
|
114
|
+
static_cast<UINT32>(label.length()),
|
|
115
|
+
spTextFormat.get(),
|
|
116
|
+
rect,
|
|
117
|
+
textBrush.get(),
|
|
118
|
+
D2D1_DRAW_TEXT_OPTIONS_NONE,
|
|
119
|
+
DWRITE_MEASURING_MODE_NATURAL);
|
|
120
|
+
}
|
|
128
121
|
}
|
|
129
122
|
}
|
|
130
123
|
m_layoutMetrics = layoutMetrics;
|
|
@@ -151,10 +144,11 @@ winrt::Microsoft::ReactNative::Composition::IVisual UnimplementedNativeViewCompo
|
|
|
151
144
|
|
|
152
145
|
facebook::react::Tag UnimplementedNativeViewComponentView::hitTest(
|
|
153
146
|
facebook::react::Point pt,
|
|
154
|
-
facebook::react::Point &localPt
|
|
147
|
+
facebook::react::Point &localPt,
|
|
148
|
+
bool ignorePointerEvents) const noexcept {
|
|
155
149
|
facebook::react::Point ptLocal{pt.x - m_layoutMetrics.frame.origin.x, pt.y - m_layoutMetrics.frame.origin.y};
|
|
156
150
|
|
|
157
|
-
if ((m_props->pointerEvents == facebook::react::PointerEventsMode::Auto ||
|
|
151
|
+
if ((ignorePointerEvents || m_props->pointerEvents == facebook::react::PointerEventsMode::Auto ||
|
|
158
152
|
m_props->pointerEvents == facebook::react::PointerEventsMode::BoxOnly) &&
|
|
159
153
|
ptLocal.x >= 0 && ptLocal.x <= m_layoutMetrics.frame.size.width && ptLocal.y >= 0 &&
|
|
160
154
|
ptLocal.y <= m_layoutMetrics.frame.size.height) {
|
|
@@ -34,7 +34,8 @@ struct UnimplementedNativeViewComponentView : CompositionBaseComponentView {
|
|
|
34
34
|
void finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept override;
|
|
35
35
|
void prepareForRecycle() noexcept override;
|
|
36
36
|
facebook::react::Props::Shared props() noexcept override;
|
|
37
|
-
facebook::react::Tag hitTest(facebook::react::Point pt, facebook::react::Point &localPt
|
|
37
|
+
facebook::react::Tag hitTest(facebook::react::Point pt, facebook::react::Point &localPt, bool ignorePointerEvents)
|
|
38
|
+
const noexcept override;
|
|
38
39
|
winrt::Microsoft::ReactNative::Composition::IVisual Visual() const noexcept override;
|
|
39
40
|
winrt::Microsoft::ReactNative::Composition::IVisual OuterVisual() const noexcept override;
|
|
40
41
|
|
|
@@ -43,7 +44,7 @@ struct UnimplementedNativeViewComponentView : CompositionBaseComponentView {
|
|
|
43
44
|
const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
|
|
44
45
|
facebook::react::Tag tag);
|
|
45
46
|
std::shared_ptr<facebook::react::UnimplementedNativeViewProps const> m_props;
|
|
46
|
-
winrt::Microsoft::ReactNative::Composition::
|
|
47
|
+
winrt::Microsoft::ReactNative::Composition::ISpriteVisual m_visual{nullptr};
|
|
47
48
|
};
|
|
48
49
|
|
|
49
50
|
} // namespace Microsoft::ReactNative
|
|
@@ -18,12 +18,12 @@
|
|
|
18
18
|
#include <UI.Xaml.Controls.h>
|
|
19
19
|
#include <react/components/rnwcore/ComponentDescriptors.h>
|
|
20
20
|
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
|
|
21
|
-
#include <react/renderer/core/CoreFeatures.h>
|
|
22
21
|
#include <react/renderer/core/DynamicPropsUtilities.h>
|
|
23
22
|
#include <react/renderer/core/EventBeat.h>
|
|
24
23
|
#include <react/renderer/scheduler/Scheduler.h>
|
|
25
24
|
#include <react/renderer/scheduler/SchedulerToolbox.h>
|
|
26
25
|
#include <react/utils/ContextContainer.h>
|
|
26
|
+
#include <react/utils/CoreFeatures.h>
|
|
27
27
|
#include <runtimeexecutor/ReactCommon/RuntimeExecutor.h>
|
|
28
28
|
#include <winrt/Windows.Graphics.Display.h>
|
|
29
29
|
#include <winrt/Windows.UI.Composition.Desktop.h>
|
|
@@ -183,8 +183,8 @@ void FabricUIManager::startSurface(
|
|
|
183
183
|
|
|
184
184
|
facebook::react::LayoutContext context;
|
|
185
185
|
facebook::react::LayoutConstraints constraints;
|
|
186
|
-
context.pointScaleFactor =
|
|
187
|
-
context.fontSizeMultiplier =
|
|
186
|
+
context.pointScaleFactor = CompositionRootView->ScaleFactor();
|
|
187
|
+
context.fontSizeMultiplier = CompositionRootView->ScaleFactor();
|
|
188
188
|
constraints.minimumSize.height = static_cast<float>(CompositionRootView->GetActualHeight());
|
|
189
189
|
constraints.minimumSize.width = static_cast<float>(CompositionRootView->GetActualWidth());
|
|
190
190
|
constraints.maximumSize.height = static_cast<float>(CompositionRootView->GetActualHeight());
|
|
@@ -347,7 +347,8 @@ void FabricUIManager::initiateTransaction(facebook::react::MountingCoordinator::
|
|
|
347
347
|
} while (m_followUpTransactionRequired);
|
|
348
348
|
}
|
|
349
349
|
|
|
350
|
-
void FabricUIManager::schedulerDidFinishTransaction(
|
|
350
|
+
void FabricUIManager::schedulerDidFinishTransaction(
|
|
351
|
+
const facebook::react::MountingCoordinator::Shared &mountingCoordinator) {
|
|
351
352
|
// Should cache this locally
|
|
352
353
|
|
|
353
354
|
if (m_context.UIDispatcher().HasThreadAccess()) {
|
|
@@ -75,7 +75,8 @@ struct FabricUIManager final : public std::enable_shared_from_this<FabricUIManag
|
|
|
75
75
|
std::unordered_map<facebook::react::SurfaceId, SurfaceInfo> m_surfaceRegistry;
|
|
76
76
|
|
|
77
77
|
// Inherited via SchedulerDelegate
|
|
78
|
-
virtual void schedulerDidFinishTransaction(
|
|
78
|
+
virtual void schedulerDidFinishTransaction(
|
|
79
|
+
const facebook::react::MountingCoordinator::Shared &mountingCoordinator) override;
|
|
79
80
|
virtual void schedulerDidRequestPreliminaryViewAllocation(
|
|
80
81
|
facebook::react::SurfaceId surfaceId,
|
|
81
82
|
const facebook::react::ShadowNode &shadowView) override;
|
|
@@ -12,7 +12,7 @@ namespace Microsoft::ReactNative {
|
|
|
12
12
|
* Lightweight wrapper class around a ComponentView with a react tag which registers a
|
|
13
13
|
* constant react tag at initialization time for a stable hash and provides the
|
|
14
14
|
* underlying view to a caller if that underlying view's react tag has not
|
|
15
|
-
* changed from the one provided at
|
|
15
|
+
* changed from the one provided at initialization time (i.e. recycled).
|
|
16
16
|
*/
|
|
17
17
|
struct ReactTaggedView {
|
|
18
18
|
ReactTaggedView(const std::shared_ptr<IComponentView> &componentView)
|
|
@@ -31,10 +31,9 @@ WindowsComponentDescriptorRegistryProperty() noexcept {
|
|
|
31
31
|
|
|
32
32
|
WindowsComponentDescriptorRegistry::WindowsComponentDescriptorRegistry()
|
|
33
33
|
: m_componentDescriptorRegistry(std::make_shared<facebook::react::ComponentDescriptorProviderRegistry>()) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
*/
|
|
34
|
+
m_componentDescriptorRegistry->add(facebook::react::concreteComponentDescriptorProvider<
|
|
35
|
+
facebook::react::ActivityIndicatorViewComponentDescriptor>());
|
|
36
|
+
|
|
38
37
|
m_componentDescriptorRegistry->add(
|
|
39
38
|
facebook::react::concreteComponentDescriptorProvider<facebook::react::ImageComponentDescriptor>());
|
|
40
39
|
m_componentDescriptorRegistry->add(
|