react-native-windows 0.72.14 → 0.73.0-preview.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.flowconfig +16 -5
- package/Chakra/ChakraHelpers.cpp +1 -1
- package/Chakra/ChakraUtils.cpp +1 -1
- package/Chakra/ChakraValue.h +1 -1
- package/Common/packages.lock.json +13 -0
- package/Directory.Build.props +6 -2
- package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1 -10
- package/Folly/TEMP_UntilFollyUpdate/hash/Hash.h +1016 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +1 -1
- package/Folly/cgmanifest.json +1 -1
- package/Folly/packages.lock.json +23 -0
- package/Libraries/Animated/Animated.js +1 -1
- package/Libraries/Animated/AnimatedImplementation.js +1 -1
- package/Libraries/Animated/NativeAnimatedHelper.js +14 -10
- package/Libraries/Animated/NativeAnimatedModule.js +6 -2
- package/Libraries/Animated/NativeAnimatedTurboModule.js +7 -4
- package/Libraries/Animated/animations/Animation.js +57 -3
- package/Libraries/Animated/animations/DecayAnimation.js +9 -0
- package/Libraries/Animated/animations/SpringAnimation.js +8 -0
- package/Libraries/Animated/animations/TimingAnimation.js +8 -0
- package/Libraries/Animated/components/AnimatedFlatList.js +2 -1
- package/Libraries/Animated/components/AnimatedScrollView.js +2 -0
- package/Libraries/Animated/components/AnimatedSectionList.js +2 -1
- package/Libraries/Animated/createAnimatedComponent.js +1 -0
- package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
- package/Libraries/Animated/nodes/AnimatedObject.js +146 -0
- package/Libraries/Animated/nodes/AnimatedProps.js +19 -7
- package/Libraries/Animated/nodes/AnimatedStyle.js +29 -55
- package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -17
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +17 -0
- package/Libraries/Animated/useAnimatedProps.js +9 -10
- package/Libraries/AppState/AppState.d.ts +1 -1
- package/Libraries/AppState/NativeAppState.js +8 -4
- package/Libraries/AppTheme/AppTheme.js +5 -5
- package/Libraries/BatchedBridge/MessageQueue.js +45 -36
- package/Libraries/Blob/Blob.js +6 -2
- package/Libraries/Blob/BlobManager.js +9 -10
- package/Libraries/Blob/BlobRegistry.js +14 -9
- package/Libraries/Blob/File.js +1 -1
- package/Libraries/Blob/FileReader.js +1 -2
- package/Libraries/Components/Clipboard/Clipboard.d.ts +4 -4
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -1
- package/Libraries/Components/Glyph/Glyph.js +1 -1
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +26 -6
- package/Libraries/Components/Keyboard/KeyboardExt.d.ts +4 -1
- package/Libraries/Components/Keyboard/KeyboardExt.js +3 -0
- package/Libraries/Components/Keyboard/KeyboardExt.js.map +1 -1
- package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +4 -29
- package/Libraries/Components/Keyboard/KeyboardExtProps.js +0 -17
- package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
- package/Libraries/Components/Pressable/Pressable.js +3 -2
- package/Libraries/Components/Pressable/Pressable.windows.js +4 -3
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +20 -0
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.windows.js +7 -1
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +7 -7
- package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +7 -10
- package/Libraries/Components/ScrollView/ScrollView.js +3 -1
- package/Libraries/Components/ScrollView/ScrollView.windows.js +3 -1
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +39 -46
- package/Libraries/Components/Switch/Switch.js +1 -0
- package/Libraries/Components/Switch/Switch.windows.js +259 -0
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
- package/Libraries/Components/TextInput/TextInput.d.ts +49 -7
- package/Libraries/Components/TextInput/TextInput.flow.js +43 -10
- package/Libraries/Components/TextInput/TextInput.js +62 -10
- package/Libraries/Components/TextInput/TextInput.windows.js +100 -14
- package/Libraries/Components/ToastAndroid/{ToastAndroid.ios.js → ToastAndroid.js} +9 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.windows.js +9 -1
- package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +1 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableOpacity.js +4 -1
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -0
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +16 -6
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +9 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
- package/Libraries/Components/View/View.js +46 -32
- package/Libraries/Components/View/View.windows.js +23 -7
- package/Libraries/Components/View/ViewAccessibility.d.ts +27 -1
- package/Libraries/Components/View/ViewAccessibility.windows.js +3 -0
- package/Libraries/Components/View/ViewNativeComponent.js +1 -0
- package/Libraries/Components/View/ViewPropTypes.d.ts +104 -1
- package/Libraries/Components/View/ViewPropTypes.js +18 -3
- package/Libraries/Components/View/ViewPropTypes.windows.js +33 -3
- package/Libraries/Core/Devtools/loadBundleFromServer.js +152 -0
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -1
- package/Libraries/Core/ExceptionsManager.js +16 -7
- package/Libraries/Core/ExtendedError.js +12 -0
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/ReactNativeVersionCheck.js +0 -2
- package/Libraries/Core/__mocks__/NativeExceptionsManager.js +20 -0
- package/Libraries/Core/setUpDeveloperTools.js +5 -1
- package/Libraries/Core/setUpIntersectionObserver.js +16 -0
- package/Libraries/Core/setUpMutationObserver.js +16 -0
- package/Libraries/Core/setUpPerformance.js +6 -13
- package/Libraries/Core/setUpPerformanceObserver.js +16 -0
- package/Libraries/Core/setUpRegeneratorRuntime.js +4 -2
- package/Libraries/DOM/Nodes/ReactNativeElement.js +135 -18
- package/Libraries/DOM/Nodes/ReadOnlyCharacterData.js +72 -0
- package/Libraries/DOM/Nodes/ReadOnlyElement.js +209 -21
- package/Libraries/DOM/Nodes/ReadOnlyNode.js +206 -17
- package/Libraries/DOM/Nodes/ReadOnlyText.js +30 -0
- package/Libraries/DOM/Nodes/Utilities/Traversal.js +54 -0
- package/Libraries/EventEmitter/NativeEventEmitter.d.ts +0 -6
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +15 -4
- package/Libraries/Image/Image.android.js +8 -2
- package/Libraries/Image/Image.d.ts +1 -1
- package/Libraries/Image/Image.ios.js +4 -1
- package/Libraries/Image/Image.windows.js +6 -3
- package/Libraries/Image/ImageBackground.js +3 -0
- package/Libraries/Inspector/DevtoolsOverlay.js +6 -3
- package/Libraries/Inspector/NetworkOverlay.js +2 -2
- package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -5
- package/Libraries/Interaction/PanResponder.js +1 -4
- package/Libraries/IntersectionObserver/IntersectionObserver.js +252 -0
- package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +140 -0
- package/Libraries/IntersectionObserver/IntersectionObserverManager.js +221 -0
- package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +41 -0
- package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +162 -0
- package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +2 -1
- package/Libraries/Lists/FlatList.js +15 -5
- package/Libraries/Lists/SectionList.js +4 -0
- package/Libraries/LogBox/Data/LogBoxLog.js +4 -1
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +5 -2
- package/Libraries/LogBox/Data/parseLogBoxLog.js +57 -20
- package/Libraries/LogBox/UI/AnsiHighlight.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +24 -31
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxMessage.js +4 -7
- package/Libraries/MutationObserver/MutationObserver.js +184 -0
- package/Libraries/MutationObserver/MutationObserverManager.js +218 -0
- package/Libraries/MutationObserver/MutationRecord.js +82 -0
- package/Libraries/MutationObserver/NativeMutationObserver.js +58 -0
- package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +327 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +18 -3
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +33 -0
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +34 -4
- package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -5
- package/Libraries/NativeModules/specs/NativeSourceCode.js +6 -6
- package/Libraries/Network/RCTNetworking.android.js +2 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -4
- package/Libraries/NewAppScreen/components/DebugInstructions.windows.js +2 -2
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +9 -2
- package/Libraries/Performance/QuickPerformanceLogger.js +1 -1
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -1
- package/Libraries/Pressability/Pressability.js +28 -3
- package/Libraries/Pressability/Pressability.windows.js +30 -5
- package/Libraries/ReactNative/AppContainer.js +2 -3
- package/Libraries/ReactNative/AppRegistry.d.ts +0 -5
- package/Libraries/ReactNative/AppRegistry.js +66 -53
- package/Libraries/ReactNative/BridgelessUIManager.js +38 -9
- package/Libraries/ReactNative/FabricUIManager.js +143 -34
- package/Libraries/ReactNative/I18nManager.js +5 -11
- package/Libraries/ReactNative/NativeI18nManager.js +7 -5
- package/Libraries/ReactNative/PaperUIManager.windows.js +2 -2
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +151 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +81 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +492 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +32 -0
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +19 -3
- package/Libraries/ReactNative/UIManager.js +8 -0
- package/Libraries/ReactNative/__mocks__/FabricUIManager.js +648 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +38 -2
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +27 -27
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +27 -27
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -3
- package/Libraries/Renderer/shims/ReactFabric.js +5 -6
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -3
- package/Libraries/Renderer/shims/ReactNative.js +2 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.js +35 -17
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -3
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -3
- package/Libraries/Settings/{Settings.android.js → Settings.js} +4 -4
- package/Libraries/Share/Share.d.ts +3 -9
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +9 -4
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +28 -13
- package/Libraries/StyleSheet/PlatformColorValueTypes.windows.js +10 -6
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.d.ts +10 -1
- package/Libraries/StyleSheet/StyleSheet.js +3 -0
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +31 -17
- package/Libraries/StyleSheet/StyleSheetTypes.js +90 -6
- package/Libraries/StyleSheet/flattenStyle.js +4 -0
- package/Libraries/StyleSheet/private/_TransformStyle.js +16 -2
- package/Libraries/StyleSheet/processColor.js +1 -2
- package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
- package/Libraries/StyleSheet/splitLayoutProps.js +1 -0
- package/Libraries/Text/Text.d.ts +5 -5
- package/Libraries/Text/Text.js +17 -10
- package/Libraries/Text/Text.windows.js +53 -20
- package/Libraries/Text/TextProps.windows.js +275 -0
- package/Libraries/TurboModule/TurboModuleRegistry.js +47 -7
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
- package/Libraries/Types/CoreEventTypes.d.ts +5 -2
- package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -12
- package/Libraries/Utilities/NativeDeviceInfo.js +8 -9
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +23 -18
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +16 -13
- package/Libraries/Utilities/NativePlatformConstantsWin.js +13 -10
- package/Libraries/Utilities/PerformanceLoggerContext.js +1 -1
- package/Libraries/Utilities/Platform.android.js +12 -8
- package/Libraries/Utilities/Platform.d.ts +1 -0
- package/Libraries/Utilities/Platform.flow.js +84 -0
- package/Libraries/Utilities/Platform.flow.windows.js +111 -0
- package/Libraries/Utilities/Platform.ios.js +12 -8
- package/Libraries/Utilities/Platform.windows.js +12 -8
- package/Libraries/Utilities/PolyfillFunctions.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -2
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/createPerformanceLogger.js +63 -32
- package/Libraries/Utilities/useColorScheme.js +7 -8
- package/Libraries/WebPerformance/MemoryInfo.js +1 -1
- package/Libraries/WebPerformance/NativePerformance.js +3 -8
- package/Libraries/WebPerformance/NativePerformanceObserver.js +4 -0
- package/Libraries/WebPerformance/Performance.js +42 -15
- package/Libraries/WebPerformance/PerformanceEntry.js +14 -6
- package/Libraries/WebPerformance/PerformanceEventTiming.js +18 -1
- package/Libraries/WebPerformance/ReactNativeStartupTiming.js +40 -14
- package/Libraries/WebPerformance/__mocks__/NativePerformance.js +4 -2
- package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +21 -3
- package/Libraries/__tests__/ViewWindows-test.js +3 -3
- package/Libraries/platform-types.d.ts +6 -2
- package/Libraries/promiseRejectionTrackingOptions.js +1 -3
- package/Libraries/vendor/emitter/EventEmitter.js +17 -17
- package/Microsoft.ReactNative/Composition.Input.idl +103 -0
- package/Microsoft.ReactNative/CompositionContext.idl +31 -8
- package/Microsoft.ReactNative/CompositionRootView.idl +8 -4
- package/Microsoft.ReactNative/CompositionSwitcher.idl +28 -17
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +15 -28
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +7 -10
- package/Microsoft.ReactNative/Fabric/ComponentView.h +42 -4
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +57 -4
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +22 -1
- package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.cpp +137 -0
- package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.h +59 -0
- package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +8 -2
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +575 -0
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +170 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +890 -226
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +38 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +79 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +130 -27
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +6 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +382 -228
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +35 -8
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +46 -8
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +5 -21
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +232 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +36 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +51 -14
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +15 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView_emptyimpl.cpp +123 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +18 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +333 -137
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +52 -8
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +32 -26
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +5 -3
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +183 -175
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +7 -4
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +101 -2
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +46 -2
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +36 -9
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +8 -2
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +247 -42
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +25 -8
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +78 -50
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +12 -4
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +26 -28
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +429 -89
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +24 -3
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +1 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -2
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +5 -7
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -6
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -7
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +1 -17
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +74 -3
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +12 -0
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +53 -59
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +3 -2
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +5 -4
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -1
- package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +1 -1
- package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +3 -4
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformTouch.h +10 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +59 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.h +31 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +69 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +25 -2
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +23 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/KeyEvent.h +113 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/WindowsViewEvents.h +75 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +18 -21
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +158 -7
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +15 -17
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +1 -1
- package/Microsoft.ReactNative/GlyphViewManager.cpp +1 -1
- package/Microsoft.ReactNative/IJSValueReader.idl +2 -2
- package/Microsoft.ReactNative/IJSValueWriter.idl +2 -2
- package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +23 -1
- package/Microsoft.ReactNative/IReactContext.cpp +1 -1
- package/Microsoft.ReactNative/IReactNotificationService.cpp +4 -3
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -4
- package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +1 -2
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +1 -1
- package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +3 -4
- package/Microsoft.ReactNative/Modules/AppStateModule.cpp +1 -1
- package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -2
- package/Microsoft.ReactNative/Modules/AppearanceModule.h +1 -1
- package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +4 -2
- package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +1 -1
- package/Microsoft.ReactNative/Modules/I18nManagerModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/I18nManagerModule.h +1 -1
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -15
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +10 -6
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +4 -1
- package/Microsoft.ReactNative/QuirkSettings.idl +1 -1
- package/Microsoft.ReactNative/ReactApplication.cpp +13 -11
- package/Microsoft.ReactNative/ReactApplication.h +4 -4
- package/Microsoft.ReactNative/ReactCoreInjection.h +6 -5
- package/Microsoft.ReactNative/ReactHost/JSCallInvokerScheduler.cpp +2 -2
- package/Microsoft.ReactNative/ReactHost/MsoUtils.cpp +1 -1
- package/Microsoft.ReactNative/ReactHost/React.h +3 -6
- package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -16
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +8 -16
- package/Microsoft.ReactNative/ReactInstanceSettings.cpp +6 -5
- package/Microsoft.ReactNative/ReactInstanceSettings.h +7 -7
- package/Microsoft.ReactNative/ReactNativeHost.h +4 -4
- package/Microsoft.ReactNative/ReactRootView.cpp +5 -4
- package/Microsoft.ReactNative/ReactRootView.h +2 -2
- package/Microsoft.ReactNative/ReactSupport.h +1 -1
- package/Microsoft.ReactNative/RedBox.cpp +1 -1
- package/Microsoft.ReactNative/RedBoxHandler.idl +1 -1
- package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +1 -1
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +49 -21
- package/Microsoft.ReactNative/Utils/ValueUtils.h +2 -1
- package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +31 -59
- package/Microsoft.ReactNative/Views/DynamicAutomationPeer.h +3 -4
- package/Microsoft.ReactNative/Views/DynamicAutomationProperties.cpp +15 -46
- package/Microsoft.ReactNative/Views/DynamicAutomationProperties.h +5 -13
- package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +4 -4
- package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +2 -8
- package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +127 -86
- package/Microsoft.ReactNative/Views/ICompositionRootView.h +1 -1
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
- package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +2 -2
- package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +1 -1
- package/Microsoft.ReactNative/Views/SIPEventHandler.cpp +5 -5
- package/Microsoft.ReactNative/Views/SIPEventHandler.h +1 -1
- package/Microsoft.ReactNative/Views/ShadowNodeBase.h +8 -5
- package/Microsoft.ReactNative/Views/SwitchViewManager.cpp +2 -2
- package/Microsoft.ReactNative/Views/Text/TextTransformVisitor.cpp +1 -1
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +32 -14
- package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +1 -1
- package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +14 -2
- package/Microsoft.ReactNative/Views/ViewManagerBase.h +1 -1
- package/Microsoft.ReactNative/Views/ViewPanel.cpp +20 -219
- package/Microsoft.ReactNative/Views/ViewPanel.h +0 -30
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +17 -158
- package/Microsoft.ReactNative/Views/cppwinrt/DynamicAutomationPeer.idl +9 -12
- package/Microsoft.ReactNative/Views/cppwinrt/ViewPanel.idl +1 -9
- package/Microsoft.ReactNative/XamlHelper.cpp +1 -1
- package/Microsoft.ReactNative/XamlHelper.h +1 -1
- package/Microsoft.ReactNative/packages.lock.json +128 -0
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/JsiApiContext.cpp +2 -2
- package/Microsoft.ReactNative.Cxx/JSValue.h +2 -2
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +0 -1
- package/Microsoft.ReactNative.Cxx/NativeModules.h +4 -4
- package/Microsoft.ReactNative.Cxx/ReactHandleHelper.h +1 -1
- package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +2 -2
- package/Microsoft.ReactNative.Cxx/ReactNotificationService.h +10 -9
- package/Microsoft.ReactNative.Cxx/ReactPropertyBag.h +13 -12
- package/Microsoft.ReactNative.Managed/JSValueReaderGenerator.cs +5 -5
- package/Microsoft.ReactNative.Managed/JSValueWriterGenerator.cs +5 -5
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +8 -2
- package/Microsoft.ReactNative.Managed/ReactPackageBuilderExtensions.cs +1 -1
- package/Microsoft.ReactNative.Managed/ReflectionReactPackageProvider.cs +1 -1
- package/Microsoft.ReactNative.Managed/packages.lock.json +9 -9
- package/Microsoft.ReactNative.Managed.CodeGen/CodeAnalyzer.cs +2 -0
- package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Module.cs +4 -2
- package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.ViewManager.cs +1 -1
- package/Microsoft.ReactNative.Managed.CodeGen/DiagnosticDescriptors.cs +1 -1
- package/Microsoft.ReactNative.Managed.CodeGen/packages.lock.json +3197 -0
- package/Mso/compilerAdapters/compilerFeatures.h +1 -1
- package/Mso/compilerAdapters/functionDecorations.h +6 -6
- package/Mso/debugAssertApi/debugAssertDetails.h +1 -1
- package/Mso/dispatchQueue/dispatchQueue.h +3 -3
- package/Mso/motifCpp/motifCppTest.h +1 -1
- package/Mso/motifCpp/testCheck.h +1 -1
- package/Mso/oacr/oacr.h +1 -1
- package/Mso/smartPtr/smartPointerBase.h +1 -1
- package/Mso/src/dispatchQueue/looperScheduler.cpp +2 -2
- package/Mso/src/dispatchQueue/queueService.cpp +1 -1
- package/Mso/src/dispatchQueue/taskQueue.h +1 -1
- package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +2 -2
- package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +122 -45
- package/Mso/src/eventWaitHandle/eventWaitHandleImpl_win.cpp +2 -2
- package/Mso/src/future/futureImpl.cpp +5 -5
- package/Mso/src/future/futureImpl.h +1 -1
- package/PropertySheets/External/Microsoft.ReactNative.Common.props +3 -0
- package/PropertySheets/External/{Microsoft.ReactNative.WinAppSDK.Common.props → Microsoft.ReactNative.Composition.Common.props} +2 -2
- package/PropertySheets/External/{Microsoft.ReactNative.WinAppSDK.CSharpApp.props → Microsoft.ReactNative.Composition.CppApp.props} +7 -10
- package/PropertySheets/External/Microsoft.ReactNative.Composition.CppApp.targets +19 -0
- package/PropertySheets/External/Microsoft.ReactNative.Composition.Package.props +14 -0
- package/PropertySheets/External/Microsoft.ReactNative.Composition.Package.targets +18 -0
- package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +1 -1
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/PropertySheets/HybridCRT.props +34 -0
- package/PropertySheets/JSEngine.props +1 -2
- package/PropertySheets/React.Cpp.props +0 -1
- package/PropertySheets/Warnings.props +1 -1
- package/PropertySheets/WinUI.props +1 -1
- package/ReactCommon/ReactCommon.vcxproj +15 -9
- package/ReactCommon/ReactCommon.vcxproj.filters +0 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +32 -5
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +20 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaLayoutableShadowNode.cpp +1038 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +228 -38
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +895 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/ShadowTree.cpp +543 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManagerBinding.cpp +1509 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/bits/NumericBitfield.h +67 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +93 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +88 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +606 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.h +344 -0
- package/ReactCommon/Yoga.cpp +497 -3895
- package/ReactCommon/packages.lock.json +30 -0
- package/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1 +22 -0
- package/Scripts/OfficeReact.Win32.nuspec +1 -0
- package/Scripts/rnw-dependencies.ps1 +79 -26
- package/Shared/BaseScriptStoreImpl.cpp +42 -13
- package/Shared/BaseScriptStoreImpl.h +1 -1
- package/Shared/Composition/AutoDraw.h +36 -0
- package/Shared/CxxMessageQueue.cpp +1 -1
- package/Shared/DevSettings.h +3 -0
- package/Shared/DevSupportManager.h +1 -1
- package/Shared/Hasher.cpp +64 -0
- package/Shared/Hasher.h +24 -0
- package/Shared/HermesRuntimeHolder.cpp +6 -6
- package/Shared/IDevSupportManager.h +1 -1
- package/Shared/JSI/ChakraApi.cpp +1 -1
- package/Shared/JSI/ChakraRuntime.cpp +10 -10
- package/Shared/JSI/ChakraRuntime.h +6 -6
- package/Shared/JSI/V8RuntimeHolder.cpp +1 -1
- package/Shared/Modules/IRequestBodyHandler.h +1 -1
- package/Shared/Modules/IUriHandler.h +1 -1
- package/Shared/Modules/PlatformConstantsModule.cpp +1 -1
- package/Shared/Modules/WebSocketModule.cpp +1 -1
- package/Shared/Networking/DefaultBlobResource.cpp +2 -2
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +22 -16
- package/Shared/Networking/OriginPolicyHttpFilter.h +12 -11
- package/Shared/OInstance.cpp +9 -23
- package/Shared/OInstance.h +1 -1
- package/Shared/PackagerConnection.h +1 -1
- package/Shared/SafeLoadLibrary.cpp +8 -44
- package/Shared/SafeLoadLibrary.h +1 -5
- package/Shared/Shared.vcxitems +50 -20
- package/Shared/Shared.vcxitems.filters +26 -17
- package/Shared/Threading/BatchingQueueThread.cpp +5 -5
- package/Shared/Threading/BatchingQueueThread.h +4 -4
- package/Shared/TurboModuleManager.cpp +1 -1
- package/Shared/Utils.cpp +1 -1
- package/Shared/tracing/fbsystrace.h +1 -1
- package/codegen/NativeAnimatedModuleSpec.g.h +2 -0
- package/codegen/NativeAnimatedTurboModuleSpec.g.h +2 -0
- package/codegen/NativeAppStateSpec.g.h +11 -21
- package/codegen/NativeDeviceInfoSpec.g.h +4 -14
- package/codegen/NativeI18nManagerSpec.g.h +6 -16
- package/codegen/NativeIntersectionObserverSpec.g.h +96 -0
- package/codegen/NativeMutationObserverSpec.g.h +90 -0
- package/codegen/NativePerformanceObserverSpec.g.h +19 -13
- package/codegen/NativePerformanceSpec.g.h +6 -23
- package/codegen/NativePlatformConstantsAndroidSpec.g.h +22 -30
- package/codegen/NativePlatformConstantsIOSSpec.g.h +17 -25
- package/codegen/NativePlatformConstantsWinSpec.g.h +14 -22
- package/codegen/NativeSampleTurboModuleSpec.g.h +36 -0
- package/codegen/NativeSourceCodeSpec.g.h +3 -13
- package/codegen/react/components/rnwcore/EventEmitters.cpp +85 -58
- package/codegen/react/components/rnwcore/EventEmitters.h +17 -35
- package/codegen/react/components/rnwcore/Props.h +16 -17
- package/codegen/rnwcoreJSI-generated.cpp +1462 -319
- package/codegen/rnwcoreJSI.h +1609 -462
- package/fmt/packages.lock.json +13 -0
- package/index.windows.js +3 -3
- package/{Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js → jest/ReactNativeInternalFeatureFlagsMock.js} +2 -1
- package/jest/__tests__/setup-test.js +18 -0
- package/jest/mockModal.js +6 -4
- package/jest/setup.js +61 -30
- package/just-task.js +1 -0
- package/package.json +37 -42
- package/template/cs-app/proj/MyApp.csproj +0 -1
- package/template/cs-lib/proj/MyLib.csproj +0 -1
- package/templates/.clang-format +4 -0
- package/templates/cpp-app/metro.config.js +51 -0
- package/templates/cpp-app/template.config.js +119 -0
- package/templates/cpp-app/windows/ExperimentalFeatures.props +12 -0
- package/templates/cpp-app/windows/MyApp/MyApp.cpp +284 -0
- package/templates/cpp-app/windows/MyApp/MyApp.h +3 -0
- package/templates/cpp-app/windows/MyApp/MyApp.ico +0 -0
- package/templates/cpp-app/windows/MyApp/MyApp.rc +0 -0
- package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +142 -0
- package/templates/cpp-app/windows/MyApp/MyApp.vcxproj.filters +55 -0
- package/templates/cpp-app/windows/MyApp/_gitignore +1 -0
- package/templates/cpp-app/windows/MyApp/pch.cpp +1 -0
- package/templates/cpp-app/windows/MyApp/pch.h +35 -0
- package/templates/cpp-app/windows/MyApp/resource.h +18 -0
- package/templates/cpp-app/windows/MyApp/small.ico +0 -0
- package/templates/cpp-app/windows/MyApp/targetver.h +8 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/LockScreenLogo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/SplashScreen.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Square150x150Logo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Square44x44Logo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Square44x44Logo.targetsize-24_altform-unplated.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/StoreLogo.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Wide310x150Logo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/MyApp.Package.wapproj +78 -0
- package/{template/cs-app-WinAppSDK/MyApp → templates/cpp-app/windows/MyApp.Package}/Package.appxmanifest +9 -8
- package/templates/cpp-app/windows/MyApp.sln +176 -0
- package/templates/cpp-app/windows/_gitignore +41 -0
- package/templates/old/generateWrapper.js +67 -0
- package/templates/old/uwp-cpp-app/template.config.js +15 -0
- package/templates/old/uwp-cpp-lib/template.config.js +15 -0
- package/templates/old/uwp-cs-app/template.config.js +15 -0
- package/templates/old/uwp-cs-lib/template.config.js +15 -0
- package/types/experimental.d.ts +44 -0
- package/types/index.d.ts +2 -1
- package/types/modules/Devtools.d.ts +1 -0
- package/types/modules/globals.d.ts +16 -1
- package/Libraries/Components/View/ViewWindows.d.ts +0 -19
- package/Libraries/Components/View/ViewWindows.js +0 -22
- package/Libraries/Components/View/ViewWindows.js.map +0 -1
- package/Libraries/Components/View/ViewWindowsProps.d.ts +0 -69
- package/Libraries/Components/View/ViewWindowsProps.js +0 -8
- package/Libraries/Components/View/ViewWindowsProps.js.map +0 -1
- package/Libraries/Utilities/AcessibilityMapping.js +0 -154
- package/Libraries/Utilities/NativeDevSplitBundleLoader.js +0 -19
- package/Libraries/Utilities/useColorScheme.windows.js +0 -26
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +0 -61
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +0 -34
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +0 -42
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharp.PackageReferences.props +0 -11
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.targets +0 -51
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +0 -237
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +0 -59
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +0 -159
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +0 -94
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +0 -465
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +0 -116
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +0 -98
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +0 -326
- package/Scripts/Microsoft.ReactNative.WindowsAppSDK.nuspec +0 -30
- package/Shared/V8JSIRuntimeHolder.cpp +0 -71
- package/Shared/V8JSIRuntimeHolder.h +0 -56
- package/codegen/NativeDevSplitBundleLoaderSpec.g.h +0 -34
- package/template/cs-app-WinAppSDK/MyApp/App.xaml +0 -16
- package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +0 -70
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +0 -14
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +0 -38
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +0 -19
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +0 -19
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +0 -19
- package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +0 -10
- package/template/cs-app-WinAppSDK/MyApp/app.manifest +0 -15
- package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +0 -24
- package/template/cs-app-WinAppSDK/proj/MyApp.csproj +0 -53
- package/template/cs-app-WinAppSDK/proj/MyApp.sln +0 -43
- package/template/cs-app-WinAppSDK/proj/NuGet_Config +0 -19
- /package/Libraries/Components/DrawerAndroid/{DrawerLayoutAndroid.ios.js → DrawerLayoutAndroid.js} +0 -0
- /package/Libraries/{Renderer/public → ReactNative/ReactFabricPublicInstance}/ReactFabricPublicInstanceUtils.js +0 -0
|
@@ -51,43 +51,19 @@ winrt::AutomationPeer ViewPanel::OnCreateAutomationPeer() {
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
/*static*/ xaml::DependencyProperty ViewPanel::ViewBackgroundProperty() {
|
|
54
|
-
|
|
55
|
-
L"ViewBackground",
|
|
56
|
-
winrt::xaml_typename<winrt::Brush>(),
|
|
57
|
-
viewPanelTypeName,
|
|
58
|
-
winrt::PropertyMetadata(xaml::Media::SolidColorBrush(), ViewPanel::VisualPropertyChanged));
|
|
59
|
-
|
|
60
|
-
return s_viewBackgroundProperty;
|
|
54
|
+
return xaml::Controls::Panel::BackgroundProperty();
|
|
61
55
|
}
|
|
62
56
|
|
|
63
57
|
/*static*/ xaml::DependencyProperty ViewPanel::BorderThicknessProperty() {
|
|
64
|
-
|
|
65
|
-
L"BorderThickness",
|
|
66
|
-
winrt::xaml_typename<winrt::Thickness>(),
|
|
67
|
-
viewPanelTypeName,
|
|
68
|
-
winrt::PropertyMetadata(winrt::box_value(winrt::Thickness()), ViewPanel::VisualPropertyChanged));
|
|
69
|
-
|
|
70
|
-
return s_borderThicknessProperty;
|
|
58
|
+
return xaml::Controls::Grid::BorderThicknessProperty();
|
|
71
59
|
}
|
|
72
60
|
|
|
73
61
|
/*static*/ xaml::DependencyProperty ViewPanel::BorderBrushProperty() {
|
|
74
|
-
|
|
75
|
-
L"BorderBrush",
|
|
76
|
-
winrt::xaml_typename<winrt::Brush>(),
|
|
77
|
-
viewPanelTypeName,
|
|
78
|
-
winrt::PropertyMetadata(xaml::Media::SolidColorBrush(), ViewPanel::VisualPropertyChanged));
|
|
79
|
-
|
|
80
|
-
return s_borderBrushProperty;
|
|
62
|
+
return xaml::Controls::Grid::BorderBrushProperty();
|
|
81
63
|
}
|
|
82
64
|
|
|
83
65
|
/*static*/ xaml::DependencyProperty ViewPanel::CornerRadiusProperty() {
|
|
84
|
-
|
|
85
|
-
L"CornerRadius",
|
|
86
|
-
winrt::xaml_typename<xaml::CornerRadius>(),
|
|
87
|
-
viewPanelTypeName,
|
|
88
|
-
winrt::PropertyMetadata(winrt::box_value(xaml::CornerRadius()), ViewPanel::VisualPropertyChanged));
|
|
89
|
-
|
|
90
|
-
return s_cornerRadiusProperty;
|
|
66
|
+
return xaml::Controls::Grid::CornerRadiusProperty();
|
|
91
67
|
}
|
|
92
68
|
|
|
93
69
|
/*static*/ xaml::DependencyProperty ViewPanel::TopProperty() {
|
|
@@ -98,16 +74,6 @@ winrt::AutomationPeer ViewPanel::OnCreateAutomationPeer() {
|
|
|
98
74
|
return xaml::Controls::Canvas::LeftProperty();
|
|
99
75
|
}
|
|
100
76
|
|
|
101
|
-
/*static*/ xaml::DependencyProperty ViewPanel::ClipChildrenProperty() {
|
|
102
|
-
static xaml::DependencyProperty s_clipChildrenProperty = xaml::DependencyProperty::Register(
|
|
103
|
-
L"ClipChildren",
|
|
104
|
-
winrt::xaml_typename<bool>(),
|
|
105
|
-
viewPanelTypeName,
|
|
106
|
-
winrt::PropertyMetadata(winrt::box_value(false), ViewPanel::VisualPropertyChanged));
|
|
107
|
-
|
|
108
|
-
return s_clipChildrenProperty;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
77
|
/*static*/ void ViewPanel::SetTop(xaml::UIElement const &element, double value) {
|
|
112
78
|
element.SetValue(TopProperty(), winrt::box_value<double>(value));
|
|
113
79
|
InvalidateForArrange(element);
|
|
@@ -141,52 +107,34 @@ winrt::Size ViewPanel::MeasureOverride(winrt::Size /*availableSize*/) {
|
|
|
141
107
|
}
|
|
142
108
|
|
|
143
109
|
winrt::Size ViewPanel::ArrangeOverride(winrt::Size finalSize) {
|
|
144
|
-
// Sometimes we create outerBorder(i.e. when CornerRadius is true) instead of innerBorder,
|
|
145
|
-
// Yoga has no notion of outerBorder when calculating the child's position, so we
|
|
146
|
-
// need to make adujustment in arrange for outerborder's thickness.
|
|
147
|
-
float outerBorderLeft = 0;
|
|
148
|
-
float outerBorderTop = 0;
|
|
149
|
-
if (auto outerBorder = GetOuterBorder()) {
|
|
150
|
-
auto borderThickness = outerBorder.BorderThickness();
|
|
151
|
-
outerBorderLeft = static_cast<float>(borderThickness.Left);
|
|
152
|
-
outerBorderTop = static_cast<float>(borderThickness.Top);
|
|
153
|
-
}
|
|
154
110
|
for (xaml::UIElement child : Children()) {
|
|
155
111
|
double childHeight = 0.0;
|
|
156
112
|
double childWidth = 0.0;
|
|
157
113
|
|
|
158
|
-
//
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
}
|
|
170
|
-
// But we fall back to the measured size otherwise
|
|
171
|
-
else {
|
|
172
|
-
childWidth = child.DesiredSize().Width;
|
|
173
|
-
childHeight = child.DesiredSize().Height;
|
|
174
|
-
}
|
|
114
|
+
// We expect elements to have been arranged by yoga which means their
|
|
115
|
+
// Width & Height are set
|
|
116
|
+
xaml::FrameworkElement fe = child.try_as<xaml::FrameworkElement>();
|
|
117
|
+
if (fe != nullptr) {
|
|
118
|
+
childWidth = fe.Width();
|
|
119
|
+
childHeight = fe.Height();
|
|
120
|
+
}
|
|
121
|
+
// But we fall back to the measured size otherwise
|
|
122
|
+
else {
|
|
123
|
+
childWidth = child.DesiredSize().Width;
|
|
124
|
+
childHeight = child.DesiredSize().Height;
|
|
175
125
|
}
|
|
176
126
|
|
|
177
127
|
// Guard against negative values
|
|
178
128
|
childWidth = std::max<double>(0.0f, childWidth);
|
|
179
129
|
childHeight = std::max<double>(0.0f, childHeight);
|
|
180
130
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
131
|
+
child.Arrange(winrt::Rect(
|
|
132
|
+
static_cast<float>(ViewPanel::GetLeft(child)),
|
|
133
|
+
static_cast<float>(ViewPanel::GetTop(child)),
|
|
134
|
+
static_cast<float>(childWidth),
|
|
135
|
+
static_cast<float>(childHeight)));
|
|
186
136
|
}
|
|
187
137
|
|
|
188
|
-
UpdateClip(finalSize);
|
|
189
|
-
|
|
190
138
|
return finalSize;
|
|
191
139
|
}
|
|
192
140
|
|
|
@@ -213,151 +161,4 @@ void ViewPanel::ViewBackground(winrt::Brush const &value) {
|
|
|
213
161
|
SetValue(ViewBackgroundProperty(), winrt::box_value(value));
|
|
214
162
|
}
|
|
215
163
|
|
|
216
|
-
void ViewPanel::BorderThickness(winrt::Thickness const &value) {
|
|
217
|
-
SetValue(BorderThicknessProperty(), winrt::box_value(value));
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
void ViewPanel::BorderBrush(winrt::Brush const &value) {
|
|
221
|
-
SetValue(BorderBrushProperty(), winrt::box_value(value));
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
void ViewPanel::CornerRadius(xaml::CornerRadius const &value) {
|
|
225
|
-
SetValue(CornerRadiusProperty(), winrt::box_value(value));
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
void ViewPanel::ClipChildren(bool value) {
|
|
229
|
-
SetValue(ClipChildrenProperty(), winrt::box_value(value));
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
void ViewPanel::FinalizeProperties() {
|
|
233
|
-
SystraceSection s("ViewPanel::FinalizeProperties");
|
|
234
|
-
if (!m_propertiesChanged)
|
|
235
|
-
return;
|
|
236
|
-
|
|
237
|
-
// There are 3 different solutions
|
|
238
|
-
//
|
|
239
|
-
// A) No Border
|
|
240
|
-
// -- No need for any border properties so just contain real children
|
|
241
|
-
// >> Background applied to ViewPanel
|
|
242
|
-
//
|
|
243
|
-
// B) Inner Border (child of this panel along with real children)
|
|
244
|
-
// -- Border created and made a child of this panel, alongside standard
|
|
245
|
-
// children
|
|
246
|
-
// >> Border* properties applied to Border, Background applied to
|
|
247
|
-
// ViewPanel
|
|
248
|
-
//
|
|
249
|
-
// C) Outer Border
|
|
250
|
-
// -- Border created but handed out to view manager to make parent of
|
|
251
|
-
// this ViewPanel
|
|
252
|
-
// >> Border* properties and Background applied to Border
|
|
253
|
-
|
|
254
|
-
const auto unsetValue = xaml::DependencyProperty::UnsetValue();
|
|
255
|
-
const Thickness emptyThickness = ThicknessHelper::FromUniformLength(0.0);
|
|
256
|
-
|
|
257
|
-
bool hasBackground = ReadLocalValue(ViewBackgroundProperty()) != unsetValue;
|
|
258
|
-
bool hasBorderBrush = ReadLocalValue(BorderBrushProperty()) != unsetValue;
|
|
259
|
-
bool hasBorderThickness = BorderThickness() != emptyThickness;
|
|
260
|
-
bool hasCornerRadius = ReadLocalValue(CornerRadiusProperty()) != unsetValue;
|
|
261
|
-
bool displayBorder = hasBorderThickness;
|
|
262
|
-
|
|
263
|
-
// Determine which scenario our current properties have put us into
|
|
264
|
-
enum class Scenario { OuterBorder, InnerBorder, NoBorder } scenario;
|
|
265
|
-
if (hasCornerRadius) {
|
|
266
|
-
scenario = Scenario::OuterBorder;
|
|
267
|
-
m_hasOuterBorder = true;
|
|
268
|
-
} else if (!displayBorder) {
|
|
269
|
-
scenario = Scenario::NoBorder;
|
|
270
|
-
m_hasOuterBorder = false;
|
|
271
|
-
} else if (ClipChildren()) {
|
|
272
|
-
scenario = Scenario::OuterBorder;
|
|
273
|
-
m_hasOuterBorder = true;
|
|
274
|
-
} else {
|
|
275
|
-
scenario = Scenario::InnerBorder;
|
|
276
|
-
m_hasOuterBorder = false;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
// Detach this Panel from the outer Border if needed
|
|
280
|
-
if (scenario != Scenario::OuterBorder && m_border != nullptr) {
|
|
281
|
-
m_border.Child(nullptr);
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
// Border element
|
|
285
|
-
if (scenario != Scenario::NoBorder) {
|
|
286
|
-
// Ensure Border is created
|
|
287
|
-
if (m_border == nullptr) {
|
|
288
|
-
m_border = xaml::Controls::Border();
|
|
289
|
-
|
|
290
|
-
// Add border as the top child if using as inner border
|
|
291
|
-
if (scenario == Scenario::InnerBorder)
|
|
292
|
-
Children().Append(m_border);
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
// TODO: Can Binding be used here?
|
|
296
|
-
if (hasBorderBrush)
|
|
297
|
-
m_border.BorderBrush(BorderBrush());
|
|
298
|
-
else if (!hasBorderThickness) {
|
|
299
|
-
m_border.ClearValue(xaml::Controls::Border::BorderBrushProperty());
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
if (hasBorderThickness) {
|
|
303
|
-
m_border.BorderThickness(BorderThickness());
|
|
304
|
-
if (!hasBorderBrush) {
|
|
305
|
-
// Borders with no brush draw something other than transparent on other platforms.
|
|
306
|
-
// To match, we'll use a default border brush if one isn't already set.
|
|
307
|
-
// Note: Keep this in sync with code in TryUpdateBorderProperties().
|
|
308
|
-
m_border.BorderBrush(::Microsoft::ReactNative::DefaultBrushStore::Instance().GetDefaultBorderBrush());
|
|
309
|
-
}
|
|
310
|
-
} else
|
|
311
|
-
m_border.ClearValue(xaml::Controls::Border::BorderThicknessProperty());
|
|
312
|
-
|
|
313
|
-
if (hasCornerRadius)
|
|
314
|
-
m_border.CornerRadius(CornerRadius());
|
|
315
|
-
else
|
|
316
|
-
m_border.ClearValue(xaml::Controls::Border::CornerRadiusProperty());
|
|
317
|
-
} else if (m_border != nullptr) {
|
|
318
|
-
// Clean up and remove the Border element
|
|
319
|
-
m_border.Child(nullptr);
|
|
320
|
-
Remove(m_border);
|
|
321
|
-
m_border = nullptr;
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
if (scenario == Scenario::OuterBorder) {
|
|
325
|
-
if (hasBackground)
|
|
326
|
-
m_border.Background(ViewBackground());
|
|
327
|
-
else
|
|
328
|
-
m_border.ClearValue(xaml::Controls::Border::BackgroundProperty());
|
|
329
|
-
|
|
330
|
-
ClearValue(winrt::Panel::BackgroundProperty());
|
|
331
|
-
|
|
332
|
-
// Ensure the Border is not parented to this Panel
|
|
333
|
-
Remove(m_border);
|
|
334
|
-
} else {
|
|
335
|
-
// Set any background on this Panel
|
|
336
|
-
if (hasBackground)
|
|
337
|
-
SetValue(winrt::Panel::BackgroundProperty(), ViewBackground());
|
|
338
|
-
else
|
|
339
|
-
ClearValue(winrt::Panel::BackgroundProperty());
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
m_propertiesChanged = false;
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
xaml::Controls::Border ViewPanel::GetOuterBorder() {
|
|
346
|
-
if (m_hasOuterBorder && (m_border != nullptr))
|
|
347
|
-
return m_border;
|
|
348
|
-
else
|
|
349
|
-
return xaml::Controls::Border(nullptr);
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
void ViewPanel::UpdateClip(winrt::Size &finalSize) {
|
|
353
|
-
if (ClipChildren()) {
|
|
354
|
-
winrt::RectangleGeometry clipGeometry;
|
|
355
|
-
clipGeometry.Rect(winrt::Rect(0, 0, static_cast<float>(finalSize.Width), static_cast<float>(finalSize.Height)));
|
|
356
|
-
|
|
357
|
-
Clip(clipGeometry);
|
|
358
|
-
} else {
|
|
359
|
-
Clip(nullptr);
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
|
|
363
164
|
} // namespace winrt::Microsoft::ReactNative::implementation
|
|
@@ -28,41 +28,17 @@ struct ViewPanel : ViewPanelT<ViewPanel> {
|
|
|
28
28
|
void RemoveAt(uint32_t const index) const;
|
|
29
29
|
void Clear() const;
|
|
30
30
|
|
|
31
|
-
void FinalizeProperties();
|
|
32
|
-
xaml::Controls::Border GetOuterBorder();
|
|
33
|
-
|
|
34
31
|
// Public Properties
|
|
35
32
|
xaml::Media::Brush ViewBackground() {
|
|
36
33
|
return GetValue(ViewBackgroundProperty()).as<xaml::Media::Brush>();
|
|
37
34
|
}
|
|
38
35
|
void ViewBackground(xaml::Media::Brush const &value);
|
|
39
36
|
|
|
40
|
-
xaml::Thickness BorderThickness() {
|
|
41
|
-
return winrt::unbox_value<xaml::Thickness>(GetValue(BorderThicknessProperty()));
|
|
42
|
-
}
|
|
43
|
-
void BorderThickness(xaml::Thickness const &value);
|
|
44
|
-
|
|
45
|
-
xaml::Media::Brush BorderBrush() {
|
|
46
|
-
return GetValue(BorderBrushProperty()).as<xaml::Media::Brush>();
|
|
47
|
-
}
|
|
48
|
-
void BorderBrush(xaml::Media::Brush const &value);
|
|
49
|
-
|
|
50
|
-
xaml::CornerRadius CornerRadius() {
|
|
51
|
-
return winrt::unbox_value<xaml::CornerRadius>(GetValue(CornerRadiusProperty()));
|
|
52
|
-
}
|
|
53
|
-
void CornerRadius(xaml::CornerRadius const &value);
|
|
54
|
-
|
|
55
|
-
bool ClipChildren() {
|
|
56
|
-
return winrt::unbox_value<bool>(GetValue(ClipChildrenProperty()));
|
|
57
|
-
}
|
|
58
|
-
void ClipChildren(bool value);
|
|
59
|
-
|
|
60
37
|
// ViewPanel Properties
|
|
61
38
|
static xaml::DependencyProperty ViewBackgroundProperty();
|
|
62
39
|
static xaml::DependencyProperty BorderThicknessProperty();
|
|
63
40
|
static xaml::DependencyProperty BorderBrushProperty();
|
|
64
41
|
static xaml::DependencyProperty CornerRadiusProperty();
|
|
65
|
-
static xaml::DependencyProperty ClipChildrenProperty();
|
|
66
42
|
|
|
67
43
|
// Attached Properties
|
|
68
44
|
static xaml::DependencyProperty TopProperty();
|
|
@@ -82,15 +58,9 @@ struct ViewPanel : ViewPanelT<ViewPanel> {
|
|
|
82
58
|
private:
|
|
83
59
|
void Remove(xaml::UIElement element) const;
|
|
84
60
|
|
|
85
|
-
void UpdateClip(winrt::Windows::Foundation::Size &finalSize);
|
|
86
|
-
|
|
87
61
|
private:
|
|
88
62
|
bool m_propertiesChanged{false};
|
|
89
63
|
|
|
90
|
-
// Child Elements
|
|
91
|
-
xaml::Controls::Border m_border{nullptr};
|
|
92
|
-
bool m_hasOuterBorder{false};
|
|
93
|
-
|
|
94
64
|
private:
|
|
95
65
|
static void VisualPropertyChanged(xaml::DependencyObject sender, xaml::DependencyPropertyChangedEventArgs e);
|
|
96
66
|
};
|
|
@@ -89,13 +89,6 @@ class ViewShadowNode : public ShadowNodeBase {
|
|
|
89
89
|
m_isControl = isControl;
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
bool HasOuterBorder() {
|
|
93
|
-
return m_hasOuterBorder;
|
|
94
|
-
}
|
|
95
|
-
void HasOuterBorder(bool hasOuterBorder) {
|
|
96
|
-
m_hasOuterBorder = hasOuterBorder;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
92
|
bool EnableFocusRing() {
|
|
100
93
|
return m_enableFocusRing;
|
|
101
94
|
}
|
|
@@ -161,12 +154,6 @@ class ViewShadowNode : public ShadowNodeBase {
|
|
|
161
154
|
cdebug << "Tearing down, IsControl=true but the control is not a ContentControl, it's a " << name << "\n";
|
|
162
155
|
}
|
|
163
156
|
}
|
|
164
|
-
|
|
165
|
-
if (HasOuterBorder()) {
|
|
166
|
-
if (auto border = current.try_as<xaml::Controls::Border>()) {
|
|
167
|
-
border.Child(nullptr);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
157
|
}
|
|
171
158
|
|
|
172
159
|
void ReplaceChild(const XamlView &oldChildView, const XamlView &newChildView) override {
|
|
@@ -200,12 +187,6 @@ class ViewShadowNode : public ShadowNodeBase {
|
|
|
200
187
|
}
|
|
201
188
|
}
|
|
202
189
|
|
|
203
|
-
if (HasOuterBorder()) {
|
|
204
|
-
if (auto border = current.try_as<xaml::Controls::Border>()) {
|
|
205
|
-
current = border.Child().try_as<XamlView>();
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
|
|
209
190
|
auto panel = current.try_as<xaml::Controls::Panel>();
|
|
210
191
|
assert(panel != nullptr);
|
|
211
192
|
|
|
@@ -242,8 +223,6 @@ class ViewShadowNode : public ShadowNodeBase {
|
|
|
242
223
|
|
|
243
224
|
private:
|
|
244
225
|
bool m_isControl = false;
|
|
245
|
-
bool m_hasOuterBorder = false;
|
|
246
|
-
|
|
247
226
|
bool m_enableFocusRing = true;
|
|
248
227
|
bool m_onClick = false;
|
|
249
228
|
int32_t m_tabIndex = std::numeric_limits<std::int32_t>::max();
|
|
@@ -252,87 +231,6 @@ class ViewShadowNode : public ShadowNodeBase {
|
|
|
252
231
|
xaml::Controls::ContentControl::LostFocus_revoker m_contentControlLostFocusRevoker{};
|
|
253
232
|
};
|
|
254
233
|
|
|
255
|
-
// ViewPanel uses a ViewBackground property, not Background, so need to
|
|
256
|
-
// specialize
|
|
257
|
-
// PropertyUtils' TryUpdateBackgroundBrush to use ViewBackground.
|
|
258
|
-
// Issue #2172: Additionally, we need to use
|
|
259
|
-
// winrt::Microsoft::ReactNative::ViewPanel::implementation::ViewBackgroundProperty
|
|
260
|
-
// rather than the proper projected type, because of how we're using cppwinrt.
|
|
261
|
-
|
|
262
|
-
template <>
|
|
263
|
-
bool TryUpdateBackgroundBrush(
|
|
264
|
-
const winrt::Microsoft::ReactNative::ViewPanel &element,
|
|
265
|
-
const std::string &propertyName,
|
|
266
|
-
const winrt::Microsoft::ReactNative::JSValue &propertyValue) {
|
|
267
|
-
if (propertyName == "backgroundColor") {
|
|
268
|
-
if (IsValidColorValue(propertyValue))
|
|
269
|
-
element.ViewBackground(BrushFrom(propertyValue));
|
|
270
|
-
else if (propertyValue.IsNull())
|
|
271
|
-
element.ClearValue(ViewPanel::ViewBackgroundProperty());
|
|
272
|
-
|
|
273
|
-
return true;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
return false;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
// Issue #2172: Calling winrt::Microsoft::ReactNative::ViewPanel::BorderBrushProperty fails
|
|
280
|
-
// to call
|
|
281
|
-
// down into winrt::Microsoft::ReactNative::implementation::ViewPanel::BorderBrushProperty
|
|
282
|
-
// because of how we're using cppwinrt. So we specialize PropertyUtils'
|
|
283
|
-
// TryUpdateBorderProperties
|
|
284
|
-
// to use winrt::Microsoft::ReactNative::ViewPanel::implementation::BorderBrushProperty
|
|
285
|
-
|
|
286
|
-
template <>
|
|
287
|
-
bool TryUpdateBorderProperties(
|
|
288
|
-
ShadowNodeBase *node,
|
|
289
|
-
const winrt::Microsoft::ReactNative::ViewPanel &element,
|
|
290
|
-
const std::string &propertyName,
|
|
291
|
-
const winrt::Microsoft::ReactNative::JSValue &propertyValue) {
|
|
292
|
-
bool isBorderProperty = true;
|
|
293
|
-
|
|
294
|
-
if (propertyName == "borderColor") {
|
|
295
|
-
if (IsValidColorValue(propertyValue))
|
|
296
|
-
element.BorderBrush(BrushFrom(propertyValue));
|
|
297
|
-
else if (propertyValue.IsNull())
|
|
298
|
-
element.ClearValue(ViewPanel::BorderBrushProperty());
|
|
299
|
-
} else if (propertyName == "borderLeftWidth") {
|
|
300
|
-
if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Double ||
|
|
301
|
-
propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Int64)
|
|
302
|
-
SetBorderThickness(node, element, ShadowEdges::Left, propertyValue.AsDouble());
|
|
303
|
-
} else if (propertyName == "borderTopWidth") {
|
|
304
|
-
if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Double ||
|
|
305
|
-
propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Int64)
|
|
306
|
-
SetBorderThickness(node, element, ShadowEdges::Top, propertyValue.AsDouble());
|
|
307
|
-
} else if (propertyName == "borderRightWidth") {
|
|
308
|
-
if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Double ||
|
|
309
|
-
propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Int64)
|
|
310
|
-
SetBorderThickness(node, element, ShadowEdges::Right, propertyValue.AsDouble());
|
|
311
|
-
} else if (propertyName == "borderBottomWidth") {
|
|
312
|
-
if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Double ||
|
|
313
|
-
propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Int64)
|
|
314
|
-
SetBorderThickness(node, element, ShadowEdges::Bottom, propertyValue.AsDouble());
|
|
315
|
-
} else if (propertyName == "borderStartWidth") {
|
|
316
|
-
if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Double ||
|
|
317
|
-
propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Int64)
|
|
318
|
-
SetBorderThickness(node, element, ShadowEdges::Start, propertyValue.AsDouble());
|
|
319
|
-
} else if (propertyName == "borderEndWidth") {
|
|
320
|
-
if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Double ||
|
|
321
|
-
propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Int64)
|
|
322
|
-
SetBorderThickness(node, element, ShadowEdges::End, propertyValue.AsDouble());
|
|
323
|
-
} else if (propertyName == "borderWidth") {
|
|
324
|
-
if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Double ||
|
|
325
|
-
propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Int64)
|
|
326
|
-
SetBorderThickness(node, element, ShadowEdges::AllEdges, propertyValue.AsDouble());
|
|
327
|
-
else if (propertyValue.IsNull())
|
|
328
|
-
element.ClearValue(ViewPanel::BorderThicknessProperty());
|
|
329
|
-
} else {
|
|
330
|
-
isBorderProperty = false;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
return isBorderProperty;
|
|
334
|
-
}
|
|
335
|
-
|
|
336
234
|
// ViewViewManager
|
|
337
235
|
|
|
338
236
|
ViewViewManager::ViewViewManager(const Mso::React::IReactContext &context) : Super(context) {}
|
|
@@ -345,11 +243,6 @@ void ViewViewManager::GetExportedCustomDirectEventTypeConstants(
|
|
|
345
243
|
const winrt::Microsoft::ReactNative::IJSValueWriter &writer) const {
|
|
346
244
|
Super::GetExportedCustomDirectEventTypeConstants(writer);
|
|
347
245
|
|
|
348
|
-
writer.WritePropertyName(L"topClick");
|
|
349
|
-
writer.WriteObjectBegin();
|
|
350
|
-
winrt::Microsoft::ReactNative::WriteProperty(writer, L"registrationName", L"onClick");
|
|
351
|
-
writer.WriteObjectEnd();
|
|
352
|
-
|
|
353
246
|
writer.WritePropertyName(L"topAccessibilityTap");
|
|
354
247
|
writer.WriteObjectBegin();
|
|
355
248
|
winrt::Microsoft::ReactNative::WriteProperty(writer, L"registrationName", L"onAccessibilityTap");
|
|
@@ -364,7 +257,7 @@ XamlView ViewViewManager::CreateViewCore(int64_t /*tag*/, const winrt::Microsoft
|
|
|
364
257
|
auto panel = winrt::make<winrt::Microsoft::ReactNative::implementation::ViewPanel>();
|
|
365
258
|
panel.VerticalAlignment(xaml::VerticalAlignment::Stretch);
|
|
366
259
|
panel.HorizontalAlignment(xaml::HorizontalAlignment::Stretch);
|
|
367
|
-
|
|
260
|
+
panel.BorderBrush(DefaultBrushStore::Instance().GetDefaultBorderBrush());
|
|
368
261
|
return panel.as<XamlView>();
|
|
369
262
|
}
|
|
370
263
|
|
|
@@ -389,19 +282,18 @@ bool ViewViewManager::UpdateProperty(
|
|
|
389
282
|
auto pPanel = pViewShadowNode->GetPanel().as<winrt::Microsoft::ReactNative::ViewPanel>();
|
|
390
283
|
bool ret = true;
|
|
391
284
|
if (pPanel != nullptr) {
|
|
392
|
-
if (TryUpdateBackgroundBrush(pPanel, propertyName, propertyValue)) {
|
|
285
|
+
if (TryUpdateBackgroundBrush(pPanel.as<xaml::Controls::Panel>(), propertyName, propertyValue)) {
|
|
393
286
|
} else if (TryUpdateBorderProperties(nodeToUpdate, pPanel, propertyName, propertyValue)) {
|
|
394
287
|
} else if (TryUpdateCornerRadiusOnNode(nodeToUpdate, pPanel, propertyName, propertyValue)) {
|
|
395
288
|
// Do not clamp until a size has been set for the View
|
|
396
289
|
auto maxCornerRadius = std::numeric_limits<double>::max();
|
|
397
290
|
// The Width and Height properties are not always set on ViewPanel. In
|
|
398
|
-
// cases where it is embedded in a Control
|
|
399
|
-
//
|
|
400
|
-
//
|
|
401
|
-
//
|
|
402
|
-
const xaml::FrameworkElement sizingElement =
|
|
403
|
-
|
|
404
|
-
: pPanel;
|
|
291
|
+
// cases where it is embedded in a Control, the values dimensions are
|
|
292
|
+
// set on those wrapper elements. We cannot depend on the default
|
|
293
|
+
// behavior of `UpdateCornerRadiusOnElement` to check for the clamp
|
|
294
|
+
// dimension from only the ViewPanel.
|
|
295
|
+
const xaml::FrameworkElement sizingElement =
|
|
296
|
+
pViewShadowNode->IsControl() ? pViewShadowNode->GetControl().as<xaml::FrameworkElement>() : pPanel;
|
|
405
297
|
if (sizingElement.ReadLocalValue(xaml::FrameworkElement::WidthProperty()) !=
|
|
406
298
|
xaml::DependencyProperty::UnsetValue() &&
|
|
407
299
|
sizingElement.ReadLocalValue(xaml::FrameworkElement::HeightProperty()) !=
|
|
@@ -412,11 +304,6 @@ bool ViewViewManager::UpdateProperty(
|
|
|
412
304
|
} else if (TryUpdateMouseEvents(nodeToUpdate, propertyName, propertyValue)) {
|
|
413
305
|
} else if (propertyName == "onClick") {
|
|
414
306
|
pViewShadowNode->OnClick(propertyValue.AsBoolean());
|
|
415
|
-
} else if (propertyName == "overflow") {
|
|
416
|
-
if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::String) {
|
|
417
|
-
bool clipChildren = propertyValue.AsString() == "hidden";
|
|
418
|
-
pPanel.ClipChildren(clipChildren);
|
|
419
|
-
}
|
|
420
307
|
} else if (propertyName == "focusable") {
|
|
421
308
|
pViewShadowNode->IsFocusable(propertyValue.AsBoolean());
|
|
422
309
|
} else if (propertyName == "enableFocusRing") {
|
|
@@ -476,8 +363,6 @@ void ViewViewManager::OnPropertiesUpdated(ShadowNodeBase *node) {
|
|
|
476
363
|
shouldBeControl = shouldBeControl || HasDynamicAutomationProperties(view);
|
|
477
364
|
}
|
|
478
365
|
|
|
479
|
-
panel.FinalizeProperties();
|
|
480
|
-
|
|
481
366
|
TryUpdateView(viewShadowNode, panel, shouldBeControl);
|
|
482
367
|
SyncFocusableAndAccessible(viewShadowNode, shouldBeControl);
|
|
483
368
|
}
|
|
@@ -487,21 +372,19 @@ void ViewViewManager::TryUpdateView(
|
|
|
487
372
|
winrt::Microsoft::ReactNative::ViewPanel &pPanel,
|
|
488
373
|
bool useControl) {
|
|
489
374
|
bool isControl = pViewShadowNode->IsControl();
|
|
490
|
-
bool hadOuterBorder = pViewShadowNode->HasOuterBorder();
|
|
491
|
-
bool hasOuterBorder = pPanel.GetOuterBorder() != nullptr;
|
|
492
375
|
|
|
493
376
|
// This short-circuits all of the update code when we have the same hierarchy
|
|
494
|
-
if (isControl == useControl
|
|
377
|
+
if (isControl == useControl)
|
|
495
378
|
return;
|
|
496
379
|
|
|
497
380
|
//
|
|
498
381
|
// 1. Ensure we have the new 'root' and do the child replacement
|
|
499
|
-
// This is first to ensure that we can re-parent the
|
|
382
|
+
// This is first to ensure that we can re-parent the ViewPanel
|
|
500
383
|
// we already have
|
|
501
384
|
// 2. Transfer properties
|
|
502
385
|
// There are likely some complexities to handle here
|
|
503
386
|
// 3. Do any sub=parenting
|
|
504
|
-
// This means Panel under
|
|
387
|
+
// This means Panel under Control
|
|
505
388
|
//
|
|
506
389
|
|
|
507
390
|
XamlView oldXamlView(pViewShadowNode->GetView());
|
|
@@ -520,20 +403,15 @@ void ViewViewManager::TryUpdateView(
|
|
|
520
403
|
}
|
|
521
404
|
|
|
522
405
|
// Clean up child of Control if needed
|
|
523
|
-
if (isControl
|
|
406
|
+
if (isControl) {
|
|
524
407
|
pViewShadowNode->GetControl().Content(nullptr);
|
|
525
408
|
}
|
|
526
409
|
|
|
527
|
-
// If don't need a control, then set
|
|
528
|
-
// root
|
|
410
|
+
// If don't need a control, then set the Panel as the view root
|
|
529
411
|
if (!useControl) {
|
|
530
|
-
newXamlView =
|
|
412
|
+
newXamlView = pPanel;
|
|
531
413
|
}
|
|
532
414
|
|
|
533
|
-
// Clean up child of Border if needed
|
|
534
|
-
if (hasOuterBorder && !hadOuterBorder)
|
|
535
|
-
pPanel.GetOuterBorder().Child(nullptr);
|
|
536
|
-
|
|
537
415
|
// ASSERT: One of the scenarios should be true, so we should have a root view
|
|
538
416
|
assert(newXamlView != nullptr);
|
|
539
417
|
|
|
@@ -546,13 +424,8 @@ void ViewViewManager::TryUpdateView(
|
|
|
546
424
|
TransferProperties(oldXamlView, newXamlView);
|
|
547
425
|
}
|
|
548
426
|
|
|
549
|
-
// Since we transferred properties to the new view we need to make the call to
|
|
550
|
-
// finalize
|
|
551
|
-
pPanel.FinalizeProperties();
|
|
552
|
-
|
|
553
427
|
// Update the meta-data in the shadow node
|
|
554
428
|
pViewShadowNode->IsControl(useControl);
|
|
555
|
-
pViewShadowNode->HasOuterBorder(hasOuterBorder);
|
|
556
429
|
|
|
557
430
|
//
|
|
558
431
|
// 3. Setup any new parent-child relationships
|
|
@@ -579,19 +452,8 @@ void ViewViewManager::TryUpdateView(
|
|
|
579
452
|
}
|
|
580
453
|
}
|
|
581
454
|
|
|
582
|
-
// Ensure parenting is setup properly
|
|
583
|
-
auto visualRoot = pPanel.try_as<xaml::UIElement>();
|
|
584
|
-
|
|
585
|
-
if (hasOuterBorder) {
|
|
586
|
-
xaml::Controls::Border outerBorder = pPanel.GetOuterBorder();
|
|
587
|
-
if (outerBorder.Child() == nullptr)
|
|
588
|
-
outerBorder.Child(pPanel.try_as<xaml::UIElement>());
|
|
589
|
-
|
|
590
|
-
visualRoot = outerBorder;
|
|
591
|
-
}
|
|
592
|
-
|
|
593
455
|
if (useControl)
|
|
594
|
-
pViewShadowNode->GetControl().Content(
|
|
456
|
+
pViewShadowNode->GetControl().Content(pPanel);
|
|
595
457
|
}
|
|
596
458
|
|
|
597
459
|
void ViewViewManager::SyncFocusableAndAccessible(ViewShadowNode *pViewShadowNode, bool useControl) {
|
|
@@ -627,13 +489,10 @@ void ViewViewManager::SetLayoutProps(
|
|
|
627
489
|
|
|
628
490
|
Super::SetLayoutProps(nodeToUpdate, viewToUpdate, left, top, width, height);
|
|
629
491
|
if (pPanel.ReadLocalValue(ViewPanel::CornerRadiusProperty()) != xaml::DependencyProperty::UnsetValue()) {
|
|
630
|
-
|
|
631
|
-
// logic required to propagate the CornerRadius value to the Border parent.
|
|
632
|
-
auto border = pPanel.GetOuterBorder();
|
|
633
|
-
if (border) {
|
|
492
|
+
if (pPanel.GetValue(React::ViewPanel::CornerRadiusProperty()) != xaml::DependencyProperty::UnsetValue()) {
|
|
634
493
|
const auto maxCornerRadius = std::min(width, height) / 2;
|
|
635
494
|
UpdateCornerRadiusOnElement(&nodeToUpdate, pPanel, maxCornerRadius);
|
|
636
|
-
|
|
495
|
+
pPanel.CornerRadius(pPanel.CornerRadius());
|
|
637
496
|
}
|
|
638
497
|
}
|
|
639
498
|
}
|