@office-iss/react-native-win32 0.72.6 → 0.73.0-preview.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.flowconfig +15 -4
- package/CHANGELOG.json +531 -87
- package/CHANGELOG.md +213 -48
- package/IntegrationTests/PromiseTest.js +1 -0
- package/IntegrationTests/websocket_integration_test_server.js +1 -1
- package/Libraries/Animated/Animated.js +1 -1
- package/Libraries/Animated/AnimatedImplementation.js +1 -1
- package/Libraries/Animated/NativeAnimatedHelper.js +14 -10
- package/Libraries/Animated/NativeAnimatedHelper.win32.js +16 -12
- package/Libraries/Animated/NativeAnimatedModule.js +6 -2
- package/Libraries/Animated/NativeAnimatedTurboModule.js +7 -4
- package/Libraries/Animated/animations/Animation.js +57 -3
- package/Libraries/Animated/animations/DecayAnimation.js +9 -0
- package/Libraries/Animated/animations/SpringAnimation.js +8 -0
- package/Libraries/Animated/animations/TimingAnimation.js +8 -0
- package/Libraries/Animated/components/AnimatedFlatList.js +2 -1
- package/Libraries/Animated/components/AnimatedScrollView.js +2 -0
- package/Libraries/Animated/components/AnimatedSectionList.js +2 -1
- package/Libraries/Animated/createAnimatedComponent.js +1 -0
- package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
- package/Libraries/Animated/nodes/AnimatedObject.js +146 -0
- package/Libraries/Animated/nodes/AnimatedProps.js +19 -7
- package/Libraries/Animated/nodes/AnimatedStyle.js +29 -55
- package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -17
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +17 -0
- package/Libraries/Animated/useAnimatedProps.js +9 -10
- package/Libraries/AppState/AppState.d.ts +1 -1
- package/Libraries/AppState/NativeAppState.js +8 -4
- package/Libraries/BatchedBridge/MessageQueue.js +45 -36
- package/Libraries/Blob/Blob.js +6 -2
- package/Libraries/Blob/BlobManager.js +9 -10
- package/Libraries/Blob/BlobRegistry.js +14 -9
- package/Libraries/Blob/File.js +1 -1
- package/Libraries/Blob/FileReader.js +1 -2
- package/Libraries/Components/Button/ButtonWin32.Props.d.ts +1 -1
- package/Libraries/Components/Button/ButtonWin32.Props.js.map +1 -1
- package/Libraries/Components/Button/ButtonWin32.d.ts +1 -1
- package/Libraries/Components/Button/ButtonWin32.js +1 -4
- package/Libraries/Components/Button/ButtonWin32.js.map +1 -1
- package/Libraries/Components/Clipboard/Clipboard.d.ts +4 -4
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -1
- package/Libraries/Components/EnterString.win32.d.ts +1 -1
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +26 -6
- package/Libraries/Components/Pressable/Pressable.js +3 -2
- package/Libraries/Components/Pressable/Pressable.win32.js +4 -3
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +1 -1
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +7 -7
- package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +7 -8
- package/Libraries/Components/ScrollView/ScrollView.js +3 -1
- package/Libraries/Components/ScrollView/ScrollView.win32.js +3 -1
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +39 -46
- package/Libraries/Components/Switch/Switch.js +1 -0
- package/Libraries/Components/Text/TextWin32.d.ts +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
- package/Libraries/Components/TextInput/TextInput.d.ts +49 -7
- package/Libraries/Components/TextInput/TextInput.flow.js +43 -10
- package/Libraries/Components/TextInput/TextInput.js +62 -10
- package/Libraries/Components/TextInput/TextInput.win32.js +953 -206
- package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +23 -0
- package/Libraries/Components/ToastAndroid/{ToastAndroid.ios.js → ToastAndroid.js} +9 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +9 -1
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +2 -2
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableOpacity.js +4 -1
- package/Libraries/Components/Touchable/TouchableWin32.d.ts +1 -1
- package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -0
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +16 -6
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +9 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -0
- package/Libraries/Components/View/View.js +46 -32
- package/Libraries/Components/View/View.win32.js +37 -6
- package/Libraries/Components/View/ViewAccessibility.d.ts +8 -2
- package/Libraries/Components/View/ViewNativeComponent.js +1 -0
- package/Libraries/Components/View/ViewPropTypes.js +18 -3
- package/Libraries/Components/View/ViewPropTypes.win32.js +30 -4
- package/Libraries/Components/View/ViewWin32.js +3 -2
- package/Libraries/Core/Devtools/loadBundleFromServer.js +152 -0
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -1
- package/Libraries/Core/ExceptionsManager.js +16 -7
- package/Libraries/Core/ExtendedError.js +12 -0
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/ReactNativeVersionCheck.js +0 -2
- package/Libraries/Core/ReactNativeVersionCheck.win32.js +0 -2
- package/Libraries/Core/__mocks__/NativeExceptionsManager.js +20 -0
- package/Libraries/Core/setUpDeveloperTools.js +5 -1
- package/Libraries/Core/setUpIntersectionObserver.js +16 -0
- package/Libraries/{Components/ProgressBarAndroid/ProgressBarAndroid.ios.js → Core/setUpMutationObserver.js} +6 -2
- package/Libraries/Core/setUpPerformance.js +6 -13
- package/Libraries/Core/setUpPerformanceObserver.js +16 -0
- package/Libraries/Core/setUpRegeneratorRuntime.js +4 -2
- package/Libraries/DOM/Nodes/ReactNativeElement.js +135 -18
- package/Libraries/DOM/Nodes/ReadOnlyCharacterData.js +72 -0
- package/Libraries/DOM/Nodes/ReadOnlyElement.js +209 -21
- package/Libraries/DOM/Nodes/ReadOnlyNode.js +206 -17
- package/Libraries/DOM/Nodes/ReadOnlyText.js +30 -0
- package/Libraries/DOM/Nodes/Utilities/Traversal.js +54 -0
- package/Libraries/EventEmitter/NativeEventEmitter.d.ts +0 -6
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +15 -4
- package/Libraries/Image/Image.android.js +8 -2
- package/Libraries/Image/Image.d.ts +1 -1
- package/Libraries/Image/Image.ios.js +4 -1
- package/Libraries/Image/Image.win32.js +6 -3
- package/Libraries/Image/ImageBackground.js +3 -0
- package/Libraries/Image/resolveAssetSource.win32.js +1 -1
- package/Libraries/Inspector/DevtoolsOverlay.js +6 -3
- package/Libraries/Inspector/NetworkOverlay.js +2 -2
- package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -5
- package/Libraries/Interaction/PanResponder.js +1 -4
- package/Libraries/IntersectionObserver/IntersectionObserver.js +252 -0
- package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +140 -0
- package/Libraries/IntersectionObserver/IntersectionObserverManager.js +221 -0
- package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +41 -0
- package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +162 -0
- package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +2 -1
- package/Libraries/Lists/FlatList.js +15 -5
- package/Libraries/Lists/SectionList.js +4 -0
- package/Libraries/LogBox/Data/LogBoxLog.js +4 -1
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +5 -2
- package/Libraries/LogBox/Data/parseLogBoxLog.js +57 -20
- package/Libraries/LogBox/UI/AnsiHighlight.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +24 -31
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxMessage.js +4 -7
- package/Libraries/MutationObserver/MutationObserver.js +184 -0
- package/Libraries/MutationObserver/MutationObserverManager.js +218 -0
- package/Libraries/MutationObserver/MutationRecord.js +82 -0
- package/Libraries/MutationObserver/NativeMutationObserver.js +58 -0
- package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +327 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +18 -3
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +33 -0
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +33 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -5
- package/Libraries/NativeModules/specs/NativeSourceCode.js +6 -6
- package/Libraries/Network/RCTNetworking.android.js +2 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -4
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +9 -2
- package/Libraries/Performance/QuickPerformanceLogger.js +1 -1
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -1
- package/Libraries/Pressability/Pressability.js +28 -3
- package/Libraries/Pressability/Pressability.win32.js +30 -5
- package/Libraries/ReactNative/AppContainer.js +2 -3
- package/Libraries/ReactNative/AppRegistry.d.ts +0 -5
- package/Libraries/ReactNative/AppRegistry.js +66 -53
- package/Libraries/ReactNative/BridgelessUIManager.js +38 -9
- package/Libraries/ReactNative/FabricUIManager.js +143 -34
- package/Libraries/ReactNative/I18nManager.js +5 -11
- package/Libraries/ReactNative/NativeI18nManager.js +7 -5
- package/Libraries/ReactNative/PaperUIManager.win32.js +2 -2
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +151 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +81 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +492 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +32 -0
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +19 -3
- package/Libraries/ReactNative/UIManager.js +8 -0
- package/Libraries/ReactNative/__mocks__/FabricUIManager.js +648 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +38 -2
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +27 -27
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +27 -27
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -3
- package/Libraries/Renderer/shims/ReactFabric.js +5 -6
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -3
- package/Libraries/Renderer/shims/ReactNative.js +2 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.js +35 -17
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -3
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -3
- package/Libraries/Settings/{Settings.android.js → Settings.js} +4 -4
- package/Libraries/Share/Share.d.ts +3 -9
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +9 -4
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +28 -13
- package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +14 -4
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
- package/Libraries/StyleSheet/StyleSheet.d.ts +10 -1
- package/Libraries/StyleSheet/StyleSheet.js +3 -0
- package/Libraries/StyleSheet/StyleSheet.win32.js +3 -0
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +31 -17
- package/Libraries/StyleSheet/StyleSheetTypes.js +90 -6
- package/Libraries/StyleSheet/flattenStyle.js +4 -0
- package/Libraries/StyleSheet/private/_TransformStyle.js +16 -2
- package/Libraries/StyleSheet/processColor.js +1 -2
- package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
- package/Libraries/StyleSheet/splitLayoutProps.js +1 -0
- package/Libraries/Text/Text.d.ts +5 -5
- package/Libraries/Text/Text.js +17 -10
- package/Libraries/Text/Text.win32.js +354 -0
- package/Libraries/Text/TextProps.win32.js +281 -0
- package/Libraries/TurboModule/TurboModuleRegistry.js +47 -7
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
- package/Libraries/Types/CoreEventTypes.d.ts +5 -2
- package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -12
- package/Libraries/Utilities/NativeDeviceInfo.js +8 -9
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +23 -18
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +16 -13
- package/Libraries/Utilities/NativePlatformConstantsWin.js +13 -10
- package/Libraries/Utilities/PerformanceLoggerContext.js +1 -1
- package/Libraries/Utilities/Platform.android.js +12 -8
- package/Libraries/Utilities/Platform.d.ts +1 -0
- package/Libraries/Utilities/Platform.flow.js +84 -0
- package/Libraries/Utilities/Platform.flow.win32.js +111 -0
- package/Libraries/Utilities/Platform.ios.js +12 -8
- package/Libraries/Utilities/Platform.win32.js +12 -8
- package/Libraries/Utilities/PolyfillFunctions.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -2
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/createPerformanceLogger.js +63 -32
- package/Libraries/Utilities/useColorScheme.js +7 -8
- package/Libraries/WebPerformance/MemoryInfo.js +1 -1
- package/Libraries/WebPerformance/NativePerformance.js +3 -8
- package/Libraries/WebPerformance/NativePerformanceObserver.js +4 -0
- package/Libraries/WebPerformance/Performance.js +42 -15
- package/Libraries/WebPerformance/PerformanceEntry.js +14 -6
- package/Libraries/WebPerformance/PerformanceEventTiming.js +18 -1
- package/Libraries/WebPerformance/ReactNativeStartupTiming.js +40 -14
- package/Libraries/WebPerformance/__mocks__/NativePerformance.js +4 -2
- package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +21 -3
- package/Libraries/promiseRejectionTrackingOptions.js +1 -3
- package/Libraries/vendor/emitter/EventEmitter.js +20 -18
- package/flow/global.js +1 -3
- package/flow/jest.js +5 -1
- package/{Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js → jest/ReactNativeInternalFeatureFlagsMock.js} +2 -1
- package/jest/__tests__/setup-test.js +18 -0
- package/jest/mockModal.js +6 -4
- package/jest/setup.js +61 -30
- package/jest.config.js +1 -1
- package/just-task.js +1 -0
- package/overrides.json +51 -46
- package/package.json +35 -33
- package/src/Libraries/Components/Button/ButtonWin32.Props.ts +1 -1
- package/src/Libraries/Components/Button/ButtonWin32.tsx +0 -2
- package/src/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +2 -2
- package/src/Libraries/Components/Touchable/TouchableWin32.tsx +1 -1
- package/src/Libraries/Components/View/ViewAccessibility.d.ts +8 -2
- package/src/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
- package/types/experimental.d.ts +44 -0
- package/types/index.d.ts +2 -1
- package/types/modules/Devtools.d.ts +1 -0
- package/types/modules/globals.d.ts +16 -1
- package/IntegrationTests/BUCK +0 -32
- package/IntegrationTests/PropertiesUpdateTest.js +0 -29
- package/IntegrationTests/RCTRootViewIntegrationTestApp.js +0 -86
- package/IntegrationTests/ReactContentSizeUpdateTest.js +0 -89
- package/IntegrationTests/SizeFlexibilityUpdateTest.js +0 -106
- package/Libraries/Components/TextInput/TextInput.Types.win32.d.ts +0 -51
- package/Libraries/Components/TextInput/TextInput.Types.win32.js +0 -3
- package/Libraries/Components/TextInput/TextInput.Types.win32.js.map +0 -1
- package/Libraries/Utilities/AcessibilityMapping.js +0 -154
- package/Libraries/Utilities/AcessibilityMapping.win32.js +0 -156
- package/Libraries/Utilities/NativeDevSplitBundleLoader.js +0 -19
- package/Libraries/Utilities/useColorScheme.win32.js +0 -26
- package/flow/use-sync-external-store.js +0 -20
- package/flow-typed/npm/base64-js_v1.x.x.js +0 -12
- package/flow-typed/npm/glob_v7.x.x.js +0 -79
- package/flow-typed/npm/pretty-format_v26.x.x.js +0 -49
- package/flow-typed/npm/promise_v8.x.x.js +0 -30
- package/flow-typed/npm/react-dom_v17.x.x.js +0 -139
- package/flow-typed/npm/react-test-renderer_v16.x.x.js +0 -79
- package/flow-typed/npm/stacktrace-parser_v0.1.x.js +0 -17
- package/flow-typed/npm/yargs_v17.x.x.js +0 -341
- package/src/Libraries/Components/TextInput/TextInput.Types.win32.ts +0 -68
- /package/Libraries/{Renderer/public → ReactNative/ReactFabricPublicInstance}/ReactFabricPublicInstanceUtils.js +0 -0
|
@@ -39,8 +39,6 @@ exports.checkVersions = function checkVersions(): void {
|
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
41
|
|
|
42
|
-
// Note: in OSS, the prerelease version is usually 0.Y.0-rc.W, so it is a string and not a number
|
|
43
|
-
// Then we need to keep supporting that object shape.
|
|
44
42
|
function _formatVersion(
|
|
45
43
|
version:
|
|
46
44
|
| (typeof Platform)['constants']['reactNativeVersion']
|
|
@@ -41,8 +41,6 @@ exports.checkVersions = function checkVersions(): void {
|
|
|
41
41
|
}
|
|
42
42
|
};
|
|
43
43
|
|
|
44
|
-
// Note: in OSS, the prerelease version is usually 0.Y.0-rc.W, so it is a string and not a number
|
|
45
|
-
// Then we need to keep supporting that object shape.
|
|
46
44
|
function _formatVersion(
|
|
47
45
|
version:
|
|
48
46
|
| (typeof Platform)['constants']['reactNativeVersion']
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
+
* @oncall react_native
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import typeof NativeExceptionsManager from '../NativeExceptionsManager';
|
|
13
|
+
|
|
14
|
+
export default ({
|
|
15
|
+
reportFatalException: jest.fn(),
|
|
16
|
+
reportSoftException: jest.fn(),
|
|
17
|
+
updateExceptionMessage: jest.fn(),
|
|
18
|
+
dismissRedbox: jest.fn(),
|
|
19
|
+
reportException: jest.fn(),
|
|
20
|
+
}: NativeExceptionsManager);
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
import Platform from '../Utilities/Platform';
|
|
12
12
|
|
|
13
|
-
declare var console:
|
|
13
|
+
declare var console: {[string]: $FlowFixMe};
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Sets up developer tools for React Native.
|
|
@@ -74,4 +74,8 @@ if (__DEV__) {
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
require('./setUpReactRefresh');
|
|
77
|
+
|
|
78
|
+
global[
|
|
79
|
+
`${global.__METRO_GLOBAL_PREFIX__ ?? ''}__loadBundleAsync`
|
|
80
|
+
] = require('./Devtools/loadBundleFromServer');
|
|
77
81
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
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-local
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import {polyfillGlobal} from '../Utilities/PolyfillFunctions';
|
|
12
|
+
|
|
13
|
+
polyfillGlobal(
|
|
14
|
+
'IntersectionObserver',
|
|
15
|
+
() => require('../IntersectionObserver/IntersectionObserver').default,
|
|
16
|
+
);
|
|
@@ -4,9 +4,13 @@
|
|
|
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
|
+
* @flow strict-local
|
|
7
8
|
* @format
|
|
8
9
|
*/
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
import {polyfillGlobal} from '../Utilities/PolyfillFunctions';
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
polyfillGlobal(
|
|
14
|
+
'MutationObserver',
|
|
15
|
+
() => require('../MutationObserver/MutationObserver').default,
|
|
16
|
+
);
|
|
@@ -19,18 +19,11 @@ if (NativePerformance) {
|
|
|
19
19
|
} else {
|
|
20
20
|
if (!global.performance) {
|
|
21
21
|
// $FlowExpectedError[cannot-write]
|
|
22
|
-
global.performance = ({
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
*/
|
|
29
|
-
if (typeof global.performance.now !== 'function') {
|
|
30
|
-
// $FlowExpectedError[cannot-write]
|
|
31
|
-
global.performance.now = function () {
|
|
32
|
-
const performanceNow = global.nativePerformanceNow || Date.now;
|
|
33
|
-
return performanceNow();
|
|
34
|
-
};
|
|
22
|
+
global.performance = ({
|
|
23
|
+
now: function () {
|
|
24
|
+
const performanceNow = global.nativePerformanceNow || Date.now;
|
|
25
|
+
return performanceNow();
|
|
26
|
+
},
|
|
27
|
+
}: {now?: () => number});
|
|
35
28
|
}
|
|
36
29
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
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-local
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import {polyfillGlobal} from '../Utilities/PolyfillFunctions';
|
|
12
|
+
|
|
13
|
+
polyfillGlobal(
|
|
14
|
+
'PerformanceObserver',
|
|
15
|
+
() => require('../WebPerformance/PerformanceObserver').default,
|
|
16
|
+
);
|
|
@@ -22,8 +22,10 @@ let hasNativeGenerator;
|
|
|
22
22
|
try {
|
|
23
23
|
// If this function was lowered by regenerator-transform, it will try to
|
|
24
24
|
// access `global.regeneratorRuntime` which doesn't exist yet and will throw.
|
|
25
|
-
hasNativeGenerator = hasNativeConstructor(
|
|
26
|
-
|
|
25
|
+
hasNativeGenerator = hasNativeConstructor(
|
|
26
|
+
function* () {},
|
|
27
|
+
'GeneratorFunction',
|
|
28
|
+
);
|
|
27
29
|
} catch {
|
|
28
30
|
// In this case, we know generators are not provided natively.
|
|
29
31
|
hasNativeGenerator = false;
|
|
@@ -5,40 +5,116 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
7
|
* @format
|
|
8
|
-
* @flow strict
|
|
8
|
+
* @flow strict-local
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
// flowlint unsafe-getters-setters:off
|
|
12
12
|
|
|
13
13
|
import type {
|
|
14
14
|
HostComponent,
|
|
15
|
+
INativeMethods,
|
|
16
|
+
InternalInstanceHandle,
|
|
15
17
|
MeasureInWindowOnSuccessCallback,
|
|
16
18
|
MeasureLayoutOnSuccessCallback,
|
|
17
19
|
MeasureOnSuccessCallback,
|
|
20
|
+
ViewConfig,
|
|
18
21
|
} from '../../Renderer/shims/ReactNativeTypes';
|
|
19
22
|
import type {ElementRef} from 'react';
|
|
20
23
|
|
|
21
|
-
import
|
|
24
|
+
import TextInputState from '../../Components/TextInput/TextInputState';
|
|
25
|
+
import {getFabricUIManager} from '../../ReactNative/FabricUIManager';
|
|
26
|
+
import {create as createAttributePayload} from '../../ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload';
|
|
27
|
+
import warnForStyleProps from '../../ReactNative/ReactFabricPublicInstance/warnForStyleProps';
|
|
28
|
+
import ReadOnlyElement, {getBoundingClientRect} from './ReadOnlyElement';
|
|
29
|
+
import ReadOnlyNode from './ReadOnlyNode';
|
|
30
|
+
import {
|
|
31
|
+
getPublicInstanceFromInternalInstanceHandle,
|
|
32
|
+
getShadowNode,
|
|
33
|
+
} from './ReadOnlyNode';
|
|
34
|
+
import nullthrows from 'nullthrows';
|
|
35
|
+
|
|
36
|
+
const noop = () => {};
|
|
37
|
+
|
|
38
|
+
export default class ReactNativeElement
|
|
39
|
+
extends ReadOnlyElement
|
|
40
|
+
implements INativeMethods
|
|
41
|
+
{
|
|
42
|
+
// These need to be accessible from `ReactFabricPublicInstanceUtils`.
|
|
43
|
+
__nativeTag: number;
|
|
44
|
+
__internalInstanceHandle: InternalInstanceHandle;
|
|
45
|
+
|
|
46
|
+
_viewConfig: ViewConfig;
|
|
47
|
+
|
|
48
|
+
constructor(
|
|
49
|
+
tag: number,
|
|
50
|
+
viewConfig: ViewConfig,
|
|
51
|
+
internalInstanceHandle: InternalInstanceHandle,
|
|
52
|
+
) {
|
|
53
|
+
super(internalInstanceHandle);
|
|
54
|
+
|
|
55
|
+
this.__nativeTag = tag;
|
|
56
|
+
this.__internalInstanceHandle = internalInstanceHandle;
|
|
57
|
+
this._viewConfig = viewConfig;
|
|
58
|
+
}
|
|
22
59
|
|
|
23
|
-
export default class ReactNativeElement extends ReadOnlyElement {
|
|
24
60
|
get offsetHeight(): number {
|
|
25
|
-
|
|
61
|
+
return Math.round(
|
|
62
|
+
getBoundingClientRect(this, {includeTransform: false}).height,
|
|
63
|
+
);
|
|
26
64
|
}
|
|
27
65
|
|
|
28
66
|
get offsetLeft(): number {
|
|
29
|
-
|
|
67
|
+
const node = getShadowNode(this);
|
|
68
|
+
|
|
69
|
+
if (node != null) {
|
|
70
|
+
const offset = nullthrows(getFabricUIManager()).getOffset(node);
|
|
71
|
+
if (offset != null) {
|
|
72
|
+
return Math.round(offset[2]);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return 0;
|
|
30
77
|
}
|
|
31
78
|
|
|
32
79
|
get offsetParent(): ReadOnlyElement | null {
|
|
33
|
-
|
|
80
|
+
const node = getShadowNode(this);
|
|
81
|
+
|
|
82
|
+
if (node != null) {
|
|
83
|
+
const offset = nullthrows(getFabricUIManager()).getOffset(node);
|
|
84
|
+
// For children of the root node we currently return offset data
|
|
85
|
+
// but a `null` parent because the root node is not accessible
|
|
86
|
+
// in JavaScript yet.
|
|
87
|
+
if (offset != null && offset[0] != null) {
|
|
88
|
+
const offsetParentInstanceHandle = offset[0];
|
|
89
|
+
const offsetParent = getPublicInstanceFromInternalInstanceHandle(
|
|
90
|
+
offsetParentInstanceHandle,
|
|
91
|
+
);
|
|
92
|
+
// $FlowExpectedError[incompatible-type] The value returned by `getOffset` is always an instance handle for `ReadOnlyElement`.
|
|
93
|
+
const offsetParentElement: ReadOnlyElement = offsetParent;
|
|
94
|
+
return offsetParentElement;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return null;
|
|
34
99
|
}
|
|
35
100
|
|
|
36
101
|
get offsetTop(): number {
|
|
37
|
-
|
|
102
|
+
const node = getShadowNode(this);
|
|
103
|
+
|
|
104
|
+
if (node != null) {
|
|
105
|
+
const offset = nullthrows(getFabricUIManager()).getOffset(node);
|
|
106
|
+
if (offset != null) {
|
|
107
|
+
return Math.round(offset[1]);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return 0;
|
|
38
112
|
}
|
|
39
113
|
|
|
40
114
|
get offsetWidth(): number {
|
|
41
|
-
|
|
115
|
+
return Math.round(
|
|
116
|
+
getBoundingClientRect(this, {includeTransform: false}).width,
|
|
117
|
+
);
|
|
42
118
|
}
|
|
43
119
|
|
|
44
120
|
/**
|
|
@@ -46,30 +122,71 @@ export default class ReactNativeElement extends ReadOnlyElement {
|
|
|
46
122
|
*/
|
|
47
123
|
|
|
48
124
|
blur(): void {
|
|
49
|
-
|
|
125
|
+
// $FlowFixMe[incompatible-exact] Migrate all usages of `NativeMethods` to an interface to fix this.
|
|
126
|
+
TextInputState.blurTextInput(this);
|
|
50
127
|
}
|
|
51
128
|
|
|
52
|
-
focus()
|
|
53
|
-
|
|
129
|
+
focus() {
|
|
130
|
+
// $FlowFixMe[incompatible-exact] Migrate all usages of `NativeMethods` to an interface to fix this.
|
|
131
|
+
TextInputState.focusTextInput(this);
|
|
54
132
|
}
|
|
55
133
|
|
|
56
|
-
measure(callback: MeasureOnSuccessCallback)
|
|
57
|
-
|
|
134
|
+
measure(callback: MeasureOnSuccessCallback) {
|
|
135
|
+
const node = getShadowNode(this);
|
|
136
|
+
if (node != null) {
|
|
137
|
+
nullthrows(getFabricUIManager()).measure(node, callback);
|
|
138
|
+
}
|
|
58
139
|
}
|
|
59
140
|
|
|
60
|
-
measureInWindow(callback: MeasureInWindowOnSuccessCallback)
|
|
61
|
-
|
|
141
|
+
measureInWindow(callback: MeasureInWindowOnSuccessCallback) {
|
|
142
|
+
const node = getShadowNode(this);
|
|
143
|
+
if (node != null) {
|
|
144
|
+
nullthrows(getFabricUIManager()).measureInWindow(node, callback);
|
|
145
|
+
}
|
|
62
146
|
}
|
|
63
147
|
|
|
64
148
|
measureLayout(
|
|
65
149
|
relativeToNativeNode: number | ElementRef<HostComponent<mixed>>,
|
|
66
150
|
onSuccess: MeasureLayoutOnSuccessCallback,
|
|
67
151
|
onFail?: () => void /* currently unused */,
|
|
68
|
-
)
|
|
69
|
-
|
|
152
|
+
) {
|
|
153
|
+
if (!(relativeToNativeNode instanceof ReadOnlyNode)) {
|
|
154
|
+
if (__DEV__) {
|
|
155
|
+
console.error(
|
|
156
|
+
'Warning: ref.measureLayout must be called with a ref to a native component.',
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
const toStateNode = getShadowNode(this);
|
|
164
|
+
const fromStateNode = getShadowNode(relativeToNativeNode);
|
|
165
|
+
|
|
166
|
+
if (toStateNode != null && fromStateNode != null) {
|
|
167
|
+
nullthrows(getFabricUIManager()).measureLayout(
|
|
168
|
+
toStateNode,
|
|
169
|
+
fromStateNode,
|
|
170
|
+
onFail != null ? onFail : noop,
|
|
171
|
+
onSuccess != null ? onSuccess : noop,
|
|
172
|
+
);
|
|
173
|
+
}
|
|
70
174
|
}
|
|
71
175
|
|
|
72
176
|
setNativeProps(nativeProps: {...}): void {
|
|
73
|
-
|
|
177
|
+
if (__DEV__) {
|
|
178
|
+
warnForStyleProps(nativeProps, this._viewConfig.validAttributes);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
const updatePayload = createAttributePayload(
|
|
182
|
+
nativeProps,
|
|
183
|
+
this._viewConfig.validAttributes,
|
|
184
|
+
);
|
|
185
|
+
|
|
186
|
+
const node = getShadowNode(this);
|
|
187
|
+
|
|
188
|
+
if (node != null && updatePayload != null) {
|
|
189
|
+
nullthrows(getFabricUIManager()).setNativeProps(node, updatePayload);
|
|
190
|
+
}
|
|
74
191
|
}
|
|
75
192
|
}
|
|
@@ -0,0 +1,72 @@
|
|
|
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
|
+
* @format
|
|
8
|
+
* @flow strict-local
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
// flowlint unsafe-getters-setters:off
|
|
12
|
+
|
|
13
|
+
import type ReadOnlyElement from './ReadOnlyElement';
|
|
14
|
+
|
|
15
|
+
import {getFabricUIManager} from '../../ReactNative/FabricUIManager';
|
|
16
|
+
import ReadOnlyNode, {getShadowNode} from './ReadOnlyNode';
|
|
17
|
+
import {getElementSibling} from './Utilities/Traversal';
|
|
18
|
+
import nullthrows from 'nullthrows';
|
|
19
|
+
|
|
20
|
+
export default class ReadOnlyCharacterData extends ReadOnlyNode {
|
|
21
|
+
get nextElementSibling(): ReadOnlyElement | null {
|
|
22
|
+
return getElementSibling(this, 'next');
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
get previousElementSibling(): ReadOnlyElement | null {
|
|
26
|
+
return getElementSibling(this, 'previous');
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
get data(): string {
|
|
30
|
+
const shadowNode = getShadowNode(this);
|
|
31
|
+
|
|
32
|
+
if (shadowNode != null) {
|
|
33
|
+
return nullthrows(getFabricUIManager()).getTextContent(shadowNode);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return '';
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
get length(): number {
|
|
40
|
+
return this.data.length;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @override
|
|
45
|
+
*/
|
|
46
|
+
get textContent(): string | null {
|
|
47
|
+
return this.data;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @override
|
|
52
|
+
*/
|
|
53
|
+
get nodeValue(): string {
|
|
54
|
+
return this.data;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
substringData(offset: number, count: number): string {
|
|
58
|
+
const data = this.data;
|
|
59
|
+
if (offset < 0) {
|
|
60
|
+
throw new TypeError(
|
|
61
|
+
`Failed to execute 'substringData' on 'CharacterData': The offset ${offset} is negative.`,
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
if (offset > data.length) {
|
|
65
|
+
throw new TypeError(
|
|
66
|
+
`Failed to execute 'substringData' on 'CharacterData': The offset ${offset} is greater than the node's length (${data.length}).`,
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
let adjustedCount = count < 0 || count > data.length ? data.length : count;
|
|
70
|
+
return data.slice(offset, offset + adjustedCount);
|
|
71
|
+
}
|
|
72
|
+
}
|