react-native-windows 0.68.3 → 0.69.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 +1 -3
- package/Chakra/ChakraHelpers.cpp +0 -1
- package/Directory.Build.props +3 -0
- package/Directory.Build.targets +1 -1
- package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1411 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +336 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +182 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -0
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
- package/Libraries/Alert/Alert.windows.js +2 -2
- package/Libraries/Animated/AnimatedImplementation.js +1 -1
- package/Libraries/Animated/NativeAnimatedHelper.js +55 -9
- package/Libraries/Animated/NativeAnimatedModule.js +1 -0
- package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
- package/Libraries/Animated/animations/TimingAnimation.js +6 -11
- package/Libraries/Animated/createAnimatedComponent.js +2 -2
- package/Libraries/Animated/nodes/AnimatedColor.js +95 -29
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +19 -22
- package/Libraries/Animated/nodes/AnimatedNode.js +2 -2
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/Blob/URL.js +7 -1
- package/Libraries/Components/Button.js +3 -0
- package/Libraries/Components/Button.windows.js +4 -0
- package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +5 -0
- package/Libraries/Components/Pressable/Pressable.js +3 -3
- package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +47 -38
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +15 -7
- package/Libraries/Components/ScrollView/ScrollView.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -3
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -1
- package/Libraries/Components/Slider/Slider.js +0 -2
- package/Libraries/Components/Slider/SliderNativeComponent.js +0 -1
- package/Libraries/Components/StatusBar/StatusBar.js +6 -1
- package/Libraries/Components/Switch/Switch.js +11 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +114 -109
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +17 -9
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +13 -5
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +10 -0
- package/Libraries/Components/TextInput/TextInput.js +1 -8
- package/Libraries/Components/TextInput/TextInput.windows.js +4 -9
- package/Libraries/Components/TextInput/TextInputState.js +10 -2
- package/Libraries/Components/TextInput/TextInputState.windows.js +10 -3
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
- package/Libraries/Components/Touchable/TouchableBounce.js +1 -0
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -0
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +6 -5
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +7 -1
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
- package/Libraries/Components/View/View.windows.js +33 -1
- package/Libraries/Components/View/ViewNativeComponent.js +68 -8
- package/Libraries/Components/View/ViewPropTypes.js +36 -4
- package/Libraries/Components/View/ViewPropTypes.windows.js +36 -4
- package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +1 -1
- package/Libraries/Core/RawEventEmitter.js +38 -0
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/polyfillPromise.js +32 -0
- package/Libraries/Core/setUpReactDevTools.js +3 -2
- package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
- package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -3
- package/Libraries/Events/CustomEvent.js +32 -0
- package/Libraries/Events/EventPolyfill.js +239 -0
- package/Libraries/Image/Image.android.js +0 -6
- package/Libraries/Image/Image.ios.js +0 -6
- package/Libraries/Image/Image.windows.js +2 -8
- package/Libraries/Image/ImageViewNativeComponent.js +18 -3
- package/Libraries/Image/TextInlineImageNativeComponent.js +23 -15
- package/Libraries/Inspector/Inspector.js +2 -4
- package/Libraries/Interaction/BridgeSpyStallHandler.js +4 -3
- package/Libraries/Interaction/InteractionManager.js +1 -12
- package/Libraries/Interaction/TaskQueue.js +5 -4
- package/Libraries/LayoutAnimation/LayoutAnimation.js +13 -0
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +27 -6
- package/Libraries/Lists/VirtualizedList.js +71 -55
- package/Libraries/Lists/VirtualizedListContext.js +7 -3
- package/Libraries/Lists/VirtualizedSectionList.js +2 -2
- package/Libraries/Lists/__tests__/{FillRateHelper-test.windows.js → FillRateHelper-test.js} +2 -2
- package/Libraries/Lists/__tests__/{FlatList-test.windows.js → FlatList-test.js} +2 -2
- package/Libraries/Lists/__tests__/{SectionList-test.windows.js → SectionList-test.js} +14 -14
- package/Libraries/Lists/__tests__/{VirtualizeUtils-test.windows.js → VirtualizeUtils-test.js} +3 -3
- package/Libraries/Lists/__tests__/{VirtualizedList-test.windows.js → VirtualizedList-test.js} +91 -42
- package/Libraries/Lists/__tests__/{VirtualizedSectionList-test.windows.js → VirtualizedSectionList-test.js} +13 -13
- package/Libraries/LogBox/Data/LogBoxData.js +2 -2
- package/Libraries/LogBox/Data/LogBoxLog.js +1 -1
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
- package/Libraries/LogBox/LogBox.js +2 -21
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +2 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +295 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +333 -0
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +334 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +0 -2
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +24 -0
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +7 -42
- package/Libraries/NativeComponent/ViewConfig.js +4 -4
- package/Libraries/NativeComponent/ViewConfigIgnore.js +54 -0
- package/Libraries/Network/FormData.js +7 -1
- package/Libraries/Pressability/Pressability.js +115 -46
- package/Libraries/Pressability/Pressability.windows.js +190 -74
- package/Libraries/Pressability/PressabilityDebug.js +5 -9
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/{DummyUIManager.js → BridgelessUIManager.js} +62 -40
- package/Libraries/ReactNative/PaperUIManager.windows.js +5 -5
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +39 -0
- package/Libraries/ReactNative/UIManager.js +2 -3
- package/Libraries/ReactNative/renderApplication.js +4 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +8 -0
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +5908 -4906
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +2100 -1918
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +2567 -2352
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5610 -4844
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1710 -1556
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1830 -1639
- package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -1
- package/Libraries/StyleSheet/EdgeInsetsPropType.js +4 -1
- package/Libraries/StyleSheet/StyleSheetTypes.js +59 -66
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
- package/Libraries/StyleSheet/private/_TransformStyle.js +53 -0
- package/Libraries/StyleSheet/processTransform.windows.js +272 -0
- package/Libraries/Text/Text.js +13 -7
- package/Libraries/Text/Text.windows.js +16 -7
- package/Libraries/Text/TextNativeComponent.js +2 -0
- package/Libraries/Text/TextProps.js +10 -0
- package/Libraries/Types/CoreEventTypes.js +13 -1
- package/Libraries/Types/CoreEventTypes.windows.js +26 -1
- package/Libraries/Utilities/Appearance.js +0 -8
- package/Libraries/Utilities/HMRClient.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -0
- package/Libraries/Utilities/codegenNativeComponent.js +17 -6
- package/Libraries/Utilities/stringifySafe.js +4 -1
- package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +3 -3
- package/Libraries/WebSocket/WebSocket.js +1 -1
- package/Libraries/vendor/emitter/_EmitterSubscription.js +1 -1
- package/Libraries/vendor/emitter/_EventEmitter.js +1 -1
- package/Libraries/vendor/emitter/_EventSubscription.js +1 -1
- package/Microsoft.ReactNative/DynamicReader.cpp +3 -3
- package/Microsoft.ReactNative/Fabric/ComponentView.h +1 -0
- package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.cpp +36 -2
- package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.h +1 -0
- package/Microsoft.ReactNative/Fabric/DWriteHelpers.cpp +19 -0
- package/Microsoft.ReactNative/Fabric/DWriteHelpers.h +13 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +65 -19
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
- package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +36 -10
- package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +2 -0
- package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +107 -0
- package/Microsoft.ReactNative/Fabric/SliderComponentView.h +51 -0
- package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +109 -0
- package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +52 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentDescriptor.h +197 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +308 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +52 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.cpp +31 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.h +33 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.cpp +81 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.h +132 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.cpp +193 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.h +85 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.cpp +76 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.h +99 -0
- package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +35 -3
- package/Microsoft.ReactNative/Fabric/ViewComponentView.h +1 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.cpp +46 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.h +30 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +2 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +1 -9
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +3 -1
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +119 -57
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -1
- package/Microsoft.ReactNative/IViewManager.idl +3 -3
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +13 -107
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +2 -2
- package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -0
- package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -0
- package/Microsoft.ReactNative/Modules/CreateModules.cpp +3 -3
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -5
- package/Microsoft.ReactNative/Modules/TimingModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/TimingModule.h +2 -2
- package/Microsoft.ReactNative/ReactHost/{ReactContext.cpp → MsoReactContext.cpp} +1 -1
- package/Microsoft.ReactNative/ReactHost/{ReactContext.h → MsoReactContext.h} +0 -0
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +14 -1
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
- package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +1 -1
- package/Microsoft.ReactNative/ReactRootView.cpp +2 -1
- package/Microsoft.ReactNative/RedBox.cpp +3 -2
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +3 -2
- package/Microsoft.ReactNative/Views/ControlViewManager.cpp +32 -0
- package/Microsoft.ReactNative/Views/ControlViewManager.h +11 -0
- package/Microsoft.ReactNative/Views/DevMenu.cpp +2 -2
- package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +13 -2
- package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +149 -22
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
- package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +5 -11
- package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +2 -1
- package/Microsoft.ReactNative/Views/SliderViewManager.cpp +12 -4
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
- package/Microsoft.ReactNative/Views/TextViewManager.cpp +2 -2
- package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +163 -37
- package/Microsoft.ReactNative/Views/TouchEventHandler.h +11 -4
- package/Microsoft.ReactNative/Views/ViewPanel.cpp +3 -23
- package/Microsoft.ReactNative/Views/ViewPanel.h +2 -3
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +21 -0
- package/Microsoft.ReactNative/XamlUIService.cpp +1 -1
- package/Microsoft.ReactNative/XamlView.h +8 -3
- package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +3 -5
- package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +11 -2
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -0
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +10 -1
- package/Microsoft.ReactNative.Cxx/JSValueReader.h +2 -2
- package/Microsoft.ReactNative.Cxx/JSValueWriter.h +5 -5
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -1
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +2 -3
- package/Microsoft.ReactNative.Cxx/NativeModules.h +1 -1
- package/Microsoft.ReactNative.Cxx/ReactContext.h +3 -3
- package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +3 -3
- package/Microsoft.ReactNative.Cxx/XamlUtils.h +44 -5
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +0 -6
- package/Mso/activeObject/activeObject.h +2 -2
- package/Mso/compilerAdapters/cppMacros.h +3 -5
- package/Mso/errorCode/errorProvider.h +2 -2
- package/Mso/errorCode/maybe.h +4 -4
- package/Mso/functional/functor.h +6 -6
- package/Mso/functional/functorRef.h +2 -2
- package/Mso/future/details/executor.h +2 -2
- package/Mso/future/details/futureFuncInl.h +4 -4
- package/Mso/future/details/ifuture.h +3 -3
- package/Mso/future/details/maybeInvoker.h +6 -6
- package/Mso/future/details/promiseGroupInl.h +4 -4
- package/Mso/future/details/promiseInl.h +4 -4
- package/Mso/future/details/resultTraits.h +4 -4
- package/Mso/future/details/whenAllInl.h +1 -1
- package/Mso/future/future.h +13 -13
- package/Mso/guid/msoGuidDetails.h +1 -1
- package/Mso/memoryApi/memoryApi.h +13 -7
- package/Mso/motifCpp/gTestAdapter.h +1 -1
- package/Mso/motifCpp/testInfo.h +7 -9
- package/Mso/object/make.h +8 -8
- package/Mso/object/objectRefCount.h +3 -5
- package/Mso/object/objectWithWeakRef.h +10 -14
- package/Mso/object/queryCast.h +4 -4
- package/Mso/object/refCountedObject.h +4 -4
- package/Mso/object/unknownObject.h +7 -7
- package/Mso/platformAdapters/windowsFirst.h +1 -1
- package/Mso/smartPtr/cntPtr.h +8 -8
- package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +2 -2
- package/Mso/src/future/futureImpl.h +1 -1
- package/Mso/src/memoryApi/memoryApi.cpp +4 -4
- package/PropertySheets/CppAppConsumeCSharpModule.props +3 -0
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.props +26 -0
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.Common.props +12 -0
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/PropertySheets/React.Cpp.props +13 -0
- package/PropertySheets/WinUI.props +3 -6
- package/ReactCommon/ReactCommon.vcxproj +2 -4
- package/ReactCommon/ReactCommon.vcxproj.filters +4 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/JSCRuntime.cpp +1480 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/decorator.h +753 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/jsi.h +1331 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1431 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +103 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +87 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +61 -0
- package/ReactCommon/Yoga.cpp +1 -1
- package/Scripts/{Microsoft.ReactNative.ProjectReunion.nuspec → Microsoft.ReactNative.WindowsAppSDK.nuspec} +7 -9
- package/Scripts/OfficeReact.Win32.nuspec +1 -3
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -1
- package/Scripts/copyRNLibraries.js +8 -8
- package/Scripts/just.js +1 -1
- package/Scripts/rnw-dependencies.ps1 +41 -10
- package/Scripts/run-desktop-integration-tests.js +6 -6
- package/Shared/AbiSafe.h +3 -3
- package/Shared/BaseScriptStoreImpl.cpp +1 -1
- package/Shared/CppRuntimeOptions.h +50 -0
- package/Shared/DevSupportManager.cpp +32 -36
- package/Shared/DevSupportManager.h +1 -2
- package/Shared/HermesRuntimeHolder.cpp +23 -14
- package/Shared/HermesRuntimeHolder.h +8 -2
- package/Shared/IDevSupportManager.h +1 -2
- package/Shared/InspectorPackagerConnection.cpp +7 -5
- package/Shared/InspectorPackagerConnection.h +2 -2
- package/Shared/JSI/ChakraApi.cpp +0 -1
- package/Shared/JSI/ChakraRuntime.cpp +1 -2
- package/Shared/JSI/RuntimeHolder.h +2 -0
- package/Shared/Modules/HttpModule.cpp +1 -1
- package/Shared/Modules/HttpModule.h +2 -2
- package/Shared/Modules/WebSocketModule.cpp +1 -1
- package/Shared/Modules/WebSocketModule.h +8 -5
- package/Shared/{IHttpResource.h → Networking/IHttpResource.h} +4 -4
- package/Shared/{IWebSocketResource.h → Networking/IWebSocketResource.h} +2 -2
- package/Shared/Networking/OriginPolicy.h +15 -0
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +746 -0
- package/Shared/Networking/OriginPolicyHttpFilter.h +112 -0
- package/Shared/{WinRTHttpResource.cpp → Networking/WinRTHttpResource.cpp} +129 -99
- package/Shared/{WinRTHttpResource.h → Networking/WinRTHttpResource.h} +8 -12
- package/Shared/Networking/WinRTTypes.h +30 -0
- package/Shared/{WinRTWebSocketResource.cpp → Networking/WinRTWebSocketResource.cpp} +2 -2
- package/Shared/{WinRTWebSocketResource.h → Networking/WinRTWebSocketResource.h} +3 -3
- package/Shared/OInstance.cpp +5 -5
- package/Shared/RuntimeOptions.cpp +93 -15
- package/Shared/RuntimeOptions.h +22 -9
- package/Shared/Shared.vcxitems +122 -7
- package/Shared/Shared.vcxitems.filters +40 -21
- package/Shared/Threading/BatchingQueueThread.cpp +1 -1
- package/Shared/tracing/fbsystrace.h +2 -2
- package/codegen/NativeActionSheetManagerSpec.g.h +6 -0
- package/codegen/NativeAnimatedModuleSpec.g.h +43 -37
- package/codegen/NativeAnimatedTurboModuleSpec.g.h +43 -37
- package/codegen/NativePushNotificationManagerIOSSpec.g.h +2 -0
- package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
- package/codegen/react/components/rnwcore/EventEmitters.cpp +133 -0
- package/codegen/react/components/rnwcore/EventEmitters.h +0 -18
- package/codegen/react/components/rnwcore/Props.cpp +0 -13
- package/codegen/react/components/rnwcore/Props.h +0 -16
- package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
- package/codegen/react/components/rnwcore/ShadowNodes.h +0 -10
- package/include/Shared/cdebug.h +9 -9
- package/index.js +30 -25
- package/index.windows.js +30 -25
- package/jest/preprocessor.js +24 -107
- package/jest/preprocessor_DO_NOT_USE.js +122 -0
- package/metro.config.js +3 -70
- package/package.json +29 -28
- package/react-native.config.js +40 -6
- package/rntypes/index.d.ts +19 -7
- package/stubs/glog/logging.h +1 -1
- package/template/cpp-app/src/App.h +0 -4
- package/template/cs-app/src/App.xaml.cs +0 -5
- package/template/cs-app/src/MainPage.xaml.cs +1 -10
- package/template/cs-app-WinAppSDK/MyApp/App.xaml +16 -0
- package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +70 -0
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +14 -0
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +38 -0
- package/template/cs-app-WinAppSDK/MyApp/Package.appxmanifest +48 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +10 -0
- package/template/cs-app-WinAppSDK/MyApp/app.manifest +15 -0
- package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +23 -0
- package/template/cs-app-WinAppSDK/proj/MyApp.csproj +49 -0
- package/template/cs-app-WinAppSDK/proj/MyApp.sln +43 -0
- package/template/cs-app-WinAppSDK/proj/NuGet.Config +17 -0
- package/template/metro.devMode.config.js +2 -51
- package/typings-index.js +5 -1
- package/typings-index.js.map +1 -1
- package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -44
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -45
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.windows.js +0 -45
- package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -360
- package/Libraries/Components/View/ReactNativeViewViewConfig.windows.js +0 -390
- package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -83
- package/Libraries/ReactNative/UIManagerInjection.js +0 -15
- package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -24527
- package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -8309
- package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -8961
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -24948
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -8400
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -9049
- package/PropertySheets/CppEnablePackageReferences.props +0 -13
- package/Shared/cdebug.cpp +0 -6
- package/include/Shared/ViewManager.h +0 -34
|
@@ -7,16 +7,23 @@
|
|
|
7
7
|
#include <Fabric/ComponentView.h>
|
|
8
8
|
#include <Fabric/FabricUIManagerModule.h>
|
|
9
9
|
#include <Fabric/ReactNativeConfigProperties.h>
|
|
10
|
+
#ifndef CORE_ABI
|
|
10
11
|
#include <Fabric/ViewComponentView.h>
|
|
12
|
+
#endif // CORE_ABI
|
|
11
13
|
#include <IReactContext.h>
|
|
12
14
|
#include <IReactRootView.h>
|
|
15
|
+
#ifndef CORE_ABI
|
|
13
16
|
#include <IXamlRootView.h>
|
|
17
|
+
#endif // CORE_ABI
|
|
14
18
|
#include <JSI/jsi.h>
|
|
15
19
|
#include <SchedulerSettings.h>
|
|
16
20
|
#include <UI.Xaml.Controls.h>
|
|
17
21
|
#include <react/components/rnwcore/ComponentDescriptors.h>
|
|
18
22
|
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
|
|
19
23
|
#include <react/renderer/components/image/ImageComponentDescriptor.h>
|
|
24
|
+
#ifndef CORE_ABI
|
|
25
|
+
#include <react/renderer/components/slider/SliderComponentDescriptor.h>
|
|
26
|
+
#endif // CORE_ABI
|
|
20
27
|
#include <react/renderer/components/text/ParagraphComponentDescriptor.h>
|
|
21
28
|
#include <react/renderer/components/text/RawTextComponentDescriptor.h>
|
|
22
29
|
#include <react/renderer/components/text/TextComponentDescriptor.h>
|
|
@@ -28,6 +35,9 @@
|
|
|
28
35
|
#include <react/utils/ContextContainer.h>
|
|
29
36
|
#include <runtimeexecutor/ReactCommon/RuntimeExecutor.h>
|
|
30
37
|
#include <winrt/Windows.Graphics.Display.h>
|
|
38
|
+
#ifndef CORE_ABI
|
|
39
|
+
#include "TextInput/WindowsTextInputComponentDescriptor.h"
|
|
40
|
+
#endif // CORE_ABI
|
|
31
41
|
#include "Unicode.h"
|
|
32
42
|
|
|
33
43
|
#pragma warning(push)
|
|
@@ -75,6 +85,7 @@ class AsyncEventBeat final : public facebook::react::EventBeat { //, public face
|
|
|
75
85
|
return;
|
|
76
86
|
}
|
|
77
87
|
|
|
88
|
+
#ifndef CORE_ABI
|
|
78
89
|
// TODO: should use something other than CompositionTarget::Rendering ... not sure where to plug this in yet
|
|
79
90
|
// Getting the beat running to unblock basic events
|
|
80
91
|
m_rendering = xaml::Media::CompositionTarget::Rendering(
|
|
@@ -86,6 +97,7 @@ class AsyncEventBeat final : public facebook::react::EventBeat { //, public face
|
|
|
86
97
|
|
|
87
98
|
tick();
|
|
88
99
|
});
|
|
100
|
+
#endif // CORE_ABI
|
|
89
101
|
});
|
|
90
102
|
|
|
91
103
|
// eventBeatManager->addObserver(*this);
|
|
@@ -142,12 +154,20 @@ std::shared_ptr<facebook::react::ComponentDescriptorProviderRegistry const> shar
|
|
|
142
154
|
facebook::react::concreteComponentDescriptorProvider<facebook::react::RawTextComponentDescriptor>());
|
|
143
155
|
providerRegistry->add(
|
|
144
156
|
facebook::react::concreteComponentDescriptorProvider<facebook::react::ScrollViewComponentDescriptor>());
|
|
157
|
+
#ifndef CORE_ABI
|
|
145
158
|
providerRegistry->add(
|
|
146
|
-
facebook::react::concreteComponentDescriptorProvider<facebook::react::
|
|
159
|
+
facebook::react::concreteComponentDescriptorProvider<facebook::react::SliderComponentDescriptor>());
|
|
160
|
+
#endif // CORE_ABI
|
|
161
|
+
providerRegistry->add(
|
|
162
|
+
facebook::react::concreteComponentDescriptorProvider<facebook::react::SwitchComponentDescriptor>());
|
|
147
163
|
providerRegistry->add(
|
|
148
|
-
facebook::react::concreteComponentDescriptorProvider<facebook::react::
|
|
164
|
+
facebook::react::concreteComponentDescriptorProvider<facebook::react::TextComponentDescriptor>());
|
|
149
165
|
providerRegistry->add(
|
|
150
166
|
facebook::react::concreteComponentDescriptorProvider<facebook::react::ViewComponentDescriptor>());
|
|
167
|
+
#ifndef CORE_ABI
|
|
168
|
+
providerRegistry->add(
|
|
169
|
+
facebook::react::concreteComponentDescriptorProvider<facebook::react::WindowsTextInputComponentDescriptor>());
|
|
170
|
+
#endif // CORE_ABI
|
|
151
171
|
return providerRegistry;
|
|
152
172
|
}();
|
|
153
173
|
|
|
@@ -161,6 +181,10 @@ void FabricUIManager::installFabricUIManager() noexcept {
|
|
|
161
181
|
std::lock_guard<std::mutex> schedulerLock(m_schedulerMutex);
|
|
162
182
|
|
|
163
183
|
facebook::react::ContextContainer::Shared contextContainer = std::make_shared<facebook::react::ContextContainer>();
|
|
184
|
+
|
|
185
|
+
// This allows access to our ReactContext from the contextContainer thats passed around the fabric codebase
|
|
186
|
+
contextContainer->insert("MSRN.ReactContext", m_context);
|
|
187
|
+
|
|
164
188
|
auto runtimeExecutor = SchedulerSettings::GetRuntimeExecutor(m_context.Properties());
|
|
165
189
|
|
|
166
190
|
// TODO: T31905686 Create synchronous Event Beat
|
|
@@ -200,14 +224,15 @@ void FabricUIManager::installFabricUIManager() noexcept {
|
|
|
200
224
|
toolbox.runtimeExecutor = runtimeExecutor;
|
|
201
225
|
toolbox.synchronousEventBeatFactory = synchronousBeatFactory;
|
|
202
226
|
toolbox.asynchronousEventBeatFactory = asynchronousBeatFactory;
|
|
227
|
+
toolbox.backgroundExecutor = [context = m_context,
|
|
228
|
+
dispatcher = Mso::DispatchQueue::MakeLooperQueue()](std::function<void()> &&callback) {
|
|
229
|
+
if (context.UIDispatcher().HasThreadAccess()) {
|
|
230
|
+
callback();
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
203
233
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
"react_fabric:enable_background_executor_android")) {
|
|
207
|
-
backgroundExecutor_ = std::make_unique<JBackgroundExecutor>();
|
|
208
|
-
toolbox.backgroundExecutor = backgroundExecutor_->get();
|
|
209
|
-
}
|
|
210
|
-
*/
|
|
234
|
+
dispatcher.Post(std::move(callback));
|
|
235
|
+
};
|
|
211
236
|
|
|
212
237
|
m_scheduler = std::make_shared<facebook::react::Scheduler>(
|
|
213
238
|
toolbox, (/*animationDriver_ ? animationDriver_.get() :*/ nullptr), this);
|
|
@@ -223,10 +248,12 @@ void FabricUIManager::startSurface(
|
|
|
223
248
|
facebook::react::SurfaceId surfaceId,
|
|
224
249
|
const std::string &moduleName,
|
|
225
250
|
const folly::dynamic &initialProps) noexcept {
|
|
251
|
+
#ifndef CORE_ABI
|
|
226
252
|
auto xamlRootView = static_cast<IXamlRootView *>(rootview);
|
|
227
253
|
auto rootFE = xamlRootView->GetXamlView().as<xaml::FrameworkElement>();
|
|
228
254
|
|
|
229
255
|
m_surfaceRegistry.insert({surfaceId, xamlRootView->GetXamlView()});
|
|
256
|
+
#endif // CORE_ABI
|
|
230
257
|
|
|
231
258
|
m_context.UIDispatcher().Post([self = shared_from_this(), surfaceId]() {
|
|
232
259
|
self->m_registry.dequeueComponentViewWithComponentHandle(facebook::react::RootShadowNode::Handle(), surfaceId);
|
|
@@ -239,6 +266,7 @@ void FabricUIManager::startSurface(
|
|
|
239
266
|
winrt::Windows::Graphics::Display::DisplayInformation::GetForCurrentView().RawPixelsPerViewPixel());
|
|
240
267
|
|
|
241
268
|
facebook::react::LayoutConstraints constraints;
|
|
269
|
+
#ifndef CORE_ABI
|
|
242
270
|
constraints.minimumSize.height = static_cast<facebook::react::Float>(rootFE.ActualHeight());
|
|
243
271
|
constraints.minimumSize.width = static_cast<facebook::react::Float>(rootFE.ActualWidth());
|
|
244
272
|
constraints.maximumSize.height = static_cast<facebook::react::Float>(rootFE.ActualHeight());
|
|
@@ -246,6 +274,7 @@ void FabricUIManager::startSurface(
|
|
|
246
274
|
constraints.layoutDirection = rootFE.FlowDirection() == xaml::FlowDirection::LeftToRight
|
|
247
275
|
? facebook::react::LayoutDirection::LeftToRight
|
|
248
276
|
: facebook::react::LayoutDirection::RightToLeft;
|
|
277
|
+
#endif // CORE_ABI
|
|
249
278
|
|
|
250
279
|
m_surfaceManager->startSurface(
|
|
251
280
|
surfaceId,
|
|
@@ -276,12 +305,14 @@ void FabricUIManager::constraintSurfaceLayout(
|
|
|
276
305
|
|
|
277
306
|
void FabricUIManager::didMountComponentsWithRootTag(facebook::react::SurfaceId surfaceId) noexcept {
|
|
278
307
|
auto rootComponentViewDescriptor = m_registry.componentViewDescriptorWithTag(surfaceId);
|
|
308
|
+
#ifndef CORE_ABI
|
|
279
309
|
auto children = m_surfaceRegistry.at(surfaceId).as<xaml::Controls::Panel>().Children();
|
|
280
310
|
|
|
281
311
|
uint32_t index;
|
|
282
312
|
if (!children.IndexOf(static_cast<ViewComponentView &>(*rootComponentViewDescriptor.view).Element(), index)) {
|
|
283
313
|
children.Append(static_cast<ViewComponentView &>(*rootComponentViewDescriptor.view).Element());
|
|
284
314
|
}
|
|
315
|
+
#endif // CORE_ABI
|
|
285
316
|
}
|
|
286
317
|
|
|
287
318
|
struct RemoveDeleteMetadata {
|
|
@@ -387,15 +418,19 @@ void FabricUIManager::performTransaction(facebook::react::MountingCoordinator::S
|
|
|
387
418
|
auto surfaceId = mountingCoordinator->getSurfaceId();
|
|
388
419
|
|
|
389
420
|
mountingCoordinator->getTelemetryController().pullTransaction(
|
|
390
|
-
[&](facebook::react::
|
|
421
|
+
[&](facebook::react::MountingTransaction const &transaction,
|
|
422
|
+
facebook::react::SurfaceTelemetry const &surfaceTelemetry) {
|
|
391
423
|
//[self.delegate mountingManager:self willMountComponentsWithRootTag:surfaceId];
|
|
392
|
-
//_observerCoordinator.notifyObserversMountingTransactionWillMount(
|
|
424
|
+
// _observerCoordinator.notifyObserversMountingTransactionWillMount(transaction, surfaceTelemetry);
|
|
393
425
|
},
|
|
394
|
-
[&](facebook::react::
|
|
395
|
-
|
|
426
|
+
[&](facebook::react::MountingTransaction const &transaction,
|
|
427
|
+
facebook::react::SurfaceTelemetry const &surfaceTelemetry) {
|
|
428
|
+
RCTPerformMountInstructions(
|
|
429
|
+
transaction.getMutations(), /* _componentViewRegistry, _observerCoordinator,*/ surfaceId);
|
|
396
430
|
},
|
|
397
|
-
[&](facebook::react::
|
|
398
|
-
|
|
431
|
+
[&](facebook::react::MountingTransaction const &transaction,
|
|
432
|
+
facebook::react::SurfaceTelemetry const &surfaceTelemetry) {
|
|
433
|
+
//_observerCoordinator.notifyObserversMountingTransactionDidMount(transaction, surfaceTelemetry);
|
|
399
434
|
didMountComponentsWithRootTag(surfaceId);
|
|
400
435
|
//[self.delegate mountingManager:self didMountComponentsWithRootTag:surfaceId];
|
|
401
436
|
});
|
|
@@ -476,15 +511,26 @@ void FabricUIManager::schedulerDidDispatchCommand(
|
|
|
476
511
|
facebook::react::ShadowView const &shadowView,
|
|
477
512
|
std::string const &commandName,
|
|
478
513
|
folly::dynamic const &arg) {
|
|
479
|
-
|
|
514
|
+
if (m_context.UIDispatcher().HasThreadAccess()) {
|
|
515
|
+
auto descriptor = m_registry.componentViewDescriptorWithTag(shadowView.tag);
|
|
516
|
+
descriptor.view->handleCommand(commandName, arg);
|
|
517
|
+
} else {
|
|
518
|
+
m_context.UIDispatcher().Post(
|
|
519
|
+
[wkThis = weak_from_this(), commandName, tag = shadowView.tag, args = folly::dynamic(arg)]() {
|
|
520
|
+
if (auto pThis = wkThis.lock()) {
|
|
521
|
+
auto view = pThis->m_registry.findComponentViewWithTag(tag);
|
|
522
|
+
if (view) {
|
|
523
|
+
view->handleCommand(commandName, args);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
});
|
|
527
|
+
}
|
|
480
528
|
}
|
|
481
529
|
|
|
482
530
|
void FabricUIManager::schedulerDidSetIsJSResponder(
|
|
483
531
|
facebook::react::ShadowView const &shadowView,
|
|
484
532
|
bool isJSResponder,
|
|
485
|
-
bool blockNativeResponder) {
|
|
486
|
-
assert(false);
|
|
487
|
-
}
|
|
533
|
+
bool blockNativeResponder) {}
|
|
488
534
|
|
|
489
535
|
void FabricUIManager::schedulerDidSendAccessibilityEvent(
|
|
490
536
|
const facebook::react::ShadowView &shadowView,
|
|
@@ -65,7 +65,9 @@ struct FabricUIManager final : public std::enable_shared_from_this<FabricUIManag
|
|
|
65
65
|
bool m_followUpTransactionRequired{false};
|
|
66
66
|
|
|
67
67
|
ComponentViewRegistry m_registry;
|
|
68
|
+
#ifndef CORE_ABI
|
|
68
69
|
std::unordered_map<facebook::react::SurfaceId, XamlView> m_surfaceRegistry;
|
|
70
|
+
#endif // CORE_ABI
|
|
69
71
|
|
|
70
72
|
// Inherited via SchedulerDelegate
|
|
71
73
|
virtual void schedulerDidFinishTransaction(
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
#include "ParagraphComponentView.h"
|
|
8
8
|
|
|
9
9
|
#include <UI.Xaml.Controls.h>
|
|
10
|
+
#include <UI.Xaml.Documents.h>
|
|
10
11
|
#include <Utils/ValueUtils.h>
|
|
11
12
|
#include <dwrite.h>
|
|
12
13
|
#include <react/renderer/components/text/ParagraphShadowNode.h>
|
|
@@ -30,14 +31,12 @@ void ParagraphComponentView::mountChildComponentView(
|
|
|
30
31
|
uint32_t index) noexcept {
|
|
31
32
|
auto v = static_cast<const ParagraphComponentView &>(childComponentView);
|
|
32
33
|
assert(false);
|
|
33
|
-
// m_element.Children().InsertAt(index, v.Element());
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
void ParagraphComponentView::unmountChildComponentView(
|
|
37
37
|
const IComponentView &childComponentView,
|
|
38
38
|
uint32_t index) noexcept {
|
|
39
39
|
assert(false);
|
|
40
|
-
// m_element.Children().RemoveAt(index);
|
|
41
40
|
}
|
|
42
41
|
|
|
43
42
|
void ParagraphComponentView::updateProps(
|
|
@@ -99,11 +98,40 @@ void ParagraphComponentView::updateState(
|
|
|
99
98
|
facebook::react::State::Shared const &oldState) noexcept {
|
|
100
99
|
const auto &newState = *std::static_pointer_cast<facebook::react::ParagraphShadowNode::ConcreteState const>(state);
|
|
101
100
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
101
|
+
m_element.Inlines().Clear();
|
|
102
|
+
|
|
103
|
+
for (const auto &fragment : newState.getData().attributedString.getFragments()) {
|
|
104
|
+
auto inlines = m_element.Inlines();
|
|
105
|
+
|
|
106
|
+
if (auto tdlt = fragment.textAttributes.textDecorationLineType; tdlt &&
|
|
107
|
+
(*tdlt == facebook::react::TextDecorationLineType::Underline ||
|
|
108
|
+
*tdlt == facebook::react::TextDecorationLineType::UnderlineStrikethrough)) {
|
|
109
|
+
auto underline = xaml::Documents::Underline();
|
|
110
|
+
inlines.Append(underline);
|
|
111
|
+
inlines = underline.Inlines();
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
if (fragment.textAttributes.fontStyle == facebook::react::FontStyle::Italic ||
|
|
115
|
+
fragment.textAttributes.fontStyle == facebook::react::FontStyle::Oblique) {
|
|
116
|
+
auto italic = xaml::Documents::Italic();
|
|
117
|
+
inlines.Append(italic);
|
|
118
|
+
inlines = italic.Inlines();
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
auto run = xaml::Documents::Run();
|
|
122
|
+
run.Text(winrt::to_hstring(fragment.string));
|
|
123
|
+
run.FontFamily(xaml::Media::FontFamily(
|
|
124
|
+
fragment.textAttributes.fontFamily.empty() ? L"Segoe UI"
|
|
125
|
+
: winrt::to_hstring(fragment.textAttributes.fontFamily)));
|
|
126
|
+
|
|
127
|
+
run.FontWeight(
|
|
128
|
+
winrt::Windows::UI::Text::FontWeight{static_cast<uint16_t>(fragment.textAttributes.fontWeight.value_or(
|
|
129
|
+
static_cast<facebook::react::FontWeight>(DWRITE_FONT_WEIGHT_REGULAR)))});
|
|
130
|
+
|
|
131
|
+
run.FontSize(fragment.textAttributes.fontSize);
|
|
132
|
+
run.Foreground(fragment.textAttributes.foregroundColor.AsWindowsBrush());
|
|
133
|
+
inlines.Append(run);
|
|
134
|
+
}
|
|
107
135
|
}
|
|
108
136
|
void ParagraphComponentView::updateLayoutMetrics(
|
|
109
137
|
facebook::react::LayoutMetrics const &layoutMetrics,
|
|
@@ -118,9 +146,7 @@ void ParagraphComponentView::updateLayoutMetrics(
|
|
|
118
146
|
m_element.Width(layoutMetrics.frame.size.width);
|
|
119
147
|
m_element.Height(layoutMetrics.frame.size.height);
|
|
120
148
|
}
|
|
121
|
-
void ParagraphComponentView::finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept {
|
|
122
|
-
// m_element.FinalizeProperties();
|
|
123
|
-
}
|
|
149
|
+
void ParagraphComponentView::finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept {}
|
|
124
150
|
void ParagraphComponentView::prepareForRecycle() noexcept {}
|
|
125
151
|
facebook::react::SharedProps ParagraphComponentView::props() noexcept {
|
|
126
152
|
assert(false);
|
|
@@ -23,6 +23,8 @@ ScrollViewComponentView::ScrollViewComponentView() {
|
|
|
23
23
|
// m_props = defaultProps;
|
|
24
24
|
|
|
25
25
|
m_element.Content(m_contentPanel);
|
|
26
|
+
m_contentPanel.VerticalAlignment(xaml::VerticalAlignment::Top);
|
|
27
|
+
m_contentPanel.HorizontalAlignment(xaml::HorizontalAlignment::Left);
|
|
26
28
|
|
|
27
29
|
m_scrollViewerViewChangingRevoker =
|
|
28
30
|
m_element.ViewChanging(winrt::auto_revoke, [this](const auto &sender, const auto &args) {
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
|
|
5
|
+
#pragma once
|
|
6
|
+
|
|
7
|
+
#include "SliderComponentView.h"
|
|
8
|
+
|
|
9
|
+
#include <UI.Xaml.Controls.Primitives.h>
|
|
10
|
+
#include <Utils/ValueUtils.h>
|
|
11
|
+
|
|
12
|
+
#include <IReactContext.h>
|
|
13
|
+
|
|
14
|
+
#include <react/renderer/components/rnwcore/EventEmitters.h>
|
|
15
|
+
|
|
16
|
+
namespace Microsoft::ReactNative {
|
|
17
|
+
|
|
18
|
+
SliderComponentView::SliderComponentView(winrt::Microsoft::ReactNative::ReactContext const &reactContext)
|
|
19
|
+
: m_context(reactContext), m_element(xaml::Controls::Slider()) {
|
|
20
|
+
m_valueChangedRevoker = m_element.ValueChanged(winrt::auto_revoke, [this](auto sender, auto args) {
|
|
21
|
+
if (m_props->value != m_element.Value()) {
|
|
22
|
+
if (m_eventEmitter) {
|
|
23
|
+
auto emitter = std::static_pointer_cast<const facebook::react::SliderEventEmitter>(m_eventEmitter);
|
|
24
|
+
facebook::react::SliderEventEmitter::OnValueChange onValueChangeArgs;
|
|
25
|
+
onValueChangeArgs.value = m_element.Value();
|
|
26
|
+
emitter->onValueChange(onValueChangeArgs);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
static auto const defaultProps = std::make_shared<facebook::react::SliderProps const>();
|
|
32
|
+
m_props = defaultProps;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
std::vector<facebook::react::ComponentDescriptorProvider>
|
|
36
|
+
SliderComponentView::supplementalComponentDescriptorProviders() noexcept {
|
|
37
|
+
return {};
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
void SliderComponentView::mountChildComponentView(const IComponentView &childComponentView, uint32_t index) noexcept {
|
|
41
|
+
assert(false);
|
|
42
|
+
// m_element->Children().InsertAt(index, static_cast<const BaseComponentView &>(childComponentView).Element());
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
void SliderComponentView::unmountChildComponentView(const IComponentView &childComponentView, uint32_t index) noexcept {
|
|
46
|
+
assert(false);
|
|
47
|
+
// m_element->Children().RemoveAt(index);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
void SliderComponentView::updateProps(
|
|
51
|
+
facebook::react::Props::Shared const &props,
|
|
52
|
+
facebook::react::Props::Shared const &oldProps) noexcept {
|
|
53
|
+
const auto &oldSliderProps = *std::static_pointer_cast<const facebook::react::SliderProps>(m_props);
|
|
54
|
+
const auto &newSliderProps = *std::static_pointer_cast<const facebook::react::SliderProps>(props);
|
|
55
|
+
|
|
56
|
+
if (oldSliderProps.value != newSliderProps.value) {
|
|
57
|
+
m_element.Value(newSliderProps.value);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (oldSliderProps.maximumValue != newSliderProps.maximumValue) {
|
|
61
|
+
m_element.Maximum(newSliderProps.maximumValue);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (oldSliderProps.minimumValue != newSliderProps.minimumValue) {
|
|
65
|
+
m_element.Minimum(newSliderProps.minimumValue);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (oldSliderProps.disabled != newSliderProps.disabled) {
|
|
69
|
+
m_element.IsEnabled(!newSliderProps.disabled);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// TODO tint colors
|
|
73
|
+
|
|
74
|
+
m_props = std::static_pointer_cast<facebook::react::SliderProps const>(props);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
void SliderComponentView::updateState(
|
|
78
|
+
facebook::react::State::Shared const &state,
|
|
79
|
+
facebook::react::State::Shared const &oldState) noexcept {}
|
|
80
|
+
|
|
81
|
+
void SliderComponentView::updateLayoutMetrics(
|
|
82
|
+
facebook::react::LayoutMetrics const &layoutMetrics,
|
|
83
|
+
facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept {
|
|
84
|
+
// Set Position & Size Properties
|
|
85
|
+
|
|
86
|
+
m_layoutMetrics = layoutMetrics;
|
|
87
|
+
|
|
88
|
+
winrt::Microsoft::ReactNative::ViewPanel::SetLeft(m_element, layoutMetrics.frame.origin.x);
|
|
89
|
+
winrt::Microsoft::ReactNative::ViewPanel::SetTop(m_element, layoutMetrics.frame.origin.y);
|
|
90
|
+
|
|
91
|
+
m_element.Width(layoutMetrics.frame.size.width);
|
|
92
|
+
m_element.Height(layoutMetrics.frame.size.height);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
void SliderComponentView::finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept {}
|
|
96
|
+
|
|
97
|
+
void SliderComponentView::prepareForRecycle() noexcept {}
|
|
98
|
+
facebook::react::SharedProps SliderComponentView::props() noexcept {
|
|
99
|
+
assert(false);
|
|
100
|
+
return {};
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const xaml::FrameworkElement SliderComponentView::Element() const noexcept {
|
|
104
|
+
return m_element;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
} // namespace Microsoft::ReactNative
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
|
|
5
|
+
#pragma once
|
|
6
|
+
|
|
7
|
+
#include "ComponentView.h"
|
|
8
|
+
|
|
9
|
+
#include <Microsoft.ReactNative.Cxx/ReactContext.h>
|
|
10
|
+
#include <UI.Xaml.Controls.h>
|
|
11
|
+
#include <react/renderer/components/rnwcore/Props.h>
|
|
12
|
+
#include "ViewComponentView.h"
|
|
13
|
+
|
|
14
|
+
#pragma warning(push)
|
|
15
|
+
#pragma warning(disable : 4244 4305)
|
|
16
|
+
// #include <react/renderer/components/view/ViewProps.h>
|
|
17
|
+
#pragma warning(pop)
|
|
18
|
+
|
|
19
|
+
namespace Microsoft::ReactNative {
|
|
20
|
+
|
|
21
|
+
struct SliderComponentView : BaseComponentView {
|
|
22
|
+
using Super = BaseComponentView;
|
|
23
|
+
SliderComponentView(winrt::Microsoft::ReactNative::ReactContext const &reactContext);
|
|
24
|
+
|
|
25
|
+
std::vector<facebook::react::ComponentDescriptorProvider> supplementalComponentDescriptorProviders() noexcept
|
|
26
|
+
override;
|
|
27
|
+
void mountChildComponentView(const IComponentView &childComponentView, uint32_t index) noexcept override;
|
|
28
|
+
void unmountChildComponentView(const IComponentView &childComponentView, uint32_t index) noexcept override;
|
|
29
|
+
void updateProps(facebook::react::Props::Shared const &props, facebook::react::Props::Shared const &oldProps) noexcept
|
|
30
|
+
override;
|
|
31
|
+
void updateState(facebook::react::State::Shared const &state, facebook::react::State::Shared const &oldState) noexcept
|
|
32
|
+
override;
|
|
33
|
+
void updateLayoutMetrics(
|
|
34
|
+
facebook::react::LayoutMetrics const &layoutMetrics,
|
|
35
|
+
facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept override;
|
|
36
|
+
void finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept override;
|
|
37
|
+
void prepareForRecycle() noexcept override;
|
|
38
|
+
facebook::react::SharedProps props() noexcept override;
|
|
39
|
+
|
|
40
|
+
const xaml::FrameworkElement Element() const noexcept override;
|
|
41
|
+
|
|
42
|
+
private:
|
|
43
|
+
bool m_needsOnLoadStart{false};
|
|
44
|
+
std::shared_ptr<facebook::react::SliderProps const> m_props;
|
|
45
|
+
facebook::react::LayoutMetrics m_layoutMetrics;
|
|
46
|
+
xaml::Controls::Slider m_element;
|
|
47
|
+
xaml::Controls::Slider::ValueChanged_revoker m_valueChangedRevoker;
|
|
48
|
+
winrt::Microsoft::ReactNative::ReactContext m_context;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
} // namespace Microsoft::ReactNative
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
|
|
5
|
+
#pragma once
|
|
6
|
+
|
|
7
|
+
#include "SwitchComponentView.h"
|
|
8
|
+
|
|
9
|
+
#include <Utils/ValueUtils.h>
|
|
10
|
+
|
|
11
|
+
#include <IReactContext.h>
|
|
12
|
+
|
|
13
|
+
#include <react/renderer/components/rnwcore/EventEmitters.h>
|
|
14
|
+
|
|
15
|
+
namespace Microsoft::ReactNative {
|
|
16
|
+
|
|
17
|
+
SwitchComponentView::SwitchComponentView(winrt::Microsoft::ReactNative::ReactContext const &reactContext)
|
|
18
|
+
: m_context(reactContext), m_element(xaml::Controls::ToggleSwitch()) {
|
|
19
|
+
m_element.OnContent(nullptr);
|
|
20
|
+
m_element.OffContent(nullptr);
|
|
21
|
+
|
|
22
|
+
m_toggledRevoker = m_element.Toggled(winrt::auto_revoke, [this](auto sender, auto args) {
|
|
23
|
+
if (m_props->value != m_element.IsOn()) {
|
|
24
|
+
if (m_eventEmitter) {
|
|
25
|
+
auto emitter = std::static_pointer_cast<const facebook::react::SwitchEventEmitter>(m_eventEmitter);
|
|
26
|
+
facebook::react::SwitchEventEmitter::OnChange onChangeArgs;
|
|
27
|
+
onChangeArgs.value = m_element.IsOn();
|
|
28
|
+
emitter->onChange(onChangeArgs);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
static auto const defaultProps = std::make_shared<facebook::react::SwitchProps const>();
|
|
34
|
+
m_props = defaultProps;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
void SwitchComponentView::handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept {
|
|
38
|
+
if (commandName == "setValue") {
|
|
39
|
+
m_element.IsOn(arg[0].asBool());
|
|
40
|
+
} else {
|
|
41
|
+
Super::handleCommand(commandName, arg);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
std::vector<facebook::react::ComponentDescriptorProvider>
|
|
46
|
+
SwitchComponentView::supplementalComponentDescriptorProviders() noexcept {
|
|
47
|
+
return {};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
void SwitchComponentView::mountChildComponentView(const IComponentView &childComponentView, uint32_t index) noexcept {
|
|
51
|
+
assert(false);
|
|
52
|
+
// m_element->Children().InsertAt(index, static_cast<const BaseComponentView &>(childComponentView).Element());
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
void SwitchComponentView::unmountChildComponentView(const IComponentView &childComponentView, uint32_t index) noexcept {
|
|
56
|
+
assert(false);
|
|
57
|
+
// m_element->Children().RemoveAt(index);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
void SwitchComponentView::updateProps(
|
|
61
|
+
facebook::react::Props::Shared const &props,
|
|
62
|
+
facebook::react::Props::Shared const &oldProps) noexcept {
|
|
63
|
+
const auto &oldSwitchProps = *std::static_pointer_cast<const facebook::react::SwitchProps>(m_props);
|
|
64
|
+
const auto &newSwitchProps = *std::static_pointer_cast<const facebook::react::SwitchProps>(props);
|
|
65
|
+
|
|
66
|
+
if (oldSwitchProps.value != newSwitchProps.value) {
|
|
67
|
+
m_element.IsOn(newSwitchProps.value);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (oldSwitchProps.disabled != newSwitchProps.disabled) {
|
|
71
|
+
m_element.IsEnabled(!newSwitchProps.disabled);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// TODO tint colors
|
|
75
|
+
|
|
76
|
+
m_props = std::static_pointer_cast<facebook::react::SwitchProps const>(props);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
void SwitchComponentView::updateState(
|
|
80
|
+
facebook::react::State::Shared const &state,
|
|
81
|
+
facebook::react::State::Shared const &oldState) noexcept {}
|
|
82
|
+
|
|
83
|
+
void SwitchComponentView::updateLayoutMetrics(
|
|
84
|
+
facebook::react::LayoutMetrics const &layoutMetrics,
|
|
85
|
+
facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept {
|
|
86
|
+
// Set Position & Size Properties
|
|
87
|
+
|
|
88
|
+
m_layoutMetrics = layoutMetrics;
|
|
89
|
+
|
|
90
|
+
winrt::Microsoft::ReactNative::ViewPanel::SetLeft(m_element, layoutMetrics.frame.origin.x);
|
|
91
|
+
winrt::Microsoft::ReactNative::ViewPanel::SetTop(m_element, layoutMetrics.frame.origin.y);
|
|
92
|
+
|
|
93
|
+
m_element.Width(layoutMetrics.frame.size.width);
|
|
94
|
+
m_element.Height(layoutMetrics.frame.size.height);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
void SwitchComponentView::finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept {}
|
|
98
|
+
|
|
99
|
+
void SwitchComponentView::prepareForRecycle() noexcept {}
|
|
100
|
+
facebook::react::SharedProps SwitchComponentView::props() noexcept {
|
|
101
|
+
assert(false);
|
|
102
|
+
return {};
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
const xaml::FrameworkElement SwitchComponentView::Element() const noexcept {
|
|
106
|
+
return m_element;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
} // namespace Microsoft::ReactNative
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
|
|
5
|
+
#pragma once
|
|
6
|
+
|
|
7
|
+
#include "ComponentView.h"
|
|
8
|
+
|
|
9
|
+
#include <Microsoft.ReactNative.Cxx/ReactContext.h>
|
|
10
|
+
#include <UI.Xaml.Controls.h>
|
|
11
|
+
#include <react/renderer/components/rnwcore/Props.h>
|
|
12
|
+
#include "ViewComponentView.h"
|
|
13
|
+
|
|
14
|
+
#pragma warning(push)
|
|
15
|
+
#pragma warning(disable : 4244 4305)
|
|
16
|
+
// #include <react/renderer/components/view/ViewProps.h>
|
|
17
|
+
#pragma warning(pop)
|
|
18
|
+
|
|
19
|
+
namespace Microsoft::ReactNative {
|
|
20
|
+
|
|
21
|
+
struct SwitchComponentView : BaseComponentView {
|
|
22
|
+
using Super = BaseComponentView;
|
|
23
|
+
SwitchComponentView(winrt::Microsoft::ReactNative::ReactContext const &reactContext);
|
|
24
|
+
|
|
25
|
+
std::vector<facebook::react::ComponentDescriptorProvider> supplementalComponentDescriptorProviders() noexcept
|
|
26
|
+
override;
|
|
27
|
+
void mountChildComponentView(const IComponentView &childComponentView, uint32_t index) noexcept override;
|
|
28
|
+
void unmountChildComponentView(const IComponentView &childComponentView, uint32_t index) noexcept override;
|
|
29
|
+
void updateProps(facebook::react::Props::Shared const &props, facebook::react::Props::Shared const &oldProps) noexcept
|
|
30
|
+
override;
|
|
31
|
+
void updateState(facebook::react::State::Shared const &state, facebook::react::State::Shared const &oldState) noexcept
|
|
32
|
+
override;
|
|
33
|
+
void updateLayoutMetrics(
|
|
34
|
+
facebook::react::LayoutMetrics const &layoutMetrics,
|
|
35
|
+
facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept override;
|
|
36
|
+
void finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept override;
|
|
37
|
+
void prepareForRecycle() noexcept override;
|
|
38
|
+
facebook::react::SharedProps props() noexcept override;
|
|
39
|
+
void handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept override;
|
|
40
|
+
|
|
41
|
+
const xaml::FrameworkElement Element() const noexcept override;
|
|
42
|
+
|
|
43
|
+
private:
|
|
44
|
+
bool m_needsOnLoadStart{false};
|
|
45
|
+
std::shared_ptr<facebook::react::SwitchProps const> m_props;
|
|
46
|
+
facebook::react::LayoutMetrics m_layoutMetrics;
|
|
47
|
+
xaml::Controls::ToggleSwitch m_element;
|
|
48
|
+
xaml::Controls::ToggleSwitch::Toggled_revoker m_toggledRevoker;
|
|
49
|
+
winrt::Microsoft::ReactNative::ReactContext m_context;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
} // namespace Microsoft::ReactNative
|