react-native-windows 0.81.3 → 0.82.0-preview.10
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 +11 -10
- package/Directory.Build.props +3 -3
- package/Folly/Folly.vcxproj +1 -3
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -3
- package/Libraries/Alert/RCTAlertManager.android.js +4 -2
- package/Libraries/Animated/Animated.d.ts +2 -0
- package/Libraries/Animated/AnimatedEvent.js +1 -1
- package/Libraries/Animated/AnimatedExports.js.flow +1 -0
- package/Libraries/Animated/AnimatedImplementation.js +4 -2
- package/Libraries/Animated/AnimatedMock.js +1 -1
- package/Libraries/Animated/Easing.js +2 -0
- package/Libraries/Animated/NativeAnimatedAllowlist.js +1 -0
- package/Libraries/Animated/animations/Animation.js +19 -20
- package/Libraries/Animated/animations/TimingAnimation.js +2 -0
- package/Libraries/Animated/components/AnimatedScrollView.js +3 -2
- package/Libraries/Animated/components/AnimatedSectionList.js +1 -1
- package/Libraries/Animated/nodes/AnimatedColor.js +9 -9
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +4 -4
- package/Libraries/Animated/nodes/AnimatedNode.js +14 -7
- package/Libraries/Animated/nodes/AnimatedObject.js +7 -7
- package/Libraries/Animated/nodes/AnimatedProps.js +32 -32
- package/Libraries/Animated/nodes/AnimatedStyle.js +23 -21
- package/Libraries/Animated/nodes/AnimatedTransform.js +6 -6
- package/Libraries/Animated/nodes/AnimatedValue.js +18 -26
- package/Libraries/AppState/AppState.js +8 -4
- package/Libraries/BatchedBridge/BatchedBridge.js +1 -0
- package/Libraries/BatchedBridge/MessageQueue.js +5 -0
- package/Libraries/BatchedBridge/NativeModules.js +1 -1
- package/Libraries/Blob/BlobManager.js +1 -1
- package/Libraries/Blob/URLSearchParams.js +2 -0
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -2
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +2 -2
- package/Libraries/Components/Button.js +1 -1
- package/Libraries/Components/Button.windows.js +1 -1
- package/Libraries/Components/Flyout/FlyoutNativeComponent.js +2 -2
- package/Libraries/Components/Glyph/GlyphNativeComponent.js +1 -1
- package/Libraries/Components/Popup/PopupNativeComponent.js +1 -0
- package/Libraries/Components/Pressable/Pressable.js +10 -1
- package/Libraries/Components/Pressable/Pressable.windows.js +9 -0
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +2 -2
- package/Libraries/Components/ScrollView/ScrollView.js +13 -4
- package/Libraries/Components/ScrollView/ScrollView.windows.js +14 -5
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +2 -2
- package/Libraries/Components/Switch/Switch.js +1 -1
- package/Libraries/Components/Switch/Switch.windows.js +1 -1
- package/Libraries/Components/TextInput/TextInput.flow.js +12 -5
- package/Libraries/Components/TextInput/TextInput.flow.windows.js +12 -5
- package/Libraries/Components/TextInput/TextInput.js +14 -5
- package/Libraries/Components/TextInput/TextInput.windows.js +23 -11
- package/Libraries/Components/TextInput/TextInputState.js +1 -1
- package/Libraries/Components/TextInput/TextInputState.windows.js +1 -1
- package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableOpacity.js +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -1
- package/Libraries/Components/View/View.js +81 -167
- package/Libraries/Components/View/View.windows.js +202 -302
- package/Libraries/Core/Devtools/loadBundleFromServer.js +1 -1
- package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +4 -2
- package/Libraries/Core/ReactFiberErrorDialog.js +3 -3
- package/Libraries/Core/ReactNativeVersion.js +37 -10
- package/Libraries/Core/Timers/JSTimers.js +4 -1
- package/Libraries/Core/Timers/NativeTiming.js +1 -0
- package/Libraries/Core/Timers/immediateShim.js +2 -1
- package/Libraries/Core/Timers/queueMicrotask.js +1 -0
- package/Libraries/Core/setUpPerformance.js +3 -4
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +5 -3
- package/Libraries/Image/AssetSourceResolver.windows.js +2 -2
- package/Libraries/Image/Image.android.js +327 -111
- package/Libraries/Image/Image.ios.js +6 -1
- package/Libraries/Image/Image.windows.js +28 -61
- package/Libraries/Image/ImageSourceUtils.js +8 -2
- package/Libraries/Image/resolveAssetSource.js +1 -1
- package/Libraries/Image/resolveAssetSource.windows.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +118 -167
- package/Libraries/Interaction/PanResponder.js +7 -52
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -0
- package/Libraries/Lists/FlatList.js +5 -6
- package/Libraries/LogBox/Data/LogBoxData.js +5 -2
- package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -1
- package/Libraries/Modal/Modal.js +3 -3
- package/Libraries/Modal/Modal.windows.js +2 -2
- package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
- package/Libraries/NativeComponent/ViewConfig.js +2 -2
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.windows.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +20 -5
- package/Libraries/Network/convertRequestBody.js +1 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +10 -9
- package/Libraries/Pressability/HoverState.js +2 -0
- package/Libraries/Pressability/Pressability.js +1 -1
- package/Libraries/Pressability/Pressability.windows.js +5 -5
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +4 -2
- package/Libraries/ReactNative/PaperUIManager.windows.js +4 -4
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +3 -3
- package/Libraries/ReactNative/RendererImplementation.js +116 -116
- package/Libraries/ReactNative/UIManager.js +3 -3
- package/Libraries/ReactNative/renderApplication.js +1 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -1
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +38 -35
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +51 -22
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +54 -24
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +36 -33
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +5 -5
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +5 -5
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
- package/Libraries/Share/Share.js +4 -0
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +2 -2
- package/Libraries/StyleSheet/PlatformColorValueTypes.windows.js +2 -0
- package/Libraries/StyleSheet/StyleSheet.d.ts +7 -22
- package/Libraries/StyleSheet/StyleSheetExports.js +2 -8
- package/Libraries/StyleSheet/StyleSheetExports.js.flow +11 -18
- package/Libraries/StyleSheet/flattenStyle.js +2 -2
- package/Libraries/StyleSheet/processAspectRatio.js +2 -0
- package/Libraries/StyleSheet/processFilter.js +5 -5
- package/Libraries/StyleSheet/splitLayoutProps.js +2 -2
- package/Libraries/Text/Text.js +534 -234
- package/Libraries/Text/Text.windows.js +622 -265
- package/Libraries/Text/TextNativeComponent.js +2 -2
- package/Libraries/Utilities/Appearance.d.ts +3 -5
- package/Libraries/Utilities/Appearance.js +5 -17
- package/Libraries/Utilities/HMRClient.js +2 -1
- package/Libraries/Utilities/Platform.android.js +3 -3
- package/Libraries/Utilities/Platform.d.ts +1 -0
- package/Libraries/Utilities/Platform.ios.js +1 -1
- package/Libraries/Utilities/Platform.windows.js +3 -3
- package/Libraries/Utilities/PlatformTypes.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +12 -0
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +1 -1
- package/Libraries/Utilities/codegenNativeComponent.js +1 -1
- package/Libraries/Utilities/createPerformanceLogger.js +32 -0
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +2 -0
- package/Libraries/Utilities/differ/pointsDiffer.js +1 -1
- package/Libraries/Utilities/useMergeRefs.js +1 -1
- package/Libraries/WebSocket/WebSocketInterceptor.js +2 -0
- package/Libraries/promiseRejectionTrackingOptions.js +17 -31
- package/Libraries/vendor/emitter/EventEmitter.js +1 -1
- package/Microsoft.ReactNative/App.xaml +5 -0
- package/Microsoft.ReactNative/Base/CxxReactIncludes.h +0 -3
- package/Microsoft.ReactNative/ComponentView.idl +2 -0
- package/Microsoft.ReactNative/Composition.Input.idl +7 -0
- package/Microsoft.ReactNative/CompositionContext.idl +0 -2
- package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +2 -2
- package/Microsoft.ReactNative/Fabric/AbiViewProps.h +0 -2
- package/Microsoft.ReactNative/Fabric/ComponentView.cpp +18 -0
- package/Microsoft.ReactNative/Fabric/ComponentView.h +9 -0
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +12 -69
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +16 -15
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +0 -31
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +0 -10
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +0 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +75 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +1 -2
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +0 -2
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +0 -9
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +0 -10
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +0 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +2 -4
- package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.cpp +6 -68
- package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.h +0 -4
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +0 -1
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +0 -1
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +82 -14
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +11 -4
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +8 -0
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +3 -0
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +0 -6
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +0 -2
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +0 -1
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +61 -32
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +3 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +4 -1
- package/Microsoft.ReactNative/Fabric/Composition/Theme.cpp +0 -30
- package/Microsoft.ReactNative/Fabric/Composition/Theme.h +1 -3
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +8 -4
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +0 -1
- package/Microsoft.ReactNative/Fabric/ImageManager.cpp +0 -4
- package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +8 -0
- package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.h +3 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +0 -11
- package/Microsoft.ReactNative/IReactContext.cpp +2 -25
- package/Microsoft.ReactNative/IReactContext.h +0 -7
- package/Microsoft.ReactNative/IReactContext.idl +4 -29
- package/Microsoft.ReactNative/IReactModuleBuilder.cpp +24 -140
- package/Microsoft.ReactNative/IReactModuleBuilder.h +0 -11
- package/Microsoft.ReactNative/IReactPackageBuilder.idl +1 -16
- package/Microsoft.ReactNative/IReactPackageProvider.idl +0 -1
- package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +2 -0
- package/Microsoft.ReactNative/JsiApi.cpp +4 -3
- package/Microsoft.ReactNative/JsiApi.h +2 -3
- package/Microsoft.ReactNative/JsiApi.idl +3 -2
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +5 -214
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +0 -252
- package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +0 -37
- package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -140
- package/Microsoft.ReactNative/Modules/AlertModule.h +0 -2
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +5 -10
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +0 -1
- package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +1 -96
- package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.h +0 -14
- package/Microsoft.ReactNative/Modules/AppStateModule.cpp +0 -53
- package/Microsoft.ReactNative/Modules/AppStateModule.h +0 -5
- package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +5 -14
- package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.h +0 -2
- package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +1 -9
- package/Microsoft.ReactNative/Modules/DevSettingsModule.cpp +0 -4
- package/Microsoft.ReactNative/Modules/DevSettingsModule.h +0 -2
- package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +16 -90
- package/Microsoft.ReactNative/Modules/I18nManagerModule.cpp +3 -8
- package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +33 -43
- package/Microsoft.ReactNative/Modules/LinkingManagerModule.cpp +0 -3
- package/Microsoft.ReactNative/Modules/LogBoxModule.cpp +30 -102
- package/Microsoft.ReactNative/Modules/LogBoxModule.h +0 -7
- package/Microsoft.ReactNative/Modules/Timing.cpp +7 -9
- package/Microsoft.ReactNative/Pch/pch.h +0 -28
- package/Microsoft.ReactNative/ReactCoreInjection.h +0 -1
- package/Microsoft.ReactNative/ReactHost/IReactInstance.h +0 -8
- package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +0 -15
- package/Microsoft.ReactNative/ReactHost/MsoReactContext.h +0 -2
- package/Microsoft.ReactNative/ReactHost/React.h +0 -44
- package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +10 -47
- package/Microsoft.ReactNative/ReactHost/ReactHost.h +1 -1
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +30 -586
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +2 -37
- package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +0 -13
- package/Microsoft.ReactNative/ReactHost/React_Win.h +0 -1
- package/Microsoft.ReactNative/ReactInstanceSettings.cpp +0 -8
- package/Microsoft.ReactNative/ReactInstanceSettings.h +0 -13
- package/Microsoft.ReactNative/ReactInstanceSettings.idl +7 -23
- package/Microsoft.ReactNative/ReactNativeHost.cpp +10 -35
- package/Microsoft.ReactNative/ReactNativeHost.h +0 -1
- package/Microsoft.ReactNative/ReactNativeIsland.idl +0 -4
- package/Microsoft.ReactNative/ReactPackageBuilder.cpp +9 -36
- package/Microsoft.ReactNative/ReactPackageBuilder.h +4 -38
- package/Microsoft.ReactNative/RedBox.cpp +9 -362
- package/Microsoft.ReactNative/Theme.idl +0 -2
- package/Microsoft.ReactNative/Timer.cpp +3 -2
- package/Microsoft.ReactNative/Utils/Helpers.cpp +0 -47
- package/Microsoft.ReactNative/Utils/Helpers.h +0 -5
- package/Microsoft.ReactNative/Utils/KeyboardUtils.cpp +0 -11
- package/Microsoft.ReactNative/Utils/ThemeUtils.cpp +0 -4
- package/Microsoft.ReactNative/Utils/ThemeUtils.h +1 -5
- package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +0 -2
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +0 -245
- package/Microsoft.ReactNative/Utils/ValueUtils.h +0 -23
- package/Microsoft.ReactNative/ViewProps.idl +0 -2
- package/Microsoft.ReactNative/Views/DevMenu.cpp +2 -278
- package/Microsoft.ReactNative/Views/DevMenu.h +0 -5
- package/Microsoft.ReactNative/XamlApplication.cpp +71 -0
- package/Microsoft.ReactNative/XamlApplication.h +47 -0
- package/Microsoft.ReactNative/XamlApplication.idl +19 -0
- package/Microsoft.ReactNative/XamlUIService.cpp +0 -54
- package/Microsoft.ReactNative/XamlUIService.h +0 -12
- package/Microsoft.ReactNative/XamlUIService.idl +0 -12
- package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +0 -19
- package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/decorator.h +191 -114
- package/Microsoft.ReactNative.Cxx/JSI/instrumentation.h +5 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +37 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +68 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi.h +77 -11
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +2 -2
- package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +0 -5
- package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +93 -1
- package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.cpp +4 -3
- package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +2 -2
- package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.cpp +2 -55
- package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.h +4 -8
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +5 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/timing/primitives.h +44 -4
- package/Microsoft.ReactNative.Cxx/ReactContext.h +0 -13
- package/Microsoft.ReactNative.Cxx/UI.Composition.Effects.h +0 -4
- package/Microsoft.ReactNative.Cxx/UI.Composition.h +0 -4
- package/Microsoft.ReactNative.Cxx/UI.Input.h +0 -4
- package/Microsoft.ReactNative.Cxx/UI.Popups.h +0 -4
- package/Microsoft.ReactNative.Cxx/UI.Text.h +0 -4
- package/Microsoft.ReactNative.Cxx/XamlUtils.h +0 -33
- package/Microsoft.ReactNative.Managed/JSValueReader.cs +0 -4
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +0 -3
- package/Microsoft.ReactNative.Managed/ReactContext.cs +0 -5
- package/Microsoft.ReactNative.Managed/ReactContextGenerator.cs +0 -4
- package/Microsoft.ReactNative.Managed/ReactPackageBuilderExtensions.cs +0 -25
- package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +0 -4
- package/Microsoft.ReactNative.Managed/ReflectionReactPackageProvider.cs +1 -2
- package/Microsoft.ReactNative.Managed.CodeGen/CodeAnalyzer.cs +0 -10
- package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.ViewManager.cs +0 -36
- package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.cs +0 -6
- package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactAssembly.cs +0 -2
- package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactTypes.cs +0 -2
- package/Microsoft.ReactNative.Managed.CodeGen/ReactNativeNames.cs +0 -2
- package/Mso/src/dispatchQueue/queueService.cpp +3 -1
- package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +2 -10
- package/PropertySheets/Bundle.Common.targets +1 -1
- package/PropertySheets/Bundle.props +3 -4
- package/PropertySheets/External/Microsoft.ReactNative.Common.props +0 -1
- package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.targets +1 -1
- package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.targets +1 -1
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/PropertySheets/JSEngine.props +1 -1
- package/PropertySheets/NuGet.LockFile.props +0 -8
- package/PropertySheets/OutputMSBuildProperties.targets +0 -1
- package/PropertySheets/React.Cpp.props +3 -5
- package/PropertySheets/Warnings.props +1 -2
- package/PropertySheets/WinUI.props +3 -3
- package/README.md +1 -5
- package/ReactCommon/ReactCommon.vcxproj +12 -31
- package/ReactCommon/ReactCommon.vcxproj.filters +0 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +3 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +5 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +20 -4
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +113 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +14 -6
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/Utf8.h +1 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.cpp +351 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +2 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.cpp +42 -36
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.h +15 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +1 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/image/conversions.h +174 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/BaseParagraphProps.cpp +174 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/BaseParagraphProps.h +69 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +1 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +26 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +1 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ShadowNode.cpp +1 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/imagemanager/primitives.h +189 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +27 -8
- package/ReactCommon/cgmanifest.json +1 -1
- package/Scripts/Microsoft.ReactNative.nuspec +15 -33
- package/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1 +23 -23
- package/Scripts/OfficeReact.Win32.nuspec +0 -3
- package/Scripts/creaternwapp.cmd +1 -1
- package/Scripts/rnw-dependencies.ps1 +15 -1
- package/Shared/DevServerHelper.h +17 -21
- package/Shared/DevSettings.h +1 -25
- package/Shared/DevSupportManager.cpp +0 -50
- package/Shared/DevSupportManager.h +0 -4
- package/Shared/Hermes/HermesRuntimeTargetDelegate.cpp +5 -1
- package/Shared/HermesRuntimeHolder.cpp +0 -31
- package/Shared/HermesRuntimeHolder.h +0 -14
- package/Shared/IDevSupportManager.h +0 -6
- package/Shared/InstanceManager.cpp +0 -97
- package/Shared/InstanceManager.h +0 -53
- package/Shared/JSI/ScriptStore.h +1 -1
- package/Shared/Logging.cpp +1 -12
- package/Shared/Modules/CxxModuleUtilities.cpp +0 -9
- package/Shared/Modules/CxxModuleUtilities.h +0 -8
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +9 -1
- package/Shared/OInstance.cpp +144 -424
- package/Shared/OInstance.h +0 -81
- package/Shared/Shared.vcxitems +83 -203
- package/Shared/Shared.vcxitems.filters +7 -69
- package/Shared/Threading/MessageQueueThreadFactory.cpp +0 -6
- package/Shared/Threading/MessageQueueThreadFactory.h +0 -4
- package/Shared/TurboModuleManager.cpp +0 -4
- package/Shared/Utils.cpp +26 -0
- package/Shared/Utils.h +3 -0
- package/codegen/NativeDOMSpec.g.h +41 -35
- package/codegen/NativeIntersectionObserverSpec.g.h +9 -21
- package/codegen/NativePerformanceSpec.g.h +53 -35
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +183 -129
- package/codegen/react/components/rnwcore/EventEmitters.cpp +25 -0
- package/codegen/react/components/rnwcore/EventEmitters.h +25 -0
- package/codegen/react/components/rnwcore/Props.cpp +41 -2
- package/codegen/react/components/rnwcore/Props.h +51 -2
- package/codegen/react/components/rnwcore/VirtualView.g.h +4 -0
- package/codegen/react/components/rnwcore/VirtualViewExperimental.g.h +240 -0
- package/codegen/rnwcoreJSI-generated.cpp +534 -467
- package/codegen/rnwcoreJSI.h +165 -66
- package/fmt/cgmanifest.json +1 -1
- package/fmt/fmt.vcxproj +0 -8
- package/index.js +14 -2
- package/index.windows.js +14 -2
- package/jest/local-setup.js +2 -2
- package/jest/mock.js +1 -1
- package/jest/mockComponent.js +9 -9
- package/jest/mockNativeComponent.js +3 -2
- package/jest/mocks/Modal.js +1 -1
- package/jest/mocks/ScrollView.js +1 -1
- package/jest/mocks/ViewNativeComponent.js +1 -1
- package/jest/setup.js +23 -12
- package/just-task.js +14 -0
- package/package.json +31 -31
- package/src/private/animated/NativeAnimatedHelper.js +16 -5
- package/src/private/animated/createAnimatedPropsHook.js +11 -60
- package/src/private/animated/createAnimatedPropsMemoHook.js +8 -54
- package/src/private/components/virtualview/VirtualView.js +43 -12
- package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +93 -0
- package/src/private/components/virtualview/VirtualViewNativeComponent.js +6 -0
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -2
- package/src/private/featureflags/ReactNativeFeatureFlags.js +85 -52
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +23 -4
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +15 -6
- package/src/private/renderer/errorhandling/ErrorHandlers.js +3 -3
- package/src/private/setup/{setUpPerformanceObserver.js → setUpPerformanceModern.js} +43 -18
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeTiming.js +1 -0
- package/src/private/types/HostInstance.js +4 -1
- package/src/private/webapis/dom/nodes/ReactNativeDocument.js +22 -2
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +5 -3
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +16 -13
- package/src/private/webapis/dom/nodes/internals/NodeInternals.js +45 -22
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +26 -192
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +15 -12
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +14 -11
- package/src/private/webapis/geometry/DOMRectList.js +2 -2
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +19 -74
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +0 -4
- package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
- package/src/private/webapis/performance/EventTiming.js +40 -25
- package/src/private/webapis/performance/LongTasks.js +35 -2
- package/src/private/webapis/performance/Performance.js +347 -166
- package/src/private/webapis/performance/PerformanceEntry.js +40 -23
- package/src/private/webapis/performance/PerformanceObserver.js +37 -29
- package/src/private/webapis/performance/ReactNativeStartupTiming.js +3 -24
- package/src/private/webapis/performance/ResourceTiming.js +29 -18
- package/src/private/webapis/performance/UserTiming.js +92 -34
- package/src/private/webapis/performance/UserTimingExtensibility.js.flow +38 -0
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +3 -4
- package/src/private/webapis/performance/internals/Utilities.js +9 -0
- package/src/private/webapis/performance/specs/NativePerformance.js +23 -23
- package/src/private/webapis/structuredClone/structuredClone.js +10 -10
- package/stubs/double-conversion/README.md +1 -1
- package/template/cpp-lib/proj/MyLib.sln +0 -5
- package/template/cpp-lib/src/pch.h +0 -5
- package/template/cs-lib/proj/MyLib.sln +0 -5
- package/template/metro.config.js +1 -0
- package/templates/cpp-app/metro.config.js +2 -1
- package/templates/cpp-app/windows/MyApp.sln +0 -5
- package/templates/cpp-lib/example/metro.config.js +3 -4
- package/templates/cpp-lib/windows/MyLib.sln +0 -5
- package/Chakra/Chakra.vcxitems +0 -32
- package/Chakra/Chakra.vcxitems.filters +0 -54
- package/Chakra/ChakraHelpers.cpp +0 -468
- package/Chakra/ChakraHelpers.h +0 -146
- package/Chakra/ChakraInstanceArgs.h +0 -52
- package/Chakra/ChakraPlatform.cpp +0 -42
- package/Chakra/ChakraPlatform.h +0 -51
- package/Chakra/ChakraTracing.cpp +0 -275
- package/Chakra/ChakraTracing.h +0 -11
- package/Chakra/ChakraUtils.cpp +0 -190
- package/Chakra/ChakraUtils.h +0 -72
- package/Chakra/ChakraValue.cpp +0 -257
- package/Chakra/ChakraValue.h +0 -308
- package/Chakra/Utf8DebugExtensions.cpp +0 -62
- package/Chakra/Utf8DebugExtensions.h +0 -29
- package/Libraries/Interaction/InteractionManagerStub.js +0 -184
- package/Libraries/Interaction/TaskQueue.js +0 -183
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -31
- package/Microsoft.ReactNative/ABICxxModule.cpp +0 -51
- package/Microsoft.ReactNative/ABICxxModule.h +0 -38
- package/Microsoft.ReactNative/ABIViewManager.cpp +0 -263
- package/Microsoft.ReactNative/ABIViewManager.h +0 -100
- package/Microsoft.ReactNative/Base/CoreUIManagers.cpp +0 -55
- package/Microsoft.ReactNative/DevMenuControl.cpp +0 -14
- package/Microsoft.ReactNative/DevMenuControl.h +0 -20
- package/Microsoft.ReactNative/DevMenuControl.idl +0 -28
- package/Microsoft.ReactNative/DevMenuControl.xaml +0 -139
- package/Microsoft.ReactNative/GlyphViewManager.cpp +0 -167
- package/Microsoft.ReactNative/GlyphViewManager.h +0 -24
- package/Microsoft.ReactNative/INativeUIManager.h +0 -75
- package/Microsoft.ReactNative/IViewManager.idl +0 -120
- package/Microsoft.ReactNative/IViewManagerCore.idl +0 -45
- package/Microsoft.ReactNative/LayoutService.cpp +0 -51
- package/Microsoft.ReactNative/LayoutService.h +0 -32
- package/Microsoft.ReactNative/LayoutService.idl +0 -41
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +0 -1187
- package/Microsoft.ReactNative/Modules/NativeUIManager.h +0 -128
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +0 -891
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +0 -185
- package/Microsoft.ReactNative/NativeModulesProvider.cpp +0 -49
- package/Microsoft.ReactNative/NativeModulesProvider.h +0 -25
- package/Microsoft.ReactNative/ReactApplication.cpp +0 -276
- package/Microsoft.ReactNative/ReactApplication.h +0 -156
- package/Microsoft.ReactNative/ReactApplication.idl +0 -48
- package/Microsoft.ReactNative/ReactHost/ViewManagerProvider.h +0 -19
- package/Microsoft.ReactNative/ReactPointerEventArgs.cpp +0 -55
- package/Microsoft.ReactNative/ReactPointerEventArgs.h +0 -32
- package/Microsoft.ReactNative/ReactPointerEventArgs.idl +0 -79
- package/Microsoft.ReactNative/ReactRootView.cpp +0 -592
- package/Microsoft.ReactNative/ReactRootView.h +0 -127
- package/Microsoft.ReactNative/ReactRootView.idl +0 -40
- package/Microsoft.ReactNative/TestHook.cpp +0 -99
- package/Microsoft.ReactNative/TestHook.h +0 -15
- package/Microsoft.ReactNative/Utils/AccessibilityUtils.cpp +0 -36
- package/Microsoft.ReactNative/Utils/AccessibilityUtils.h +0 -15
- package/Microsoft.ReactNative/Utils/BatchingEventEmitter.cpp +0 -171
- package/Microsoft.ReactNative/Utils/BatchingEventEmitter.h +0 -72
- package/Microsoft.ReactNative/Utils/PropertyHandlerUtils.h +0 -87
- package/Microsoft.ReactNative/Utils/PropertyUtils.h +0 -568
- package/Microsoft.ReactNative/Utils/ResourceBrushUtils.cpp +0 -182
- package/Microsoft.ReactNative/Utils/ResourceBrushUtils.h +0 -58
- package/Microsoft.ReactNative/Utils/ShadowNodeTypeUtils.h +0 -26
- package/Microsoft.ReactNative/Utils/XamlIslandUtils.cpp +0 -93
- package/Microsoft.ReactNative/Utils/XamlIslandUtils.h +0 -48
- package/Microsoft.ReactNative/ViewManagersProvider.cpp +0 -39
- package/Microsoft.ReactNative/ViewManagersProvider.h +0 -27
- package/Microsoft.ReactNative/Views/ActivityIndicatorViewManager.cpp +0 -62
- package/Microsoft.ReactNative/Views/ActivityIndicatorViewManager.h +0 -29
- package/Microsoft.ReactNative/Views/ConfigureBundlerDlg.cpp +0 -186
- package/Microsoft.ReactNative/Views/ConfigureBundlerDlg.h +0 -11
- package/Microsoft.ReactNative/Views/ControlViewManager.cpp +0 -143
- package/Microsoft.ReactNative/Views/ControlViewManager.h +0 -38
- package/Microsoft.ReactNative/Views/DebuggingOverlayViewManager.cpp +0 -53
- package/Microsoft.ReactNative/Views/DebuggingOverlayViewManager.h +0 -30
- package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +0 -586
- package/Microsoft.ReactNative/Views/DynamicAutomationPeer.h +0 -104
- package/Microsoft.ReactNative/Views/DynamicAutomationProperties.cpp +0 -330
- package/Microsoft.ReactNative/Views/DynamicAutomationProperties.h +0 -111
- package/Microsoft.ReactNative/Views/DynamicValueProvider.cpp +0 -59
- package/Microsoft.ReactNative/Views/DynamicValueProvider.h +0 -32
- package/Microsoft.ReactNative/Views/ExpressionAnimationStore.cpp +0 -61
- package/Microsoft.ReactNative/Views/ExpressionAnimationStore.h +0 -26
- package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +0 -559
- package/Microsoft.ReactNative/Views/FlyoutViewManager.h +0 -34
- package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +0 -126
- package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.h +0 -23
- package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +0 -957
- package/Microsoft.ReactNative/Views/FrameworkElementViewManager.h +0 -41
- package/Microsoft.ReactNative/Views/IXamlRootView.h +0 -17
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +0 -245
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +0 -45
- package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +0 -469
- package/Microsoft.ReactNative/Views/Image/ReactImage.h +0 -80
- package/Microsoft.ReactNative/Views/Image/ReactImageBrush.cpp +0 -247
- package/Microsoft.ReactNative/Views/Image/ReactImageBrush.h +0 -67
- package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +0 -261
- package/Microsoft.ReactNative/Views/KeyboardEventHandler.h +0 -132
- package/Microsoft.ReactNative/Views/PaperShadowNode.cpp +0 -18
- package/Microsoft.ReactNative/Views/PaperShadowNode.h +0 -38
- package/Microsoft.ReactNative/Views/PopupViewManager.cpp +0 -349
- package/Microsoft.ReactNative/Views/PopupViewManager.h +0 -36
- package/Microsoft.ReactNative/Views/RawTextViewManager.cpp +0 -69
- package/Microsoft.ReactNative/Views/RawTextViewManager.h +0 -46
- package/Microsoft.ReactNative/Views/ReactViewInstance.cpp +0 -43
- package/Microsoft.ReactNative/Views/ReactViewInstance.h +0 -53
- package/Microsoft.ReactNative/Views/RefreshControlManager.cpp +0 -116
- package/Microsoft.ReactNative/Views/RefreshControlManager.h +0 -28
- package/Microsoft.ReactNative/Views/RootViewManager.cpp +0 -65
- package/Microsoft.ReactNative/Views/RootViewManager.h +0 -36
- package/Microsoft.ReactNative/Views/SIPEventHandler.cpp +0 -117
- package/Microsoft.ReactNative/Views/SIPEventHandler.h +0 -45
- package/Microsoft.ReactNative/Views/ScrollContentViewManager.cpp +0 -16
- package/Microsoft.ReactNative/Views/ScrollContentViewManager.h +0 -19
- package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +0 -540
- package/Microsoft.ReactNative/Views/ScrollViewManager.h +0 -42
- package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +0 -228
- package/Microsoft.ReactNative/Views/ShadowNodeBase.h +0 -169
- package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +0 -68
- package/Microsoft.ReactNative/Views/ShadowNodeRegistry.h +0 -40
- package/Microsoft.ReactNative/Views/SliderViewManager.cpp +0 -97
- package/Microsoft.ReactNative/Views/SliderViewManager.h +0 -32
- package/Microsoft.ReactNative/Views/SwitchViewManager.cpp +0 -227
- package/Microsoft.ReactNative/Views/SwitchViewManager.h +0 -31
- package/Microsoft.ReactNative/Views/Text/TextHighlighterVisitor.cpp +0 -52
- package/Microsoft.ReactNative/Views/Text/TextHighlighterVisitor.h +0 -37
- package/Microsoft.ReactNative/Views/Text/TextHitTestUtils.cpp +0 -348
- package/Microsoft.ReactNative/Views/Text/TextHitTestUtils.h +0 -13
- package/Microsoft.ReactNative/Views/Text/TextHitTestVisitor.cpp +0 -76
- package/Microsoft.ReactNative/Views/Text/TextHitTestVisitor.h +0 -32
- package/Microsoft.ReactNative/Views/Text/TextParentVisitor.cpp +0 -12
- package/Microsoft.ReactNative/Views/Text/TextParentVisitor.h +0 -19
- package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +0 -75
- package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.h +0 -43
- package/Microsoft.ReactNative/Views/Text/TextTransformParentVisitor.cpp +0 -21
- package/Microsoft.ReactNative/Views/Text/TextTransformParentVisitor.h +0 -23
- package/Microsoft.ReactNative/Views/Text/TextTransformVisitor.cpp +0 -70
- package/Microsoft.ReactNative/Views/Text/TextTransformVisitor.h +0 -34
- package/Microsoft.ReactNative/Views/Text/TextVisitor.cpp +0 -56
- package/Microsoft.ReactNative/Views/Text/TextVisitor.h +0 -34
- package/Microsoft.ReactNative/Views/Text/TextVisitorScope.h +0 -35
- package/Microsoft.ReactNative/Views/Text/TextVisitors.h +0 -47
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +0 -1003
- package/Microsoft.ReactNative/Views/TextInputViewManager.h +0 -33
- package/Microsoft.ReactNative/Views/TextViewManager.cpp +0 -414
- package/Microsoft.ReactNative/Views/TextViewManager.h +0 -47
- package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +0 -608
- package/Microsoft.ReactNative/Views/TouchEventHandler.h +0 -116
- package/Microsoft.ReactNative/Views/UnimplementedViewManager.cpp +0 -79
- package/Microsoft.ReactNative/Views/UnimplementedViewManager.h +0 -27
- package/Microsoft.ReactNative/Views/ViewControl.cpp +0 -43
- package/Microsoft.ReactNative/Views/ViewControl.h +0 -32
- package/Microsoft.ReactNative/Views/ViewManager.h +0 -33
- package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +0 -487
- package/Microsoft.ReactNative/Views/ViewManagerBase.h +0 -121
- package/Microsoft.ReactNative/Views/ViewPanel.cpp +0 -164
- package/Microsoft.ReactNative/Views/ViewPanel.h +0 -82
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +0 -507
- package/Microsoft.ReactNative/Views/ViewViewManager.h +0 -52
- package/Microsoft.ReactNative/Views/VirtualTextViewManager.cpp +0 -143
- package/Microsoft.ReactNative/Views/VirtualTextViewManager.h +0 -57
- package/Microsoft.ReactNative/Views/XamlFeatures.cpp +0 -11
- package/Microsoft.ReactNative/Views/XamlFeatures.h +0 -11
- package/Microsoft.ReactNative/Views/cppwinrt/AccessibilityAction.idl +0 -12
- package/Microsoft.ReactNative/Views/cppwinrt/DynamicAutomationPeer.idl +0 -231
- package/Microsoft.ReactNative/Views/cppwinrt/ViewPanel.idl +0 -48
- package/Microsoft.ReactNative/XamlHelper.cpp +0 -78
- package/Microsoft.ReactNative/XamlHelper.h +0 -54
- package/Microsoft.ReactNative/XamlHelper.idl +0 -30
- package/Microsoft.ReactNative/XamlLoadState.cpp +0 -217
- package/Microsoft.ReactNative/XamlLoadState.h +0 -44
- package/Microsoft.ReactNative/XamlView.cpp +0 -59
- package/Microsoft.ReactNative/XamlView.h +0 -58
- package/Microsoft.ReactNative/getLayoutProps.ps1 +0 -5
- package/Microsoft.ReactNative.Cxx/UI.Xaml.Automation.Peers.h +0 -10
- package/Microsoft.ReactNative.Cxx/UI.Xaml.Automation.h +0 -10
- package/Microsoft.ReactNative.Cxx/UI.Xaml.Controls.Primitives.h +0 -10
- package/Microsoft.ReactNative.Cxx/UI.Xaml.Controls.h +0 -13
- package/Microsoft.ReactNative.Cxx/UI.Xaml.Documents.h +0 -10
- package/Microsoft.ReactNative.Cxx/UI.Xaml.Hosting.DesktopWindowXamlSource.h +0 -11
- package/Microsoft.ReactNative.Cxx/UI.Xaml.Hosting.h +0 -10
- package/Microsoft.ReactNative.Cxx/UI.Xaml.Input.h +0 -10
- package/Microsoft.ReactNative.Cxx/UI.Xaml.Markup.h +0 -10
- package/Microsoft.ReactNative.Cxx/UI.Xaml.Media.Imaging.h +0 -10
- package/Microsoft.ReactNative.Cxx/UI.Xaml.Media.Media3D.h +0 -10
- package/Microsoft.ReactNative.Cxx/UI.Xaml.Media.h +0 -10
- package/Microsoft.ReactNative.Cxx/UI.Xaml.Navigation.h +0 -10
- package/Microsoft.ReactNative.Cxx/UI.Xaml.Shapes.h +0 -10
- package/Microsoft.ReactNative.Managed/AttributedViewManager.cs +0 -527
- package/Microsoft.ReactNative.Managed/ViewManagerAttributes.cs +0 -91
- package/Microsoft.ReactNative.Managed/ViewManagerEvent.cs +0 -13
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityProps.cpp +0 -344
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/DynamicEventPayload.cpp +0 -42
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/YGEnums.h +0 -146
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/algorithm/CalculateLayout.cpp +0 -2435
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/enums/ExperimentalFeature.h +0 -40
- package/Shared/BatchingMessageQueueThread.h +0 -20
- package/Shared/ChakraRuntimeHolder.cpp +0 -62
- package/Shared/ChakraRuntimeHolder.h +0 -46
- package/Shared/CreateInstance.h +0 -25
- package/Shared/Executors/WebSocketJSExecutor.cpp +0 -294
- package/Shared/Executors/WebSocketJSExecutor.h +0 -123
- package/Shared/Executors/WebSocketJSExecutorFactory.cpp +0 -25
- package/Shared/Hermes/HermesSamplingProfiler.cpp +0 -114
- package/Shared/Hermes/HermesSamplingProfiler.h +0 -26
- package/Shared/JSI/ChakraApi.cpp +0 -436
- package/Shared/JSI/ChakraApi.h +0 -474
- package/Shared/JSI/ChakraJsiRuntime_edgemode.cpp +0 -100
- package/Shared/JSI/ChakraRuntime.cpp +0 -1132
- package/Shared/JSI/ChakraRuntime.h +0 -512
- package/Shared/JSI/ChakraRuntimeArgs.h +0 -45
- package/Shared/JSI/ChakraRuntimeFactory.h +0 -15
- package/Shared/JSI/JSExecutorFactoryDelegate.h +0 -12
- package/Shared/JSI/JSExecutorFactorySettings.cpp +0 -30
- package/Shared/JSI/JSExecutorFactorySettings.h +0 -21
- package/Shared/NativeModuleProvider.h +0 -40
- package/Shared/SystemChakraRuntime.h +0 -38
- package/Shared/Threading/BatchingQueueThread.cpp +0 -128
- package/Shared/Threading/BatchingQueueThread.h +0 -59
- package/Shared/WebSocketJSExecutorFactory.h +0 -27
- package/fmt/TEMP_UntilFmtUpdate/core.h +0 -2925
- package/template/cpp-app/proj/MyApp.sln +0 -166
- package/template/cpp-app/proj/MyApp.vcxproj +0 -176
- package/template/cpp-app/proj/MyApp.vcxproj.filters +0 -62
- package/template/cpp-app/src/App.cpp +0 -93
- package/template/cpp-app/src/App.h +0 -21
- package/template/cpp-app/src/App.idl +0 -3
- package/template/cpp-app/src/AutolinkedNativeModules.g.cpp +0 -13
- package/template/cpp-app/src/AutolinkedNativeModules.g.h +0 -10
- package/template/cpp-app/src/MainPage.cpp +0 -20
- package/template/cpp-app/src/MainPage.h +0 -19
- package/template/cpp-app/src/MainPage.idl +0 -10
- package/template/cpp-app/src/PropertySheet.props +0 -16
- package/template/cpp-app/src/ReactPackageProvider.cpp +0 -15
- package/template/cpp-app/src/ReactPackageProvider.h +0 -13
- package/template/cpp-app/src/pch.cpp +0 -1
- package/template/cpp-app/src/pch.h +0 -24
- package/template/cs-app/proj/MyApp.csproj +0 -162
- package/template/cs-app/proj/MyApp.sln +0 -191
- package/template/cs-app/src/App.xaml.cs +0 -62
- package/template/cs-app/src/AutolinkedNativeModules.g.cs +0 -13
- package/template/cs-app/src/MainPage.xaml.cs +0 -34
- package/template/cs-app/src/Properties/AssemblyInfo.cs +0 -29
- package/template/cs-app/src/Properties/Default.rd.xml +0 -32
- package/template/cs-app/src/ReactPackageProvider.cs +0 -17
- package/template/shared-app/assets/LockScreenLogo.scale-200.png +0 -0
- package/template/shared-app/assets/SplashScreen.scale-200.png +0 -0
- package/template/shared-app/assets/Square150x150Logo.scale-200.png +0 -0
- package/template/shared-app/assets/Square44x44Logo.scale-200.png +0 -0
- package/template/shared-app/assets/Square44x44Logo.targetsize-24_altform-unplated.png +0 -0
- package/template/shared-app/assets/StoreLogo.png +0 -0
- package/template/shared-app/assets/Wide310x150Logo.scale-200.png +0 -0
- package/template/shared-app/proj/ExperimentalFeatures.props +0 -32
- package/template/shared-app/proj/NuGet_Config +0 -19
- package/template/shared-app/src/App.xaml +0 -10
- package/template/shared-app/src/AutolinkedNativeModules.g.props +0 -6
- package/template/shared-app/src/AutolinkedNativeModules.g.targets +0 -6
- package/template/shared-app/src/MainPage.xaml +0 -21
- package/template/shared-app/src/Package.appxmanifest +0 -50
- package/templates/old/uwp-cpp-app/template.config.js +0 -15
- package/templates/old/uwp-cs-app/template.config.js +0 -15
|
@@ -4,11 +4,9 @@
|
|
|
4
4
|
#if __has_include("Composition.Experimental.SystemCompositionContextHelper.g.cpp")
|
|
5
5
|
#include "Composition.Experimental.SystemCompositionContextHelper.g.cpp"
|
|
6
6
|
#endif
|
|
7
|
-
#ifdef USE_WINUI3
|
|
8
7
|
#if __has_include("Composition.Experimental.MicrosoftCompositionContextHelper.g.cpp")
|
|
9
8
|
#include "Composition.Experimental.MicrosoftCompositionContextHelper.g.cpp"
|
|
10
9
|
#endif
|
|
11
|
-
#endif
|
|
12
10
|
|
|
13
11
|
namespace winrt::Microsoft::ReactNative::Composition::Experimental::implementation {
|
|
14
12
|
|
|
@@ -43,7 +41,6 @@ winrt::Windows::UI::Composition::ICompositionSurface SystemCompositionContextHel
|
|
|
43
41
|
return nullptr;
|
|
44
42
|
}
|
|
45
43
|
|
|
46
|
-
#ifdef USE_WINUI3
|
|
47
44
|
ICompositionContext MicrosoftCompositionContextHelper::CreateContext(
|
|
48
45
|
winrt::Microsoft::UI::Composition::Compositor const &) noexcept {
|
|
49
46
|
return nullptr;
|
|
@@ -74,6 +71,5 @@ winrt::Microsoft::UI::Composition::ICompositionSurface MicrosoftCompositionConte
|
|
|
74
71
|
IDrawingSurfaceBrush) noexcept {
|
|
75
72
|
return nullptr;
|
|
76
73
|
}
|
|
77
|
-
#endif
|
|
78
74
|
|
|
79
75
|
} // namespace winrt::Microsoft::ReactNative::Composition::Experimental::implementation
|
|
@@ -118,7 +118,6 @@ struct CompositionKeyboardSource
|
|
|
118
118
|
CompositionEventHandler *m_outer{nullptr};
|
|
119
119
|
};
|
|
120
120
|
|
|
121
|
-
#ifdef USE_WINUI3
|
|
122
121
|
struct CompositionInputKeyboardSource : winrt::implements<
|
|
123
122
|
CompositionInputKeyboardSource,
|
|
124
123
|
winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource> {
|
|
@@ -138,7 +137,6 @@ struct CompositionInputKeyboardSource : winrt::implements<
|
|
|
138
137
|
private:
|
|
139
138
|
winrt::Microsoft::UI::Input::InputKeyboardSource m_source{nullptr};
|
|
140
139
|
};
|
|
141
|
-
#endif
|
|
142
140
|
|
|
143
141
|
CompositionEventHandler::CompositionEventHandler(
|
|
144
142
|
const winrt::Microsoft::ReactNative::ReactContext &context,
|
|
@@ -146,7 +144,6 @@ CompositionEventHandler::CompositionEventHandler(
|
|
|
146
144
|
: m_context(context), m_wkRootView(reactNativeIsland) {}
|
|
147
145
|
|
|
148
146
|
void CompositionEventHandler::Initialize() noexcept {
|
|
149
|
-
#ifdef USE_WINUI3
|
|
150
147
|
if (auto island = m_wkRootView.get().Island()) {
|
|
151
148
|
auto pointerSource = winrt::Microsoft::UI::Input::InputPointerSource::GetForIsland(island);
|
|
152
149
|
|
|
@@ -323,12 +320,36 @@ void CompositionEventHandler::Initialize() noexcept {
|
|
|
323
320
|
}
|
|
324
321
|
}
|
|
325
322
|
});
|
|
323
|
+
|
|
324
|
+
m_contextMenuKeyToken =
|
|
325
|
+
keyboardSource.ContextMenuKey([wkThis = weak_from_this()](
|
|
326
|
+
winrt::Microsoft::UI::Input::InputKeyboardSource const & /*source*/,
|
|
327
|
+
winrt::Microsoft::UI::Input::ContextMenuKeyEventArgs const &args) {
|
|
328
|
+
if (auto strongThis = wkThis.lock()) {
|
|
329
|
+
if (auto strongRootView = strongThis->m_wkRootView.get()) {
|
|
330
|
+
if (strongThis->SurfaceId() == -1)
|
|
331
|
+
return;
|
|
332
|
+
|
|
333
|
+
auto focusedComponent = strongThis->RootComponentView().GetFocusedComponent();
|
|
334
|
+
if (focusedComponent) {
|
|
335
|
+
auto tag =
|
|
336
|
+
winrt::get_self<winrt::Microsoft::ReactNative::implementation::ComponentView>(focusedComponent)
|
|
337
|
+
->Tag();
|
|
338
|
+
auto contextMenuArgs = winrt::make<
|
|
339
|
+
winrt::Microsoft::ReactNative::Composition::Input::implementation::ContextMenuKeyEventArgs>(tag);
|
|
340
|
+
winrt::get_self<winrt::Microsoft::ReactNative::implementation::ComponentView>(focusedComponent)
|
|
341
|
+
->OnContextMenuKey(contextMenuArgs);
|
|
342
|
+
if (contextMenuArgs.Handled()) {
|
|
343
|
+
args.Handled(true);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
});
|
|
326
349
|
}
|
|
327
|
-
#endif
|
|
328
350
|
}
|
|
329
351
|
|
|
330
352
|
CompositionEventHandler::~CompositionEventHandler() {
|
|
331
|
-
#ifdef USE_WINUI3
|
|
332
353
|
if (auto strongRootView = m_wkRootView.get()) {
|
|
333
354
|
if (auto island = strongRootView.Island()) {
|
|
334
355
|
auto pointerSource = winrt::Microsoft::UI::Input::InputPointerSource::GetForIsland(island);
|
|
@@ -341,9 +362,9 @@ CompositionEventHandler::~CompositionEventHandler() {
|
|
|
341
362
|
keyboardSource.KeyDown(m_keyDownToken);
|
|
342
363
|
keyboardSource.KeyUp(m_keyUpToken);
|
|
343
364
|
keyboardSource.CharacterReceived(m_characterReceivedToken);
|
|
365
|
+
keyboardSource.ContextMenuKey(m_contextMenuKeyToken);
|
|
344
366
|
}
|
|
345
367
|
}
|
|
346
|
-
#endif
|
|
347
368
|
|
|
348
369
|
if (m_hcursorOwned) {
|
|
349
370
|
::DestroyCursor(m_hcursor);
|
|
@@ -449,6 +470,54 @@ int64_t CompositionEventHandler::SendMessage(HWND hwnd, uint32_t msg, uint64_t w
|
|
|
449
470
|
}
|
|
450
471
|
return 0;
|
|
451
472
|
}
|
|
473
|
+
case WM_RBUTTONDOWN: {
|
|
474
|
+
if (auto strongRootView = m_wkRootView.get()) {
|
|
475
|
+
auto pp = winrt::make<winrt::Microsoft::ReactNative::Composition::Input::implementation::PointerPoint>(
|
|
476
|
+
hwnd, msg, wParam, lParam, strongRootView.ScaleFactor());
|
|
477
|
+
onPointerPressed(pp, GetKeyModifiers(wParam));
|
|
478
|
+
}
|
|
479
|
+
return 0;
|
|
480
|
+
}
|
|
481
|
+
case WM_RBUTTONUP: {
|
|
482
|
+
if (auto strongRootView = m_wkRootView.get()) {
|
|
483
|
+
auto pp = winrt::make<winrt::Microsoft::ReactNative::Composition::Input::implementation::PointerPoint>(
|
|
484
|
+
hwnd, msg, wParam, lParam, strongRootView.ScaleFactor());
|
|
485
|
+
onPointerReleased(pp, GetKeyModifiers(wParam));
|
|
486
|
+
}
|
|
487
|
+
return 0;
|
|
488
|
+
}
|
|
489
|
+
case WM_MBUTTONDOWN: {
|
|
490
|
+
if (auto strongRootView = m_wkRootView.get()) {
|
|
491
|
+
auto pp = winrt::make<winrt::Microsoft::ReactNative::Composition::Input::implementation::PointerPoint>(
|
|
492
|
+
hwnd, msg, wParam, lParam, strongRootView.ScaleFactor());
|
|
493
|
+
onPointerPressed(pp, GetKeyModifiers(wParam));
|
|
494
|
+
}
|
|
495
|
+
return 0;
|
|
496
|
+
}
|
|
497
|
+
case WM_MBUTTONUP: {
|
|
498
|
+
if (auto strongRootView = m_wkRootView.get()) {
|
|
499
|
+
auto pp = winrt::make<winrt::Microsoft::ReactNative::Composition::Input::implementation::PointerPoint>(
|
|
500
|
+
hwnd, msg, wParam, lParam, strongRootView.ScaleFactor());
|
|
501
|
+
onPointerReleased(pp, GetKeyModifiers(wParam));
|
|
502
|
+
}
|
|
503
|
+
return 0;
|
|
504
|
+
}
|
|
505
|
+
case WM_XBUTTONDOWN: {
|
|
506
|
+
if (auto strongRootView = m_wkRootView.get()) {
|
|
507
|
+
auto pp = winrt::make<winrt::Microsoft::ReactNative::Composition::Input::implementation::PointerPoint>(
|
|
508
|
+
hwnd, msg, wParam, lParam, strongRootView.ScaleFactor());
|
|
509
|
+
onPointerPressed(pp, GetKeyModifiers(wParam));
|
|
510
|
+
}
|
|
511
|
+
return 0;
|
|
512
|
+
}
|
|
513
|
+
case WM_XBUTTONUP: {
|
|
514
|
+
if (auto strongRootView = m_wkRootView.get()) {
|
|
515
|
+
auto pp = winrt::make<winrt::Microsoft::ReactNative::Composition::Input::implementation::PointerPoint>(
|
|
516
|
+
hwnd, msg, wParam, lParam, strongRootView.ScaleFactor());
|
|
517
|
+
onPointerReleased(pp, GetKeyModifiers(wParam));
|
|
518
|
+
}
|
|
519
|
+
return 0;
|
|
520
|
+
}
|
|
452
521
|
case WM_POINTERUP: {
|
|
453
522
|
if (auto strongRootView = m_wkRootView.get()) {
|
|
454
523
|
auto pp = winrt::make<winrt::Microsoft::ReactNative::Composition::Input::implementation::PointerPoint>(
|
|
@@ -166,7 +166,6 @@ class CompositionEventHandler : public std::enable_shared_from_this<CompositionE
|
|
|
166
166
|
facebook::react::Cursor m_currentCursor{facebook::react::Cursor::Auto};
|
|
167
167
|
winrt::Microsoft::UI::Input::InputCursor m_inputCursor{nullptr};
|
|
168
168
|
|
|
169
|
-
#ifdef USE_WINUI3
|
|
170
169
|
winrt::event_token m_pointerPressedToken;
|
|
171
170
|
winrt::event_token m_pointerReleasedToken;
|
|
172
171
|
winrt::event_token m_pointerMovedToken;
|
|
@@ -176,7 +175,7 @@ class CompositionEventHandler : public std::enable_shared_from_this<CompositionE
|
|
|
176
175
|
winrt::event_token m_keyDownToken;
|
|
177
176
|
winrt::event_token m_keyUpToken;
|
|
178
177
|
winrt::event_token m_characterReceivedToken;
|
|
179
|
-
|
|
178
|
+
winrt::event_token m_contextMenuKeyToken;
|
|
180
179
|
};
|
|
181
180
|
|
|
182
181
|
} // namespace Microsoft::ReactNative
|
|
@@ -42,7 +42,6 @@ struct IWindowsCompositionDrawingSurfaceInner : public IUnknown {
|
|
|
42
42
|
virtual winrt::Windows::UI::Composition::ICompositionSurface Inner() const noexcept = 0;
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
-
#ifdef USE_WINUI3
|
|
46
45
|
// Windows composition specific interface to extract the inner compositor object
|
|
47
46
|
MSO_STRUCT_GUID(IMicrosoftCompositionCompositor, "B7B3E027-6A87-4946-B397-247AAB8634C6")
|
|
48
47
|
struct IMicrosoftCompositionCompositor : public IUnknown {
|
|
@@ -72,7 +71,6 @@ MSO_STRUCT_GUID(IMicrosoftCompositionDrawingSurfaceInner, "4ADDC62F-51D0-4C71-8B
|
|
|
72
71
|
struct IMicrosoftCompositionDrawingSurfaceInner : public IUnknown {
|
|
73
72
|
virtual winrt::Microsoft::UI::Composition::ICompositionSurface Inner() const noexcept = 0;
|
|
74
73
|
};
|
|
75
|
-
#endif
|
|
76
74
|
|
|
77
75
|
} // namespace Composition
|
|
78
76
|
|
|
@@ -18,10 +18,8 @@
|
|
|
18
18
|
#include "CompositionRootAutomationProvider.h"
|
|
19
19
|
#include "ReactNativeIsland.h"
|
|
20
20
|
|
|
21
|
-
#if USE_WINUI3
|
|
22
21
|
#include <winrt/Microsoft.UI.Content.h>
|
|
23
22
|
#include <winrt/Microsoft.UI.interop.h>
|
|
24
|
-
#endif
|
|
25
23
|
|
|
26
24
|
WINUSERAPI UINT WINAPI GetDpiForWindow(_In_ HWND hwnd);
|
|
27
25
|
|
|
@@ -35,7 +33,6 @@ void CompositionHwndHost::Initialize(uint64_t hwnd) noexcept {
|
|
|
35
33
|
auto compositionContext =
|
|
36
34
|
winrt::Microsoft::ReactNative::Composition::implementation::CompositionUIService::GetCompositionContext(
|
|
37
35
|
ReactViewHost().ReactNativeHost().InstanceSettings().Properties());
|
|
38
|
-
#if USE_WINUI3
|
|
39
36
|
if (auto liftedCompositor =
|
|
40
37
|
winrt::Microsoft::ReactNative::Composition::Experimental::MicrosoftCompositionContextHelper::InnerCompositor(
|
|
41
38
|
compositionContext)) {
|
|
@@ -56,7 +53,6 @@ void CompositionHwndHost::Initialize(uint64_t hwnd) noexcept {
|
|
|
56
53
|
m_compRootView.as<winrt::Microsoft::ReactNative::Composition::Experimental::IInternalCompositionRootView>()
|
|
57
54
|
.SetWindow(reinterpret_cast<uint64_t>(m_hwnd));
|
|
58
55
|
|
|
59
|
-
#endif
|
|
60
56
|
auto compositor =
|
|
61
57
|
winrt::Microsoft::ReactNative::Composition::Experimental::SystemCompositionContextHelper::InnerCompositor(
|
|
62
58
|
compositionContext);
|
|
@@ -77,10 +73,7 @@ void CompositionHwndHost::Initialize(uint64_t hwnd) noexcept {
|
|
|
77
73
|
.InternalRootVisual(
|
|
78
74
|
winrt::Microsoft::ReactNative::Composition::Experimental::SystemCompositionContextHelper::CreateVisual(
|
|
79
75
|
target.Root()));
|
|
80
|
-
|
|
81
|
-
#if USE_WINUI3
|
|
82
76
|
}
|
|
83
|
-
#endif
|
|
84
77
|
|
|
85
78
|
m_compRootView.ReactViewHost(std::move(m_reactViewHost));
|
|
86
79
|
m_compRootView.ScaleFactor(ScaleFactor());
|
|
@@ -122,9 +115,7 @@ LRESULT CompositionHwndHost::TranslateMessage(int msg, uint64_t wParam, int64_t
|
|
|
122
115
|
}
|
|
123
116
|
|
|
124
117
|
if (m_compRootView) {
|
|
125
|
-
#if USE_WINUI3
|
|
126
118
|
if (!m_compRootView.Island()) // When using Island hosting we dont need to forward window messages
|
|
127
|
-
#endif
|
|
128
119
|
return static_cast<LRESULT>(
|
|
129
120
|
m_compRootView.as<winrt::Microsoft::ReactNative::Composition::Experimental::IInternalCompositionRootView>()
|
|
130
121
|
.SendMessage(msg, wParam, lParam));
|
|
@@ -3,10 +3,8 @@
|
|
|
3
3
|
#include <algorithm>
|
|
4
4
|
#include "UiaHelpers.h"
|
|
5
5
|
|
|
6
|
-
#ifdef USE_WINUI3
|
|
7
6
|
#include <winrt/Microsoft.UI.Content.h>
|
|
8
7
|
#include <winrt/Microsoft.UI.Input.h>
|
|
9
|
-
#endif
|
|
10
8
|
|
|
11
9
|
#include <Fabric/Composition/ReactNativeIsland.h>
|
|
12
10
|
|
|
@@ -59,7 +57,6 @@ HRESULT __stdcall CompositionRootAutomationProvider::GetEmbeddedFragmentRoots(SA
|
|
|
59
57
|
}
|
|
60
58
|
|
|
61
59
|
HRESULT __stdcall CompositionRootAutomationProvider::SetFocus(void) {
|
|
62
|
-
#ifdef USE_WINUI3
|
|
63
60
|
if (m_island) {
|
|
64
61
|
auto focusController = winrt::Microsoft::UI::Input::InputFocusController::GetForIsland(m_island);
|
|
65
62
|
|
|
@@ -69,7 +66,6 @@ HRESULT __stdcall CompositionRootAutomationProvider::SetFocus(void) {
|
|
|
69
66
|
}
|
|
70
67
|
}
|
|
71
68
|
}
|
|
72
|
-
#endif
|
|
73
69
|
|
|
74
70
|
if (m_hwnd) {
|
|
75
71
|
::SetFocus(m_hwnd);
|
|
@@ -107,13 +103,11 @@ HRESULT __stdcall CompositionRootAutomationProvider::get_HostRawElementProvider(
|
|
|
107
103
|
if (pRetVal == nullptr)
|
|
108
104
|
return E_POINTER;
|
|
109
105
|
|
|
110
|
-
#ifdef USE_WINUI3
|
|
111
106
|
if (m_island) {
|
|
112
107
|
winrt::Windows::Foundation::IInspectable host = m_island.GetAutomationHostProvider();
|
|
113
108
|
*pRetVal = host.as<IRawElementProviderSimple>().detach();
|
|
114
109
|
return S_OK;
|
|
115
110
|
}
|
|
116
|
-
#endif
|
|
117
111
|
|
|
118
112
|
// TODO: assumes windowed
|
|
119
113
|
if (!IsWindow(m_hwnd)) {
|
|
@@ -130,7 +124,6 @@ HRESULT __stdcall CompositionRootAutomationProvider::get_BoundingRectangle(UiaRe
|
|
|
130
124
|
if (pRetVal == nullptr)
|
|
131
125
|
return E_POINTER;
|
|
132
126
|
|
|
133
|
-
#ifdef USE_WINUI3
|
|
134
127
|
if (m_island) {
|
|
135
128
|
auto cc = m_island.CoordinateConverter();
|
|
136
129
|
auto origin = cc.ConvertLocalToScreen(winrt::Windows::Foundation::Point{0, 0});
|
|
@@ -143,7 +136,6 @@ HRESULT __stdcall CompositionRootAutomationProvider::get_BoundingRectangle(UiaRe
|
|
|
143
136
|
|
|
144
137
|
return S_OK;
|
|
145
138
|
}
|
|
146
|
-
#endif
|
|
147
139
|
|
|
148
140
|
// TODO: Need host site offsets
|
|
149
141
|
// Assume we're hosted in some other visual-based hosting site
|
|
@@ -265,11 +257,9 @@ void CompositionRootAutomationProvider::SetHwnd(HWND hwnd) noexcept {
|
|
|
265
257
|
m_hwnd = hwnd;
|
|
266
258
|
}
|
|
267
259
|
|
|
268
|
-
#ifdef USE_WINUI3
|
|
269
260
|
void CompositionRootAutomationProvider::SetIsland(winrt::Microsoft::UI::Content::ContentIsland &island) noexcept {
|
|
270
261
|
m_island = island;
|
|
271
262
|
}
|
|
272
|
-
#endif
|
|
273
263
|
|
|
274
264
|
HRESULT __stdcall CompositionRootAutomationProvider::Navigate(
|
|
275
265
|
NavigateDirection direction,
|
|
@@ -42,9 +42,7 @@ class CompositionRootAutomationProvider : public winrt::implements<
|
|
|
42
42
|
CompositionRootAutomationProvider(const winrt::Microsoft::ReactNative::ReactNativeIsland &rootView) noexcept;
|
|
43
43
|
|
|
44
44
|
void SetHwnd(HWND hwnd) noexcept;
|
|
45
|
-
#ifdef USE_WINUI3
|
|
46
45
|
void SetIsland(winrt::Microsoft::UI::Content::ContentIsland &island) noexcept;
|
|
47
|
-
#endif
|
|
48
46
|
bool WasPropertyAdvised(PROPERTYID prop) noexcept;
|
|
49
47
|
bool WasEventAdvised(EVENTID event) noexcept;
|
|
50
48
|
|
|
@@ -75,9 +73,7 @@ class CompositionRootAutomationProvider : public winrt::implements<
|
|
|
75
73
|
std::vector<AdvisedEvent> m_advisedProperties{};
|
|
76
74
|
winrt::weak_ref<winrt::Microsoft::ReactNative::ReactNativeIsland> m_wkRootView;
|
|
77
75
|
HWND m_hwnd{nullptr};
|
|
78
|
-
#ifdef USE_WINUI3
|
|
79
76
|
winrt::Microsoft::UI::Content::ContentIsland m_island{nullptr};
|
|
80
|
-
#endif
|
|
81
77
|
};
|
|
82
78
|
|
|
83
79
|
} // namespace winrt::Microsoft::ReactNative::implementation
|
|
@@ -11,10 +11,8 @@
|
|
|
11
11
|
#include <Fabric/AbiViewProps.h>
|
|
12
12
|
#include <Fabric/Composition/ReactNativeIsland.h>
|
|
13
13
|
#include <Fabric/FabricUIManagerModule.h>
|
|
14
|
-
#include <UI.Xaml.Controls.h>
|
|
15
14
|
#include <Utils/KeyboardUtils.h>
|
|
16
15
|
#include <Utils/ValueUtils.h>
|
|
17
|
-
#include <Views/FrameworkElementTransferProperties.h>
|
|
18
16
|
#include <atlcomcli.h>
|
|
19
17
|
#include <winrt/Microsoft.ReactNative.Composition.Experimental.h>
|
|
20
18
|
#include <winrt/Microsoft.UI.Input.h>
|
|
@@ -527,10 +525,10 @@ facebook::react::RectangleEdges<bool> ComponentView::focusNudges() const noexcep
|
|
|
527
525
|
|
|
528
526
|
Assert(m_componentHostingFocusVisual);
|
|
529
527
|
|
|
530
|
-
if (layoutMetrics.frame.origin.x <
|
|
528
|
+
if (layoutMetrics.frame.origin.x < m_componentHostingFocusVisual->m_layoutMetrics.frame.origin.x) {
|
|
531
529
|
nudgeEdges.left = true;
|
|
532
530
|
}
|
|
533
|
-
if (layoutMetrics.frame.origin.y <
|
|
531
|
+
if (layoutMetrics.frame.origin.y < m_componentHostingFocusVisual->m_layoutMetrics.frame.origin.y) {
|
|
534
532
|
nudgeEdges.top = true;
|
|
535
533
|
}
|
|
536
534
|
if (layoutMetrics.frame.getMaxX() > m_componentHostingFocusVisual->m_layoutMetrics.frame.getMaxX()) {
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
|
|
9
9
|
#include <Fabric/FabricUIManagerModule.h>
|
|
10
10
|
#include <IReactContext.h>
|
|
11
|
-
#include <UI.Xaml.Controls.h>
|
|
12
11
|
#include <Utils/ValueUtils.h>
|
|
13
12
|
#include <winrt/Microsoft.UI.Content.h>
|
|
14
13
|
#include <winrt/Microsoft.UI.Input.h>
|
|
@@ -172,24 +171,6 @@ ContentIslandComponentView::~ContentIslandComponentView() noexcept {
|
|
|
172
171
|
m_navigationHost.DepartFocusRequested(m_navigationHostDepartFocusRequestedToken);
|
|
173
172
|
m_navigationHostDepartFocusRequestedToken = {};
|
|
174
173
|
}
|
|
175
|
-
if (m_childSiteLink) {
|
|
176
|
-
if (m_fragmentRootAutomationProviderRequestedToken) {
|
|
177
|
-
m_childSiteLink.FragmentRootAutomationProviderRequested(m_fragmentRootAutomationProviderRequestedToken);
|
|
178
|
-
m_fragmentRootAutomationProviderRequestedToken = {};
|
|
179
|
-
}
|
|
180
|
-
if (m_parentAutomationProviderRequestedToken) {
|
|
181
|
-
m_childSiteLink.ParentAutomationProviderRequested(m_parentAutomationProviderRequestedToken);
|
|
182
|
-
m_parentAutomationProviderRequestedToken = {};
|
|
183
|
-
}
|
|
184
|
-
if (m_nextSiblingAutomationProviderRequestedToken) {
|
|
185
|
-
m_childSiteLink.NextSiblingAutomationProviderRequested(m_nextSiblingAutomationProviderRequestedToken);
|
|
186
|
-
m_nextSiblingAutomationProviderRequestedToken = {};
|
|
187
|
-
}
|
|
188
|
-
if (m_previousSiblingAutomationProviderRequestedToken) {
|
|
189
|
-
m_childSiteLink.PreviousSiblingAutomationProviderRequested(m_previousSiblingAutomationProviderRequestedToken);
|
|
190
|
-
m_previousSiblingAutomationProviderRequestedToken = {};
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
174
|
if (m_islandToConnect) {
|
|
194
175
|
m_islandToConnect.Close();
|
|
195
176
|
}
|
|
@@ -231,56 +212,13 @@ void ContentIslandComponentView::prepareForRecycle() noexcept {
|
|
|
231
212
|
}
|
|
232
213
|
|
|
233
214
|
void ContentIslandComponentView::ConfigureChildSiteLinkAutomation() noexcept {
|
|
234
|
-
//
|
|
235
|
-
//
|
|
236
|
-
//
|
|
237
|
-
m_childSiteLink.AutomationOption(winrt::Microsoft::UI::Content::ContentAutomationOptions::
|
|
238
|
-
|
|
239
|
-
// These events are raised in response to the child ContentIsland asking for providers.
|
|
240
|
-
// For example, the ContentIsland.FragmentRootAutomationProvider property will return
|
|
241
|
-
// the provider we provide here in FragmentRootAutomationProviderRequested.
|
|
242
|
-
|
|
243
|
-
// We capture "this" as a raw pointer because ContentIslandComponentView doesn't currently support weak ptrs.
|
|
244
|
-
// It's safe because we disconnect these events in the destructor.
|
|
245
|
-
|
|
246
|
-
m_fragmentRootAutomationProviderRequestedToken = m_childSiteLink.FragmentRootAutomationProviderRequested(
|
|
247
|
-
[this](
|
|
248
|
-
const winrt::Microsoft::UI::Content::IContentSiteAutomation &,
|
|
249
|
-
const winrt::Microsoft::UI::Content::ContentSiteAutomationProviderRequestedEventArgs &args) {
|
|
250
|
-
// The child island's fragment tree doesn't have its own fragment root.
|
|
251
|
-
// Here's how we can provide the correct fragment root to the child's UIA logic.
|
|
252
|
-
winrt::com_ptr<IRawElementProviderFragmentRoot> fragmentRoot{nullptr};
|
|
253
|
-
auto uiaProvider = this->EnsureUiaProvider();
|
|
254
|
-
uiaProvider.as<IRawElementProviderFragment>()->get_FragmentRoot(fragmentRoot.put());
|
|
255
|
-
args.AutomationProvider(fragmentRoot.as<IInspectable>());
|
|
256
|
-
args.Handled(true);
|
|
257
|
-
});
|
|
258
|
-
|
|
259
|
-
m_parentAutomationProviderRequestedToken = m_childSiteLink.ParentAutomationProviderRequested(
|
|
260
|
-
[this](
|
|
261
|
-
const winrt::Microsoft::UI::Content::IContentSiteAutomation &,
|
|
262
|
-
const winrt::Microsoft::UI::Content::ContentSiteAutomationProviderRequestedEventArgs &args) {
|
|
263
|
-
auto uiaProvider = this->EnsureUiaProvider();
|
|
264
|
-
args.AutomationProvider(uiaProvider);
|
|
265
|
-
args.Handled(true);
|
|
266
|
-
});
|
|
267
|
-
|
|
268
|
-
m_nextSiblingAutomationProviderRequestedToken = m_childSiteLink.NextSiblingAutomationProviderRequested(
|
|
269
|
-
[](const winrt::Microsoft::UI::Content::IContentSiteAutomation &,
|
|
270
|
-
const winrt::Microsoft::UI::Content::ContentSiteAutomationProviderRequestedEventArgs &args) {
|
|
271
|
-
// The ContentIsland will always be the one and only child of this node, so it won't have siblings.
|
|
272
|
-
args.AutomationProvider(nullptr);
|
|
273
|
-
args.Handled(true);
|
|
274
|
-
});
|
|
275
|
-
|
|
276
|
-
m_previousSiblingAutomationProviderRequestedToken = m_childSiteLink.PreviousSiblingAutomationProviderRequested(
|
|
277
|
-
[](const winrt::Microsoft::UI::Content::IContentSiteAutomation &,
|
|
278
|
-
const winrt::Microsoft::UI::Content::ContentSiteAutomationProviderRequestedEventArgs &args) {
|
|
279
|
-
// The ContentIsland will always be the one and only child of this node, so it won't have siblings.
|
|
280
|
-
args.AutomationProvider(nullptr);
|
|
281
|
-
args.Handled(true);
|
|
282
|
-
});
|
|
215
|
+
// Use FrameworkBased to let the XamlIsland manage its own framework-level accessibility tree
|
|
216
|
+
// and raise focus events naturally. This tells the system that the child island has its own
|
|
217
|
+
// framework (WinUI/XAML) that manages automation.
|
|
218
|
+
m_childSiteLink.AutomationOption(winrt::Microsoft::UI::Content::ContentAutomationOptions::FrameworkBased);
|
|
283
219
|
|
|
220
|
+
// When using FrameworkBased mode, we don't register automation callbacks - let the XamlIsland handle its own UIA
|
|
221
|
+
// tree.
|
|
284
222
|
if (m_innerAutomationProvider) {
|
|
285
223
|
m_innerAutomationProvider->SetChildSiteLink(m_childSiteLink);
|
|
286
224
|
}
|
|
@@ -70,10 +70,6 @@ struct ContentIslandComponentView : ContentIslandComponentViewT<ContentIslandCom
|
|
|
70
70
|
|
|
71
71
|
// Automation
|
|
72
72
|
void ConfigureChildSiteLinkAutomation() noexcept;
|
|
73
|
-
winrt::event_token m_fragmentRootAutomationProviderRequestedToken{};
|
|
74
|
-
winrt::event_token m_parentAutomationProviderRequestedToken{};
|
|
75
|
-
winrt::event_token m_nextSiblingAutomationProviderRequestedToken{};
|
|
76
|
-
winrt::event_token m_previousSiblingAutomationProviderRequestedToken{};
|
|
77
73
|
};
|
|
78
74
|
|
|
79
75
|
} // namespace winrt::Microsoft::ReactNative::Composition::implementation
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
#include <Fabric/ComponentView.h>
|
|
8
8
|
|
|
9
9
|
#include <Microsoft.ReactNative.Cxx/ReactContext.h>
|
|
10
|
-
#include <Views/Image/ReactImage.h>
|
|
11
10
|
#include <react/renderer/components/image/ImageShadowNode.h>
|
|
12
11
|
#include <react/renderer/imagemanager/ImageResponseObserver.h>
|
|
13
12
|
#include <wincodec.h>
|
|
@@ -107,6 +107,10 @@ void ParagraphComponentView::updateProps(
|
|
|
107
107
|
m_requireRedraw = true;
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
+
if (oldViewProps.selectionColor != newViewProps.selectionColor) {
|
|
111
|
+
m_requireRedraw = true;
|
|
112
|
+
}
|
|
113
|
+
|
|
110
114
|
Super::updateProps(props, oldProps);
|
|
111
115
|
}
|
|
112
116
|
|
|
@@ -167,6 +171,26 @@ void ParagraphComponentView::updateTextAlignment(
|
|
|
167
171
|
m_textLayout = nullptr;
|
|
168
172
|
}
|
|
169
173
|
|
|
174
|
+
facebook::react::Tag ParagraphComponentView::hitTest(
|
|
175
|
+
facebook::react::Point pt,
|
|
176
|
+
facebook::react::Point &localPt,
|
|
177
|
+
bool ignorePointerEvents) const noexcept {
|
|
178
|
+
facebook::react::Point ptLocal{pt.x - m_layoutMetrics.frame.origin.x, pt.y - m_layoutMetrics.frame.origin.y};
|
|
179
|
+
const auto &props = paragraphProps();
|
|
180
|
+
const auto &vProps = *viewProps();
|
|
181
|
+
|
|
182
|
+
if (props.isSelectable && ptLocal.x >= 0 && ptLocal.x <= m_layoutMetrics.frame.size.width && ptLocal.y >= 0 &&
|
|
183
|
+
ptLocal.y <= m_layoutMetrics.frame.size.height) {
|
|
184
|
+
// claims if pointer events are enabled for this component
|
|
185
|
+
if (ignorePointerEvents || vProps.pointerEvents == facebook::react::PointerEventsMode::Auto ||
|
|
186
|
+
vProps.pointerEvents == facebook::react::PointerEventsMode::BoxOnly) {
|
|
187
|
+
localPt = ptLocal;
|
|
188
|
+
return Tag();
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return Super::hitTest(pt, localPt, ignorePointerEvents);
|
|
192
|
+
}
|
|
193
|
+
|
|
170
194
|
bool ParagraphComponentView::IsTextSelectableAtPoint(facebook::react::Point pt) noexcept {
|
|
171
195
|
// paragraph-level selectable prop is enabled
|
|
172
196
|
const auto &props = paragraphProps();
|
|
@@ -454,9 +478,14 @@ void ParagraphComponentView::DrawSelectionHighlight(
|
|
|
454
478
|
return;
|
|
455
479
|
}
|
|
456
480
|
|
|
457
|
-
// TODO: use prop selectionColor if provided
|
|
458
481
|
winrt::com_ptr<ID2D1SolidColorBrush> selectionBrush;
|
|
459
|
-
|
|
482
|
+
D2D1_COLOR_F selectionColor;
|
|
483
|
+
const auto &props = paragraphProps();
|
|
484
|
+
if (props.selectionColor) {
|
|
485
|
+
selectionColor = theme()->D2DColor(**props.selectionColor);
|
|
486
|
+
} else {
|
|
487
|
+
selectionColor = theme()->D2DPlatformColor("Highlight@40");
|
|
488
|
+
}
|
|
460
489
|
hr = renderTarget.CreateSolidColorBrush(selectionColor, selectionBrush.put());
|
|
461
490
|
|
|
462
491
|
if (FAILED(hr)) {
|
|
@@ -519,6 +548,7 @@ void ParagraphComponentView::ClearSelection() noexcept {
|
|
|
519
548
|
m_selectionStart = std::nullopt;
|
|
520
549
|
m_selectionEnd = std::nullopt;
|
|
521
550
|
m_isSelecting = false;
|
|
551
|
+
m_isWordSelecting = false;
|
|
522
552
|
if (hadSelection) {
|
|
523
553
|
// Clears selection highlight
|
|
524
554
|
DrawText();
|
|
@@ -534,7 +564,8 @@ void ParagraphComponentView::OnPointerPressed(
|
|
|
534
564
|
return;
|
|
535
565
|
}
|
|
536
566
|
|
|
537
|
-
|
|
567
|
+
// Use Tag() to get coordinates in component's local space
|
|
568
|
+
auto pp = args.GetCurrentPoint(static_cast<int32_t>(Tag()));
|
|
538
569
|
|
|
539
570
|
// Ignores right-click
|
|
540
571
|
if (pp.Properties().PointerUpdateKind() ==
|
|
@@ -545,8 +576,8 @@ void ParagraphComponentView::OnPointerPressed(
|
|
|
545
576
|
|
|
546
577
|
auto position = pp.Position();
|
|
547
578
|
|
|
548
|
-
|
|
549
|
-
|
|
579
|
+
// GetCurrentPoint(Tag()) returns position relative to component origin
|
|
580
|
+
facebook::react::Point localPt{position.X, position.Y};
|
|
550
581
|
|
|
551
582
|
std::optional<int32_t> charPosition = GetTextPositionAtPoint(localPt);
|
|
552
583
|
|
|
@@ -568,7 +599,13 @@ void ParagraphComponentView::OnPointerPressed(
|
|
|
568
599
|
|
|
569
600
|
if (isDoubleClick) {
|
|
570
601
|
SelectWordAtPosition(*charPosition);
|
|
571
|
-
|
|
602
|
+
if (m_selectionStart && m_selectionEnd) {
|
|
603
|
+
m_isWordSelecting = true;
|
|
604
|
+
m_wordAnchorStart = *m_selectionStart;
|
|
605
|
+
m_wordAnchorEnd = *m_selectionEnd;
|
|
606
|
+
m_isSelecting = true;
|
|
607
|
+
CapturePointer(args.Pointer());
|
|
608
|
+
}
|
|
572
609
|
} else {
|
|
573
610
|
// Single-click: start drag selection
|
|
574
611
|
m_selectionStart = charPosition;
|
|
@@ -610,17 +647,35 @@ void ParagraphComponentView::OnPointerMoved(
|
|
|
610
647
|
facebook::react::Point localPt{position.X, position.Y};
|
|
611
648
|
std::optional<int32_t> charPosition = GetClampedTextPosition(localPt);
|
|
612
649
|
|
|
613
|
-
if (charPosition
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
650
|
+
if (charPosition) {
|
|
651
|
+
if (m_isWordSelecting) {
|
|
652
|
+
// Extend selection by whole words
|
|
653
|
+
auto [wordStart, wordEnd] = GetWordBoundariesAtPosition(*charPosition);
|
|
654
|
+
|
|
655
|
+
if (*charPosition < m_wordAnchorStart) {
|
|
656
|
+
m_selectionStart = wordStart;
|
|
657
|
+
m_selectionEnd = m_wordAnchorEnd;
|
|
658
|
+
} else if (*charPosition >= m_wordAnchorEnd) {
|
|
659
|
+
m_selectionStart = m_wordAnchorStart;
|
|
660
|
+
m_selectionEnd = wordEnd;
|
|
661
|
+
} else {
|
|
662
|
+
m_selectionStart = m_wordAnchorStart;
|
|
663
|
+
m_selectionEnd = m_wordAnchorEnd;
|
|
664
|
+
}
|
|
665
|
+
DrawText();
|
|
666
|
+
args.Handled(true);
|
|
667
|
+
} else if (charPosition != m_selectionEnd) {
|
|
668
|
+
m_selectionEnd = charPosition;
|
|
669
|
+
DrawText();
|
|
670
|
+
args.Handled(true);
|
|
671
|
+
}
|
|
617
672
|
}
|
|
618
673
|
}
|
|
619
674
|
|
|
620
675
|
void ParagraphComponentView::OnPointerReleased(
|
|
621
676
|
const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
|
|
622
677
|
// Check for right-click to show context menu
|
|
623
|
-
auto pp = args.GetCurrentPoint(
|
|
678
|
+
auto pp = args.GetCurrentPoint(static_cast<int32_t>(Tag()));
|
|
624
679
|
if (pp.Properties().PointerUpdateKind() ==
|
|
625
680
|
winrt::Microsoft::ReactNative::Composition::Input::PointerUpdateKind::RightButtonReleased) {
|
|
626
681
|
const auto &props = paragraphProps();
|
|
@@ -637,6 +692,7 @@ void ParagraphComponentView::OnPointerReleased(
|
|
|
637
692
|
}
|
|
638
693
|
|
|
639
694
|
m_isSelecting = false;
|
|
695
|
+
m_isWordSelecting = false;
|
|
640
696
|
|
|
641
697
|
ReleasePointerCapture(args.Pointer());
|
|
642
698
|
|
|
@@ -661,6 +717,7 @@ void ParagraphComponentView::OnPointerCaptureLost() noexcept {
|
|
|
661
717
|
// Pointer capture was lost stop any active selection drag
|
|
662
718
|
if (m_isSelecting) {
|
|
663
719
|
m_isSelecting = false;
|
|
720
|
+
m_isWordSelecting = false;
|
|
664
721
|
|
|
665
722
|
if (!m_selectionStart || !m_selectionEnd || *m_selectionStart == *m_selectionEnd) {
|
|
666
723
|
m_selectionStart = std::nullopt;
|
|
@@ -711,12 +768,17 @@ void ParagraphComponentView::CopySelectionToClipboard() noexcept {
|
|
|
711
768
|
winrt::Windows::ApplicationModel::DataTransfer::Clipboard::SetContent(dataPackage);
|
|
712
769
|
}
|
|
713
770
|
|
|
714
|
-
|
|
771
|
+
std::pair<int32_t, int32_t> ParagraphComponentView::GetWordBoundariesAtPosition(int32_t charPosition) noexcept {
|
|
715
772
|
const std::wstring utf16Text{facebook::react::WindowsTextLayoutManager::GetTransformedText(m_attributedStringBox)};
|
|
716
773
|
const int32_t textLength = static_cast<int32_t>(utf16Text.length());
|
|
717
774
|
|
|
718
|
-
if (utf16Text.empty() || charPosition < 0
|
|
719
|
-
return;
|
|
775
|
+
if (utf16Text.empty() || charPosition < 0) {
|
|
776
|
+
return {0, 0};
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
charPosition = std::min(charPosition, textLength - 1);
|
|
780
|
+
if (charPosition < 0) {
|
|
781
|
+
return {0, 0};
|
|
720
782
|
}
|
|
721
783
|
|
|
722
784
|
int32_t wordStart = charPosition;
|
|
@@ -749,6 +811,12 @@ void ParagraphComponentView::SelectWordAtPosition(int32_t charPosition) noexcept
|
|
|
749
811
|
}
|
|
750
812
|
}
|
|
751
813
|
|
|
814
|
+
return {wordStart, wordEnd};
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
void ParagraphComponentView::SelectWordAtPosition(int32_t charPosition) noexcept {
|
|
818
|
+
auto [wordStart, wordEnd] = GetWordBoundariesAtPosition(charPosition);
|
|
819
|
+
|
|
752
820
|
if (wordEnd > wordStart) {
|
|
753
821
|
SetSelection(wordStart, wordEnd);
|
|
754
822
|
DrawText();
|