react-native-windows 0.81.1 → 0.82.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 +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 -18
- package/Libraries/AppState/AppState.js +8 -4
- package/Libraries/BatchedBridge/MessageQueue.js +4 -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.d.ts +8 -0
- package/Libraries/Components/Pressable/Pressable.js +10 -1
- package/Libraries/Components/Pressable/Pressable.windows.js +30 -2
- 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 +2 -2
- package/Libraries/Components/Switch/Switch.windows.js +2 -2
- 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 +3 -1
- package/Libraries/Core/Timers/immediateShim.js +1 -1
- package/Libraries/Core/Timers/queueMicrotask.js +1 -0
- package/Libraries/Core/setUpPerformance.js +2 -1
- 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 +1 -1
- 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/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 +26 -0
- package/Microsoft.ReactNative/Fabric/ComponentView.h +2 -0
- package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.cpp +0 -1
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +0 -69
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +1 -15
- package/Microsoft.ReactNative/Fabric/Composition/CompositionAnnotationProvider.cpp +2 -5
- package/Microsoft.ReactNative/Fabric/Composition/CompositionAnnotationProvider.h +1 -4
- 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/CompositionDynamicAutomationProvider.cpp +65 -32
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +9 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +8 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +0 -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 +2 -11
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +0 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionTextProvider.cpp +4 -7
- package/Microsoft.ReactNative/Fabric/Composition/CompositionTextProvider.h +1 -5
- package/Microsoft.ReactNative/Fabric/Composition/CompositionTextRangeProvider.cpp +68 -53
- package/Microsoft.ReactNative/Fabric/Composition/CompositionTextRangeProvider.h +1 -5
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +20 -18
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +10 -3
- package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.cpp +30 -9
- package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.h +4 -1
- package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +3 -2
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +0 -2
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +0 -1
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +550 -4
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +52 -0
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +16 -0
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +6 -0
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +0 -6
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +0 -2
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +53 -2
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +8 -1
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +0 -2
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +0 -1
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +5 -2
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +4 -1
- package/Microsoft.ReactNative/Fabric/Composition/Theme.cpp +6 -30
- package/Microsoft.ReactNative/Fabric/Composition/Theme.h +1 -3
- package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +36 -14
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +0 -1
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +0 -1
- package/Microsoft.ReactNative/Fabric/ImageManager.cpp +0 -4
- package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +1 -1
- 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/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.h +2 -1
- 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 +10 -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 +6 -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 +11 -48
- 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/IcuUtils.cpp +84 -0
- package/Microsoft.ReactNative/Utils/IcuUtils.h +42 -0
- 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 +32 -4
- package/Microsoft.ReactNative.Cxx/ReactContext.h +0 -13
- package/Microsoft.ReactNative.Cxx/StructInfo.h +8 -1
- 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/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/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/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 +8 -67
- 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 +47 -35
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +177 -129
- package/codegen/react/components/rnwcore/ActivityIndicatorView.g.h +14 -0
- package/codegen/react/components/rnwcore/AndroidDrawerLayout.g.h +14 -0
- package/codegen/react/components/rnwcore/AndroidHorizontalScrollContentView.g.h +14 -0
- package/codegen/react/components/rnwcore/AndroidProgressBar.g.h +14 -0
- package/codegen/react/components/rnwcore/AndroidSwipeRefreshLayout.g.h +14 -0
- package/codegen/react/components/rnwcore/AndroidSwitch.g.h +14 -0
- package/codegen/react/components/rnwcore/DebuggingOverlay.g.h +14 -0
- package/codegen/react/components/rnwcore/EventEmitters.cpp +25 -0
- package/codegen/react/components/rnwcore/EventEmitters.h +25 -0
- package/codegen/react/components/rnwcore/InputAccessory.g.h +14 -0
- package/codegen/react/components/rnwcore/ModalHostView.g.h +14 -0
- package/codegen/react/components/rnwcore/Props.cpp +41 -2
- package/codegen/react/components/rnwcore/Props.h +51 -2
- package/codegen/react/components/rnwcore/PullToRefreshView.g.h +14 -0
- package/codegen/react/components/rnwcore/SafeAreaView.g.h +14 -0
- package/codegen/react/components/rnwcore/Switch.g.h +14 -0
- package/codegen/react/components/rnwcore/UnimplementedNativeView.g.h +14 -0
- package/codegen/react/components/rnwcore/VirtualView.g.h +18 -0
- package/codegen/react/components/rnwcore/VirtualViewExperimental.g.h +240 -0
- package/codegen/rnwcoreJSI-generated.cpp +106 -51
- package/codegen/rnwcoreJSI.h +148 -67
- package/fmt/cgmanifest.json +1 -1
- package/fmt/fmt.vcxproj +0 -8
- package/index.js +8 -2
- package/index.windows.js +8 -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 -32
- 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 +80 -52
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +23 -4
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -6
- package/src/private/renderer/errorhandling/ErrorHandlers.js +3 -3
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +0 -1
- 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 +6 -10
- package/src/private/webapis/performance/Performance.js +309 -164
- package/src/private/webapis/performance/PerformanceEntry.js +20 -16
- package/src/private/webapis/performance/PerformanceObserver.js +8 -29
- package/src/private/webapis/performance/UserTiming.js +71 -18
- package/src/private/webapis/performance/UserTimingExtensibility.js.flow +38 -0
- package/src/private/webapis/performance/internals/Utilities.js +9 -0
- package/src/private/webapis/performance/specs/NativePerformance.js +21 -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
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
|
-
|
|
4
|
-
#include "pch.h"
|
|
5
|
-
#include "SwitchViewManager.h"
|
|
6
|
-
#include <IReactInstance.h>
|
|
7
|
-
#include <JSValueWriter.h>
|
|
8
|
-
#include <UI.Xaml.Controls.h>
|
|
9
|
-
#include <UI.Xaml.Shapes.h>
|
|
10
|
-
#include <Utils/ResourceBrushUtils.h>
|
|
11
|
-
#include <Utils/ValueUtils.h>
|
|
12
|
-
#include <Views/ShadowNodeBase.h>
|
|
13
|
-
using namespace Microsoft::ReactNative;
|
|
14
|
-
|
|
15
|
-
namespace winrt {
|
|
16
|
-
using namespace xaml;
|
|
17
|
-
using namespace xaml::Controls;
|
|
18
|
-
using namespace xaml::Shapes;
|
|
19
|
-
} // namespace winrt
|
|
20
|
-
|
|
21
|
-
namespace Microsoft::ReactNative {
|
|
22
|
-
|
|
23
|
-
class SwitchShadowNode : public ShadowNodeBase {
|
|
24
|
-
using Super = ShadowNodeBase;
|
|
25
|
-
|
|
26
|
-
public:
|
|
27
|
-
SwitchShadowNode() = default;
|
|
28
|
-
void createView(const winrt::Microsoft::ReactNative::JSValueObject &) override;
|
|
29
|
-
void updateProperties(winrt::Microsoft::ReactNative::JSValueObject &props) override;
|
|
30
|
-
void UpdateThumbColor();
|
|
31
|
-
void UpdateTrackColorOn();
|
|
32
|
-
void UpdateTrackColorOff();
|
|
33
|
-
void dispatchCommand(const std::string &commandId, winrt::Microsoft::ReactNative::JSValueArray &&commandArgs);
|
|
34
|
-
|
|
35
|
-
private:
|
|
36
|
-
static void OnToggled(const Mso::React::IReactContext &context, int64_t tag, bool newValue);
|
|
37
|
-
|
|
38
|
-
winrt::ToggleSwitch::Toggled_revoker m_toggleSwitchToggledRevoker{};
|
|
39
|
-
winrt::ToggleSwitch::Loading_revoker m_toggleSwitchLoadingRevoker{};
|
|
40
|
-
|
|
41
|
-
winrt::Microsoft::ReactNative::JSValue m_thumbColor;
|
|
42
|
-
winrt::Microsoft::ReactNative::JSValue m_offTrackColor;
|
|
43
|
-
winrt::Microsoft::ReactNative::JSValue m_onTrackColor;
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
// sets the resources to Empty SolidColorBrushes if the user sets the color before runtime, this lets the user change
|
|
47
|
-
// the color of the SolidColorBrush at runtime and keeps the toggleswitches who did not change colors on the default
|
|
48
|
-
// ThemeResource
|
|
49
|
-
void setEmptyResourceBrushes(
|
|
50
|
-
const winrt::Microsoft::ReactNative::JSValueObject &props,
|
|
51
|
-
const xaml::Controls::ToggleSwitch toggleSwitch) {
|
|
52
|
-
auto brush = xaml::Media::SolidColorBrush();
|
|
53
|
-
for (const auto &pair : props) {
|
|
54
|
-
const std::string &propertyName = pair.first;
|
|
55
|
-
const auto &propertyValue = pair.second;
|
|
56
|
-
if (propertyName == "thumbTintColor") {
|
|
57
|
-
UpdateResourceBrush(toggleSwitch, L"ToggleSwitchKnobFillOff", xaml::Media::SolidColorBrush());
|
|
58
|
-
UpdateResourceBrush(toggleSwitch, L"ToggleSwitchKnobFillOffPointerOver", xaml::Media::SolidColorBrush());
|
|
59
|
-
UpdateResourceBrush(toggleSwitch, L"ToggleSwitchKnobFillOffPressed", xaml::Media::SolidColorBrush());
|
|
60
|
-
UpdateResourceBrush(toggleSwitch, L"ToggleSwitchKnobFillOffDisabled", xaml::Media::SolidColorBrush());
|
|
61
|
-
|
|
62
|
-
UpdateResourceBrush(toggleSwitch, L"ToggleSwitchKnobFillOnPointerOver", xaml::Media::SolidColorBrush());
|
|
63
|
-
UpdateResourceBrush(toggleSwitch, L"ToggleSwitchKnobFillOnDisabled", xaml::Media::SolidColorBrush());
|
|
64
|
-
UpdateResourceBrush(toggleSwitch, L"ToggleSwitchKnobFillOn", xaml::Media::SolidColorBrush());
|
|
65
|
-
UpdateResourceBrush(toggleSwitch, L"ToggleSwitchKnobFillOnPressed", xaml::Media::SolidColorBrush());
|
|
66
|
-
|
|
67
|
-
} else if (propertyName == "tintColor") {
|
|
68
|
-
UpdateResourceBrush(toggleSwitch, L"ToggleSwitchFillOff", xaml::Media::SolidColorBrush());
|
|
69
|
-
UpdateResourceBrush(toggleSwitch, L"ToggleSwitchFillOffPressed", xaml::Media::SolidColorBrush());
|
|
70
|
-
UpdateResourceBrush(toggleSwitch, L"ToggleSwitchFillOffDisabled", xaml::Media::SolidColorBrush());
|
|
71
|
-
UpdateResourceBrush(toggleSwitch, L"ToggleSwitchFillOffPointerOver", xaml::Media::SolidColorBrush());
|
|
72
|
-
|
|
73
|
-
} else if (propertyName == "onTintColor") {
|
|
74
|
-
UpdateResourceBrush(toggleSwitch, L"ToggleSwitchFillOn", xaml::Media::SolidColorBrush());
|
|
75
|
-
UpdateResourceBrush(toggleSwitch, L"ToggleSwitchFillOnPointerOver", xaml::Media::SolidColorBrush());
|
|
76
|
-
UpdateResourceBrush(toggleSwitch, L"ToggleSwitchFillOnPressed", xaml::Media::SolidColorBrush());
|
|
77
|
-
UpdateResourceBrush(toggleSwitch, L"ToggleSwitchFillOnDisabled", xaml::Media::SolidColorBrush());
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
void SwitchShadowNode::createView(const winrt::Microsoft::ReactNative::JSValueObject &props) {
|
|
83
|
-
Super::createView(props);
|
|
84
|
-
auto toggleSwitch = GetView().as<winrt::ToggleSwitch>();
|
|
85
|
-
|
|
86
|
-
setEmptyResourceBrushes(props, toggleSwitch);
|
|
87
|
-
|
|
88
|
-
m_toggleSwitchToggledRevoker = toggleSwitch.Toggled(winrt::auto_revoke, [=](auto &&, auto &&) {
|
|
89
|
-
if (m_offTrackColor)
|
|
90
|
-
UpdateTrackColorOff();
|
|
91
|
-
if (m_onTrackColor)
|
|
92
|
-
UpdateTrackColorOn();
|
|
93
|
-
|
|
94
|
-
if (!m_updating)
|
|
95
|
-
OnToggled(GetViewManager()->GetReactContext(), m_tag, toggleSwitch.IsOn());
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
// properties can come down early before native XAML element added into tree
|
|
99
|
-
// hook up loading event which is called right at beginning of Measure
|
|
100
|
-
m_toggleSwitchLoadingRevoker = toggleSwitch.Loading(winrt::auto_revoke, [=](auto &&, auto &&) {
|
|
101
|
-
UpdateThumbColor();
|
|
102
|
-
UpdateTrackColorOn();
|
|
103
|
-
UpdateTrackColorOff();
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
void SwitchShadowNode::UpdateThumbColor() {
|
|
108
|
-
auto toggleSwitch = GetView().as<winrt::ToggleSwitch>();
|
|
109
|
-
|
|
110
|
-
const auto thumbBrush = IsValidColorValue(m_thumbColor) ? BrushFrom(m_thumbColor) : nullptr;
|
|
111
|
-
if (thumbBrush != nullptr) {
|
|
112
|
-
UpdateToggleSwitchThumbResourceBrushes(toggleSwitch, thumbBrush);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
void SwitchShadowNode::UpdateTrackColorOn() {
|
|
117
|
-
auto toggleSwitch = GetView().as<winrt::ToggleSwitch>();
|
|
118
|
-
|
|
119
|
-
const auto onTrackBrush = IsValidColorValue(m_onTrackColor) ? BrushFrom(m_onTrackColor) : nullptr;
|
|
120
|
-
UpdateToggleSwitchTrackResourceBrushesOn(toggleSwitch, onTrackBrush);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
void SwitchShadowNode::UpdateTrackColorOff() {
|
|
124
|
-
auto toggleSwitch = GetView().as<winrt::ToggleSwitch>();
|
|
125
|
-
|
|
126
|
-
const auto offTrackBrush = IsValidColorValue(m_offTrackColor) ? BrushFrom(m_offTrackColor) : nullptr;
|
|
127
|
-
UpdateToggleSwitchTrackResourceBrushesOff(toggleSwitch, offTrackBrush);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
void SwitchShadowNode::updateProperties(winrt::Microsoft::ReactNative::JSValueObject &props) {
|
|
131
|
-
m_updating = true;
|
|
132
|
-
auto toggleSwitch = GetView().as<winrt::ToggleSwitch>();
|
|
133
|
-
|
|
134
|
-
Super::updateProperties(props);
|
|
135
|
-
for (const auto &pair : props) {
|
|
136
|
-
const std::string &propertyName = pair.first;
|
|
137
|
-
const auto &propertyValue = pair.second;
|
|
138
|
-
// RN maps thumbColor to deprecated thumbTintColor,
|
|
139
|
-
// and trackColor to tintColor(not toggled state) and onTintColor( toggled
|
|
140
|
-
// state)
|
|
141
|
-
if (propertyName == "thumbTintColor") {
|
|
142
|
-
m_thumbColor = propertyValue.Copy();
|
|
143
|
-
UpdateThumbColor();
|
|
144
|
-
} else if (propertyName == "tintColor") {
|
|
145
|
-
m_offTrackColor = propertyValue.Copy();
|
|
146
|
-
UpdateTrackColorOff();
|
|
147
|
-
} else if (propertyName == "onTintColor") {
|
|
148
|
-
m_onTrackColor = propertyValue.Copy();
|
|
149
|
-
UpdateTrackColorOn();
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
m_updating = false;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
void SwitchShadowNode::dispatchCommand(
|
|
157
|
-
const std::string &commandId,
|
|
158
|
-
winrt::Microsoft::ReactNative::JSValueArray &&commandArgs) {
|
|
159
|
-
if (commandId == "setValue") {
|
|
160
|
-
auto value = commandArgs[0].AsBoolean();
|
|
161
|
-
auto toggleSwitch = GetView().as<winrt::ToggleSwitch>();
|
|
162
|
-
m_updating = true;
|
|
163
|
-
toggleSwitch.IsOn(value);
|
|
164
|
-
m_updating = false;
|
|
165
|
-
} else {
|
|
166
|
-
Super::dispatchCommand(commandId, std::move(commandArgs));
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/*static*/ void SwitchShadowNode::OnToggled(const Mso::React::IReactContext &context, int64_t tag, bool newValue) {
|
|
171
|
-
folly::dynamic eventData = folly::dynamic::object("target", tag)("value", newValue);
|
|
172
|
-
context.DispatchEvent(tag, "topChange", std::move(eventData));
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
SwitchViewManager::SwitchViewManager(const Mso::React::IReactContext &context) : Super(context) {}
|
|
176
|
-
|
|
177
|
-
const wchar_t *SwitchViewManager::GetName() const {
|
|
178
|
-
return L"RCTSwitch";
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
void SwitchViewManager::GetNativeProps(const winrt::Microsoft::ReactNative::IJSValueWriter &writer) const {
|
|
182
|
-
Super::GetNativeProps(writer);
|
|
183
|
-
|
|
184
|
-
winrt::Microsoft::ReactNative::WriteProperty(writer, L"value", L"boolean");
|
|
185
|
-
winrt::Microsoft::ReactNative::WriteProperty(writer, L"disabled", L"boolean");
|
|
186
|
-
winrt::Microsoft::ReactNative::WriteProperty(writer, L"thumbTintColor", L"Color");
|
|
187
|
-
winrt::Microsoft::ReactNative::WriteProperty(writer, L"tintColor", L"Color");
|
|
188
|
-
winrt::Microsoft::ReactNative::WriteProperty(writer, L"onTintColor", L"Color");
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
ShadowNode *SwitchViewManager::createShadow() const {
|
|
192
|
-
return new SwitchShadowNode();
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
XamlView SwitchViewManager::CreateViewCore(int64_t /*tag*/, const winrt::Microsoft::ReactNative::JSValueObject &) {
|
|
196
|
-
auto toggleSwitch = winrt::ToggleSwitch();
|
|
197
|
-
toggleSwitch.OnContent(nullptr);
|
|
198
|
-
toggleSwitch.OffContent(nullptr);
|
|
199
|
-
|
|
200
|
-
return toggleSwitch;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
bool SwitchViewManager::UpdateProperty(
|
|
204
|
-
ShadowNodeBase *nodeToUpdate,
|
|
205
|
-
const std::string &propertyName,
|
|
206
|
-
const winrt::Microsoft::ReactNative::JSValue &propertyValue) {
|
|
207
|
-
auto toggleSwitch = nodeToUpdate->GetView().as<winrt::ToggleSwitch>();
|
|
208
|
-
if (toggleSwitch == nullptr)
|
|
209
|
-
return true;
|
|
210
|
-
|
|
211
|
-
if (propertyName == "disabled") {
|
|
212
|
-
if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Boolean)
|
|
213
|
-
toggleSwitch.IsEnabled(!propertyValue.AsBoolean());
|
|
214
|
-
else if (propertyValue.IsNull())
|
|
215
|
-
toggleSwitch.ClearValue(xaml::Controls::Control::IsEnabledProperty());
|
|
216
|
-
} else if (propertyName == "value") {
|
|
217
|
-
if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Boolean)
|
|
218
|
-
toggleSwitch.IsOn(propertyValue.AsBoolean());
|
|
219
|
-
else if (propertyValue.IsNull())
|
|
220
|
-
toggleSwitch.ClearValue(winrt::ToggleSwitch::IsOnProperty());
|
|
221
|
-
} else {
|
|
222
|
-
return Super::UpdateProperty(nodeToUpdate, propertyName, propertyValue);
|
|
223
|
-
}
|
|
224
|
-
return true;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
} // namespace Microsoft::ReactNative
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
|
-
|
|
4
|
-
#pragma once
|
|
5
|
-
|
|
6
|
-
#include <Views/ControlViewManager.h>
|
|
7
|
-
|
|
8
|
-
namespace Microsoft::ReactNative {
|
|
9
|
-
|
|
10
|
-
class SwitchViewManager : public ControlViewManager {
|
|
11
|
-
using Super = ControlViewManager;
|
|
12
|
-
|
|
13
|
-
public:
|
|
14
|
-
SwitchViewManager(const Mso::React::IReactContext &context);
|
|
15
|
-
|
|
16
|
-
const wchar_t *GetName() const override;
|
|
17
|
-
void GetNativeProps(const winrt::Microsoft::ReactNative::IJSValueWriter &writer) const override;
|
|
18
|
-
ShadowNode *createShadow() const override;
|
|
19
|
-
|
|
20
|
-
protected:
|
|
21
|
-
bool UpdateProperty(
|
|
22
|
-
ShadowNodeBase *nodeToUpdate,
|
|
23
|
-
const std::string &propertyName,
|
|
24
|
-
const winrt::Microsoft::ReactNative::JSValue &propertyValue) override;
|
|
25
|
-
|
|
26
|
-
XamlView CreateViewCore(int64_t tag, const winrt::Microsoft::ReactNative::JSValueObject &) override;
|
|
27
|
-
|
|
28
|
-
friend class SwitchShadowNode;
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
} // namespace Microsoft::ReactNative
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
|
-
|
|
4
|
-
#include "TextHighlighterVisitor.h"
|
|
5
|
-
#include <Utils/ValueUtils.h>
|
|
6
|
-
#include <Views/RawTextViewManager.h>
|
|
7
|
-
#include <Views/TextViewManager.h>
|
|
8
|
-
#include <Views/VirtualTextViewManager.h>
|
|
9
|
-
#include "TextVisitorScope.h"
|
|
10
|
-
|
|
11
|
-
namespace winrt {
|
|
12
|
-
using namespace xaml::Documents;
|
|
13
|
-
} // namespace winrt
|
|
14
|
-
|
|
15
|
-
namespace Microsoft::ReactNative {
|
|
16
|
-
|
|
17
|
-
void TextHighlighterVisitor::VisitRawText(ShadowNodeBase *node) {
|
|
18
|
-
const auto textNode = static_cast<RawTextShadowNode *>(node);
|
|
19
|
-
m_startIndex += textNode->GetView().as<winrt::Run>().Text().size();
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
void TextHighlighterVisitor::VisitVirtualText(ShadowNodeBase *node) {
|
|
23
|
-
const auto textNode = static_cast<VirtualTextShadowNode *>(node);
|
|
24
|
-
const auto foregroundColor = textNode->foregroundColor;
|
|
25
|
-
const auto backgroundColor = textNode->backgroundColor;
|
|
26
|
-
const auto needsHighlighter = RequiresTextHighlighter(foregroundColor, backgroundColor);
|
|
27
|
-
TextVisitorScope<Color> foregroundScope{m_foregroundColors, foregroundColor};
|
|
28
|
-
TextVisitorScope<Color> backgroundScope{m_backgroundColors, backgroundColor};
|
|
29
|
-
|
|
30
|
-
const auto startIndex = m_startIndex;
|
|
31
|
-
const auto initialHighlighterCount = highlighters.size();
|
|
32
|
-
Super::VisitVirtualText(node);
|
|
33
|
-
|
|
34
|
-
if (needsHighlighter) {
|
|
35
|
-
winrt::TextHighlighter highlighter;
|
|
36
|
-
highlighter.Background(SolidBrushFromColor(m_backgroundColors.top().value()));
|
|
37
|
-
const auto inheritedForegroundColor = m_foregroundColors.top();
|
|
38
|
-
if (inheritedForegroundColor.has_value()) {
|
|
39
|
-
highlighter.Foreground(SolidBrushFromColor(inheritedForegroundColor.value()));
|
|
40
|
-
}
|
|
41
|
-
highlighter.Ranges().Append({startIndex, m_startIndex - startIndex});
|
|
42
|
-
highlighters.push_back(highlighter);
|
|
43
|
-
} else if (highlighters.size() == initialHighlighterCount) {
|
|
44
|
-
textNode->hasDescendantTextHighlighter = false;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
bool TextHighlighterVisitor::RequiresTextHighlighter(Color foregroundColor, Color backgroundColor) {
|
|
49
|
-
return backgroundColor || m_backgroundColors.top() && foregroundColor;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
} // namespace Microsoft::ReactNative
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
|
-
|
|
4
|
-
#pragma once
|
|
5
|
-
|
|
6
|
-
#include <Utils/TextTransform.h>
|
|
7
|
-
#include <stack>
|
|
8
|
-
#include "TextVisitor.h"
|
|
9
|
-
|
|
10
|
-
namespace Microsoft::ReactNative {
|
|
11
|
-
|
|
12
|
-
class TextHighlighterVisitor : public TextVisitor {
|
|
13
|
-
using Super = TextVisitor;
|
|
14
|
-
using Color = std::optional<winrt::Windows::UI::Color>;
|
|
15
|
-
|
|
16
|
-
public:
|
|
17
|
-
TextHighlighterVisitor(Color foregroundColor, Color backgroundColor) : Super() {
|
|
18
|
-
m_foregroundColors.push(foregroundColor);
|
|
19
|
-
m_backgroundColors.push(backgroundColor);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
std::vector<xaml::Documents::TextHighlighter> highlighters{};
|
|
23
|
-
|
|
24
|
-
protected:
|
|
25
|
-
void VisitRawText(ShadowNodeBase *node) override;
|
|
26
|
-
|
|
27
|
-
void VisitVirtualText(ShadowNodeBase *node) override;
|
|
28
|
-
|
|
29
|
-
private:
|
|
30
|
-
int m_startIndex{0};
|
|
31
|
-
std::stack<Color> m_foregroundColors;
|
|
32
|
-
std::stack<Color> m_backgroundColors;
|
|
33
|
-
|
|
34
|
-
bool RequiresTextHighlighter(Color foregroundColor, Color backgroundColor);
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
} // namespace Microsoft::ReactNative
|
|
@@ -1,348 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
|
-
|
|
4
|
-
#include "pch.h"
|
|
5
|
-
|
|
6
|
-
#include "TextHitTestUtils.h"
|
|
7
|
-
|
|
8
|
-
#include <UI.Xaml.Documents.h>
|
|
9
|
-
#include <math.h>
|
|
10
|
-
|
|
11
|
-
namespace Microsoft::ReactNative {
|
|
12
|
-
|
|
13
|
-
struct BidirectionalTextBoundary {
|
|
14
|
-
xaml::Documents::TextPointer ltrPointer{nullptr};
|
|
15
|
-
xaml::Documents::TextPointer rtlPointer{nullptr};
|
|
16
|
-
winrt::Rect ltrRect;
|
|
17
|
-
winrt::Rect rtlRect;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
/*
|
|
21
|
-
* Checks if two text pointers are on the same line.
|
|
22
|
-
*/
|
|
23
|
-
static bool IsSameLine(const winrt::Rect &x, const winrt::Rect &y) {
|
|
24
|
-
return std::abs(x.Y - y.Y) <= std::numeric_limits<float>().epsilon();
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/*
|
|
28
|
-
* Checks if a text pointer is zero width relative to the next character.
|
|
29
|
-
*/
|
|
30
|
-
static bool IsZeroWidth(const winrt::Rect &x, const winrt::Rect &y) {
|
|
31
|
-
return std::abs(x.X - y.X) <= std::numeric_limits<float>().epsilon();
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Finds the character closest to X = 0 for the first line. I.e., the
|
|
36
|
-
* leftmost character when flow direction is left-to-right.
|
|
37
|
-
* ┌─────> X ↓
|
|
38
|
-
* │ (x,y) ┌─<─┐<┌─>─┐
|
|
39
|
-
* │ ┌──────┘ └─┘ │
|
|
40
|
-
* │ │ │
|
|
41
|
-
* ↓ │ ┌──────────┘
|
|
42
|
-
* Y └─────┘
|
|
43
|
-
*/
|
|
44
|
-
static BidirectionalTextBoundary FindStartRTLBoundary(
|
|
45
|
-
const xaml::Documents::TextPointer &start,
|
|
46
|
-
const xaml::Documents::TextPointer &end,
|
|
47
|
-
const winrt::Rect &target) {
|
|
48
|
-
auto textPointer = start;
|
|
49
|
-
auto L = start.Offset();
|
|
50
|
-
auto R = end.Offset();
|
|
51
|
-
while (L <= R) {
|
|
52
|
-
const auto m = /* floor */ (L + R) / 2;
|
|
53
|
-
const auto relativeOffset = m - textPointer.Offset();
|
|
54
|
-
textPointer = textPointer.GetPositionAtOffset(relativeOffset, xaml::Documents::LogicalDirection::Forward);
|
|
55
|
-
const auto rect = textPointer.GetCharacterRect(xaml::Documents::LogicalDirection::Forward);
|
|
56
|
-
// If median character is on different line, boundary is before median
|
|
57
|
-
if (!IsSameLine(rect, target)) {
|
|
58
|
-
R = m - 1;
|
|
59
|
-
} else {
|
|
60
|
-
const auto prevPointer = textPointer.GetPositionAtOffset(-1, xaml::Documents::LogicalDirection::Forward);
|
|
61
|
-
const auto prevRect = prevPointer.GetCharacterRect(xaml::Documents::LogicalDirection::Forward);
|
|
62
|
-
if (prevRect.X > target.X) {
|
|
63
|
-
// If previous character is right of start, boundary is before median
|
|
64
|
-
R = m - 1;
|
|
65
|
-
} else if (rect.X <= target.X) {
|
|
66
|
-
// If median character is left of start, boundary is after median
|
|
67
|
-
L = m + 1;
|
|
68
|
-
} else {
|
|
69
|
-
// Otherwise, we've found the boundary where the previous character is
|
|
70
|
-
// the last RTL character and the median is the first LTR character
|
|
71
|
-
BidirectionalTextBoundary result;
|
|
72
|
-
result.rtlPointer = prevPointer;
|
|
73
|
-
result.rtlRect = prevRect;
|
|
74
|
-
result.ltrPointer = textPointer;
|
|
75
|
-
result.ltrRect = rect;
|
|
76
|
-
return result;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// No LTR characters on first line, R points to last character on first line
|
|
82
|
-
auto lastRTL = start;
|
|
83
|
-
auto lastRTLRect = target;
|
|
84
|
-
if (R > start.Offset()) {
|
|
85
|
-
const auto relativeOffset = R - start.Offset();
|
|
86
|
-
lastRTL = start.GetPositionAtOffset(relativeOffset, xaml::Documents::LogicalDirection::Forward);
|
|
87
|
-
lastRTLRect = lastRTL.GetCharacterRect(xaml::Documents::LogicalDirection::Forward);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
BidirectionalTextBoundary result;
|
|
91
|
-
result.rtlPointer = lastRTL;
|
|
92
|
-
result.rtlRect = lastRTLRect;
|
|
93
|
-
return result;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Finds the character farthest from X = 0 for the last line. I.e., the
|
|
98
|
-
* rightmost character when flow direction is left-to-right.
|
|
99
|
-
* ┌─────> X
|
|
100
|
-
* │ (x,y) ┌──────┐
|
|
101
|
-
* │ ┌─────┘ │
|
|
102
|
-
* │ │ │
|
|
103
|
-
* ↓ │ ┌─┐ ┌──┘
|
|
104
|
-
* Y └─>─┘<└─<─┘
|
|
105
|
-
* ↑
|
|
106
|
-
*/
|
|
107
|
-
static BidirectionalTextBoundary FindEndRTLBoundary(
|
|
108
|
-
const xaml::Documents::TextPointer &start,
|
|
109
|
-
const xaml::Documents::TextPointer &end,
|
|
110
|
-
const winrt::Rect &target) {
|
|
111
|
-
auto textPointer = start;
|
|
112
|
-
auto L = start.Offset();
|
|
113
|
-
auto R = end.Offset();
|
|
114
|
-
while (L <= R) {
|
|
115
|
-
const auto m = /* floor */ (L + R) / 2;
|
|
116
|
-
const auto relativeOffset = m - textPointer.Offset();
|
|
117
|
-
textPointer = textPointer.GetPositionAtOffset(relativeOffset, xaml::Documents::LogicalDirection::Forward);
|
|
118
|
-
const auto rect = textPointer.GetCharacterRect(xaml::Documents::LogicalDirection::Forward);
|
|
119
|
-
// If median character is on different line, boundary is after median
|
|
120
|
-
if (!IsSameLine(rect, target)) {
|
|
121
|
-
L = m + 1;
|
|
122
|
-
} else if (m < R) {
|
|
123
|
-
const auto nextPointer = textPointer.GetPositionAtOffset(1, xaml::Documents::LogicalDirection::Forward);
|
|
124
|
-
const auto nextRect = nextPointer.GetCharacterRect(xaml::Documents::LogicalDirection::Forward);
|
|
125
|
-
if (nextRect.X < target.X) {
|
|
126
|
-
// If next character is left of end, boundary is after median
|
|
127
|
-
L = m + 1;
|
|
128
|
-
} else if (rect.X >= target.X) {
|
|
129
|
-
// If median character is right of end, boundary is before median
|
|
130
|
-
R = m - 1;
|
|
131
|
-
} else {
|
|
132
|
-
// Otherwise, we've found the boundary where the next character is the
|
|
133
|
-
// first RTL character and the median is the last LTR character
|
|
134
|
-
BidirectionalTextBoundary result;
|
|
135
|
-
result.rtlPointer = nextPointer;
|
|
136
|
-
result.rtlRect = nextRect;
|
|
137
|
-
result.ltrPointer = textPointer;
|
|
138
|
-
result.ltrRect = rect;
|
|
139
|
-
return result;
|
|
140
|
-
}
|
|
141
|
-
} else {
|
|
142
|
-
break;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
// No LTR characters on last line, L points to first character on last line
|
|
147
|
-
auto lastRTL = end;
|
|
148
|
-
auto lastRTLRect = target;
|
|
149
|
-
if (L < end.Offset()) {
|
|
150
|
-
const auto relativeOffset = L - end.Offset();
|
|
151
|
-
lastRTL = end.GetPositionAtOffset(relativeOffset, xaml::Documents::LogicalDirection::Forward);
|
|
152
|
-
lastRTLRect = lastRTL.GetCharacterRect(xaml::Documents::LogicalDirection::Forward);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
BidirectionalTextBoundary result;
|
|
156
|
-
result.rtlPointer = lastRTL;
|
|
157
|
-
result.rtlRect = lastRTLRect;
|
|
158
|
-
return result;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
* Determine if the next character in the given direction on the same line is
|
|
163
|
-
* RTL. If the next character is not on the same line, assume LTR. This may be
|
|
164
|
-
* The case if the run has only one character on the target line.
|
|
165
|
-
*/
|
|
166
|
-
static bool IsRTL(const xaml::Documents::TextPointer &textPointer, const winrt::Rect &rect, int direction) {
|
|
167
|
-
auto currentPointer = textPointer.GetPositionAtOffset(direction, xaml::Documents::LogicalDirection::Forward);
|
|
168
|
-
while (currentPointer != nullptr) {
|
|
169
|
-
const auto currentRect = currentPointer.GetCharacterRect(xaml::Documents::LogicalDirection::Forward);
|
|
170
|
-
if (!IsSameLine(currentRect, rect)) {
|
|
171
|
-
return false;
|
|
172
|
-
} else if (!IsZeroWidth(currentRect, rect)) {
|
|
173
|
-
return direction > 0 ? currentRect.X < rect.X : currentRect.X > rect.X;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
currentPointer = currentPointer.GetPositionAtOffset(direction, xaml::Documents::LogicalDirection::Forward);
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
return false;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Determine if the character is either the first or last character of a line in the given direction.
|
|
184
|
-
*/
|
|
185
|
-
static std::optional<winrt::Rect>
|
|
186
|
-
GetBoundaryCharacter(const xaml::Documents::TextPointer &textPointer, const winrt::Rect &rect, int direction) {
|
|
187
|
-
const auto nextPosition = textPointer.GetPositionAtOffset(direction, xaml::Documents::LogicalDirection::Forward);
|
|
188
|
-
if (nextPosition) {
|
|
189
|
-
const auto nextRect = nextPosition.GetCharacterRect(xaml::Documents::LogicalDirection::Forward);
|
|
190
|
-
if (IsSameLine(nextRect, rect)) {
|
|
191
|
-
return nextRect;
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
return std::nullopt;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
bool IsInBounds(const winrt::Point &point, float left, float right, float top, float bottom) {
|
|
199
|
-
return left <= point.X && right >= point.X && top <= point.Y && bottom >= point.Y;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
bool TextHitTestUtils::HitTest(const xaml::Documents::Run &run, const winrt::Point &targetPoint) {
|
|
203
|
-
const auto start = run.ContentStart();
|
|
204
|
-
const auto end = run.ContentEnd();
|
|
205
|
-
const auto startRect = start.GetCharacterRect(xaml::Documents::LogicalDirection::Forward);
|
|
206
|
-
const auto endRect = end.GetCharacterRect(xaml::Documents::LogicalDirection::Forward);
|
|
207
|
-
|
|
208
|
-
// Get first and last line vertical bounds
|
|
209
|
-
const auto startTop = startRect.Y;
|
|
210
|
-
const auto startBottom = startRect.Y + startRect.Height;
|
|
211
|
-
const auto endTop = endRect.Y;
|
|
212
|
-
const auto endBottom = endRect.Y + endRect.Height;
|
|
213
|
-
|
|
214
|
-
// Check if we have a single line of unidirectional text
|
|
215
|
-
const auto isSingleLine = IsSameLine(startRect, endRect);
|
|
216
|
-
const auto isStartRTL = IsRTL(start, startRect, 1);
|
|
217
|
-
const auto isEndRTL = IsRTL(end, endRect, -1);
|
|
218
|
-
const auto isUnidirectional = (!isStartRTL && !isEndRTL) || (isSingleLine && endRect.X < startRect.X);
|
|
219
|
-
|
|
220
|
-
// For unidirectional runs on the same line, we can use a simple bounding box test
|
|
221
|
-
if (isSingleLine && isUnidirectional) {
|
|
222
|
-
return endRect.X < startRect.X
|
|
223
|
-
? IsInBounds(targetPoint, endRect.X + endRect.Width, startRect.X, startTop, startBottom)
|
|
224
|
-
: IsInBounds(targetPoint, startRect.X, endRect.X + endRect.Width, startTop, startBottom);
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
// If we don't have a single line of unidirectional text, we need to search
|
|
228
|
-
// up to 5 bounding boxes for the target point:
|
|
229
|
-
// 1. The lines between the first and last lines
|
|
230
|
-
// 2. The LTR characters on the first line after initial RTL
|
|
231
|
-
// 3. The LTR characters on the last line before final RTL
|
|
232
|
-
// 4. The initial RTL characters on the first line
|
|
233
|
-
// 5. The final RTL characters on the last line
|
|
234
|
-
//
|
|
235
|
-
// We can optimize the following situations:
|
|
236
|
-
// a. Skip step 2 if no LTR characters on the first line
|
|
237
|
-
// b. Skip step 3 if no LTR characters on the last line
|
|
238
|
-
// c. Skip step 4 if the first character is LTR
|
|
239
|
-
// d. Skip step 5 if the last character is LTR
|
|
240
|
-
|
|
241
|
-
// Get the parent bounds
|
|
242
|
-
const auto parent = start.VisualParent();
|
|
243
|
-
if (!parent) {
|
|
244
|
-
return false;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
const auto maxLeft = 0;
|
|
248
|
-
const auto maxRight = static_cast<float>(parent.ActualWidth());
|
|
249
|
-
|
|
250
|
-
// Check if run is either the start or end of a line
|
|
251
|
-
const auto characterBeforeStart = GetBoundaryCharacter(start, startRect, -1);
|
|
252
|
-
const auto characterAfterEnd = GetBoundaryCharacter(end, endRect, 1);
|
|
253
|
-
|
|
254
|
-
// Find leftmost character of the first line and first LTR character
|
|
255
|
-
BidirectionalTextBoundary startBoundary;
|
|
256
|
-
startBoundary.ltrPointer = start;
|
|
257
|
-
startBoundary.ltrRect = startRect;
|
|
258
|
-
if (isStartRTL) {
|
|
259
|
-
startBoundary = FindStartRTLBoundary(start, end, startRect);
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
// Find rightmost character of the last line and last LTR character
|
|
263
|
-
BidirectionalTextBoundary endBoundary;
|
|
264
|
-
endBoundary.ltrPointer = end;
|
|
265
|
-
endBoundary.ltrRect = endRect;
|
|
266
|
-
if (isEndRTL) {
|
|
267
|
-
endBoundary = FindEndRTLBoundary(start, end, endRect);
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
// Step 1: The lines between the first and last lines
|
|
271
|
-
const auto middleTop = startBottom;
|
|
272
|
-
const auto middleBottom = endRect.Y;
|
|
273
|
-
if (middleTop <= targetPoint.Y && middleBottom >= targetPoint.Y) {
|
|
274
|
-
return true;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
// Step 2: The LTR characters on the first line before initial RTL
|
|
278
|
-
// Optimization b: Skip if no LTR characters in first line
|
|
279
|
-
if (startBoundary.ltrPointer) {
|
|
280
|
-
auto left = startBoundary.ltrRect.X;
|
|
281
|
-
if (!characterBeforeStart.has_value()) {
|
|
282
|
-
left = maxLeft;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
auto right = maxRight;
|
|
286
|
-
if (isSingleLine && characterAfterEnd.has_value()) {
|
|
287
|
-
// TODO(#7792): last LTR character is ignored because width is always 0
|
|
288
|
-
right = endBoundary.ltrRect.X + endBoundary.ltrRect.Width;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
if (IsInBounds(targetPoint, left, right, startTop, startBottom)) {
|
|
292
|
-
return true;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
// Step 3: The LTR characters on the last line after final RTL
|
|
297
|
-
// Optimization b: Skip if no LTR characters in last line
|
|
298
|
-
if (!isSingleLine && endBoundary.ltrPointer) {
|
|
299
|
-
const auto left = 0;
|
|
300
|
-
// TODO(#7792): last LTR character is ignored because width is always 0
|
|
301
|
-
auto right = endBoundary.ltrRect.X + endBoundary.ltrRect.Width;
|
|
302
|
-
if (!characterAfterEnd.has_value()) {
|
|
303
|
-
right = maxRight;
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
if (IsInBounds(targetPoint, left, right, endTop, endBottom)) {
|
|
307
|
-
return true;
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
// Step 4: The initial RTL characters on the first line
|
|
312
|
-
// Optimization c: Skip if first line starts with LTR
|
|
313
|
-
if (isStartRTL) {
|
|
314
|
-
// TODO(#7792): last RTL character is ignored because width is always 0
|
|
315
|
-
auto left = startBoundary.rtlRect.X + startBoundary.rtlRect.Width;
|
|
316
|
-
if (!characterBeforeStart.has_value()) {
|
|
317
|
-
left = maxLeft;
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
auto right = maxRight;
|
|
321
|
-
if (isSingleLine) {
|
|
322
|
-
right = startRect.X;
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
if (IsInBounds(targetPoint, left, right, startTop, startBottom)) {
|
|
326
|
-
return true;
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
// Step 5: The final RTL characters on the last line
|
|
331
|
-
// Optimization d: Skip if last line ends with LTR
|
|
332
|
-
if (isEndRTL) {
|
|
333
|
-
// TODO(#7792): last RTL character is ignored because width is always 0
|
|
334
|
-
const auto left = endRect.X + endRect.Width;
|
|
335
|
-
auto right = endBoundary.rtlRect.X;
|
|
336
|
-
if (!characterAfterEnd.has_value()) {
|
|
337
|
-
right = maxRight;
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
if (IsInBounds(targetPoint, left, right, endTop, endBottom)) {
|
|
341
|
-
return true;
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
return false;
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
} // namespace Microsoft::ReactNative
|