react-native-windows 0.72.13 → 0.73.0-preview.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.flowconfig +16 -5
- package/Chakra/ChakraHelpers.cpp +1 -1
- package/Chakra/ChakraUtils.cpp +1 -1
- package/Chakra/ChakraValue.h +1 -1
- package/Common/packages.lock.json +13 -0
- package/Directory.Build.props +6 -2
- package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1 -10
- package/Folly/TEMP_UntilFollyUpdate/hash/Hash.h +1016 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +1 -1
- package/Folly/cgmanifest.json +1 -1
- package/Folly/packages.lock.json +23 -0
- package/Libraries/Animated/Animated.js +1 -1
- package/Libraries/Animated/AnimatedImplementation.js +1 -1
- package/Libraries/Animated/NativeAnimatedHelper.js +14 -10
- package/Libraries/Animated/NativeAnimatedModule.js +6 -2
- package/Libraries/Animated/NativeAnimatedTurboModule.js +7 -4
- package/Libraries/Animated/animations/Animation.js +57 -3
- package/Libraries/Animated/animations/DecayAnimation.js +9 -0
- package/Libraries/Animated/animations/SpringAnimation.js +8 -0
- package/Libraries/Animated/animations/TimingAnimation.js +8 -0
- package/Libraries/Animated/components/AnimatedFlatList.js +2 -1
- package/Libraries/Animated/components/AnimatedScrollView.js +2 -0
- package/Libraries/Animated/components/AnimatedSectionList.js +2 -1
- package/Libraries/Animated/createAnimatedComponent.js +1 -0
- package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
- package/Libraries/Animated/nodes/AnimatedObject.js +146 -0
- package/Libraries/Animated/nodes/AnimatedProps.js +19 -7
- package/Libraries/Animated/nodes/AnimatedStyle.js +29 -55
- package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -17
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +17 -0
- package/Libraries/Animated/useAnimatedProps.js +9 -10
- package/Libraries/AppState/AppState.d.ts +1 -1
- package/Libraries/AppState/NativeAppState.js +8 -4
- package/Libraries/AppTheme/AppTheme.js +5 -5
- package/Libraries/BatchedBridge/MessageQueue.js +45 -36
- package/Libraries/Blob/Blob.js +6 -2
- package/Libraries/Blob/BlobManager.js +9 -10
- package/Libraries/Blob/BlobRegistry.js +14 -9
- package/Libraries/Blob/File.js +1 -1
- package/Libraries/Blob/FileReader.js +1 -2
- package/Libraries/Components/Clipboard/Clipboard.d.ts +4 -4
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -1
- package/Libraries/Components/Glyph/Glyph.js +1 -1
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +26 -6
- package/Libraries/Components/Keyboard/KeyboardExt.d.ts +4 -1
- package/Libraries/Components/Keyboard/KeyboardExt.js +3 -0
- package/Libraries/Components/Keyboard/KeyboardExt.js.map +1 -1
- package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +4 -29
- package/Libraries/Components/Keyboard/KeyboardExtProps.js +0 -17
- package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
- package/Libraries/Components/Pressable/Pressable.js +3 -2
- package/Libraries/Components/Pressable/Pressable.windows.js +4 -3
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +20 -0
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.windows.js +7 -1
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +7 -7
- package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +7 -10
- package/Libraries/Components/ScrollView/ScrollView.js +3 -1
- package/Libraries/Components/ScrollView/ScrollView.windows.js +3 -1
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +39 -46
- package/Libraries/Components/Switch/Switch.js +1 -0
- package/Libraries/Components/Switch/Switch.windows.js +259 -0
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
- package/Libraries/Components/TextInput/TextInput.d.ts +49 -7
- package/Libraries/Components/TextInput/TextInput.flow.js +43 -10
- package/Libraries/Components/TextInput/TextInput.js +62 -10
- package/Libraries/Components/TextInput/TextInput.windows.js +100 -14
- package/Libraries/Components/ToastAndroid/{ToastAndroid.ios.js → ToastAndroid.js} +9 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.windows.js +9 -1
- package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +1 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableOpacity.js +4 -1
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -0
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +16 -6
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +9 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
- package/Libraries/Components/View/View.js +46 -32
- package/Libraries/Components/View/View.windows.js +23 -7
- package/Libraries/Components/View/ViewAccessibility.d.ts +27 -1
- package/Libraries/Components/View/ViewAccessibility.windows.js +3 -0
- package/Libraries/Components/View/ViewNativeComponent.js +1 -0
- package/Libraries/Components/View/ViewPropTypes.d.ts +104 -1
- package/Libraries/Components/View/ViewPropTypes.js +18 -3
- package/Libraries/Components/View/ViewPropTypes.windows.js +33 -3
- package/Libraries/Core/Devtools/loadBundleFromServer.js +152 -0
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -1
- package/Libraries/Core/ExceptionsManager.js +16 -7
- package/Libraries/Core/ExtendedError.js +12 -0
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/ReactNativeVersionCheck.js +0 -2
- package/Libraries/Core/__mocks__/NativeExceptionsManager.js +20 -0
- package/Libraries/Core/setUpDeveloperTools.js +5 -1
- package/Libraries/Core/setUpIntersectionObserver.js +16 -0
- package/Libraries/Core/setUpMutationObserver.js +16 -0
- package/Libraries/Core/setUpPerformance.js +6 -13
- package/Libraries/Core/setUpPerformanceObserver.js +16 -0
- package/Libraries/Core/setUpRegeneratorRuntime.js +4 -2
- package/Libraries/DOM/Nodes/ReactNativeElement.js +135 -18
- package/Libraries/DOM/Nodes/ReadOnlyCharacterData.js +72 -0
- package/Libraries/DOM/Nodes/ReadOnlyElement.js +209 -21
- package/Libraries/DOM/Nodes/ReadOnlyNode.js +206 -17
- package/Libraries/DOM/Nodes/ReadOnlyText.js +30 -0
- package/Libraries/DOM/Nodes/Utilities/Traversal.js +54 -0
- package/Libraries/EventEmitter/NativeEventEmitter.d.ts +0 -6
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +15 -4
- package/Libraries/Image/Image.android.js +8 -2
- package/Libraries/Image/Image.d.ts +1 -1
- package/Libraries/Image/Image.ios.js +4 -1
- package/Libraries/Image/Image.windows.js +6 -3
- package/Libraries/Image/ImageBackground.js +3 -0
- package/Libraries/Inspector/DevtoolsOverlay.js +6 -3
- package/Libraries/Inspector/NetworkOverlay.js +2 -2
- package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -5
- package/Libraries/Interaction/PanResponder.js +1 -4
- package/Libraries/IntersectionObserver/IntersectionObserver.js +252 -0
- package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +140 -0
- package/Libraries/IntersectionObserver/IntersectionObserverManager.js +221 -0
- package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +41 -0
- package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +162 -0
- package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +2 -1
- package/Libraries/Lists/FlatList.js +15 -5
- package/Libraries/Lists/SectionList.js +4 -0
- package/Libraries/LogBox/Data/LogBoxLog.js +4 -1
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +5 -2
- package/Libraries/LogBox/Data/parseLogBoxLog.js +57 -20
- package/Libraries/LogBox/UI/AnsiHighlight.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +24 -31
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxMessage.js +4 -7
- package/Libraries/MutationObserver/MutationObserver.js +184 -0
- package/Libraries/MutationObserver/MutationObserverManager.js +218 -0
- package/Libraries/MutationObserver/MutationRecord.js +82 -0
- package/Libraries/MutationObserver/NativeMutationObserver.js +58 -0
- package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +327 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +18 -3
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +33 -0
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +34 -4
- package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -5
- package/Libraries/NativeModules/specs/NativeSourceCode.js +6 -6
- package/Libraries/Network/RCTNetworking.android.js +2 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -4
- package/Libraries/NewAppScreen/components/DebugInstructions.windows.js +2 -2
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +9 -2
- package/Libraries/Performance/QuickPerformanceLogger.js +1 -1
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -1
- package/Libraries/Pressability/Pressability.js +28 -3
- package/Libraries/Pressability/Pressability.windows.js +30 -5
- package/Libraries/ReactNative/AppContainer.js +2 -3
- package/Libraries/ReactNative/AppRegistry.d.ts +0 -5
- package/Libraries/ReactNative/AppRegistry.js +66 -53
- package/Libraries/ReactNative/BridgelessUIManager.js +38 -9
- package/Libraries/ReactNative/FabricUIManager.js +143 -34
- package/Libraries/ReactNative/I18nManager.js +5 -11
- package/Libraries/ReactNative/NativeI18nManager.js +7 -5
- package/Libraries/ReactNative/PaperUIManager.windows.js +2 -2
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +151 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +81 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +492 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +32 -0
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +19 -3
- package/Libraries/ReactNative/UIManager.js +8 -0
- package/Libraries/ReactNative/__mocks__/FabricUIManager.js +648 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +38 -2
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +27 -27
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +27 -27
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -3
- package/Libraries/Renderer/shims/ReactFabric.js +5 -6
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -3
- package/Libraries/Renderer/shims/ReactNative.js +2 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.js +35 -17
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -3
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -3
- package/Libraries/Settings/{Settings.android.js → Settings.js} +4 -4
- package/Libraries/Share/Share.d.ts +3 -9
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +9 -4
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +28 -13
- package/Libraries/StyleSheet/PlatformColorValueTypes.windows.js +10 -6
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.d.ts +10 -1
- package/Libraries/StyleSheet/StyleSheet.js +3 -0
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +31 -17
- package/Libraries/StyleSheet/StyleSheetTypes.js +90 -6
- package/Libraries/StyleSheet/flattenStyle.js +4 -0
- package/Libraries/StyleSheet/private/_TransformStyle.js +16 -2
- package/Libraries/StyleSheet/processColor.js +1 -2
- package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
- package/Libraries/StyleSheet/splitLayoutProps.js +1 -0
- package/Libraries/Text/Text.d.ts +5 -5
- package/Libraries/Text/Text.js +17 -10
- package/Libraries/Text/Text.windows.js +53 -20
- package/Libraries/Text/TextProps.windows.js +275 -0
- package/Libraries/TurboModule/TurboModuleRegistry.js +47 -7
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
- package/Libraries/Types/CoreEventTypes.d.ts +5 -2
- package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -12
- package/Libraries/Utilities/NativeDeviceInfo.js +8 -9
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +23 -18
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +16 -13
- package/Libraries/Utilities/NativePlatformConstantsWin.js +13 -10
- package/Libraries/Utilities/PerformanceLoggerContext.js +1 -1
- package/Libraries/Utilities/Platform.android.js +12 -8
- package/Libraries/Utilities/Platform.d.ts +1 -0
- package/Libraries/Utilities/Platform.flow.js +84 -0
- package/Libraries/Utilities/Platform.flow.windows.js +111 -0
- package/Libraries/Utilities/Platform.ios.js +12 -8
- package/Libraries/Utilities/Platform.windows.js +12 -8
- package/Libraries/Utilities/PolyfillFunctions.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -2
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/createPerformanceLogger.js +63 -32
- package/Libraries/Utilities/useColorScheme.js +7 -8
- package/Libraries/WebPerformance/MemoryInfo.js +1 -1
- package/Libraries/WebPerformance/NativePerformance.js +3 -8
- package/Libraries/WebPerformance/NativePerformanceObserver.js +4 -0
- package/Libraries/WebPerformance/Performance.js +42 -15
- package/Libraries/WebPerformance/PerformanceEntry.js +14 -6
- package/Libraries/WebPerformance/PerformanceEventTiming.js +18 -1
- package/Libraries/WebPerformance/ReactNativeStartupTiming.js +40 -14
- package/Libraries/WebPerformance/__mocks__/NativePerformance.js +4 -2
- package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +21 -3
- package/Libraries/__tests__/ViewWindows-test.js +3 -3
- package/Libraries/platform-types.d.ts +6 -2
- package/Libraries/promiseRejectionTrackingOptions.js +1 -3
- package/Libraries/vendor/emitter/EventEmitter.js +20 -18
- package/Microsoft.ReactNative/Composition.Input.idl +103 -0
- package/Microsoft.ReactNative/CompositionContext.idl +31 -8
- package/Microsoft.ReactNative/CompositionRootView.idl +8 -4
- package/Microsoft.ReactNative/CompositionSwitcher.idl +28 -17
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +15 -28
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +7 -10
- package/Microsoft.ReactNative/Fabric/ComponentView.h +42 -4
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +57 -4
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +22 -1
- package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.cpp +137 -0
- package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.h +59 -0
- package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +8 -2
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +575 -0
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +170 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +890 -226
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +38 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +79 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +130 -27
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +6 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +382 -228
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +35 -8
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +46 -8
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +5 -21
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +232 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +36 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +51 -14
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +15 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView_emptyimpl.cpp +123 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +18 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +333 -137
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +52 -8
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +32 -26
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +5 -3
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +183 -175
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +7 -4
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +101 -2
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +46 -2
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +36 -9
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +8 -2
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +247 -42
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +25 -8
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +78 -50
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +12 -4
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +26 -28
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +429 -89
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +24 -3
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +1 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -2
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +5 -7
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -6
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -7
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +1 -17
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +74 -3
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +12 -0
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +53 -59
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +3 -2
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +5 -4
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -1
- package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +1 -1
- package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +3 -4
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformTouch.h +10 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +59 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.h +31 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +69 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +25 -2
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +23 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/KeyEvent.h +113 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/WindowsViewEvents.h +75 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +18 -21
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +158 -7
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +15 -17
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +1 -1
- package/Microsoft.ReactNative/GlyphViewManager.cpp +1 -1
- package/Microsoft.ReactNative/IJSValueReader.idl +2 -2
- package/Microsoft.ReactNative/IJSValueWriter.idl +2 -2
- package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +23 -1
- package/Microsoft.ReactNative/IReactContext.cpp +1 -1
- package/Microsoft.ReactNative/IReactNotificationService.cpp +4 -3
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -4
- package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +1 -2
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +1 -1
- package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +3 -4
- package/Microsoft.ReactNative/Modules/AppStateModule.cpp +1 -1
- package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -2
- package/Microsoft.ReactNative/Modules/AppearanceModule.h +1 -1
- package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +4 -2
- package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +1 -1
- package/Microsoft.ReactNative/Modules/I18nManagerModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/I18nManagerModule.h +1 -1
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -15
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +10 -6
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +4 -1
- package/Microsoft.ReactNative/QuirkSettings.idl +1 -1
- package/Microsoft.ReactNative/ReactApplication.cpp +13 -11
- package/Microsoft.ReactNative/ReactApplication.h +4 -4
- package/Microsoft.ReactNative/ReactCoreInjection.h +6 -5
- package/Microsoft.ReactNative/ReactHost/JSCallInvokerScheduler.cpp +2 -2
- package/Microsoft.ReactNative/ReactHost/MsoUtils.cpp +1 -1
- package/Microsoft.ReactNative/ReactHost/React.h +3 -6
- package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -16
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +8 -16
- package/Microsoft.ReactNative/ReactInstanceSettings.cpp +6 -5
- package/Microsoft.ReactNative/ReactInstanceSettings.h +7 -7
- package/Microsoft.ReactNative/ReactNativeHost.h +4 -4
- package/Microsoft.ReactNative/ReactRootView.cpp +5 -4
- package/Microsoft.ReactNative/ReactRootView.h +2 -2
- package/Microsoft.ReactNative/ReactSupport.h +1 -1
- package/Microsoft.ReactNative/RedBox.cpp +1 -1
- package/Microsoft.ReactNative/RedBoxHandler.idl +1 -1
- package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +1 -1
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +49 -21
- package/Microsoft.ReactNative/Utils/ValueUtils.h +2 -1
- package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +31 -59
- package/Microsoft.ReactNative/Views/DynamicAutomationPeer.h +3 -4
- package/Microsoft.ReactNative/Views/DynamicAutomationProperties.cpp +15 -46
- package/Microsoft.ReactNative/Views/DynamicAutomationProperties.h +5 -13
- package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +4 -4
- package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +2 -8
- package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +127 -86
- package/Microsoft.ReactNative/Views/ICompositionRootView.h +1 -1
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
- package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +2 -2
- package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +1 -1
- package/Microsoft.ReactNative/Views/SIPEventHandler.cpp +5 -5
- package/Microsoft.ReactNative/Views/SIPEventHandler.h +1 -1
- package/Microsoft.ReactNative/Views/ShadowNodeBase.h +8 -5
- package/Microsoft.ReactNative/Views/SwitchViewManager.cpp +2 -2
- package/Microsoft.ReactNative/Views/Text/TextTransformVisitor.cpp +1 -1
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +32 -14
- package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +1 -1
- package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +14 -2
- package/Microsoft.ReactNative/Views/ViewManagerBase.h +1 -1
- package/Microsoft.ReactNative/Views/ViewPanel.cpp +20 -219
- package/Microsoft.ReactNative/Views/ViewPanel.h +0 -30
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +17 -158
- package/Microsoft.ReactNative/Views/cppwinrt/DynamicAutomationPeer.idl +9 -12
- package/Microsoft.ReactNative/Views/cppwinrt/ViewPanel.idl +1 -9
- package/Microsoft.ReactNative/XamlHelper.cpp +1 -1
- package/Microsoft.ReactNative/XamlHelper.h +1 -1
- package/Microsoft.ReactNative/packages.lock.json +128 -0
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/JsiApiContext.cpp +2 -2
- package/Microsoft.ReactNative.Cxx/JSValue.h +2 -2
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +0 -1
- package/Microsoft.ReactNative.Cxx/NativeModules.h +4 -4
- package/Microsoft.ReactNative.Cxx/ReactHandleHelper.h +1 -1
- package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +2 -2
- package/Microsoft.ReactNative.Cxx/ReactNotificationService.h +10 -9
- package/Microsoft.ReactNative.Cxx/ReactPropertyBag.h +13 -12
- package/Microsoft.ReactNative.Managed/JSValueReaderGenerator.cs +5 -5
- package/Microsoft.ReactNative.Managed/JSValueWriterGenerator.cs +5 -5
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +8 -2
- package/Microsoft.ReactNative.Managed/ReactPackageBuilderExtensions.cs +1 -1
- package/Microsoft.ReactNative.Managed/ReflectionReactPackageProvider.cs +1 -1
- package/Microsoft.ReactNative.Managed/packages.lock.json +9 -9
- package/Microsoft.ReactNative.Managed.CodeGen/CodeAnalyzer.cs +2 -0
- package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Module.cs +4 -2
- package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.ViewManager.cs +1 -1
- package/Microsoft.ReactNative.Managed.CodeGen/DiagnosticDescriptors.cs +1 -1
- package/Microsoft.ReactNative.Managed.CodeGen/packages.lock.json +3197 -0
- package/Mso/compilerAdapters/compilerFeatures.h +1 -1
- package/Mso/compilerAdapters/functionDecorations.h +6 -6
- package/Mso/debugAssertApi/debugAssertDetails.h +1 -1
- package/Mso/dispatchQueue/dispatchQueue.h +3 -3
- package/Mso/motifCpp/motifCppTest.h +1 -1
- package/Mso/motifCpp/testCheck.h +1 -1
- package/Mso/oacr/oacr.h +1 -1
- package/Mso/smartPtr/smartPointerBase.h +1 -1
- package/Mso/src/dispatchQueue/looperScheduler.cpp +2 -2
- package/Mso/src/dispatchQueue/queueService.cpp +1 -1
- package/Mso/src/dispatchQueue/taskQueue.h +1 -1
- package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +2 -2
- package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +122 -45
- package/Mso/src/eventWaitHandle/eventWaitHandleImpl_win.cpp +2 -2
- package/Mso/src/future/futureImpl.cpp +5 -5
- package/Mso/src/future/futureImpl.h +1 -1
- package/PropertySheets/External/Microsoft.ReactNative.Common.props +3 -0
- package/PropertySheets/External/{Microsoft.ReactNative.WinAppSDK.Common.props → Microsoft.ReactNative.Composition.Common.props} +2 -2
- package/PropertySheets/External/{Microsoft.ReactNative.WinAppSDK.CSharpApp.props → Microsoft.ReactNative.Composition.CppApp.props} +7 -10
- package/PropertySheets/External/Microsoft.ReactNative.Composition.CppApp.targets +19 -0
- package/PropertySheets/External/Microsoft.ReactNative.Composition.Package.props +14 -0
- package/PropertySheets/External/Microsoft.ReactNative.Composition.Package.targets +18 -0
- package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +1 -1
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/PropertySheets/HybridCRT.props +34 -0
- package/PropertySheets/JSEngine.props +1 -2
- package/PropertySheets/React.Cpp.props +0 -1
- package/PropertySheets/Warnings.props +1 -1
- package/PropertySheets/WinUI.props +1 -1
- package/ReactCommon/ReactCommon.vcxproj +15 -9
- package/ReactCommon/ReactCommon.vcxproj.filters +0 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +32 -5
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +20 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaLayoutableShadowNode.cpp +1038 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +228 -38
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +895 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/ShadowTree.cpp +543 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManagerBinding.cpp +1509 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/bits/NumericBitfield.h +67 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +93 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +88 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +606 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.h +344 -0
- package/ReactCommon/Yoga.cpp +497 -3895
- package/ReactCommon/packages.lock.json +30 -0
- package/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1 +22 -0
- package/Scripts/OfficeReact.Win32.nuspec +1 -0
- package/Scripts/rnw-dependencies.ps1 +79 -26
- package/Shared/BaseScriptStoreImpl.cpp +42 -13
- package/Shared/BaseScriptStoreImpl.h +1 -1
- package/Shared/Composition/AutoDraw.h +36 -0
- package/Shared/CxxMessageQueue.cpp +1 -1
- package/Shared/DevSettings.h +3 -0
- package/Shared/DevSupportManager.h +1 -1
- package/Shared/Hasher.cpp +64 -0
- package/Shared/Hasher.h +24 -0
- package/Shared/HermesRuntimeHolder.cpp +6 -6
- package/Shared/IDevSupportManager.h +1 -1
- package/Shared/JSI/ChakraApi.cpp +1 -1
- package/Shared/JSI/ChakraRuntime.cpp +10 -10
- package/Shared/JSI/ChakraRuntime.h +6 -6
- package/Shared/JSI/V8RuntimeHolder.cpp +1 -1
- package/Shared/Modules/IRequestBodyHandler.h +1 -1
- package/Shared/Modules/IUriHandler.h +1 -1
- package/Shared/Modules/PlatformConstantsModule.cpp +1 -1
- package/Shared/Modules/WebSocketModule.cpp +1 -1
- package/Shared/Networking/DefaultBlobResource.cpp +2 -2
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +22 -16
- package/Shared/Networking/OriginPolicyHttpFilter.h +12 -11
- package/Shared/OInstance.cpp +9 -23
- package/Shared/OInstance.h +1 -1
- package/Shared/PackagerConnection.h +1 -1
- package/Shared/SafeLoadLibrary.cpp +8 -44
- package/Shared/SafeLoadLibrary.h +1 -5
- package/Shared/Shared.vcxitems +50 -20
- package/Shared/Shared.vcxitems.filters +26 -17
- package/Shared/Threading/BatchingQueueThread.cpp +5 -5
- package/Shared/Threading/BatchingQueueThread.h +4 -4
- package/Shared/TurboModuleManager.cpp +1 -1
- package/Shared/Utils.cpp +1 -1
- package/Shared/tracing/fbsystrace.h +1 -1
- package/codegen/NativeAnimatedModuleSpec.g.h +2 -0
- package/codegen/NativeAnimatedTurboModuleSpec.g.h +2 -0
- package/codegen/NativeAppStateSpec.g.h +11 -21
- package/codegen/NativeDeviceInfoSpec.g.h +4 -14
- package/codegen/NativeI18nManagerSpec.g.h +6 -16
- package/codegen/NativeIntersectionObserverSpec.g.h +96 -0
- package/codegen/NativeMutationObserverSpec.g.h +90 -0
- package/codegen/NativePerformanceObserverSpec.g.h +19 -13
- package/codegen/NativePerformanceSpec.g.h +6 -23
- package/codegen/NativePlatformConstantsAndroidSpec.g.h +22 -30
- package/codegen/NativePlatformConstantsIOSSpec.g.h +17 -25
- package/codegen/NativePlatformConstantsWinSpec.g.h +14 -22
- package/codegen/NativeSampleTurboModuleSpec.g.h +36 -0
- package/codegen/NativeSourceCodeSpec.g.h +3 -13
- package/codegen/react/components/rnwcore/EventEmitters.cpp +85 -58
- package/codegen/react/components/rnwcore/EventEmitters.h +17 -35
- package/codegen/react/components/rnwcore/Props.h +16 -17
- package/codegen/rnwcoreJSI-generated.cpp +1462 -319
- package/codegen/rnwcoreJSI.h +1609 -462
- package/fmt/packages.lock.json +13 -0
- package/index.windows.js +3 -3
- package/{Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js → jest/ReactNativeInternalFeatureFlagsMock.js} +2 -1
- package/jest/__tests__/setup-test.js +18 -0
- package/jest/mockModal.js +6 -4
- package/jest/setup.js +61 -30
- package/just-task.js +1 -0
- package/package.json +37 -42
- package/template/cs-app/proj/MyApp.csproj +0 -1
- package/template/cs-lib/proj/MyLib.csproj +0 -1
- package/templates/.clang-format +4 -0
- package/templates/cpp-app/metro.config.js +51 -0
- package/templates/cpp-app/template.config.js +119 -0
- package/templates/cpp-app/windows/ExperimentalFeatures.props +12 -0
- package/templates/cpp-app/windows/MyApp/MyApp.cpp +284 -0
- package/templates/cpp-app/windows/MyApp/MyApp.h +3 -0
- package/templates/cpp-app/windows/MyApp/MyApp.ico +0 -0
- package/templates/cpp-app/windows/MyApp/MyApp.rc +0 -0
- package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +142 -0
- package/templates/cpp-app/windows/MyApp/MyApp.vcxproj.filters +55 -0
- package/templates/cpp-app/windows/MyApp/_gitignore +1 -0
- package/templates/cpp-app/windows/MyApp/pch.cpp +1 -0
- package/templates/cpp-app/windows/MyApp/pch.h +35 -0
- package/templates/cpp-app/windows/MyApp/resource.h +18 -0
- package/templates/cpp-app/windows/MyApp/small.ico +0 -0
- package/templates/cpp-app/windows/MyApp/targetver.h +8 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/LockScreenLogo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/SplashScreen.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Square150x150Logo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Square44x44Logo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Square44x44Logo.targetsize-24_altform-unplated.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/StoreLogo.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Wide310x150Logo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/MyApp.Package.wapproj +78 -0
- package/{template/cs-app-WinAppSDK/MyApp → templates/cpp-app/windows/MyApp.Package}/Package.appxmanifest +9 -8
- package/templates/cpp-app/windows/MyApp.sln +176 -0
- package/templates/cpp-app/windows/_gitignore +41 -0
- package/templates/old/generateWrapper.js +67 -0
- package/templates/old/uwp-cpp-app/template.config.js +15 -0
- package/templates/old/uwp-cpp-lib/template.config.js +15 -0
- package/templates/old/uwp-cs-app/template.config.js +15 -0
- package/templates/old/uwp-cs-lib/template.config.js +15 -0
- package/types/experimental.d.ts +44 -0
- package/types/index.d.ts +2 -1
- package/types/modules/Devtools.d.ts +1 -0
- package/types/modules/globals.d.ts +16 -1
- package/Libraries/Components/View/ViewWindows.d.ts +0 -19
- package/Libraries/Components/View/ViewWindows.js +0 -22
- package/Libraries/Components/View/ViewWindows.js.map +0 -1
- package/Libraries/Components/View/ViewWindowsProps.d.ts +0 -69
- package/Libraries/Components/View/ViewWindowsProps.js +0 -8
- package/Libraries/Components/View/ViewWindowsProps.js.map +0 -1
- package/Libraries/Utilities/AcessibilityMapping.js +0 -154
- package/Libraries/Utilities/NativeDevSplitBundleLoader.js +0 -19
- package/Libraries/Utilities/useColorScheme.windows.js +0 -26
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +0 -61
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +0 -34
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +0 -42
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharp.PackageReferences.props +0 -11
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.targets +0 -51
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +0 -237
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +0 -59
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +0 -159
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +0 -94
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +0 -465
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +0 -116
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +0 -98
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +0 -326
- package/Scripts/Microsoft.ReactNative.WindowsAppSDK.nuspec +0 -30
- package/Shared/V8JSIRuntimeHolder.cpp +0 -71
- package/Shared/V8JSIRuntimeHolder.h +0 -56
- package/codegen/NativeDevSplitBundleLoaderSpec.g.h +0 -34
- package/template/cs-app-WinAppSDK/MyApp/App.xaml +0 -16
- package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +0 -70
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +0 -14
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +0 -38
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +0 -19
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +0 -19
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +0 -19
- package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +0 -10
- package/template/cs-app-WinAppSDK/MyApp/app.manifest +0 -15
- package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +0 -24
- package/template/cs-app-WinAppSDK/proj/MyApp.csproj +0 -53
- package/template/cs-app-WinAppSDK/proj/MyApp.sln +0 -43
- package/template/cs-app-WinAppSDK/proj/NuGet_Config +0 -19
- /package/Libraries/Components/DrawerAndroid/{DrawerLayoutAndroid.ios.js → DrawerLayoutAndroid.js} +0 -0
- /package/Libraries/{Renderer/public → ReactNative/ReactFabricPublicInstance}/ReactFabricPublicInstanceUtils.js +0 -0
|
@@ -130,6 +130,7 @@ void FrameworkElementViewManager::GetNativeProps(const winrt::Microsoft::ReactNa
|
|
|
130
130
|
GetAccessibilityStateProps(writer);
|
|
131
131
|
winrt::Microsoft::ReactNative::WriteProperty(writer, L"accessibilityHint", L"string");
|
|
132
132
|
winrt::Microsoft::ReactNative::WriteProperty(writer, L"accessibilityLabel", L"string");
|
|
133
|
+
winrt::Microsoft::ReactNative::WriteProperty(writer, L"accessibilityLevel", L"number");
|
|
133
134
|
winrt::Microsoft::ReactNative::WriteProperty(writer, L"accessibilityPosInSet", L"number");
|
|
134
135
|
winrt::Microsoft::ReactNative::WriteProperty(writer, L"accessibilitySetSize", L"number");
|
|
135
136
|
winrt::Microsoft::ReactNative::WriteProperty(writer, L"testID", L"string");
|
|
@@ -287,6 +288,15 @@ bool FrameworkElementViewManager::UpdateProperty(
|
|
|
287
288
|
} else if (propertyValue.IsNull()) {
|
|
288
289
|
element.ClearValue(xaml::Automation::AutomationProperties::AccessibilityViewProperty());
|
|
289
290
|
}
|
|
291
|
+
} else if (propertyName == "accessibilityLevel") {
|
|
292
|
+
if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Double ||
|
|
293
|
+
propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Int64) {
|
|
294
|
+
auto value = static_cast<int>(propertyValue.AsDouble());
|
|
295
|
+
auto boxedValue = winrt::Windows::Foundation::PropertyValue::CreateInt32(value);
|
|
296
|
+
element.SetValue(xaml::Automation::AutomationProperties::LevelProperty(), boxedValue);
|
|
297
|
+
} else if (propertyValue.IsNull()) {
|
|
298
|
+
element.ClearValue(xaml::Automation::AutomationProperties::LevelProperty());
|
|
299
|
+
}
|
|
290
300
|
} else if (propertyName == "accessibilityLiveRegion") {
|
|
291
301
|
if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::String) {
|
|
292
302
|
auto value = propertyValue.AsString();
|
|
@@ -424,107 +434,138 @@ bool FrameworkElementViewManager::UpdateProperty(
|
|
|
424
434
|
element.ClearValue(DynamicAutomationProperties::AccessibilityRoleProperty());
|
|
425
435
|
}
|
|
426
436
|
} else if (propertyName == "accessibilityState") {
|
|
427
|
-
bool states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::CountStates)] = {};
|
|
428
|
-
|
|
429
437
|
if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Object) {
|
|
430
438
|
for (const auto &pair : propertyValue.AsObject()) {
|
|
439
|
+
// States are provided with the name and either a valid value if the state is supported or null if the state
|
|
440
|
+
// isn't
|
|
431
441
|
const std::string &innerName = pair.first;
|
|
432
442
|
const auto &innerValue = pair.second;
|
|
433
443
|
|
|
434
|
-
|
|
444
|
+
xaml::DependencyProperty targetDP = nullptr;
|
|
445
|
+
xaml::Automation::AutomationProperty targetAP = nullptr;
|
|
435
446
|
|
|
447
|
+
bool valueChanged = false;
|
|
448
|
+
|
|
449
|
+
winrt::IInspectable oldDPValue = xaml::DependencyProperty::UnsetValue();
|
|
450
|
+
winrt::IInspectable newDPValue = xaml::DependencyProperty::UnsetValue();
|
|
451
|
+
|
|
452
|
+
winrt::IInspectable oldAPValue = nullptr;
|
|
453
|
+
winrt::IInspectable newAPValue = nullptr;
|
|
454
|
+
|
|
455
|
+
// Determine which attached dependency property to update and which automation property to raise a changed
|
|
456
|
+
// event
|
|
436
457
|
if (innerName == "selected") {
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
const auto prevSelectedState = DynamicAutomationProperties::GetAccessibilityStateSelected(element);
|
|
440
|
-
if (peer != nullptr && prevSelectedState != innerValue.AsBoolean()) {
|
|
441
|
-
peer.RaisePropertyChangedEvent(
|
|
442
|
-
winrt::SelectionItemPatternIdentifiers::IsSelectedProperty(),
|
|
443
|
-
winrt::box_value(prevSelectedState),
|
|
444
|
-
winrt::box_value(innerValue.AsBoolean()));
|
|
445
|
-
}
|
|
458
|
+
targetDP = DynamicAutomationProperties::AccessibilityStateSelectedProperty();
|
|
459
|
+
targetAP = winrt::SelectionItemPatternIdentifiers::IsSelectedProperty();
|
|
446
460
|
} else if (innerName == "disabled") {
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
const auto prevDisabledState = DynamicAutomationProperties::GetAccessibilityStateDisabled(element);
|
|
450
|
-
|
|
451
|
-
if (peer != nullptr && prevDisabledState != innerValue.AsBoolean()) {
|
|
452
|
-
peer.RaisePropertyChangedEvent(
|
|
453
|
-
winrt::AutomationElementIdentifiers::IsEnabledProperty(),
|
|
454
|
-
winrt::box_value(!prevDisabledState),
|
|
455
|
-
winrt::box_value(!innerValue.AsBoolean()));
|
|
456
|
-
}
|
|
461
|
+
targetDP = DynamicAutomationProperties::AccessibilityStateDisabledProperty();
|
|
462
|
+
targetAP = winrt::AutomationElementIdentifiers::IsEnabledProperty();
|
|
457
463
|
} else if (innerName == "checked") {
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
464
|
+
targetDP = DynamicAutomationProperties::AccessibilityStateCheckedProperty();
|
|
465
|
+
targetAP = winrt::TogglePatternIdentifiers::ToggleStateProperty();
|
|
466
|
+
} else if (innerName == "busy") {
|
|
467
|
+
targetDP = DynamicAutomationProperties::AccessibilityStateBusyProperty();
|
|
468
|
+
targetAP = winrt::AutomationElementIdentifiers::ItemStatusProperty();
|
|
469
|
+
} else if (innerName == "expanded") {
|
|
470
|
+
targetDP = DynamicAutomationProperties::AccessibilityStateExpandedProperty();
|
|
471
|
+
targetAP = winrt::ExpandCollapsePatternIdentifiers::ExpandCollapseStateProperty();
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
if (targetDP != nullptr) {
|
|
475
|
+
// Determine values for DP and AP
|
|
476
|
+
|
|
477
|
+
oldDPValue = element.ReadLocalValue(targetDP);
|
|
478
|
+
|
|
479
|
+
const bool hasOldValue = oldDPValue != xaml::DependencyProperty::UnsetValue();
|
|
480
|
+
|
|
481
|
+
if (innerName == "checked") {
|
|
482
|
+
// Checked is special and can support null, boolean true, boolean false, or the string "mixed"
|
|
483
|
+
|
|
484
|
+
auto oldValue = hasOldValue
|
|
485
|
+
? winrt::unbox_value<winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue>(oldDPValue)
|
|
486
|
+
: winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue::Unchecked;
|
|
487
|
+
|
|
488
|
+
winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue newValue =
|
|
489
|
+
winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue::Unchecked;
|
|
490
|
+
|
|
491
|
+
const auto pRawBooleanNewValue = innerValue.TryGetBoolean();
|
|
492
|
+
const auto pRawStringNewValue = innerValue.TryGetString();
|
|
493
|
+
|
|
494
|
+
if (pRawBooleanNewValue != nullptr) {
|
|
495
|
+
// State value is a valid boolean
|
|
496
|
+
newValue = *pRawBooleanNewValue
|
|
497
|
+
? winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue::Checked
|
|
498
|
+
: winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue::Unchecked;
|
|
499
|
+
newDPValue = winrt::box_value<winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue>(newValue);
|
|
500
|
+
valueChanged = !hasOldValue || (oldValue != newValue); // Value was unset before or set but different
|
|
501
|
+
} else if (pRawStringNewValue != nullptr && *pRawStringNewValue == "mixed") {
|
|
502
|
+
// State value is the valid string "mixed"
|
|
503
|
+
newValue = winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue::Mixed;
|
|
504
|
+
newDPValue = winrt::box_value<winrt::Microsoft::ReactNative::AccessibilityStateCheckedValue>(newValue);
|
|
505
|
+
valueChanged = !hasOldValue || (oldValue != newValue); // Value was unset before or set but different
|
|
506
|
+
} else {
|
|
507
|
+
// State value is null or not valid
|
|
508
|
+
valueChanged = hasOldValue; // Value was set before
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
oldAPValue =
|
|
512
|
+
winrt::box_value(hasOldValue ? static_cast<winrt::ToggleState>(oldValue) : winrt::ToggleState::Off);
|
|
513
|
+
newAPValue = winrt::box_value(static_cast<winrt::ToggleState>(newValue));
|
|
514
|
+
} else {
|
|
515
|
+
// All other accessibility state values support null, boolean true or boolean false
|
|
516
|
+
|
|
517
|
+
auto oldValue = hasOldValue ? winrt::unbox_value<bool>(oldDPValue) : false;
|
|
518
|
+
|
|
519
|
+
const bool *pNewValue = innerValue.TryGetBoolean();
|
|
520
|
+
|
|
521
|
+
if (pNewValue != nullptr) {
|
|
522
|
+
// State value is a valid boolean
|
|
523
|
+
newDPValue = winrt::box_value<bool>(*pNewValue);
|
|
524
|
+
valueChanged = !hasOldValue || (oldValue != *pNewValue); // Value was unset before or set but different
|
|
525
|
+
} else {
|
|
526
|
+
// State value is null or not valid
|
|
527
|
+
valueChanged = hasOldValue; // Value was set before
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
if (innerName == "disabled") {
|
|
531
|
+
// Disabled maps to enabled, flip boolean
|
|
532
|
+
oldAPValue = winrt::box_value(!(hasOldValue ? oldValue : false));
|
|
533
|
+
newAPValue = winrt::box_value(!(pNewValue != nullptr ? *pNewValue : false));
|
|
534
|
+
} else if (innerName == "busy") {
|
|
535
|
+
oldAPValue = winrt::box_value(hasOldValue && oldValue ? L"Busy" : L"");
|
|
536
|
+
newAPValue = winrt::box_value(pNewValue != nullptr && *pNewValue ? L"Busy" : L"");
|
|
537
|
+
} else if (innerName == "expanded") {
|
|
538
|
+
oldAPValue = winrt::box_value(
|
|
539
|
+
hasOldValue && oldValue ? winrt::ExpandCollapseState::Expanded
|
|
540
|
+
: winrt::ExpandCollapseState::Collapsed);
|
|
541
|
+
newAPValue = winrt::box_value(
|
|
542
|
+
pNewValue != nullptr && *pNewValue ? winrt::ExpandCollapseState::Expanded
|
|
543
|
+
: winrt::ExpandCollapseState::Collapsed);
|
|
544
|
+
} else {
|
|
545
|
+
// Direct mapping of boolean
|
|
546
|
+
oldAPValue = winrt::box_value(hasOldValue ? oldValue : false);
|
|
547
|
+
newAPValue = winrt::box_value(pNewValue != nullptr ? *pNewValue : false);
|
|
487
548
|
}
|
|
488
549
|
}
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
if (
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
prevExpandedState ? winrt::ExpandCollapseState::Expanded : winrt::ExpandCollapseState::Collapsed;
|
|
505
|
-
peer.RaisePropertyChangedEvent(
|
|
506
|
-
winrt::ExpandCollapsePatternIdentifiers::ExpandCollapseStateProperty(),
|
|
507
|
-
winrt::box_value(oldValue),
|
|
508
|
-
winrt::box_value(newValue));
|
|
550
|
+
|
|
551
|
+
// Update attached dependency property for element
|
|
552
|
+
if (newDPValue != xaml::DependencyProperty::UnsetValue()) {
|
|
553
|
+
// State value was valid, so set
|
|
554
|
+
element.SetValue(targetDP, newDPValue);
|
|
555
|
+
} else {
|
|
556
|
+
// State value is null or not valid, so clear
|
|
557
|
+
element.ClearValue(targetDP);
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
// Raise automation property changed event if the value changed
|
|
561
|
+
if (valueChanged && targetAP != nullptr && oldAPValue != nullptr && newAPValue != nullptr) {
|
|
562
|
+
if (auto peer = xaml::Automation::Peers::FrameworkElementAutomationPeer::FromElement(element)) {
|
|
563
|
+
peer.RaisePropertyChangedEvent(targetAP, oldAPValue, newAPValue);
|
|
564
|
+
}
|
|
509
565
|
}
|
|
510
566
|
}
|
|
511
567
|
}
|
|
512
568
|
}
|
|
513
|
-
|
|
514
|
-
DynamicAutomationProperties::SetAccessibilityStateSelected(
|
|
515
|
-
element, states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Selected)]);
|
|
516
|
-
DynamicAutomationProperties::SetAccessibilityStateDisabled(
|
|
517
|
-
element, states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Disabled)]);
|
|
518
|
-
DynamicAutomationProperties::SetAccessibilityStateChecked(
|
|
519
|
-
element, states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Checked)]);
|
|
520
|
-
DynamicAutomationProperties::SetAccessibilityStateUnchecked(
|
|
521
|
-
element, states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Unchecked)]);
|
|
522
|
-
DynamicAutomationProperties::SetAccessibilityStateBusy(
|
|
523
|
-
element, states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Busy)]);
|
|
524
|
-
DynamicAutomationProperties::SetAccessibilityStateExpanded(
|
|
525
|
-
element, states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Expanded)]);
|
|
526
|
-
DynamicAutomationProperties::SetAccessibilityStateCollapsed(
|
|
527
|
-
element, states[static_cast<int32_t>(winrt::Microsoft::ReactNative::AccessibilityStates::Collapsed)]);
|
|
528
569
|
} else if (propertyName == "accessibilityValue") {
|
|
529
570
|
winrt::hstring textValue;
|
|
530
571
|
const int numericValuesCount = 3;
|
|
@@ -13,7 +13,7 @@ namespace Microsoft::ReactNative {
|
|
|
13
13
|
|
|
14
14
|
struct ICompositionRootView : public facebook::react::IReactRootView {
|
|
15
15
|
virtual winrt::Microsoft::ReactNative::Composition::IVisual GetVisual() const noexcept = 0;
|
|
16
|
-
virtual
|
|
16
|
+
virtual float ScaleFactor() noexcept = 0;
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
} // namespace Microsoft::ReactNative
|
|
@@ -24,7 +24,7 @@ using namespace xaml::Controls;
|
|
|
24
24
|
using namespace xaml::Automation::Peers;
|
|
25
25
|
} // namespace winrt
|
|
26
26
|
|
|
27
|
-
// Such code is better to move to a
|
|
27
|
+
// Such code is better to move to a separate parser layer
|
|
28
28
|
template <>
|
|
29
29
|
struct json_type_traits<Microsoft::ReactNative::ReactImageSource> {
|
|
30
30
|
static Microsoft::ReactNative::ReactImageSource parseJson(const winrt::Microsoft::ReactNative::JSValue &json) {
|
|
@@ -95,7 +95,7 @@ class EffectBase : public winrt::implements<EffectBase, abi::IGraphicsEffectD2D1
|
|
|
95
95
|
return winrt::PropertyValue::CreateSingleArray(reinterpret_cast<std::array<float, ComponentCount> &>(values));
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
// Helpers to implement GetNamedPropertyMapping more
|
|
98
|
+
// Helpers to implement GetNamedPropertyMapping more succinctly
|
|
99
99
|
struct NamedProperty {
|
|
100
100
|
const wchar_t *Name; // Compile-time constant
|
|
101
101
|
UINT Index; // Property index
|
|
@@ -128,7 +128,7 @@ class EffectBase : public winrt::implements<EffectBase, abi::IGraphicsEffectD2D1
|
|
|
128
128
|
};
|
|
129
129
|
|
|
130
130
|
//-----------------------------------------------------------------------------------------------------------------
|
|
131
|
-
// Helper macros to make implementation more
|
|
131
|
+
// Helper macros to make implementation more succinct
|
|
132
132
|
//-----------------------------------------------------------------------------------------------------------------
|
|
133
133
|
|
|
134
134
|
#pragma push_macro("DECLARE_D2D_GUID")
|
|
@@ -34,7 +34,7 @@ namespace Microsoft::ReactNative {
|
|
|
34
34
|
|
|
35
35
|
/*static*/ winrt::com_ptr<ReactImage> ReactImage::Create() {
|
|
36
36
|
auto reactImage = winrt::make_self<ReactImage>();
|
|
37
|
-
// Grid
|
|
37
|
+
// Grid inherits the layout direction from parent and mirrors the background image in RTL mode.
|
|
38
38
|
// Forcing the container to LTR mode to avoid the unexpected mirroring behavior.
|
|
39
39
|
reactImage->FlowDirection(xaml::FlowDirection::LeftToRight);
|
|
40
40
|
return reactImage;
|
|
@@ -19,7 +19,7 @@ using namespace xaml::Media;
|
|
|
19
19
|
namespace Microsoft::ReactNative {
|
|
20
20
|
|
|
21
21
|
SIPEventHandler::SIPEventHandler(const Mso::React::IReactContext &context)
|
|
22
|
-
: m_context(&context),
|
|
22
|
+
: m_context(&context), m_fireKeyboardEvents(false), m_finalRect(winrt::RectHelper::Empty()){};
|
|
23
23
|
|
|
24
24
|
SIPEventHandler::~SIPEventHandler() {
|
|
25
25
|
m_occlusionsChanged_revoker = {};
|
|
@@ -29,7 +29,7 @@ SIPEventHandler::~SIPEventHandler() {
|
|
|
29
29
|
// TryShow and TryHide works on >= RS5
|
|
30
30
|
|
|
31
31
|
void SIPEventHandler::AttachView(XamlView xamlView, bool fireKeyboardEvents) {
|
|
32
|
-
|
|
32
|
+
m_fireKeyboardEvents = fireKeyboardEvents;
|
|
33
33
|
// hookup CoreInputView only after element is in the tree
|
|
34
34
|
m_view = winrt::make_weak(xamlView);
|
|
35
35
|
if (winrt::VisualTreeHelper::GetParent(xamlView)) {
|
|
@@ -66,7 +66,7 @@ void SIPEventHandler::InitializeCoreInputView() {
|
|
|
66
66
|
if (!e.Handled()) {
|
|
67
67
|
bool wasShowing = m_isShowing;
|
|
68
68
|
m_isShowing = !IsOcclusionsEmpty(e.Occlusions());
|
|
69
|
-
if (wasShowing != m_isShowing &&
|
|
69
|
+
if (wasShowing != m_isShowing && m_fireKeyboardEvents) {
|
|
70
70
|
if (!m_isShowing) {
|
|
71
71
|
folly::dynamic params = folly::dynamic::object("screenY", 0)("screenX", 0)("width", 0)("height", 0);
|
|
72
72
|
SendEvent("keyboardDidHide", std::move(params));
|
|
@@ -85,14 +85,14 @@ void SIPEventHandler::InitializeCoreInputView() {
|
|
|
85
85
|
}
|
|
86
86
|
/*
|
|
87
87
|
void SIPEventHandler::TryShow() {
|
|
88
|
-
if (IsRS5OrHigher() && m_coreInputView && !m_isShowing) { // CoreInputView.TryShow is only
|
|
88
|
+
if (IsRS5OrHigher() && m_coreInputView && !m_isShowing) { // CoreInputView.TryShow is only available after RS5
|
|
89
89
|
m_coreInputView.TryShow();
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
*/
|
|
93
93
|
|
|
94
94
|
void SIPEventHandler::TryHide() {
|
|
95
|
-
if (IsRS5OrHigher() && m_coreInputView && m_isShowing) { // CoreInputView.TryHide is only
|
|
95
|
+
if (IsRS5OrHigher() && m_coreInputView && m_isShowing) { // CoreInputView.TryHide is only available after RS5
|
|
96
96
|
m_coreInputView.TryHide();
|
|
97
97
|
}
|
|
98
98
|
}
|
|
@@ -45,10 +45,10 @@ enum class ShadowCorners : uint8_t {
|
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
struct ShadowNodeLayout {
|
|
48
|
-
float Left;
|
|
49
|
-
float Top;
|
|
50
|
-
float Width;
|
|
51
|
-
float Height;
|
|
48
|
+
float Left{0.f};
|
|
49
|
+
float Top{0.f};
|
|
50
|
+
float Width{0.f};
|
|
51
|
+
float Height{0.f};
|
|
52
52
|
};
|
|
53
53
|
|
|
54
54
|
extern const DECLSPEC_SELECTANY double c_UndefinedEdge = -1;
|
|
@@ -146,11 +146,14 @@ struct REACTWINDOWS_EXPORT ShadowNodeBase : public ShadowNode {
|
|
|
146
146
|
bool m_onMouseEnterRegistered = false;
|
|
147
147
|
bool m_onMouseLeaveRegistered = false;
|
|
148
148
|
|
|
149
|
+
// Overflow
|
|
150
|
+
bool m_overflowHidden = false;
|
|
151
|
+
|
|
149
152
|
// Pointer events
|
|
150
153
|
PointerEventsKind m_pointerEvents = PointerEventsKind::Auto;
|
|
151
154
|
|
|
152
155
|
// Layout
|
|
153
|
-
ShadowNodeLayout m_layout;
|
|
156
|
+
ShadowNodeLayout m_layout{};
|
|
154
157
|
|
|
155
158
|
// Support Keyboard
|
|
156
159
|
public:
|
|
@@ -46,7 +46,7 @@ class SwitchShadowNode : public ShadowNodeBase {
|
|
|
46
46
|
// sets the resources to Empty SolidColorBrushes if the user sets the color before runtime, this lets the user change
|
|
47
47
|
// the color of the SolidColorBrush at runtime and keeps the toggleswitches who did not change colors on the default
|
|
48
48
|
// ThemeResource
|
|
49
|
-
void
|
|
49
|
+
void setEmptyResourceBrushes(
|
|
50
50
|
const winrt::Microsoft::ReactNative::JSValueObject &props,
|
|
51
51
|
const xaml::Controls::ToggleSwitch toggleSwitch) {
|
|
52
52
|
auto brush = xaml::Media::SolidColorBrush();
|
|
@@ -83,7 +83,7 @@ void SwitchShadowNode::createView(const winrt::Microsoft::ReactNative::JSValueOb
|
|
|
83
83
|
Super::createView(props);
|
|
84
84
|
auto toggleSwitch = GetView().as<winrt::ToggleSwitch>();
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
setEmptyResourceBrushes(props, toggleSwitch);
|
|
87
87
|
|
|
88
88
|
m_toggleSwitchToggledRevoker = toggleSwitch.Toggled(winrt::auto_revoke, [=](auto &&, auto &&) {
|
|
89
89
|
if (m_offTrackColor)
|
|
@@ -52,7 +52,7 @@ void TextTransformVisitor::VisitVirtualText(ShadowNodeBase *node) {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
bool TextTransformVisitor::ShouldApplyTransform(TextTransform transform) {
|
|
55
|
-
// If the visitor is applied in the context of a
|
|
55
|
+
// If the visitor is applied in the context of a textTransform prop value
|
|
56
56
|
// change, the m_forceUpdate flag is set to true.
|
|
57
57
|
if (m_forceUpdate) {
|
|
58
58
|
// When the textTransform prop changes, only recurse if at the root node
|
|
@@ -41,7 +41,7 @@ struct Selection {
|
|
|
41
41
|
};
|
|
42
42
|
} // namespace Microsoft::ReactNative
|
|
43
43
|
|
|
44
|
-
// Such code is better to move to a
|
|
44
|
+
// Such code is better to move to a separate parser layer
|
|
45
45
|
template <>
|
|
46
46
|
struct json_type_traits<Microsoft::ReactNative::Selection> {
|
|
47
47
|
static Microsoft::ReactNative::Selection parseJson(const winrt::Microsoft::ReactNative::JSValue &json) {
|
|
@@ -127,7 +127,7 @@ class TextInputShadowNode : public ShadowNodeBase {
|
|
|
127
127
|
void dispatchTextInputChangeEvent(winrt::hstring newText);
|
|
128
128
|
void registerEvents();
|
|
129
129
|
void registerPreviewKeyDown();
|
|
130
|
-
void
|
|
130
|
+
void UpdateCaretColorOrHideIfNeeded();
|
|
131
131
|
void setPasswordBoxPlaceholderForeground(
|
|
132
132
|
xaml::Controls::PasswordBox passwordBox,
|
|
133
133
|
const winrt::Microsoft::ReactNative::JSValue &color);
|
|
@@ -144,6 +144,8 @@ class TextInputShadowNode : public ShadowNodeBase {
|
|
|
144
144
|
bool m_hideCaret = false;
|
|
145
145
|
bool m_shouldClearTextOnSubmit = false;
|
|
146
146
|
|
|
147
|
+
winrt::Microsoft::ReactNative::JSValue m_cursorColor;
|
|
148
|
+
|
|
147
149
|
winrt::Microsoft::ReactNative::JSValue m_placeholderTextColor;
|
|
148
150
|
std::vector<HandledKeyboardEvent> m_submitKeyEvents{};
|
|
149
151
|
|
|
@@ -260,7 +262,7 @@ void TextInputShadowNode::registerEvents() {
|
|
|
260
262
|
control.as<xaml::Controls::PasswordBox>().SelectAll();
|
|
261
263
|
}
|
|
262
264
|
}
|
|
263
|
-
|
|
265
|
+
UpdateCaretColorOrHideIfNeeded();
|
|
264
266
|
|
|
265
267
|
folly::dynamic eventData = folly::dynamic::object("target", tag);
|
|
266
268
|
if (!m_updating)
|
|
@@ -330,7 +332,7 @@ void TextInputShadowNode::registerEvents() {
|
|
|
330
332
|
}
|
|
331
333
|
});
|
|
332
334
|
}
|
|
333
|
-
|
|
335
|
+
UpdateCaretColorOrHideIfNeeded();
|
|
334
336
|
});
|
|
335
337
|
|
|
336
338
|
if (control.try_as<xaml::IUIElement7>()) {
|
|
@@ -448,14 +450,24 @@ bool TextInputShadowNode::IsTextBox() {
|
|
|
448
450
|
return !!GetView().try_as<xaml::Controls::TextBox>();
|
|
449
451
|
}
|
|
450
452
|
|
|
451
|
-
// hacking solution to hide the caret
|
|
452
|
-
void TextInputShadowNode::
|
|
453
|
+
// hacking solution to hide the caret or change its color
|
|
454
|
+
void TextInputShadowNode::UpdateCaretColorOrHideIfNeeded() {
|
|
455
|
+
bool updateRequired = false;
|
|
456
|
+
xaml::Media::SolidColorBrush color;
|
|
457
|
+
|
|
453
458
|
if (m_hideCaret) {
|
|
459
|
+
updateRequired = true;
|
|
460
|
+
color = xaml::Media::SolidColorBrush(winrt::Colors::Transparent());
|
|
461
|
+
} else if (!m_cursorColor.IsNull()) {
|
|
462
|
+
updateRequired = true;
|
|
463
|
+
color = SolidColorBrushFrom(m_cursorColor);
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
if (updateRequired) {
|
|
454
467
|
auto control = GetView().as<xaml::Controls::Control>();
|
|
455
468
|
if (auto caret = FindCaret(control)) {
|
|
456
469
|
caret.CompositeMode(xaml::Media::ElementCompositeMode::Inherit);
|
|
457
|
-
|
|
458
|
-
caret.Fill(transparentColor);
|
|
470
|
+
caret.Fill(color);
|
|
459
471
|
}
|
|
460
472
|
}
|
|
461
473
|
}
|
|
@@ -520,7 +532,7 @@ void TextInputShadowNode::updateProperties(winrt::Microsoft::ReactNative::JSValu
|
|
|
520
532
|
} else if (propertyName == "caretHidden") {
|
|
521
533
|
if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Boolean) {
|
|
522
534
|
m_hideCaret = propertyValue.AsBoolean();
|
|
523
|
-
|
|
535
|
+
UpdateCaretColorOrHideIfNeeded();
|
|
524
536
|
}
|
|
525
537
|
} else if (propertyName == "focusable") {
|
|
526
538
|
// parent class also sets isTabStop
|
|
@@ -581,6 +593,11 @@ void TextInputShadowNode::updateProperties(winrt::Microsoft::ReactNative::JSValu
|
|
|
581
593
|
isTextBox ? xaml::Controls::TextBox::PlaceholderTextProperty()
|
|
582
594
|
: xaml::Controls::PasswordBox::PlaceholderTextProperty());
|
|
583
595
|
}
|
|
596
|
+
} else if (propertyName == "cursorColor") {
|
|
597
|
+
m_cursorColor = nullptr;
|
|
598
|
+
if (IsValidColorValue(propertyValue)) {
|
|
599
|
+
m_cursorColor = propertyValue.Copy();
|
|
600
|
+
}
|
|
584
601
|
} else if (propertyName == "selectionColor") {
|
|
585
602
|
if (IsValidColorValue(propertyValue)) {
|
|
586
603
|
control.SetValue(
|
|
@@ -593,9 +610,9 @@ void TextInputShadowNode::updateProperties(winrt::Microsoft::ReactNative::JSValu
|
|
|
593
610
|
: xaml::Controls::PasswordBox::SelectionHighlightColorProperty());
|
|
594
611
|
} else if (propertyName == "keyboardType") {
|
|
595
612
|
if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::String) {
|
|
596
|
-
auto
|
|
613
|
+
auto inputScopeNameValue = parseKeyboardType(propertyValue, isTextBox);
|
|
597
614
|
auto scope = xaml::Input::InputScope();
|
|
598
|
-
auto scopeName = xaml::Input::InputScopeName(
|
|
615
|
+
auto scopeName = xaml::Input::InputScopeName(inputScopeNameValue);
|
|
599
616
|
auto names = scope.Names();
|
|
600
617
|
names.Append(scopeName);
|
|
601
618
|
control.SetValue(
|
|
@@ -676,7 +693,7 @@ void TextInputShadowNode::updateProperties(winrt::Microsoft::ReactNative::JSValu
|
|
|
676
693
|
if (propertyValue.AsString() == "characters") {
|
|
677
694
|
textBox.CharacterCasing(xaml::Controls::CharacterCasing::Upper);
|
|
678
695
|
} else { // anything else turns off autoCap (should be "None" but
|
|
679
|
-
// we don't support "words"/"
|
|
696
|
+
// we don't support "words"/"sentences" yet)
|
|
680
697
|
textBox.CharacterCasing(xaml::Controls::CharacterCasing::Normal);
|
|
681
698
|
}
|
|
682
699
|
} else if (propertyValue.IsNull())
|
|
@@ -822,6 +839,7 @@ void TextInputViewManager::GetNativeProps(const winrt::Microsoft::ReactNative::I
|
|
|
822
839
|
React::WriteProperty(writer, L"placeholder", L"string");
|
|
823
840
|
React::WriteProperty(writer, L"placeholderTextColor", L"Color");
|
|
824
841
|
React::WriteProperty(writer, L"scrollEnabled", L"boolean");
|
|
842
|
+
React::WriteProperty(writer, L"cursorColor", L"Color");
|
|
825
843
|
React::WriteProperty(writer, L"selection", L"Map");
|
|
826
844
|
React::WriteProperty(writer, L"selectionColor", L"Color");
|
|
827
845
|
React::WriteProperty(writer, L"selectTextOnFocus", L"boolean");
|
|
@@ -946,7 +964,7 @@ void TextInputViewManager::TransferProperties(const XamlView &oldView, const Xam
|
|
|
946
964
|
xaml::Controls::TextBox::SelectionHighlightColorProperty(),
|
|
947
965
|
xaml::Controls::PasswordBox::SelectionHighlightColorProperty());
|
|
948
966
|
newView.as<xaml::Controls::PasswordBox>().Password(oldView.as<xaml::Controls::TextBox>().Text());
|
|
949
|
-
// Since both
|
|
967
|
+
// Since both focusable/editable affect isEnabled for PasswordBox, if the oldView is enabled we still need to
|
|
950
968
|
// check isReadOnly
|
|
951
969
|
if (oldView.as<xaml::Controls::TextBox>().IsEnabled()) {
|
|
952
970
|
newView.as<xaml::Controls::PasswordBox>().IsEnabled(!oldView.as<xaml::Controls::TextBox>().IsReadOnly());
|
|
@@ -970,7 +988,7 @@ void TextInputViewManager::TransferProperties(const XamlView &oldView, const Xam
|
|
|
970
988
|
xaml::Controls::PasswordBox::SelectionHighlightColorProperty(),
|
|
971
989
|
xaml::Controls::TextBox::SelectionHighlightColorProperty());
|
|
972
990
|
newView.as<xaml::Controls::TextBox>().Text(oldView.as<xaml::Controls::PasswordBox>().Password());
|
|
973
|
-
// Since both
|
|
991
|
+
// Since both focusable/editable affect isEnabled for PasswordBox, if the oldView is enabled we still need to
|
|
974
992
|
// check isReadOnly
|
|
975
993
|
if (oldView.as<xaml::Controls::PasswordBox>().IsEnabled()) {
|
|
976
994
|
newView.as<xaml::Controls::TextBox>().IsReadOnly(!oldView.as<xaml::Controls::PasswordBox>().IsEnabled());
|
|
@@ -585,7 +585,7 @@ bool TouchEventHandler::PropagatePointerEventAndFindReactSourceBranch(
|
|
|
585
585
|
}
|
|
586
586
|
|
|
587
587
|
//
|
|
588
|
-
//
|
|
588
|
+
// Retrieves the path of nodes from an element to the root.
|
|
589
589
|
// The order of the returned list is from child to parent.
|
|
590
590
|
//
|
|
591
591
|
std::vector<int64_t> GetTagsForBranch(INativeUIManagerHost *host, int64_t tag, int64_t rootTag) {
|
|
@@ -46,7 +46,7 @@ float GetConstrainedResult(float constrainTo, float measuredSize, YGMeasureMode
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
YGSize DefaultYogaSelfMeasureFunc(
|
|
49
|
-
|
|
49
|
+
YGNodeConstRef node,
|
|
50
50
|
float width,
|
|
51
51
|
YGMeasureMode widthMode,
|
|
52
52
|
float height,
|
|
@@ -221,7 +221,7 @@ XamlView ViewManagerBase::CreateView(int64_t tag, const winrt::Microsoft::ReactN
|
|
|
221
221
|
// Set the tag if the element type supports it
|
|
222
222
|
SetTag(view, tag);
|
|
223
223
|
|
|
224
|
-
// In Debug, set the element name to the tag for
|
|
224
|
+
// In Debug, set the element name to the tag for convenient
|
|
225
225
|
// searching within VisualStudio's Live Visual Tree pane
|
|
226
226
|
#ifdef DEBUG
|
|
227
227
|
auto element = view.try_as<xaml::FrameworkElement>();
|
|
@@ -295,6 +295,8 @@ bool ViewManagerBase::UpdateProperty(
|
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
297
|
} else if (TryUpdateMouseEvents(nodeToUpdate, propertyName, propertyValue)) {
|
|
298
|
+
} else if (propertyName == "overflow") {
|
|
299
|
+
nodeToUpdate->m_overflowHidden = propertyValue.AsString() == "hidden";
|
|
298
300
|
} else {
|
|
299
301
|
return false;
|
|
300
302
|
}
|
|
@@ -374,6 +376,16 @@ void ViewManagerBase::SetLayoutProps(
|
|
|
374
376
|
|
|
375
377
|
fe.Width(width);
|
|
376
378
|
fe.Height(height);
|
|
379
|
+
|
|
380
|
+
// Modifying the `overflow` prop will always result in the Yoga node setting
|
|
381
|
+
// `YGNodeHasNewLayout`, so we can reliably update the Clip from this method.
|
|
382
|
+
if (nodeToUpdate.m_overflowHidden) {
|
|
383
|
+
winrt::RectangleGeometry clipGeometry;
|
|
384
|
+
clipGeometry.Rect(winrt::Rect(0, 0, width, height));
|
|
385
|
+
fe.Clip(clipGeometry);
|
|
386
|
+
} else {
|
|
387
|
+
fe.ClearValue(xaml::UIElement::ClipProperty());
|
|
388
|
+
}
|
|
377
389
|
}
|
|
378
390
|
|
|
379
391
|
YGMeasureFunc ViewManagerBase::GetYogaCustomMeasureFunc() const {
|