react-native-tvos 0.73.7-1 → 0.74.0-0
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/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +6 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +6 -0
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +4 -45
- package/Libraries/Alert/NativeAlertManager.js +4 -26
- package/Libraries/Animated/Animated.js +2 -2
- package/Libraries/Animated/AnimatedPlatformConfig.js +1 -1
- package/Libraries/Animated/NativeAnimatedHelper.js +14 -11
- package/Libraries/Animated/NativeAnimatedModule.js +4 -68
- package/Libraries/Animated/NativeAnimatedTurboModule.js +4 -69
- package/Libraries/Animated/animations/Animation.js +6 -22
- package/Libraries/Animated/components/AnimatedFlatList.js +1 -16
- package/Libraries/Animated/components/AnimatedScrollView.js +36 -31
- package/Libraries/Animated/components/AnimatedSectionList.js +1 -20
- package/Libraries/Animated/createAnimatedComponent.js +45 -40
- package/Libraries/Animated/nodes/AnimatedStyle.js +1 -1
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +1 -1
- package/Libraries/Animated/useAnimatedProps.js +21 -1
- package/Libraries/AppDelegate/RCTAppDelegate.h +35 -16
- package/Libraries/AppDelegate/RCTAppDelegate.mm +122 -177
- package/Libraries/AppDelegate/RCTAppSetupUtils.h +8 -17
- package/Libraries/AppDelegate/RCTAppSetupUtils.mm +55 -41
- package/Libraries/AppDelegate/RCTRootViewFactory.h +133 -0
- package/Libraries/AppDelegate/RCTRootViewFactory.mm +270 -0
- package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +15 -38
- package/Libraries/AppState/NativeAppState.js +4 -24
- package/Libraries/BatchedBridge/NativeModules.js +1 -1
- package/Libraries/Blob/Blob.js +1 -4
- package/Libraries/Blob/BlobManager.js +6 -8
- package/Libraries/Blob/File.js +1 -1
- package/Libraries/Blob/NativeBlobModule.js +4 -50
- package/Libraries/Blob/NativeFileReaderModule.js +4 -13
- package/Libraries/Blob/RCTBlobCollector.mm +1 -1
- package/Libraries/Blob/RCTBlobManager.h +4 -0
- package/Libraries/Blob/RCTBlobManager.mm +30 -4
- package/Libraries/Blob/RCTFileReaderModule.mm +2 -2
- package/Libraries/Blob/React-RCTBlob.podspec +9 -2
- package/Libraries/BugReporting/NativeBugReporting.js +4 -12
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +3 -23
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +4 -57
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +3 -2
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +9 -40
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +3 -43
- package/Libraries/Components/Button.js +103 -107
- package/Libraries/Components/Clipboard/NativeClipboard.js +2 -24
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +3 -114
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -5
- package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +3 -10
- package/Libraries/Components/Pressable/Pressable.js +1 -1
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +5 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +4 -24
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +3 -64
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +3 -61
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +3 -15
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +3 -16
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
- package/Libraries/Components/ScrollView/ScrollView.d.ts +5 -6
- package/Libraries/Components/ScrollView/ScrollView.js +12 -38
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -2
- package/Libraries/Components/Sound/NativeSoundManager.js +3 -12
- package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +3 -58
- package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +3 -85
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +4 -53
- package/Libraries/Components/Switch/Switch.js +0 -2
- package/Libraries/Components/Switch/SwitchNativeComponent.js +4 -52
- package/Libraries/Components/TV/TVEventHandler.js +1 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -0
- package/Libraries/Components/TextInput/InputAccessoryView.js +18 -20
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +4 -17
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -6
- package/Libraries/Components/TextInput/TextInput.d.ts +16 -0
- package/Libraries/Components/TextInput/TextInput.flow.js +16 -0
- package/Libraries/Components/TextInput/TextInput.js +65 -32
- package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +3 -28
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Touchable.js +2 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +4 -4
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
- package/Libraries/Components/Touchable/TouchableOpacity.js +5 -2
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +3 -16
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +2 -1
- package/Libraries/Components/View/View.js +0 -11
- package/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
- package/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
- package/Libraries/Components/View/ViewPropTypes.js +36 -36
- package/Libraries/Core/InitializeCore.js +1 -1
- package/Libraries/Core/NativeExceptionsManager.js +3 -93
- package/Libraries/Core/ReactNativeVersion.js +12 -6
- package/Libraries/Core/ReactNativeVersionCheck.js +6 -6
- package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +3 -18
- package/Libraries/Core/Timers/NativeTiming.js +3 -16
- package/Libraries/Core/registerCallableModule.d.ts +16 -0
- package/Libraries/Core/registerCallableModule.js +42 -0
- package/Libraries/Core/setUpPerformance.js +2 -2
- package/Libraries/Core/setUpPerformanceObserver.js +3 -1
- package/Libraries/Debugging/DebuggingOverlay.js +111 -0
- package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
- package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
- package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +3 -14
- package/Libraries/HeapCapture/NativeJSCHeapCapture.js +3 -9
- package/Libraries/Image/AssetSourceResolver.js +5 -5
- package/Libraries/Image/AssetUtils.js +4 -5
- package/Libraries/Image/Image.android.js +146 -174
- package/Libraries/Image/Image.d.ts +1 -1
- package/Libraries/Image/Image.ios.js +53 -79
- package/Libraries/Image/Image.js.flow +3 -30
- package/Libraries/Image/ImageBackground.js +2 -2
- package/Libraries/Image/ImageInjection.js +76 -18
- package/Libraries/Image/ImageTypes.flow.js +71 -0
- package/Libraries/Image/ImageUtils.js +1 -1
- package/Libraries/Image/ImageViewNativeComponent.js +18 -0
- package/Libraries/Image/NativeImageEditor.js +3 -42
- package/Libraries/Image/NativeImageLoaderAndroid.js +4 -28
- package/Libraries/Image/NativeImageLoaderIOS.js +4 -28
- package/Libraries/Image/NativeImageStoreAndroid.js +3 -16
- package/Libraries/Image/NativeImageStoreIOS.js +3 -23
- package/Libraries/Image/RCTImageLoader.mm +4 -11
- package/Libraries/Image/RCTImageStoreManager.h +2 -0
- package/Libraries/Image/RCTImageStoreManager.mm +37 -10
- package/Libraries/Image/RCTUIImageViewAnimated.mm +0 -5
- package/Libraries/Image/React-RCTImage.podspec +3 -2
- package/Libraries/Image/resolveAssetSource.js +59 -26
- package/Libraries/Inspector/ElementProperties.js +26 -52
- package/Libraries/Inspector/Inspector.js +122 -186
- package/Libraries/Inspector/InspectorOverlay.js +21 -33
- package/Libraries/Inspector/InspectorPanel.js +3 -17
- package/Libraries/Inspector/ReactDevToolsOverlay.js +171 -0
- package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +20 -8
- package/Libraries/Interaction/FrameRateLogger.js +8 -18
- package/Libraries/Interaction/NativeFrameRateLogger.js +4 -16
- package/Libraries/IntersectionObserver/IntersectionObserver.js +1 -1
- package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +20 -19
- package/Libraries/IntersectionObserver/IntersectionObserverManager.js +84 -6
- package/Libraries/IntersectionObserver/NativeIntersectionObserver.h +6 -24
- package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +3 -31
- package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +12 -2
- package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -2
- package/Libraries/Linking/NativeIntentAndroid.js +3 -20
- package/Libraries/Linking/NativeLinkingManager.js +3 -17
- package/Libraries/LinkingIOS/React-RCTLinking.podspec +3 -2
- package/Libraries/Lists/FillRateHelper.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +2 -2
- package/Libraries/Lists/FlatList.js +6 -2
- package/Libraries/Lists/SectionList.d.ts +6 -1
- package/Libraries/Lists/ViewabilityHelper.js +1 -1
- package/Libraries/Lists/VirtualizeUtils.js +1 -1
- package/Libraries/Lists/VirtualizedList.js +1 -1
- package/Libraries/Lists/VirtualizedListContext.js +1 -1
- package/Libraries/Lists/VirtualizedSectionList.js +1 -1
- package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
- package/Libraries/Modal/Modal.js +43 -11
- package/Libraries/Modal/NativeModalManager.js +3 -11
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -129
- package/Libraries/MutationObserver/MutationObserver.js +1 -1
- package/Libraries/MutationObserver/MutationObserverManager.js +2 -2
- package/Libraries/MutationObserver/MutationRecord.js +12 -10
- package/Libraries/MutationObserver/NativeMutationObserver.cpp +2 -3
- package/Libraries/MutationObserver/NativeMutationObserver.h +8 -20
- package/Libraries/MutationObserver/NativeMutationObserver.js +3 -48
- package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +1 -1
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +116 -85
- package/Libraries/NativeAnimation/React-RCTAnimation.podspec +3 -2
- package/Libraries/NativeComponent/BaseViewConfig.android.js +4 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +3 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
- package/Libraries/NativeComponent/TVViewConfig.js +17 -0
- package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +3 -10
- package/Libraries/NativeModules/specs/NativeDevMenu.js +3 -13
- package/Libraries/NativeModules/specs/NativeDevSettings.js +3 -23
- package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +3 -9
- package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +3 -38
- package/Libraries/NativeModules/specs/NativeLogBox.js +3 -10
- package/Libraries/NativeModules/specs/NativeRedBox.js +4 -11
- package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -25
- package/Libraries/Network/FormData.js +3 -1
- package/Libraries/Network/NativeNetworkingAndroid.js +4 -28
- package/Libraries/Network/NativeNetworkingIOS.js +4 -28
- package/Libraries/Network/RCTHTTPRequestHandler.mm +2 -2
- package/Libraries/Network/RCTNetworkTask.mm +15 -1
- package/Libraries/Network/RCTNetworking.h +6 -0
- package/Libraries/Network/RCTNetworking.mm +84 -44
- package/Libraries/Network/React-RCTNetwork.podspec +3 -2
- package/Libraries/Performance/NativeJSCSamplingProfiler.js +3 -9
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -68
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
- package/Libraries/Pressability/Pressability.js +12 -2
- package/Libraries/Pressability/usePressability.js +7 -0
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +4 -70
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +45 -39
- package/Libraries/PushNotificationIOS/RCTPushNotificationManager.h +34 -5
- package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +283 -231
- package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +3 -2
- package/Libraries/ReactNative/AppContainer-dev.js +217 -0
- package/Libraries/ReactNative/AppContainer-prod.js +53 -0
- package/Libraries/ReactNative/AppContainer.js +6 -149
- package/Libraries/ReactNative/AppRegistry.js +3 -1
- package/Libraries/ReactNative/BridgelessUIManager.js +375 -128
- package/Libraries/ReactNative/FabricUIManager.js +6 -0
- package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +3 -10
- package/Libraries/ReactNative/NativeI18nManager.js +3 -18
- package/Libraries/ReactNative/NativeUIManager.js +4 -112
- package/Libraries/ReactNative/PaperUIManager.js +8 -7
- package/Libraries/ReactNative/ReactFabricInternals.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +24 -5
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -45
- package/Libraries/ReactNative/RendererImplementation.js +11 -0
- package/Libraries/ReactNative/UIManager.d.ts +11 -34
- package/Libraries/ReactNative/UIManager.js +2 -23
- package/Libraries/ReactNative/UIManagerProperties.js +0 -2
- package/Libraries/ReactNative/__mocks__/FabricUIManager.js +23 -1
- package/Libraries/ReactNative/getNativeComponentAttributes.js +5 -1
- package/Libraries/ReactNative/renderApplication.js +9 -6
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +6 -1
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +24771 -21123
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +4160 -3109
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4384 -3322
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +25194 -21398
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3763 -2636
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4027 -2867
- package/Libraries/Renderer/shims/ReactNativeTypes.js +8 -9
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -12
- package/Libraries/Settings/NativeSettingsManager.js +4 -16
- package/Libraries/Settings/React-RCTSettings.podspec +3 -2
- package/Libraries/Share/NativeShareModule.js +3 -13
- package/Libraries/StyleSheet/StyleSheet.d.ts +1 -20
- package/Libraries/StyleSheet/StyleSheet.js +5 -28
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +51 -7
- package/Libraries/StyleSheet/StyleSheetTypes.js +19 -11
- package/Libraries/StyleSheet/flattenStyle.js +2 -2
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processAspectRatio.js +1 -1
- package/Libraries/StyleSheet/processFontVariant.js +1 -1
- package/Libraries/Text/Text/RCTTextShadowView.mm +1 -1
- package/Libraries/Text/Text/RCTTextView.mm +35 -11
- package/Libraries/Text/Text.js +0 -6
- package/Libraries/Text/TextAncestor.js +2 -3
- package/Libraries/Text/TextInput/RCTBaseTextInputShadowView.mm +1 -1
- package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +1 -1
- package/Libraries/Text/TextInput/RCTInputAccessoryViewManager.mm +0 -5
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +4 -41
- package/Libraries/Types/ReactDevToolsTypes.js +58 -0
- package/Libraries/Types/UIManagerJSInterface.js +16 -0
- package/Libraries/Utilities/DebugEnvironment.js +1 -4
- package/Libraries/Utilities/Dimensions.js +8 -16
- package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -2
- package/Libraries/Utilities/NativeAppearance.js +3 -26
- package/Libraries/Utilities/NativeDevLoadingView.js +3 -14
- package/Libraries/Utilities/NativeDeviceInfo.js +2 -47
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +3 -34
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +3 -26
- package/Libraries/Utilities/PixelRatio.d.ts +4 -4
- package/Libraries/Utilities/Platform.android.js +4 -0
- package/Libraries/Utilities/Platform.d.ts +3 -0
- package/Libraries/Utilities/Platform.flow.js +7 -0
- package/Libraries/Utilities/Platform.ios.js +11 -0
- package/Libraries/Utilities/binaryToBase64.js +1 -1
- package/Libraries/Utilities/codegenNativeComponent.js +4 -6
- package/Libraries/Utilities/createPerformanceLogger.js +2 -74
- package/Libraries/Utilities/useMergeRefs.js +5 -9
- package/Libraries/Vibration/NativeVibration.js +2 -27
- package/Libraries/Vibration/React-RCTVibration.podspec +3 -2
- package/Libraries/Vibration/Vibration.js +8 -2
- package/Libraries/WebSocket/NativeWebSocketModule.js +4 -25
- package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
- package/Libraries/vendor/emitter/EventEmitter.js +1 -0
- package/README.md +31 -11
- package/React/Base/RCTAssert.m +4 -4
- package/React/Base/RCTBridge+Inspector.h +30 -0
- package/React/Base/RCTBridge+Private.h +0 -6
- package/React/Base/RCTBridge.h +32 -13
- package/React/Base/RCTBridge.mm +113 -2
- package/React/Base/RCTBridgeDelegate.h +5 -1
- package/React/Base/RCTBridgeModule.h +24 -32
- package/React/Base/RCTBridgeProxy+Cxx.h +20 -0
- package/React/Base/RCTBridgeProxy.h +9 -1
- package/React/Base/RCTBridgeProxy.mm +40 -15
- package/React/Base/RCTBundleURLProvider.h +35 -46
- package/React/Base/RCTBundleURLProvider.mm +0 -34
- package/React/Base/RCTConstants.h +0 -12
- package/React/Base/RCTConstants.m +0 -31
- package/React/Base/RCTConvert.h +5 -2
- package/React/Base/{RCTConvert.m → RCTConvert.mm} +18 -8
- package/React/Base/RCTDefines.h +3 -3
- package/React/Base/RCTKeyCommands.m +12 -1
- package/React/Base/RCTModuleData.mm +0 -14
- package/React/Base/RCTRuntimeExecutorModule.h +18 -0
- package/React/Base/RCTUtils.h +9 -0
- package/React/Base/RCTUtils.m +37 -10
- package/React/Base/RCTVersion.m +5 -5
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +9 -0
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +25 -0
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.h +7 -0
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm +17 -2
- package/React/CoreModules/RCTActionSheetManager.mm +140 -140
- package/React/CoreModules/RCTAlertController.mm +3 -26
- package/React/CoreModules/RCTAlertManager.mm +94 -93
- package/React/CoreModules/RCTAppState.mm +2 -6
- package/React/CoreModules/RCTAppearance.mm +1 -9
- package/React/CoreModules/RCTDevLoadingView.mm +6 -9
- package/React/CoreModules/RCTDevMenu.h +2 -0
- package/React/CoreModules/RCTDevMenu.mm +37 -19
- package/React/CoreModules/RCTDevSettings.mm +11 -5
- package/React/CoreModules/RCTDeviceInfo.mm +15 -16
- package/React/CoreModules/RCTPerfMonitor.mm +2 -14
- package/React/CoreModules/RCTPlatform.mm +19 -12
- package/React/CoreModules/RCTRedBox.mm +130 -111
- package/React/CoreModules/RCTStatusBarManager.mm +30 -22
- package/React/CoreModules/RCTTVNavigationEventEmitter.mm +1 -4
- package/React/CoreModules/RCTTiming.mm +18 -1
- package/React/CoreModules/React-CoreModules.podspec +10 -3
- package/React/CxxBridge/RCTCxxBridge.mm +24 -13
- package/React/DevSupport/RCTInspectorDevServerHelper.h +2 -1
- package/React/DevSupport/RCTInspectorDevServerHelper.mm +26 -5
- package/React/Fabric/Mounting/ComponentViews/ActivityIndicator/RCTActivityIndicatorViewComponentView.mm +1 -1
- package/React/Fabric/Mounting/ComponentViews/DebuggingOverlay/RCTDebuggingOverlayComponentView.h +16 -0
- package/React/Fabric/Mounting/ComponentViews/DebuggingOverlay/RCTDebuggingOverlayComponentView.mm +73 -0
- package/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm +8 -10
- package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryComponentView.mm +1 -2
- package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.h +6 -0
- package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +60 -14
- package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropCoordinatorAdapter.mm +93 -3
- package/React/Fabric/Mounting/ComponentViews/Modal/RCTFabricModalHostViewController.mm +2 -2
- package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +6 -4
- package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.h +1 -0
- package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.mm +1 -0
- package/React/Fabric/Mounting/ComponentViews/Root/RCTRootComponentView.mm +2 -5
- package/React/Fabric/Mounting/ComponentViews/SafeAreaView/RCTSafeAreaViewComponentView.mm +1 -2
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +1 -2
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +30 -8
- package/React/Fabric/Mounting/ComponentViews/Switch/RCTSwitchComponentView.mm +1 -2
- package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +36 -14
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +2 -3
- package/React/Fabric/Mounting/ComponentViews/UnimplementedComponent/RCTUnimplementedNativeComponentView.mm +1 -2
- package/React/Fabric/Mounting/ComponentViews/UnimplementedView/RCTUnimplementedViewComponentView.mm +1 -2
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +72 -30
- package/React/Fabric/Mounting/RCTComponentViewClassDescriptor.h +5 -0
- package/React/Fabric/Mounting/RCTComponentViewDescriptor.h +1 -0
- package/React/Fabric/Mounting/RCTComponentViewFactory.mm +9 -17
- package/React/Fabric/Mounting/RCTComponentViewProtocol.h +2 -2
- package/React/Fabric/Mounting/RCTComponentViewRegistry.mm +1 -1
- package/React/Fabric/Mounting/RCTMountingManager.mm +3 -4
- package/React/Fabric/RCTConversions.h +2 -18
- package/React/Fabric/RCTSurfacePointerHandler.mm +6 -107
- package/React/Fabric/RCTSurfacePresenter.mm +2 -21
- package/{Libraries/AppDelegate/RCTLegacyInteropComponents.h → React/Inspector/RCTCxxInspectorPackagerConnection.h} +5 -6
- package/React/Inspector/RCTCxxInspectorPackagerConnection.mm +69 -0
- package/React/Inspector/RCTCxxInspectorPackagerConnectionDelegate.h +47 -0
- package/React/Inspector/RCTCxxInspectorPackagerConnectionDelegate.mm +48 -0
- package/React/Inspector/RCTCxxInspectorWebSocketAdapter.h +23 -0
- package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +92 -0
- package/React/Inspector/RCTInspector.mm +2 -2
- package/React/Inspector/RCTInspectorPackagerConnection.h +4 -9
- package/React/Inspector/RCTInspectorPackagerConnection.m +2 -28
- package/React/Modules/RCTEventEmitter.h +0 -2
- package/React/Modules/RCTEventEmitter.m +0 -12
- package/React/Modules/RCTUIManager.h +32 -0
- package/React/Modules/RCTUIManager.m +87 -58
- package/React/React-RCTFabric.podspec +7 -5
- package/React/Tests/Text/RCTParagraphComponentViewTests.mm +24 -24
- package/React/UIUtils/RCTUIUtils.h +0 -4
- package/React/UIUtils/RCTUIUtils.m +1 -27
- package/React/Views/RCTComponentData.m +8 -9
- package/React/Views/RCTConvert+Transform.h +4 -1
- package/React/Views/RCTConvert+Transform.m +7 -0
- package/React/Views/{RCTTransformOrigin.h → RCTCursor.h} +4 -6
- package/React/Views/RCTDebuggingOverlay.h +27 -0
- package/React/Views/RCTDebuggingOverlay.m +122 -0
- package/{ReactCommon/hermes/executor/JSITracing.h → React/Views/RCTDebuggingOverlayManager.h} +3 -7
- package/React/Views/RCTDebuggingOverlayManager.m +64 -0
- package/React/Views/RCTModalHostViewController.m +2 -2
- package/React/Views/RCTModalHostViewManager.m +6 -1
- package/React/Views/RCTShadowView.m +7 -7
- package/React/Views/RCTView.h +3 -0
- package/React/Views/RCTView.m +31 -1
- package/React/Views/RCTViewManager.m +3 -9
- package/React/Views/RCTWrapperViewController.m +0 -1
- package/React/Views/ScrollView/RCTScrollView.m +3 -4
- package/React/Views/ScrollView/RCTScrollViewManager.m +2 -0
- package/React/Views/UIView+React.h +7 -1
- package/React/third-party.xcconfig +2 -2
- package/React-Core.podspec +11 -6
- package/ReactAndroid/api/ReactAndroid.api +7700 -0
- package/ReactAndroid/build.gradle.kts +815 -0
- package/ReactAndroid/cmake-utils/ReactNative-application.cmake +19 -1
- package/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +35 -7
- package/ReactAndroid/external-artifacts/build.gradle.kts +1 -1
- package/ReactAndroid/gradle.properties +21 -2
- package/ReactAndroid/hermes-engine/build.gradle.kts +322 -0
- package/ReactAndroid/proguard-rules.pro +8 -1
- package/ReactAndroid/publish.gradle +3 -8
- package/ReactAndroid/src/main/AndroidManifest.xml +1 -1
- package/ReactAndroid/src/main/java/com/facebook/annotationprocessors/common/ProcessorBase.java +24 -0
- package/ReactAndroid/src/main/java/com/facebook/react/BaseReactPackage.java +159 -0
- package/ReactAndroid/src/main/java/com/facebook/react/CompositeReactPackage.java +9 -4
- package/ReactAndroid/src/main/java/com/facebook/react/CompositeReactPackageTurboModuleManagerDelegate.java +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.java +2 -3
- package/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java +6 -8
- package/ReactAndroid/src/main/java/com/facebook/react/EagerModuleProvider.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/{JSEngineResolutionAlgorithm.java → JSEngineResolutionAlgorithm.kt} +5 -6
- package/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.java +3 -15
- package/ReactAndroid/src/main/java/com/facebook/react/MemoryPressureRouter.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.java +3 -6
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +7 -2
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +18 -43
- package/ReactAndroid/src/main/java/com/facebook/react/ReactApplication.kt +3 -6
- package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +121 -19
- package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +2 -6
- package/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt +45 -18
- package/ReactAndroid/src/main/java/com/facebook/react/{ReactInstanceEventListener.java → ReactInstanceEventListener.kt} +4 -8
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +61 -52
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +38 -31
- package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +19 -5
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageHelper.java +6 -20
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.java +44 -25
- package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +11 -34
- package/ReactAndroid/src/main/java/com/facebook/react/TurboReactPackage.java +3 -148
- package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNode.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNodeValueListener.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNodeWithUpdateableConfig.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/animated/DecayAnimation.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/animated/DiffClampAnimatedNode.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.java +37 -9
- package/ReactAndroid/src/main/java/com/facebook/react/animated/ModulusAnimatedNode.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +27 -8
- package/ReactAndroid/src/main/java/com/facebook/react/animated/ObjectAnimatedNode.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/animated/SpringAnimation.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java +61 -5
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +25 -6
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +81 -94
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapper.java +0 -9
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.java +0 -3
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromArray.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromMap.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSIModule.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSIModuleHolder.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSIModuleRegistry.java +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSInstance.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java +12 -15
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.java +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArgumentsParseException.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModule.java +13 -16
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/PerformanceCounter.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +31 -6
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContextBaseJavaModule.java +9 -48
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarkerConstants.java +0 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java +8 -3
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/{UIManagerListener.java → UIManagerListener.kt} +6 -6
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManagerProvider.kt +22 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/UiThreadUtil.java +22 -10
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/interop/InteropModuleRegistry.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadHandler.java +0 -11
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadImpl.java +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/common/DebugServerException.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/JavascriptException.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/common/LifecycleState.java +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/LongArray.java +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/MapBuilder.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/ReactConstants.java +11 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/ShakeDetector.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/SingleThreadAsserter.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/StandardCharsets.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/SystemClock.java +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/annotations/DeprecatedInNewArchitecture.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/common/annotations/FrameworkAPI.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/common/annotations/StableReactNativeAPI.kt +13 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/annotations/UnstableReactNativeAPI.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/common/annotations/VisibleForTesting.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/common/assets/ReactFontManager.java +6 -6
- package/ReactAndroid/src/main/java/com/facebook/react/common/futures/SimpleSettableFuture.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/MapBuffer.kt +25 -22
- package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/MapBufferSoLoader.kt +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBuffer.kt +8 -6
- package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/WritableMapBuffer.kt +9 -7
- package/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +30 -55
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultComponentsRegistry.kt +11 -4
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt +39 -31
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactActivityDelegate.kt +5 -3
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHostDelegate.kt +7 -8
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +32 -5
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultSoLoader.kt +26 -0
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultTurboModuleManagerDelegate.kt +51 -7
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.java +142 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DebugOverlayController.java +15 -27
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevInternalSettings.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +10 -9
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSettingsActivity.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +50 -27
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportSoLoader.java +24 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DoubleTapReloadRecognizer.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/FpsView.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/IInspectorPackagerConnection.java +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.java +28 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorPackagerConnection.java +2 -26
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/JSCHeapCapture.java +0 -4
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialog.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/MultipartStreamReader.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PerftestDevSupportManager.java +2 -3
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxDialogSurfaceDelegate.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ViewHierarchyUtil.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/WindowOverlayCompat.java +4 -7
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/ErrorType.java +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +12 -15
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/BindingImpl.java +2 -3
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/ComponentFactory.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/CoreComponentsRegistry.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/DevToolsReactPerfLogger.java +23 -81
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/EmptyReactNativeConfig.kt +36 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricSoLoader.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +82 -64
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.java +65 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/GuardedFrameCallback.java +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/LongStreamingStats.java +76 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/ReactNativeConfig.kt +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/StateWrapperImpl.java +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/SurfaceHandlerBinding.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventBeatManager.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +7 -3
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/internal/interop/InteropUiBlockListener.kt +68 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/interop/UIBlock.kt +27 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/interop/UIBlockViewResolver.kt +29 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/LayoutMetricsConversions.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +32 -28
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +77 -96
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/DispatchCommandMountItem.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/DispatchIntCommandMountItem.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/DispatchStringCommandMountItem.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/FabricNameComponentMapping.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +9 -16
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/MountItemFactory.java +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.java +5 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEventMountItem.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/flipper/ReactNativeFlipper.kt +34 -0
- package/ReactAndroid/src/main/java/com/facebook/react/interfaces/TaskInterface.kt +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/interfaces/exceptionmanager/ReactJsExceptionHandler.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/interfaces/fabric/ReactSurface.kt +11 -11
- package/ReactAndroid/src/main/java/com/facebook/react/interfaces/fabric/SurfaceHandler.kt +10 -10
- package/ReactAndroid/src/main/java/com/facebook/react/internal/AndroidChoreographerProvider.java +41 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/ChoreographerProvider.java +30 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +135 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsAccessor.kt +14 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +128 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +54 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +45 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsForTests.kt +14 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +151 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +45 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEvent.kt +27 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +55 -0
- package/ReactAndroid/src/main/java/com/facebook/react/{turbomodule → internal/turbomodule}/core/NativeModuleSoLoader.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/{turbomodule → internal/turbomodule}/core/TurboModuleInteropUtils.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/{turbomodule → internal/turbomodule}/core/TurboModuleManager.java +13 -10
- package/ReactAndroid/src/main/java/com/facebook/react/{turbomodule → internal/turbomodule}/core/TurboModuleManagerDelegate.java +15 -1
- package/ReactAndroid/src/main/java/com/facebook/react/{turbomodule → internal/turbomodule}/core/TurboModulePerfLogger.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/{turbomodule → internal/turbomodule}/core/interfaces/TurboModuleRegistry.kt +12 -6
- package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutor.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutorFactory.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/LinearCountingRetryPolicy.java +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/NoRetryPolicy.java +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/module/annotations/ReactModule.java +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/module/model/ReactModuleInfo.java +10 -0
- package/ReactAndroid/src/main/java/com/facebook/react/module/processing/ReactModuleSpecProcessor.java +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.java +2 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobProvider.java +4 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/common/ModuleDataCleaner.java +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ChoreographerCompat.java +3 -98
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactChoreographer.java +57 -71
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/AnimationsDebugModule.java +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DidJSUpdateUiDuringFrameDetector.java +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/FpsDebugFrameCallback.java +37 -29
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactNetworkImageRequest.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CountingOutputStream.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/HeaderUtil.java +1 -15
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ProgressRequestBody.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ProgressResponseBody.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ProgressiveStringDecoder.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/RequestBodyUtil.java +5 -22
- package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/PermissionsModule.java +8 -31
- package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoHelpers.java +0 -9
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/FileIoHandler.java +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/NotificationOnlyHandler.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.java +2 -4
- package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/RequestOnlyHandler.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/processing/ReactPropertyProcessor.java +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/NativeModulePerfLogger.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BindingsInstaller.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +201 -0
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessDevSupportManager.java +16 -3
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.java +28 -15
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/CoreReactPackage.java +15 -10
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/JSCInstance.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/{JSEngineInstance.java → JSRuntimeFactory.java} +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostDelegate.kt +16 -14
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +223 -349
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +166 -126
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/cxxreactpackage/CxxReactPackage.kt +31 -0
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/hermes/HermesInstance.kt +8 -4
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/AggregateException.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/CancellationTokenRegistration.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/Capture.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/ExecutorException.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/Task.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/UnobservedErrorNotifier.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/UnobservedTaskException.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/shell/MainPackageConfig.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +5 -4
- package/ReactAndroid/src/main/java/com/facebook/react/touch/JSResponderHandler.kt +73 -0
- package/ReactAndroid/src/main/java/com/facebook/react/touch/{OnInterceptTouchEventListener.java → OnInterceptTouchEventListener.kt} +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/touch/ReactHitSlopView.kt +18 -0
- package/ReactAndroid/src/main/java/com/facebook/react/touch/ReactInterceptingViewGroup.kt +31 -0
- package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/CallInvokerHolderImpl.java +5 -0
- package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/NativeMethodCallInvokerHolderImpl.java +5 -0
- package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/CallInvokerHolder.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/NativeMethodCallInvokerHolder.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModule.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/IViewGroupManager.java +10 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +13 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NoSuchNativeViewException.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +0 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactCompoundViewGroup.java +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactRoot.java +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/{surface → uimanager}/ReactStage.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ShadowNodeRegistry.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.java +4 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIConstantsProviderManager.java +35 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +7 -21
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java +2 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +24 -36
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.java +7 -20
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +29 -43
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupManager.java +0 -8
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewHierarchyDumper.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerRegistry.java +17 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/YogaNodePool.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactProp.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactPropGroup.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactPropertyHolder.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/UIManagerType.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/ViewUtil.java +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/debug/NotThreadSafeViewHierarchyUpdateDebugListener.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/BlackHoleEventDispatcher.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ContentSizeChangeEvent.java +8 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +14 -27
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +10 -4
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java +5 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/NativeGestureUtil.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +8 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +14 -15
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +5 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventType.java +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +29 -23
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/AnimatedPropertyType.java +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/BaseLayoutAnimation.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/InterpolatorType.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.java +3 -9
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationType.java +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutCreateAnimation.java +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutDeleteAnimation.java +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutUpdateAnimation.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/OpacityAnimation.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/PositionAndSizeAnimation.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/SimpleSpringInterpolator.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/util/ReactFindViewUtil.java +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/util/JSStackTrace.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/util/RNLog.java +7 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/common/ContextUtils.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/common/ViewUtils.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/debuggingoverlay/DebuggingOverlay.java +97 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/debuggingoverlay/DebuggingOverlayManager.java +162 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/debuggingoverlay/TraceUpdate.java +37 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayout.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerClosedEvent.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerOpenedEvent.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerSlideEvent.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerStateChangedEvent.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ImageLoadEvent.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ImageResizeMethod.java +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ImageResizeMode.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageDownloadListener.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ScaleTypeStartInside.java +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/MultiSourceHelper.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ResourceDrawableIdHelper.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostHelper.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostShadowNode.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.java +28 -13
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/RequestCloseEvent.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ShowEvent.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.java +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarShadowNode.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ReactProgressBarViewManager.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/MaintainVisibleScrollPositionHelper.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/OnScrollDispatchHelper.java +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerView.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerViewManager.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +15 -14
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEventType.java +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VelocityHelper.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/RefreshEvent.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchEvent.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/BasicTextAttributeProvider.kt +48 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/EffectiveTextAttributeProvider.kt +22 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/HierarchicTextAttributeProvider.kt +63 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java +229 -31
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +1 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +40 -52
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextUpdate.java +5 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +24 -30
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.java +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +119 -22
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributes.java +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +66 -54
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +61 -54
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutUtils.kt +379 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextTransform.java +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/fragments/BridgeTextFragment.kt +39 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/fragments/BridgeTextFragmentList.kt +18 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/fragments/MapBufferTextFragment.kt +42 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/fragments/MapBufferTextFragmentList.kt +19 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/fragments/TextFragment.kt +29 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/fragments/TextFragmentList.kt +15 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageShadowNode.java +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageSpan.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactTextInlineImageShadowNode.java → internal/ReactTextInlineImageShadowNode.java} +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/{CustomLetterSpacingSpan.java → internal/span/CustomLetterSpacingSpan.java} +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/{CustomLineHeightSpan.java → internal/span/CustomLineHeightSpan.java} +9 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/{CustomStyleSpan.java → internal/span/CustomStyleSpan.java} +16 -17
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactAbsoluteSizeSpan.java → internal/span/ReactAbsoluteSizeSpan.java} +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactBackgroundColorSpan.java → internal/span/ReactBackgroundColorSpan.java} +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactClickableSpan.java → internal/span/ReactClickableSpan.java} +5 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactForegroundColorSpan.java → internal/span/ReactForegroundColorSpan.java} +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactSpan.java → internal/span/ReactSpan.java} +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactStrikethroughSpan.java → internal/span/ReactStrikethroughSpan.java} +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactTagSpan.java → internal/span/ReactTagSpan.java} +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ReactUnderlineSpan.java → internal/span/ReactUnderlineSpan.java} +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/{SetSpanOperation.java → internal/span/SetSpanOperation.java} +9 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/{ShadowStyleSpan.java → internal/span/ShadowStyleSpan.java} +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/{TextInlineImageSpan.java → internal/span/TextInlineImageSpan.java} +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/{TextInlineViewPlaceholderSpan.java → internal/span/TextInlineViewPlaceholderSpan.java} +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +38 -54
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputKeyPressEvent.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputLocalData.java +2 -10
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +174 -123
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.java +5 -16
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ScrollWatcher.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/SelectionWatcher.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/unimplementedview/ReactUnimplementedView.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ColorUtil.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/MeasureUtil.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactClippingViewManager.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.java +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundManager.java +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +11 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.java +0 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ViewGroupClickEvent.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaAlign.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfig.java +1 -3
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIBase.java +1 -5
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaErrata.java +4 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaExperimentalFeature.java +1 -3
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.java +2 -4
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +5 -12
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.java +1 -1
- package/ReactAndroid/src/main/jni/CMakeLists.txt +4 -6
- package/ReactAndroid/src/main/jni/first-party/fb/CMakeLists.txt +1 -1
- package/ReactAndroid/src/main/jni/first-party/fbgloginit/CMakeLists.txt +1 -1
- package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +16 -42
- package/ReactAndroid/src/main/jni/react/devsupport/CMakeLists.txt +19 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnection.cpp +55 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnection.h +62 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionDelegateImpl.cpp +72 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionDelegateImpl.h +69 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp +45 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.h +56 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocketDelegate.cpp +53 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocketDelegate.h +49 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.cpp +36 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +32 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JOptional.cpp +29 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JOptional.h +27 -0
- package/ReactAndroid/src/main/jni/react/devsupport/OnLoad.cpp +22 -0
- package/ReactAndroid/src/main/jni/react/fabric/Binding.cpp +2 -25
- package/ReactAndroid/src/main/jni/react/fabric/Binding.h +0 -2
- package/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt +1 -1
- package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +8 -6
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +4 -40
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +0 -2
- package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.cpp +47 -0
- package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.h +38 -0
- package/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +2 -0
- package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.h +1 -1
- package/ReactAndroid/src/main/jni/react/featureflags/CMakeLists.txt +34 -0
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +206 -0
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +73 -0
- package/ReactAndroid/src/main/jni/react/featureflags/OnLoad.cpp +16 -0
- package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +1 -2
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +18 -29
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +3 -4
- package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapper.h +0 -10
- package/ReactAndroid/src/main/jni/react/jni/JCallback.h +0 -7
- package/ReactAndroid/src/main/jni/react/jni/JInspector.cpp +2 -5
- package/ReactAndroid/src/main/jni/react/jni/JInspector.h +0 -4
- package/ReactAndroid/src/main/jni/react/jni/JMessageQueueThread.cpp +3 -15
- package/ReactAndroid/src/main/jni/react/jni/JMessageQueueThread.h +0 -4
- package/ReactAndroid/src/main/jni/react/jni/MethodInvoker.cpp +3 -2
- package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +18 -19
- package/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp +0 -3
- package/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.h +0 -1
- package/ReactAndroid/src/main/jni/react/jni/ReadableNativeArray.cpp +2 -2
- package/ReactAndroid/src/main/jni/react/jni/ReadableNativeMap.cpp +2 -2
- package/ReactAndroid/src/main/jni/react/newarchdefaults/CMakeLists.txt +2 -0
- package/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.cpp +15 -7
- package/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultTurboModuleManagerDelegate.cpp +31 -2
- package/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultTurboModuleManagerDelegate.h +11 -1
- package/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.h +2 -4
- package/ReactAndroid/src/main/jni/react/runtime/cxxreactpackage/CMakeLists.txt +29 -0
- package/ReactAndroid/src/main/jni/react/runtime/cxxreactpackage/ReactCommon/CxxReactPackage.h +31 -0
- package/{ReactCommon/hermes/executor/JSITracing.cpp → ReactAndroid/src/main/jni/react/runtime/cxxreactpackage/ReactCommon/OnLoad.cpp} +5 -7
- package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.cpp +11 -5
- package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.h +13 -6
- package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +1 -0
- package/ReactAndroid/src/main/jni/react/runtime/jni/{JJSEngineInstance.h → JJSRuntimeFactory.h} +4 -4
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +10 -4
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.h +6 -4
- package/ReactAndroid/src/main/jni/react/runtime/jsc/jni/OnLoad.cpp +5 -5
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/OnLoad.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +28 -10
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +6 -3
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManagerDelegate.h +1 -1
- package/ReactAndroid/src/main/jni/react/uimanager/UIConstantsProviderManager.cpp +44 -13
- package/ReactAndroid/src/main/jni/react/uimanager/UIConstantsProviderManager.h +72 -6
- package/ReactAndroid/src/main/jni/third-party/fmt/CMakeLists.txt +1 -1
- package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +21 -72
- package/ReactAndroid/src/main/res/devsupport/drawable/redbox_top_border_background.xml +2 -1
- package/ReactAndroid/src/main/res/devsupport/values/strings.xml +6 -7
- package/ReactAndroid/src/main/res/devsupport/values-af/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-ar/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-bg/strings.xml +0 -1
- package/ReactAndroid/src/main/res/devsupport/values-bn/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-cs/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-da/strings.xml +0 -1
- package/ReactAndroid/src/main/res/devsupport/values-el/strings.xml +0 -1
- package/ReactAndroid/src/main/res/devsupport/values-en-rGB/strings.xml +0 -1
- package/ReactAndroid/src/main/res/devsupport/values-es/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-es-rES/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-et/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-fa/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-fi/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-fr/strings.xml +0 -1
- package/ReactAndroid/src/main/res/devsupport/values-fr-rCA/strings.xml +0 -1
- package/ReactAndroid/src/main/res/devsupport/values-gu/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-hi/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-hr/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-hu/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-it/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-iw/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-ja/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-ka/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-km/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-kn/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-ko/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-lt/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-lv/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-mk/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-ml/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-mr/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-ms/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-my/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-nl/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-pa/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-pl/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-pt/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-pt-rPT/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-ro/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-ru/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-si/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-sk/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-sl/strings.xml +0 -1
- package/ReactAndroid/src/main/res/devsupport/values-sq/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-sr/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-sv/strings.xml +0 -1
- package/ReactAndroid/src/main/res/devsupport/values-sw/strings.xml +0 -1
- package/ReactAndroid/src/main/res/devsupport/values-ta/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-te/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-th/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-tr/strings.xml +0 -1
- package/ReactAndroid/src/main/res/devsupport/values-uk/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-ur/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-vi/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-zh-rCN/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-zh-rHK/strings.xml +0 -2
- package/ReactAndroid/src/main/res/devsupport/values-zh-rTW/strings.xml +0 -2
- package/ReactAndroid/src/main/res/shell/values/styles.xml +2 -1
- package/ReactAndroid/src/main/res/views/uimanager/values-be/strings.xml +3 -0
- package/ReactAndroid/src/main/res/views/uimanager/values-kk/strings.xml +1 -0
- package/ReactAndroid/src/main/res/views/uimanager/values-ky/strings.xml +1 -0
- package/ReactAndroid/src/main/res/views/uimanager/values-mn/strings.xml +1 -0
- package/ReactApple/Libraries/RCTFoundation/RCTDeprecation/Exported/RCTDeprecation.h +16 -0
- package/ReactApple/Libraries/RCTFoundation/RCTDeprecation/RCTDeprecation.m +8 -0
- package/ReactApple/Libraries/RCTFoundation/RCTDeprecation/RCTDeprecation.podspec +25 -0
- package/ReactApple/Libraries/RCTFoundation/RCTDeprecation/README.md +1 -0
- package/ReactApple/Libraries/RCTFoundation/README.md +12 -0
- package/ReactApple/README.md +5 -0
- package/ReactCommon/.clang-tidy +7 -0
- package/ReactCommon/React-Fabric.podspec +24 -7
- package/ReactCommon/React-FabricImage.podspec +6 -4
- package/ReactCommon/React-rncore.podspec +0 -9
- package/ReactCommon/ReactCommon.podspec +9 -4
- package/ReactCommon/butter/CMakeLists.txt +1 -2
- package/ReactCommon/callinvoker/CMakeLists.txt +1 -2
- package/ReactCommon/callinvoker/React-callinvoker.podspec +4 -2
- package/ReactCommon/callinvoker/ReactCommon/CallInvoker.h +7 -3
- package/ReactCommon/cxxreact/Instance.cpp +44 -21
- package/ReactCommon/cxxreact/Instance.h +17 -5
- package/ReactCommon/cxxreact/JSBigString.cpp +2 -2
- package/ReactCommon/cxxreact/JSExecutor.cpp +13 -0
- package/ReactCommon/cxxreact/JSExecutor.h +18 -6
- package/ReactCommon/cxxreact/MoveWrapper.h +125 -0
- package/ReactCommon/cxxreact/NativeToJsBridge.cpp +12 -7
- package/ReactCommon/cxxreact/NativeToJsBridge.h +4 -1
- package/ReactCommon/cxxreact/React-cxxreact.podspec +5 -4
- package/ReactCommon/cxxreact/ReactMarker.cpp +15 -2
- package/ReactCommon/cxxreact/ReactMarker.h +1 -0
- package/ReactCommon/cxxreact/ReactNativeVersion.h +4 -4
- package/ReactCommon/cxxreact/tests/jsbigstring.cpp +0 -1
- package/ReactCommon/hermes/React-hermes.podspec +7 -8
- package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +49 -7
- package/ReactCommon/hermes/executor/HermesExecutorFactory.h +14 -2
- package/ReactCommon/hermes/inspector-modern/CMakeLists.txt +3 -6
- package/ReactCommon/hermes/inspector-modern/chrome/ConnectionDemux.cpp +3 -3
- package/ReactCommon/hermes/inspector-modern/chrome/ConnectionDemux.h +5 -5
- package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeAgentDelegate.cpp +228 -0
- package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeAgentDelegate.h +71 -0
- package/ReactCommon/hermes/inspector-modern/chrome/Registration.cpp +2 -2
- package/ReactCommon/hermes/inspector-modern/chrome/Registration.h +1 -1
- package/ReactCommon/hermes/inspector-modern/chrome/tests/ConnectionDemuxTests.cpp +5 -5
- package/ReactCommon/jsc/CMakeLists.txt +0 -4
- package/ReactCommon/jsc/JSCRuntime.cpp +107 -56
- package/ReactCommon/jsc/React-jsc.podspec +1 -1
- package/ReactCommon/jserrorhandler/CMakeLists.txt +1 -1
- package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +4 -3
- package/ReactCommon/jsi/React-jsi.podspec +4 -3
- package/ReactCommon/jsi/jsi/JSIDynamic.cpp +9 -2
- package/ReactCommon/jsi/jsi/JSIDynamic.h +2 -1
- package/ReactCommon/jsi/jsi/decorator.h +4 -0
- package/ReactCommon/jsi/jsi/jsi-inl.h +5 -0
- package/ReactCommon/jsi/jsi/jsi.h +15 -0
- package/ReactCommon/jsi/jsi/test/testlib.cpp +94 -2
- package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +5 -3
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +0 -30
- package/ReactCommon/jsinspector-modern/CMakeLists.txt +10 -0
- package/ReactCommon/jsinspector-modern/CONCEPTS.md +27 -0
- package/ReactCommon/jsinspector-modern/ExecutionContext.cpp +66 -0
- package/ReactCommon/jsinspector-modern/ExecutionContext.h +109 -0
- package/ReactCommon/jsinspector-modern/ExecutionContextManager.cpp +19 -0
- package/ReactCommon/jsinspector-modern/ExecutionContextManager.h +25 -0
- package/ReactCommon/jsinspector-modern/FallbackRuntimeAgentDelegate.cpp +70 -0
- package/ReactCommon/jsinspector-modern/FallbackRuntimeAgentDelegate.h +66 -0
- package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +58 -0
- package/ReactCommon/jsinspector-modern/InspectorFlags.h +46 -0
- package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +94 -17
- package/ReactCommon/jsinspector-modern/InspectorInterfaces.h +62 -7
- package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +365 -0
- package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.h +85 -0
- package/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +127 -0
- package/ReactCommon/jsinspector-modern/InspectorUtilities.cpp +39 -0
- package/ReactCommon/jsinspector-modern/InspectorUtilities.h +52 -0
- package/ReactCommon/jsinspector-modern/InstanceAgent.cpp +75 -0
- package/ReactCommon/jsinspector-modern/InstanceAgent.h +66 -0
- package/ReactCommon/jsinspector-modern/InstanceTarget.cpp +82 -0
- package/ReactCommon/jsinspector-modern/InstanceTarget.h +97 -0
- package/ReactCommon/jsinspector-modern/PageAgent.cpp +153 -0
- package/ReactCommon/jsinspector-modern/PageAgent.h +89 -0
- package/ReactCommon/jsinspector-modern/PageTarget.cpp +166 -0
- package/ReactCommon/jsinspector-modern/PageTarget.h +190 -0
- package/ReactCommon/jsinspector-modern/Parsing.cpp +32 -0
- package/ReactCommon/jsinspector-modern/Parsing.h +69 -0
- package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +31 -2
- package/ReactCommon/jsinspector-modern/ReactCdp.h +16 -0
- package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +138 -0
- package/ReactCommon/jsinspector-modern/RuntimeAgent.h +93 -0
- package/ReactCommon/jsinspector-modern/RuntimeAgentDelegate.h +51 -0
- package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +109 -0
- package/ReactCommon/jsinspector-modern/RuntimeTarget.h +162 -0
- package/ReactCommon/jsinspector-modern/ScopedExecutor.h +97 -0
- package/ReactCommon/jsinspector-modern/SessionState.h +51 -0
- package/ReactCommon/jsinspector-modern/UniqueMonostate.h +54 -0
- package/ReactCommon/jsinspector-modern/WeakList.h +79 -0
- package/ReactCommon/jsinspector-modern/WebSocketInterfaces.h +62 -0
- package/ReactCommon/jsinspector-modern/tests/FollyDynamicMatchers.cpp +50 -0
- package/ReactCommon/jsinspector-modern/tests/FollyDynamicMatchers.h +80 -0
- package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +163 -0
- package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp +1343 -0
- package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +576 -0
- package/ReactCommon/jsinspector-modern/tests/PageTargetTest.cpp +517 -0
- package/ReactCommon/jsinspector-modern/tests/UniquePtrFactory.h +110 -0
- package/ReactCommon/jsinspector-modern/tests/UniquePtrFactoryTest.cpp +84 -0
- package/ReactCommon/jsinspector-modern/tests/WeakListTest.cpp +91 -0
- package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestGenericEngineAdapter.cpp +48 -0
- package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestGenericEngineAdapter.h +44 -0
- package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.cpp +58 -0
- package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.h +44 -0
- package/ReactCommon/logger/CMakeLists.txt +1 -1
- package/ReactCommon/logger/React-logger.podspec +3 -3
- package/ReactCommon/react/bridging/Array.h +26 -2
- package/ReactCommon/react/bridging/CMakeLists.txt +0 -1
- package/ReactCommon/react/bridging/CallbackWrapper.h +8 -5
- package/ReactCommon/react/bridging/Function.h +63 -24
- package/ReactCommon/react/bridging/LongLivedObject.h +8 -6
- package/ReactCommon/react/bridging/tests/BridgingTest.cpp +51 -1
- package/ReactCommon/react/bridging/tests/BridgingTest.h +1 -1
- package/ReactCommon/react/config/CMakeLists.txt +1 -2
- package/ReactCommon/react/config/ReactNativeConfig.cpp +3 -10
- package/ReactCommon/react/config/ReactNativeConfig.h +4 -4
- package/ReactCommon/react/debug/CMakeLists.txt +0 -1
- package/ReactCommon/react/featureflags/CMakeLists.txt +20 -0
- package/ReactCommon/react/featureflags/React-featureflags.podspec +44 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +82 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +126 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +251 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +68 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +71 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +40 -0
- package/ReactCommon/react/featureflags/tests/ReactNativeFeatureFlagsTest.cpp +124 -0
- package/ReactCommon/react/nativemodule/core/CMakeLists.txt +1 -1
- package/ReactCommon/react/nativemodule/core/ReactCommon/CxxTurboModuleUtils.cpp +32 -0
- package/ReactCommon/react/nativemodule/core/ReactCommon/CxxTurboModuleUtils.h +67 -0
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.cpp +25 -0
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +7 -0
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +28 -52
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +9 -2
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +1 -0
- package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +207 -157
- package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +2 -2
- package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +5 -2
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.h +1 -1
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +4 -4
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTRuntimeExecutor.h +30 -0
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTRuntimeExecutor.mm +34 -0
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +12 -3
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +227 -199
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.h +11 -0
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +38 -18
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +88 -0
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +54 -0
- package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +5 -3
- package/ReactCommon/react/nativemodule/samples/platform/android/CMakeLists.txt +0 -1
- package/ReactCommon/react/nativemodule/samples/platform/android/SampleTurboModule.java +2 -1
- package/ReactCommon/react/renderer/animations/CMakeLists.txt +1 -2
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +0 -39
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +0 -3
- package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +2 -0
- package/ReactCommon/react/renderer/attributedstring/CMakeLists.txt +1 -2
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +9 -0
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +4 -3
- package/ReactCommon/react/renderer/attributedstring/conversions.h +44 -37
- package/ReactCommon/react/renderer/attributedstring/primitives.h +0 -86
- package/ReactCommon/react/renderer/componentregistry/CMakeLists.txt +2 -1
- package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +16 -30
- package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.h +0 -7
- package/ReactCommon/react/renderer/componentregistry/native/CMakeLists.txt +1 -2
- package/ReactCommon/react/renderer/components/image/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.h +1 -6
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm +6 -34
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticComponentDescriptor.cpp +26 -0
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticComponentDescriptor.h +35 -0
- package/{ReactAndroid/src/main/jni/react/jni/OnLoad.h → ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.cpp} +2 -5
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.h +22 -0
- package/ReactCommon/react/renderer/components/modal/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/components/progressbar/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/components/root/CMakeLists.txt +1 -2
- package/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt +1 -2
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.cpp +8 -0
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +1 -0
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +18 -0
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +2 -0
- package/ReactCommon/react/renderer/components/switch/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +8 -0
- package/ReactCommon/react/renderer/components/text/BaseTextShadowNode.cpp +2 -3
- package/ReactCommon/react/renderer/components/text/CMakeLists.txt +1 -2
- package/ReactCommon/react/renderer/components/text/ParagraphLayoutManager.cpp +5 -2
- package/ReactCommon/react/renderer/components/text/ParagraphLayoutManager.h +3 -1
- package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +25 -14
- package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h +0 -1
- package/ReactCommon/react/renderer/components/text/RawTextShadowNode.h +0 -8
- package/ReactCommon/react/renderer/components/text/TextShadowNode.h +0 -7
- package/ReactCommon/react/renderer/components/textinput/CMakeLists.txt +3 -4
- package/ReactCommon/react/renderer/components/textinput/{androidtextinput → platform/android}/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +22 -28
- package/ReactCommon/react/renderer/components/textinput/{androidtextinput → platform/android}/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +18 -28
- package/ReactCommon/react/renderer/components/textinput/{androidtextinput → platform/android}/react/renderer/components/androidtextinput/AndroidTextInputProps.h +1 -2
- package/ReactCommon/react/renderer/components/textinput/{androidtextinput → platform/android}/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +5 -1
- package/ReactCommon/react/renderer/components/textinput/{androidtextinput → platform/android}/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +0 -1
- package/ReactCommon/react/renderer/components/textinput/{androidtextinput → platform/android}/react/renderer/components/androidtextinput/AndroidTextInputState.cpp +4 -7
- package/ReactCommon/react/renderer/components/textinput/{androidtextinput → platform/android}/react/renderer/components/androidtextinput/AndroidTextInputState.h +2 -5
- package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/TextInputProps.cpp +6 -0
- package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/TextInputProps.h +1 -0
- package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/TextInputShadowNode.cpp +9 -2
- package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/TextInputShadowNode.h +0 -1
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputState.cpp +10 -0
- package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/TextInputState.h +0 -16
- package/ReactCommon/react/renderer/components/unimplementedview/CMakeLists.txt +1 -2
- package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +4 -4
- package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h +1 -1
- package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +1 -17
- package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +1 -6
- package/ReactCommon/react/renderer/components/view/BaseViewEventEmitter.cpp +31 -37
- package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +48 -21
- package/ReactCommon/react/renderer/components/view/BaseViewProps.h +2 -0
- package/ReactCommon/react/renderer/components/view/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +11 -3
- package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +0 -6
- package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +182 -198
- package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +4 -9
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +686 -309
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +16 -26
- package/ReactCommon/react/renderer/components/view/conversions.h +79 -144
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +0 -3
- package/ReactCommon/react/renderer/components/view/primitives.h +2 -0
- package/ReactCommon/react/renderer/components/view/propsConversions.h +0 -319
- package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +26 -26
- package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +4 -4
- package/ReactCommon/react/renderer/core/CMakeLists.txt +2 -2
- package/ReactCommon/react/renderer/core/ComponentDescriptor.h +2 -10
- package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +11 -13
- package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +3 -2
- package/ReactCommon/react/renderer/core/ConcreteState.h +1 -6
- package/ReactCommon/react/renderer/core/EventEmitter.h +0 -7
- package/ReactCommon/react/renderer/core/EventLogger.h +2 -2
- package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +4 -11
- package/ReactCommon/react/renderer/core/LayoutMetrics.h +4 -21
- package/ReactCommon/react/renderer/core/LayoutPrimitives.h +6 -17
- package/ReactCommon/react/renderer/core/LayoutableShadowNode.cpp +8 -19
- package/ReactCommon/react/renderer/core/LayoutableShadowNode.h +0 -3
- package/ReactCommon/react/renderer/core/Props.cpp +0 -23
- package/ReactCommon/react/renderer/core/Props.h +3 -4
- package/ReactCommon/react/renderer/core/PropsMacros.h +4 -2
- package/ReactCommon/react/renderer/core/PropsParserContext.h +0 -6
- package/ReactCommon/react/renderer/core/RawProps.cpp +121 -5
- package/ReactCommon/react/renderer/core/RawProps.h +30 -14
- package/ReactCommon/react/renderer/core/RawPropsParser.cpp +7 -8
- package/ReactCommon/react/renderer/core/RawPropsParser.h +1 -1
- package/ReactCommon/react/renderer/core/RawPropsPrimitives.h +0 -1
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +1 -1
- package/ReactCommon/react/renderer/core/ShadowNodeFamily.cpp +2 -2
- package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +2 -4
- package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +10 -31
- package/ReactCommon/react/renderer/core/graphicsConversions.h +2 -23
- package/ReactCommon/react/renderer/core/propsConversions.h +2 -4
- package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +9 -6
- package/ReactCommon/react/renderer/core/tests/EventTargetTests.cpp +43 -0
- package/ReactCommon/react/renderer/core/tests/FindNodeAtPointTest.cpp +1 -1
- package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +155 -26
- package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +40 -64
- package/ReactCommon/react/renderer/css/CSSDeclaredStyle.h +108 -0
- package/ReactCommon/react/renderer/css/CSSKeywords.h +458 -0
- package/ReactCommon/react/renderer/css/CSSLengthUnit.h +165 -0
- package/ReactCommon/react/renderer/css/CSSParser.h +220 -0
- package/ReactCommon/react/renderer/css/CSSProperties.h +1087 -0
- package/ReactCommon/react/renderer/css/CSSTokenizer.h +263 -0
- package/ReactCommon/react/renderer/css/CSSValue.h +277 -0
- package/ReactCommon/react/renderer/css/tests/CSSDeclaredStyleTest.cpp +151 -0
- package/ReactCommon/react/renderer/css/tests/CSSParserTest.cpp +317 -0
- package/ReactCommon/react/renderer/css/tests/CSSTokenizerTest.cpp +154 -0
- package/ReactCommon/react/renderer/debug/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +4 -3
- package/ReactCommon/react/renderer/debug/flags.h +0 -4
- package/ReactCommon/react/renderer/element/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/graphics/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/graphics/Color.h +9 -7
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +10 -3
- package/ReactCommon/react/renderer/graphics/fromRawValueShared.h +50 -0
- package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +18 -7
- package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h +16 -4
- package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.h +55 -15
- package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.mm +132 -0
- package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/PlatformColorParser.h +15 -17
- package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/PlatformColorParser.mm +73 -0
- package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/RCTPlatformColorUtils.h +8 -2
- package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/RCTPlatformColorUtils.mm +14 -3
- package/ReactCommon/react/renderer/imagemanager/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/imagemanager/ImageManager.h +6 -4
- package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +1 -1
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h +4 -3
- package/ReactCommon/react/renderer/leakchecker/CMakeLists.txt +1 -2
- package/ReactCommon/react/renderer/mapbuffer/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp +4 -4
- package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h +2 -0
- package/ReactCommon/react/renderer/mounting/CMakeLists.txt +1 -2
- package/ReactCommon/react/renderer/mounting/Differentiator.cpp +37 -27
- package/ReactCommon/react/renderer/mounting/Differentiator.h +1 -1
- package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +4 -4
- package/ReactCommon/react/renderer/mounting/ShadowView.cpp +1 -2
- package/ReactCommon/react/renderer/mounting/stubs.cpp +2 -2
- package/ReactCommon/react/renderer/mounting/tests/OrderIndexTest.cpp +244 -0
- package/ReactCommon/react/renderer/mounting/tests/StackingContextTest.cpp +18 -16
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +1 -2
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +37 -21
- package/ReactCommon/react/renderer/observers/mutation/MutationObserver.cpp +3 -3
- package/ReactCommon/react/renderer/observers/mutation/MutationObserver.h +3 -3
- package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.cpp +2 -2
- package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.h +2 -2
- package/ReactCommon/react/renderer/runtimescheduler/CMakeLists.txt +3 -2
- package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +37 -136
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +46 -60
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +2 -2
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +3 -2
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +215 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.h +164 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +342 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.h +196 -0
- package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +1 -1
- package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +2 -2
- package/ReactCommon/react/renderer/runtimescheduler/Task.h +6 -4
- package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -20
- package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +435 -26
- package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +1 -3
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +21 -79
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +0 -4
- package/ReactCommon/react/renderer/telemetry/CMakeLists.txt +1 -2
- package/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt +1 -2
- package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutContext.h +40 -0
- package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +8 -11
- package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +19 -16
- package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h +2 -0
- package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.cpp +1 -0
- package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.h +7 -3
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +51 -36
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +1 -1
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextPrimitivesConversions.h +4 -19
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.h +2 -0
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +1 -0
- package/ReactCommon/react/renderer/uimanager/CMakeLists.txt +1 -2
- package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.cpp +191 -52
- package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.h +34 -6
- package/ReactCommon/react/renderer/uimanager/PointerHoverTracker.cpp +150 -0
- package/ReactCommon/react/renderer/uimanager/PointerHoverTracker.h +71 -0
- package/ReactCommon/react/renderer/uimanager/UIManager.cpp +67 -20
- package/ReactCommon/react/renderer/uimanager/UIManager.h +10 -7
- package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +0 -8
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +115 -92
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +1 -1
- package/ReactCommon/react/renderer/uimanager/primitives.h +36 -56
- package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +401 -0
- package/ReactCommon/react/runtime/BridgelessJSCallInvoker.cpp +2 -1
- package/ReactCommon/react/runtime/BridgelessJSCallInvoker.h +1 -1
- package/ReactCommon/react/runtime/BridgelessNativeMethodCallInvoker.cpp +1 -1
- package/ReactCommon/react/runtime/BridgelessNativeMethodCallInvoker.h +3 -2
- package/ReactCommon/react/runtime/CMakeLists.txt +5 -0
- package/ReactCommon/react/runtime/JSRuntimeFactory.cpp +33 -0
- package/ReactCommon/react/runtime/JSRuntimeFactory.h +58 -0
- package/ReactCommon/react/runtime/React-RuntimeCore.podspec +8 -3
- package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +9 -4
- package/ReactCommon/react/runtime/ReactInstance.cpp +39 -72
- package/ReactCommon/react/runtime/ReactInstance.h +19 -4
- package/ReactCommon/react/runtime/TimerManager.cpp +2 -1
- package/ReactCommon/react/runtime/TimerManager.h +1 -1
- package/ReactCommon/react/runtime/hermes/CMakeLists.txt +3 -0
- package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +62 -10
- package/ReactCommon/react/runtime/hermes/HermesInstance.h +2 -1
- package/ReactCommon/react/runtime/iostests/RCTHostTests.mm +3 -2
- package/ReactCommon/react/runtime/nativeviewconfig/LegacyUIManagerConstantsProviderBinding.cpp +34 -3
- package/ReactCommon/react/runtime/nativeviewconfig/LegacyUIManagerConstantsProviderBinding.h +8 -1
- package/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +4 -2
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.h +3 -3
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.mm +1 -1
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost+Internal.h +0 -2
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +18 -5
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +111 -17
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h +6 -3
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +81 -21
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTJscInstance.h +3 -3
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTJscInstance.mm +2 -3
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTLegacyUIManagerConstantsProvider.mm +1 -1
- package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +3 -2
- package/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.h +1 -1
- package/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.mm +7 -3
- package/ReactCommon/react/utils/CMakeLists.txt +1 -1
- package/ReactCommon/react/utils/CoreFeatures.cpp +1 -7
- package/ReactCommon/react/utils/CoreFeatures.h +4 -26
- package/ReactCommon/react/utils/PackTraits.h +31 -0
- package/ReactCommon/react/utils/React-utils.podspec +10 -2
- package/ReactCommon/react/utils/fnv1a.h +41 -0
- package/ReactCommon/react/utils/hash_combine.h +8 -6
- package/ReactCommon/react/utils/jsi.cpp +39 -0
- package/ReactCommon/react/utils/jsi.h +31 -0
- package/ReactCommon/react/utils/tests/fnv1aTests.cpp +24 -0
- package/ReactCommon/react/{renderer/components/view/platform/android/react/renderer/components/view/YogaStylablePropsMapBuffer.h → utils/to_underlying.h} +8 -8
- package/ReactCommon/reactperflogger/CMakeLists.txt +1 -2
- package/ReactCommon/reactperflogger/React-perflogger.podspec +3 -2
- package/ReactCommon/runtimeexecutor/CMakeLists.txt +1 -2
- package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +3 -2
- package/ReactCommon/yoga/Yoga.podspec +4 -4
- package/ReactCommon/yoga/cmake/project-defaults.cmake +1 -1
- package/ReactCommon/yoga/yoga/YGConfig.cpp +92 -0
- package/ReactCommon/yoga/yoga/YGConfig.h +158 -0
- package/ReactCommon/yoga/yoga/YGEnums.cpp +6 -14
- package/ReactCommon/yoga/yoga/YGEnums.h +20 -25
- package/ReactCommon/yoga/yoga/YGMacros.h +4 -38
- package/ReactCommon/yoga/yoga/YGNode.cpp +366 -0
- package/ReactCommon/yoga/yoga/YGNode.h +304 -0
- package/ReactCommon/yoga/yoga/YGNodeLayout.cpp +92 -0
- package/ReactCommon/yoga/yoga/YGNodeLayout.h +35 -0
- package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +385 -0
- package/ReactCommon/yoga/yoga/YGNodeStyle.h +123 -0
- package/ReactCommon/yoga/yoga/YGPixelGrid.cpp +22 -0
- package/ReactCommon/yoga/yoga/YGPixelGrid.h +29 -0
- package/ReactCommon/yoga/yoga/YGValue.cpp +8 -0
- package/ReactCommon/yoga/yoga/YGValue.h +33 -8
- package/ReactCommon/yoga/yoga/Yoga.h +8 -314
- package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +598 -0
- package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.h +40 -0
- package/ReactCommon/yoga/yoga/algorithm/Align.h +4 -4
- package/ReactCommon/yoga/yoga/algorithm/Baseline.cpp +9 -9
- package/ReactCommon/yoga/yoga/algorithm/BoundAxis.h +11 -12
- package/ReactCommon/yoga/yoga/algorithm/Cache.cpp +35 -35
- package/ReactCommon/yoga/yoga/algorithm/Cache.h +5 -5
- package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +605 -986
- package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.h +17 -0
- package/ReactCommon/yoga/yoga/algorithm/FlexDirection.h +41 -15
- package/ReactCommon/yoga/yoga/algorithm/FlexLine.cpp +13 -7
- package/ReactCommon/yoga/yoga/algorithm/PixelGrid.cpp +8 -8
- package/ReactCommon/yoga/yoga/algorithm/SizingMode.h +73 -0
- package/ReactCommon/yoga/yoga/algorithm/TrailingPosition.h +44 -0
- package/ReactCommon/yoga/yoga/config/Config.cpp +0 -8
- package/ReactCommon/yoga/yoga/config/Config.h +0 -4
- package/ReactCommon/yoga/yoga/debug/AssertFatal.cpp +3 -0
- package/ReactCommon/yoga/yoga/debug/AssertFatal.h +3 -2
- package/ReactCommon/yoga/yoga/enums/Align.h +6 -10
- package/ReactCommon/yoga/yoga/enums/Dimension.h +4 -9
- package/ReactCommon/yoga/yoga/enums/Direction.h +4 -9
- package/ReactCommon/yoga/yoga/enums/Display.h +4 -9
- package/ReactCommon/yoga/yoga/enums/Edge.h +4 -9
- package/ReactCommon/yoga/yoga/enums/Errata.h +4 -12
- package/ReactCommon/yoga/yoga/enums/ExperimentalFeature.h +4 -10
- package/ReactCommon/yoga/yoga/enums/FlexDirection.h +4 -9
- package/ReactCommon/yoga/yoga/enums/Gutter.h +4 -9
- package/ReactCommon/yoga/yoga/enums/Justify.h +4 -9
- package/ReactCommon/yoga/yoga/enums/LogLevel.h +4 -9
- package/ReactCommon/yoga/yoga/enums/MeasureMode.h +4 -9
- package/ReactCommon/yoga/yoga/enums/NodeType.h +4 -9
- package/ReactCommon/yoga/yoga/enums/Overflow.h +4 -9
- package/ReactCommon/yoga/yoga/enums/PhysicalEdge.h +21 -0
- package/ReactCommon/yoga/yoga/enums/PositionType.h +4 -9
- package/ReactCommon/yoga/yoga/enums/Unit.h +4 -9
- package/ReactCommon/yoga/yoga/enums/Wrap.h +4 -9
- package/ReactCommon/yoga/yoga/enums/YogaEnums.h +69 -2
- package/ReactCommon/yoga/yoga/module.modulemap +21 -0
- package/ReactCommon/yoga/yoga/node/CachedMeasurement.h +5 -5
- package/ReactCommon/yoga/yoga/node/LayoutResults.cpp +4 -4
- package/ReactCommon/yoga/yoga/node/LayoutResults.h +55 -22
- package/ReactCommon/yoga/yoga/node/Node.cpp +74 -318
- package/ReactCommon/yoga/yoga/node/Node.h +64 -113
- package/ReactCommon/yoga/yoga/numeric/Comparison.h +33 -43
- package/ReactCommon/yoga/yoga/numeric/FloatOptional.h +30 -14
- package/ReactCommon/yoga/yoga/style/SmallValueBuffer.h +133 -0
- package/ReactCommon/yoga/yoga/style/Style.h +552 -207
- package/ReactCommon/yoga/yoga/style/StyleLength.h +139 -0
- package/ReactCommon/yoga/yoga/style/StyleValueHandle.h +98 -0
- package/ReactCommon/yoga/yoga/style/StyleValuePool.h +127 -0
- package/cli.js +17 -5
- package/flow/jest.js +1 -1
- package/flow/react.js +15 -0
- package/gradle/libs.versions.toml +12 -11
- package/index.js +61 -101
- package/jest/assetFileTransformer.js +1 -1
- package/jest/local-setup.js +0 -5
- package/jest/mockModal.js +2 -1
- package/jest/mockScrollView.js +1 -2
- package/jest/renderer.js +1 -1
- package/jest/setup.js +6 -3
- package/package.json +30 -17
- package/react-native.config.js +29 -1
- package/scripts/cocoapods/codegen.rb +15 -64
- package/scripts/cocoapods/codegen_utils.rb +13 -27
- package/scripts/cocoapods/helpers.rb +11 -0
- package/scripts/cocoapods/jsengine.rb +0 -1
- package/scripts/cocoapods/new_architecture.rb +57 -74
- package/scripts/cocoapods/utils.rb +137 -65
- package/scripts/codegen/codegen-utils.js +14 -0
- package/scripts/codegen/generate-artifacts-executor.js +465 -373
- package/scripts/codegen/generate-specs-cli-executor.js +25 -24
- package/scripts/codegen/templates/RCTModulesConformingToProtocolsProviderH.template +18 -0
- package/scripts/codegen/templates/RCTModulesConformingToProtocolsProviderMM.template +33 -0
- package/scripts/compose-source-maps.js +2 -2
- package/scripts/generate-codegen-artifacts.js +9 -50
- package/scripts/generate-provider-cli.js +2 -11
- package/scripts/generate-specs-cli.js +1 -1
- package/scripts/hermes/hermes-utils.js +32 -16
- package/scripts/hermes/prepare-hermes-for-build.js +1 -1
- package/scripts/react-native-xcode.sh +4 -4
- package/scripts/react_native_pods.rb +30 -148
- package/scripts/react_native_pods_utils/script_phases.rb +0 -2
- package/scripts/react_native_pods_utils/script_phases.sh +2 -2
- package/scripts/xcode/ccache-clang++.sh +14 -0
- package/scripts/xcode/ccache-clang.sh +14 -0
- package/scripts/xcode/ccache.conf +11 -0
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/hermes-engine.podspec +0 -1
- package/sdks/hermes-engine/utils/build-apple-framework.sh +1 -0
- package/sdks/hermes-engine/utils/build-hermes-xcode.sh +25 -5
- package/sdks/hermes-engine/utils/build-hermesc-xcode.sh +6 -18
- package/sdks/hermes-engine/utils/build-ios-framework.sh +6 -1
- package/sdks/hermes-engine/utils/build-mac-framework.sh +5 -0
- package/sdks/hermes-engine/utils/create-dummy-hermes-xcframework.sh +6 -4
- package/sdks/hermes-engine/utils/replace_hermes_version.js +2 -2
- package/sdks/hermesc/linux64-bin/hermesc +0 -0
- package/sdks/hermesc/osx-bin/hermes +0 -0
- package/sdks/hermesc/osx-bin/hermesc +0 -0
- package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
- package/settings.gradle.kts +0 -7
- package/{Libraries/Core → src/private/core}/setUpDOM.js +2 -2
- package/src/private/featureflags/NativeReactNativeFeatureFlags.js +42 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +140 -0
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +84 -0
- package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +92 -0
- package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
- package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
- package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +26 -0
- package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
- package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
- package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
- package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
- package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
- package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
- package/src/private/specs/components/RCTModalHostViewNativeComponent.js +139 -0
- package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
- package/src/private/specs/components/SwitchNativeComponent.js +61 -0
- package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
- package/src/private/specs/modules/NativeAccessibilityInfo.js +33 -0
- package/src/private/specs/modules/NativeAccessibilityManager.js +66 -0
- package/src/private/specs/modules/NativeActionSheetManager.js +54 -0
- package/src/private/specs/modules/NativeAlertManager.js +35 -0
- package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
- package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
- package/src/private/specs/modules/NativeAnimationsDebugModule.js +20 -0
- package/src/private/specs/modules/NativeAppState.js +33 -0
- package/src/private/specs/modules/NativeAppearance.js +36 -0
- package/src/private/specs/modules/NativeBlobModule.js +59 -0
- package/src/private/specs/modules/NativeBugReporting.js +20 -0
- package/src/private/specs/modules/NativeClipboard.js +21 -0
- package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
- package/src/private/specs/modules/NativeDevMenu.js +23 -0
- package/src/private/specs/modules/NativeDevSettings.js +33 -0
- package/src/private/specs/modules/NativeDevToolsSettingsManager.js +24 -0
- package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
- package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
- package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
- package/src/private/specs/modules/NativeExceptionsManager.js +103 -0
- package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
- package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
- package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
- package/src/private/specs/modules/NativeI18nManager.js +28 -0
- package/src/private/specs/modules/NativeImageEditor.js +52 -0
- package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
- package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
- package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
- package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
- package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
- package/src/private/specs/modules/NativeIntersectionObserver.js +41 -0
- package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
- package/src/private/specs/modules/NativeJSCSamplingProfiler.js +19 -0
- package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
- package/src/private/specs/modules/NativeLinkingManager.js +27 -0
- package/src/private/specs/modules/NativeLogBox.js +20 -0
- package/src/private/specs/modules/NativeModalManager.js +21 -0
- package/src/private/specs/modules/NativeMutationObserver.js +58 -0
- package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
- package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
- package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
- package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
- package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
- package/src/private/specs/modules/NativePushNotificationManagerIOS.js +107 -0
- package/src/private/specs/modules/NativeRedBox.js +20 -0
- package/src/private/specs/modules/NativeSampleTurboModule.js +53 -0
- package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
- package/src/private/specs/modules/NativeSettingsManager.js +25 -0
- package/src/private/specs/modules/NativeShareModule.js +23 -0
- package/src/private/specs/modules/NativeSoundManager.js +22 -0
- package/src/private/specs/modules/NativeSourceCode.js +36 -0
- package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
- package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
- package/src/private/specs/modules/NativeTVNavigationEventEmitter.js +20 -0
- package/src/private/specs/modules/NativeTiming.js +26 -0
- package/src/private/specs/modules/NativeToastAndroid.js +38 -0
- package/src/private/specs/modules/NativeUIManager.js +118 -0
- package/src/private/specs/modules/NativeVibration.js +24 -0
- package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
- package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReactNativeElement.js +6 -6
- package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyCharacterData.js +2 -2
- package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyElement.js +5 -5
- package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyNode.js +19 -10
- package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/DOMRectList.js +1 -1
- package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/DOMRectList.js.flow +1 -1
- package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +85 -0
- package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +80 -0
- package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +161 -0
- package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.js +2 -2
- package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.cpp +34 -4
- package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.h +12 -14
- package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.js +3 -2
- package/{Libraries/WebPerformance → src/private/webapis/performance}/Performance.js +2 -2
- package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntryReporter.cpp +64 -27
- package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntryReporter.h +16 -5
- package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEventTiming.js +1 -1
- package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceObserver.js +21 -2
- package/{Libraries/WebPerformance → src/private/webapis/performance}/RawPerformanceEntry.js +1 -1
- package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformanceObserver.js +9 -0
- package/src/private/webapis/performance/__tests__/BoundedConsumableBufferTest.cpp +201 -0
- package/src/private/webapis/performance/__tests__/EventCounts-test.js +116 -0
- package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +82 -0
- package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +108 -0
- package/src/private/webapis/performance/__tests__/Performance-test.js +117 -0
- package/src/private/webapis/performance/__tests__/PerformanceEntryReporterTest.cpp +373 -0
- package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +208 -0
- package/template/_gitignore +10 -2
- package/template/android/app/build.gradle +0 -2
- package/template/android/app/src/main/java/com/helloworld/MainApplication.kt +1 -1
- package/template/android/app/src/main/res/drawable/rn_edit_text_material.xml +2 -1
- package/template/android/build.gradle +3 -3
- package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/template/android/gradlew +7 -7
- package/template/android/gradlew.bat +10 -10
- package/template/ios/HelloWorld/AppDelegate.mm +2 -2
- package/template/ios/HelloWorld/PrivacyInfo.xcprivacy +38 -0
- package/template/ios/HelloWorld.xcodeproj/project.pbxproj +18 -2
- package/template/ios/Podfile +0 -15
- package/template/metro.config.js +1 -1
- package/template/package.json +6 -6
- package/third-party-podspecs/DoubleConversion.podspec +4 -0
- package/third-party-podspecs/RCT-Folly.podspec +12 -49
- package/third-party-podspecs/fmt.podspec +21 -20
- package/types/index.d.ts +1 -0
- package/types/modules/globals.d.ts +1 -0
- package/Libraries/AppDelegate/RCTLegacyInteropComponents.mm +0 -21
- package/Libraries/Components/Button.flow.js +0 -265
- package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -86
- package/Libraries/Components/TV/NativeTVNavigationEventEmitter.js +0 -24
- package/Libraries/Components/Touchable/Touchable.flow.js +0 -284
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +0 -189
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +0 -43
- package/Libraries/Image/Image.flow.js +0 -64
- package/Libraries/Inspector/DevtoolsOverlay.js +0 -223
- package/Libraries/Performance/QuickPerformanceLogger.js +0 -142
- package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +0 -58
- package/ReactAndroid/DevExperience.md +0 -23
- package/ReactAndroid/build.gradle +0 -828
- package/ReactAndroid/flipper-integration/build.gradle.kts +0 -64
- package/ReactAndroid/flipper-integration/src/debug/java/com/facebook/react/flipper/ReactNativeFlipper.kt +0 -66
- package/ReactAndroid/flipper-integration/src/release/java/com/facebook/react/flipper/ReactNativeFlipper.kt +0 -23
- package/ReactAndroid/hermes-engine/build.gradle +0 -307
- package/ReactAndroid/src/main/java/com/facebook/react/LazyTurboModuleManagerDelegate.java +0 -104
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstancePackage.java +0 -32
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSCJavaScriptExecutor.java +0 -31
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSCJavaScriptExecutorFactory.java +0 -46
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCallback.java +0 -22
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManagerProvider.java +0 -18
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultBindingsInstaller.kt +0 -18
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultJSIModulePackage.kt +0 -59
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/JSException.java +0 -34
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/EmptyReactNativeConfig.java +0 -35
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +0 -70
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/interop/InteropEvent.java +0 -41
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/interop/InteropEventEmitter.java +0 -65
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/.clang-format +0 -91
- package/ReactAndroid/src/main/java/com/facebook/react/touch/JSResponderHandler.java +0 -73
- package/ReactAndroid/src/main/java/com/facebook/react/touch/ReactHitSlopView.java +0 -26
- package/ReactAndroid/src/main/java/com/facebook/react/touch/ReactInterceptingViewGroup.java +0 -32
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerAdapter.java +0 -111
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIConstantsProvider.java +0 -18
- package/ReactAndroid/src/main/java/com/facebook/react/views/traceupdateoverlay/TraceUpdateOverlay.java +0 -70
- package/ReactAndroid/src/main/java/com/facebook/react/views/traceupdateoverlay/TraceUpdateOverlayManager.java +0 -83
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactMapBufferPropSetter.kt +0 -526
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactMapBufferViewManager.kt +0 -76
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManagerWrapper.kt +0 -101
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaPrintOptions.java +0 -35
- package/ReactAndroid/src/main/jni/react/fabric/viewPropConversions.h +0 -221
- package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapper.cpp +0 -57
- package/ReactAndroid/src/main/jni/third-party/libevent/CMakeLists.txt +0 -42
- package/ReactAndroid/src/main/jni/third-party/libevent/evconfig-private.h +0 -49
- package/ReactAndroid/src/main/jni/third-party/libevent/event-config.h +0 -340
- package/ReactAndroid/src/main/res/devsupport/values-as/strings.xml +0 -6
- package/ReactAndroid/src/main/res/devsupport/values-bs/strings.xml +0 -7
- package/ReactAndroid/src/main/res/devsupport/values-ha/strings.xml +0 -8
- package/ReactAndroid/src/main/res/devsupport/values-in/strings.xml +0 -8
- package/ReactAndroid/src/main/res/devsupport/values-jv/strings.xml +0 -8
- package/ReactAndroid/src/main/res/devsupport/values-ku/strings.xml +0 -6
- package/ReactAndroid/src/main/res/devsupport/values-nb/strings.xml +0 -8
- package/ReactAndroid/src/main/res/devsupport/values-ps/strings.xml +0 -6
- package/ReactAndroid/src/main/res/devsupport/values-qz/strings.xml +0 -6
- package/ReactAndroid/src/main/res/devsupport/values-sn/strings.xml +0 -6
- package/ReactAndroid/src/main/res/devsupport/values-so/strings.xml +0 -6
- package/ReactAndroid/src/main/res/devsupport/values-tg/strings.xml +0 -6
- package/ReactAndroid/src/main/res/devsupport/values-tk/strings.xml +0 -6
- package/ReactAndroid/src/main/res/devsupport/values-tl/strings.xml +0 -7
- package/ReactAndroid/src/main/res/devsupport/values-uz/strings.xml +0 -6
- package/ReactAndroid/src/main/res/devsupport/values-wo/strings.xml +0 -6
- package/ReactAndroid/src/main/res/views/uimanager/values-as/strings.xml +0 -13
- package/ReactAndroid/src/main/res/views/uimanager/values-bs/strings.xml +0 -31
- package/ReactAndroid/src/main/res/views/uimanager/values-ha/strings.xml +0 -31
- package/ReactAndroid/src/main/res/views/uimanager/values-in/strings.xml +0 -29
- package/ReactAndroid/src/main/res/views/uimanager/values-jv/strings.xml +0 -28
- package/ReactAndroid/src/main/res/views/uimanager/values-ku/strings.xml +0 -12
- package/ReactAndroid/src/main/res/views/uimanager/values-nb/strings.xml +0 -31
- package/ReactAndroid/src/main/res/views/uimanager/values-ps/strings.xml +0 -13
- package/ReactAndroid/src/main/res/views/uimanager/values-qz/strings.xml +0 -6
- package/ReactAndroid/src/main/res/views/uimanager/values-sn/strings.xml +0 -6
- package/ReactAndroid/src/main/res/views/uimanager/values-so/strings.xml +0 -12
- package/ReactAndroid/src/main/res/views/uimanager/values-tg/strings.xml +0 -12
- package/ReactAndroid/src/main/res/views/uimanager/values-tk/strings.xml +0 -6
- package/ReactAndroid/src/main/res/views/uimanager/values-tl/strings.xml +0 -14
- package/ReactAndroid/src/main/res/views/uimanager/values-uz/strings.xml +0 -13
- package/ReactAndroid/src/main/res/views/uimanager/values-wo/strings.xml +0 -6
- package/ReactCommon/hermes/inspector-modern/.clang-format +0 -87
- package/ReactCommon/hermes/inspector-modern/AsyncPauseState.h +0 -34
- package/ReactCommon/hermes/inspector-modern/Exceptions.h +0 -60
- package/ReactCommon/hermes/inspector-modern/Inspector.cpp +0 -745
- package/ReactCommon/hermes/inspector-modern/Inspector.h +0 -384
- package/ReactCommon/hermes/inspector-modern/InspectorState.cpp +0 -511
- package/ReactCommon/hermes/inspector-modern/InspectorState.h +0 -412
- package/ReactCommon/hermes/inspector-modern/README.md +0 -113
- package/ReactCommon/hermes/inspector-modern/RuntimeAdapter.cpp +0 -30
- package/ReactCommon/hermes/inspector-modern/RuntimeAdapter.h +0 -76
- package/ReactCommon/hermes/inspector-modern/chrome/Connection.cpp +0 -1667
- package/ReactCommon/hermes/inspector-modern/chrome/Connection.h +0 -68
- package/ReactCommon/hermes/inspector-modern/chrome/MessageConverters.cpp +0 -378
- package/ReactCommon/hermes/inspector-modern/chrome/MessageConverters.h +0 -136
- package/ReactCommon/hermes/inspector-modern/chrome/MessageInterfaces.h +0 -74
- package/ReactCommon/hermes/inspector-modern/chrome/MessageTypes.cpp +0 -1948
- package/ReactCommon/hermes/inspector-modern/chrome/MessageTypes.h +0 -1129
- package/ReactCommon/hermes/inspector-modern/chrome/MessageTypesInlines.h +0 -190
- package/ReactCommon/hermes/inspector-modern/chrome/RemoteObjectsTable.cpp +0 -146
- package/ReactCommon/hermes/inspector-modern/chrome/RemoteObjectsTable.h +0 -124
- package/ReactCommon/hermes/inspector-modern/chrome/cli/main.cpp +0 -275
- package/ReactCommon/hermes/inspector-modern/detail/CallbackOStream.cpp +0 -77
- package/ReactCommon/hermes/inspector-modern/detail/CallbackOStream.h +0 -89
- package/ReactCommon/hermes/inspector-modern/detail/SerialExecutor.cpp +0 -60
- package/ReactCommon/hermes/inspector-modern/detail/SerialExecutor.h +0 -57
- package/ReactCommon/hermes/inspector-modern/detail/Thread.cpp +0 -39
- package/ReactCommon/hermes/inspector-modern/detail/Thread.h +0 -85
- package/ReactCommon/hermes/inspector-modern/docs/GenerateInspectorFSM.sh +0 -7
- package/ReactCommon/hermes/inspector-modern/docs/InspectorFSM.gv +0 -39
- package/ReactCommon/hermes/inspector-modern/docs/InspectorFSM.pdf +0 -0
- package/ReactCommon/hermes/inspector-modern/tools/format +0 -10
- package/ReactCommon/hermes/inspector-modern/tools/message_types.txt +0 -41
- package/ReactCommon/hermes/inspector-modern/tools/run_msggen +0 -32
- package/ReactCommon/hermes/inspector-modern/tools/sandcastle/build_and_test.sh +0 -13
- package/ReactCommon/hermes/inspector-modern/tools/sandcastle/setup.sh +0 -31
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTBlockGuard.h +0 -24
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTBlockGuard.mm +0 -28
- package/ReactCommon/react/renderer/components/textinput/iostextinput/react/renderer/components/iostextinput/TextInputState.cpp +0 -32
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/AccessibilityPropsMapBuffer.cpp +0 -165
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/AccessibilityPropsMapBuffer.h +0 -35
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/ViewPropsMapBuffer.cpp +0 -191
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/ViewPropsMapBuffer.h +0 -51
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/YogaStylablePropsMapBuffer.cpp +0 -80
- package/ReactCommon/react/renderer/components/view/viewPropConversions.h +0 -214
- package/ReactCommon/react/renderer/core/EventHandler.h +0 -28
- package/ReactCommon/react/renderer/core/PropsParserContext.cpp +0 -27
- package/ReactCommon/react/renderer/core/TraitCast.h +0 -90
- package/ReactCommon/react/renderer/core/tests/traitCastTest.cpp +0 -144
- package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequest.cpp +0 -36
- package/ReactCommon/react/renderer/templateprocessor/CMakeLists.txt +0 -33
- package/ReactCommon/react/renderer/templateprocessor/UITemplateProcessor.cpp +0 -153
- package/ReactCommon/react/renderer/templateprocessor/UITemplateProcessor.h +0 -64
- package/ReactCommon/react/renderer/templateprocessor/tests/UITemplateProcessorTest.cpp +0 -170
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/NSTextStorage+FontScaling.h +0 -20
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/NSTextStorage+FontScaling.m +0 -117
- package/ReactCommon/react/runtime/JSEngineInstance.h +0 -27
- package/ReactCommon/react/utils/CalledOnceMovableOnlyFunction.h +0 -87
- package/ReactCommon/yoga/yoga/Yoga-internal.h +0 -22
- package/ReactCommon/yoga/yoga/Yoga.cpp +0 -962
- package/ReactCommon/yoga/yoga/algorithm/ResolveValue.h +0 -32
- package/ReactCommon/yoga/yoga/bits/BitCast.h +0 -30
- package/ReactCommon/yoga/yoga/bits/NumericBitfield.h +0 -67
- package/ReactCommon/yoga/yoga/debug/NodeToString.cpp +0 -244
- package/ReactCommon/yoga/yoga/debug/NodeToString.h +0 -29
- package/ReactCommon/yoga/yoga/enums/PrintOptions.h +0 -48
- package/ReactCommon/yoga/yoga/style/CompactValue.h +0 -184
- package/scripts/cocoapods/flipper.rb +0 -107
- package/scripts/codegen/generate-legacy-interop-components.js +0 -129
- /package/Libraries/{RCTRequired/RCTRequired → Required}/RCTRequired.h +0 -0
- /package/Libraries/{RCTRequired → Required}/RCTRequired.podspec +0 -0
- /package/ReactAndroid/src/main/java/com/facebook/react/{turbomodule → internal/turbomodule}/.clang-tidy +0 -0
- /package/ReactCommon/react/renderer/components/textinput/{androidtextinput → platform/android}/react/renderer/components/androidtextinput/AndroidTextInputEventEmitter.h +0 -0
- /package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/TextInputComponentDescriptor.h +0 -0
- /package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/TextInputEventEmitter.cpp +0 -0
- /package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/TextInputEventEmitter.h +0 -0
- /package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/conversions.h +0 -0
- /package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/primitives.h +0 -0
- /package/ReactCommon/react/renderer/components/textinput/{iostextinput → platform/ios}/react/renderer/components/iostextinput/propsConversions.h +0 -0
- /package/ReactCommon/react/renderer/imagemanager/{platform/ios/react/renderer/imagemanager/ImageRequest.cpp → ImageRequest.cpp} +0 -0
- /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRect.js +0 -0
- /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRectReadOnly.js +0 -0
- /package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyText.js +0 -0
- /package/{Libraries/DOM/Nodes/Utilities → src/private/webapis/dom/nodes/utilities}/Traversal.js +0 -0
- /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/ArrayLikeUtils.js +0 -0
- /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/HTMLCollection.js +0 -0
- /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/HTMLCollection.js.flow +0 -0
- /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/NodeList.js +0 -0
- /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/NodeList.js.flow +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/BoundedConsumableBuffer.h +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/EventCounts.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/MemoryInfo.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.cpp +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.h +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntry.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/ReactNativeStartupTiming.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformance.js +0 -0
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
#include <yoga/Yoga.h>
|
|
15
15
|
|
|
16
|
+
#include <yoga/algorithm/AbsoluteLayout.h>
|
|
16
17
|
#include <yoga/algorithm/Align.h>
|
|
17
18
|
#include <yoga/algorithm/Baseline.h>
|
|
18
19
|
#include <yoga/algorithm/BoundAxis.h>
|
|
@@ -21,10 +22,10 @@
|
|
|
21
22
|
#include <yoga/algorithm/FlexDirection.h>
|
|
22
23
|
#include <yoga/algorithm/FlexLine.h>
|
|
23
24
|
#include <yoga/algorithm/PixelGrid.h>
|
|
24
|
-
#include <yoga/algorithm/
|
|
25
|
+
#include <yoga/algorithm/SizingMode.h>
|
|
26
|
+
#include <yoga/algorithm/TrailingPosition.h>
|
|
25
27
|
#include <yoga/debug/AssertFatal.h>
|
|
26
28
|
#include <yoga/debug/Log.h>
|
|
27
|
-
#include <yoga/debug/NodeToString.h>
|
|
28
29
|
#include <yoga/event/event.h>
|
|
29
30
|
#include <yoga/node/Node.h>
|
|
30
31
|
#include <yoga/numeric/Comparison.h>
|
|
@@ -34,87 +35,26 @@ namespace facebook::yoga {
|
|
|
34
35
|
|
|
35
36
|
std::atomic<uint32_t> gCurrentGenerationCount(0);
|
|
36
37
|
|
|
37
|
-
bool calculateLayoutInternal(
|
|
38
|
-
yoga::Node* const node,
|
|
39
|
-
const float availableWidth,
|
|
40
|
-
const float availableHeight,
|
|
41
|
-
const Direction ownerDirection,
|
|
42
|
-
const MeasureMode widthMeasureMode,
|
|
43
|
-
const MeasureMode heightMeasureMode,
|
|
44
|
-
const float ownerWidth,
|
|
45
|
-
const float ownerHeight,
|
|
46
|
-
const bool performLayout,
|
|
47
|
-
const LayoutPassReason reason,
|
|
48
|
-
LayoutData& layoutMarkerData,
|
|
49
|
-
const uint32_t depth,
|
|
50
|
-
const uint32_t generationCount);
|
|
51
|
-
|
|
52
|
-
static inline float dimensionWithMargin(
|
|
53
|
-
const yoga::Node* const node,
|
|
54
|
-
const FlexDirection axis,
|
|
55
|
-
const float widthSize) {
|
|
56
|
-
return node->getLayout().measuredDimension(dimension(axis)) +
|
|
57
|
-
(node->getLeadingMargin(axis, widthSize) +
|
|
58
|
-
node->getTrailingMargin(axis, widthSize))
|
|
59
|
-
.unwrap();
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
static inline bool styleDefinesDimension(
|
|
63
|
-
const yoga::Node* const node,
|
|
64
|
-
const FlexDirection axis,
|
|
65
|
-
const float ownerSize) {
|
|
66
|
-
bool isUndefined =
|
|
67
|
-
yoga::isUndefined(node->getResolvedDimension(dimension(axis)).value);
|
|
68
|
-
|
|
69
|
-
auto resolvedDimension = node->getResolvedDimension(dimension(axis));
|
|
70
|
-
return !(
|
|
71
|
-
resolvedDimension.unit == YGUnitAuto ||
|
|
72
|
-
resolvedDimension.unit == YGUnitUndefined ||
|
|
73
|
-
(resolvedDimension.unit == YGUnitPoint && !isUndefined &&
|
|
74
|
-
resolvedDimension.value < 0.0f) ||
|
|
75
|
-
(resolvedDimension.unit == YGUnitPercent && !isUndefined &&
|
|
76
|
-
(resolvedDimension.value < 0.0f || yoga::isUndefined(ownerSize))));
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
static inline bool isLayoutDimensionDefined(
|
|
80
|
-
const yoga::Node* const node,
|
|
81
|
-
const FlexDirection axis) {
|
|
82
|
-
const float value = node->getLayout().measuredDimension(dimension(axis));
|
|
83
|
-
return !yoga::isUndefined(value) && value >= 0.0f;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
static void setChildTrailingPosition(
|
|
87
|
-
const yoga::Node* const node,
|
|
88
|
-
yoga::Node* const child,
|
|
89
|
-
const FlexDirection axis) {
|
|
90
|
-
const float size = child->getLayout().measuredDimension(dimension(axis));
|
|
91
|
-
child->setLayoutPosition(
|
|
92
|
-
node->getLayout().measuredDimension(dimension(axis)) - size -
|
|
93
|
-
child->getLayout().position[leadingEdge(axis)],
|
|
94
|
-
trailingEdge(axis));
|
|
95
|
-
}
|
|
96
|
-
|
|
97
38
|
static void constrainMaxSizeForMode(
|
|
98
|
-
const yoga::Node*
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
float* size) {
|
|
39
|
+
const yoga::Node* node,
|
|
40
|
+
FlexDirection axis,
|
|
41
|
+
float ownerAxisSize,
|
|
42
|
+
float ownerWidth,
|
|
43
|
+
/*in_out*/ SizingMode* mode,
|
|
44
|
+
/*in_out*/ float* size) {
|
|
104
45
|
const FloatOptional maxSize =
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
FloatOptional(node->getMarginForAxis(axis, ownerWidth));
|
|
46
|
+
node->style().maxDimension(dimension(axis)).resolve(ownerAxisSize) +
|
|
47
|
+
FloatOptional(node->style().computeMarginForAxis(axis, ownerWidth));
|
|
108
48
|
switch (*mode) {
|
|
109
|
-
case
|
|
110
|
-
case
|
|
49
|
+
case SizingMode::StretchFit:
|
|
50
|
+
case SizingMode::FitContent:
|
|
111
51
|
*size = (maxSize.isUndefined() || *size < maxSize.unwrap())
|
|
112
52
|
? *size
|
|
113
53
|
: maxSize.unwrap();
|
|
114
54
|
break;
|
|
115
|
-
case
|
|
116
|
-
if (
|
|
117
|
-
*mode =
|
|
55
|
+
case SizingMode::MaxContent:
|
|
56
|
+
if (maxSize.isDefined()) {
|
|
57
|
+
*mode = SizingMode::FitContent;
|
|
118
58
|
*size = maxSize.unwrap();
|
|
119
59
|
}
|
|
120
60
|
break;
|
|
@@ -125,34 +65,34 @@ static void computeFlexBasisForChild(
|
|
|
125
65
|
const yoga::Node* const node,
|
|
126
66
|
yoga::Node* const child,
|
|
127
67
|
const float width,
|
|
128
|
-
const
|
|
68
|
+
const SizingMode widthMode,
|
|
129
69
|
const float height,
|
|
130
70
|
const float ownerWidth,
|
|
131
71
|
const float ownerHeight,
|
|
132
|
-
const
|
|
72
|
+
const SizingMode heightMode,
|
|
133
73
|
const Direction direction,
|
|
134
74
|
LayoutData& layoutMarkerData,
|
|
135
75
|
const uint32_t depth,
|
|
136
76
|
const uint32_t generationCount) {
|
|
137
77
|
const FlexDirection mainAxis =
|
|
138
|
-
resolveDirection(node->
|
|
78
|
+
resolveDirection(node->style().flexDirection(), direction);
|
|
139
79
|
const bool isMainAxisRow = isRow(mainAxis);
|
|
140
80
|
const float mainAxisSize = isMainAxisRow ? width : height;
|
|
141
81
|
const float mainAxisownerSize = isMainAxisRow ? ownerWidth : ownerHeight;
|
|
142
82
|
|
|
143
83
|
float childWidth;
|
|
144
84
|
float childHeight;
|
|
145
|
-
|
|
146
|
-
|
|
85
|
+
SizingMode childWidthSizingMode;
|
|
86
|
+
SizingMode childHeightSizingMode;
|
|
147
87
|
|
|
148
88
|
const FloatOptional resolvedFlexBasis =
|
|
149
|
-
|
|
89
|
+
child->resolveFlexBasisPtr().resolve(mainAxisownerSize);
|
|
150
90
|
const bool isRowStyleDimDefined =
|
|
151
|
-
|
|
91
|
+
child->hasDefiniteLength(Dimension::Width, ownerWidth);
|
|
152
92
|
const bool isColumnStyleDimDefined =
|
|
153
|
-
|
|
93
|
+
child->hasDefiniteLength(Dimension::Height, ownerHeight);
|
|
154
94
|
|
|
155
|
-
if (
|
|
95
|
+
if (resolvedFlexBasis.isDefined() && yoga::isDefined(mainAxisSize)) {
|
|
156
96
|
if (child->getLayout().computedFlexBasis.isUndefined() ||
|
|
157
97
|
(child->getConfig()->isExperimentalFeatureEnabled(
|
|
158
98
|
ExperimentalFeature::WebFlexBasis) &&
|
|
@@ -168,76 +108,72 @@ static void computeFlexBasisForChild(
|
|
|
168
108
|
paddingAndBorderForAxis(child, FlexDirection::Row, ownerWidth));
|
|
169
109
|
|
|
170
110
|
child->setLayoutComputedFlexBasis(yoga::maxOrDefined(
|
|
171
|
-
|
|
172
|
-
child->getResolvedDimension(YGDimensionWidth), ownerWidth),
|
|
111
|
+
child->getResolvedDimension(Dimension::Width).resolve(ownerWidth),
|
|
173
112
|
paddingAndBorder));
|
|
174
113
|
} else if (!isMainAxisRow && isColumnStyleDimDefined) {
|
|
175
114
|
// The height is definite, so use that as the flex basis.
|
|
176
115
|
const FloatOptional paddingAndBorder = FloatOptional(
|
|
177
116
|
paddingAndBorderForAxis(child, FlexDirection::Column, ownerWidth));
|
|
178
117
|
child->setLayoutComputedFlexBasis(yoga::maxOrDefined(
|
|
179
|
-
|
|
180
|
-
child->getResolvedDimension(YGDimensionHeight), ownerHeight),
|
|
118
|
+
child->getResolvedDimension(Dimension::Height).resolve(ownerHeight),
|
|
181
119
|
paddingAndBorder));
|
|
182
120
|
} else {
|
|
183
121
|
// Compute the flex basis and hypothetical main size (i.e. the clamped flex
|
|
184
122
|
// basis).
|
|
185
123
|
childWidth = YGUndefined;
|
|
186
124
|
childHeight = YGUndefined;
|
|
187
|
-
|
|
188
|
-
|
|
125
|
+
childWidthSizingMode = SizingMode::MaxContent;
|
|
126
|
+
childHeightSizingMode = SizingMode::MaxContent;
|
|
189
127
|
|
|
190
128
|
auto marginRow =
|
|
191
|
-
child->
|
|
129
|
+
child->style().computeMarginForAxis(FlexDirection::Row, ownerWidth);
|
|
192
130
|
auto marginColumn =
|
|
193
|
-
child->
|
|
131
|
+
child->style().computeMarginForAxis(FlexDirection::Column, ownerWidth);
|
|
194
132
|
|
|
195
133
|
if (isRowStyleDimDefined) {
|
|
196
|
-
childWidth =
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
.unwrap() +
|
|
134
|
+
childWidth = child->getResolvedDimension(Dimension::Width)
|
|
135
|
+
.resolve(ownerWidth)
|
|
136
|
+
.unwrap() +
|
|
200
137
|
marginRow;
|
|
201
|
-
|
|
138
|
+
childWidthSizingMode = SizingMode::StretchFit;
|
|
202
139
|
}
|
|
203
140
|
if (isColumnStyleDimDefined) {
|
|
204
|
-
childHeight =
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
.unwrap() +
|
|
141
|
+
childHeight = child->getResolvedDimension(Dimension::Height)
|
|
142
|
+
.resolve(ownerHeight)
|
|
143
|
+
.unwrap() +
|
|
208
144
|
marginColumn;
|
|
209
|
-
|
|
145
|
+
childHeightSizingMode = SizingMode::StretchFit;
|
|
210
146
|
}
|
|
211
147
|
|
|
212
148
|
// The W3C spec doesn't say anything about the 'overflow' property, but all
|
|
213
149
|
// major browsers appear to implement the following logic.
|
|
214
|
-
if ((!isMainAxisRow && node->
|
|
215
|
-
node->
|
|
216
|
-
if (yoga::isUndefined(childWidth) &&
|
|
150
|
+
if ((!isMainAxisRow && node->style().overflow() == Overflow::Scroll) ||
|
|
151
|
+
node->style().overflow() != Overflow::Scroll) {
|
|
152
|
+
if (yoga::isUndefined(childWidth) && yoga::isDefined(width)) {
|
|
217
153
|
childWidth = width;
|
|
218
|
-
|
|
154
|
+
childWidthSizingMode = SizingMode::FitContent;
|
|
219
155
|
}
|
|
220
156
|
}
|
|
221
157
|
|
|
222
|
-
if ((isMainAxisRow && node->
|
|
223
|
-
node->
|
|
224
|
-
if (yoga::isUndefined(childHeight) &&
|
|
158
|
+
if ((isMainAxisRow && node->style().overflow() == Overflow::Scroll) ||
|
|
159
|
+
node->style().overflow() != Overflow::Scroll) {
|
|
160
|
+
if (yoga::isUndefined(childHeight) && yoga::isDefined(height)) {
|
|
225
161
|
childHeight = height;
|
|
226
|
-
|
|
162
|
+
childHeightSizingMode = SizingMode::FitContent;
|
|
227
163
|
}
|
|
228
164
|
}
|
|
229
165
|
|
|
230
|
-
const auto& childStyle = child->
|
|
231
|
-
if (
|
|
232
|
-
if (!isMainAxisRow &&
|
|
166
|
+
const auto& childStyle = child->style();
|
|
167
|
+
if (childStyle.aspectRatio().isDefined()) {
|
|
168
|
+
if (!isMainAxisRow && childWidthSizingMode == SizingMode::StretchFit) {
|
|
233
169
|
childHeight = marginColumn +
|
|
234
170
|
(childWidth - marginRow) / childStyle.aspectRatio().unwrap();
|
|
235
|
-
|
|
171
|
+
childHeightSizingMode = SizingMode::StretchFit;
|
|
236
172
|
} else if (
|
|
237
|
-
isMainAxisRow &&
|
|
173
|
+
isMainAxisRow && childHeightSizingMode == SizingMode::StretchFit) {
|
|
238
174
|
childWidth = marginRow +
|
|
239
175
|
(childHeight - marginColumn) * childStyle.aspectRatio().unwrap();
|
|
240
|
-
|
|
176
|
+
childWidthSizingMode = SizingMode::StretchFit;
|
|
241
177
|
}
|
|
242
178
|
}
|
|
243
179
|
|
|
@@ -245,35 +181,35 @@ static void computeFlexBasisForChild(
|
|
|
245
181
|
// the cross axis to be measured exactly with the available inner width
|
|
246
182
|
|
|
247
183
|
const bool hasExactWidth =
|
|
248
|
-
|
|
184
|
+
yoga::isDefined(width) && widthMode == SizingMode::StretchFit;
|
|
249
185
|
const bool childWidthStretch =
|
|
250
186
|
resolveChildAlignment(node, child) == Align::Stretch &&
|
|
251
|
-
|
|
187
|
+
childWidthSizingMode != SizingMode::StretchFit;
|
|
252
188
|
if (!isMainAxisRow && !isRowStyleDimDefined && hasExactWidth &&
|
|
253
189
|
childWidthStretch) {
|
|
254
190
|
childWidth = width;
|
|
255
|
-
|
|
256
|
-
if (
|
|
191
|
+
childWidthSizingMode = SizingMode::StretchFit;
|
|
192
|
+
if (childStyle.aspectRatio().isDefined()) {
|
|
257
193
|
childHeight =
|
|
258
194
|
(childWidth - marginRow) / childStyle.aspectRatio().unwrap();
|
|
259
|
-
|
|
195
|
+
childHeightSizingMode = SizingMode::StretchFit;
|
|
260
196
|
}
|
|
261
197
|
}
|
|
262
198
|
|
|
263
199
|
const bool hasExactHeight =
|
|
264
|
-
|
|
200
|
+
yoga::isDefined(height) && heightMode == SizingMode::StretchFit;
|
|
265
201
|
const bool childHeightStretch =
|
|
266
202
|
resolveChildAlignment(node, child) == Align::Stretch &&
|
|
267
|
-
|
|
203
|
+
childHeightSizingMode != SizingMode::StretchFit;
|
|
268
204
|
if (isMainAxisRow && !isColumnStyleDimDefined && hasExactHeight &&
|
|
269
205
|
childHeightStretch) {
|
|
270
206
|
childHeight = height;
|
|
271
|
-
|
|
207
|
+
childHeightSizingMode = SizingMode::StretchFit;
|
|
272
208
|
|
|
273
|
-
if (
|
|
209
|
+
if (childStyle.aspectRatio().isDefined()) {
|
|
274
210
|
childWidth =
|
|
275
211
|
(childHeight - marginColumn) * childStyle.aspectRatio().unwrap();
|
|
276
|
-
|
|
212
|
+
childWidthSizingMode = SizingMode::StretchFit;
|
|
277
213
|
}
|
|
278
214
|
}
|
|
279
215
|
|
|
@@ -282,14 +218,14 @@ static void computeFlexBasisForChild(
|
|
|
282
218
|
FlexDirection::Row,
|
|
283
219
|
ownerWidth,
|
|
284
220
|
ownerWidth,
|
|
285
|
-
&
|
|
221
|
+
&childWidthSizingMode,
|
|
286
222
|
&childWidth);
|
|
287
223
|
constrainMaxSizeForMode(
|
|
288
224
|
child,
|
|
289
225
|
FlexDirection::Column,
|
|
290
226
|
ownerHeight,
|
|
291
227
|
ownerWidth,
|
|
292
|
-
&
|
|
228
|
+
&childHeightSizingMode,
|
|
293
229
|
&childHeight);
|
|
294
230
|
|
|
295
231
|
// Measure the child
|
|
@@ -298,8 +234,8 @@ static void computeFlexBasisForChild(
|
|
|
298
234
|
childWidth,
|
|
299
235
|
childHeight,
|
|
300
236
|
direction,
|
|
301
|
-
|
|
302
|
-
|
|
237
|
+
childWidthSizingMode,
|
|
238
|
+
childHeightSizingMode,
|
|
303
239
|
ownerWidth,
|
|
304
240
|
ownerHeight,
|
|
305
241
|
false,
|
|
@@ -315,241 +251,12 @@ static void computeFlexBasisForChild(
|
|
|
315
251
|
child->setLayoutComputedFlexBasisGeneration(generationCount);
|
|
316
252
|
}
|
|
317
253
|
|
|
318
|
-
static void layoutAbsoluteChild(
|
|
319
|
-
const yoga::Node* const node,
|
|
320
|
-
yoga::Node* const child,
|
|
321
|
-
const float width,
|
|
322
|
-
const MeasureMode widthMode,
|
|
323
|
-
const float height,
|
|
324
|
-
const Direction direction,
|
|
325
|
-
LayoutData& layoutMarkerData,
|
|
326
|
-
const uint32_t depth,
|
|
327
|
-
const uint32_t generationCount) {
|
|
328
|
-
const FlexDirection mainAxis =
|
|
329
|
-
resolveDirection(node->getStyle().flexDirection(), direction);
|
|
330
|
-
const FlexDirection crossAxis = resolveCrossDirection(mainAxis, direction);
|
|
331
|
-
const bool isMainAxisRow = isRow(mainAxis);
|
|
332
|
-
|
|
333
|
-
float childWidth = YGUndefined;
|
|
334
|
-
float childHeight = YGUndefined;
|
|
335
|
-
MeasureMode childWidthMeasureMode = MeasureMode::Undefined;
|
|
336
|
-
MeasureMode childHeightMeasureMode = MeasureMode::Undefined;
|
|
337
|
-
|
|
338
|
-
auto marginRow = child->getMarginForAxis(FlexDirection::Row, width).unwrap();
|
|
339
|
-
auto marginColumn =
|
|
340
|
-
child->getMarginForAxis(FlexDirection::Column, width).unwrap();
|
|
341
|
-
|
|
342
|
-
if (styleDefinesDimension(child, FlexDirection::Row, width)) {
|
|
343
|
-
childWidth =
|
|
344
|
-
yoga::resolveValue(child->getResolvedDimension(YGDimensionWidth), width)
|
|
345
|
-
.unwrap() +
|
|
346
|
-
marginRow;
|
|
347
|
-
} else {
|
|
348
|
-
// If the child doesn't have a specified width, compute the width based on
|
|
349
|
-
// the left/right offsets if they're defined.
|
|
350
|
-
if (child->isLeadingPositionDefined(FlexDirection::Row) &&
|
|
351
|
-
child->isTrailingPosDefined(FlexDirection::Row)) {
|
|
352
|
-
childWidth = node->getLayout().measuredDimension(YGDimensionWidth) -
|
|
353
|
-
(node->getLeadingBorder(FlexDirection::Row) +
|
|
354
|
-
node->getTrailingBorder(FlexDirection::Row)) -
|
|
355
|
-
(child->getLeadingPosition(FlexDirection::Row, width) +
|
|
356
|
-
child->getTrailingPosition(FlexDirection::Row, width))
|
|
357
|
-
.unwrap();
|
|
358
|
-
childWidth =
|
|
359
|
-
boundAxis(child, FlexDirection::Row, childWidth, width, width);
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
if (styleDefinesDimension(child, FlexDirection::Column, height)) {
|
|
364
|
-
childHeight = yoga::resolveValue(
|
|
365
|
-
child->getResolvedDimension(YGDimensionHeight), height)
|
|
366
|
-
.unwrap() +
|
|
367
|
-
marginColumn;
|
|
368
|
-
} else {
|
|
369
|
-
// If the child doesn't have a specified height, compute the height based on
|
|
370
|
-
// the top/bottom offsets if they're defined.
|
|
371
|
-
if (child->isLeadingPositionDefined(FlexDirection::Column) &&
|
|
372
|
-
child->isTrailingPosDefined(FlexDirection::Column)) {
|
|
373
|
-
childHeight = node->getLayout().measuredDimension(YGDimensionHeight) -
|
|
374
|
-
(node->getLeadingBorder(FlexDirection::Column) +
|
|
375
|
-
node->getTrailingBorder(FlexDirection::Column)) -
|
|
376
|
-
(child->getLeadingPosition(FlexDirection::Column, height) +
|
|
377
|
-
child->getTrailingPosition(FlexDirection::Column, height))
|
|
378
|
-
.unwrap();
|
|
379
|
-
childHeight =
|
|
380
|
-
boundAxis(child, FlexDirection::Column, childHeight, height, width);
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
// Exactly one dimension needs to be defined for us to be able to do aspect
|
|
385
|
-
// ratio calculation. One dimension being the anchor and the other being
|
|
386
|
-
// flexible.
|
|
387
|
-
const auto& childStyle = child->getStyle();
|
|
388
|
-
if (yoga::isUndefined(childWidth) ^ yoga::isUndefined(childHeight)) {
|
|
389
|
-
if (!childStyle.aspectRatio().isUndefined()) {
|
|
390
|
-
if (yoga::isUndefined(childWidth)) {
|
|
391
|
-
childWidth = marginRow +
|
|
392
|
-
(childHeight - marginColumn) * childStyle.aspectRatio().unwrap();
|
|
393
|
-
} else if (yoga::isUndefined(childHeight)) {
|
|
394
|
-
childHeight = marginColumn +
|
|
395
|
-
(childWidth - marginRow) / childStyle.aspectRatio().unwrap();
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
// If we're still missing one or the other dimension, measure the content.
|
|
401
|
-
if (yoga::isUndefined(childWidth) || yoga::isUndefined(childHeight)) {
|
|
402
|
-
childWidthMeasureMode = yoga::isUndefined(childWidth)
|
|
403
|
-
? MeasureMode::Undefined
|
|
404
|
-
: MeasureMode::Exactly;
|
|
405
|
-
childHeightMeasureMode = yoga::isUndefined(childHeight)
|
|
406
|
-
? MeasureMode::Undefined
|
|
407
|
-
: MeasureMode::Exactly;
|
|
408
|
-
|
|
409
|
-
// If the size of the owner is defined then try to constrain the absolute
|
|
410
|
-
// child to that size as well. This allows text within the absolute child to
|
|
411
|
-
// wrap to the size of its owner. This is the same behavior as many browsers
|
|
412
|
-
// implement.
|
|
413
|
-
if (!isMainAxisRow && yoga::isUndefined(childWidth) &&
|
|
414
|
-
widthMode != MeasureMode::Undefined && !yoga::isUndefined(width) &&
|
|
415
|
-
width > 0) {
|
|
416
|
-
childWidth = width;
|
|
417
|
-
childWidthMeasureMode = MeasureMode::AtMost;
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
calculateLayoutInternal(
|
|
421
|
-
child,
|
|
422
|
-
childWidth,
|
|
423
|
-
childHeight,
|
|
424
|
-
direction,
|
|
425
|
-
childWidthMeasureMode,
|
|
426
|
-
childHeightMeasureMode,
|
|
427
|
-
childWidth,
|
|
428
|
-
childHeight,
|
|
429
|
-
false,
|
|
430
|
-
LayoutPassReason::kAbsMeasureChild,
|
|
431
|
-
layoutMarkerData,
|
|
432
|
-
depth,
|
|
433
|
-
generationCount);
|
|
434
|
-
childWidth = child->getLayout().measuredDimension(YGDimensionWidth) +
|
|
435
|
-
child->getMarginForAxis(FlexDirection::Row, width).unwrap();
|
|
436
|
-
childHeight = child->getLayout().measuredDimension(YGDimensionHeight) +
|
|
437
|
-
child->getMarginForAxis(FlexDirection::Column, width).unwrap();
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
calculateLayoutInternal(
|
|
441
|
-
child,
|
|
442
|
-
childWidth,
|
|
443
|
-
childHeight,
|
|
444
|
-
direction,
|
|
445
|
-
MeasureMode::Exactly,
|
|
446
|
-
MeasureMode::Exactly,
|
|
447
|
-
childWidth,
|
|
448
|
-
childHeight,
|
|
449
|
-
true,
|
|
450
|
-
LayoutPassReason::kAbsLayout,
|
|
451
|
-
layoutMarkerData,
|
|
452
|
-
depth,
|
|
453
|
-
generationCount);
|
|
454
|
-
|
|
455
|
-
if (child->isTrailingPosDefined(mainAxis) &&
|
|
456
|
-
!child->isLeadingPositionDefined(mainAxis)) {
|
|
457
|
-
child->setLayoutPosition(
|
|
458
|
-
node->getLayout().measuredDimension(dimension(mainAxis)) -
|
|
459
|
-
child->getLayout().measuredDimension(dimension(mainAxis)) -
|
|
460
|
-
node->getTrailingBorder(mainAxis) -
|
|
461
|
-
child->getTrailingMargin(mainAxis, isMainAxisRow ? width : height)
|
|
462
|
-
.unwrap() -
|
|
463
|
-
child->getTrailingPosition(mainAxis, isMainAxisRow ? width : height)
|
|
464
|
-
.unwrap(),
|
|
465
|
-
leadingEdge(mainAxis));
|
|
466
|
-
} else if (
|
|
467
|
-
!child->isLeadingPositionDefined(mainAxis) &&
|
|
468
|
-
node->getStyle().justifyContent() == Justify::Center) {
|
|
469
|
-
child->setLayoutPosition(
|
|
470
|
-
(node->getLayout().measuredDimension(dimension(mainAxis)) -
|
|
471
|
-
child->getLayout().measuredDimension(dimension(mainAxis))) /
|
|
472
|
-
2.0f,
|
|
473
|
-
leadingEdge(mainAxis));
|
|
474
|
-
} else if (
|
|
475
|
-
!child->isLeadingPositionDefined(mainAxis) &&
|
|
476
|
-
node->getStyle().justifyContent() == Justify::FlexEnd) {
|
|
477
|
-
child->setLayoutPosition(
|
|
478
|
-
(node->getLayout().measuredDimension(dimension(mainAxis)) -
|
|
479
|
-
child->getLayout().measuredDimension(dimension(mainAxis))),
|
|
480
|
-
leadingEdge(mainAxis));
|
|
481
|
-
} else if (
|
|
482
|
-
node->getConfig()->isExperimentalFeatureEnabled(
|
|
483
|
-
ExperimentalFeature::AbsolutePercentageAgainstPaddingEdge) &&
|
|
484
|
-
child->isLeadingPositionDefined(mainAxis)) {
|
|
485
|
-
child->setLayoutPosition(
|
|
486
|
-
child->getLeadingPosition(
|
|
487
|
-
mainAxis,
|
|
488
|
-
node->getLayout().measuredDimension(dimension(mainAxis)))
|
|
489
|
-
.unwrap() +
|
|
490
|
-
node->getLeadingBorder(mainAxis) +
|
|
491
|
-
child
|
|
492
|
-
->getLeadingMargin(
|
|
493
|
-
mainAxis,
|
|
494
|
-
node->getLayout().measuredDimension(dimension(mainAxis)))
|
|
495
|
-
.unwrap(),
|
|
496
|
-
leadingEdge(mainAxis));
|
|
497
|
-
}
|
|
498
|
-
|
|
499
|
-
if (child->isTrailingPosDefined(crossAxis) &&
|
|
500
|
-
!child->isLeadingPositionDefined(crossAxis)) {
|
|
501
|
-
child->setLayoutPosition(
|
|
502
|
-
node->getLayout().measuredDimension(dimension(crossAxis)) -
|
|
503
|
-
child->getLayout().measuredDimension(dimension(crossAxis)) -
|
|
504
|
-
node->getTrailingBorder(crossAxis) -
|
|
505
|
-
child->getTrailingMargin(crossAxis, isMainAxisRow ? height : width)
|
|
506
|
-
.unwrap() -
|
|
507
|
-
child
|
|
508
|
-
->getTrailingPosition(crossAxis, isMainAxisRow ? height : width)
|
|
509
|
-
.unwrap(),
|
|
510
|
-
leadingEdge(crossAxis));
|
|
511
|
-
|
|
512
|
-
} else if (
|
|
513
|
-
!child->isLeadingPositionDefined(crossAxis) &&
|
|
514
|
-
resolveChildAlignment(node, child) == Align::Center) {
|
|
515
|
-
child->setLayoutPosition(
|
|
516
|
-
(node->getLayout().measuredDimension(dimension(crossAxis)) -
|
|
517
|
-
child->getLayout().measuredDimension(dimension(crossAxis))) /
|
|
518
|
-
2.0f,
|
|
519
|
-
leadingEdge(crossAxis));
|
|
520
|
-
} else if (
|
|
521
|
-
!child->isLeadingPositionDefined(crossAxis) &&
|
|
522
|
-
((resolveChildAlignment(node, child) == Align::FlexEnd) ^
|
|
523
|
-
(node->getStyle().flexWrap() == Wrap::WrapReverse))) {
|
|
524
|
-
child->setLayoutPosition(
|
|
525
|
-
(node->getLayout().measuredDimension(dimension(crossAxis)) -
|
|
526
|
-
child->getLayout().measuredDimension(dimension(crossAxis))),
|
|
527
|
-
leadingEdge(crossAxis));
|
|
528
|
-
} else if (
|
|
529
|
-
node->getConfig()->isExperimentalFeatureEnabled(
|
|
530
|
-
ExperimentalFeature::AbsolutePercentageAgainstPaddingEdge) &&
|
|
531
|
-
child->isLeadingPositionDefined(crossAxis)) {
|
|
532
|
-
child->setLayoutPosition(
|
|
533
|
-
child->getLeadingPosition(
|
|
534
|
-
crossAxis,
|
|
535
|
-
node->getLayout().measuredDimension(dimension(crossAxis)))
|
|
536
|
-
.unwrap() +
|
|
537
|
-
node->getLeadingBorder(crossAxis) +
|
|
538
|
-
child
|
|
539
|
-
->getLeadingMargin(
|
|
540
|
-
crossAxis,
|
|
541
|
-
node->getLayout().measuredDimension(dimension(crossAxis)))
|
|
542
|
-
.unwrap(),
|
|
543
|
-
leadingEdge(crossAxis));
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
|
-
|
|
547
254
|
static void measureNodeWithMeasureFunc(
|
|
548
255
|
yoga::Node* const node,
|
|
549
256
|
float availableWidth,
|
|
550
257
|
float availableHeight,
|
|
551
|
-
const
|
|
552
|
-
const
|
|
258
|
+
const SizingMode widthSizingMode,
|
|
259
|
+
const SizingMode heightSizingMode,
|
|
553
260
|
const float ownerWidth,
|
|
554
261
|
const float ownerHeight,
|
|
555
262
|
LayoutData& layoutMarkerData,
|
|
@@ -559,35 +266,36 @@ static void measureNodeWithMeasureFunc(
|
|
|
559
266
|
node->hasMeasureFunc(),
|
|
560
267
|
"Expected node to have custom measure function");
|
|
561
268
|
|
|
562
|
-
if (
|
|
269
|
+
if (widthSizingMode == SizingMode::MaxContent) {
|
|
563
270
|
availableWidth = YGUndefined;
|
|
564
271
|
}
|
|
565
|
-
if (
|
|
272
|
+
if (heightSizingMode == SizingMode::MaxContent) {
|
|
566
273
|
availableHeight = YGUndefined;
|
|
567
274
|
}
|
|
568
275
|
|
|
569
|
-
const auto&
|
|
570
|
-
const
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
const float paddingAndBorderAxisColumn = padding
|
|
574
|
-
padding
|
|
276
|
+
const auto& layout = node->getLayout();
|
|
277
|
+
const float paddingAndBorderAxisRow = layout.padding(PhysicalEdge::Left) +
|
|
278
|
+
layout.padding(PhysicalEdge::Right) + layout.border(PhysicalEdge::Left) +
|
|
279
|
+
layout.border(PhysicalEdge::Right);
|
|
280
|
+
const float paddingAndBorderAxisColumn = layout.padding(PhysicalEdge::Top) +
|
|
281
|
+
layout.padding(PhysicalEdge::Bottom) + layout.border(PhysicalEdge::Top) +
|
|
282
|
+
layout.border(PhysicalEdge::Bottom);
|
|
575
283
|
|
|
576
284
|
// We want to make sure we don't call measure with negative size
|
|
577
285
|
const float innerWidth = yoga::isUndefined(availableWidth)
|
|
578
286
|
? availableWidth
|
|
579
|
-
: yoga::maxOrDefined(0, availableWidth - paddingAndBorderAxisRow);
|
|
287
|
+
: yoga::maxOrDefined(0.0f, availableWidth - paddingAndBorderAxisRow);
|
|
580
288
|
const float innerHeight = yoga::isUndefined(availableHeight)
|
|
581
289
|
? availableHeight
|
|
582
|
-
: yoga::maxOrDefined(0, availableHeight - paddingAndBorderAxisColumn);
|
|
290
|
+
: yoga::maxOrDefined(0.0f, availableHeight - paddingAndBorderAxisColumn);
|
|
583
291
|
|
|
584
|
-
if (
|
|
585
|
-
|
|
292
|
+
if (widthSizingMode == SizingMode::StretchFit &&
|
|
293
|
+
heightSizingMode == SizingMode::StretchFit) {
|
|
586
294
|
// Don't bother sizing the text if both dimensions are already defined.
|
|
587
295
|
node->setLayoutMeasuredDimension(
|
|
588
296
|
boundAxis(
|
|
589
297
|
node, FlexDirection::Row, availableWidth, ownerWidth, ownerWidth),
|
|
590
|
-
|
|
298
|
+
Dimension::Width);
|
|
591
299
|
node->setLayoutMeasuredDimension(
|
|
592
300
|
boundAxis(
|
|
593
301
|
node,
|
|
@@ -595,13 +303,16 @@ static void measureNodeWithMeasureFunc(
|
|
|
595
303
|
availableHeight,
|
|
596
304
|
ownerHeight,
|
|
597
305
|
ownerWidth),
|
|
598
|
-
|
|
306
|
+
Dimension::Height);
|
|
599
307
|
} else {
|
|
600
308
|
Event::publish<Event::MeasureCallbackStart>(node);
|
|
601
309
|
|
|
602
310
|
// Measure the text under the current constraints.
|
|
603
311
|
const YGSize measuredSize = node->measure(
|
|
604
|
-
innerWidth,
|
|
312
|
+
innerWidth,
|
|
313
|
+
measureMode(widthSizingMode),
|
|
314
|
+
innerHeight,
|
|
315
|
+
measureMode(heightSizingMode));
|
|
605
316
|
|
|
606
317
|
layoutMarkerData.measureCallbacks += 1;
|
|
607
318
|
layoutMarkerData.measureCallbackReasonsCount[static_cast<size_t>(reason)] +=
|
|
@@ -610,9 +321,9 @@ static void measureNodeWithMeasureFunc(
|
|
|
610
321
|
Event::publish<Event::MeasureCallbackEnd>(
|
|
611
322
|
node,
|
|
612
323
|
{innerWidth,
|
|
613
|
-
unscopedEnum(
|
|
324
|
+
unscopedEnum(measureMode(widthSizingMode)),
|
|
614
325
|
innerHeight,
|
|
615
|
-
unscopedEnum(
|
|
326
|
+
unscopedEnum(measureMode(heightSizingMode)),
|
|
616
327
|
measuredSize.width,
|
|
617
328
|
measuredSize.height,
|
|
618
329
|
reason});
|
|
@@ -621,25 +332,25 @@ static void measureNodeWithMeasureFunc(
|
|
|
621
332
|
boundAxis(
|
|
622
333
|
node,
|
|
623
334
|
FlexDirection::Row,
|
|
624
|
-
(
|
|
625
|
-
|
|
335
|
+
(widthSizingMode == SizingMode::MaxContent ||
|
|
336
|
+
widthSizingMode == SizingMode::FitContent)
|
|
626
337
|
? measuredSize.width + paddingAndBorderAxisRow
|
|
627
338
|
: availableWidth,
|
|
628
339
|
ownerWidth,
|
|
629
340
|
ownerWidth),
|
|
630
|
-
|
|
341
|
+
Dimension::Width);
|
|
631
342
|
|
|
632
343
|
node->setLayoutMeasuredDimension(
|
|
633
344
|
boundAxis(
|
|
634
345
|
node,
|
|
635
346
|
FlexDirection::Column,
|
|
636
|
-
(
|
|
637
|
-
|
|
347
|
+
(heightSizingMode == SizingMode::MaxContent ||
|
|
348
|
+
heightSizingMode == SizingMode::FitContent)
|
|
638
349
|
? measuredSize.height + paddingAndBorderAxisColumn
|
|
639
350
|
: availableHeight,
|
|
640
351
|
ownerHeight,
|
|
641
352
|
ownerWidth),
|
|
642
|
-
|
|
353
|
+
Dimension::Height);
|
|
643
354
|
}
|
|
644
355
|
}
|
|
645
356
|
|
|
@@ -649,73 +360,74 @@ static void measureNodeWithoutChildren(
|
|
|
649
360
|
yoga::Node* const node,
|
|
650
361
|
const float availableWidth,
|
|
651
362
|
const float availableHeight,
|
|
652
|
-
const
|
|
653
|
-
const
|
|
363
|
+
const SizingMode widthSizingMode,
|
|
364
|
+
const SizingMode heightSizingMode,
|
|
654
365
|
const float ownerWidth,
|
|
655
366
|
const float ownerHeight) {
|
|
656
|
-
const auto&
|
|
657
|
-
const auto& border = node->getLayout().border;
|
|
367
|
+
const auto& layout = node->getLayout();
|
|
658
368
|
|
|
659
369
|
float width = availableWidth;
|
|
660
|
-
if (
|
|
661
|
-
|
|
662
|
-
width = padding
|
|
663
|
-
|
|
370
|
+
if (widthSizingMode == SizingMode::MaxContent ||
|
|
371
|
+
widthSizingMode == SizingMode::FitContent) {
|
|
372
|
+
width = layout.padding(PhysicalEdge::Left) +
|
|
373
|
+
layout.padding(PhysicalEdge::Right) +
|
|
374
|
+
layout.border(PhysicalEdge::Left) + layout.border(PhysicalEdge::Right);
|
|
664
375
|
}
|
|
665
376
|
node->setLayoutMeasuredDimension(
|
|
666
377
|
boundAxis(node, FlexDirection::Row, width, ownerWidth, ownerWidth),
|
|
667
|
-
|
|
378
|
+
Dimension::Width);
|
|
668
379
|
|
|
669
380
|
float height = availableHeight;
|
|
670
|
-
if (
|
|
671
|
-
|
|
672
|
-
height = padding
|
|
673
|
-
|
|
381
|
+
if (heightSizingMode == SizingMode::MaxContent ||
|
|
382
|
+
heightSizingMode == SizingMode::FitContent) {
|
|
383
|
+
height = layout.padding(PhysicalEdge::Top) +
|
|
384
|
+
layout.padding(PhysicalEdge::Bottom) +
|
|
385
|
+
layout.border(PhysicalEdge::Top) + layout.border(PhysicalEdge::Bottom);
|
|
674
386
|
}
|
|
675
387
|
node->setLayoutMeasuredDimension(
|
|
676
388
|
boundAxis(node, FlexDirection::Column, height, ownerHeight, ownerWidth),
|
|
677
|
-
|
|
389
|
+
Dimension::Height);
|
|
678
390
|
}
|
|
679
391
|
|
|
680
392
|
static bool measureNodeWithFixedSize(
|
|
681
393
|
yoga::Node* const node,
|
|
682
394
|
const float availableWidth,
|
|
683
395
|
const float availableHeight,
|
|
684
|
-
const
|
|
685
|
-
const
|
|
396
|
+
const SizingMode widthSizingMode,
|
|
397
|
+
const SizingMode heightSizingMode,
|
|
686
398
|
const float ownerWidth,
|
|
687
399
|
const float ownerHeight) {
|
|
688
|
-
if ((
|
|
689
|
-
|
|
690
|
-
(
|
|
691
|
-
|
|
692
|
-
(
|
|
693
|
-
|
|
400
|
+
if ((yoga::isDefined(availableWidth) &&
|
|
401
|
+
widthSizingMode == SizingMode::FitContent && availableWidth <= 0.0f) ||
|
|
402
|
+
(yoga::isDefined(availableHeight) &&
|
|
403
|
+
heightSizingMode == SizingMode::FitContent && availableHeight <= 0.0f) ||
|
|
404
|
+
(widthSizingMode == SizingMode::StretchFit &&
|
|
405
|
+
heightSizingMode == SizingMode::StretchFit)) {
|
|
694
406
|
node->setLayoutMeasuredDimension(
|
|
695
407
|
boundAxis(
|
|
696
408
|
node,
|
|
697
409
|
FlexDirection::Row,
|
|
698
410
|
yoga::isUndefined(availableWidth) ||
|
|
699
|
-
(
|
|
411
|
+
(widthSizingMode == SizingMode::FitContent &&
|
|
700
412
|
availableWidth < 0.0f)
|
|
701
413
|
? 0.0f
|
|
702
414
|
: availableWidth,
|
|
703
415
|
ownerWidth,
|
|
704
416
|
ownerWidth),
|
|
705
|
-
|
|
417
|
+
Dimension::Width);
|
|
706
418
|
|
|
707
419
|
node->setLayoutMeasuredDimension(
|
|
708
420
|
boundAxis(
|
|
709
421
|
node,
|
|
710
422
|
FlexDirection::Column,
|
|
711
423
|
yoga::isUndefined(availableHeight) ||
|
|
712
|
-
(
|
|
424
|
+
(heightSizingMode == SizingMode::FitContent &&
|
|
713
425
|
availableHeight < 0.0f)
|
|
714
426
|
? 0.0f
|
|
715
427
|
: availableHeight,
|
|
716
428
|
ownerHeight,
|
|
717
429
|
ownerWidth),
|
|
718
|
-
|
|
430
|
+
Dimension::Height);
|
|
719
431
|
return true;
|
|
720
432
|
}
|
|
721
433
|
|
|
@@ -724,8 +436,8 @@ static bool measureNodeWithFixedSize(
|
|
|
724
436
|
|
|
725
437
|
static void zeroOutLayoutRecursively(yoga::Node* const node) {
|
|
726
438
|
node->getLayout() = {};
|
|
727
|
-
node->setLayoutDimension(0,
|
|
728
|
-
node->setLayoutDimension(0,
|
|
439
|
+
node->setLayoutDimension(0, Dimension::Width);
|
|
440
|
+
node->setLayoutDimension(0, Dimension::Height);
|
|
729
441
|
node->setHasNewLayout(true);
|
|
730
442
|
|
|
731
443
|
node->cloneChildrenIfNeeded();
|
|
@@ -736,24 +448,24 @@ static void zeroOutLayoutRecursively(yoga::Node* const node) {
|
|
|
736
448
|
|
|
737
449
|
static float calculateAvailableInnerDimension(
|
|
738
450
|
const yoga::Node* const node,
|
|
739
|
-
const
|
|
451
|
+
const Dimension dimension,
|
|
740
452
|
const float availableDim,
|
|
741
453
|
const float paddingAndBorder,
|
|
742
454
|
const float ownerDim) {
|
|
743
455
|
float availableInnerDim = availableDim - paddingAndBorder;
|
|
744
456
|
// Max dimension overrides predefined dimension value; Min dimension in turn
|
|
745
457
|
// overrides both of the above
|
|
746
|
-
if (
|
|
458
|
+
if (yoga::isDefined(availableInnerDim)) {
|
|
747
459
|
// We want to make sure our available height does not violate min and max
|
|
748
460
|
// constraints
|
|
749
461
|
const FloatOptional minDimensionOptional =
|
|
750
|
-
|
|
462
|
+
node->style().minDimension(dimension).resolve(ownerDim);
|
|
751
463
|
const float minInnerDim = minDimensionOptional.isUndefined()
|
|
752
464
|
? 0.0f
|
|
753
465
|
: minDimensionOptional.unwrap() - paddingAndBorder;
|
|
754
466
|
|
|
755
467
|
const FloatOptional maxDimensionOptional =
|
|
756
|
-
|
|
468
|
+
node->style().maxDimension(dimension).resolve(ownerDim);
|
|
757
469
|
|
|
758
470
|
const float maxInnerDim = maxDimensionOptional.isUndefined()
|
|
759
471
|
? FLT_MAX
|
|
@@ -769,8 +481,8 @@ static float computeFlexBasisForChildren(
|
|
|
769
481
|
yoga::Node* const node,
|
|
770
482
|
const float availableInnerWidth,
|
|
771
483
|
const float availableInnerHeight,
|
|
772
|
-
|
|
773
|
-
|
|
484
|
+
SizingMode widthSizingMode,
|
|
485
|
+
SizingMode heightSizingMode,
|
|
774
486
|
Direction direction,
|
|
775
487
|
FlexDirection mainAxis,
|
|
776
488
|
bool performLayout,
|
|
@@ -780,12 +492,12 @@ static float computeFlexBasisForChildren(
|
|
|
780
492
|
float totalOuterFlexBasis = 0.0f;
|
|
781
493
|
YGNodeRef singleFlexChild = nullptr;
|
|
782
494
|
const auto& children = node->getChildren();
|
|
783
|
-
|
|
784
|
-
isRow(mainAxis) ?
|
|
495
|
+
SizingMode sizingModeMainDim =
|
|
496
|
+
isRow(mainAxis) ? widthSizingMode : heightSizingMode;
|
|
785
497
|
// If there is only one child with flexGrow + flexShrink it means we can set
|
|
786
498
|
// the computedFlexBasis to 0 instead of measuring and shrinking / flexing the
|
|
787
499
|
// child to exactly match the remaining space
|
|
788
|
-
if (
|
|
500
|
+
if (sizingModeMainDim == SizingMode::StretchFit) {
|
|
789
501
|
for (auto child : children) {
|
|
790
502
|
if (child->isNodeFlexible()) {
|
|
791
503
|
if (singleFlexChild != nullptr ||
|
|
@@ -804,7 +516,7 @@ static float computeFlexBasisForChildren(
|
|
|
804
516
|
|
|
805
517
|
for (auto child : children) {
|
|
806
518
|
child->resolveDimension();
|
|
807
|
-
if (child->
|
|
519
|
+
if (child->style().display() == Display::None) {
|
|
808
520
|
zeroOutLayoutRecursively(child);
|
|
809
521
|
child->setHasNewLayout(true);
|
|
810
522
|
child->setDirty(false);
|
|
@@ -821,7 +533,7 @@ static float computeFlexBasisForChildren(
|
|
|
821
533
|
childDirection, mainDim, crossDim, availableInnerWidth);
|
|
822
534
|
}
|
|
823
535
|
|
|
824
|
-
if (child->
|
|
536
|
+
if (child->style().positionType() == PositionType::Absolute) {
|
|
825
537
|
continue;
|
|
826
538
|
}
|
|
827
539
|
if (child == singleFlexChild) {
|
|
@@ -832,11 +544,11 @@ static float computeFlexBasisForChildren(
|
|
|
832
544
|
node,
|
|
833
545
|
child,
|
|
834
546
|
availableInnerWidth,
|
|
835
|
-
|
|
547
|
+
widthSizingMode,
|
|
836
548
|
availableInnerHeight,
|
|
837
549
|
availableInnerWidth,
|
|
838
550
|
availableInnerHeight,
|
|
839
|
-
|
|
551
|
+
heightSizingMode,
|
|
840
552
|
direction,
|
|
841
553
|
layoutMarkerData,
|
|
842
554
|
depth,
|
|
@@ -844,9 +556,8 @@ static float computeFlexBasisForChildren(
|
|
|
844
556
|
}
|
|
845
557
|
|
|
846
558
|
totalOuterFlexBasis +=
|
|
847
|
-
(child->getLayout().computedFlexBasis +
|
|
848
|
-
child->
|
|
849
|
-
.unwrap();
|
|
559
|
+
(child->getLayout().computedFlexBasis.unwrap() +
|
|
560
|
+
child->style().computeMarginForAxis(mainAxis, availableInnerWidth));
|
|
850
561
|
}
|
|
851
562
|
|
|
852
563
|
return totalOuterFlexBasis;
|
|
@@ -861,13 +572,14 @@ static float distributeFreeSpaceSecondPass(
|
|
|
861
572
|
yoga::Node* const node,
|
|
862
573
|
const FlexDirection mainAxis,
|
|
863
574
|
const FlexDirection crossAxis,
|
|
575
|
+
const Direction direction,
|
|
864
576
|
const float mainAxisownerSize,
|
|
865
577
|
const float availableInnerMainDim,
|
|
866
578
|
const float availableInnerCrossDim,
|
|
867
579
|
const float availableInnerWidth,
|
|
868
580
|
const float availableInnerHeight,
|
|
869
581
|
const bool mainAxisOverflows,
|
|
870
|
-
const
|
|
582
|
+
const SizingMode sizingModeCrossDim,
|
|
871
583
|
const bool performLayout,
|
|
872
584
|
LayoutData& layoutMarkerData,
|
|
873
585
|
const uint32_t depth,
|
|
@@ -877,7 +589,7 @@ static float distributeFreeSpaceSecondPass(
|
|
|
877
589
|
float flexGrowFactor = 0;
|
|
878
590
|
float deltaFreeSpace = 0;
|
|
879
591
|
const bool isMainAxisRow = isRow(mainAxis);
|
|
880
|
-
const bool isNodeFlexWrap = node->
|
|
592
|
+
const bool isNodeFlexWrap = node->style().flexWrap() != Wrap::NoWrap;
|
|
881
593
|
|
|
882
594
|
for (auto currentLineChild : flexLine.itemsInFlow) {
|
|
883
595
|
childFlexBasis = boundAxisWithinMinAndMax(
|
|
@@ -888,7 +600,7 @@ static float distributeFreeSpaceSecondPass(
|
|
|
888
600
|
.unwrap();
|
|
889
601
|
float updatedMainSize = childFlexBasis;
|
|
890
602
|
|
|
891
|
-
if (
|
|
603
|
+
if (yoga::isDefined(flexLine.layout.remainingFreeSpace) &&
|
|
892
604
|
flexLine.layout.remainingFreeSpace < 0) {
|
|
893
605
|
flexShrinkScaledFactor =
|
|
894
606
|
-currentLineChild->resolveFlexShrink() * childFlexBasis;
|
|
@@ -896,7 +608,7 @@ static float distributeFreeSpaceSecondPass(
|
|
|
896
608
|
if (flexShrinkScaledFactor != 0) {
|
|
897
609
|
float childSize;
|
|
898
610
|
|
|
899
|
-
if (
|
|
611
|
+
if (yoga::isDefined(flexLine.layout.totalFlexShrinkScaledFactors) &&
|
|
900
612
|
flexLine.layout.totalFlexShrinkScaledFactors == 0) {
|
|
901
613
|
childSize = childFlexBasis + flexShrinkScaledFactor;
|
|
902
614
|
} else {
|
|
@@ -914,7 +626,7 @@ static float distributeFreeSpaceSecondPass(
|
|
|
914
626
|
availableInnerWidth);
|
|
915
627
|
}
|
|
916
628
|
} else if (
|
|
917
|
-
|
|
629
|
+
yoga::isDefined(flexLine.layout.remainingFreeSpace) &&
|
|
918
630
|
flexLine.layout.remainingFreeSpace > 0) {
|
|
919
631
|
flexGrowFactor = currentLineChild->resolveFlexGrow();
|
|
920
632
|
|
|
@@ -933,58 +645,56 @@ static float distributeFreeSpaceSecondPass(
|
|
|
933
645
|
|
|
934
646
|
deltaFreeSpace += updatedMainSize - childFlexBasis;
|
|
935
647
|
|
|
936
|
-
const float marginMain =
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
currentLineChild->getMarginForAxis(crossAxis, availableInnerWidth)
|
|
941
|
-
.unwrap();
|
|
648
|
+
const float marginMain = currentLineChild->style().computeMarginForAxis(
|
|
649
|
+
mainAxis, availableInnerWidth);
|
|
650
|
+
const float marginCross = currentLineChild->style().computeMarginForAxis(
|
|
651
|
+
crossAxis, availableInnerWidth);
|
|
942
652
|
|
|
943
653
|
float childCrossSize;
|
|
944
654
|
float childMainSize = updatedMainSize + marginMain;
|
|
945
|
-
|
|
946
|
-
|
|
655
|
+
SizingMode childCrossSizingMode;
|
|
656
|
+
SizingMode childMainSizingMode = SizingMode::StretchFit;
|
|
947
657
|
|
|
948
|
-
const auto& childStyle = currentLineChild->
|
|
949
|
-
if (
|
|
658
|
+
const auto& childStyle = currentLineChild->style();
|
|
659
|
+
if (childStyle.aspectRatio().isDefined()) {
|
|
950
660
|
childCrossSize = isMainAxisRow
|
|
951
661
|
? (childMainSize - marginMain) / childStyle.aspectRatio().unwrap()
|
|
952
662
|
: (childMainSize - marginMain) * childStyle.aspectRatio().unwrap();
|
|
953
|
-
|
|
663
|
+
childCrossSizingMode = SizingMode::StretchFit;
|
|
954
664
|
|
|
955
665
|
childCrossSize += marginCross;
|
|
956
666
|
} else if (
|
|
957
667
|
!std::isnan(availableInnerCrossDim) &&
|
|
958
|
-
!
|
|
959
|
-
|
|
960
|
-
|
|
668
|
+
!currentLineChild->hasDefiniteLength(
|
|
669
|
+
dimension(crossAxis), availableInnerCrossDim) &&
|
|
670
|
+
sizingModeCrossDim == SizingMode::StretchFit &&
|
|
961
671
|
!(isNodeFlexWrap && mainAxisOverflows) &&
|
|
962
672
|
resolveChildAlignment(node, currentLineChild) == Align::Stretch &&
|
|
963
|
-
currentLineChild->
|
|
964
|
-
|
|
673
|
+
!currentLineChild->style().flexStartMarginIsAuto(
|
|
674
|
+
crossAxis, direction) &&
|
|
675
|
+
!currentLineChild->style().flexEndMarginIsAuto(crossAxis, direction)) {
|
|
965
676
|
childCrossSize = availableInnerCrossDim;
|
|
966
|
-
|
|
967
|
-
} else if (!
|
|
968
|
-
|
|
677
|
+
childCrossSizingMode = SizingMode::StretchFit;
|
|
678
|
+
} else if (!currentLineChild->hasDefiniteLength(
|
|
679
|
+
dimension(crossAxis), availableInnerCrossDim)) {
|
|
969
680
|
childCrossSize = availableInnerCrossDim;
|
|
970
|
-
|
|
971
|
-
?
|
|
972
|
-
:
|
|
681
|
+
childCrossSizingMode = yoga::isUndefined(childCrossSize)
|
|
682
|
+
? SizingMode::MaxContent
|
|
683
|
+
: SizingMode::FitContent;
|
|
973
684
|
} else {
|
|
974
685
|
childCrossSize =
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
availableInnerCrossDim)
|
|
686
|
+
currentLineChild->getResolvedDimension(dimension(crossAxis))
|
|
687
|
+
.resolve(availableInnerCrossDim)
|
|
978
688
|
.unwrap() +
|
|
979
689
|
marginCross;
|
|
980
690
|
const bool isLoosePercentageMeasurement =
|
|
981
|
-
currentLineChild->getResolvedDimension(dimension(crossAxis)).unit ==
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
691
|
+
currentLineChild->getResolvedDimension(dimension(crossAxis)).unit() ==
|
|
692
|
+
Unit::Percent &&
|
|
693
|
+
sizingModeCrossDim != SizingMode::StretchFit;
|
|
694
|
+
childCrossSizingMode =
|
|
985
695
|
yoga::isUndefined(childCrossSize) || isLoosePercentageMeasurement
|
|
986
|
-
?
|
|
987
|
-
:
|
|
696
|
+
? SizingMode::MaxContent
|
|
697
|
+
: SizingMode::StretchFit;
|
|
988
698
|
}
|
|
989
699
|
|
|
990
700
|
constrainMaxSizeForMode(
|
|
@@ -992,30 +702,31 @@ static float distributeFreeSpaceSecondPass(
|
|
|
992
702
|
mainAxis,
|
|
993
703
|
availableInnerMainDim,
|
|
994
704
|
availableInnerWidth,
|
|
995
|
-
&
|
|
705
|
+
&childMainSizingMode,
|
|
996
706
|
&childMainSize);
|
|
997
707
|
constrainMaxSizeForMode(
|
|
998
708
|
currentLineChild,
|
|
999
709
|
crossAxis,
|
|
1000
710
|
availableInnerCrossDim,
|
|
1001
711
|
availableInnerWidth,
|
|
1002
|
-
&
|
|
712
|
+
&childCrossSizingMode,
|
|
1003
713
|
&childCrossSize);
|
|
1004
714
|
|
|
1005
715
|
const bool requiresStretchLayout =
|
|
1006
|
-
!
|
|
1007
|
-
|
|
716
|
+
!currentLineChild->hasDefiniteLength(
|
|
717
|
+
dimension(crossAxis), availableInnerCrossDim) &&
|
|
1008
718
|
resolveChildAlignment(node, currentLineChild) == Align::Stretch &&
|
|
1009
|
-
currentLineChild->
|
|
1010
|
-
|
|
719
|
+
!currentLineChild->style().flexStartMarginIsAuto(
|
|
720
|
+
crossAxis, direction) &&
|
|
721
|
+
!currentLineChild->style().flexEndMarginIsAuto(crossAxis, direction);
|
|
1011
722
|
|
|
1012
723
|
const float childWidth = isMainAxisRow ? childMainSize : childCrossSize;
|
|
1013
724
|
const float childHeight = !isMainAxisRow ? childMainSize : childCrossSize;
|
|
1014
725
|
|
|
1015
|
-
const
|
|
1016
|
-
isMainAxisRow ?
|
|
1017
|
-
const
|
|
1018
|
-
!isMainAxisRow ?
|
|
726
|
+
const SizingMode childWidthSizingMode =
|
|
727
|
+
isMainAxisRow ? childMainSizingMode : childCrossSizingMode;
|
|
728
|
+
const SizingMode childHeightSizingMode =
|
|
729
|
+
!isMainAxisRow ? childMainSizingMode : childCrossSizingMode;
|
|
1019
730
|
|
|
1020
731
|
const bool isLayoutPass = performLayout && !requiresStretchLayout;
|
|
1021
732
|
// Recursively call the layout algorithm for this child with the updated
|
|
@@ -1025,8 +736,8 @@ static float distributeFreeSpaceSecondPass(
|
|
|
1025
736
|
childWidth,
|
|
1026
737
|
childHeight,
|
|
1027
738
|
node->getLayout().direction(),
|
|
1028
|
-
|
|
1029
|
-
|
|
739
|
+
childWidthSizingMode,
|
|
740
|
+
childHeightSizingMode,
|
|
1030
741
|
availableInnerWidth,
|
|
1031
742
|
availableInnerHeight,
|
|
1032
743
|
isLayoutPass,
|
|
@@ -1070,7 +781,7 @@ static void distributeFreeSpaceFirstPass(
|
|
|
1070
781
|
-currentLineChild->resolveFlexShrink() * childFlexBasis;
|
|
1071
782
|
|
|
1072
783
|
// Is this child able to shrink?
|
|
1073
|
-
if (
|
|
784
|
+
if (yoga::isDefined(flexShrinkScaledFactor) &&
|
|
1074
785
|
flexShrinkScaledFactor != 0) {
|
|
1075
786
|
baseMainSize = childFlexBasis +
|
|
1076
787
|
flexLine.layout.remainingFreeSpace /
|
|
@@ -1082,8 +793,7 @@ static void distributeFreeSpaceFirstPass(
|
|
|
1082
793
|
baseMainSize,
|
|
1083
794
|
availableInnerMainDim,
|
|
1084
795
|
availableInnerWidth);
|
|
1085
|
-
if (
|
|
1086
|
-
!yoga::isUndefined(boundMainSize) &&
|
|
796
|
+
if (yoga::isDefined(baseMainSize) && yoga::isDefined(boundMainSize) &&
|
|
1087
797
|
baseMainSize != boundMainSize) {
|
|
1088
798
|
// By excluding this item's size and flex factor from remaining, this
|
|
1089
799
|
// item's min/max constraints should also trigger in the second pass
|
|
@@ -1096,12 +806,12 @@ static void distributeFreeSpaceFirstPass(
|
|
|
1096
806
|
}
|
|
1097
807
|
}
|
|
1098
808
|
} else if (
|
|
1099
|
-
|
|
809
|
+
yoga::isDefined(flexLine.layout.remainingFreeSpace) &&
|
|
1100
810
|
flexLine.layout.remainingFreeSpace > 0) {
|
|
1101
811
|
flexGrowFactor = currentLineChild->resolveFlexGrow();
|
|
1102
812
|
|
|
1103
813
|
// Is this child able to grow?
|
|
1104
|
-
if (
|
|
814
|
+
if (yoga::isDefined(flexGrowFactor) && flexGrowFactor != 0) {
|
|
1105
815
|
baseMainSize = childFlexBasis +
|
|
1106
816
|
flexLine.layout.remainingFreeSpace /
|
|
1107
817
|
flexLine.layout.totalFlexGrowFactors * flexGrowFactor;
|
|
@@ -1112,8 +822,7 @@ static void distributeFreeSpaceFirstPass(
|
|
|
1112
822
|
availableInnerMainDim,
|
|
1113
823
|
availableInnerWidth);
|
|
1114
824
|
|
|
1115
|
-
if (
|
|
1116
|
-
!yoga::isUndefined(boundMainSize) &&
|
|
825
|
+
if (yoga::isDefined(baseMainSize) && yoga::isDefined(boundMainSize) &&
|
|
1117
826
|
baseMainSize != boundMainSize) {
|
|
1118
827
|
// By excluding this item's size and flex factor from remaining, this
|
|
1119
828
|
// item's min/max constraints should also trigger in the second pass
|
|
@@ -1155,13 +864,14 @@ static void resolveFlexibleLength(
|
|
|
1155
864
|
FlexLine& flexLine,
|
|
1156
865
|
const FlexDirection mainAxis,
|
|
1157
866
|
const FlexDirection crossAxis,
|
|
867
|
+
const Direction direction,
|
|
1158
868
|
const float mainAxisownerSize,
|
|
1159
869
|
const float availableInnerMainDim,
|
|
1160
870
|
const float availableInnerCrossDim,
|
|
1161
871
|
const float availableInnerWidth,
|
|
1162
872
|
const float availableInnerHeight,
|
|
1163
873
|
const bool mainAxisOverflows,
|
|
1164
|
-
const
|
|
874
|
+
const SizingMode sizingModeCrossDim,
|
|
1165
875
|
const bool performLayout,
|
|
1166
876
|
LayoutData& layoutMarkerData,
|
|
1167
877
|
const uint32_t depth,
|
|
@@ -1181,13 +891,14 @@ static void resolveFlexibleLength(
|
|
|
1181
891
|
node,
|
|
1182
892
|
mainAxis,
|
|
1183
893
|
crossAxis,
|
|
894
|
+
direction,
|
|
1184
895
|
mainAxisownerSize,
|
|
1185
896
|
availableInnerMainDim,
|
|
1186
897
|
availableInnerCrossDim,
|
|
1187
898
|
availableInnerWidth,
|
|
1188
899
|
availableInnerHeight,
|
|
1189
900
|
mainAxisOverflows,
|
|
1190
|
-
|
|
901
|
+
sizingModeCrossDim,
|
|
1191
902
|
performLayout,
|
|
1192
903
|
layoutMarkerData,
|
|
1193
904
|
depth,
|
|
@@ -1202,28 +913,33 @@ static void justifyMainAxis(
|
|
|
1202
913
|
const size_t startOfLineIndex,
|
|
1203
914
|
const FlexDirection mainAxis,
|
|
1204
915
|
const FlexDirection crossAxis,
|
|
1205
|
-
const
|
|
1206
|
-
const
|
|
916
|
+
const Direction direction,
|
|
917
|
+
const SizingMode sizingModeMainDim,
|
|
918
|
+
const SizingMode sizingModeCrossDim,
|
|
1207
919
|
const float mainAxisownerSize,
|
|
1208
920
|
const float ownerWidth,
|
|
1209
921
|
const float availableInnerMainDim,
|
|
1210
922
|
const float availableInnerCrossDim,
|
|
1211
923
|
const float availableInnerWidth,
|
|
1212
924
|
const bool performLayout) {
|
|
1213
|
-
const auto& style = node->
|
|
925
|
+
const auto& style = node->style();
|
|
926
|
+
|
|
1214
927
|
const float leadingPaddingAndBorderMain =
|
|
1215
|
-
node->
|
|
928
|
+
node->style().computeFlexStartPaddingAndBorder(
|
|
929
|
+
mainAxis, direction, ownerWidth);
|
|
1216
930
|
const float trailingPaddingAndBorderMain =
|
|
1217
|
-
node->
|
|
1218
|
-
|
|
931
|
+
node->style().computeFlexEndPaddingAndBorder(
|
|
932
|
+
mainAxis, direction, ownerWidth);
|
|
933
|
+
|
|
934
|
+
const float gap = node->style().computeGapForAxis(mainAxis);
|
|
1219
935
|
// If we are using "at most" rules in the main axis, make sure that
|
|
1220
936
|
// remainingFreeSpace is 0 when min main dimension is not given
|
|
1221
|
-
if (
|
|
937
|
+
if (sizingModeMainDim == SizingMode::FitContent &&
|
|
1222
938
|
flexLine.layout.remainingFreeSpace > 0) {
|
|
1223
|
-
if (
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
939
|
+
if (style.minDimension(dimension(mainAxis)).isDefined() &&
|
|
940
|
+
style.minDimension(dimension(mainAxis))
|
|
941
|
+
.resolve(mainAxisownerSize)
|
|
942
|
+
.isDefined()) {
|
|
1227
943
|
// This condition makes sure that if the size of main dimension(after
|
|
1228
944
|
// considering child nodes main dim, leading and trailing padding etc)
|
|
1229
945
|
// falls below min dimension, then the remainingFreeSpace is reassigned
|
|
@@ -1231,15 +947,14 @@ static void justifyMainAxis(
|
|
|
1231
947
|
|
|
1232
948
|
// `minAvailableMainDim` denotes minimum available space in which child
|
|
1233
949
|
// can be laid out, it will exclude space consumed by padding and border.
|
|
1234
|
-
const float minAvailableMainDim =
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
.unwrap() -
|
|
950
|
+
const float minAvailableMainDim = style.minDimension(dimension(mainAxis))
|
|
951
|
+
.resolve(mainAxisownerSize)
|
|
952
|
+
.unwrap() -
|
|
1238
953
|
leadingPaddingAndBorderMain - trailingPaddingAndBorderMain;
|
|
1239
954
|
const float occupiedSpaceByChildNodes =
|
|
1240
955
|
availableInnerMainDim - flexLine.layout.remainingFreeSpace;
|
|
1241
956
|
flexLine.layout.remainingFreeSpace = yoga::maxOrDefined(
|
|
1242
|
-
0, minAvailableMainDim - occupiedSpaceByChildNodes);
|
|
957
|
+
0.0f, minAvailableMainDim - occupiedSpaceByChildNodes);
|
|
1243
958
|
} else {
|
|
1244
959
|
flexLine.layout.remainingFreeSpace = 0;
|
|
1245
960
|
}
|
|
@@ -1248,11 +963,11 @@ static void justifyMainAxis(
|
|
|
1248
963
|
int numberOfAutoMarginsOnCurrentLine = 0;
|
|
1249
964
|
for (size_t i = startOfLineIndex; i < flexLine.endOfLineIndex; i++) {
|
|
1250
965
|
auto child = node->getChild(i);
|
|
1251
|
-
if (child->
|
|
1252
|
-
if (child->
|
|
966
|
+
if (child->style().positionType() != PositionType::Absolute) {
|
|
967
|
+
if (child->style().flexStartMarginIsAuto(mainAxis, direction)) {
|
|
1253
968
|
numberOfAutoMarginsOnCurrentLine++;
|
|
1254
969
|
}
|
|
1255
|
-
if (child->
|
|
970
|
+
if (child->style().flexEndMarginIsAuto(mainAxis, direction)) {
|
|
1256
971
|
numberOfAutoMarginsOnCurrentLine++;
|
|
1257
972
|
}
|
|
1258
973
|
}
|
|
@@ -1263,7 +978,7 @@ static void justifyMainAxis(
|
|
|
1263
978
|
// each two elements.
|
|
1264
979
|
float leadingMainDim = 0;
|
|
1265
980
|
float betweenMainDim = gap;
|
|
1266
|
-
const Justify justifyContent = node->
|
|
981
|
+
const Justify justifyContent = node->style().justifyContent();
|
|
1267
982
|
|
|
1268
983
|
if (numberOfAutoMarginsOnCurrentLine == 0) {
|
|
1269
984
|
switch (justifyContent) {
|
|
@@ -1276,7 +991,7 @@ static void justifyMainAxis(
|
|
|
1276
991
|
case Justify::SpaceBetween:
|
|
1277
992
|
if (flexLine.itemsInFlow.size() > 1) {
|
|
1278
993
|
betweenMainDim +=
|
|
1279
|
-
yoga::maxOrDefined(flexLine.layout.remainingFreeSpace, 0) /
|
|
994
|
+
yoga::maxOrDefined(flexLine.layout.remainingFreeSpace, 0.0f) /
|
|
1280
995
|
static_cast<float>(flexLine.itemsInFlow.size() - 1);
|
|
1281
996
|
}
|
|
1282
997
|
break;
|
|
@@ -1305,79 +1020,76 @@ static void justifyMainAxis(
|
|
|
1305
1020
|
bool isNodeBaselineLayout = isBaselineLayout(node);
|
|
1306
1021
|
for (size_t i = startOfLineIndex; i < flexLine.endOfLineIndex; i++) {
|
|
1307
1022
|
const auto child = node->getChild(i);
|
|
1308
|
-
const Style& childStyle = child->
|
|
1023
|
+
const Style& childStyle = child->style();
|
|
1309
1024
|
const LayoutResults& childLayout = child->getLayout();
|
|
1310
1025
|
if (childStyle.display() == Display::None) {
|
|
1311
1026
|
continue;
|
|
1312
1027
|
}
|
|
1313
1028
|
if (childStyle.positionType() == PositionType::Absolute &&
|
|
1314
|
-
child->
|
|
1029
|
+
child->style().isFlexStartPositionDefined(mainAxis, direction)) {
|
|
1315
1030
|
if (performLayout) {
|
|
1316
1031
|
// In case the child is position absolute and has left/top being
|
|
1317
1032
|
// defined, we override the position to whatever the user said (and
|
|
1318
1033
|
// margin/border).
|
|
1319
1034
|
child->setLayoutPosition(
|
|
1320
|
-
child->
|
|
1321
|
-
|
|
1322
|
-
node->
|
|
1323
|
-
child->
|
|
1324
|
-
|
|
1035
|
+
child->style().computeFlexStartPosition(
|
|
1036
|
+
mainAxis, direction, availableInnerMainDim) +
|
|
1037
|
+
node->style().computeFlexStartBorder(mainAxis, direction) +
|
|
1038
|
+
child->style().computeFlexStartMargin(
|
|
1039
|
+
mainAxis, direction, availableInnerWidth),
|
|
1040
|
+
flexStartEdge(mainAxis));
|
|
1325
1041
|
}
|
|
1326
1042
|
} else {
|
|
1327
1043
|
// Now that we placed the element, we need to update the variables.
|
|
1328
1044
|
// We need to do that only for relative elements. Absolute elements do not
|
|
1329
1045
|
// take part in that phase.
|
|
1330
1046
|
if (childStyle.positionType() != PositionType::Absolute) {
|
|
1331
|
-
if (child->
|
|
1047
|
+
if (child->style().flexStartMarginIsAuto(mainAxis, direction)) {
|
|
1332
1048
|
flexLine.layout.mainDim += flexLine.layout.remainingFreeSpace /
|
|
1333
1049
|
static_cast<float>(numberOfAutoMarginsOnCurrentLine);
|
|
1334
1050
|
}
|
|
1335
1051
|
|
|
1336
1052
|
if (performLayout) {
|
|
1337
1053
|
child->setLayoutPosition(
|
|
1338
|
-
childLayout.position
|
|
1054
|
+
childLayout.position(flexStartEdge(mainAxis)) +
|
|
1339
1055
|
flexLine.layout.mainDim,
|
|
1340
|
-
|
|
1056
|
+
flexStartEdge(mainAxis));
|
|
1341
1057
|
}
|
|
1342
1058
|
|
|
1343
1059
|
if (child != flexLine.itemsInFlow.back()) {
|
|
1344
1060
|
flexLine.layout.mainDim += betweenMainDim;
|
|
1345
1061
|
}
|
|
1346
1062
|
|
|
1347
|
-
if (child->
|
|
1063
|
+
if (child->style().flexEndMarginIsAuto(mainAxis, direction)) {
|
|
1348
1064
|
flexLine.layout.mainDim += flexLine.layout.remainingFreeSpace /
|
|
1349
1065
|
static_cast<float>(numberOfAutoMarginsOnCurrentLine);
|
|
1350
1066
|
}
|
|
1351
1067
|
bool canSkipFlex =
|
|
1352
|
-
!performLayout &&
|
|
1068
|
+
!performLayout && sizingModeCrossDim == SizingMode::StretchFit;
|
|
1353
1069
|
if (canSkipFlex) {
|
|
1354
1070
|
// If we skipped the flex step, then we can't rely on the measuredDims
|
|
1355
1071
|
// because they weren't computed. This means we can't call
|
|
1356
1072
|
// dimensionWithMargin.
|
|
1357
|
-
flexLine.layout.mainDim +=
|
|
1358
|
-
|
|
1073
|
+
flexLine.layout.mainDim += child->style().computeMarginForAxis(
|
|
1074
|
+
mainAxis, availableInnerWidth) +
|
|
1359
1075
|
childLayout.computedFlexBasis.unwrap();
|
|
1360
1076
|
flexLine.layout.crossDim = availableInnerCrossDim;
|
|
1361
1077
|
} else {
|
|
1362
1078
|
// The main dimension is the sum of all the elements dimension plus
|
|
1363
1079
|
// the spacing.
|
|
1364
1080
|
flexLine.layout.mainDim +=
|
|
1365
|
-
dimensionWithMargin(
|
|
1081
|
+
child->dimensionWithMargin(mainAxis, availableInnerWidth);
|
|
1366
1082
|
|
|
1367
1083
|
if (isNodeBaselineLayout) {
|
|
1368
1084
|
// If the child is baseline aligned then the cross dimension is
|
|
1369
1085
|
// calculated by adding maxAscent and maxDescent from the baseline.
|
|
1370
1086
|
const float ascent = calculateBaseline(child) +
|
|
1371
|
-
child
|
|
1372
|
-
|
|
1373
|
-
FlexDirection::Column, availableInnerWidth)
|
|
1374
|
-
.unwrap();
|
|
1087
|
+
child->style().computeFlexStartMargin(
|
|
1088
|
+
FlexDirection::Column, direction, availableInnerWidth);
|
|
1375
1089
|
const float descent =
|
|
1376
|
-
child->getLayout().measuredDimension(
|
|
1377
|
-
child
|
|
1378
|
-
|
|
1379
|
-
FlexDirection::Column, availableInnerWidth)
|
|
1380
|
-
.unwrap() -
|
|
1090
|
+
child->getLayout().measuredDimension(Dimension::Height) +
|
|
1091
|
+
child->style().computeMarginForAxis(
|
|
1092
|
+
FlexDirection::Column, availableInnerWidth) -
|
|
1381
1093
|
ascent;
|
|
1382
1094
|
|
|
1383
1095
|
maxAscentForCurrentLine =
|
|
@@ -1390,14 +1102,15 @@ static void justifyMainAxis(
|
|
|
1390
1102
|
// when the items are not baseline aligned
|
|
1391
1103
|
flexLine.layout.crossDim = yoga::maxOrDefined(
|
|
1392
1104
|
flexLine.layout.crossDim,
|
|
1393
|
-
dimensionWithMargin(
|
|
1105
|
+
child->dimensionWithMargin(crossAxis, availableInnerWidth));
|
|
1394
1106
|
}
|
|
1395
1107
|
}
|
|
1396
1108
|
} else if (performLayout) {
|
|
1397
1109
|
child->setLayoutPosition(
|
|
1398
|
-
childLayout.position
|
|
1399
|
-
node->
|
|
1400
|
-
|
|
1110
|
+
childLayout.position(flexStartEdge(mainAxis)) +
|
|
1111
|
+
node->style().computeFlexStartBorder(mainAxis, direction) +
|
|
1112
|
+
leadingMainDim,
|
|
1113
|
+
flexStartEdge(mainAxis));
|
|
1401
1114
|
}
|
|
1402
1115
|
}
|
|
1403
1116
|
}
|
|
@@ -1444,9 +1157,9 @@ static void justifyMainAxis(
|
|
|
1444
1157
|
// depends on layout flags
|
|
1445
1158
|
// - ownerDirection: the inline (text) direction within the owner
|
|
1446
1159
|
// (left-to-right or right-to-left)
|
|
1447
|
-
// -
|
|
1160
|
+
// - widthSizingMode: indicates the sizing rules for the width (see below
|
|
1448
1161
|
// for explanation)
|
|
1449
|
-
// -
|
|
1162
|
+
// - heightSizingMode: indicates the sizing rules for the height (see below
|
|
1450
1163
|
// for explanation)
|
|
1451
1164
|
// - performLayout: specifies whether the caller is interested in just the
|
|
1452
1165
|
// dimensions of the node or it requires the entire node and its subtree to
|
|
@@ -1461,26 +1174,17 @@ static void justifyMainAxis(
|
|
|
1461
1174
|
// layout.measuredDimensions field includes any border or padding for the
|
|
1462
1175
|
// node but does not include margins.
|
|
1463
1176
|
//
|
|
1464
|
-
// The spec describes four different layout modes: "fill available", "max
|
|
1465
|
-
// content", "min content", and "fit content". Of these, we don't use "min
|
|
1466
|
-
// content" because we don't support default minimum main sizes (see above
|
|
1467
|
-
// for details). Each of our measure modes maps to a layout mode from the
|
|
1468
|
-
// spec (https://www.w3.org/TR/CSS3-sizing/#terms):
|
|
1469
|
-
// - MeasureMode::Undefined: max content
|
|
1470
|
-
// - MeasureMode::Exactly: fill available
|
|
1471
|
-
// - MeasureMode::AtMost: fit content
|
|
1472
|
-
//
|
|
1473
1177
|
// When calling calculateLayoutImpl and calculateLayoutInternal, if the
|
|
1474
1178
|
// caller passes an available size of undefined then it must also pass a
|
|
1475
|
-
// measure mode of
|
|
1179
|
+
// measure mode of SizingMode::MaxContent in that dimension.
|
|
1476
1180
|
//
|
|
1477
1181
|
static void calculateLayoutImpl(
|
|
1478
1182
|
yoga::Node* const node,
|
|
1479
1183
|
const float availableWidth,
|
|
1480
1184
|
const float availableHeight,
|
|
1481
1185
|
const Direction ownerDirection,
|
|
1482
|
-
const
|
|
1483
|
-
const
|
|
1186
|
+
const SizingMode widthSizingMode,
|
|
1187
|
+
const SizingMode heightSizingMode,
|
|
1484
1188
|
const float ownerWidth,
|
|
1485
1189
|
const float ownerHeight,
|
|
1486
1190
|
const bool performLayout,
|
|
@@ -1491,17 +1195,17 @@ static void calculateLayoutImpl(
|
|
|
1491
1195
|
yoga::assertFatalWithNode(
|
|
1492
1196
|
node,
|
|
1493
1197
|
yoga::isUndefined(availableWidth)
|
|
1494
|
-
?
|
|
1198
|
+
? widthSizingMode == SizingMode::MaxContent
|
|
1495
1199
|
: true,
|
|
1496
|
-
"availableWidth is indefinite so
|
|
1497
|
-
"
|
|
1200
|
+
"availableWidth is indefinite so widthSizingMode must be "
|
|
1201
|
+
"SizingMode::MaxContent");
|
|
1498
1202
|
yoga::assertFatalWithNode(
|
|
1499
1203
|
node,
|
|
1500
1204
|
yoga::isUndefined(availableHeight)
|
|
1501
|
-
?
|
|
1205
|
+
? heightSizingMode == SizingMode::MaxContent
|
|
1502
1206
|
: true,
|
|
1503
|
-
"availableHeight is indefinite so
|
|
1504
|
-
"
|
|
1207
|
+
"availableHeight is indefinite so heightSizingMode must be "
|
|
1208
|
+
"SizingMode::MaxContent");
|
|
1505
1209
|
|
|
1506
1210
|
(performLayout ? layoutMarkerData.layouts : layoutMarkerData.measures) += 1;
|
|
1507
1211
|
|
|
@@ -1514,51 +1218,64 @@ static void calculateLayoutImpl(
|
|
|
1514
1218
|
const FlexDirection flexColumnDirection =
|
|
1515
1219
|
resolveDirection(FlexDirection::Column, direction);
|
|
1516
1220
|
|
|
1517
|
-
const
|
|
1518
|
-
direction == Direction::LTR ?
|
|
1519
|
-
const
|
|
1221
|
+
const auto startEdge =
|
|
1222
|
+
direction == Direction::LTR ? PhysicalEdge::Left : PhysicalEdge::Right;
|
|
1223
|
+
const auto endEdge =
|
|
1224
|
+
direction == Direction::LTR ? PhysicalEdge::Right : PhysicalEdge::Left;
|
|
1520
1225
|
|
|
1521
|
-
const float marginRowLeading =
|
|
1522
|
-
|
|
1226
|
+
const float marginRowLeading = node->style().computeInlineStartMargin(
|
|
1227
|
+
flexRowDirection, direction, ownerWidth);
|
|
1523
1228
|
node->setLayoutMargin(marginRowLeading, startEdge);
|
|
1524
|
-
const float marginRowTrailing =
|
|
1525
|
-
|
|
1229
|
+
const float marginRowTrailing = node->style().computeInlineEndMargin(
|
|
1230
|
+
flexRowDirection, direction, ownerWidth);
|
|
1526
1231
|
node->setLayoutMargin(marginRowTrailing, endEdge);
|
|
1527
|
-
const float marginColumnLeading =
|
|
1528
|
-
|
|
1529
|
-
node->setLayoutMargin(marginColumnLeading,
|
|
1530
|
-
const float marginColumnTrailing =
|
|
1531
|
-
|
|
1532
|
-
node->setLayoutMargin(marginColumnTrailing,
|
|
1232
|
+
const float marginColumnLeading = node->style().computeInlineStartMargin(
|
|
1233
|
+
flexColumnDirection, direction, ownerWidth);
|
|
1234
|
+
node->setLayoutMargin(marginColumnLeading, PhysicalEdge::Top);
|
|
1235
|
+
const float marginColumnTrailing = node->style().computeInlineEndMargin(
|
|
1236
|
+
flexColumnDirection, direction, ownerWidth);
|
|
1237
|
+
node->setLayoutMargin(marginColumnTrailing, PhysicalEdge::Bottom);
|
|
1533
1238
|
|
|
1534
1239
|
const float marginAxisRow = marginRowLeading + marginRowTrailing;
|
|
1535
1240
|
const float marginAxisColumn = marginColumnLeading + marginColumnTrailing;
|
|
1536
1241
|
|
|
1537
|
-
node->setLayoutBorder(node->getLeadingBorder(flexRowDirection), startEdge);
|
|
1538
|
-
node->setLayoutBorder(node->getTrailingBorder(flexRowDirection), endEdge);
|
|
1539
|
-
node->setLayoutBorder(node->getLeadingBorder(flexColumnDirection), YGEdgeTop);
|
|
1540
1242
|
node->setLayoutBorder(
|
|
1541
|
-
node->
|
|
1243
|
+
node->style().computeInlineStartBorder(flexRowDirection, direction),
|
|
1244
|
+
startEdge);
|
|
1245
|
+
node->setLayoutBorder(
|
|
1246
|
+
node->style().computeInlineEndBorder(flexRowDirection, direction),
|
|
1247
|
+
endEdge);
|
|
1248
|
+
node->setLayoutBorder(
|
|
1249
|
+
node->style().computeInlineStartBorder(flexColumnDirection, direction),
|
|
1250
|
+
PhysicalEdge::Top);
|
|
1251
|
+
node->setLayoutBorder(
|
|
1252
|
+
node->style().computeInlineEndBorder(flexColumnDirection, direction),
|
|
1253
|
+
PhysicalEdge::Bottom);
|
|
1542
1254
|
|
|
1543
1255
|
node->setLayoutPadding(
|
|
1544
|
-
node->
|
|
1256
|
+
node->style().computeInlineStartPadding(
|
|
1257
|
+
flexRowDirection, direction, ownerWidth),
|
|
1545
1258
|
startEdge);
|
|
1546
1259
|
node->setLayoutPadding(
|
|
1547
|
-
node->
|
|
1260
|
+
node->style().computeInlineEndPadding(
|
|
1261
|
+
flexRowDirection, direction, ownerWidth),
|
|
1262
|
+
endEdge);
|
|
1548
1263
|
node->setLayoutPadding(
|
|
1549
|
-
node->
|
|
1550
|
-
|
|
1264
|
+
node->style().computeInlineStartPadding(
|
|
1265
|
+
flexColumnDirection, direction, ownerWidth),
|
|
1266
|
+
PhysicalEdge::Top);
|
|
1551
1267
|
node->setLayoutPadding(
|
|
1552
|
-
node->
|
|
1553
|
-
|
|
1268
|
+
node->style().computeInlineEndPadding(
|
|
1269
|
+
flexColumnDirection, direction, ownerWidth),
|
|
1270
|
+
PhysicalEdge::Bottom);
|
|
1554
1271
|
|
|
1555
1272
|
if (node->hasMeasureFunc()) {
|
|
1556
1273
|
measureNodeWithMeasureFunc(
|
|
1557
1274
|
node,
|
|
1558
1275
|
availableWidth - marginAxisRow,
|
|
1559
1276
|
availableHeight - marginAxisColumn,
|
|
1560
|
-
|
|
1561
|
-
|
|
1277
|
+
widthSizingMode,
|
|
1278
|
+
heightSizingMode,
|
|
1562
1279
|
ownerWidth,
|
|
1563
1280
|
ownerHeight,
|
|
1564
1281
|
layoutMarkerData,
|
|
@@ -1572,8 +1289,8 @@ static void calculateLayoutImpl(
|
|
|
1572
1289
|
node,
|
|
1573
1290
|
availableWidth - marginAxisRow,
|
|
1574
1291
|
availableHeight - marginAxisColumn,
|
|
1575
|
-
|
|
1576
|
-
|
|
1292
|
+
widthSizingMode,
|
|
1293
|
+
heightSizingMode,
|
|
1577
1294
|
ownerWidth,
|
|
1578
1295
|
ownerHeight);
|
|
1579
1296
|
return;
|
|
@@ -1586,8 +1303,8 @@ static void calculateLayoutImpl(
|
|
|
1586
1303
|
node,
|
|
1587
1304
|
availableWidth - marginAxisRow,
|
|
1588
1305
|
availableHeight - marginAxisColumn,
|
|
1589
|
-
|
|
1590
|
-
|
|
1306
|
+
widthSizingMode,
|
|
1307
|
+
heightSizingMode,
|
|
1591
1308
|
ownerWidth,
|
|
1592
1309
|
ownerHeight)) {
|
|
1593
1310
|
return;
|
|
@@ -1601,27 +1318,26 @@ static void calculateLayoutImpl(
|
|
|
1601
1318
|
|
|
1602
1319
|
// STEP 1: CALCULATE VALUES FOR REMAINDER OF ALGORITHM
|
|
1603
1320
|
const FlexDirection mainAxis =
|
|
1604
|
-
resolveDirection(node->
|
|
1321
|
+
resolveDirection(node->style().flexDirection(), direction);
|
|
1605
1322
|
const FlexDirection crossAxis = resolveCrossDirection(mainAxis, direction);
|
|
1606
1323
|
const bool isMainAxisRow = isRow(mainAxis);
|
|
1607
|
-
const bool isNodeFlexWrap = node->
|
|
1324
|
+
const bool isNodeFlexWrap = node->style().flexWrap() != Wrap::NoWrap;
|
|
1608
1325
|
|
|
1609
1326
|
const float mainAxisownerSize = isMainAxisRow ? ownerWidth : ownerHeight;
|
|
1610
1327
|
const float crossAxisownerSize = isMainAxisRow ? ownerHeight : ownerWidth;
|
|
1611
1328
|
|
|
1612
1329
|
const float paddingAndBorderAxisMain =
|
|
1613
1330
|
paddingAndBorderForAxis(node, mainAxis, ownerWidth);
|
|
1614
|
-
const float leadingPaddingAndBorderCross =
|
|
1615
|
-
node->getLeadingPaddingAndBorder(crossAxis, ownerWidth).unwrap();
|
|
1616
|
-
const float trailingPaddingAndBorderCross =
|
|
1617
|
-
node->getTrailingPaddingAndBorder(crossAxis, ownerWidth).unwrap();
|
|
1618
1331
|
const float paddingAndBorderAxisCross =
|
|
1619
|
-
|
|
1332
|
+
paddingAndBorderForAxis(node, crossAxis, ownerWidth);
|
|
1333
|
+
const float leadingPaddingAndBorderCross =
|
|
1334
|
+
node->style().computeFlexStartPaddingAndBorder(
|
|
1335
|
+
crossAxis, direction, ownerWidth);
|
|
1620
1336
|
|
|
1621
|
-
|
|
1622
|
-
isMainAxisRow ?
|
|
1623
|
-
|
|
1624
|
-
isMainAxisRow ?
|
|
1337
|
+
SizingMode sizingModeMainDim =
|
|
1338
|
+
isMainAxisRow ? widthSizingMode : heightSizingMode;
|
|
1339
|
+
SizingMode sizingModeCrossDim =
|
|
1340
|
+
isMainAxisRow ? heightSizingMode : widthSizingMode;
|
|
1625
1341
|
|
|
1626
1342
|
const float paddingAndBorderAxisRow =
|
|
1627
1343
|
isMainAxisRow ? paddingAndBorderAxisMain : paddingAndBorderAxisCross;
|
|
@@ -1632,13 +1348,13 @@ static void calculateLayoutImpl(
|
|
|
1632
1348
|
|
|
1633
1349
|
float availableInnerWidth = calculateAvailableInnerDimension(
|
|
1634
1350
|
node,
|
|
1635
|
-
|
|
1351
|
+
Dimension::Width,
|
|
1636
1352
|
availableWidth - marginAxisRow,
|
|
1637
1353
|
paddingAndBorderAxisRow,
|
|
1638
1354
|
ownerWidth);
|
|
1639
1355
|
float availableInnerHeight = calculateAvailableInnerDimension(
|
|
1640
1356
|
node,
|
|
1641
|
-
|
|
1357
|
+
Dimension::Height,
|
|
1642
1358
|
availableHeight - marginAxisColumn,
|
|
1643
1359
|
paddingAndBorderAxisColumn,
|
|
1644
1360
|
ownerHeight);
|
|
@@ -1656,8 +1372,8 @@ static void calculateLayoutImpl(
|
|
|
1656
1372
|
node,
|
|
1657
1373
|
availableInnerWidth,
|
|
1658
1374
|
availableInnerHeight,
|
|
1659
|
-
|
|
1660
|
-
|
|
1375
|
+
widthSizingMode,
|
|
1376
|
+
heightSizingMode,
|
|
1661
1377
|
direction,
|
|
1662
1378
|
mainAxis,
|
|
1663
1379
|
performLayout,
|
|
@@ -1666,18 +1382,17 @@ static void calculateLayoutImpl(
|
|
|
1666
1382
|
generationCount);
|
|
1667
1383
|
|
|
1668
1384
|
if (childCount > 1) {
|
|
1669
|
-
totalMainDim +=
|
|
1670
|
-
node->getGapForAxis(mainAxis, availableInnerCrossDim).unwrap() *
|
|
1385
|
+
totalMainDim += node->style().computeGapForAxis(mainAxis) *
|
|
1671
1386
|
static_cast<float>(childCount - 1);
|
|
1672
1387
|
}
|
|
1673
1388
|
|
|
1674
1389
|
const bool mainAxisOverflows =
|
|
1675
|
-
(
|
|
1390
|
+
(sizingModeMainDim != SizingMode::MaxContent) &&
|
|
1676
1391
|
totalMainDim > availableInnerMainDim;
|
|
1677
1392
|
|
|
1678
1393
|
if (isNodeFlexWrap && mainAxisOverflows &&
|
|
1679
|
-
|
|
1680
|
-
|
|
1394
|
+
sizingModeMainDim == SizingMode::FitContent) {
|
|
1395
|
+
sizingModeMainDim = SizingMode::StretchFit;
|
|
1681
1396
|
}
|
|
1682
1397
|
// STEP 4: COLLECT FLEX ITEMS INTO FLEX LINES
|
|
1683
1398
|
|
|
@@ -1691,8 +1406,7 @@ static void calculateLayoutImpl(
|
|
|
1691
1406
|
// Accumulated cross dimensions of all lines so far.
|
|
1692
1407
|
float totalLineCrossDim = 0;
|
|
1693
1408
|
|
|
1694
|
-
const float crossAxisGap =
|
|
1695
|
-
node->getGapForAxis(crossAxis, availableInnerCrossDim).unwrap();
|
|
1409
|
+
const float crossAxisGap = node->style().computeGapForAxis(crossAxis);
|
|
1696
1410
|
|
|
1697
1411
|
// Max main dimension of all the lines.
|
|
1698
1412
|
float maxLineMainDim = 0;
|
|
@@ -1712,7 +1426,7 @@ static void calculateLayoutImpl(
|
|
|
1712
1426
|
// If we don't need to measure the cross axis, we can skip the entire flex
|
|
1713
1427
|
// step.
|
|
1714
1428
|
const bool canSkipFlex =
|
|
1715
|
-
!performLayout &&
|
|
1429
|
+
!performLayout && sizingModeCrossDim == SizingMode::StretchFit;
|
|
1716
1430
|
|
|
1717
1431
|
// STEP 5: RESOLVING FLEXIBLE LENGTHS ON MAIN AXIS
|
|
1718
1432
|
// Calculate the remaining available space that needs to be allocated. If
|
|
@@ -1722,23 +1436,19 @@ static void calculateLayoutImpl(
|
|
|
1722
1436
|
bool sizeBasedOnContent = false;
|
|
1723
1437
|
// If we don't measure with exact main dimension we want to ensure we don't
|
|
1724
1438
|
// violate min and max
|
|
1725
|
-
if (
|
|
1726
|
-
const auto& style = node->
|
|
1439
|
+
if (sizingModeMainDim != SizingMode::StretchFit) {
|
|
1440
|
+
const auto& style = node->style();
|
|
1727
1441
|
const float minInnerWidth =
|
|
1728
|
-
|
|
1729
|
-
.unwrap() -
|
|
1442
|
+
style.minDimension(Dimension::Width).resolve(ownerWidth).unwrap() -
|
|
1730
1443
|
paddingAndBorderAxisRow;
|
|
1731
1444
|
const float maxInnerWidth =
|
|
1732
|
-
|
|
1733
|
-
.unwrap() -
|
|
1445
|
+
style.maxDimension(Dimension::Width).resolve(ownerWidth).unwrap() -
|
|
1734
1446
|
paddingAndBorderAxisRow;
|
|
1735
1447
|
const float minInnerHeight =
|
|
1736
|
-
|
|
1737
|
-
.unwrap() -
|
|
1448
|
+
style.minDimension(Dimension::Height).resolve(ownerHeight).unwrap() -
|
|
1738
1449
|
paddingAndBorderAxisColumn;
|
|
1739
1450
|
const float maxInnerHeight =
|
|
1740
|
-
|
|
1741
|
-
.unwrap() -
|
|
1451
|
+
style.maxDimension(Dimension::Height).resolve(ownerHeight).unwrap() -
|
|
1742
1452
|
paddingAndBorderAxisColumn;
|
|
1743
1453
|
|
|
1744
1454
|
const float minInnerMainDim =
|
|
@@ -1746,11 +1456,11 @@ static void calculateLayoutImpl(
|
|
|
1746
1456
|
const float maxInnerMainDim =
|
|
1747
1457
|
isMainAxisRow ? maxInnerWidth : maxInnerHeight;
|
|
1748
1458
|
|
|
1749
|
-
if (
|
|
1459
|
+
if (yoga::isDefined(minInnerMainDim) &&
|
|
1750
1460
|
flexLine.sizeConsumed < minInnerMainDim) {
|
|
1751
1461
|
availableInnerMainDim = minInnerMainDim;
|
|
1752
1462
|
} else if (
|
|
1753
|
-
|
|
1463
|
+
yoga::isDefined(maxInnerMainDim) &&
|
|
1754
1464
|
flexLine.sizeConsumed > maxInnerMainDim) {
|
|
1755
1465
|
availableInnerMainDim = maxInnerMainDim;
|
|
1756
1466
|
} else {
|
|
@@ -1758,9 +1468,9 @@ static void calculateLayoutImpl(
|
|
|
1758
1468
|
node->hasErrata(Errata::StretchFlexBasis);
|
|
1759
1469
|
|
|
1760
1470
|
if (!useLegacyStretchBehaviour &&
|
|
1761
|
-
((
|
|
1471
|
+
((yoga::isDefined(flexLine.layout.totalFlexGrowFactors) &&
|
|
1762
1472
|
flexLine.layout.totalFlexGrowFactors == 0) ||
|
|
1763
|
-
(
|
|
1473
|
+
(yoga::isDefined(node->resolveFlexGrow()) &&
|
|
1764
1474
|
node->resolveFlexGrow() == 0))) {
|
|
1765
1475
|
// If we don't have any children to flex or we can't flex the node
|
|
1766
1476
|
// itself, space we've used is all space we need. Root node also
|
|
@@ -1772,7 +1482,7 @@ static void calculateLayoutImpl(
|
|
|
1772
1482
|
}
|
|
1773
1483
|
}
|
|
1774
1484
|
|
|
1775
|
-
if (!sizeBasedOnContent &&
|
|
1485
|
+
if (!sizeBasedOnContent && yoga::isDefined(availableInnerMainDim)) {
|
|
1776
1486
|
flexLine.layout.remainingFreeSpace =
|
|
1777
1487
|
availableInnerMainDim - flexLine.sizeConsumed;
|
|
1778
1488
|
} else if (flexLine.sizeConsumed < 0) {
|
|
@@ -1789,13 +1499,14 @@ static void calculateLayoutImpl(
|
|
|
1789
1499
|
flexLine,
|
|
1790
1500
|
mainAxis,
|
|
1791
1501
|
crossAxis,
|
|
1502
|
+
direction,
|
|
1792
1503
|
mainAxisownerSize,
|
|
1793
1504
|
availableInnerMainDim,
|
|
1794
1505
|
availableInnerCrossDim,
|
|
1795
1506
|
availableInnerWidth,
|
|
1796
1507
|
availableInnerHeight,
|
|
1797
1508
|
mainAxisOverflows,
|
|
1798
|
-
|
|
1509
|
+
sizingModeCrossDim,
|
|
1799
1510
|
performLayout,
|
|
1800
1511
|
layoutMarkerData,
|
|
1801
1512
|
depth,
|
|
@@ -1803,7 +1514,7 @@ static void calculateLayoutImpl(
|
|
|
1803
1514
|
}
|
|
1804
1515
|
|
|
1805
1516
|
node->setLayoutHadOverflow(
|
|
1806
|
-
node->getLayout().hadOverflow()
|
|
1517
|
+
node->getLayout().hadOverflow() ||
|
|
1807
1518
|
(flexLine.layout.remainingFreeSpace < 0));
|
|
1808
1519
|
|
|
1809
1520
|
// STEP 6: MAIN-AXIS JUSTIFICATION & CROSS-AXIS SIZE DETERMINATION
|
|
@@ -1819,8 +1530,9 @@ static void calculateLayoutImpl(
|
|
|
1819
1530
|
startOfLineIndex,
|
|
1820
1531
|
mainAxis,
|
|
1821
1532
|
crossAxis,
|
|
1822
|
-
|
|
1823
|
-
|
|
1533
|
+
direction,
|
|
1534
|
+
sizingModeMainDim,
|
|
1535
|
+
sizingModeCrossDim,
|
|
1824
1536
|
mainAxisownerSize,
|
|
1825
1537
|
ownerWidth,
|
|
1826
1538
|
availableInnerMainDim,
|
|
@@ -1829,8 +1541,8 @@ static void calculateLayoutImpl(
|
|
|
1829
1541
|
performLayout);
|
|
1830
1542
|
|
|
1831
1543
|
float containerCrossAxis = availableInnerCrossDim;
|
|
1832
|
-
if (
|
|
1833
|
-
|
|
1544
|
+
if (sizingModeCrossDim == SizingMode::MaxContent ||
|
|
1545
|
+
sizingModeCrossDim == SizingMode::FitContent) {
|
|
1834
1546
|
// Compute the cross axis from the max cross dimension of the children.
|
|
1835
1547
|
containerCrossAxis =
|
|
1836
1548
|
boundAxis(
|
|
@@ -1843,53 +1555,58 @@ static void calculateLayoutImpl(
|
|
|
1843
1555
|
}
|
|
1844
1556
|
|
|
1845
1557
|
// If there's no flex wrap, the cross dimension is defined by the container.
|
|
1846
|
-
if (!isNodeFlexWrap &&
|
|
1558
|
+
if (!isNodeFlexWrap && sizingModeCrossDim == SizingMode::StretchFit) {
|
|
1847
1559
|
flexLine.layout.crossDim = availableInnerCrossDim;
|
|
1848
1560
|
}
|
|
1849
1561
|
|
|
1850
|
-
//
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1562
|
+
// As-per https://www.w3.org/TR/css-flexbox-1/#cross-sizing, the
|
|
1563
|
+
// cross-size of the line within a single-line container should be bound to
|
|
1564
|
+
// min/max constraints before alignment within the line. In a multi-line
|
|
1565
|
+
// container, affecting alignment between the lines.
|
|
1566
|
+
if (!isNodeFlexWrap) {
|
|
1567
|
+
flexLine.layout.crossDim =
|
|
1568
|
+
boundAxis(
|
|
1569
|
+
node,
|
|
1570
|
+
crossAxis,
|
|
1571
|
+
flexLine.layout.crossDim + paddingAndBorderAxisCross,
|
|
1572
|
+
crossAxisownerSize,
|
|
1573
|
+
ownerWidth) -
|
|
1574
|
+
paddingAndBorderAxisCross;
|
|
1575
|
+
}
|
|
1859
1576
|
|
|
1860
1577
|
// STEP 7: CROSS-AXIS ALIGNMENT
|
|
1861
1578
|
// We can skip child alignment if we're just measuring the container.
|
|
1862
1579
|
if (performLayout) {
|
|
1863
1580
|
for (size_t i = startOfLineIndex; i < endOfLineIndex; i++) {
|
|
1864
1581
|
const auto child = node->getChild(i);
|
|
1865
|
-
if (child->
|
|
1582
|
+
if (child->style().display() == Display::None) {
|
|
1866
1583
|
continue;
|
|
1867
1584
|
}
|
|
1868
|
-
if (child->
|
|
1585
|
+
if (child->style().positionType() == PositionType::Absolute) {
|
|
1869
1586
|
// If the child is absolutely positioned and has a
|
|
1870
1587
|
// top/left/bottom/right set, override all the previously computed
|
|
1871
1588
|
// positions to set it correctly.
|
|
1872
1589
|
const bool isChildLeadingPosDefined =
|
|
1873
|
-
child->
|
|
1590
|
+
child->style().isFlexStartPositionDefined(crossAxis, direction);
|
|
1874
1591
|
if (isChildLeadingPosDefined) {
|
|
1875
1592
|
child->setLayoutPosition(
|
|
1876
|
-
child->
|
|
1877
|
-
|
|
1878
|
-
node->
|
|
1879
|
-
child->
|
|
1880
|
-
|
|
1881
|
-
|
|
1593
|
+
child->style().computeFlexStartPosition(
|
|
1594
|
+
crossAxis, direction, availableInnerCrossDim) +
|
|
1595
|
+
node->style().computeFlexStartBorder(crossAxis, direction) +
|
|
1596
|
+
child->style().computeFlexStartMargin(
|
|
1597
|
+
crossAxis, direction, availableInnerWidth),
|
|
1598
|
+
flexStartEdge(crossAxis));
|
|
1882
1599
|
}
|
|
1883
1600
|
// If leading position is not defined or calculations result in Nan,
|
|
1884
1601
|
// default to border + margin
|
|
1885
1602
|
if (!isChildLeadingPosDefined ||
|
|
1886
1603
|
yoga::isUndefined(
|
|
1887
|
-
child->getLayout().position
|
|
1604
|
+
child->getLayout().position(flexStartEdge(crossAxis)))) {
|
|
1888
1605
|
child->setLayoutPosition(
|
|
1889
|
-
node->
|
|
1890
|
-
child->
|
|
1891
|
-
|
|
1892
|
-
|
|
1606
|
+
node->style().computeFlexStartBorder(crossAxis, direction) +
|
|
1607
|
+
child->style().computeFlexStartMargin(
|
|
1608
|
+
crossAxis, direction, availableInnerWidth),
|
|
1609
|
+
flexStartEdge(crossAxis));
|
|
1893
1610
|
}
|
|
1894
1611
|
} else {
|
|
1895
1612
|
float leadingCrossDim = leadingPaddingAndBorderCross;
|
|
@@ -1903,42 +1620,41 @@ static void calculateLayoutImpl(
|
|
|
1903
1620
|
// time, this time forcing the cross-axis size to be the computed
|
|
1904
1621
|
// cross size for the current line.
|
|
1905
1622
|
if (alignItem == Align::Stretch &&
|
|
1906
|
-
child->
|
|
1907
|
-
child->
|
|
1623
|
+
!child->style().flexStartMarginIsAuto(crossAxis, direction) &&
|
|
1624
|
+
!child->style().flexEndMarginIsAuto(crossAxis, direction)) {
|
|
1908
1625
|
// If the child defines a definite size for its cross axis, there's
|
|
1909
1626
|
// no need to stretch.
|
|
1910
|
-
if (!
|
|
1911
|
-
|
|
1627
|
+
if (!child->hasDefiniteLength(
|
|
1628
|
+
dimension(crossAxis), availableInnerCrossDim)) {
|
|
1912
1629
|
float childMainSize =
|
|
1913
1630
|
child->getLayout().measuredDimension(dimension(mainAxis));
|
|
1914
|
-
const auto& childStyle = child->
|
|
1915
|
-
float childCrossSize =
|
|
1916
|
-
? child->
|
|
1917
|
-
|
|
1631
|
+
const auto& childStyle = child->style();
|
|
1632
|
+
float childCrossSize = childStyle.aspectRatio().isDefined()
|
|
1633
|
+
? child->style().computeMarginForAxis(
|
|
1634
|
+
crossAxis, availableInnerWidth) +
|
|
1918
1635
|
(isMainAxisRow
|
|
1919
1636
|
? childMainSize / childStyle.aspectRatio().unwrap()
|
|
1920
1637
|
: childMainSize * childStyle.aspectRatio().unwrap())
|
|
1921
1638
|
: flexLine.layout.crossDim;
|
|
1922
1639
|
|
|
1923
|
-
childMainSize +=
|
|
1924
|
-
|
|
1925
|
-
.unwrap();
|
|
1640
|
+
childMainSize += child->style().computeMarginForAxis(
|
|
1641
|
+
mainAxis, availableInnerWidth);
|
|
1926
1642
|
|
|
1927
|
-
|
|
1928
|
-
|
|
1643
|
+
SizingMode childMainSizingMode = SizingMode::StretchFit;
|
|
1644
|
+
SizingMode childCrossSizingMode = SizingMode::StretchFit;
|
|
1929
1645
|
constrainMaxSizeForMode(
|
|
1930
1646
|
child,
|
|
1931
1647
|
mainAxis,
|
|
1932
1648
|
availableInnerMainDim,
|
|
1933
1649
|
availableInnerWidth,
|
|
1934
|
-
&
|
|
1650
|
+
&childMainSizingMode,
|
|
1935
1651
|
&childMainSize);
|
|
1936
1652
|
constrainMaxSizeForMode(
|
|
1937
1653
|
child,
|
|
1938
1654
|
crossAxis,
|
|
1939
1655
|
availableInnerCrossDim,
|
|
1940
1656
|
availableInnerWidth,
|
|
1941
|
-
&
|
|
1657
|
+
&childCrossSizingMode,
|
|
1942
1658
|
&childCrossSize);
|
|
1943
1659
|
|
|
1944
1660
|
const float childWidth =
|
|
@@ -1946,27 +1662,27 @@ static void calculateLayoutImpl(
|
|
|
1946
1662
|
const float childHeight =
|
|
1947
1663
|
!isMainAxisRow ? childMainSize : childCrossSize;
|
|
1948
1664
|
|
|
1949
|
-
auto alignContent = node->
|
|
1665
|
+
auto alignContent = node->style().alignContent();
|
|
1950
1666
|
auto crossAxisDoesNotGrow =
|
|
1951
1667
|
alignContent != Align::Stretch && isNodeFlexWrap;
|
|
1952
|
-
const
|
|
1668
|
+
const SizingMode childWidthSizingMode =
|
|
1953
1669
|
yoga::isUndefined(childWidth) ||
|
|
1954
1670
|
(!isMainAxisRow && crossAxisDoesNotGrow)
|
|
1955
|
-
?
|
|
1956
|
-
:
|
|
1957
|
-
const
|
|
1671
|
+
? SizingMode::MaxContent
|
|
1672
|
+
: SizingMode::StretchFit;
|
|
1673
|
+
const SizingMode childHeightSizingMode =
|
|
1958
1674
|
yoga::isUndefined(childHeight) ||
|
|
1959
1675
|
(isMainAxisRow && crossAxisDoesNotGrow)
|
|
1960
|
-
?
|
|
1961
|
-
:
|
|
1676
|
+
? SizingMode::MaxContent
|
|
1677
|
+
: SizingMode::StretchFit;
|
|
1962
1678
|
|
|
1963
1679
|
calculateLayoutInternal(
|
|
1964
1680
|
child,
|
|
1965
1681
|
childWidth,
|
|
1966
1682
|
childHeight,
|
|
1967
1683
|
direction,
|
|
1968
|
-
|
|
1969
|
-
|
|
1684
|
+
childWidthSizingMode,
|
|
1685
|
+
childHeightSizingMode,
|
|
1970
1686
|
availableInnerWidth,
|
|
1971
1687
|
availableInnerHeight,
|
|
1972
1688
|
true,
|
|
@@ -1977,17 +1693,17 @@ static void calculateLayoutImpl(
|
|
|
1977
1693
|
}
|
|
1978
1694
|
} else {
|
|
1979
1695
|
const float remainingCrossDim = containerCrossAxis -
|
|
1980
|
-
dimensionWithMargin(
|
|
1696
|
+
child->dimensionWithMargin(crossAxis, availableInnerWidth);
|
|
1981
1697
|
|
|
1982
|
-
if (child->
|
|
1983
|
-
child->
|
|
1698
|
+
if (child->style().flexStartMarginIsAuto(crossAxis, direction) &&
|
|
1699
|
+
child->style().flexEndMarginIsAuto(crossAxis, direction)) {
|
|
1984
1700
|
leadingCrossDim +=
|
|
1985
1701
|
yoga::maxOrDefined(0.0f, remainingCrossDim / 2);
|
|
1986
|
-
} else if (
|
|
1987
|
-
|
|
1702
|
+
} else if (child->style().flexEndMarginIsAuto(
|
|
1703
|
+
crossAxis, direction)) {
|
|
1988
1704
|
// No-Op
|
|
1989
|
-
} else if (
|
|
1990
|
-
|
|
1705
|
+
} else if (child->style().flexStartMarginIsAuto(
|
|
1706
|
+
crossAxis, direction)) {
|
|
1991
1707
|
leadingCrossDim += yoga::maxOrDefined(0.0f, remainingCrossDim);
|
|
1992
1708
|
} else if (alignItem == Align::FlexStart) {
|
|
1993
1709
|
// No-Op
|
|
@@ -1999,9 +1715,9 @@ static void calculateLayoutImpl(
|
|
|
1999
1715
|
}
|
|
2000
1716
|
// And we apply the position
|
|
2001
1717
|
child->setLayoutPosition(
|
|
2002
|
-
child->getLayout().position
|
|
1718
|
+
child->getLayout().position(flexStartEdge(crossAxis)) +
|
|
2003
1719
|
totalLineCrossDim + leadingCrossDim,
|
|
2004
|
-
|
|
1720
|
+
flexStartEdge(crossAxis));
|
|
2005
1721
|
}
|
|
2006
1722
|
}
|
|
2007
1723
|
}
|
|
@@ -2015,47 +1731,65 @@ static void calculateLayoutImpl(
|
|
|
2015
1731
|
// STEP 8: MULTI-LINE CONTENT ALIGNMENT
|
|
2016
1732
|
// currentLead stores the size of the cross dim
|
|
2017
1733
|
if (performLayout && (isNodeFlexWrap || isBaselineLayout(node))) {
|
|
2018
|
-
float
|
|
1734
|
+
float leadPerLine = 0;
|
|
2019
1735
|
float currentLead = leadingPaddingAndBorderCross;
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
1736
|
+
|
|
1737
|
+
const float unclampedCrossDim = sizingModeCrossDim == SizingMode::StretchFit
|
|
1738
|
+
? availableInnerCrossDim + paddingAndBorderAxisCross
|
|
1739
|
+
: node->hasDefiniteLength(dimension(crossAxis), crossAxisownerSize)
|
|
1740
|
+
? node->getResolvedDimension(dimension(crossAxis))
|
|
1741
|
+
.resolve(crossAxisownerSize)
|
|
1742
|
+
.unwrap()
|
|
1743
|
+
: totalLineCrossDim + paddingAndBorderAxisCross;
|
|
1744
|
+
|
|
1745
|
+
const float innerCrossDim =
|
|
1746
|
+
boundAxis(node, crossAxis, unclampedCrossDim, ownerHeight, ownerWidth) -
|
|
1747
|
+
paddingAndBorderAxisCross;
|
|
1748
|
+
|
|
1749
|
+
const float remainingAlignContentDim = innerCrossDim - totalLineCrossDim;
|
|
1750
|
+
switch (node->style().alignContent()) {
|
|
1751
|
+
case Align::FlexEnd:
|
|
1752
|
+
currentLead += remainingAlignContentDim;
|
|
1753
|
+
break;
|
|
1754
|
+
case Align::Center:
|
|
1755
|
+
currentLead += remainingAlignContentDim / 2;
|
|
1756
|
+
break;
|
|
1757
|
+
case Align::Stretch:
|
|
1758
|
+
if (innerCrossDim > totalLineCrossDim) {
|
|
1759
|
+
leadPerLine =
|
|
1760
|
+
remainingAlignContentDim / static_cast<float>(lineCount);
|
|
1761
|
+
}
|
|
1762
|
+
break;
|
|
1763
|
+
case Align::SpaceAround:
|
|
1764
|
+
if (innerCrossDim > totalLineCrossDim) {
|
|
1765
|
+
currentLead +=
|
|
1766
|
+
remainingAlignContentDim / (2 * static_cast<float>(lineCount));
|
|
1767
|
+
leadPerLine =
|
|
1768
|
+
remainingAlignContentDim / static_cast<float>(lineCount);
|
|
1769
|
+
} else {
|
|
2028
1770
|
currentLead += remainingAlignContentDim / 2;
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
remainingAlignContentDim / static_cast<float>(lineCount - 1);
|
|
2052
|
-
}
|
|
2053
|
-
break;
|
|
2054
|
-
case Align::Auto:
|
|
2055
|
-
case Align::FlexStart:
|
|
2056
|
-
case Align::Baseline:
|
|
2057
|
-
break;
|
|
2058
|
-
}
|
|
1771
|
+
}
|
|
1772
|
+
break;
|
|
1773
|
+
case Align::SpaceEvenly:
|
|
1774
|
+
if (innerCrossDim > totalLineCrossDim) {
|
|
1775
|
+
currentLead +=
|
|
1776
|
+
remainingAlignContentDim / static_cast<float>(lineCount + 1);
|
|
1777
|
+
leadPerLine =
|
|
1778
|
+
remainingAlignContentDim / static_cast<float>(lineCount + 1);
|
|
1779
|
+
} else {
|
|
1780
|
+
currentLead += remainingAlignContentDim / 2;
|
|
1781
|
+
}
|
|
1782
|
+
break;
|
|
1783
|
+
case Align::SpaceBetween:
|
|
1784
|
+
if (innerCrossDim > totalLineCrossDim && lineCount > 1) {
|
|
1785
|
+
leadPerLine =
|
|
1786
|
+
remainingAlignContentDim / static_cast<float>(lineCount - 1);
|
|
1787
|
+
}
|
|
1788
|
+
break;
|
|
1789
|
+
case Align::Auto:
|
|
1790
|
+
case Align::FlexStart:
|
|
1791
|
+
case Align::Baseline:
|
|
1792
|
+
break;
|
|
2059
1793
|
}
|
|
2060
1794
|
size_t endIndex = 0;
|
|
2061
1795
|
for (size_t i = 0; i < lineCount; i++) {
|
|
@@ -2068,32 +1802,28 @@ static void calculateLayoutImpl(
|
|
|
2068
1802
|
float maxDescentForCurrentLine = 0;
|
|
2069
1803
|
for (ii = startIndex; ii < childCount; ii++) {
|
|
2070
1804
|
const auto child = node->getChild(ii);
|
|
2071
|
-
if (child->
|
|
1805
|
+
if (child->style().display() == Display::None) {
|
|
2072
1806
|
continue;
|
|
2073
1807
|
}
|
|
2074
|
-
if (child->
|
|
1808
|
+
if (child->style().positionType() != PositionType::Absolute) {
|
|
2075
1809
|
if (child->getLineIndex() != i) {
|
|
2076
1810
|
break;
|
|
2077
1811
|
}
|
|
2078
|
-
if (isLayoutDimensionDefined(
|
|
1812
|
+
if (child->isLayoutDimensionDefined(crossAxis)) {
|
|
2079
1813
|
lineHeight = yoga::maxOrDefined(
|
|
2080
1814
|
lineHeight,
|
|
2081
1815
|
child->getLayout().measuredDimension(dimension(crossAxis)) +
|
|
2082
|
-
child->
|
|
2083
|
-
|
|
1816
|
+
child->style().computeMarginForAxis(
|
|
1817
|
+
crossAxis, availableInnerWidth));
|
|
2084
1818
|
}
|
|
2085
1819
|
if (resolveChildAlignment(node, child) == Align::Baseline) {
|
|
2086
1820
|
const float ascent = calculateBaseline(child) +
|
|
2087
|
-
child
|
|
2088
|
-
|
|
2089
|
-
FlexDirection::Column, availableInnerWidth)
|
|
2090
|
-
.unwrap();
|
|
1821
|
+
child->style().computeFlexStartMargin(
|
|
1822
|
+
FlexDirection::Column, direction, availableInnerWidth);
|
|
2091
1823
|
const float descent =
|
|
2092
|
-
child->getLayout().measuredDimension(
|
|
2093
|
-
child
|
|
2094
|
-
|
|
2095
|
-
FlexDirection::Column, availableInnerWidth)
|
|
2096
|
-
.unwrap() -
|
|
1824
|
+
child->getLayout().measuredDimension(Dimension::Height) +
|
|
1825
|
+
child->style().computeMarginForAxis(
|
|
1826
|
+
FlexDirection::Column, availableInnerWidth) -
|
|
2097
1827
|
ascent;
|
|
2098
1828
|
maxAscentForCurrentLine =
|
|
2099
1829
|
yoga::maxOrDefined(maxAscentForCurrentLine, ascent);
|
|
@@ -2105,33 +1835,32 @@ static void calculateLayoutImpl(
|
|
|
2105
1835
|
}
|
|
2106
1836
|
}
|
|
2107
1837
|
endIndex = ii;
|
|
2108
|
-
lineHeight += crossDimLead;
|
|
2109
1838
|
currentLead += i != 0 ? crossAxisGap : 0;
|
|
2110
1839
|
|
|
2111
1840
|
if (performLayout) {
|
|
2112
1841
|
for (ii = startIndex; ii < endIndex; ii++) {
|
|
2113
1842
|
const auto child = node->getChild(ii);
|
|
2114
|
-
if (child->
|
|
1843
|
+
if (child->style().display() == Display::None) {
|
|
2115
1844
|
continue;
|
|
2116
1845
|
}
|
|
2117
|
-
if (child->
|
|
1846
|
+
if (child->style().positionType() != PositionType::Absolute) {
|
|
2118
1847
|
switch (resolveChildAlignment(node, child)) {
|
|
2119
1848
|
case Align::FlexStart: {
|
|
2120
1849
|
child->setLayoutPosition(
|
|
2121
1850
|
currentLead +
|
|
2122
|
-
child->
|
|
2123
|
-
|
|
2124
|
-
|
|
1851
|
+
child->style().computeFlexStartPosition(
|
|
1852
|
+
crossAxis, direction, availableInnerWidth),
|
|
1853
|
+
flexStartEdge(crossAxis));
|
|
2125
1854
|
break;
|
|
2126
1855
|
}
|
|
2127
1856
|
case Align::FlexEnd: {
|
|
2128
1857
|
child->setLayoutPosition(
|
|
2129
1858
|
currentLead + lineHeight -
|
|
2130
|
-
child->
|
|
2131
|
-
|
|
1859
|
+
child->style().computeFlexEndMargin(
|
|
1860
|
+
crossAxis, direction, availableInnerWidth) -
|
|
2132
1861
|
child->getLayout().measuredDimension(
|
|
2133
1862
|
dimension(crossAxis)),
|
|
2134
|
-
|
|
1863
|
+
flexStartEdge(crossAxis));
|
|
2135
1864
|
break;
|
|
2136
1865
|
}
|
|
2137
1866
|
case Align::Center: {
|
|
@@ -2140,49 +1869,49 @@ static void calculateLayoutImpl(
|
|
|
2140
1869
|
|
|
2141
1870
|
child->setLayoutPosition(
|
|
2142
1871
|
currentLead + (lineHeight - childHeight) / 2,
|
|
2143
|
-
|
|
1872
|
+
flexStartEdge(crossAxis));
|
|
2144
1873
|
break;
|
|
2145
1874
|
}
|
|
2146
1875
|
case Align::Stretch: {
|
|
2147
1876
|
child->setLayoutPosition(
|
|
2148
1877
|
currentLead +
|
|
2149
|
-
child->
|
|
2150
|
-
|
|
2151
|
-
|
|
1878
|
+
child->style().computeFlexStartMargin(
|
|
1879
|
+
crossAxis, direction, availableInnerWidth),
|
|
1880
|
+
flexStartEdge(crossAxis));
|
|
2152
1881
|
|
|
2153
1882
|
// Remeasure child with the line height as it as been only
|
|
2154
1883
|
// measured with the owners height yet.
|
|
2155
|
-
if (!
|
|
2156
|
-
|
|
1884
|
+
if (!child->hasDefiniteLength(
|
|
1885
|
+
dimension(crossAxis), availableInnerCrossDim)) {
|
|
2157
1886
|
const float childWidth = isMainAxisRow
|
|
2158
1887
|
? (child->getLayout().measuredDimension(
|
|
2159
|
-
|
|
2160
|
-
child->
|
|
2161
|
-
|
|
2162
|
-
: lineHeight;
|
|
1888
|
+
Dimension::Width) +
|
|
1889
|
+
child->style().computeMarginForAxis(
|
|
1890
|
+
mainAxis, availableInnerWidth))
|
|
1891
|
+
: leadPerLine + lineHeight;
|
|
2163
1892
|
|
|
2164
1893
|
const float childHeight = !isMainAxisRow
|
|
2165
1894
|
? (child->getLayout().measuredDimension(
|
|
2166
|
-
|
|
2167
|
-
child->
|
|
2168
|
-
|
|
2169
|
-
: lineHeight;
|
|
1895
|
+
Dimension::Height) +
|
|
1896
|
+
child->style().computeMarginForAxis(
|
|
1897
|
+
crossAxis, availableInnerWidth))
|
|
1898
|
+
: leadPerLine + lineHeight;
|
|
2170
1899
|
|
|
2171
1900
|
if (!(yoga::inexactEquals(
|
|
2172
1901
|
childWidth,
|
|
2173
1902
|
child->getLayout().measuredDimension(
|
|
2174
|
-
|
|
1903
|
+
Dimension::Width)) &&
|
|
2175
1904
|
yoga::inexactEquals(
|
|
2176
1905
|
childHeight,
|
|
2177
1906
|
child->getLayout().measuredDimension(
|
|
2178
|
-
|
|
1907
|
+
Dimension::Height)))) {
|
|
2179
1908
|
calculateLayoutInternal(
|
|
2180
1909
|
child,
|
|
2181
1910
|
childWidth,
|
|
2182
1911
|
childHeight,
|
|
2183
1912
|
direction,
|
|
2184
|
-
|
|
2185
|
-
|
|
1913
|
+
SizingMode::StretchFit,
|
|
1914
|
+
SizingMode::StretchFit,
|
|
2186
1915
|
availableInnerWidth,
|
|
2187
1916
|
availableInnerHeight,
|
|
2188
1917
|
true,
|
|
@@ -2198,23 +1927,24 @@ static void calculateLayoutImpl(
|
|
|
2198
1927
|
child->setLayoutPosition(
|
|
2199
1928
|
currentLead + maxAscentForCurrentLine -
|
|
2200
1929
|
calculateBaseline(child) +
|
|
2201
|
-
child
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
1930
|
+
child->style().computeFlexStartPosition(
|
|
1931
|
+
FlexDirection::Column,
|
|
1932
|
+
direction,
|
|
1933
|
+
availableInnerCrossDim),
|
|
1934
|
+
PhysicalEdge::Top);
|
|
2206
1935
|
|
|
2207
1936
|
break;
|
|
2208
1937
|
}
|
|
2209
1938
|
case Align::Auto:
|
|
2210
1939
|
case Align::SpaceBetween:
|
|
2211
1940
|
case Align::SpaceAround:
|
|
1941
|
+
case Align::SpaceEvenly:
|
|
2212
1942
|
break;
|
|
2213
1943
|
}
|
|
2214
1944
|
}
|
|
2215
1945
|
}
|
|
2216
1946
|
}
|
|
2217
|
-
currentLead
|
|
1947
|
+
currentLead = currentLead + leadPerLine + lineHeight;
|
|
2218
1948
|
}
|
|
2219
1949
|
}
|
|
2220
1950
|
|
|
@@ -2227,7 +1957,7 @@ static void calculateLayoutImpl(
|
|
|
2227
1957
|
availableWidth - marginAxisRow,
|
|
2228
1958
|
ownerWidth,
|
|
2229
1959
|
ownerWidth),
|
|
2230
|
-
|
|
1960
|
+
Dimension::Width);
|
|
2231
1961
|
|
|
2232
1962
|
node->setLayoutMeasuredDimension(
|
|
2233
1963
|
boundAxis(
|
|
@@ -2236,13 +1966,13 @@ static void calculateLayoutImpl(
|
|
|
2236
1966
|
availableHeight - marginAxisColumn,
|
|
2237
1967
|
ownerHeight,
|
|
2238
1968
|
ownerWidth),
|
|
2239
|
-
|
|
1969
|
+
Dimension::Height);
|
|
2240
1970
|
|
|
2241
1971
|
// If the user didn't specify a width or height for the node, set the
|
|
2242
1972
|
// dimensions based on the children.
|
|
2243
|
-
if (
|
|
2244
|
-
(node->
|
|
2245
|
-
|
|
1973
|
+
if (sizingModeMainDim == SizingMode::MaxContent ||
|
|
1974
|
+
(node->style().overflow() != Overflow::Scroll &&
|
|
1975
|
+
sizingModeMainDim == SizingMode::FitContent)) {
|
|
2246
1976
|
// Clamp the size to the min/max size, if specified, and make sure it
|
|
2247
1977
|
// doesn't go below the padding and border amount.
|
|
2248
1978
|
node->setLayoutMeasuredDimension(
|
|
@@ -2251,8 +1981,8 @@ static void calculateLayoutImpl(
|
|
|
2251
1981
|
dimension(mainAxis));
|
|
2252
1982
|
|
|
2253
1983
|
} else if (
|
|
2254
|
-
|
|
2255
|
-
node->
|
|
1984
|
+
sizingModeMainDim == SizingMode::FitContent &&
|
|
1985
|
+
node->style().overflow() == Overflow::Scroll) {
|
|
2256
1986
|
node->setLayoutMeasuredDimension(
|
|
2257
1987
|
yoga::maxOrDefined(
|
|
2258
1988
|
yoga::minOrDefined(
|
|
@@ -2267,9 +1997,9 @@ static void calculateLayoutImpl(
|
|
|
2267
1997
|
dimension(mainAxis));
|
|
2268
1998
|
}
|
|
2269
1999
|
|
|
2270
|
-
if (
|
|
2271
|
-
(node->
|
|
2272
|
-
|
|
2000
|
+
if (sizingModeCrossDim == SizingMode::MaxContent ||
|
|
2001
|
+
(node->style().overflow() != Overflow::Scroll &&
|
|
2002
|
+
sizingModeCrossDim == SizingMode::FitContent)) {
|
|
2273
2003
|
// Clamp the size to the min/max size, if specified, and make sure it
|
|
2274
2004
|
// doesn't go below the padding and border amount.
|
|
2275
2005
|
node->setLayoutMeasuredDimension(
|
|
@@ -2282,8 +2012,8 @@ static void calculateLayoutImpl(
|
|
|
2282
2012
|
dimension(crossAxis));
|
|
2283
2013
|
|
|
2284
2014
|
} else if (
|
|
2285
|
-
|
|
2286
|
-
node->
|
|
2015
|
+
sizingModeCrossDim == SizingMode::FitContent &&
|
|
2016
|
+
node->style().overflow() == Overflow::Scroll) {
|
|
2287
2017
|
node->setLayoutMeasuredDimension(
|
|
2288
2018
|
yoga::maxOrDefined(
|
|
2289
2019
|
yoga::minOrDefined(
|
|
@@ -2301,57 +2031,32 @@ static void calculateLayoutImpl(
|
|
|
2301
2031
|
|
|
2302
2032
|
// As we only wrapped in normal direction yet, we need to reverse the
|
|
2303
2033
|
// positions on wrap-reverse.
|
|
2304
|
-
if (performLayout && node->
|
|
2034
|
+
if (performLayout && node->style().flexWrap() == Wrap::WrapReverse) {
|
|
2305
2035
|
for (size_t i = 0; i < childCount; i++) {
|
|
2306
2036
|
const auto child = node->getChild(i);
|
|
2307
|
-
if (child->
|
|
2037
|
+
if (child->style().positionType() != PositionType::Absolute) {
|
|
2308
2038
|
child->setLayoutPosition(
|
|
2309
2039
|
node->getLayout().measuredDimension(dimension(crossAxis)) -
|
|
2310
|
-
child->getLayout().position
|
|
2040
|
+
child->getLayout().position(flexStartEdge(crossAxis)) -
|
|
2311
2041
|
child->getLayout().measuredDimension(dimension(crossAxis)),
|
|
2312
|
-
|
|
2042
|
+
flexStartEdge(crossAxis));
|
|
2313
2043
|
}
|
|
2314
2044
|
}
|
|
2315
2045
|
}
|
|
2316
2046
|
|
|
2317
2047
|
if (performLayout) {
|
|
2318
|
-
// STEP 10:
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
child->getStyle().positionType() != PositionType::Absolute) {
|
|
2322
|
-
continue;
|
|
2323
|
-
}
|
|
2324
|
-
const bool absolutePercentageAgainstPaddingEdge =
|
|
2325
|
-
node->getConfig()->isExperimentalFeatureEnabled(
|
|
2326
|
-
ExperimentalFeature::AbsolutePercentageAgainstPaddingEdge);
|
|
2048
|
+
// STEP 10: SETTING TRAILING POSITIONS FOR CHILDREN
|
|
2049
|
+
const bool needsMainTrailingPos = needsTrailingPosition(mainAxis);
|
|
2050
|
+
const bool needsCrossTrailingPos = needsTrailingPosition(crossAxis);
|
|
2327
2051
|
|
|
2328
|
-
layoutAbsoluteChild(
|
|
2329
|
-
node,
|
|
2330
|
-
child,
|
|
2331
|
-
absolutePercentageAgainstPaddingEdge
|
|
2332
|
-
? node->getLayout().measuredDimension(YGDimensionWidth)
|
|
2333
|
-
: availableInnerWidth,
|
|
2334
|
-
isMainAxisRow ? measureModeMainDim : measureModeCrossDim,
|
|
2335
|
-
absolutePercentageAgainstPaddingEdge
|
|
2336
|
-
? node->getLayout().measuredDimension(YGDimensionHeight)
|
|
2337
|
-
: availableInnerHeight,
|
|
2338
|
-
direction,
|
|
2339
|
-
layoutMarkerData,
|
|
2340
|
-
depth,
|
|
2341
|
-
generationCount);
|
|
2342
|
-
}
|
|
2343
|
-
|
|
2344
|
-
// STEP 11: SETTING TRAILING POSITIONS FOR CHILDREN
|
|
2345
|
-
const bool needsMainTrailingPos = mainAxis == FlexDirection::RowReverse ||
|
|
2346
|
-
mainAxis == FlexDirection::ColumnReverse;
|
|
2347
|
-
const bool needsCrossTrailingPos = crossAxis == FlexDirection::RowReverse ||
|
|
2348
|
-
crossAxis == FlexDirection::ColumnReverse;
|
|
2349
|
-
|
|
2350
|
-
// Set trailing position if necessary.
|
|
2351
2052
|
if (needsMainTrailingPos || needsCrossTrailingPos) {
|
|
2352
2053
|
for (size_t i = 0; i < childCount; i++) {
|
|
2353
2054
|
const auto child = node->getChild(i);
|
|
2354
|
-
|
|
2055
|
+
// Absolute children will be handled by their containing block since we
|
|
2056
|
+
// cannot guarantee that their positions are set when their parents are
|
|
2057
|
+
// done with layout.
|
|
2058
|
+
if (child->style().display() == Display::None ||
|
|
2059
|
+
child->style().positionType() == PositionType::Absolute) {
|
|
2355
2060
|
continue;
|
|
2356
2061
|
}
|
|
2357
2062
|
if (needsMainTrailingPos) {
|
|
@@ -2363,36 +2068,25 @@ static void calculateLayoutImpl(
|
|
|
2363
2068
|
}
|
|
2364
2069
|
}
|
|
2365
2070
|
}
|
|
2366
|
-
}
|
|
2367
|
-
}
|
|
2368
|
-
|
|
2369
|
-
bool gPrintChanges = false;
|
|
2370
|
-
bool gPrintSkips = false;
|
|
2371
|
-
|
|
2372
|
-
static const char* spacer =
|
|
2373
|
-
" ";
|
|
2374
2071
|
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
case MeasureMode::AtMost:
|
|
2393
|
-
return performLayout ? "LAY_AT_MOST" : "AT_MOST";
|
|
2072
|
+
// STEP 11: SIZING AND POSITIONING ABSOLUTE CHILDREN
|
|
2073
|
+
// Let the containing block layout its absolute descendants.
|
|
2074
|
+
if (node->style().positionType() != PositionType::Static ||
|
|
2075
|
+
node->alwaysFormsContainingBlock() || depth == 1) {
|
|
2076
|
+
layoutAbsoluteDescendants(
|
|
2077
|
+
node,
|
|
2078
|
+
node,
|
|
2079
|
+
isMainAxisRow ? sizingModeMainDim : sizingModeCrossDim,
|
|
2080
|
+
direction,
|
|
2081
|
+
layoutMarkerData,
|
|
2082
|
+
depth,
|
|
2083
|
+
generationCount,
|
|
2084
|
+
0.0f,
|
|
2085
|
+
0.0f,
|
|
2086
|
+
availableInnerWidth,
|
|
2087
|
+
availableInnerHeight);
|
|
2088
|
+
}
|
|
2394
2089
|
}
|
|
2395
|
-
return "";
|
|
2396
2090
|
}
|
|
2397
2091
|
|
|
2398
2092
|
//
|
|
@@ -2408,8 +2102,8 @@ bool calculateLayoutInternal(
|
|
|
2408
2102
|
const float availableWidth,
|
|
2409
2103
|
const float availableHeight,
|
|
2410
2104
|
const Direction ownerDirection,
|
|
2411
|
-
const
|
|
2412
|
-
const
|
|
2105
|
+
const SizingMode widthSizingMode,
|
|
2106
|
+
const SizingMode heightSizingMode,
|
|
2413
2107
|
const float ownerWidth,
|
|
2414
2108
|
const float ownerHeight,
|
|
2415
2109
|
const bool performLayout,
|
|
@@ -2430,8 +2124,8 @@ bool calculateLayoutInternal(
|
|
|
2430
2124
|
layout->nextCachedMeasurementsIndex = 0;
|
|
2431
2125
|
layout->cachedLayout.availableWidth = -1;
|
|
2432
2126
|
layout->cachedLayout.availableHeight = -1;
|
|
2433
|
-
layout->cachedLayout.
|
|
2434
|
-
layout->cachedLayout.
|
|
2127
|
+
layout->cachedLayout.widthSizingMode = SizingMode::MaxContent;
|
|
2128
|
+
layout->cachedLayout.heightSizingMode = SizingMode::MaxContent;
|
|
2435
2129
|
layout->cachedLayout.computedWidth = -1;
|
|
2436
2130
|
layout->cachedLayout.computedHeight = -1;
|
|
2437
2131
|
}
|
|
@@ -2448,19 +2142,19 @@ bool calculateLayoutInternal(
|
|
|
2448
2142
|
// measurements if at all possible.
|
|
2449
2143
|
if (node->hasMeasureFunc()) {
|
|
2450
2144
|
const float marginAxisRow =
|
|
2451
|
-
node->
|
|
2145
|
+
node->style().computeMarginForAxis(FlexDirection::Row, ownerWidth);
|
|
2452
2146
|
const float marginAxisColumn =
|
|
2453
|
-
node->
|
|
2147
|
+
node->style().computeMarginForAxis(FlexDirection::Column, ownerWidth);
|
|
2454
2148
|
|
|
2455
2149
|
// First, try to use the layout cache.
|
|
2456
2150
|
if (canUseCachedMeasurement(
|
|
2457
|
-
|
|
2151
|
+
widthSizingMode,
|
|
2458
2152
|
availableWidth,
|
|
2459
|
-
|
|
2153
|
+
heightSizingMode,
|
|
2460
2154
|
availableHeight,
|
|
2461
|
-
layout->cachedLayout.
|
|
2155
|
+
layout->cachedLayout.widthSizingMode,
|
|
2462
2156
|
layout->cachedLayout.availableWidth,
|
|
2463
|
-
layout->cachedLayout.
|
|
2157
|
+
layout->cachedLayout.heightSizingMode,
|
|
2464
2158
|
layout->cachedLayout.availableHeight,
|
|
2465
2159
|
layout->cachedLayout.computedWidth,
|
|
2466
2160
|
layout->cachedLayout.computedHeight,
|
|
@@ -2472,13 +2166,13 @@ bool calculateLayoutInternal(
|
|
|
2472
2166
|
// Try to use the measurement cache.
|
|
2473
2167
|
for (size_t i = 0; i < layout->nextCachedMeasurementsIndex; i++) {
|
|
2474
2168
|
if (canUseCachedMeasurement(
|
|
2475
|
-
|
|
2169
|
+
widthSizingMode,
|
|
2476
2170
|
availableWidth,
|
|
2477
|
-
|
|
2171
|
+
heightSizingMode,
|
|
2478
2172
|
availableHeight,
|
|
2479
|
-
layout->cachedMeasurements[i].
|
|
2173
|
+
layout->cachedMeasurements[i].widthSizingMode,
|
|
2480
2174
|
layout->cachedMeasurements[i].availableWidth,
|
|
2481
|
-
layout->cachedMeasurements[i].
|
|
2175
|
+
layout->cachedMeasurements[i].heightSizingMode,
|
|
2482
2176
|
layout->cachedMeasurements[i].availableHeight,
|
|
2483
2177
|
layout->cachedMeasurements[i].computedWidth,
|
|
2484
2178
|
layout->cachedMeasurements[i].computedHeight,
|
|
@@ -2495,8 +2189,8 @@ bool calculateLayoutInternal(
|
|
|
2495
2189
|
layout->cachedLayout.availableWidth, availableWidth) &&
|
|
2496
2190
|
yoga::inexactEquals(
|
|
2497
2191
|
layout->cachedLayout.availableHeight, availableHeight) &&
|
|
2498
|
-
layout->cachedLayout.
|
|
2499
|
-
layout->cachedLayout.
|
|
2192
|
+
layout->cachedLayout.widthSizingMode == widthSizingMode &&
|
|
2193
|
+
layout->cachedLayout.heightSizingMode == heightSizingMode) {
|
|
2500
2194
|
cachedResults = &layout->cachedLayout;
|
|
2501
2195
|
}
|
|
2502
2196
|
} else {
|
|
@@ -2505,9 +2199,8 @@ bool calculateLayoutInternal(
|
|
|
2505
2199
|
layout->cachedMeasurements[i].availableWidth, availableWidth) &&
|
|
2506
2200
|
yoga::inexactEquals(
|
|
2507
2201
|
layout->cachedMeasurements[i].availableHeight, availableHeight) &&
|
|
2508
|
-
layout->cachedMeasurements[i].
|
|
2509
|
-
layout->cachedMeasurements[i].
|
|
2510
|
-
heightMeasureMode) {
|
|
2202
|
+
layout->cachedMeasurements[i].widthSizingMode == widthSizingMode &&
|
|
2203
|
+
layout->cachedMeasurements[i].heightSizingMode == heightSizingMode) {
|
|
2511
2204
|
cachedResults = &layout->cachedMeasurements[i];
|
|
2512
2205
|
break;
|
|
2513
2206
|
}
|
|
@@ -2516,61 +2209,20 @@ bool calculateLayoutInternal(
|
|
|
2516
2209
|
|
|
2517
2210
|
if (!needToVisitNode && cachedResults != nullptr) {
|
|
2518
2211
|
layout->setMeasuredDimension(
|
|
2519
|
-
|
|
2212
|
+
Dimension::Width, cachedResults->computedWidth);
|
|
2520
2213
|
layout->setMeasuredDimension(
|
|
2521
|
-
|
|
2214
|
+
Dimension::Height, cachedResults->computedHeight);
|
|
2522
2215
|
|
|
2523
2216
|
(performLayout ? layoutMarkerData.cachedLayouts
|
|
2524
2217
|
: layoutMarkerData.cachedMeasures) += 1;
|
|
2525
|
-
|
|
2526
|
-
if (gPrintChanges && gPrintSkips) {
|
|
2527
|
-
yoga::log(
|
|
2528
|
-
node,
|
|
2529
|
-
LogLevel::Verbose,
|
|
2530
|
-
"%s%d.{[skipped] ",
|
|
2531
|
-
spacerWithLength(depth),
|
|
2532
|
-
depth);
|
|
2533
|
-
node->print();
|
|
2534
|
-
yoga::log(
|
|
2535
|
-
node,
|
|
2536
|
-
LogLevel::Verbose,
|
|
2537
|
-
"wm: %s, hm: %s, aw: %f ah: %f => d: (%f, %f) %s\n",
|
|
2538
|
-
measureModeName(widthMeasureMode, performLayout),
|
|
2539
|
-
measureModeName(heightMeasureMode, performLayout),
|
|
2540
|
-
availableWidth,
|
|
2541
|
-
availableHeight,
|
|
2542
|
-
cachedResults->computedWidth,
|
|
2543
|
-
cachedResults->computedHeight,
|
|
2544
|
-
LayoutPassReasonToString(reason));
|
|
2545
|
-
}
|
|
2546
2218
|
} else {
|
|
2547
|
-
if (gPrintChanges) {
|
|
2548
|
-
yoga::log(
|
|
2549
|
-
node,
|
|
2550
|
-
LogLevel::Verbose,
|
|
2551
|
-
"%s%d.{%s",
|
|
2552
|
-
spacerWithLength(depth),
|
|
2553
|
-
depth,
|
|
2554
|
-
needToVisitNode ? "*" : "");
|
|
2555
|
-
node->print();
|
|
2556
|
-
yoga::log(
|
|
2557
|
-
node,
|
|
2558
|
-
LogLevel::Verbose,
|
|
2559
|
-
"wm: %s, hm: %s, aw: %f ah: %f %s\n",
|
|
2560
|
-
measureModeName(widthMeasureMode, performLayout),
|
|
2561
|
-
measureModeName(heightMeasureMode, performLayout),
|
|
2562
|
-
availableWidth,
|
|
2563
|
-
availableHeight,
|
|
2564
|
-
LayoutPassReasonToString(reason));
|
|
2565
|
-
}
|
|
2566
|
-
|
|
2567
2219
|
calculateLayoutImpl(
|
|
2568
2220
|
node,
|
|
2569
2221
|
availableWidth,
|
|
2570
2222
|
availableHeight,
|
|
2571
2223
|
ownerDirection,
|
|
2572
|
-
|
|
2573
|
-
|
|
2224
|
+
widthSizingMode,
|
|
2225
|
+
heightSizingMode,
|
|
2574
2226
|
ownerWidth,
|
|
2575
2227
|
ownerHeight,
|
|
2576
2228
|
performLayout,
|
|
@@ -2579,26 +2231,6 @@ bool calculateLayoutInternal(
|
|
|
2579
2231
|
generationCount,
|
|
2580
2232
|
reason);
|
|
2581
2233
|
|
|
2582
|
-
if (gPrintChanges) {
|
|
2583
|
-
yoga::log(
|
|
2584
|
-
node,
|
|
2585
|
-
LogLevel::Verbose,
|
|
2586
|
-
"%s%d.}%s",
|
|
2587
|
-
spacerWithLength(depth),
|
|
2588
|
-
depth,
|
|
2589
|
-
needToVisitNode ? "*" : "");
|
|
2590
|
-
node->print();
|
|
2591
|
-
yoga::log(
|
|
2592
|
-
node,
|
|
2593
|
-
LogLevel::Verbose,
|
|
2594
|
-
"wm: %s, hm: %s, d: (%f, %f) %s\n",
|
|
2595
|
-
measureModeName(widthMeasureMode, performLayout),
|
|
2596
|
-
measureModeName(heightMeasureMode, performLayout),
|
|
2597
|
-
layout->measuredDimension(YGDimensionWidth),
|
|
2598
|
-
layout->measuredDimension(YGDimensionHeight),
|
|
2599
|
-
LayoutPassReasonToString(reason));
|
|
2600
|
-
}
|
|
2601
|
-
|
|
2602
2234
|
layout->lastOwnerDirection = ownerDirection;
|
|
2603
2235
|
|
|
2604
2236
|
if (cachedResults == nullptr) {
|
|
@@ -2608,9 +2240,6 @@ bool calculateLayoutInternal(
|
|
|
2608
2240
|
|
|
2609
2241
|
if (layout->nextCachedMeasurementsIndex ==
|
|
2610
2242
|
LayoutResults::MaxCachedMeasurements) {
|
|
2611
|
-
if (gPrintChanges) {
|
|
2612
|
-
yoga::log(node, LogLevel::Verbose, "Out of cache entries!\n");
|
|
2613
|
-
}
|
|
2614
2243
|
layout->nextCachedMeasurementsIndex = 0;
|
|
2615
2244
|
}
|
|
2616
2245
|
|
|
@@ -2627,22 +2256,22 @@ bool calculateLayoutInternal(
|
|
|
2627
2256
|
|
|
2628
2257
|
newCacheEntry->availableWidth = availableWidth;
|
|
2629
2258
|
newCacheEntry->availableHeight = availableHeight;
|
|
2630
|
-
newCacheEntry->
|
|
2631
|
-
newCacheEntry->
|
|
2259
|
+
newCacheEntry->widthSizingMode = widthSizingMode;
|
|
2260
|
+
newCacheEntry->heightSizingMode = heightSizingMode;
|
|
2632
2261
|
newCacheEntry->computedWidth =
|
|
2633
|
-
layout->measuredDimension(
|
|
2262
|
+
layout->measuredDimension(Dimension::Width);
|
|
2634
2263
|
newCacheEntry->computedHeight =
|
|
2635
|
-
layout->measuredDimension(
|
|
2264
|
+
layout->measuredDimension(Dimension::Height);
|
|
2636
2265
|
}
|
|
2637
2266
|
}
|
|
2638
2267
|
|
|
2639
2268
|
if (performLayout) {
|
|
2640
2269
|
node->setLayoutDimension(
|
|
2641
|
-
node->getLayout().measuredDimension(
|
|
2642
|
-
|
|
2270
|
+
node->getLayout().measuredDimension(Dimension::Width),
|
|
2271
|
+
Dimension::Width);
|
|
2643
2272
|
node->setLayoutDimension(
|
|
2644
|
-
node->getLayout().measuredDimension(
|
|
2645
|
-
|
|
2273
|
+
node->getLayout().measuredDimension(Dimension::Height),
|
|
2274
|
+
Dimension::Height);
|
|
2646
2275
|
|
|
2647
2276
|
node->setHasNewLayout(true);
|
|
2648
2277
|
node->setDirty(false);
|
|
@@ -2678,55 +2307,53 @@ void calculateLayout(
|
|
|
2678
2307
|
gCurrentGenerationCount.fetch_add(1, std::memory_order_relaxed);
|
|
2679
2308
|
node->resolveDimension();
|
|
2680
2309
|
float width = YGUndefined;
|
|
2681
|
-
|
|
2682
|
-
const auto& style = node->
|
|
2683
|
-
if (
|
|
2684
|
-
width =
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
} else if (
|
|
2691
|
-
|
|
2692
|
-
|
|
2693
|
-
width =
|
|
2694
|
-
|
|
2695
|
-
widthMeasureMode = MeasureMode::AtMost;
|
|
2310
|
+
SizingMode widthSizingMode = SizingMode::MaxContent;
|
|
2311
|
+
const auto& style = node->style();
|
|
2312
|
+
if (node->hasDefiniteLength(Dimension::Width, ownerWidth)) {
|
|
2313
|
+
width =
|
|
2314
|
+
(node->getResolvedDimension(dimension(FlexDirection::Row))
|
|
2315
|
+
.resolve(ownerWidth)
|
|
2316
|
+
.unwrap() +
|
|
2317
|
+
node->style().computeMarginForAxis(FlexDirection::Row, ownerWidth));
|
|
2318
|
+
widthSizingMode = SizingMode::StretchFit;
|
|
2319
|
+
} else if (style.maxDimension(Dimension::Width)
|
|
2320
|
+
.resolve(ownerWidth)
|
|
2321
|
+
.isDefined()) {
|
|
2322
|
+
width = style.maxDimension(Dimension::Width).resolve(ownerWidth).unwrap();
|
|
2323
|
+
widthSizingMode = SizingMode::FitContent;
|
|
2696
2324
|
} else {
|
|
2697
2325
|
width = ownerWidth;
|
|
2698
|
-
|
|
2699
|
-
|
|
2326
|
+
widthSizingMode = yoga::isUndefined(width) ? SizingMode::MaxContent
|
|
2327
|
+
: SizingMode::StretchFit;
|
|
2700
2328
|
}
|
|
2701
2329
|
|
|
2702
2330
|
float height = YGUndefined;
|
|
2703
|
-
|
|
2704
|
-
if (
|
|
2705
|
-
height =
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
} else if (
|
|
2712
|
-
|
|
2713
|
-
|
|
2331
|
+
SizingMode heightSizingMode = SizingMode::MaxContent;
|
|
2332
|
+
if (node->hasDefiniteLength(Dimension::Height, ownerHeight)) {
|
|
2333
|
+
height =
|
|
2334
|
+
(node->getResolvedDimension(dimension(FlexDirection::Column))
|
|
2335
|
+
.resolve(ownerHeight)
|
|
2336
|
+
.unwrap() +
|
|
2337
|
+
node->style().computeMarginForAxis(FlexDirection::Column, ownerWidth));
|
|
2338
|
+
heightSizingMode = SizingMode::StretchFit;
|
|
2339
|
+
} else if (style.maxDimension(Dimension::Height)
|
|
2340
|
+
.resolve(ownerHeight)
|
|
2341
|
+
.isDefined()) {
|
|
2714
2342
|
height =
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
heightMeasureMode = MeasureMode::AtMost;
|
|
2343
|
+
style.maxDimension(Dimension::Height).resolve(ownerHeight).unwrap();
|
|
2344
|
+
heightSizingMode = SizingMode::FitContent;
|
|
2718
2345
|
} else {
|
|
2719
2346
|
height = ownerHeight;
|
|
2720
|
-
|
|
2721
|
-
|
|
2347
|
+
heightSizingMode = yoga::isUndefined(height) ? SizingMode::MaxContent
|
|
2348
|
+
: SizingMode::StretchFit;
|
|
2722
2349
|
}
|
|
2723
2350
|
if (calculateLayoutInternal(
|
|
2724
2351
|
node,
|
|
2725
2352
|
width,
|
|
2726
2353
|
height,
|
|
2727
2354
|
ownerDirection,
|
|
2728
|
-
|
|
2729
|
-
|
|
2355
|
+
widthSizingMode,
|
|
2356
|
+
heightSizingMode,
|
|
2730
2357
|
ownerWidth,
|
|
2731
2358
|
ownerHeight,
|
|
2732
2359
|
true,
|
|
@@ -2737,14 +2364,6 @@ void calculateLayout(
|
|
|
2737
2364
|
node->setPosition(
|
|
2738
2365
|
node->getLayout().direction(), ownerWidth, ownerHeight, ownerWidth);
|
|
2739
2366
|
roundLayoutResultsToPixelGrid(node, 0.0f, 0.0f);
|
|
2740
|
-
|
|
2741
|
-
#ifdef DEBUG
|
|
2742
|
-
if (node->getConfig()->shouldPrintTree()) {
|
|
2743
|
-
yoga::print(
|
|
2744
|
-
node,
|
|
2745
|
-
PrintOptions::Layout | PrintOptions::Children | PrintOptions::Style);
|
|
2746
|
-
}
|
|
2747
|
-
#endif
|
|
2748
2367
|
}
|
|
2749
2368
|
|
|
2750
2369
|
Event::publish<Event::LayoutPassEnd>(node, {&markerData});
|