@office-iss/react-native-win32 0.80.0-preview.1 → 0.81.0-preview.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.flowconfig +10 -4
- package/CHANGELOG.json +135 -6
- package/CHANGELOG.md +53 -4
- package/IntegrationTests/AccessibilityManagerTest.js +1 -1
- package/IntegrationTests/AppEventsTest.js +1 -1
- package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +1 -1
- package/IntegrationTests/ImageCachePolicyTest.js +2 -2
- package/IntegrationTests/ImageSnapshotTest.js +1 -1
- package/IntegrationTests/IntegrationTestHarnessTest.js +1 -1
- package/IntegrationTests/IntegrationTestsApp.js +2 -1
- package/IntegrationTests/LayoutEventsTest.js +1 -1
- package/IntegrationTests/LoggingTestModule.js +16 -20
- package/IntegrationTests/PromiseTest.js +1 -1
- package/IntegrationTests/SimpleSnapshotTest.js +1 -1
- package/IntegrationTests/SyncMethodTest.js +1 -1
- package/IntegrationTests/TimersTest.js +2 -1
- package/IntegrationTests/WebSocketTest.js +2 -1
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
- package/Libraries/Alert/Alert.js +3 -3
- package/Libraries/Alert/Alert.win32.js +1 -1
- package/Libraries/Alert/NativeAlertManager.js +1 -0
- package/Libraries/Alert/RCTAlertManager.android.js +19 -13
- package/Libraries/Alert/RCTAlertManager.ios.js +10 -12
- package/Libraries/Alert/RCTAlertManager.js +1 -3
- package/Libraries/Alert/RCTAlertManager.js.flow +5 -7
- package/Libraries/Animated/Animated.js +0 -1
- package/Libraries/Animated/Animated.js.flow +0 -1
- package/Libraries/Animated/AnimatedEvent.js +4 -3
- package/Libraries/Animated/AnimatedExports.js +0 -1
- package/Libraries/Animated/AnimatedExports.js.flow +5 -1
- package/Libraries/Animated/AnimatedImplementation.js +44 -44
- package/Libraries/Animated/AnimatedMock.js +2 -2
- package/Libraries/Animated/Easing.js +1 -1
- package/Libraries/Animated/NativeAnimatedModule.js +1 -0
- package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
- package/Libraries/Animated/SpringConfig.js +1 -1
- package/Libraries/Animated/animations/Animation.js +10 -2
- package/Libraries/Animated/components/AnimatedScrollView.js +58 -56
- package/Libraries/Animated/components/AnimatedText.js +2 -5
- package/Libraries/Animated/components/AnimatedView.js +2 -1
- package/Libraries/Animated/createAnimatedComponent.js +39 -37
- package/Libraries/Animated/nodes/AnimatedObject.js +2 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +31 -4
- package/Libraries/Animated/nodes/AnimatedStyle.js +35 -34
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +6 -1
- package/Libraries/AppState/NativeAppState.js +1 -0
- package/Libraries/BatchedBridge/BatchedBridge.js +1 -1
- package/Libraries/BatchedBridge/NativeModules.js +1 -1
- package/Libraries/Blob/BlobManager.js +4 -0
- package/Libraries/Blob/NativeBlobModule.js +1 -0
- package/Libraries/Blob/NativeFileReaderModule.js +1 -0
- package/Libraries/Blob/URL.js +1 -1
- package/Libraries/Blob/URLSearchParams.js +5 -1
- package/Libraries/Blob/URLSearchParams.js.flow +2 -1
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -2
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +1 -2
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +1 -2
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js.flow +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +1 -1
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +19 -19
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
- package/Libraries/Components/Button.js +10 -7
- package/Libraries/Components/Button.win32.js +10 -7
- package/Libraries/Components/Clipboard/Clipboard.js +1 -1
- package/Libraries/Components/Clipboard/NativeClipboard.js +1 -2
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -3
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -4
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +1 -1
- package/Libraries/Components/Keyboard/Keyboard.js +1 -1
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +3 -2
- package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -2
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +0 -1
- package/Libraries/Components/Pressable/Pressable.js +17 -8
- package/Libraries/Components/Pressable/Pressable.win32.js +17 -14
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +14 -13
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -3
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -3
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -1
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -3
- package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +9 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -2
- package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +3 -2
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -3
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
- package/Libraries/Components/ScrollView/ScrollView.d.ts +33 -6
- package/Libraries/Components/ScrollView/ScrollView.js +25 -15
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -1
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +19 -6
- package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
- package/Libraries/Components/Sound/NativeSoundManager.js +1 -2
- package/Libraries/Components/Sound/SoundManager.js +1 -1
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -2
- package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -2
- package/Libraries/Components/StatusBar/StatusBar.d.ts +4 -0
- package/Libraries/Components/StatusBar/StatusBar.js +6 -1
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -3
- package/Libraries/Components/Switch/Switch.js +10 -3
- package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -3
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +9 -24
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -3
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +9 -3
- package/Libraries/Components/TextInput/TextInput.flow.js +13 -15
- package/Libraries/Components/TextInput/TextInput.flow.win32.js +12 -14
- package/Libraries/Components/TextInput/TextInput.js +42 -39
- package/Libraries/Components/TextInput/TextInput.win32.js +69 -38
- package/Libraries/Components/TextInput/TextInputState.js +1 -1
- package/Libraries/Components/TextInput/TextInputState.win32.js +1 -1
- package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -2
- package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +1 -1
- package/Libraries/Components/Touchable/BoundingDimensions.js +1 -1
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Position.js +1 -1
- package/Libraries/Components/Touchable/Touchable.js +17 -3
- package/Libraries/Components/Touchable/Touchable.win32.js +17 -3
- package/Libraries/Components/Touchable/TouchableBounce.js +9 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +14 -5
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +5 -3
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +5 -2
- package/Libraries/Components/Touchable/TouchableOpacity.d.ts +1 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +10 -5
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -3
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +7 -16
- package/Libraries/Components/View/View.js +114 -29
- package/Libraries/Components/View/View.win32.js +17 -3
- package/Libraries/Components/View/ViewAccessibility.d.ts +1 -0
- package/Libraries/Components/View/ViewAccessibility.js +1 -8
- package/Libraries/Components/View/ViewAccessibility.win32.js +1 -8
- package/Libraries/Components/View/ViewPropTypes.d.ts +22 -2
- package/Libraries/Components/View/ViewPropTypes.js +9 -1
- package/Libraries/Components/View/ViewPropTypes.win32.js +9 -1
- package/Libraries/Core/Devtools/getDevServer.js +1 -1
- package/Libraries/Core/Devtools/loadBundleFromServer.js +49 -7
- package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +49 -7
- package/Libraries/Core/Devtools/openFileInEditor.js +1 -1
- package/Libraries/Core/Devtools/openURLInBrowser.js +1 -1
- package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
- package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +27 -16
- package/Libraries/Core/InitializeCore.js +2 -23
- package/Libraries/Core/NativeExceptionsManager.js +1 -0
- package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -2
- package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
- package/Libraries/Core/Timers/JSTimers.js +1 -1
- package/Libraries/Core/Timers/NativeTiming.js +1 -0
- package/Libraries/Core/Timers/immediateShim.js +1 -1
- package/Libraries/Core/Timers/queueMicrotask.js +1 -1
- package/Libraries/Core/checkNativeVersion.js +1 -0
- package/Libraries/Core/setUpDeveloperTools.js +13 -11
- package/Libraries/Core/setUpReactDevTools.js +21 -4
- package/Libraries/Debugging/DebuggingOverlay.js +12 -14
- package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -1
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +0 -1
- package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +0 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
- package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
- package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
- package/Libraries/Image/AssetRegistry.js +4 -10
- package/Libraries/Image/Image.android.js +113 -107
- package/Libraries/Image/Image.ios.js +10 -2
- package/Libraries/Image/Image.win32.js +11 -3
- package/Libraries/Image/ImageAnalyticsTagContext.js +2 -2
- package/Libraries/Image/ImageInjection.js +1 -1
- package/Libraries/Image/ImageSource.d.ts +5 -0
- package/Libraries/Image/ImageViewNativeComponent.js +3 -3
- package/Libraries/Image/NativeImageEditor.js +1 -0
- package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
- package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
- package/Libraries/Image/NativeImageLoaderWin32.js +1 -0
- package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
- package/Libraries/Image/NativeImageStoreIOS.js +1 -0
- package/Libraries/Image/RelativeImageStub.js +2 -1
- package/Libraries/Image/TextInlineImageNativeComponent.js +4 -4
- package/Libraries/Image/resolveAssetSource.js +1 -1
- package/Libraries/Interaction/FrameRateLogger.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +64 -54
- package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
- package/Libraries/Interaction/TaskQueue.js +8 -9
- package/Libraries/Interaction/TouchHistoryMath.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -8
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Linking/NativeIntentAndroid.js +1 -0
- package/Libraries/Linking/NativeLinkingManager.js +1 -0
- package/Libraries/Lists/FlatList.d.ts +9 -5
- package/Libraries/Lists/FlatList.js +6 -7
- package/Libraries/Lists/SectionList.js +4 -4
- package/Libraries/Lists/SectionListModern.js +9 -3
- package/Libraries/Lists/VirtualizedList.js +3 -2
- package/Libraries/LogBox/Data/LogBoxData.js +7 -4
- package/Libraries/LogBox/Data/parseLogBoxLog.js +2 -0
- package/Libraries/LogBox/LogBox.js +72 -99
- package/Libraries/LogBox/UI/LogBoxButton.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -2
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +3 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -1
- package/Libraries/Modal/Modal.d.ts +8 -2
- package/Libraries/Modal/Modal.js +24 -3
- package/Libraries/Modal/NativeModalManager.js +1 -0
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +21 -18
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -17
- package/Libraries/NativeComponent/BaseViewConfig.js.flow +1 -1
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +8 -17
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -1
- package/Libraries/NativeComponent/ViewConfigIgnore.js +3 -3
- package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
- package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
- package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
- package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
- package/Libraries/NativeModules/specs/NativeLogBox.js +1 -0
- package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
- package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
- package/Libraries/Network/FormData.js +1 -1
- package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
- package/Libraries/Network/NativeNetworkingIOS.js +1 -0
- package/Libraries/Network/RCTNetworking.android.js +2 -2
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.win32.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +3 -3
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -3
- package/Libraries/Pressability/Pressability.js +1 -1
- package/Libraries/Pressability/Pressability.win32.js +1 -1
- package/Libraries/Promise.js +1 -1
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +3 -2
- package/Libraries/ReactNative/AppContainer-dev.js +4 -4
- package/Libraries/ReactNative/AppContainer-prod.js +0 -1
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +2 -13
- package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
- package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
- package/Libraries/ReactNative/NativeI18nManager.js +1 -0
- package/Libraries/ReactNative/NativeUIManager.js +1 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +81 -62
- package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +1 -1
- package/Libraries/ReactNative/RendererProxy.js +1 -1
- package/Libraries/ReactNative/RootTag.js +2 -2
- package/Libraries/ReactNative/renderApplication.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -1
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -1
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -36
- package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +261 -0
- package/Libraries/Settings/NativeSettingsManager.js +1 -0
- package/Libraries/Settings/Settings.ios.js +1 -1
- package/Libraries/Settings/Settings.js +1 -1
- package/Libraries/Settings/SettingsFallback.js +1 -1
- package/Libraries/Share/NativeShareModule.js +1 -0
- package/Libraries/Share/Share.js +1 -1
- package/Libraries/StyleSheet/EdgeInsetsPropType.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +1 -1
- package/Libraries/StyleSheet/PointPropType.js +1 -1
- package/Libraries/StyleSheet/Rect.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +1 -0
- package/Libraries/StyleSheet/StyleSheetTypes.js +0 -1
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processAspectRatio.js +1 -1
- package/Libraries/StyleSheet/processBackgroundImage.js +1 -1
- package/Libraries/StyleSheet/processBoxShadow.js +0 -1
- package/Libraries/StyleSheet/processColor.js +1 -1
- package/Libraries/StyleSheet/processColorArray.js +1 -1
- package/Libraries/StyleSheet/processFilter.js +1 -2
- package/Libraries/StyleSheet/processFontVariant.js +1 -1
- package/Libraries/StyleSheet/processTransform.js +1 -1
- package/Libraries/StyleSheet/processTransformOrigin.js +1 -1
- package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
- package/Libraries/Text/Text.d.ts +7 -0
- package/Libraries/Text/Text.js +255 -246
- package/Libraries/Text/Text.win32.js +294 -285
- package/Libraries/Text/TextAncestor.js +3 -9
- package/Libraries/Text/TextAncestorContext.js +23 -0
- package/Libraries/Text/TextNativeComponent.js +4 -0
- package/Libraries/Text/TextNativeComponent.win32.js +4 -0
- package/Libraries/Text/TextProps.js +2 -5
- package/Libraries/Text/TextProps.win32.js +2 -7
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CodegenTypesNamespace.js +2 -1
- package/Libraries/Types/CoreEventTypes.d.ts +4 -0
- package/Libraries/Types/ReactDevToolsTypes.js +0 -1
- package/Libraries/Utilities/Appearance.js +1 -1
- package/Libraries/Utilities/BackHandler.js.flow +1 -1
- package/Libraries/Utilities/DevLoadingView.js +1 -1
- package/Libraries/Utilities/DeviceInfo.js +1 -1
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/Dimensions.win32.js +1 -1
- package/Libraries/Utilities/HMRClient.js +13 -3
- package/Libraries/Utilities/HMRClientProdShim.js +1 -1
- package/Libraries/Utilities/NativeAppearance.js +1 -0
- package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
- package/Libraries/Utilities/NativeDeviceInfo.js +1 -2
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
- package/Libraries/Utilities/PerformanceLoggerContext.js +2 -2
- package/Libraries/Utilities/PixelRatio.js +1 -1
- package/Libraries/Utilities/Platform.android.js +2 -5
- package/Libraries/Utilities/Platform.ios.js +2 -5
- package/Libraries/Utilities/Platform.js +1 -1
- package/Libraries/Utilities/Platform.js.flow +2 -2
- package/Libraries/Utilities/Platform.win32.js +2 -5
- package/Libraries/Utilities/PlatformTypes.js +2 -2
- package/Libraries/Utilities/RCTLog.js +1 -1
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/binaryToBase64.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +5 -3
- package/Libraries/Utilities/codegenNativeComponent.js +4 -4
- package/Libraries/Utilities/createPerformanceLogger.js +27 -20
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -1
- package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
- package/Libraries/Utilities/differ/deepDiffer.js +1 -1
- package/Libraries/Utilities/differ/insetsDiffer.js +1 -1
- package/Libraries/Utilities/differ/matricesDiffer.js +1 -1
- package/Libraries/Utilities/differ/pointsDiffer.js +1 -1
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/mapWithSeparator.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +1 -1
- package/Libraries/Utilities/stringifyViewConfig.js +1 -1
- package/Libraries/Utilities/useColorScheme.js +1 -1
- package/Libraries/Utilities/useWindowDimensions.js +1 -1
- package/Libraries/Utilities/warnOnce.js +1 -1
- package/Libraries/Vibration/NativeVibration.js +1 -0
- package/Libraries/Vibration/Vibration.js +1 -2
- package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
- package/Libraries/WebSocket/WebSocket.js +1 -1
- package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
- package/Libraries/promiseRejectionTrackingOptions.js +1 -1
- package/Libraries/vendor/core/ErrorUtils.js +1 -1
- package/Libraries/vendor/emitter/EventEmitter.js +6 -6
- package/index.js +22 -2
- package/index.win32.js +15 -2
- package/interface.js +1 -1
- package/jest/MockNativeMethods.js +9 -3
- package/jest/RefreshControlMock.js +32 -0
- package/jest/assetFileTransformer.js +1 -0
- package/jest/local-setup.js +4 -3
- package/jest/mock.js +39 -0
- package/jest/mockComponent.js +47 -17
- package/jest/mockNativeComponent.js +26 -15
- package/jest/mocks/AccessibilityInfo.js +62 -0
- package/jest/mocks/ActivityIndicator.js +23 -0
- package/jest/mocks/AppState.js +19 -0
- package/{flow/Stringish.js → jest/mocks/Clipboard.js} +6 -4
- package/jest/mocks/Image.js +23 -0
- package/jest/mocks/InitializeCore.js +9 -0
- package/jest/mocks/Linking.js +28 -0
- package/jest/mocks/Modal.js +33 -0
- package/jest/mocks/NativeComponentRegistry.js +30 -0
- package/jest/mocks/NativeModules.js +239 -0
- package/jest/mocks/RefreshControl.js +31 -0
- package/jest/mocks/RendererProxy.js +45 -0
- package/jest/mocks/ScrollView.js +58 -0
- package/jest/mocks/Text.js +27 -0
- package/jest/mocks/TextInput.js +32 -0
- package/jest/mocks/UIManager.js +60 -0
- package/jest/mocks/Vibration.js +16 -0
- package/jest/mocks/View.js +27 -0
- package/jest/mocks/ViewNativeComponent.js +23 -0
- package/jest/mocks/requireNativeComponent.js +22 -0
- package/{Libraries/Utilities/infoLog.js → jest/mocks/useColorScheme.js} +7 -9
- package/jest/react-native-env.js +1 -0
- package/jest/renderer.js +1 -2
- package/jest/resolver.js +1 -0
- package/jest/setup.js +64 -445
- package/overrides.json +49 -42
- package/package.json +18 -18
- package/src/private/animated/NativeAnimatedHelper.js +8 -1
- package/src/private/animated/NativeAnimatedHelper.win32.js +8 -1
- package/src/private/animated/createAnimatedPropsHook.js +14 -4
- package/src/private/animated/createAnimatedPropsMemoHook.js +2 -3
- package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
- package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
- package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
- package/src/private/components/virtualview/VirtualView.js +145 -0
- package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
- package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
- package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +1 -1
- package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.win32.js +8 -9
- package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
- package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
- package/src/private/featureflags/ReactNativeFeatureFlags.js +88 -8
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -0
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +15 -3
- package/src/private/renderer/errorhandling/ErrorHandlers.js +1 -1
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
- package/src/private/setup/setUpPerformanceObserver.js +7 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +8 -5
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +10 -7
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +5 -4
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +7 -4
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +10 -7
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +9 -6
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +15 -6
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +9 -6
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +5 -5
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +1 -0
- package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +9 -6
- package/src/private/styles/composeStyles.js +5 -12
- package/src/private/types/HostInstance.js +1 -1
- package/src/private/webapis/dom/events/Event.js +3 -0
- package/src/private/webapis/dom/events/EventTarget.js +3 -0
- package/src/private/webapis/dom/nodes/ReactNativeDocument.js +1 -1
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +7 -24
- package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +4 -2
- package/src/private/webapis/dom/nodes/ReadOnlyText.js +1 -1
- package/src/private/webapis/dom/nodes/internals/NodeInternals.js +1 -1
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/internals/Traversal.js +1 -1
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -1
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +4 -1
- package/src/private/webapis/errors/DOMException.js +166 -0
- package/src/private/webapis/geometry/DOMRect.js +5 -0
- package/src/private/webapis/geometry/DOMRectList.js +4 -1
- package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +4 -2
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +15 -7
- package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +83 -18
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +12 -0
- package/src/private/webapis/mutationobserver/MutationObserver.js +13 -38
- package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
- package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +7 -29
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +1 -4
- package/src/private/webapis/performance/EventTiming.js +1 -1
- package/src/private/webapis/performance/LongTasks.js +1 -1
- package/src/private/webapis/performance/MemoryInfo.js +4 -1
- package/src/private/webapis/performance/Performance.js +20 -9
- package/src/private/webapis/performance/PerformanceEntry.js +5 -1
- package/src/private/webapis/performance/PerformanceObserver.js +32 -28
- package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
- package/src/private/webapis/performance/ResourceTiming.js +108 -0
- package/src/private/webapis/performance/UserTiming.js +1 -1
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +50 -33
- package/src/private/webapis/performance/internals/Utilities.js +1 -1
- package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
- package/src/private/webapis/structuredClone/structuredClone.js +233 -0
- package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
- package/src/private/webapis/webidl/PlatformObjects.js +59 -0
- package/src-win/Libraries/Components/View/ViewAccessibility.d.ts +1 -0
- package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +22 -2
- package/src-win/Libraries/Text/Text.d.ts +7 -0
- package/types/modules/Devtools.d.ts +23 -9
- package/Libraries/BugReporting/BugReporting.js +0 -140
- package/Libraries/BugReporting/NativeBugReporting.js +0 -13
- package/Libraries/BugReporting/dumpReactTree.js +0 -151
- package/Libraries/BugReporting/getReactData.js +0 -187
- package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -88
- package/flow/HermesInternalType.js +0 -114
- package/flow/console.js +0 -49
- package/flow/global.js +0 -88
- package/jest/mockModal.js +0 -32
- package/jest/mockScrollView.js +0 -35
- package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +0 -20
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* This module implements the `DOMException` interface from WebIDL.
|
|
13
|
+
* See https://webidl.spec.whatwg.org/#idl-DOMException.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
// flowlint unsafe-getters-setters:off
|
|
17
|
+
|
|
18
|
+
import {setPlatformObject} from '../webidl/PlatformObjects';
|
|
19
|
+
|
|
20
|
+
const ERROR_NAME_TO_ERROR_CODE_MAP: {[string]: number} = {
|
|
21
|
+
IndexSizeError: 1,
|
|
22
|
+
HierarchyRequestError: 3,
|
|
23
|
+
WrongDocumentError: 4,
|
|
24
|
+
InvalidCharacterError: 5,
|
|
25
|
+
NoModificationAllowedError: 7,
|
|
26
|
+
NotFoundError: 8,
|
|
27
|
+
NotSupportedError: 9,
|
|
28
|
+
InUseAttributeError: 10,
|
|
29
|
+
InvalidStateError: 11,
|
|
30
|
+
SyntaxError: 12,
|
|
31
|
+
InvalidModificationError: 13,
|
|
32
|
+
NamespaceError: 14,
|
|
33
|
+
InvalidAccessError: 15,
|
|
34
|
+
TypeMismatchError: 17,
|
|
35
|
+
SecurityError: 18,
|
|
36
|
+
NetworkError: 19,
|
|
37
|
+
AbortError: 20,
|
|
38
|
+
URLMismatchError: 21,
|
|
39
|
+
QuotaExceededError: 22,
|
|
40
|
+
TimeoutError: 23,
|
|
41
|
+
InvalidNodeTypeError: 24,
|
|
42
|
+
DataCloneError: 25,
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const ERROR_CODES: {[string]: number} = {
|
|
46
|
+
INDEX_SIZE_ERR: 1,
|
|
47
|
+
DOMSTRING_SIZE_ERR: 2,
|
|
48
|
+
HIERARCHY_REQUEST_ERR: 3,
|
|
49
|
+
WRONG_DOCUMENT_ERR: 4,
|
|
50
|
+
INVALID_CHARACTER_ERR: 5,
|
|
51
|
+
NO_DATA_ALLOWED_ERR: 6,
|
|
52
|
+
NO_MODIFICATION_ALLOWED_ERR: 7,
|
|
53
|
+
NOT_FOUND_ERR: 8,
|
|
54
|
+
NOT_SUPPORTED_ERR: 9,
|
|
55
|
+
INUSE_ATTRIBUTE_ERR: 10,
|
|
56
|
+
INVALID_STATE_ERR: 11,
|
|
57
|
+
SYNTAX_ERR: 12,
|
|
58
|
+
INVALID_MODIFICATION_ERR: 13,
|
|
59
|
+
NAMESPACE_ERR: 14,
|
|
60
|
+
INVALID_ACCESS_ERR: 15,
|
|
61
|
+
VALIDATION_ERR: 16,
|
|
62
|
+
TYPE_MISMATCH_ERR: 17,
|
|
63
|
+
SECURITY_ERR: 18,
|
|
64
|
+
NETWORK_ERR: 19,
|
|
65
|
+
ABORT_ERR: 20,
|
|
66
|
+
URL_MISMATCH_ERR: 21,
|
|
67
|
+
QUOTA_EXCEEDED_ERR: 22,
|
|
68
|
+
TIMEOUT_ERR: 23,
|
|
69
|
+
INVALID_NODE_TYPE_ERR: 24,
|
|
70
|
+
DATA_CLONE_ERR: 25,
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
/* eslint-disable @react-native/monorepo/require-extends-error */
|
|
74
|
+
// $FlowExpectedError[incompatible-variance] name is writable in Error but not in DOMException, but this is how it works on Web.
|
|
75
|
+
export default class DOMException extends Error {
|
|
76
|
+
static +INDEX_SIZE_ERR: 1;
|
|
77
|
+
static +DOMSTRING_SIZE_ERR: 2;
|
|
78
|
+
static +HIERARCHY_REQUEST_ERR: 3;
|
|
79
|
+
static +WRONG_DOCUMENT_ERR: 4;
|
|
80
|
+
static +INVALID_CHARACTER_ERR: 5;
|
|
81
|
+
static +NO_DATA_ALLOWED_ERR: 6;
|
|
82
|
+
static +NO_MODIFICATION_ALLOWED_ERR: 7;
|
|
83
|
+
static +NOT_FOUND_ERR: 8;
|
|
84
|
+
static +NOT_SUPPORTED_ERR: 9;
|
|
85
|
+
static +INUSE_ATTRIBUTE_ERR: 10;
|
|
86
|
+
static +INVALID_STATE_ERR: 11;
|
|
87
|
+
static +SYNTAX_ERR: 12;
|
|
88
|
+
static +INVALID_MODIFICATION_ERR: 13;
|
|
89
|
+
static +NAMESPACE_ERR: 14;
|
|
90
|
+
static +INVALID_ACCESS_ERR: 15;
|
|
91
|
+
static +VALIDATION_ERR: 16;
|
|
92
|
+
static +TYPE_MISMATCH_ERR: 17;
|
|
93
|
+
static +SECURITY_ERR: 18;
|
|
94
|
+
static +NETWORK_ERR: 19;
|
|
95
|
+
static +ABORT_ERR: 20;
|
|
96
|
+
static +URL_MISMATCH_ERR: 21;
|
|
97
|
+
static +QUOTA_EXCEEDED_ERR: 22;
|
|
98
|
+
static +TIMEOUT_ERR: 23;
|
|
99
|
+
static +INVALID_NODE_TYPE_ERR: 24;
|
|
100
|
+
static +DATA_CLONE_ERR: 25;
|
|
101
|
+
|
|
102
|
+
+INDEX_SIZE_ERR: 1;
|
|
103
|
+
+DOMSTRING_SIZE_ERR: 2;
|
|
104
|
+
+HIERARCHY_REQUEST_ERR: 3;
|
|
105
|
+
+WRONG_DOCUMENT_ERR: 4;
|
|
106
|
+
+INVALID_CHARACTER_ERR: 5;
|
|
107
|
+
+NO_DATA_ALLOWED_ERR: 6;
|
|
108
|
+
+NO_MODIFICATION_ALLOWED_ERR: 7;
|
|
109
|
+
+NOT_FOUND_ERR: 8;
|
|
110
|
+
+NOT_SUPPORTED_ERR: 9;
|
|
111
|
+
+INUSE_ATTRIBUTE_ERR: 10;
|
|
112
|
+
+INVALID_STATE_ERR: 11;
|
|
113
|
+
+SYNTAX_ERR: 12;
|
|
114
|
+
+INVALID_MODIFICATION_ERR: 13;
|
|
115
|
+
+NAMESPACE_ERR: 14;
|
|
116
|
+
+INVALID_ACCESS_ERR: 15;
|
|
117
|
+
+VALIDATION_ERR: 16;
|
|
118
|
+
+TYPE_MISMATCH_ERR: 17;
|
|
119
|
+
+SECURITY_ERR: 18;
|
|
120
|
+
+NETWORK_ERR: 19;
|
|
121
|
+
+ABORT_ERR: 20;
|
|
122
|
+
+URL_MISMATCH_ERR: 21;
|
|
123
|
+
+QUOTA_EXCEEDED_ERR: 22;
|
|
124
|
+
+TIMEOUT_ERR: 23;
|
|
125
|
+
+INVALID_NODE_TYPE_ERR: 24;
|
|
126
|
+
+DATA_CLONE_ERR: 25;
|
|
127
|
+
|
|
128
|
+
#name: string;
|
|
129
|
+
#code: number;
|
|
130
|
+
|
|
131
|
+
constructor(message?: string, name?: string) {
|
|
132
|
+
super(message);
|
|
133
|
+
|
|
134
|
+
if (typeof name === 'undefined') {
|
|
135
|
+
this.#name = 'Error';
|
|
136
|
+
this.#code = 0;
|
|
137
|
+
} else {
|
|
138
|
+
this.#name = String(name);
|
|
139
|
+
this.#code = ERROR_NAME_TO_ERROR_CODE_MAP[this.name] ?? 0;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
get name(): string {
|
|
144
|
+
return this.#name;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
get code(): number {
|
|
148
|
+
return this.#code;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
for (const code in ERROR_CODES) {
|
|
153
|
+
Object.defineProperty(DOMException, code, {
|
|
154
|
+
enumerable: true,
|
|
155
|
+
value: ERROR_CODES[code],
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
Object.defineProperty(DOMException.prototype, code, {
|
|
159
|
+
enumerable: true,
|
|
160
|
+
value: ERROR_CODES[code],
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
setPlatformObject(DOMException, {
|
|
165
|
+
clone: exception => new DOMException(exception.message, exception.name),
|
|
166
|
+
});
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
+
import {setPlatformObject} from '../webidl/PlatformObjects';
|
|
17
18
|
import DOMRectReadOnly, {type DOMRectInit} from './DOMRectReadOnly';
|
|
18
19
|
|
|
19
20
|
// flowlint unsafe-getters-setters:off
|
|
@@ -80,3 +81,7 @@ export default class DOMRect extends DOMRectReadOnly {
|
|
|
80
81
|
return new DOMRect(rect.x, rect.y, rect.width, rect.height);
|
|
81
82
|
}
|
|
82
83
|
}
|
|
84
|
+
|
|
85
|
+
setPlatformObject(DOMRect, {
|
|
86
|
+
clone: rect => new DOMRect(rect.x, rect.y, rect.width, rect.height),
|
|
87
|
+
});
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @format
|
|
8
7
|
* @flow strict
|
|
8
|
+
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
// flowlint unsafe-getters-setters:off
|
|
@@ -14,6 +14,7 @@ import type {ArrayLike} from '../utils/ArrayLikeUtils';
|
|
|
14
14
|
import type DOMRectReadOnly from './DOMRectReadOnly';
|
|
15
15
|
|
|
16
16
|
import {createValueIterator} from '../utils/ArrayLikeUtils';
|
|
17
|
+
import {setPlatformObject} from '../webidl/PlatformObjects';
|
|
17
18
|
|
|
18
19
|
// IMPORTANT: The Flow type definition for this module is defined in `DOMRectList.js.flow`
|
|
19
20
|
// because Flow only supports indexers in classes in declaration files.
|
|
@@ -63,6 +64,8 @@ export default class DOMRectList implements Iterable<DOMRectReadOnly> {
|
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
66
|
|
|
67
|
+
setPlatformObject(DOMRectList);
|
|
68
|
+
|
|
66
69
|
/**
|
|
67
70
|
* This is an internal method to create instances of `DOMRectList`,
|
|
68
71
|
* which avoids leaking its constructor to end users.
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
+
import {setPlatformObject} from '../webidl/PlatformObjects';
|
|
18
|
+
|
|
17
19
|
// flowlint sketchy-null:off, unsafe-getters-setters:off
|
|
18
20
|
|
|
19
21
|
export interface DOMRectInit {
|
|
@@ -186,3 +188,7 @@ export default class DOMRectReadOnly {
|
|
|
186
188
|
this.#height = castToNumber(height);
|
|
187
189
|
}
|
|
188
190
|
}
|
|
191
|
+
|
|
192
|
+
setPlatformObject(DOMRectReadOnly, {
|
|
193
|
+
clone: rect => new DOMRectReadOnly(rect.x, rect.y, rect.width, rect.height),
|
|
194
|
+
});
|
|
@@ -12,6 +12,8 @@ import type {TurboModule} from '../../../../../Libraries/TurboModule/RCTExport';
|
|
|
12
12
|
|
|
13
13
|
import * as TurboModuleRegistry from '../../../../../Libraries/TurboModule/TurboModuleRegistry';
|
|
14
14
|
|
|
15
|
+
export opaque type IdleCallbackID = mixed;
|
|
16
|
+
|
|
15
17
|
export type RequestIdleCallbackOptions = {
|
|
16
18
|
timeout?: number,
|
|
17
19
|
};
|
|
@@ -25,8 +27,8 @@ export interface Spec extends TurboModule {
|
|
|
25
27
|
+requestIdleCallback: (
|
|
26
28
|
callback: (idleDeadline: IdleDeadline) => mixed,
|
|
27
29
|
options?: RequestIdleCallbackOptions,
|
|
28
|
-
) =>
|
|
29
|
-
+cancelIdleCallback: (handle:
|
|
30
|
+
) => IdleCallbackID;
|
|
31
|
+
+cancelIdleCallback: (handle: IdleCallbackID) => void;
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
export default (TurboModuleRegistry.getEnforcing<Spec>(
|
|
@@ -14,6 +14,7 @@ import type {IntersectionObserverId} from './internals/IntersectionObserverManag
|
|
|
14
14
|
import type IntersectionObserverEntry from './IntersectionObserverEntry';
|
|
15
15
|
|
|
16
16
|
import ReactNativeElement from '../dom/nodes/ReactNativeElement';
|
|
17
|
+
import {setPlatformObject} from '../webidl/PlatformObjects';
|
|
17
18
|
import * as IntersectionObserverManager from './internals/IntersectionObserverManager';
|
|
18
19
|
|
|
19
20
|
export type IntersectionObserverCallback = (
|
|
@@ -22,7 +23,7 @@ export type IntersectionObserverCallback = (
|
|
|
22
23
|
) => mixed;
|
|
23
24
|
|
|
24
25
|
export interface IntersectionObserverInit {
|
|
25
|
-
|
|
26
|
+
root?: ?ReactNativeElement;
|
|
26
27
|
// rootMargin?: string, // This option exists on the Web but it's not currently supported in React Native.
|
|
27
28
|
threshold?: number | $ReadOnlyArray<number>;
|
|
28
29
|
|
|
@@ -66,6 +67,7 @@ export default class IntersectionObserver {
|
|
|
66
67
|
_observationTargets: Set<ReactNativeElement> = new Set();
|
|
67
68
|
_intersectionObserverId: ?IntersectionObserverId;
|
|
68
69
|
_rootThresholds: $ReadOnlyArray<number> | null;
|
|
70
|
+
_root: ReactNativeElement | null;
|
|
69
71
|
|
|
70
72
|
constructor(
|
|
71
73
|
callback: IntersectionObserverCallback,
|
|
@@ -84,16 +86,18 @@ export default class IntersectionObserver {
|
|
|
84
86
|
}
|
|
85
87
|
|
|
86
88
|
// $FlowExpectedError[prop-missing] it's not typed in React Native but exists on Web.
|
|
87
|
-
if (options?.
|
|
89
|
+
if (options?.rootMargin != null) {
|
|
88
90
|
throw new TypeError(
|
|
89
|
-
"Failed to construct 'IntersectionObserver':
|
|
91
|
+
"Failed to construct 'IntersectionObserver': rootMargin is not supported",
|
|
90
92
|
);
|
|
91
93
|
}
|
|
92
94
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
+
if (
|
|
96
|
+
options?.root != null &&
|
|
97
|
+
!(options?.root instanceof ReactNativeElement)
|
|
98
|
+
) {
|
|
95
99
|
throw new TypeError(
|
|
96
|
-
"Failed to construct 'IntersectionObserver':
|
|
100
|
+
"Failed to construct 'IntersectionObserver': Failed to read the 'root' property from 'IntersectionObserverInit': The provided value is not of type '(null or ReactNativeElement)",
|
|
97
101
|
);
|
|
98
102
|
}
|
|
99
103
|
|
|
@@ -104,6 +108,7 @@ export default class IntersectionObserver {
|
|
|
104
108
|
options?.threshold,
|
|
105
109
|
this._rootThresholds != null, // only provide default if no rootThreshold
|
|
106
110
|
);
|
|
111
|
+
this._root = options?.root ?? null;
|
|
107
112
|
}
|
|
108
113
|
|
|
109
114
|
/**
|
|
@@ -115,7 +120,7 @@ export default class IntersectionObserver {
|
|
|
115
120
|
* NOTE: This cannot currently be configured and `root` is always `null`.
|
|
116
121
|
*/
|
|
117
122
|
get root(): ReactNativeElement | null {
|
|
118
|
-
return
|
|
123
|
+
return this._root;
|
|
119
124
|
}
|
|
120
125
|
|
|
121
126
|
/**
|
|
@@ -182,6 +187,7 @@ export default class IntersectionObserver {
|
|
|
182
187
|
|
|
183
188
|
const didStartObserving = IntersectionObserverManager.observe({
|
|
184
189
|
intersectionObserverId: this._getOrCreateIntersectionObserverId(),
|
|
190
|
+
root: this._root,
|
|
185
191
|
target,
|
|
186
192
|
});
|
|
187
193
|
|
|
@@ -250,6 +256,8 @@ export default class IntersectionObserver {
|
|
|
250
256
|
}
|
|
251
257
|
}
|
|
252
258
|
|
|
259
|
+
setPlatformObject(IntersectionObserver);
|
|
260
|
+
|
|
253
261
|
/**
|
|
254
262
|
* Converts the user defined `threshold` value into an array of sorted valid
|
|
255
263
|
* threshold options for `IntersectionObserver` (double ∈ [0, 1]).
|
|
@@ -14,6 +14,7 @@ import type ReactNativeElement from '../dom/nodes/ReactNativeElement';
|
|
|
14
14
|
import type {NativeIntersectionObserverEntry} from './specs/NativeIntersectionObserver';
|
|
15
15
|
|
|
16
16
|
import DOMRectReadOnly from '../geometry/DOMRectReadOnly';
|
|
17
|
+
import {setPlatformObject} from '../webidl/PlatformObjects';
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* The [`IntersectionObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry)
|
|
@@ -159,6 +160,8 @@ export default class IntersectionObserverEntry {
|
|
|
159
160
|
}
|
|
160
161
|
}
|
|
161
162
|
|
|
163
|
+
setPlatformObject(IntersectionObserverEntry);
|
|
164
|
+
|
|
162
165
|
export function createIntersectionObserverEntry(
|
|
163
166
|
entry: NativeIntersectionObserverEntry,
|
|
164
167
|
target: ReactNativeElement,
|
|
@@ -23,9 +23,11 @@ import type IntersectionObserver, {
|
|
|
23
23
|
IntersectionObserverCallback,
|
|
24
24
|
} from '../IntersectionObserver';
|
|
25
25
|
import type IntersectionObserverEntry from '../IntersectionObserverEntry';
|
|
26
|
+
import type {NativeIntersectionObserverToken} from '../specs/NativeIntersectionObserver';
|
|
26
27
|
|
|
27
28
|
import * as Systrace from '../../../../../Libraries/Performance/Systrace';
|
|
28
29
|
import warnOnce from '../../../../../Libraries/Utilities/warnOnce';
|
|
30
|
+
import * as ReactNativeFeatureFlags from '../../../featureflags/ReactNativeFeatureFlags';
|
|
29
31
|
import {
|
|
30
32
|
getInstanceHandle,
|
|
31
33
|
getNativeNodeReference,
|
|
@@ -74,6 +76,29 @@ const targetToShadowNodeMap: WeakMap<
|
|
|
74
76
|
ReturnType<typeof getNativeNodeReference>,
|
|
75
77
|
> = new WeakMap();
|
|
76
78
|
|
|
79
|
+
const targetToTokenMap: WeakMap<
|
|
80
|
+
ReactNativeElement,
|
|
81
|
+
NativeIntersectionObserverToken,
|
|
82
|
+
> = new WeakMap();
|
|
83
|
+
|
|
84
|
+
let modernNativeIntersectionObserver =
|
|
85
|
+
NativeIntersectionObserver == null
|
|
86
|
+
? null
|
|
87
|
+
: NativeIntersectionObserver.observeV2 == null ||
|
|
88
|
+
NativeIntersectionObserver.unobserveV2 == null
|
|
89
|
+
? null
|
|
90
|
+
: {
|
|
91
|
+
observe: NativeIntersectionObserver.observeV2,
|
|
92
|
+
unobserve: NativeIntersectionObserver.unobserveV2,
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
if (
|
|
96
|
+
modernNativeIntersectionObserver &&
|
|
97
|
+
!ReactNativeFeatureFlags.utilizeTokensInIntersectionObserver()
|
|
98
|
+
) {
|
|
99
|
+
modernNativeIntersectionObserver = null;
|
|
100
|
+
}
|
|
101
|
+
|
|
77
102
|
/**
|
|
78
103
|
* Registers the given intersection observer and returns a unique ID for it,
|
|
79
104
|
* which is required to start observing targets.
|
|
@@ -115,9 +140,11 @@ export function unregisterObserver(
|
|
|
115
140
|
*/
|
|
116
141
|
export function observe({
|
|
117
142
|
intersectionObserverId,
|
|
143
|
+
root,
|
|
118
144
|
target,
|
|
119
145
|
}: {
|
|
120
146
|
intersectionObserverId: IntersectionObserverId,
|
|
147
|
+
root: ?ReactNativeElement,
|
|
121
148
|
target: ReactNativeElement,
|
|
122
149
|
}): boolean {
|
|
123
150
|
if (NativeIntersectionObserver == null) {
|
|
@@ -149,24 +176,47 @@ export function observe({
|
|
|
149
176
|
return false;
|
|
150
177
|
}
|
|
151
178
|
|
|
179
|
+
const rootNativeNodeReference =
|
|
180
|
+
root != null ? getNativeNodeReference(root) : null;
|
|
181
|
+
if (root != null && rootNativeNodeReference == null) {
|
|
182
|
+
console.error(
|
|
183
|
+
'IntersectionObserverManager: could not find shadow node for observation root',
|
|
184
|
+
);
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
|
|
152
188
|
// Store the mapping between the instance handle and the target so we can
|
|
153
189
|
// access it even after the instance handle has been unmounted.
|
|
154
190
|
setTargetForInstanceHandle(instanceHandle, target);
|
|
155
191
|
|
|
156
|
-
|
|
157
|
-
|
|
192
|
+
if (modernNativeIntersectionObserver == null) {
|
|
193
|
+
// Same for the mapping between the target and its shadow node.
|
|
194
|
+
targetToShadowNodeMap.set(target, targetNativeNodeReference);
|
|
195
|
+
}
|
|
158
196
|
|
|
159
197
|
if (!isConnected) {
|
|
160
198
|
NativeIntersectionObserver.connect(notifyIntersectionObservers);
|
|
161
199
|
isConnected = true;
|
|
162
200
|
}
|
|
163
201
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
202
|
+
if (modernNativeIntersectionObserver == null) {
|
|
203
|
+
NativeIntersectionObserver.observe({
|
|
204
|
+
intersectionObserverId,
|
|
205
|
+
rootShadowNode: rootNativeNodeReference,
|
|
206
|
+
targetShadowNode: targetNativeNodeReference,
|
|
207
|
+
thresholds: registeredObserver.observer.thresholds,
|
|
208
|
+
rootThresholds: registeredObserver.observer.rnRootThresholds,
|
|
209
|
+
});
|
|
210
|
+
} else {
|
|
211
|
+
const token = modernNativeIntersectionObserver.observe({
|
|
212
|
+
intersectionObserverId,
|
|
213
|
+
rootShadowNode: rootNativeNodeReference,
|
|
214
|
+
targetShadowNode: targetNativeNodeReference,
|
|
215
|
+
thresholds: registeredObserver.observer.thresholds,
|
|
216
|
+
rootThresholds: registeredObserver.observer.rnRootThresholds,
|
|
217
|
+
});
|
|
218
|
+
targetToTokenMap.set(target, token);
|
|
219
|
+
}
|
|
170
220
|
|
|
171
221
|
return true;
|
|
172
222
|
}
|
|
@@ -190,18 +240,33 @@ export function unobserve(
|
|
|
190
240
|
return;
|
|
191
241
|
}
|
|
192
242
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
243
|
+
if (modernNativeIntersectionObserver == null) {
|
|
244
|
+
const targetNativeNodeReference = targetToShadowNodeMap.get(target);
|
|
245
|
+
if (targetNativeNodeReference == null) {
|
|
246
|
+
console.error(
|
|
247
|
+
'IntersectionObserverManager: could not find registration data for target',
|
|
248
|
+
);
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
NativeIntersectionObserver.unobserve(
|
|
253
|
+
intersectionObserverId,
|
|
254
|
+
targetNativeNodeReference,
|
|
197
255
|
);
|
|
198
|
-
|
|
199
|
-
|
|
256
|
+
} else {
|
|
257
|
+
const targetToken = targetToTokenMap.get(target);
|
|
258
|
+
if (targetToken == null) {
|
|
259
|
+
console.error(
|
|
260
|
+
'IntersectionObserverManager: could not find registration data for target',
|
|
261
|
+
);
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
200
264
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
265
|
+
modernNativeIntersectionObserver.unobserve(
|
|
266
|
+
intersectionObserverId,
|
|
267
|
+
targetToken,
|
|
268
|
+
);
|
|
269
|
+
}
|
|
205
270
|
}
|
|
206
271
|
|
|
207
272
|
/**
|
|
@@ -25,14 +25,26 @@ export type NativeIntersectionObserverEntry = {
|
|
|
25
25
|
|
|
26
26
|
export type NativeIntersectionObserverObserveOptions = {
|
|
27
27
|
intersectionObserverId: number,
|
|
28
|
+
rootShadowNode?: ?mixed,
|
|
28
29
|
targetShadowNode: mixed,
|
|
29
30
|
thresholds: $ReadOnlyArray<number>,
|
|
30
31
|
rootThresholds?: ?$ReadOnlyArray<number>,
|
|
31
32
|
};
|
|
32
33
|
|
|
34
|
+
export opaque type NativeIntersectionObserverToken = mixed;
|
|
35
|
+
|
|
33
36
|
export interface Spec extends TurboModule {
|
|
37
|
+
// TODO(T223605846): Remove legacy observe method
|
|
34
38
|
+observe: (options: NativeIntersectionObserverObserveOptions) => void;
|
|
39
|
+
// TODO(T223605846): Remove legacy unobserve method
|
|
35
40
|
+unobserve: (intersectionObserverId: number, targetShadowNode: mixed) => void;
|
|
41
|
+
+observeV2?: (
|
|
42
|
+
options: NativeIntersectionObserverObserveOptions,
|
|
43
|
+
) => NativeIntersectionObserverToken;
|
|
44
|
+
+unobserveV2?: (
|
|
45
|
+
intersectionObserverId: number,
|
|
46
|
+
token: NativeIntersectionObserverToken,
|
|
47
|
+
) => void;
|
|
36
48
|
+connect: (notifyIntersectionObserversCallback: () => void) => void;
|
|
37
49
|
+disconnect: () => void;
|
|
38
50
|
+takeRecords: () => $ReadOnlyArray<NativeIntersectionObserverEntry>;
|
|
@@ -14,6 +14,7 @@ import type {MutationObserverId} from './internals/MutationObserverManager';
|
|
|
14
14
|
import type MutationRecord from './MutationRecord';
|
|
15
15
|
|
|
16
16
|
import ReactNativeElement from '../dom/nodes/ReactNativeElement';
|
|
17
|
+
import {setPlatformObject} from '../webidl/PlatformObjects';
|
|
17
18
|
import * as MutationObserverManager from './internals/MutationObserverManager';
|
|
18
19
|
|
|
19
20
|
export type MutationObserverCallback = (
|
|
@@ -42,6 +43,7 @@ export interface MutationObserverInit {
|
|
|
42
43
|
*/
|
|
43
44
|
export default class MutationObserver {
|
|
44
45
|
_callback: MutationObserverCallback;
|
|
46
|
+
// TODO: delete in the next version.
|
|
45
47
|
_observationTargets: Set<ReactNativeElement> = new Set();
|
|
46
48
|
_mutationObserverId: ?MutationObserverId;
|
|
47
49
|
|
|
@@ -115,46 +117,11 @@ export default class MutationObserver {
|
|
|
115
117
|
|
|
116
118
|
const mutationObserverId = this._getOrCreateMutationObserverId();
|
|
117
119
|
|
|
118
|
-
|
|
119
|
-
// the observation and only use the last options used.
|
|
120
|
-
if (this._observationTargets.has(target)) {
|
|
121
|
-
MutationObserverManager.unobserve(mutationObserverId, target);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
const didStartObserving = MutationObserverManager.observe({
|
|
120
|
+
MutationObserverManager.observe({
|
|
125
121
|
mutationObserverId,
|
|
126
122
|
target,
|
|
127
123
|
subtree: Boolean(options?.subtree),
|
|
128
124
|
});
|
|
129
|
-
|
|
130
|
-
if (didStartObserving) {
|
|
131
|
-
this._observationTargets.add(target);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
_unobserve(target: ReactNativeElement): void {
|
|
136
|
-
if (!(target instanceof ReactNativeElement)) {
|
|
137
|
-
throw new TypeError(
|
|
138
|
-
"Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'ReactNativeElement'.",
|
|
139
|
-
);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
if (!this._observationTargets.has(target)) {
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
const mutationObserverId = this._mutationObserverId;
|
|
147
|
-
if (mutationObserverId == null) {
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
MutationObserverManager.unobserve(mutationObserverId, target);
|
|
152
|
-
this._observationTargets.delete(target);
|
|
153
|
-
|
|
154
|
-
if (this._observationTargets.size === 0) {
|
|
155
|
-
MutationObserverManager.unregisterObserver(mutationObserverId);
|
|
156
|
-
this._mutationObserverId = null;
|
|
157
|
-
}
|
|
158
125
|
}
|
|
159
126
|
|
|
160
127
|
/**
|
|
@@ -162,9 +129,15 @@ export default class MutationObserver {
|
|
|
162
129
|
* The observer can be reused by calling its `observe()` method again.
|
|
163
130
|
*/
|
|
164
131
|
disconnect(): void {
|
|
165
|
-
|
|
166
|
-
|
|
132
|
+
const mutationObserverId = this._mutationObserverId;
|
|
133
|
+
if (mutationObserverId == null) {
|
|
134
|
+
return;
|
|
167
135
|
}
|
|
136
|
+
|
|
137
|
+
MutationObserverManager.unobserveAll(mutationObserverId);
|
|
138
|
+
|
|
139
|
+
MutationObserverManager.unregisterObserver(mutationObserverId);
|
|
140
|
+
this._mutationObserverId = null;
|
|
168
141
|
}
|
|
169
142
|
|
|
170
143
|
_getOrCreateMutationObserverId(): MutationObserverId {
|
|
@@ -184,3 +157,5 @@ export default class MutationObserver {
|
|
|
184
157
|
return this._mutationObserverId;
|
|
185
158
|
}
|
|
186
159
|
}
|
|
160
|
+
|
|
161
|
+
setPlatformObject(MutationObserver);
|
|
@@ -15,6 +15,7 @@ import type ReadOnlyNode from '../dom/nodes/ReadOnlyNode';
|
|
|
15
15
|
import type {NativeMutationRecord} from './specs/NativeMutationObserver';
|
|
16
16
|
|
|
17
17
|
import NodeList, {createNodeList} from '../dom/oldstylecollections/NodeList';
|
|
18
|
+
import {setPlatformObject} from '../webidl/PlatformObjects';
|
|
18
19
|
|
|
19
20
|
export type MutationType = 'attributes' | 'characterData' | 'childList';
|
|
20
21
|
|
|
@@ -75,6 +76,8 @@ export default class MutationRecord {
|
|
|
75
76
|
}
|
|
76
77
|
}
|
|
77
78
|
|
|
79
|
+
setPlatformObject(MutationRecord);
|
|
80
|
+
|
|
78
81
|
export function createMutationRecord(
|
|
79
82
|
entry: NativeMutationRecord,
|
|
80
83
|
): MutationRecord {
|